Конвертация расширения cfe в конфигурацию сf руками

Публикация № 1211271

Разработка - Конфигурирование 1С - Расширения

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

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

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

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

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

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

 
 1. Выгружаем расширение в файлы:

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

Старый добрый total commander быстро показал различия между пустой конфигурацией и расширением. При наличии жесткой 1С-зависимости можно эту операцию выполнить прямо в конфигураторе через Сравнить файлы...

 
 2. Отличия в Configuration.xml
 
 3. Удаляем в файле Configuration.xml строки любым текстовым редактором:
 
 4. Загружаем в пустую конфигурацию файлы из папки, где отредактировали Configuration.xml

 

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

Специальные предложения

Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. VKislitsin 18.03.20 10:21 Сейчас в теме
Отличный лайфхак! Нравятся мне такие подходы.
Dorosh; TeMochkiN; Mails79; echo77; NoRazum; gubanoff; pavelpribytkin96; pm74; +8 Ответить
2. Torin 318 18.03.20 10:51 Сейчас в теме
Зачетно! Однозначно + ...А из cf в cfe изыскания не проводили?
JohnyDeath; pavelpribytkin96; CyberCerber; +3 Ответить
3. wtlz 165 18.03.20 10:54 Сейчас в теме
(2) ещё нет, но скорее всего добавление того, что нужно вырезать поможет и в обратную сторону
4. Torin 318 18.03.20 10:55 Сейчас в теме
(3) Буду ждать ваших изысканий в этом направлении
5. for_sale 832 18.03.20 15:08 Сейчас в теме
6. Vladimir Litvinenko 2507 18.03.20 15:24 Сейчас в теме
Интересное решение, спасибо! Хотелось бы конечно более подробного примера с тем, что делать дальше и какие подводные камни могут возникнуть, если вдруг Вы встречались с ними.

Если расширение полностью независимо от основной конфигурации, то судя по всему проблем не будет. Но вот сейчас попробовал объединить с cf-файлом, полученным описанным способом, в котором были заимствованные из основной конфигурации формы. Добавлены элементы не программно - через дизайнер форм. При сравнении система предложила загрузить такое свойство как "Сохраняемая форма" )) Объединение форм с приоритетом основной конфигурации всё равно приводит к замещению формы и все элементы из неё пропадают. Видимо какие-то внутренние свойства этому способствуют - пока подробнее не разбирал.

Для объединения модулей и реквизитов решение очевидно подходит.
Ещё один аргумент в пользу программного изменения форм даже в расширениях конфигурации ))
Darklight; байт; awk; +3 Ответить
7. CyberCerber 753 18.03.20 16:02 Сейчас в теме
Я, может, пропустил в тексте, но этот подход работает только для новых объектов в расширении?
Как написал Владимир выше, проблемы с расширенными формами. А что будет, если в расширении добавили реквизит к объекту основной конфы? Или изменили существующий реквизит? Ну и много подобных примеров.
12. wtlz 165 18.03.20 22:41 Сейчас в теме
(7) для новых объектов работает точно.
Постараюсь описать добавление, изменение реквизитов в следующей редакции статьи)
21. CyberCerber 753 19.03.20 17:25 Сейчас в теме
(12) Спасибо
И еще про превращение cf -> cfe. Мне это даже интересней.
8. pm74 192 18.03.20 16:10 Сейчас в теме
(0) присоединяюсь к вопросу в [7] ,
а в целом статья зачетная плюс вам в карму
9. cprit 436 18.03.20 19:01 Сейчас в теме
предлагаю рассмотреть реализацию подобного функционала на oscript
https://github.com/best-tech/cfe2cf
Vladimir Litvinenko; VKislitsin; wtlz; +3 Ответить
10. Vladimir Litvinenko 2507 18.03.20 20:30 Сейчас в теме
(9) Спасибо! Там кстати не производится замена на пустые строки следующего текста

<KeepMappingToExtendedConfigurationObjectsByIDs>true</KeepMappingToExtendedConfigurationObjectsByIDs>
<NamePrefix>ПР_</NamePrefix>

Интересно, на OneSript написали потому что действительно в каком-то случае часто эту операцию приходится выполнять?
15. cprit 436 19.03.20 09:35 Сейчас в теме
(10)
Спасибо! Там кстати не производится замена на пустые строки следующего текста


Надо будет поправить и им пул реквест скинуть




(10)
Интересно, на OneSript написали потому что действительно в каком-то случае часто эту операцию приходится выполнять?

удобно если делаешь автоматическую сборку. Я использую с нескольких проектах в Jenkins-е
11. wtlz 165 18.03.20 22:12 Сейчас в теме
(9) спасибо, обязательно дополню статью примером!
13. tormozit 6229 19.03.20 07:05 Сейчас в теме
Отчего же не сделал внешнюю обработку для автоматизации процесса?
ИР например умеет делать обратную операцию автоматически - преобразует свою конфигурацию в расширение.
mvxyz; acanta; +2 Ответить
16. wtlz 165 19.03.20 09:40 Сейчас в теме
(13) спасибо за коммент насчёт ИР - не знал, добавлю позже в содержание.
Обработку не писал, ибо не настолько часто делаю эту операцию. А как выяснилось из (9), инструмент уже написан :)
18. байт 176 19.03.20 13:49 Сейчас в теме
(13) А где там, в какой версии? Не могу найти.
19. tormozit 6229 19.03.20 14:23 Сейчас в теме
(18) На странице описания расширения указано
Выпуск из чистой подсистемы
Откройте на платформе 8.3.10.2375+ в любой другой базе с подсистемой через интерфейсную панель общую форму "Выпуск варианта Расширение"
Укажите в "Каталоге выпуска", куда помещать выпускаемый файл
Закройте конфигуратор этой базы
Нажмите Выполнить
20. байт 176 19.03.20 14:40 Сейчас в теме
14. байт 176 19.03.20 08:43 Сейчас в теме
Молодец, взял на заметку спасибо.
17. Darklight 27 19.03.20 09:49 Сейчас в теме
Идея хорошая. Статья не очень (хотелось бы подробнее). Сделайте лучше обработку по автоматизации данного процесса конвертации (коли компания 1С сама не в силах предложить такой сервис в платформе, ну или внешней типовой обработкой хотя бы).
Я, вот , всегда для расширений делаю и cf файлы для поставки с вместе с ними. Но приходится делать это вручную - перенося метаданные. Была бы автоматизация - было бы куда проще
22. wtlz 165 20.03.20 19:12 Сейчас в теме
(17) спасибо за отзыв. Расскажите, что именно хотелось бы рассмотреть подробнее?
И, в свете существования инструмента на 1script, действительно ли нужна обработка?
23. Darklight 27 20.03.20 20:00 Сейчас в теме
(22)Подробнее - про процесс сравнения - для чего это вообще надо. Что надо искать и что менять. В идеале - тут не должно быть сравнения - тут должны быть инструкции - вот открываем xml файл конфигурации от cfe - правим там такие-то строчки (конкретные) - сохраняем - получаем конфигурацию для сf.
А вот отдельно написать - что делать - если прямая инструкция по модификации не помогла (хотя насколько я знаю, загрузка конфигураций из xml достаточно терпима - если загружать xml немного не в том формате, что ожидается - особенно если он просто более младшей версии). Вот тогда, уже и сравнение нужно - но нужно написать на что обращать внимание и что переносить.
И как я написал, лучше через обработкой автоматизировать (включая выгрузку загрузку xml и даже формирование cf/cfe). Как автоматический вариант - просто вносящий известные (для версии обработки) правки. Так и аналитический вариант - когда обработка сама выгрузит в xml и cfe и пустую конфигурацию cf текущей версии платформы - сама сравнит и сама внесёт изменения и обратно загрузит.
Так и ручной вариант - когда обработка покажет те изменения что ей известны (или проанализированы в сравнении) - а пользователем уже сам окончательно примет решения что править по правилам обработки а что вручную
24. user1382578 23.03.20 12:02 Сейчас в теме
Попробуйте через конвертор поработать
25. wtlz 165 23.03.20 12:04 Сейчас в теме
(24) уточните, пожалуйста, какой конвертор? и ссылку на него, если есть, пожалуйста
27. wtlz 165 25.03.20 08:49 Сейчас в теме
(26) спасибо, и уже подсказали в (9)
28. check2 132 25.03.20 22:26 Сейчас в теме
А ещё правильнее и проще для этого использовать EDT, в особенности если есть импортированные и перепаянные УФ. Просто берёте и сравниваете / объединяете проект конфигурации и расширения... Правда, если в расширении есть обычные формы ( не знаю возможно ли это? Я сам не пробовал) EDT будет бессилен.
29. Drivingblind 145 23.07.20 07:37 Сейчас в теме
Подскажите, кто сталкивался с такой ошибкой? Сохраняю расширение в cf, но при попытке обновить конфигурацию БД (иногда просто при попытке сохранить), выпадает эта ошибка. Платформа 8.3.16.1063.
Так и должно быть или я делаю что-то не так?
Прикрепленные файлы:
Teut_Vlad; +1 Ответить
30. leosoft 149 23.09.20 11:19 Сейчас в теме
Может кто подскажет - можно ли из расширения сгенерировать внешнюю обработку?
31. Светлый ум 268 11.10.20 19:24 Сейчас в теме
До сих пор работает - шаман метод +1
user1464234; +1 Ответить
Оставьте свое сообщение

См. также

Установка расширений в 1С 8.3

Расширения v8 1cv8.cf Россия Бесплатно (free)

Краткая инструкция, как подключить расширение конфигурации в 1С.

27.07.2020    9045    Mouros    11    

Как обойти глюк механизма расширений. Пошаговая инструкция в картинках

Расширения v8 БП3.0 Бесплатно (free)

После очередного обновления Бухгалтерии 3.0 в одной очень известной фирме мне звонит наш программист 1С, который ведет эту фирму, со словами - Шеф. Все пропало. Нам конец. Наше расширение грохнулось.

26.04.2020    8819    alfanika    20    

Эволюция расширения конфигурации

Расширения v8 1cv8.cf Бесплатно (free)

С каждым днем всё больше возможностей появляется в расширении конфигурации, но не все до сих пор работают даже на платформе 8.3.6! Давайте окунемся в историю появления и эволюции расширения конфигурации, чтобы знать и понимать, когда можно применить тот или иной функционал!

06.02.2020    11673    Xershi    41    

Доработки объектов метаданных и форм (только кодом) с помощью расширений на примере типовых конфигураций: 1C:ERP Управление предприятием 2.4 и 1С:Альфа-Авто: Автосалон+Автосервис+Автозапчасти КОРП 6

Практика программирования Расширения v8 1cv8.cf Россия Бесплатно (free)

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

01.02.2020    2516    байт    7    

Обработка расширением на клиенте

Расширения Универсальные функции v8::УФ 1cv8.cf Бесплатно (free)

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

31.10.2019    7443    EvgenURNN    10    

От чего можно отказаться при разработке расширений 1С

Практика программирования БСП (Библиотека стандартных подсистем) Расширения v8 Бесплатно (free)

Разработка расширений 1С и оптимизация через механизм БСП: Дополнительные отчеты и обработки.

23.09.2019    11076    independ    33