Конвертация файлов 1С

05.03.25

Разработка - Инструментарий разработчика

Существует уже 3 формата хранения кода 1С: бинарный, XML, EDT. Разработка облегчает конвертацию между форматами для конфигураций, расширений, внешних обработок и отчетов. И немного магии автоматизации.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
1C files converter
.zip 245,02Kb
9 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

С чем живем

  • 3 формата хранения кода 1С: бинарный, XML, EDT
  • 3 вида компонент: конфигурации, расширения, внешние отчеты и обработки

Также есть неограниченное количество инструментов редактирования:

  • Конфигуратор
  • 1C: Enterprise Development tools (EDT)
  • Visual Studio Code (VSC)

и прочее.

Инструмент разработки может выбираться в зависимости от того, что в данный момент удобнее или быстрее. Но в итоге, основное хранилище исходников обычно имеет один единственный формат.

Чего бы хотелось

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

Что использовать

Для целей преобразования существуют следующие инструменты:

  • Конфигуратор (в т.ч. пакетный режим) - обеспечивает преобразование между бинарным форматом и XML
  • Утилита администрирования автономного сервера (ibcmd) - те же возможности что и у конфигуратора
  • Утилита ring (часть EDT и без EDT не работает) - позволяет выполнять конвертацию между форматом XML и EDT

Как видно не всякое преобразование возможно выполнить за 1 вызов простой команды. Также надо учитывать дополнительные требования наличия "базовой" конфигурации для преобразования расширений и внешних отчетов/обработок.

Что получилось сделать

Я сделал попытку упростить процесс конвертации форматов компонент 1С и ниже о том, что из этого вышло.

Инструмент реализован в виде набора CMD (bat)-скриптов. Почему так? Такое было настроение! И заодно получился небольшой справочный материал с примерами основных приемов, на случай если захочется подобное повторить (скорее всего нет! :-)).

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

 

4 скрипта конвертации конфигурации 1С.

Вход: Информационная база, CF-файл, XML-выгрузка, проект EDT:

  • conf2ib.cmd - в информационную базу
  • conf2cf.cmd - в CF-файл
  • conf2xml.cmd - в XML-выгрузку
  • conf2edt.cmd - в проект EDT

Пример:

conf2xml.cmd "c:\Projects\MyAmazingConfiguration\1cv8.cf" "c:\Repos\MyAmazingConfiguration\src\cf"

Отдельно в переменной среды V8_CONVERT_TOOL можно указать используемый инструмент для конвертации - "Утилита администрирования автономного сервера (ibcmd)" или "Пакетный режим конфигуратора (designer)". По умолчанию используется designer.

 

3 скрипта конвертации расширения конфигурации.

Вход: CFE-файл, XML-выгрузка, проект EDT.

  • ext2cfe.cmd- в CFE-файл
  • ext2xml.cmd- в XML-выгрузку
  • ext2edt.cmd - в проект EDT

Требуется указывать имя расширения для конвертации.

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

Пример:

ext2xml.cmd "c:\Projects\MyExcellentExtention.cfe" "c:\Repos\MySuperProject\src\cfe" "MyExcellentExtention" "c:\Projects\MyAmazingConfiguration\1cv8.cf"

Отдельно в переменной среды V8_CONVERT_TOOL можно указать используемый инструмент для конвертации - "Утилита администрирования автономного сервера (ibcmd)" или "Пакетный режим конфигуратора (designer)". По умолчанию используется designer.

 

3 скрипта конвертации внешних отчетов и обработок.

Вход: Бинарный файл или каталог бинарных файлов (EPF, ERF), XML-выгрузка отчета/обработки или каталог, проект EDT.

  • dp2epf.cmd - в бинарные EPF/ERF-файлы
  • dp2xml.cmd- в XML-выгрузку
  • dp2edt.cmd- в проект EDT

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

Пример:

dp2xml.cmd "c:\Projects\MyWonderfullDataProcessors" "c:\Repos\MySuperProject\src\ext" "c:\Projects\MyAmazingConfiguration\1cv8.cf"

Для конвертации отчетов и обработок всегда используется "Пакетный режим конфигуратора (designer)".

 

Отдельно "до кучи" валидация средствами EDT - edt-validate.cmd

Вход: Любой из вышеперечисленных компонент в любом формате. 

Пример:

edt-validate.cmd "c:\projects\MyShadyConfig\1cv8.cf" "c:\tmp\validateResult.txt"
 
 Под катом описание параметров скриптов

Some kind of magic

Есть люди (не будем показывать пальцем), кто хранит и версионирует разработки для 1С в GIT. Для таких целей инструменты существуют давно и в ассортименте. Но с внешними отчетами и обработками есть нюанс - распространенные инструменты не позволяют увидеть, что было изменено в коде до выполнения комманды git commit.

Довольно давно "на просторах" попался инструмент watchman от организации запрещенной в РФ, который позволит нам разрешить вышеозначенную проблему, т.е. разобрать отчет или обработку на исходники непосредственно в момент сохранения изменений бинарного файла.

Watchman позволяет (пишу кратко, остальное в официальной документации):

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

Я добавил пару скриптов для демонстрации работы с watchman.

Основной скрипт регистрации триггера settrigger.cmd - назначает триггер для обработки изменений файлов в указанном каталоге.

Пример:

settrigger.cmd "MyWonderfullDataProcessorsTrigger" "c:\Repos\MySuperProject\ext" "epf erf" dp2xml "c:\Repos\MySuperProject\src\ext"

В примере мы регистрируем триггер для отслеживания изменений файлов с расширениями "epf" и "erf" в каталоге "c:\Repos\MySuperProject\ext", где мы сохраняем бинарные файлы отчетов и обработок.
В момент изменения наш триггер срабатывает и запускается "разборка" измененного отчета/обработки на файлы XML в каталог "c:\Repos\MySuperProject\src\ext".
 

В итоге

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

Show must go on...

В дальнейшем, по желанию заинтересовавшихся или сам снервничаю, можно реализовать вариант этого набора скриптов для Linux или на OneScript.
Как обычно жду ваших issue, а лучше PR! :-)

Тестировалось на версии платформы 8.3.20.2290.

Ссылки

  • Проект на GitHub (там описание и over 70 тестов, где можно подсмотреть примеры)
  • Документация Watchman
     

UPD 1.6.1: Доработаны примеры/шаблоны скриптов, подробности тут.

 

UPD 1.6.0: Реализовано использование EDT CLI, добавлены примеры и шаблоны производных скриптов, исправлены ошибки, подробности тут.

 

UPD 1.5.2: Исправлены ошибки, подробности тут.

 

UPD 1.5.1: Исправлены ошибки, подробности тут.

 

UPD 1.5.0: В новой версии 1.5.0 добавлены примеры и шаблоны производных скриптов, подробности тут.

 

UPD 1.4.0: В новой версии 1.4.0 реализована выгрузка/загрузка расширений конфигурации в информационную базу, подробности тут.

 

UPD 1.3.0: В новой версии 1.3.0 реализованы возможности установки кодировки вывода команд и указания пути к рабочему каталогу автономного сервера, добавлен вывод сообщений конфигуратора в общий лог выполнения, подробности тут.

 

UPD 1.1.1: В новой версии 1.1.1 реализована возможность указания используемой версии EDT через переменную среды V8_EDT_VERSION, подробности тут.

 

UPD 1.1.0: В новой версии 1.1.0 реализована работа с серверными информационными базами, подробности тут.

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

конвертация EDT XML конфигурация расширение отчет обработка

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    51642    289    145    

263

SALE! %

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 15500 руб.

02.09.2020    229975    1254    415    

1087

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    26831    64    12    

72

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    30663    79    30    

105

SALE! %

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 16000 руб.

10.11.2023    21345    85    42    

96

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

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

9500 руб.

17.05.2024    44039    156    63    

195

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36000 руб.

28.08.2025    2900    1    2    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. PerlAmutor 160 29.08.23 10:05 Сейчас в теме
Жаль конечно, что компания 1С не сделала standalone утилиту для таких преобразований и приходится устанавливать кучу всего лишнего, а потом еще и через временную базу данных в TEMPDIR такое проворачивать.
2. ya.Avoronov 115 01.09.23 10:27 Сейчас в теме
Внутри CMD файлов нужно указывать версию EDT, если установлено несколько различных на ПК:

Было:
call %V8_RING_TOOL% edt workspace export --project "%V8_SRC_PATH%" --configuration-files "%XML_PATH%" --workspace-location "%WS_PATH%"


Стало:
call %V8_RING_TOOL% edt@2022.1.3:x86_64 workspace export --project "%V8_SRC_PATH%" --configuration-files "%XML_PATH%" --workspace-location "%WS_PATH%"
4. ktb 688 13.09.23 10:55 Сейчас в теме
(2) Угу, нужно добавить еще переменную среды для указания версии EDT (типа V8_EDT_VERSION), займусь на днях, либо можете сами сделать PR. :-)

Хм. не приходили оповещения о коментариях.
6. ktb 688 14.09.23 13:37 Сейчас в теме
(2) Добавил переменную среды для указания версии EDT (V8_EDT_VERSION). Нужно указывать только основной номер версии, например: 2023.1.4.
3. ya.Avoronov 115 01.09.23 10:41 Сейчас в теме
В моем случае conf2cf не удался.
1С:Предприятие 8.3 (8.3.21.1622)
edt@2022.1.3:x86_64

Ошибок и предупреждений больше, чем ответов:
Debug options:
    file:/C:/Program Files/1C/1CE/components/1c-edt-2022.1.3+14-x86_64/.options loaded
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com._1c.g5.v8.bm.store.internal.StringRegistry (file:/C:/Program Files/1C/1CE/components/1c-edt-2022.1.3+14-x86_64/plugins/com._1c.g5.v8.bm.store_5.3.800.v202210121436.jar) to method sun.nio.ch.FileChannelImpl.setUninterruptible()
WARNING: Please consider reporting this to the maintainers of com._1c.g5.v8.bm.store.internal.StringRegistry
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Project export operation failed.
Reason: Export operation has error: java.lang.NullPointerException
java.lang.NullPointerException
1C:Enterprise Development Tools process execution failed.
Показать
5. ktb 688 13.09.23 14:35 Сейчас в теме
(3) Тут вопрос к EDT и ring, надо проверить, что в просто аналогичная команда ring выполняется корректно.
7. user1224013 15.03.24 16:37 Сейчас в теме
Просто EDT это мертворожденный баг.
1С надо написать нормальную новую среду на C++ с addons
или добавить аддоны в конфигуратор и все.

А формат EDT проектов это вообще баг бажный маразм
Somebody1; +1 Ответить
8. CAIN 16 23.10.24 10:27 Сейчас в теме
А можно подробную инструкцию:
1) делай 1
2) делай 2
Для отправки сообщения требуется регистрация/авторизация