Выгрузка / загрузка правил Конвертации данных 2.1 в файлы / из файлов (для Git, SonarQube, VS Code и т.д.)

26.07.21

Интеграция - Перенос данных 1C

Реализация инструмента для выгрузки в файлы / загрузки из файлов правил для Конвертации Данных 2.1 (еще одна). На этот раз в виде внешней обработки, не требует установки и изучения дополнительных утилит, кроме тех, что вы хотите использовать. Подходит для версионирования правил в Git, совместной разработки, анализа кода и написанию обработчиков в более удобной среде.

Бесплатные

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

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
ConversionRulesLoader
.epf 79,66Kb ver:1.0.1
91 Скачать бесплатно

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Проблематика (Как я до этого дошел)

Когда я начал вплотную заниматься разработкой правил обмена на проекте, мне захотелось версионировать правила, чтобы видеть историю изменений. На первых парах я выгружал в Git просто файлы правил целиком, как есть, даже без доработок, которые предлагал в своей статье Станислав Ганиев.

Однако это было несерьезное решение, версионировать и работать с одним огромным файлом такая себе затея. И тем более, когда к разработке подключился коллега, было решено делать декомпозицию правил на структуру папок и файлов, чтобы получился полноценный репозиторий проекта с файлами xml и bsl.

На ИнфоСтарте уже есть несколько разработок на эту тему, от:

Это все очень крутые инструменты, но они требуют изучения и установки дополнительных компонентов, по крайней мере OneScript. Хотелось взять инструмент для простого 1Сника, который сможет запустить его в любой базе КД 2.1, т. е. в виде внешней обработки.

Такого инструмента не нашел, поэтому решил сделать сам. Ну как, сам, взял за основу проект Никиты Коротаева, и превратил код OneScript в обычный 1С. Благо, языки почти идентичны, чтобы запустить обработку в первый раз, пришлось изменить несколько строк. Дальше уже пошла работа над удобством использования и разные усовершенствования. Что получилось в итоге расскажу дальше.

 

Интерфейс обработки

 

Интерфейс Обработки

Основное (и единственное) окно программы представляет собой таблицу с добавленными конвертациями. Настройки сохраняются, поэтому можно добавить нужные правила один раз и навсегда. Напротив каждой конвертации вы указываете путь, куда выгружать /откуда загружать разобранные правила.

Ну и тут же в строке есть кнопки Выгрузить в папку и Загрузить из папки. Кстати, не смог сделать, чтобы кнопки были активны всегда, а не только при нажатии, почти не работал с обычными формами. Может, кто-то подскажет, можно ли сделать как-то лучше?

Внизу еще есть галка Добавлять описание параметров..., которая включает одну мою доработку, о ней подробнее расскажу в следующем разделе. 

 

Отличия от исходного инструмента

В исходных скриптах Никиты я сделал несколько доработок:

  1. Папки и файлы, отвечающие за конвертацию свойств, выгружались просто по номерам, было неинформативно, добавил в имена еще наименования правил.
  2. Увеличил количество сериализуемых обработчиков событий.
  3. Файлы алгоритмов называются по теперь по имени алгоритма, а не просто Текст, чтобы тоже повысить информативность.

И последнее, что касается как раз галки из интерфейса обработки. Добавил возможность выгрузки в файлы bsl обработчиков описание параметров, чтобы было удобнее работать во внешних редакторах (VS Code, Sublime...), были подсказки, не надо было лезть в справку за пояснениями. Вот пример описания для обработчика перед выгрузкой объекта:

#Область Параметры
#Если Клиент И Сервер Тогда
    Отказ = Ложь; // Булево. Если установить значение Истина, то выгрузка объекта производится не будет
    Параметры = Новый Структура(); // Структура, в которой хранятся переменные доступные во всех обработчиках
    ИмяПКО = ""; // Строка. Имя правила конвертации объектов, указанное по умолчанию в правиле выгрузки данных. При
    // выгрузке конкретных объектов может быть изменено
    Правило = Неопределено; // ссылка на данное правило выгрузки данных
    ВходящиеДанные = Неопределено; // произвольные вспомогательные данные, инициализированные в обработчике «Перед
    // обработкой» правила выгрузки данных как ИсходящиеДанные.
    ИсходящиеДанные = Неопределено; // произвольные вспомогательные данные, передаваемые правилу конвертации объекта.
    // В обработчиках ПКО данная информация будет доступна как переменная ВходящиеДанные
    Объект = Неопределено; // Произвольный. Выгружаемый объект. Может быть переопределен или назначен непосредственно
    // в обработчике.
КонецЕсли;
#КонецОбласти

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

 

Работа с правилами в Sublime

 

Варианты использования

1. В первую очередь, конечно, этот инструмент делался для версионирования и совместной разработки через Git. Командная разработка с его применением выходит на новый уровень: не нужно постоянно договариваться о совместных доработках, заниматься сложным переносом и объединением, бояться потерять свои наработки. В качестве гит-клиента я использую SourceTree, мне нравится его графический интерфейс.

2. Можно выгружать тексты обработчиков в SonarQube или другие системы для контроля качества кода. 

3. Также можно открыть всю папку с правилами или отдельные файлы в таких редакторах как VS Code или Sublime Text, и производить, например, удобный поиск по всем правилам. А с установленным плагином BSL LS можно редактировать тексты с автодополнением, подсказками и проверками.

4. Еще отлично может помочь Консоль кода на основе Monaco от salexdv. Например, вы открываете файл обработчика после загрузки документа в этой консоли, запущенной в базе-приемнике. Тогда у вас работает не только подсказка ввода по ключевым словам, но и вы находитесь в контексте конфигурации: будут видны общие модули, реквизиты объектов, конструктор запросов и т.д.

 

Gitflow

Процесс совместной разработки

Расскажу кратко о процессе, который мы используем при командное работе с правилами. По сути, это почти классический Gitflow.

  • В базе КД2 есть, как минимум, следующие варианты правил: рабочие, а также отдельные для каждого разработчика.
  • В гите есть две постоянных ветки: master, где лежат полностью проверенные рабочие правила и develop с правилами, по которым закончена разработка.
  • Когда разработчик начинает делать новую задачу, он "отпочковывается" от ветки develop, создает свою feature-ветку с именем задачи.
  • В этот момент в его локальной папке репозитория лежат разобранные правила из ветки develop.
  • С помощью Обработки в КД2 разработчик загружает правила из файлов в свою копию правил конвертации.
  • Начинается сама работа над правилами. В процессе работы можно делать промежуточные коммиты в feature-ветку выгружая правила через Обработку. В гит-клиенте можно посмотреть изменения и сделать коммит с комментарием.
  • Когда разработка по задаче закончена, делается последний коммит и происходит слияние feature-ветки в develop. Лучше использовать классический merge, с коммитом, даже если возможен fast-forward, т. е. когда изменений в develop не было. Если происходят какие-то конфликты в доработках, надо будет их разрулить в этот момент, однако из-за разделения на множество отдельных файлов, их вероятность сильно падает.
  • Когда совместно разработанные правила проверены и пора обновлять рабочие, происходит слияние ветки develop в master, аналогично предыдущему пункту. Правила из ветки master через Обработку загружаются в рабочие правила в КД2 и вставляются в продуктивные базы.

 

Заключение и благодарности

Буду рад, если этот инструмент кому-то пригодится в работе. Жду замечаний, пожеланий по обработке

Отдельное спасибо хочу сказать:

Репозиторий на GitHub: https://github.com/KonstantinHeinrich/ConversionRulesLoader

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

Конвертация Данных Git SonarQube VS Code

См. также

Перенос данных 1C Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

58000 руб.

04.08.2015    186537    440    301    

448

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    159937    960    317    

481

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.267.x) и БП 3.0 (3.0.194.x). Правила подходят для версии ПРОФ и КОРП.

38000 руб.

15.12.2021    33716    252    64    

190

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    187667    356    288    

416

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

58000 руб.

29.10.2018    62492    80    131    

79

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.25.x).

38000 руб.

23.07.2020    67661    314    94    

252

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

58000 руб.

15.04.2019    83427    224    174    

161

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

84000 руб.

05.10.2022    13212    15    8    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. karpik666 4309 26.07.21 11:22 Сейчас в теме
Спасибо за реализацию. Правда, не совсем понятно, почему не сделать функционал не отдельной обработкой, а включить его в форму "сохранить правил обмена" в КД 2, сами используем запуск git rules при этом.
Прикрепленные файлы:
2. CyberCerber 902 26.07.21 12:58 Сейчас в теме
(1) Отдельной обработкой, чтобы каждый мог скачать и у себя открыть, поставить. Я очень давно работал с конфами в обычном приложении, там же расширение не сделаешь? А всю конфигурацию, думаю, я не имею права выкладывать.
Мы тоже встроили в свою конфу, но в другом месте, тут может каждый для себя решить.
3. karpik666 4309 26.07.21 12:59 Сейчас в теме
(2) понятно, ну можно сделать как файл обновления, КД 2, все равно практически не обновляется, файл обновления cfu можно выкладывать на сайте.
4. CyberCerber 902 26.07.21 13:03 Сейчас в теме
(3) Да, интересное решение, но вдруг у кого-то другая версия КД или уже измененная. Мне кажется, встроить обработку в конфу и вывести кнопку куда нужно проблемой быть не должно. Если еще будут пожелания, подумаю над вашим вариантом.
Fox-trot; +1 Ответить
5. tormozit 7374 28.07.21 16:52 Сейчас в теме
(2) Расширять обычные формы нельзя, но добавлять в расширении можно.
6. tormozit 7374 28.07.21 16:54 Сейчас в теме
Идея - открывать обработчик на редактирование через консоль кода (например из портативного ИР) в основной базе через для соответствующей конфигурации через OLE - очень здравая особенно для больших обработчиков. Когда то давно мы так делали для внутренних задач.
7. marv-ua 24.01.22 17:51 Сейчас в теме
Похоже что есть ограничение на максимальную длину имени файла.
Падает с ошибкой:
Ошибка при вызове метода контекста (save)
{ВнешняяОбработка.ConversionRulesLoader.МодульОбъекта(344)}: ЭлементыКоллекции.save(ИмяФайла);
{ВнешняяОбработка.ConversionRulesLoader.МодульОбъекта(275)}: ЗаписатьЭлементВФайл(ИсходныйЭлемент, ИсходныйКаталог + ИмяЭлементаКоллекции + ".xml");
{ВнешняяОбработка.ConversionRulesLoader.МодульОбъекта(257)}: РазобратьКоллекциюОбъектов(Элемент, КаталогКоллекции);
{ВнешняяОбработка.ConversionRulesLoader.МодульОбъекта(255)}: РазобратьКоллекциюОбъектов(Элемент, КаталогКоллекции + Элемент.nodeName + "\");
{ВнешняяОбработка.ConversionRulesLoader.МодульОбъекта(266)}: РазобратьКоллекциюОбъектов(Элемент, КаталогКоллекции);
{ВнешняяОбработка.ConversionRulesLoader.МодульОбъекта(255)}: РазобратьКоллекциюОбъектов(Элемент, КаталогКоллекции + Элемент.nodeName + "\");
{ВнешняяОбработка.ConversionRulesLoader.МодульОбъекта(255)}: РазобратьКоллекциюОбъектов(Элемент, КаталогКоллекции + Элемент.nodeName + "\");
{ВнешняяОбработка.ConversionRulesLoader.МодульОбъекта(174)}: РазобратьКоллекциюОбъектов(Элемент, КаталогИсходныхКодов);
{ВнешняяОбработка.ConversionRulesLoader.МодульОбъекта(24)}: ЗаписатьКлючевыеСвойстваПравилОбмена();
{ВнешняяОбработка.ConversionRulesLoader.Форма.Форма.Форма(40)}: ВыгрузитьПравила(ТД.Конвертация, ТД.Каталог);
по причине:
Произошла исключительная ситуация (msxml6.dll): Системе не удается найти указанный путь.
Показать


Пока думаю как можно обойти чтоб не ковырять сохранение.
8. CyberCerber 902 24.01.22 17:56 Сейчас в теме
(7) Ясно. Постараюсь найти время, чтобы посмотреть.
Чему равно ИмяФайла здесь?
10. tambu 82 04.03.23 23:07 Сейчас в теме
(7) Тоже сталкивался с ограничением на длину файла. Сделал через консольную команду subst, пути к папке присваивается виртуальная буква диска.
9. KilloN 74 23.06.22 13:37 Сейчас в теме
мне захотелось версионировать правила, чтобы видеть историю изменений


А не кто не пробовал снимать совместимость и включать историю данных?
Для отправки сообщения требуется регистрация/авторизация