conf_robber
Данный проект предназначен для получения нужных объектов метаданных конфигурационного файла 1С и может быть полезен тем, кто разрабатывает обработки, которые должны работать в различных конфигурациях 1С. С помощью данного проекта можно значительно сократить время на сравнение и объединение конфигураций 1С, а также выполнять какие-то особые действия с кодом и объектами.
Иструкция по сборке (Windows)
- скачать исходные файлы библиотеки zlib и поместить в каталог libs/zlib_wrapper/cpp_src/zlib/
- установить mingw64 (architecture: x86_64, threads: win32, exception: seh)
- установить cmake
- установить rustup (я использую только стабильную сборку, поэтому установку rust выполняю следующими командами: rustup install stable-x86_64-pc-windows-gnu && rustup default stable-x86_64-pc-windows-gnu)
Далее для сборки необходимо запустить скрипт build.bat, который находится в корневом каталоге проекта.
Собранный проект для Windows можно скачать здесь
https://yadi.sk/d/o9fRQZh-uc7xw
Параметры запуска:
ВНИМАНИЕ: все пути к файлам и каталогам должны указываться полностью. Т.е. 'C:/Temp/conf.cf' - правильно, 'Temp/conf.cf' - неправильно
Разборка конфигурационного файла в каталог:
conf_robber -P "--cf=<путь к файлу *.cf>" "--target=<путь к каталогу, в который распаковываем>" --log-level=info
Разборка конфигурационного файла в каталог, на основании настроек:
conf_robber -P "--cf=<путь к файлу *.cf>" "--target=<путь к каталогу, в который распаковываем>" --log-level=info "--settings=<путь к файлу settings.xml>"
Пример файла настроек settings.xml
Сборка конфигурационного файла из ранее разобранного:
conf_robber -B "--dir=<путь к каталогу, в который была распакована конфигурация>" "--target=<путь к каталогу, в котором будет создан файл с собранной конфигурацией>" --log-level=info
Один из способов использования проекта
Исходные данные: Основная разработка ведется в одной из стандартных конфигураций 1С, куда добавляются новые объекты метаданных.
Задача: В другой конфигурации нужно проверить только измененные объекты метаданных
Выполняемые действия:
- Выгрузить конфигурационный файл 1С
- С помощью данного проекта оставить в конфигурационном файле только нужные объекты метаданных
- Сравнить и объединить конфигурации
Пример:
@echo off
rem -*- coding:OEM -*-
rem Внимание: т.к. в 1С принято имена пользователей вводить кириллицей,
rem то batch файл обязательно должен быть создан в кодировке OEM.
rem Иначе команда запуска 1С в пакетном режиме будет выдавать ошибку.
"C:\Program Files (x86)\1cv8\<Версия>\bin\1cv8.exe" DESIGNER /F "<Путь к базе>" /N "<Имя пользователя>" /DumpCfg "C:/Temp/temp.cf" /Out "C:/Temp/DumpCfg.log"
if not %errorlevel% == 0 (
exit 1
)
conf_robber -P "--cf=<путь к файлу *.cf>" "--target=<путь к каталогу, в который распаковываем>" --log-level=info "--settings=<путь к файлу settings.xml>"
if not %errorlevel% == 0 (
exit 2
)
rem <Нужные действия>
За счет быстрого разбора конфигурационного файла с помощью данного проекта, объединение конфигураций выполняется очень быстро. Например в конфигурацию «1С:Бухгалтерия предприятия, редакции 3.0», было добавлено 80 или больше общих моделей и одна обработка. Разбор конфигурационного файла (400 МБ) на машине с процессором Intel® Core™ i3 и 8 ГБ ОЗУ составляет шесть секунд.
License
This project and libraries in the directory 'libs' is licensed under MIT license.
Copyright (C) Evgeny Khramtsov, 2016