Разработка и сопровождение таких тяжеловесных решений, как 1С:ERP Управление предприятием, требует от программиста не только глубоких знаний бизнес-логики, но и четкого понимания методологии ведения технической работы. В условиях постоянно выходящих обновлений вендора и необходимости сохранять высокую скорость разработки, классические подходы часто становятся «бутылочным горлышком». Разберем, как выстроить процесс разработки, минимизировать риски при обновлении и эффективно использовать современные инструменты платформы 1С:Предприятие 8.3.
Рассмотрим стандартный, но проверенный временем подход с использованием Хранилища конфигурации. Для крупных проектов важно исключить лишние звенья, которые замедляют перенос кода. Проанализируем оптимальную схему организации серверов и баз:
Однако при работе с хранилищем в ERP мы часто сталкиваемся с проблемой «долгостроев». Разберем ситуацию: вы начали сложную задачу, захватили общие модули, но вас переключили на срочный баг. Чтобы не блокировать коллег и не помещать недоделанный код в основную ветку, рекомендуется использовать дискретные захваты — захватывать только те объекты, которые планируете поместить в ближайший час, либо использовать расширения для прототипирования.
Согласно актуальной политике 1С, доработки следует максимально выносить в расширения конфигурации. Это позволяет оставлять основную конфигурацию «на замке» (на поддержке с сохранением поставщика), что в разы упрощает процесс обновления ERP. Рассмотрим основные правила работы с расширениями:
&Перед, &После.&Вместо. Она полностью замещает типовой метод. Если вендор в обновлении исправит критическую ошибку в этом методе, ваша доработка «затрет» это исправление. Если же без &Вместо не обойтись (например, нужно вклиниться в середину процедуры), обязательно используйте метод ПродолжитьВызов(), который появился в новых версиях платформы (8.3.15+).Для взаимодействия расширения и основной конфигурации применим архитектурный паттерн «Переопределяемый модуль». Создадим в основной конфигурации модуль ххх_Переопределяемый с пустыми процедурами-заглушками. В расширении переопределим их, добавив логику. Таким образом, основная конфигурация лишь «знает» о существовании точки расширения, а вся логика живет отдельно.
Одной из самых сложных задач является доработка стандартных форм ERP без их захламления. Часто при заимствовании формы в расширение туда копируются все реквизиты и элементы, что создает конфликты при обновлении. Разберем по шагам «лайфхак» по созданию пустой унаследованной формы:
ERP (например, справочник Контрагенты).ФормаЭлемента)..cfe.ERP выполняем сравнение и объединение вашего расширения с этим файлом.В результате мы получаем в расширении форму, которая является «наследником» типовой, но не содержит жестко прописанных элементов. Все изменения (добавление кнопок, полей) в такой форме лучше выполнять программно в обработчике ПриСозданииНаСервере:
&НаСервере
Процедура ххх_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Программное создание элемента
НовыйЭлемент = Элементы.Добавить("ххх_ДополнительнаяИнформация", Тип("ПолеФормы"), Элементы.ГруппаШапка);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "Объект.ххх_ДополнительнаяИнформация";
КонецПроцедуры
Работа с 1С:ERP — это ресурсоемкий процесс. Выясним, какие технические условия необходимы для комфортной разработки. При использовании EDT (Enterprise Development Tool) и систем контроля версий Git, требования к железу возрастают кратно.
Проанализируем аппаратные требования для рабочего места разработчика:
EDT на базе Eclipse потребляет значительные объемы памяти для индексации метаданных ERP.NVMe SSD. Обычные SATA SSD могут не справляться с нагрузкой при обновлении конфигурации базы данных, содержащей десятки тысяч объектов.Посмотрим на перспективу использования EDT вместо классического Конфигуратора. EDT позволяет работать с ветками (Branches), что полностью решает проблему «долгостроев». Вы можете вести разработку сложной подсистемы в одной ветке, а срочные исправления делать в другой, легко переключаясь между ними без страха затереть код коллег.
Сложность ERP такова, что любое изменение в одном модуле может «сломать» учет в совершенно другом месте. Разберем, как обезопасить себя с помощью автоматизации. Рекомендуется внедрять сценарное тестирование с использованием инструментов типа Vanessa Automation.
Простейший алгоритм проверки после доработки:
ЗаказКлиента), чтобы убедиться, что ваши изменения в расширении не нарушили работу движений регистров.Подводя итог, можно сказать, что современная разработка в 1С:ERP — это баланс между классическим хранилищем и гибкостью расширений. Использование методики программного формирования интерфейса и чистого заимствования объектов позволит вам тратить на обновления системы часы вместо недель.