Методика и инструменты полуавтоматического обновления конфигураций 7.7 до типовой версии с сохранением модификаций

Данная публикация описывает методику и предоставляет инструменты для полуавтоматического обновления модифицированных типовых конфигураций 1С Предприятие 7.7 (версий ПРОФ) до типовых с сохранением модификаций.
В данной методике не используются системы контроля версий.
Update. 2024/01/23. В связи с переездом на x64 модифицирована часть файлов.

Благодарности

Благодарю Федора Езеева за создание и распространение такой утилиты, как GComp (http://1c.alterplast.ru/gcomp/);

Алексея (alexqc) за создание и распространение утилиты ConfStarter (//infostart.ru/public/14304/);

Ларри Уолла за создание языка программирования PERL и PERL-сообщество, продолжающее его развивать;

Авторов таких утилит, как diff и diff3 и тех, кто перенёс эти утилиты на платформу windows http://gnuwin32.sourceforge.net/packages/diffutils.htm

https://github.com/emanspeaks/Diffutils64 — версия для x64, без установщика. Я ставил x86 (ссылка выше), затем заменил бинарники в Program Files

Компанию ActiveState за windows-версию PERL 5 (http://www.activestate.com/activeperl)

Обновление

2024/01/23. В связи с переездом на x64 модифицирована часть файлов.

Добавлен конфигурационный файл vars.bat, содержащий ссылки на исполняемые файлы 1c и unrar.exe

Предисловие

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

Методика разработана в 2009 году и используется по сегодняшний день практически без изменений. С её помощью обновляются программы 1С Бухгалтерия 7.7, УСН, Зарплата и Кадры. Обновление занимает 15-20 минут с использованием RAM-диска.

Методика основана на трехстороннем сравнении 3-х конфигураций: Типовой, модифицированной Типовой и новой Типовой.

Методика основана на следующих принципах:

1. Обновление реквизитов, форм и таблиц осуществляется стандартным методом объединения 1С

2. Объединение текстов модулей производится методом diff3 с последующей автоматической зачисткой конфликтов 1с.orig <-> 1c.new, так как они не содержат модификаций.

3. Если форма или таблица не подвергались модификации, то принудительно подставляется форма 1C.new.

4. Контроль конфликтов осуществляется через Полный синтаксический контроль. Diff3 выделяет знаками "<", "|", ">" части текста, которые менялись и в новой типовой и в модифицированной. А эти знаки, сами по себе, не являются кодом встроенного языка 1С.

 

Методика основана на следующих инструментах:

1. Набор bat-скриптов, автоматизирующих основные этапы обновлений.

2. Утилита GComp для разборки/сборки MD-файла

3. Утилита ConfStarter для автоматического обновления результирующей базы обновлённым MD-файлом

4. Утилит diff и diff3 для сравнения текстовых файлов и автоматического внесения правок.

5. Набора PERL-скриптов, осуществляющих автоматизирующих процесс  сравнения и склейки модификаций.

Утилиты тестировались в среде x32 и x64. Рекомендуется, при необходимости, исправить явно указанные пути в vars.bat.

Начало

1. Установить ActivePerl версии 5.

1.1. Убедиться в ассоциации файлов .pl с файлом perl.exe.

2. Установить DiffUtils for Windows.

2.1. Убедиться, что утилиты доступны через переменную окружения PATH.

3. Установить UnRAR for Windows (http://www.rarlab.com/rar_add.htm)

4. Скачать и установить утилиты GComp и ConfStarter. Убедиться, что пути к ним есть в переменной окружения PATH

5. Скачать архив с утилитами update77.zip.

Методика

Термины

1с.ORIGinal. Типовая конфигурация, на которой базируется модифицированная.

1c.NEW. Типовая конфигурация, до которой обновляем.

MODified. Промежуточная конфигурация, используемая для обновления форм и таблиц.

original. Модифицированная конфигурация. Которую обновляем.

work. Рабочая конфигурация, в которой происходит склейка

result. Результирующая конфигурация. Результат обновления до типовой с сохраненим модификаций.

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

1. Создать папку c:update

2. Распаковать в c:update файлы архива update77.zip

2.1. Отредактировать пути в файле vars.bat

3.1 Запустить файл prepare1.5.bat. Будут созданы каталоги и скрипт ставится на паузу

+old
+1c.XXX
+1c.YYY
 

3.2. В этом месте нужно скопировать MD файл (или базу) обновляемой конфигурации в каталог OLD.

3.3. В каталог 1c.XXX нужно скопировать MD файл Типовой конфигурации, на которой базируется модифицированная. Должен быть оригинальный файл MD для ПРОФ версии. С Базовой GComp не работает. Каталог можно переименовать в 1C.<Номер версии>. Например, 1С.262

Порядок каталогов важен! При определении старой-новой версии конфигурации используется обычная сортировка.

3.4. В каталог 1c.YYY нужно скопировать MD файл Новой Типовой конфигурации.

Должен быть оригинальный файл MD для ПРОФ версии. Каталог можно переименовать в 1C.Номер версии. Например, 1С.270

3.5. Нажать Enter в окне скрипта.

3.6. Запустится Конфигуратор для каталога  c:updateWORK.

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

 

3.7. Скрипт делает технологические каталоги и копии. Распаковывает src.rar в подкаталог src

+old
+1c.XXX
+1c.YYY
+result
+work
+src
 +1c.new
 +1c.original
 +modified
 +work
 +original

3.8. Жмём Enter. Скрипт закрыватся.

4. Заходим в src и запускаем 0.make.bat. Ждём паузы ("Для продолжения нажмите любую клавишу…")

5. Запускаем Конфигуратор в каталог c:update
esult. Делаем полный синтаксический контроль. При обнаружении ошибок на знаки "<", "|", ">" анализируем текст конфикта и правим код.

Обновление завершено. Дальше — работа напильником. Правка форм и таблиц.

Дополнения, баги и фичи

1. Предполагается, что 1С установлена в c:Program Files1cv77BIN1cv7.exe. Если исполняемый файл 1С отличается, то необходимо исправить это в файле 7.update.result.bat и вернуть его обратно в src.rar

Все настройки к исполняемому файлу 1С и UnRar хранятся в файле vars.bat

2. При частых обновлениях, возможно наложение нескольких безимянных групп на формах объектов (например, форма элемента Справочник.Сотрудники в ЗиК).

3. При обновлении в режиме объединения, 1С делает следующие "косяки":

3.1. Если MOD-реквизит был неограниченной длины, а в 1C.NEW-типовой — ограниченной, то 1С поставит ограниченную длину, что чревато потерями данных.Тоже касается длины Наименования справочника, если она была увеличена по сравнению с типовой.

3.2. То же касается констант.

3.3. Не сохраняется Ввод на основании.

3.4. Не сохраняется Периодичность номера документа ("В пределах года" и т.д.)

4. Для 1С Бухгалтерии у документа ПоступлениеМатериалов возможно "пропадание" двух текстовых колонок в МЧ, из-за того, что GComp выгружает их с одинаковым идентификатором (Себестоимость и ВсегоСебестоимость). Наличие бага проверяется простым открытием формы документа после обновления. Исправляется воссозданием колонок.

5. При изменениях в типовых печатных формах возможно дублирование печатных форм (т.е. 1С.NEW форма + модифицированная). Связано с внутренними идентификаторами.

6. В каталоге src создаются 2 лог-файла объединения форм:
result. Содержит указание метода подмены модулей с путями (если объединение кода не требуется, а код модуля не менялся)
result2. Содержит указание форм, возможно, требующих проверки. Значит форма менялась и 1С и Вами.

Исправления

1. По досадному недоразумению в первую публикацию ошибочно был залит тестовый файл prepare1.2.bat

В нём нужно заменить (строки 23-28)

xcopy /y /e old*.* result
for /F %%A in (‘dir /on /b 1c.*’) do (
copy /y %%A1cv7.md work
goto NEXT2
)
:NEXT2

на

xcopy /y /e old*.* result
xcopy /y /e old*.* work

Исправленный файл в архиве перезалит

2. Добавлен конфигурационный файл vars.bat, содержащий пути к 1c и unrar.

Стартовый файл переименован в prepare1.5.bat

2 Comments

  1. dime2

    В первичную публикацию вкралась досадная ошибка. Был вложен неверный файл prepare1.2.bat (являвшийся экспериментальным)

    Правильный файл prepare1.4.bat прилагается

    Reply
  2. dime2

    Обновление от 2018/01/23. Доработана возможность быстрой настройки.

    Исправленные файлы прилагаются.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *