Простая конвертация управляемых форм, заимствованных и доработанных в расширении, из 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С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    2035    PROSTO-1C    0    

18

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

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    2078    Vidz    0    

11

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Очень часто в написании кода требуется обращаться к предопределённым значениям. Если идёт обращение к типовым предопределённым значениям, то проблем не возникает.

24.06.2024    1231    olja-ljaaa    0    

3

Механизмы типовых конфигураций Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    1208    tango    5    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    966    tango    5    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dsdred 3647 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 Зачем форму новую добавлять через расширение?
У нас все новые объекты, формы, реквизиты добавляются в основу, они не мешают обновлению. А доработка форм в расширении програмно в модуле. И так не только у нас.
2. rambomax 5 20.12.24 11:05 Сейчас в теме
(1) Да, эта статья является ответом на вопрос, который был задан в марте 2020 и с тех пор "подзавис".
Не "прокатывает" это только по тем причинам, которые подпункты в п.5.
3. Sam13 347 20.12.24 15:53 Сейчас в теме
2 Зачем форму новую добавлять через расширение?

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