Простая конвертация управляемых форм, заимствованных и доработанных в расширении, из cfe в сf

20.12.24

Разработка - Механизмы типовых конфигураций

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

Часто сталкиваюсь с задачей переноса доработок, выполненных в расширениях, в основную конфигурацию. Удобным способом является использование типового инструмента "сравнение и объединение конфигурации с файлом". Для внесения доработок в основную конфигурацию из расширения требуется представить конфигурацию расширения в формате "CF". Тема уже обсуждалась, например, в этой статье. Однако описанные методы хорошо работают для объектов, созданных в расширении, а для заимствованных и доработанных в расширении методика описана недостаточно подробно. Цель этой публикации - показать решение задачи с использованием минимума вспомогательных инструментов.

Для преобразования конфигурации из формата "CFE" в "CF" требуется только два инструмента: конфигуратор и редактор текста Visual Studio Code.

Постановка задачи: имеется справочник "Номенклатура", доработанный в расширении "Расширение1". Необходимо перенести в основную конфигурацию очень сложную форму элемента.

  1. Выгружаем конфигурацию расширения в файлы.
  2. Открываем полученную структуру файлов с помощью vscode.
  3. Преобразуем тип конфигурации, удаляя четыре строки в файле Configuration.xml
  4. Для справочника "Номенклатура" разрываем механизм заимствования из основной конфигурации, удаляя строки со словом "Adopted"
  5. "Вырываем" форму из расширения, для этого:
    1. Удаляем строки со словом "Adopted" у тех объектов конфигурации, которые мы хотим в дальнейшем импортировать в основную конфигурацию.

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

    Удобство vscode заключается в том, что операции поиска/замены можно проводить сразу со всеми файлами в конфигурации, для замены идентификатора формы в файлах нужно использовать комбинацию <CTRL>+<SHIFT>+"H".
    Получаем новый идентификатор примерно такой (конкретные цифры не имеют значения, главное, чтобы идентификатор был уникален для всей конфигурации)

    3. "Отрываем" форму от дорабатываемой, удаляя весь блок <BaseForm> в самом конце файла, перед закрывающим тегом

    4. Для обработчиков событий формы нужно изменить тип вызова обработчика - убрать конструкции вида "callType", в простейшем случае удалить эти слова из тега обработчика


    Изменить имена процедур удобнее будет потом в конфигураторе
    5. И последнее по списку, но не по значению: нужно установить номер "1" основного "объекта" формы - в расширении номера начинаются от миллиона, а в основной конфигурации начинаются с единицы

    На этом все изменения в файлах закончены. 
  6. Создаём пустую базу и загружаем конфигурацию из модифицированных файлов.

    Для удобства даём форме другое имя

     
  7. Выгружаем конфигурацию в файл типа "CF".
  8. Типовым способом переносим форму в основную конфигурацию:
  9. Изменяем свойства справочника так, чтобы для элемента открывалась импортированная форма
  10. Запускаем приложение и убеждаемся, что импорт завершён успешно

 

Таким образом задача решена: в основной конфигурации появилась форма, которая полностью функционально аналогична доработанной в расширении форме.

Вступайте в нашу телеграмм-группу Инфостарт

cfe cf формы преобразование конвертация

См. также

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист 1С 8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Данное расширение — это механизм, сделанный при помощи двух модулей из БСП (3.1.11.415), который позволяет динамически добавлять команды (кнопки и не только при желании) на формы управляемого приложения без изменения конфигурации. На примере данного механизма удобно рассмотреть некоторые возможности для расширения функционала объектов, которые подключены к механизму библиотеки стандартных подсистем.

1 стартмани

20.03.2026    711    InFlach    0    

7

Механизмы типовых конфигураций Программист Стажер 1С 8.3 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Интервальные регистры в 1С:ЗУП 3.1 заменяют тяжелые срезы последних, ускоряя отчеты по кадровым данным через интервалы ДатаНачала–ДатаОкончания. Разбираем отличия, примеры кода, плюсы и способы синхронизации.

12.03.2026    2118    AlexeyPROSTO_1C    4    

19

Механизмы типовых конфигураций Программист Стажер 1С 8.3 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Как в ЗУП работает механизм расстановки времени в регистрах сведений с помощью подписки на события?Рассматривается логика сдвигов для разных типов документов (прием, увольнение, отпуск) и дается инструкция по подключению нового регистра к этому механизму.

03.03.2026    955    YA_1100893639    1    

7

Механизмы типовых конфигураций Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

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

11.08.2025    7074    user1988284    0    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dsdred 4220 20.12.24 10:18 Сейчас в теме
По-моему уже была подобная статья.
https://infostart.ru/1c/articles/1211271/
и есть еще инструмент
https://github.com/best-tech/cfe2cf

Но кстати я тут напарывался на ситуацию где это все не прокатило и пришлось еще немного потанцевать с бубном.

П.С. 1 Вот тут https://wonderland.v8.1c.ru/blog/plan-zadach-na-versiyu-8-3-29-platformy-1s-predpriyatie/
пункт 19 *Перенос доработок из конфигурации в расширение и обратно
2 Зачем форму новую добавлять через расширение?
У нас все новые объекты, формы, реквизиты добавляются в основу, они не мешают обновлению. А доработка форм в расширении програмно в модуле. И так не только у нас.
devtelscargo; +1 Ответить
2. rambomax 22 20.12.24 11:05 Сейчас в теме
(1) Да, эта статья является ответом на вопрос, который был задан в марте 2020 и с тех пор "подзавис".
Не "прокатывает" это только по тем причинам, которые подпункты в п.5.
3. Sam13 375 20.12.24 15:53 Сейчас в теме
2 Зачем форму новую добавлять через расширение?

Ответ: потому что расширение может использоваться в нескольких конфигурациях. Например, есть компания, где есть 30 баз и разрабатывается функционал, который будет работать в 20 из них. Согласитесь, лучше сделать расширение и допиливать его, чем каждый раз менять объекты в 20 базах.
TuneSoft; корум; vv2; +3 Ответить
Для отправки сообщения требуется регистрация/авторизация