Как перенести изменения форм и кода в несколько баз 1С с помощью расширений конфигурации?

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

При обслуживании нескольких однотипных или схожих информационных баз 1С (например, 20 филиальных баз у одного клиента) разработчики часто сталкиваются с задачей тиражирования доработок. Прямая доработка типовой конфигурации через классическое сравнение и объединение конфигураций (файл .cf) в каждой из 20 баз требует колоссальных затрат времени, а при разнице в релизах баз может привести к конфликтам и ошибкам.

Самым эффективным и современным решением этой задачи является использование расширений конфигурации (файлы .cfe). Рассмотрим подробно, как правильно доработать формы и программный код через расширения, как проверить их применимость и как автоматизировать их массовую загрузку на несколько баз.

1. Преимущества использования расширений при работе с множеством баз

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

  1. Сохранение типовой конфигурации: Основная конфигурация остается на поддержки без изменений, что облегчает последующие обновления релиза.
  2. Низкая чувствительность к релизу: Расширение может успешно применяться к базам с разными версиями релизов, если в них не менялась структура заимствованных объектов.
  3. Быстрое внедрение: Загрузка расширения происходит за считанные секунды и не требует длительного монопольного захвата базы для структурирования данных (если не добавляются новые таблицы).

2. Пошаговое создание и доработка формы в расширении

Разберем по шагам процесс перенесения изменений формы в расширение конфигурации:

  1. Откроем Конфигуратор и перейдем в меню Конфигурация -> Расширения конфигурации.
  2. Добавим новое расширение, зададим ему имя, префикс и назначение (например, Адаптация).
  3. В дереве основной конфигурации найдем нужную форму (например, форму документа или справочника). Нажмем на нее правой кнопкой мыши и выберем пункт Добавить в расширение.
  4. Откроем заимствованную форму уже внутри расширения и внесем необходимые изменения: разместим новые элементы, перегруппируем поля или изменим свойства элементов формы.

3. Перенос и доработка программного кода: аннотации и вызов оригинала

Для изменения логики работы формы или модуля объекта в расширениях используются специальные аннотации перед процедурами и функциями: &Перед, &После и &Вместо.

При добавлении события формы (например, ПриСозданииНаСервере) платформа автоматически предложит выбрать способ переопределения метода:

Важное замечание по аннотации &Вместо: Раньше при замещении метода полностью копировали весь оригинальный код типовой процедуры и дописывали свои строки. Однако это создает проблемы при обновлении основного релиза. В современных версиях платформы 1С для вызова оригинального кода внутри аннотации &Вместо следует использовать метод ПродолжитьВызов().

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


&Вместо("ПриСозданииНаСервере")
Процедура Расш_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Вызываем исполнение стандартного кода основной конфигурации
    ПродолжитьВызов(Отказ, СтандартнаяОбработка);
    
    // Дописываем собственную логику для доработанных элементов формы
    Элементы.ГруппаДополнительно.Заголовок = "Специальные настройки филиала";
    
КонецПроцедуры

Использование ПродолжитьВызов() гарантирует, что при обновлении типового релиза актуальный штатный код продолжительно и корректно отработает, после чего выполнится ваша доработка.

4. Выгрузка и проверка корректности работы расширения

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

  1. Перейдем в окно Конфигурация -> Расширения конфигурации.
  2. Выделим созданное расширение и выберем Конфигурация -> Сохранить конфигурацию в файл. Сохраним файл с расширением .cfe.

Чтобы проверить, применяются ли изменения в целевой базе и нет ли ошибок компиляции, запустим режим «1С:Предприятие» и проанализируем состояние расширения:

Также в самом Конфигураторе перед сохранением файла рекомендуется выполнять команду Проверить возможность применения из контекстного меню расширения, чтобы убедиться в совместимости с текущим релизом базы.

5. Настройки безопасности и прав доступа

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

6. Автоматизация установки расширения на 20 и более баз

Заходить вручную через Конфигуратор в каждую из 20 баз — трудоемкий процесс. Выясним, как автоматизировать этот этап двумя способами.

Способ А. Загрузка через командную строку (пакетный режим)

Можно написать скрипт (BAT/CMD или PowerShell), который автоматически поочередно запустит Конфигуратор для каждой базы и загрузит файл .cfe:


"C:\Program Files\1cv8\8.3.23.1865\bin\1cv8.exe" DESIGNER /F "C:\Bases\Base_1" /N "Administrator" /P "Password" /ExtensionLoad "C:\Updates\MyExtension.cfe" /UpdateDBCfg

Параметр /ExtensionLoad указывает путь к файлу расширения, а параметр /UpdateDBCfg обновляет конфигурацию базы данных.

Способ Б. Загрузка в режиме «1С:Предприятие» через БСП

Если конфигурация построена на Библиотеке Стандартных Подсистем (БСП), загрузить расширение можно прямо из интерфейса программы без использования Конфигуратора:

  1. Откроем раздел Администрирование -> Печатные формы, отчеты и обработки -> Расширения.
  2. Нажмем кнопку Добавить из файла и выберем файл .cfe.
  3. Снимем флажок Безопасный режим (если требуется) и перезапустим сеанс.

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

← На главную