"Конвертация данных" + Git. Решение проблемы различий в файлах

07.11.19

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

Как известно, типовая конфигурация «Конвертация данных» обладает одним недостатком, мешающим работать с ней в Git-е. Если выгруженные из нее правила обмена загрузить в другую КД, а потом снова выгрузить, то полученные два файла будут очень сильно отличаться друг от друга, и при сравнении (diff) доработок будет невозможно провести код-ревью, равно как найти сами изменения, которые закоммитил разработчик.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Файл конфигурации "Conversion plus"
.cf 5,55Mb ver:1.1
59
59 Скачать (1 SM) Купить за 1 850 руб.

В предлагаемой доработке реализованы инструменты, позволяющие получать идентичные файлы правил при их последовательной загрузке/выгрузке разными разработчиками, что позволяет работать в КД в группе с использованием Git-а.

Что было изменено и добавлено

1. Исправлена ошибка: Исчезающий Приемники в ПКС при отсутствии Источника

Если в ПКС необходимо указать только Приемник без Источника (Например, значение заполняется в коде обработчика), то при выгрузке и загрузке таких правил Приемник очищался (Рис. 1).

Эта же ошибка проявлялась и тогда, когда в настройках ПКС разработчику нужно, чтобы Источник и Приемник различались – при повторной загрузке правил Приемник приравнивался к источнику.

2. Установлено единообразие при выгрузке: Конечные пробелы в строках

При выгрузке правил не однозначно производилась выгрузка концовок строк XML для атрибутов и обработчиков конвертации, из-за чего правила, выгруженные сразу после разработки, и повторно выгруженные после загрузки их в КД, могли отличаться пробелами в конце строковых значений.

То же самое можно было наблюдать и при выгрузке кодов и наименований для ПВД, ПКО, ПКС, ПКЗ, ПОД, ПКГО, ПКГС и их групп.

Исправлено: при выгрузке все строки дополнительно обрезаются функцией СокрЛП().

3. Добавлен инструмент адаптации под Git: Порядок элементов и лишний коммит с датой

Стандартно, выгрузка объектов конвертации (ПКО, ПКС и т.д.) производится в порядке, отсортированном по реквизиту «Порядок выполнения», который можно найти на закладке «Дополнительно» любого объекта.

Проблема типовой «Конвертации данных» состоит в том, что при разработке правил обмена для новых элементов при некоторых обстоятельствах (каких именно, не стал выяснять) реквизит «Порядок» может быть заполнен одинаковым для двух соседних элементов, или не заполнен вовсе (остается нулевой).

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

Для решения этой проблемы, в меню «Отладка обработчиков», после пункта «Настройка» добавлен новый – «Адаптация под Git-flow». Основное его предназначение – выполнение корректировки реквизитов «Порядок» у всех объектов текущей конвертации (Рис. 2).

Также, дополнительно можно указать необходимость округления даты обновления правил при каждой выгрузке в репозиторий. Это дополнительно поможет избежать самого часто встречающегося изменения при коммите (Рис. 3).

Порядок внедрения

1. В рабочей конфигурации включаем возможность внесения изменений;

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

3. Таким же образом должны обновить свои конфигурации КД все разработчики вашей команды;

4. Запускаемся в пользовательском режиме, и для всех правил обмена выполняем корректировку нумерации порядка выгрузки;

5. Выполняем первый коммит откорректированных правил обмена, чтобы все разработчики группы работали с идентичными файлами (пункты 4 и 5 достаточно выполнить одному разработчику из команды, остальные получат изменения из Гита (pull)).

Техническая информация

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

Перечень доработанных и добавленных объектов:

- Новые общие модули bnГитфлоу и bnГитфлоуПовтИсп

- Изменена общая форма ПравилаОбмена

- Новая общая форма bnНастройкиГитфлоу

- Изменены обработки ВыгрузкаКонвертации и ЗагрузкаКонвертации

Изменения выполнены только в коде модулей, диалоги не затронуты.

Все измененные и добавленные объекты помещены в отдельную подсистему bnГитфлоу.

Предназначен для версии "Конвертации данных" 2.1.8.2

 

Новое в версии от 18.12.2018

1. Опция контроля необходимости корректировки порядков элементов вынесена в настройки;

2. В форме выгрузки правил обмена добавлен флажок "Сохранять оригиналы XML". Позволяет одновременно выгружать правила обмена/регистрации в виде исходных XML (например, для версионирования в Git), и в виде архива zip (для загрузки в рабочий контур).

3. В форме выгрузки правил теперь корректно сохраняются/восстанавливаются пути к файлам, в ходящим в комплект zip-поставки. Раньше, при выборе других правил конвертации, правила корреспондента и правила регистрации оставались прежними.

4. Реализована возможность редактирования кода обработчиков в VS Code с установленным плагином 1C:BSL. Возможность появилась во всех формах, где присутствуют настройки обработчиков событий. Перед первым использованием необходимо зарегистрировать VS Code как программу по умолчанию для файлов с расширением *.bsl.

 

Новое в версии от 07.11.2019

1. Оптимизирован алгоритм перенумерации "Порядка" элементов для единообразной выгрузки в Git. Раньше, если сбивался номер одного элемента (ПКО, ПКС, и т.д.), то корректировка правил обмена вызывала изменение реквизита "Порядок" у большинства элементов конвертации. Теперь изменения затрагивают только элементы с неуникальным и нулевым "Порядком", что приводит к минимальным изменениям в коммите.

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

3. Устранены выявленные мелкие недочеты в алгоритме выгрузки правил.

 

Конвертация данных КД+Гит КД+Гитфлоу + Гит Гитфлоу Gitflow Git-flow и правила обмена в КД

См. также

SALE! %

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 10000 руб.

02.09.2020    161241    892    399    

872

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

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

8400 руб.

20.08.2024    8554    65    29    

76

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

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

22200 руб.

06.10.2023    15675    38    8    

73

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

9360 руб.

17.05.2024    23835    70    45    

119

SALE! %

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

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

15000 10000 руб.

10.11.2023    10655    38    27    

63

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

4800 3840 руб.

14.01.2013    188483    1142    0    

913

SALE! %

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 15000 руб.

07.10.2021    17553    6    32    

42

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

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7829    8    35    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. artbear 1563 08.06.17 16:35 Сейчас в теме
+ за Гит и решение проблемы больших различий в файлах
MGraf; stas_ganiev; +2 Ответить
2. pbazeliuk 1969 08.06.17 19:55 Сейчас в теме
Функционала и описания применения методики Git-flow не увидел.
awk; artbear; +2 Ответить
3. stas_ganiev 1809 09.06.17 01:49 Сейчас в теме
(2) Я не ставил перед собой целью описание технологии Git-flow, я просто решил проблему невозможности применения КД в группе при использовании Гита, этим и поделился. Описание технологии - это тема отдельной статьи, на эту тему уже есть немало вебинаров и статей, в том числе ваша, Петр :)
Somebody1; abasovit; brr; Saint13; Vlade89; gulchitai; +6 Ответить
7. pbazeliuk 1969 09.06.17 09:57 Сейчас в теме
(3) При прочтении заголовка ожидал интеграцию с git, плюс, конечно, заработали. Надеюсь следующая статья будет об этом ;)
10. user757186 13.06.17 13:37 Сейчас в теме
(3) это вам, видимо, намекнули, что термин Gitflow в заголовке не относится к статье никак. Gitflow - это только методология работы с DVCS, она даже к Git не привязана.

Вы решили проблему неидемпотентного сохранения, результат этой работы может использоваться в любой VCS и с любой методологией.
awk; stas_ganiev; artbear; +3 Ответить
11. stas_ganiev 1809 15.06.17 10:49 Сейчас в теме
(10) Спасибо за конструктивное замечание. Заголовок поправил
12. user757186 15.06.17 11:31 Сейчас в теме
(11) А вам спасибо за разработку, очень нужную проблему решили
4. gulchitai 09.06.17 02:17 Сейчас в теме
Плюсую, молодец!
stas_ganiev; +1 Ответить
5. пользователь 09.06.17 03:06
Сообщение было скрыто модератором.
...
6. пользователь 09.06.17 03:08
Сообщение было скрыто модератором.
...
8. bforce 482 09.06.17 16:57 Сейчас в теме
Файл правил в итоге остается один большой или он разбивается на фрагменты?
9. stas_ganiev 1809 10.06.17 02:28 Сейчас в теме
(8)файл остаётся один, только уменьшается на несколько килобайт за счёт обрезания пробелов в конце строк
13. LexSeIch 211 08.09.17 04:48 Сейчас в теме
Спасибо за публикацию. Берем в копилку знаний.
stas_ganiev; +1 Ответить
14. Redinternational 86 08.09.17 10:29 Сейчас в теме
Полезное решение, спасибо!
15. d4rkmesa 19.12.18 15:47 Сейчас в теме
Какая крутотень. Попробую освоить. Спасибо, что довели это дело до конца, все-таки. Отсутствие даже примитивного синтаксического контроля в КД 2 и нюансы групповой разработки иногда из себя выводили - порой проще было в Notepad++ что-то поправить, если нужно было быстро. Сейчас наконец можно все привести к единому знаменателю.
16. fatman78 21 09.06.22 15:36 Сейчас в теме
17. fatman78 21 06.10.22 18:50 Сейчас в теме
Еще один вариант реализации разборки/сборки на файлы для версионирования Git в виде внешней обработки
Оставьте свое сообщение