v83unpack icon indicating copy to clipboard operation
v83unpack copied to clipboard

При выгрузке файлов конфигурации большое количество изменений

Open viskvortsov opened this issue 10 years ago • 8 comments

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

  1. Меняются местами строки в файлах,
  2. Меняется язык выгрузки (расширеннаяподсказка превращается в extandedtooltip)

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

Сталкивались с таким? Можете подсказать как победить?

viskvortsov avatar Jun 08 '15 09:06 viskvortsov

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

Как вариант - это выполнять сортировку для всех хмл-файлов, чтобы порядок всегда был один и тот же. Но пока эту задачу никто не решил :(

artbear avatar Jun 08 '15 10:06 artbear

Вот что ответил 1С на партнерке: Многие проблемы не идентичности имеют своим истоком сами конфигурации - в них содержится достаточно много мертвых данных в том числе и таких которые разработчик конфигурации просто не может увидеть (особенности реализации структуры данных конфигурации) ни в кофигураторе не в XML выгрузке, а в сравнении они участвуют, хотя на идентичность конфигураций не влияют.

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

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

Замечу что многие (но не все) из этих проблем уходят если:

  1. загрузить конфигурацию из XML
  2. сохранить файл конфигурации (.cf)
  3. повторно выгрузить в XML конфигурацию загруженную из XML на 1 шаге
  4. загрузить полученную XML выгрузку в пустую базу
  5. сравнить с .cf файлом полученным на шаге 2

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

Сделал по этому методу. Действительно проблемы уходят, но только на пару-тройку коммитов.

viskvortsov avatar Jun 08 '15 10:06 viskvortsov

Имхо 1с ники, просто отмазались. То что меняютса xml теги, в зависимости от региональньіх настроек компьютера, базьі - это факт, почему не учитывают ключи коммандной строки и принудительную локализацию - не знаю, им видно лень.

По факту, борюсь с этим только тем, что написал скрипт на python который парсит template.xml и для определенных тегов отменяю изменения, если только они поменялись, т.к. там по факту только и поменялось, что uuid.

pumbaEO avatar Jun 08 '15 19:06 pumbaEO

@pumbaEO Поделишься скриптом?

artbear avatar Jun 08 '15 19:06 artbear

https://github.com/pumbaEO/undiff1c/blob/master/src/undiff1c/undiff1c.py

precommit hook: python undiff1c.py --g требует установки unidiff, pip install unidiff

pumbaEO avatar Jun 09 '15 06:06 pumbaEO

@Pr-Mex тоже это решал, но получением "Отчета по хранилищу" и его парсингом. Измененные объекты, которых нет в отчете - считаются неизменившимися.

EvilBeaver avatar Jul 07 '15 13:07 EvilBeaver

Ещё добавлю, что много изменений бывает при первой выгрузке. Если концу разобрать и собрать и в таком виде оставить, то при последующих сборках разборках проблем будет меньше.

Pr-Mex avatar Jul 07 '15 14:07 Pr-Mex

А 1С как обычно хитрит. Достаточно Ерп 2.0 разобрать, собрать и сравнить с оригиналом.

Pr-Mex avatar Jul 07 '15 14:07 Pr-Mex