Е.БУДНИ программиста 1С
3.82K subscribers
97 photos
15 videos
3 files
92 links
Ежедневные будни программиста 1С - это канал с реальными задачами с работы, с собеседований и повседневными хитростями. Подойдет как для начинающих, так и опытных.

Автор - Роман Чумадин
@chum1roma
Купить рекламу: https://telega.in/c/e_budni_programmer
Download Telegram
Развитие команды. Внутренний хакатон

Во всех командах программисты развиваются по разному.
В нашей команде проходят хакатоны, когда один из разработчиков либо знает какую-то конкретную область, либо изучает нужную область и делится со всеми.
Хакатон проходит в формате встречи разработчиков в зум. Выбирается один человек, который готовится к докладу, ищет теорию и рассказывает её на встрече с примерами и кейсами применения. Далее есть несколько вариантов:

⚫️ 1. Все просто повторяют своими руками, иногда с небольшими дополнениями;

⚫️ 2. Одна большая задача разбивается на всех по кусочкам;

Если же это только теория, то идет просто обсуждение по теме с ответами на вопросы.

Темы могут быть совершенно разными, не связанными с 1С, но как правило всё-таки технические.

Например, кто-то из команды дома изучает или использует другой язык программирования и рассказывает их отличие, так были хакатоны по Python, Go, C#. Если в рамках 1С, то были по модулям обмена, каким-то внутренним подсистемам, по инструментам разработчика и т.д.

На прошедшей неделе была моя очередь подготовки хакатона по теме работы с Postgre SQL. В ближайшее время оформлю выжимку в отдельном техническом посте.

Пишите в комментариях как вам такой формат и какие форматы совместного обучения проходят в вашей команде💬

Случайный пост > > >
Тема скрыта, так как это случайный пост, и быть может вы узнаете для себя неожиданно полезную информацию

#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
Работа с Postgre SQL

Делюсь выжимкой с хакатона по работе с Postgre SQL, который готовил на той неделе.

Задача: считать данные из таблицы в базе на Postgre SQL сервере.

Чтобы подключиться к базе и увидеть её структуру, можно воспользоваться программой pgAdmin.
Она бесплатная и можно скачать с официального сайта.

Есть два основных варианта, с помощью которых можно считать данные через 1С:

- ADODB (COM объект)
- Внешние источники данных (объект платформы)

🔹Считать записи первым способом можно используя код из Листинга 1.

На выходе у нас есть подключение к базе, и мы можем делать что нам требуется (на что хватит прав). Можно работать через sql запросы, либо с объектами напрямую.

🔸Второй вариант позволяет сразу увидеть структуру самой базы данных.
Внешние источники данных - это обособленный объект конфигурации, который позволяет работать с данными различного формата и совместимыми программами. Под работой предполагается не только чтение данных, но и хранение и изменение.

При создании внешнего источника данных можно либо вручную задать структуру внешних таблиц, либо воспользоваться конструктором таблиц, в котором задаются параметры подключения и выполняется подключение к базе данных. После подключения к БД, появляется структура базы и можно выбрать нужные таблицы.

❗️ Важный нюанс!!! То подключение, которое мы выполнили в конфигураторе, не сохраняется.
Для того чтобы данный источник заработал в режиме 1С: Предприятие, необходимо либо в коде один раз задать параметры подключения (листинг 2), либо воспользоваться платформенной обработкой "Управление внешними источниками данных". ❗️

🔹 Особенности подключения ADODB:

Требуется драйвер OLEDB
Можем выполнять SQL запросы
Необходимо знать структуру базы данных
Работает медленнее чем второй способ (но есть исключения)

🔸 Особенности подключения через внешние источники данных:

Требуется драйвер ODBC
Можно использовать в динамических списках и СКД
Требуется выполнить подключение в режиме предприятия
Можно работать с объектом в привычном конструкторе запросов
Нельзя использовать временные таблицы после выборки данных из внешней базы. Необходимо предварительно выгрузить результат запроса в ТЗ.
Работает в разы быстрее, чем ADODB

До этого мне не приходилось использовать такой объект как внешние источники данных, но у него явно есть большой потенциал.

Если у вас есть опыт работы с базами на Postgre SQL и внешними источниками данных, буду рад, если поделитесь им в комментариях💬

#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
Точное время и замер времени выполнения кода

В 1С есть отличная функция ТекущаяУниверсальнаяДатаВМиллисекундах().

Если обрамить ею участок кода, то можно более точно замерить время выполнения.
Да, для этого можно использовать замер производительности, который я затрагивал в своем посте ранее.

Но может либо не быть отладки, либо это нужно регулярно.

Например, при работе с 1С в облаке, если у вас нет доступа к конфигуратору. Я так же использовал данную функцию для замера разницы выполнения скорости запроса к базе Postgre SQL. И в рамках секунд мой запрос выполнялся одинаково при использовании двух вариантов соединения с базой, а при замере в миллисекундах разница была многократной.

Пример использования:

ДатаНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();

// Код который хотим замерить на скорость

ДатаОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах();

Сообщить(ДатаОкончания - ДатаНачала); // получаем разницу в миллисекундах

#ЕБ_Повседневность
Всем привет! В особенности новым подписчикам. Рад, что вы присоединились)

Немного навёл порядок в закреплённых постах и оставил только "пост знакомства" и он же "о канале".
Там же можно найти ссылки на дайджесты - сборники постов по периодам.

Если вам нужна консультация или помощь в решении текущих задач, по обучению и другое, то можете обращаться ко мне напрямую или через площадку GetMentor

Всем хороших выходных!
📢 Ещё немного не технического контента

На той неделе был в командировке по работе, при чем очно) довольно редкое явление при работе удаленно.

Почти каждый год нас стараются собирать, чтобы так или иначе мы знали друг друга не только в 2D формате, но и лично. Поводом в этот раз стала внутренняя 💰-конференция, где рассказывали о сделанном и о планах на будущее.
При чем это все за счёт работодателя.

Ранее уже был опрос и пост про мотивацию сотрудников, и считаю это отличным дополнением к мотивации и явное проявление лояльности к сотрудникам.

А как вы относитесь к оффлайн мероприятиям на удаленке и бывают ли они у вас? 💬

------------
Кстати, на фото фигурки супергероев 1С, напечатанные мной на 3D принтере для конференции. Незапланированное совпадение с прошлым постом о мотивации)

#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
А у вас такое было?

У меня была ситуация, когда я остался почти самым "старым", и возможно из-за того, что в компании убрали активности сотрудников, по примеру прошлого поста)
Задача с собеседования. Валидность строки по части скобок

🤯 Давно не было задачек с собеседования, будем исправлять)

Дана строка, содержащая открывающиеся и закрывающиеся скобки, например, « { ( } [ ] ) ». Необходимо написать функцию для определения валидности строки. Валидность строки определяется равенством количества открытых и закрытых скобок, а также корректностью вложенности скобок. Важно: учитывать три вида скобок "()","{}", "[]"

Предлагаю одно из возможных решений (на скриншоте), а в комментариях вы можете предложить свое, более правильно и оптимальное)))💬

Решение в текстовом виде оставлю для вас в комментариях.

> > > Случайный пост < < <

#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔝 Частая ошибка новичков - заблокировать запись документа

Довольно часто к программисту приходит задача с формулировкой: «при таком-то простом условии от бизнеса заблокировать запись документа».
Задача сама по себе несложная, для новичка выглядит очевидным в событии документа ПриЗаписи добавить простое условие и установить Отказ = Истина.

И ошибка заключается в том, что программисты не уточняют следующие вопросы:

- зачем эта блокировка?
Бывает нужно просто вывести сообщение, а блокировать нет необходимости.

- для всех ли эта блокировка или нужно разграничить по правам?
Как правило на полные права она распространяется.

- а как ещё данный документ записывается?
Бывает так, что он создаётся автоматически из другой обработки и это тоже надо учесть.

- есть ли исключения?
На такой вопрос заказчик может задуматься и правда найти исключение в своем условии.

- блокировать программное проведение или пользовательское?
Если пользовательское, то эту проверку надо перенести на форму. Если не задаться этим вопросом, можно заблокировать какой-нибудь обмен данными, который возможно происходит и без установленного флага ОбменДанными.Загрузка = Истина.

- блокировать запись или проведение документа?
Бывают документы с огромным количеством строк, и если пользователь который их вбивал несколько часов, не сможет записать документ, то он вряд ли обрадуется, когда выяснит, что теперь ему надо внести данные заново.

На какие-то вопросы нужно получить ответ от бизнеса, а на какие-то можно постараться найти самим ответы. Но только после получения ответов на эти вопросы, можно говорить о жесткой блокировке записи документа.
Можно привязать данное условие к какому-то функционалу, который можно отключить. Например, константы, или периодический регистр сведений, чтобы отсекать по дате, где проверка нужна, а где нет и т.п.

📢 В начале карьеры я сам делал такие блокировки, благо мне быстро объяснили опытные коллеги, чем плоха такая «жесткая» блокировка.


> > > Случайный пост < < <

#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯 Ещё одна частая ошибка новичков - обращение к данным из кода. Возможное решение

Суть ошибки - обращение к данным программно по коду или наименованию. Например, когда в коде идет поиск основной номенклатуры представляющей собой услугу по коду.
В чем проблема? Вот мы видим в базе код элемента справочника номенклатура, ищем по коду через типовую процедуру....
А проблема в том, что код может измениться, как и наименование, если поиск по наименованию.

Если это что-то совсем редко меняющееся, то как правило используют константу, а если предполагается регулярная смена, то данные хранят в периодическом регистре сведений.

Но есть ещё один вариант, это создать специальный справочник "Дополнительные настройки системы".
📢 Программисты передают его друг от друга, не могу сказать откуда это пошло, если знаете, то пишите в комментариях) 💬
Когда-то мне рассказали про него, где-то я его внедрил, а на текущем моем рабочем месте он уже был. Имеет разные вариации, но суть одна - это создавать в нем предопределенные элементы и уже к ним обращаться программно.

Я предлагаю свой вариант, возможно не самый навороченный, но все-таки работающий.
Это справочник с 2-мя реквизитами (значение настройки и флаг "ЭтоСписок") и табличной частью (если нужно хранить некий список).

Видел также вариант что-то типа соответствия, реализованного через 2 ТЧ: ТЧ1-ключи, ТЧ2-ключ и значение.

На скриншоте представлен код обращения к предопределенному элементу напрямую, через "ПолучитьОбъект()", не самый верный вариант.
Как доработать? Сделать обращение к данным через запрос и разместить код в общем модуле повторного использования.

> > > Случайный пост < < <

#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯 С наступающим новым годом! 🎉🎉🎉

Всем привет! 👋

Год подходит к концу, это последний пост в этом году, пора подвести небольшие итоги по каналу:

С марта нас уже больше 2900, меньше чем за год! Всем спасибо за подписку, за реакции, комментарии и репосты!

Вышло 67 технических и около технических постов. Все посты объединены в дайджесты для удобства навигации;

Открыта рубрика "сделай пост сам";

У канала есть свои стикеры и эмодзи;

За помощью по 1С за этот период ко мне, как к ментору, обратились 23 раза, кто-то через GetMentor, кто-то напрямую либо через другой сервис.


🔝 На новый 2024 год много планов как по развитию самого канала, так и по новым возможностям и полезностям для подписчиков. Оставайтесь на канале, следите и комментируйте)

------------------------
☄️ Всех с наступающим и хороших выходных, а тем кто работает, сделать это с лёгкостью и прибылью! 🥂🎂💰
------------------------
Please open Telegram to view this post
VIEW IN TELEGRAM
Необычные вопросы с собеседований

Мне неоднократно попадались такие вопросы во время интервью на вакансию программиста 1С. И однажды я был к этим вопросам не готов.

Вопросы донельзя просты, на тему текущего/прошлого места работы:

Какой размер базы?

Сколько пользователей одновременно работает в базе?

Сколько документов делается в день?

Сколько видов документов используется?

И т.п.

Рекомендую подготовить на них ответы, чтобы они были у вас либо под рукой и вы могли их повторить или просто знали.
Я же на том собеседовании назвал числа, которые оказались во много раз меньше.
Вопросы полезные, но рядовые разработчики не всегда могут знать размер рабочей базы, или даже на задаваться этими вопросами, так как если это показатель оптимальности кода, то очень сомнительный.

Если у вас тоже были похожие вопросы с разными вариациями, то пишите их в комментариях 💬

#ЕБ_Собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
После того, как накосячил коллега, а тебе пришлось исправлять)
Из интересного: 30 января в 16:00 КРОК Облачные Сервисы проводит онлайн-митап “1С в облаке: путеводитель по инфраструктуре”.

На митапе менеджер по развитию бизнеса КРОК Облачные сервисы Александр Фикс и ведущий инженер КРОК Вячеслав Рыжевский будут обсуждать:

🔹 Тренды российского рынка: что бизнес ждёт от ERP и облаков
🔹 Проекты 1С в Облаке КРОК: какие задачи ставят перед нами заказчики
🔹 Как происходит миграция инфраструктуры 1С в облако
🔹 Сайзинг инфраструктуры 1С: критерии и реализация
🔹 Оптимизацию производительности и мониторинг приложений 1С в облаке

Узнать подробности можно по ссылке ⬅️
⚠️ Важнейшее качество программиста 1С

Сегодня хотел бы поделиться не техническим приемом или задачкой, а тем, какое на мой взгляд самое важное умение/навык должен присутствовать у программиста 1С.

Это, умение решать задачи!

Казалось бы, банальнее некуда, но именно это качество поможет вам добиться успеха в карьере. В моем понимании, решить задачу означает выполнить свою часть от и до, и сделать это качественно и максимально безболезненно для заказчиков.

Мы решаем в первую очередь бизнесовую задачу, а ему откровенно пофигу как вы её решите технически. Главное решить. А вот как вы её решите, на это уже влияет опыт.

Что нам даёт такая логика и что требует:
нам нужно понимать, зачем мы делаем ту или иную задачу;
нам самим нужно подумать, а не затронет ли это что-то ещё, и если требуется, задать уточняющие вопросы;
если есть вопрос, его нужно задать;
если мы подходим к задаче, что мы не должны ухудшить текущие процессы или код, то тут мы хочешь не хочешь, задумываемся о качестве нашей разработки с точки зрения кода и оптимизации.

Если вдруг вы просто решаете задачи как сказал заказчик или написано в ТЗ и у вас нет роста, попробуйте изменить мышление на предложенное выше! Разницу вы почувствуете.

🤯 Из личного опыта, за такой подход мне неоднократно прилетают респекты от коллег, заказчика и руководства. Также, неоднократно встречались коллеги, которые кучу всего знали, и даже писали красивый код, который проходил код-ревью (не супер жесткое, конечно же), но на деле, после релиза, нужно было вносить кучу правок в логике задачи, и это систематически. Ситуация как в последнем мемчике

А какое вы считаете самое важное качество в программисте 1с? Пишите в комментариях 💬

#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Обновлятор-1С

Всем привет!

Однажды я рассказывал об упрощении запуска порции баз через .bat файл.
Но есть отличный инструмент – Обновлятор-1С. Более подробно вы можете почитать о нем на официальном сайте разработчика.

Вкратце о функциях:

Архивация баз;
Безопасность за счет использования официального пакетного запуска платформы 1С;
Работа с файловыми и серверными базами;
Работа с доработанными конфигурациями, хранилищем, расширениями и различными скриптами;
Обновление баз с сайта 1С;
Функции администрирования баз (выгнать пользователей, включить/выключить регламентные задания);
И т. д.

Есть платная и бесплатная версия, но и стоимость платной достаточно подъёмная для любого программиста 1С)

🔝 Кейсы из личного опыта и опыта товарищей:
1. Переезд баз с MS SQL сервера на Postgre SQL. С помощью скриптов настроили выгрузку в DT, и загрузку в DT, в промежутке изменив сервер. В многопоточном пакетном режиме это выполнилось гораздо быстрее и проще.
2. Обновление типовых баз БП. Ну тут все совсем просто и понятно, с типовыми проблем нет.
3. Настройка ежедневного автообновления конфигурации рабочей базы из хранилища, с предварительной архивацией и уведомлением в телеграмме о готовности.

Пишите свой опыт в комментариях об использовании данного инструмента 💬

🔥 А в следующем посте вас ждет небольшой конкурс, где я разыграю 5 ключей на Обновлятор-1С (ПРОФ), в благодарность за ваши подписки, комментарии и реакции.

> > > Случайный пост < < <

#ЕБ_Оптимизация
#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
🎁 Розыгрыш! Нас уже 3000!!!

Всем спасибо большое за интерес к моему каналу!

В благодарность за это, я разыграю, как и обещал в прошлом посте – 5 ключей к Обновлятор-1С (ПРОФ).

Условие участия в конкурсе:

Быть подписанным на канал;

Придумать креативный слоган к каналу Е.БУДНИ Программиста 1С;

Написать в комментариях под этим постом 💬

Победители: Один победитель будет выбран за лучший креативный слоган (по моему мнению), а остальные 4 ключа достанутся случайным образом авторам других предложенных вариантов.

Сроки: комментарии принимаются до 6 февраля, а результат будет объявлен 7 февраля

В виде приза в этот раз отличный инструмент, который может пригодиться практически каждому 1С программисту. Надеюсь вам тема с розыгрышем зайдет и в будущем я устрою что-то подобное. Варианты призов у меня уже есть)🔥
Please open Telegram to view this post
VIEW IN TELEGRAM