Ведущий программист 1С
Уровень зарплаты: от 200 000 руб.
Местоположение: Россия, Свердловская область (МСК +2ч)
Резюме: Ведущий программист 1С
Конфигурации 1с которыми работал:ERP. Версии 2.5.17, 2.5.22, 2.5.27
Бухгалтерия Корп 3.0.201
Документооборот 3.0.19
ЗУП 3.1 (только доработка обменов данными)
Конвертация 2.1.8
Конвертация 3.1.6
Другие технологии:
Git, HTTP-сервисы, JSON, SQL, Boomerang, Postman
Обязанности
- Поддержка (50%-70% решение проблем пользователей по задачам в Jira), разработка нового
функционала (50%-30%)
- по количеству задач около 50% задач было с доработкой правил обмена (конвертация 2,3)
между конфигурациями (ERP, БП, ДО и др.)
- остальные 50% задач делятся на: работу с обработками, отчетами, печатными формами (60%),
работа с документами, справочниками, бизнес-процессами (40%).
- администрированием планов обмена я не занимался, занимался доработкой логики обменов.
Что касается технологий. Планы обмена исполользуются. Параллельно с ними множество обработок по ручному обмену (историческое наследие).
- Опишу одну из задач по доработке обработки ручного обмена.
Обмен между базой ЕРП и БП (мастер-база ЕРП и множество баз БП). В обработке запускался
обмен документами через правила обмена. Я, по задаче, добавил вкладку, в которой
пользователь (бухгалтер) выбирает номенклатуру, которую хочет получить из ЕРП по
наименованию, вводимому вручную. Обработка получает варианты номенклатуры по
наименованию через правила обмена, которые сохранены в ЕРП. Обмен данными через
http-сервис. Далее, после того, как выбраны номенклатуры, которые необходимо получить из
мастер-базы ЕРП, происходит получение данных через правила обмена. Правила обмена
доработанные, упрощенная копия основных правил обмена. Были проблемы по дублям
справочника номенклатура в разных базах. Вопрос Решается через регистр "соответствие
объектов информационных баз" в котором сопоставляются ГУИДы объектов удаленной базы с
объектами текущей базы. Были проблемы по безопасности, решали через установку https
соединения. Были проблемы на уровне администрирования локальной сети, сеть разделена на
изолированные сегменты. Решалось с помощью администраторов, специальных доступов.
- Задачи по доработке обработок, отчетов, печатных форм. Обработки и отчеты внешние,
сохраненные в справочнике "дополнительные обработки". Версии хранятся в Git.
- Задачи по доработке документов, справочников, бизнес-процессов. Изменения хранятся в
1с-хранилище и расширениях.
- Задачи по проверке результатов обновления на новые версии ЕРП. Другие разработчики в
команде обновляют версию ЕРП (архитектор, начальник отдела и старшие программисты),
после чего запускался большой и длительный (несколько недель, до месяца) пул задач для всех
программистов в команде по проверке обновленной версии ЕРП. Каждый программист
проверяет работу своих завершенных задач в новой версии ЕРП. Кроме того, распределяется
список объектов метаданных по программистам. Проверяют на ошибки работу списков
объектов.
- Много времени уделяется соблюдению стандартов. Внутренних и внешних. Часть задач была
по изучению документации (внутренней).
Есть много незадокументированных особенностей написания кода, которые старшие коллеги
просили соблюдать. В каждой задаче, перед началом написания кода обязательное
ознакомление с примерами кода других коллег.
- Прохождение Code Review. Старшие программисты давали замечания по коду, после
устранения недостатков задача переходила на тестирование аналитику. После тестирования
аналитиком, задача переходила на тестирование заказчику. После тестирования заказчиком,
5-10-20 задач (от разных разработчиков) собирались в патч, накатываемый на рабочую базу.
Если по задаче есть изменения данных, то используются обработчики обновления (обработчик
события). Если по задаче очень много изменений в данных, то используется обязательное
параллельное обновление в фоновых заданиях, что ускоряет обновление данных в разы.
- Выделяется финансирование для прохождения сотрудниками курсов по 1с. Я в частности,
прошел курс "Расширенный курс по разработке и оптимизации запросов в 1С" (сайт
курсы_по_1с_рф)
- Курс пригодился мне в реальных задачах.
- Примеры оптимизации запросов (часто спрашивают на собеседованиях):
Должен сказать, что в компании Полицифра нетиповая ЕРП. Нетиповых объектов в
конфигурации очень много (справочники, документы, бизнес-процессы, и многое другое),
изменения хранятся в 1с-хранилище.
1. в СКД отчете с большим пакетным запросом, который медленно выполнялся, который
собирал данные нетипового регистра, ввел индексы в таблицах, которые в конечном запросе
объединялись через левые соединения. Исторически, Регистр был создан несколько лет назад и
отчет работал быстро, когда данных было не так много. Через несколько лет данных стало очень
много (десятки миллионов записей) и отчет стал тормозить. Индексирование таблиц частично
решило проблему.
2. В одном из отчетов, внутри виртуальной таблицы Остатки по нетиповому регистру
использовались условия грубо говоря Контрагент = &Контрагент1 ИЛИ Контрагент =
&Контрагент2 и т.д. Причем список был большим. Отчет был сделан для специальной группы
контрагентов. Но сильно тормозил. Тормоза удалось решить, переписав запрос. Вместо ИЛИ
внутри виртуальной таблицы переписал на объединение запросов. Внутри каждого запроса та-же виртуальная таблица, но с одним условием. Запрос стал отрабатывать быстрее.
3. В одном из тормозящих отчетов был запрос, в котором было левое соединение
РегистрНакопления.Активы с Документ.РеализацияТоваровУслуг. В условии соединения были
поля из обоих таблиц через ИЛИ. Это вызывало тормоза, потому что индексы не используются,
идет сканирование обоих таблиц. Запрос переписал на выборку из подзапроса, внутри
которого объединение 2 более простых запросов. В каждом запросе условие без ИЛИ. Такой
переписанный запрос ускорил выполнение отчета.
4. В некоторых отчетах были вычисление сложных конструкций в секции ГДЕ. Это замедляло
запрос. После переноса вычисляемых функций в секцию ВЫБРАТЬ и переписки на пакетный
запрос проблема решается
Посмотрите похожие резюме
Программист
Зарплата: 85 000 руб.
Зарплата: 85 000 руб.
Разработчик PHP (Laravel)
Зарплата: 120 000 руб.
Зарплата: 120 000 руб.
Python developer
Зарплата: 180 000 руб.
Зарплата: 180 000 руб.
Руководитель проекта
Зарплата: 150 000 руб.
Зарплата: 150 000 руб.
