Насколько реально и целесообразно переводить модули ЕГАИС, ВетИС и маркировки в расширения 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Современные типовые конфигурации 1С, такие как Бухгалтерия предприятия или ERP Управление предприятием, постепенно становятся перенасыщенными функционалом, который необходим лишь узкому кругу пользователей. Интеграции с государственными системами (ЕГАИС, ВетИС, «Честный знак») занимают значительный объем кода и ресурсов системы. В связи с этим возникает вопрос: насколько реально вынести эти блоки в расширения, чтобы сделать основную конфигурацию легче и маневреннее? Рассмотрим эту проблему детально, проанализируем технические риски и выберем оптимальную стратегию разработки.

Проблема «прожорливости» типовых решений

Проанализируем текущую ситуацию. Многие разработчики отмечают, что типовые конфигурации становятся все более тяжеловесными. Включение в состав 1С:Бухгалтерии модулей для учета алкоголя или ветеринарных свидетельств оправдано для 1-5% пользователей, но нагрузку (в виде усложнения структуры метаданных и увеличения времени загрузки) несут все. На сегодняшний день существует два основных взгляда на развитие:

  1. Максимальное наполнение: Использование единой конфигурации (путь ERP), где модули управляются функциональными опциями.
  2. Модульность через расширения: Оставление «базового» ядра и подключение специфических блоков по мере необходимости.

Анализ производительности расширений

Одним из самых важных вопросов при переводе тяжелых систем (таких как ВетИС) в расширение является скорость выполнения кода. Выясним, насколько расширения медленнее основной конфигурации. Опираясь на замеры производительности, представленные специалистами, мы можем увидеть следующую картину при выполнении длительных итерационных циклов:

Проанализируем эти цифры: использование расширения дает замедление примерно на 25%. Для многих бизнес-процессов это не критично, однако в высоконагруженных системах с огромным количеством документов (например, при массовом гашении ВСД в ВетИС) это может стать узким местом. Тем не менее, с выходом новых версий платформы (8.3.15+) механизмы компиляции модулей расширений постоянно оптимизируются.

Техническая реализация: Данные и функциональные опции

Разберем, как технически реализовать такой переход. Долгое время расширения не позволяли создавать собственные объекты данных (справочники, документы). Однако в актуальных версиях платформы 1С:Предприятие 8.3 эта возможность появилась. Теперь мы можем:

Важно помнить про Функциональные опции (ФО). В типовых решениях модули госсистем уже скрыты за ФО. Если функционал не используется, пользователь его не видит, но код все равно присутствует в конфигурации. Перевод в расширение позволит физически удалить этот код из основной базы тех клиентов, кому он не нужен.

Методология работы с кодом: избегаем дублирования

Самый острый вопрос в использовании расширений — это поддержка при обновлениях. Рассмотрим, как правильно модифицировать типовой функционал, не превращая поддержку в кошмар. Основная ошибка — злоупотребление аннотацией &Вместо.

Если мы копируем весь типовой метод в расширение через &Вместо, мы создаем дублирование кода. При обновлении типовой конфигурации вендор может изменить логику этого метода, и наше расширение либо перестанет работать, либо будет возвращать старые ошибки. Проанализируем правильный подход:

  1. Используйте аннотации &Перед и &После. Это позволяет добавить свою логику, не заменяя основной алгоритм.
  2. Если нужно изменить данные внутри процедуры, старайтесь влиять на параметры или использовать экспортные методы расширения.
  3. Если без &Вместо не обойтись, минимизируйте объем кода внутри расширения, вынося основную логику в отдельные модули самого расширения.

Рассмотрим пример правильного расширения процедуры проведения документа:


&После("ОбработкаПроведения")
Процедура Расш1_ОбработкаПроведения(Отказ, РежимПроведения)
    // Добавляем специфическую логику ВетИС, не трогая основной код
    Если Не Отказ И ПолучитьФункциональнуюОпцию("ИспользоватьИнтеграциюВетИС") Тогда
        МодульИнтеграцииВетИС.СформироватьЗаявкуНаВСД(ЭтотОбъект);
    КонецЕсли;
КонецПроцедуры

Архитектурное будущее: Модульность

Выясним, к чему идет стратегия фирмы «1С». Постепенно внедряется понятие «Библиотечной архитектуры». Библиотека интеграции с государственными системами (БИС) уже является обособленным блоком. Перевод таких библиотек в формат расширений — логичный шаг для упрощения обновлений.

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

Итоги и рекомендации

Подводя итог нашему анализу, можно сказать: перевод тяжелых модулей в расширения — это реальный и перспективный путь. Несмотря на небольшое снижение производительности, выигрыш в гибкости и простоте поддержки перекрывает этот минус.

Основные выводы для программиста:

← На главную