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

18.03.20

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

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

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

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

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

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

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

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

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

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

 

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

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

См. также

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

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

20.08.2024    1738    PROSTO-1C    0    

18

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

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

01.07.2024    1747    Vidz    0    

11

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

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

24.06.2024    1106    olja-ljaaa    0    

3

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

Статистическая выборка сценариев и точек изменения отчетов на общей форме ФормаОтчета в типовых конфигурациях. Примеры кода.

03.06.2024    4894    Serg2000mr    32    

108

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

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

1 стартмани

11.04.2024    1058    tango    5    

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

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

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

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

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


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




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

удобно если делаешь автоматическую сборку. Я использую с нескольких проектах в Jenkins-е
11. wtlz 273 18.03.20 22:12 Сейчас в теме
(9) спасибо, обязательно дополню статью примером!
13. tormozit 7229 19.03.20 07:05 Сейчас в теме
Отчего же не сделал внешнюю обработку для автоматизации процесса?
ИР например умеет делать обратную операцию автоматически - преобразует свою конфигурацию в расширение.
proonec; improg; mvxyz; acanta; +4 Ответить
16. wtlz 273 19.03.20 09:40 Сейчас в теме
(13) спасибо за коммент насчёт ИР - не знал, добавлю позже в содержание.
Обработку не писал, ибо не настолько часто делаю эту операцию. А как выяснилось из (9), инструмент уже написан :)
18. improg 709 19.03.20 13:49 Сейчас в теме
(13) А где там, в какой версии? Не могу найти.
19. tormozit 7229 19.03.20 14:23 Сейчас в теме
(18) На странице описания расширения указано
Выпуск из чистой подсистемы
Откройте на платформе 8.3.10.2375+ в любой другой базе с подсистемой через интерфейсную панель общую форму "Выпуск варианта Расширение"
Укажите в "Каталоге выпуска", куда помещать выпускаемый файл
Закройте конфигуратор этой базы
Нажмите Выполнить
20. improg 709 19.03.20 14:40 Сейчас в теме
14. improg 709 19.03.20 08:43 Сейчас в теме
Молодец, взял на заметку спасибо.
user717534; +1 Ответить
17. Darklight 33 19.03.20 09:49 Сейчас в теме
Идея хорошая. Статья не очень (хотелось бы подробнее). Сделайте лучше обработку по автоматизации данного процесса конвертации (коли компания 1С сама не в силах предложить такой сервис в платформе, ну или внешней типовой обработкой хотя бы).
Я, вот , всегда для расширений делаю и cf файлы для поставки с вместе с ними. Но приходится делать это вручную - перенося метаданные. Была бы автоматизация - было бы куда проще
22. wtlz 273 20.03.20 19:12 Сейчас в теме
(17) спасибо за отзыв. Расскажите, что именно хотелось бы рассмотреть подробнее?
И, в свете существования инструмента на 1script, действительно ли нужна обработка?
23. Darklight 33 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 273 23.03.20 12:04 Сейчас в теме
(24) уточните, пожалуйста, какой конвертор? и ссылку на него, если есть, пожалуйста
27. wtlz 273 25.03.20 08:49 Сейчас в теме
(26) спасибо, и уже подсказали в (9)
36. Craig 275 04.02.23 11:02 Сейчас в теме
(26) а как пользоваться? я не нашел кнопки даже скачать
28. check2 379 25.03.20 22:26 Сейчас в теме
А ещё правильнее и проще для этого использовать EDT, в особенности если есть импортированные и перепаянные УФ. Просто берёте и сравниваете / объединяете проект конфигурации и расширения... Правда, если в расширении есть обычные формы ( не знаю возможно ли это? Я сам не пробовал) EDT будет бессилен.
29. Drivingblind 233 23.07.20 07:37 Сейчас в теме
Подскажите, кто сталкивался с такой ошибкой? Сохраняю расширение в cf, но при попытке обновить конфигурацию БД (иногда просто при попытке сохранить), выпадает эта ошибка. Платформа 8.3.16.1063.
Так и должно быть или я делаю что-то не так?
Прикрепленные файлы:
user814115; Teut_Vlad; +2 Ответить
30. leosoft 166 23.09.20 11:19 Сейчас в теме
Может кто подскажет - можно ли из расширения сгенерировать внешнюю обработку?
31. Светлый ум 415 11.10.20 19:24 Сейчас в теме
До сих пор работает - шаман метод +1
Altez; user1464234; +2 Ответить
32. AntonDr 13.09.21 21:25 Сейчас в теме
Коллеги, в чем может быть проблема при загрузке из файлов после описанных танцев с бубном?
Файл - D:\Мусор\0\Catalogs\Б24_КС_ПользовательскиеГруппыТоваров\Forms­\НастройкаДереваГрупп\Ext\Form.xml: Неверный путь к данным: "Номенклатура.DefaultPicture".
Прикрепленные файлы:
33. wtlz 273 14.09.21 08:24 Сейчас в теме
(32)
Неверный путь к данным: "Номенклатура.DefaultPicture".

Что-то с картинкой по умолчанию
34. AntonDr 14.09.21 09:11 Сейчас в теме
(33) Это понятно, нашел что это прописано в свойстве ПутьКДаннымКартинкиСтроки таблицы формы, отображающей динамический список. Но пока не понимаю как исправить кроме как очистить это свойство в выгружаемом расширении.
Азверин; +1 Ответить
35. AntonDr 14.09.21 09:44 Сейчас в теме
Все, понял. Загружал на более свежей платформе чем та, на которой выгружал. Видимо в этом была проблема.
Спасибо за статью, очень пригодилась!
Азверин; wtlz; +2 Ответить
39. Asuneft 3 22.06.23 09:58 Сейчас в теме
(0) не знаю, что такое "ИР"
40. tormozit 7229 22.06.23 12:01 Сейчас в теме
(39) ИР - аббревиатура от "Инструменты разработчика" https://infostart.ru/1c/tools/15126/
41. user2049846 08.02.24 14:54 Сейчас в теме
Господа, заранее извиняюсь за, возможно, глупый вопрос. А при переносе реквизита (объекта ex регистр сведений) из расширения в боевую, что происходит с данными? Или мне лучше заранее их сохранить и потом восстанавливать?
42. Teut_Vlad 191 21.02.24 18:50 Сейчас в теме
Больше не работает
Загрузка не должна менять принадлежноть основного объекта конфигурации
Прикрепленные файлы:
43. Sergey-Chelny 25.04.24 12:44 Сейчас в теме
(42) Если еще актуально, то в файле расширения есть строка: <Ob jectBelonging>Adopted</ObjectBelonging>.
Вот из- за нее и не дает вам выполнить загрузку. Удалите ее и ошибки этой не будет.
NorraSaltolinen; Teut_Vlad; +2 Ответить
44. VitalySh 22.07.24 12:11 Сейчас в теме
В обратную сторону тоже работает, надо наоборот проставить
Оставьте свое сообщение