Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Що таке нетипова конфігурація 1С?

Що робити?

Для початку, спробуємо сформулювати завдання. Нам потрібно отримати конфігурацію, що складається з нового релізу і всіх наших доробок. Якщо наші доопрацювання суперечать змінам постачальника - прийняти рішення про пріоритет тієї чи іншої доопрацювання. Конфігурація повинна бути робоча і дані, що зберігаються в базі, не повинні бути втрачені.

Увага! Даний посібник призначено тільки для прямих рук! Якщо таких немає - дешевше звернутися до фахівців.

необхідний софт

gcomp для розбирання та збирання файлу MD. Величезна подяка Федору Езееву за таку корисну утиліту.

kdiff3 для об'єднань змін

correct_dlg.pl, що входить в джентельменський набір gcomp

порядок поновлення

Нехай є вихідна робоча конфігурація, в яку розробники не вносили ніяких змін. Назвемо цю конфігурацію А. вона буде служити відправною точкою -Загальна предком в процесі об'єднання. Як знайти цю конфігурацію? Насамперед потрібно визначити, який реліз конфігурації постачальника був базовим.

У робочій базі йдемо в константи - номер релізу і дивимося номер.

Також відразу звернемо увагу, чи були коректно встановлені попередні оновлення (виправлення помилок неписьменних оновлень - тема для окремої статті). Номер релізу в найменуванні і в значенні повинен збігатися.

Значить, у нас є реліз 7.70.040. Нам потрібно оновити його до поточного (7.70.041). Це може бути і на 5-10 релізів пізніше, не обов'язково оновлювати по одному. Але в будь-якому випадку нам потрібно мати обидва релізу постачальника - 040 і 041. Ймовірно, може стати в нагоді добірка всіх МД постачальника, випущених в останні пару років.

Отже, вихідні дані:

Конфігурація 040 - А - папка 040

Конфігурація наша робоча (допрацьована 040) - В - папка 040MY

Конфігурація 041 - З - папка 041

Складемо всі три МД у відповідні папки.

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Розібрати А, В і С на текстові файли за допомогою gcomp

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

На виході отримаємо для кожної конфігурації папки Src.

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Обробити скриптом correct_dlg.pl (в складі gcomp) все три версії, якщо розробники мають різні теми робочого столу / різні версії ОС (7 і ХР).

perl correct_dlg.pl -h

покаже опис параметрів

perl correct_dlg.pl -d SRC

виправить всі діалогові форми в каталозі SRC.

І отримаємо приблизно такий результат роботи скрипта:

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Завантажити А, В і С в kdiff3, результат об'єднання - R. Виглядає це приблизно так:

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Тиснемо Ок і дивимося, як легко kdiff3 обходить поодинокі конфлікти самостійно. Я б не сказав, що моя конфігурація «трохи» змінена: швидше, в ній не залишилося живого місця без доробок.

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Але з шістьма-то конфліктами нам треба буде впоратися самостійно.

Файли GUIData і Tagstream вказати з папки В

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Виконати напівавтоматичне об'єднання каталогів. Конфлікти вирішуються вручну, але їх зазвичай дуже мало - лише двічі змінені рядки коду / процедури і поїхали діалоги.

Тиснемо F7 і ...

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

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

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Як відбувається злиття? Про це наочна картинка з конфліктом:

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

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

Аналогічно, і мої доопрацювання перейдуть в результат:

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Тиснемо Ок, перевіряємо зміни і йдемо далі по F7.

А ось і приклад конфлікту:

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Відразу зазначу, поле «Є підставою для:» можна сміливо приймати з будь-якого джерела, наприклад, ставити з В. Головне - посилання.

Вельми цікавий об'єкт - ІдентіфікаториКонфігураціі. Я тут завжди вибираю найбільший номер Ід.

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Файл Об'ектиМетаданних потрібно об'єднати так, щоб туди увійшли всі нові об'єкти В і С. Пріоритет кодів Ід віддаємо конфігурації В.

Виписати список двічі змінених таблиць (А-В є зміни + А-С теж є зміни), з ними робота окремо. Єдиний геморой на хвилин двадцять.

Зібрати МД з папки R. Усунути дублі числових кодів (МАКСІДОМ + 1), рядки з дублями текстових кодів видалити.

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

У копії конфігурації a виконати об'єднання з R, після видалити віддалені розробниками об'єкти. Список віддалених об'єктів можна отримати, об'єднавши тому R з a - до звіту (коротко).

Копіюємо простіше простого:

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

І об'єднуємо штатної 1С також просто:

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

І відразу тиснемо Ок - адже ми вже об'єднали всі наші доопрацювання.

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Я зазвичай роблю синтаксичну перевірку, бо можна трохи помилитися при об'єднанні.

Правильне оновлення нетипової (зміненої) конфігурації 1с 7

Повідомлення про відсутність помилок не може не радувати:

Вручну об'єднати двічі змінені таблиці, відкривши всі три версії в конфігураторі А. Трохи пізніше розповім, як користуватися 1cv81fv - допоможе з таблицями.

Копію А (вона ж R) перевіряємо на синтаксис / працездатність. Двічі змінені спільно діалоги потрібно підправити, щоб всі елементи були видні і розташовувалися коректно. Перевіряємо помічник поновлення на цій тестовій копії.

Залити через Завантажити змінену в робочу копію.

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

Загалом, разом з написанням цієї статті, на оновлення я витратив дві години. А скільки Ви берете з замовника за дві години такої роботи?

Чого бажано уникнути:

Видалення об'єктів, тому що їх важко шукати при об'єднанні з А: механізм об'єднань 1С не відслідковує перейменувань.

Перейменування об'єктів, так як це буде видалення і створення.

Дуже частого об'єднання в робочу версію, тому що саме об'єднання витратний за часом процес і вимагає зупинки розробки всіх розробників.

Об'єднання змін без достатнього тестування В або С.

Не по зубах? Звертайтеся до нас. Беремо оплату за виконану обсяг роботи, а не за просіженние годинник у замовника.