Особливості порівняння і об’єднання конфігурацій в режимі оновлення
Живе на форумі
Група: Команда
Повідомлень: 3405
З: Одеса
Подякували: 1244 раз
Рейтинг: 906
Зіставлення об'єктів при порівнянні конфігурацій
Правила зіставлення об'єктів
Для зіставлення об'єктів при об'єднанні конфігурації в 1С: Підприємство 8 використовуються властивість "Ім'я" об'єкта метаданих і його внутрішній ідентифікатор. Однак в різних варіантах порівняння алгоритм зіставлення об'єктів різний. Перш ніж докладно описати різні варіанти, спочатку опишемо правила зміни внутрішнього ідентифікатора. Ідентифікатор в межах однієї конфігурації ніколи не змінюється. Ідентифікатор не змінюється при вивантаженні конфігурації в cf або dt файли (включаючи файли поставки cf і поновлення cfu). Ідентифікатор не змінюється при використанні механізму групової розробки (в процесі переміщень між конфігурацією і сховищем). Ідентифікатор завжди змінюється при копіюванні об'єкта, в тому числі в процесі об'єднання конфігурацій. Пояснимо на прикладі. Створюємо нову конфігурацію. Виконуємо команду "Конфігурація - Порівняти, об'єднати з конфігурацією з файлу.". Програма виявить що поточна конфігурація порожня і запропонує виконати повне завантаження (аналогічно команді "Конфігурація - Завантажити конфігурацію з файлу"). Якщо погодиться на запропонований варіант, то в результаті все об'єкти збережуть свої ідентифікатори. Якщо ж відмовитися і виконати звичайне об'єднання, то всі об'єкти ідентифікатори поміняють, хоча логічно виходити дві однакові конфігурації.
Тепер розглянемо алгоритми зіставлення об'єктів. Існують три варіанти.
- Порівняння довільних конфігурацій. Виконується зіставлення по імені об'єкта. Якщо для якихось об'єктів пару знайти не вдалося, виконується зіставлення за ідентифікатором.
- Порівняння родинних конфігурацій. Маються на увазі конфігурації, про які можна точно стверджувати, що вони є різними версіями однієї і тієї ж конфігурації (приклади - порівняння основний конфігурації з конфігурацією бази даних або з конфігурацією сховища). Виконується зіставлення тільки за ідентифікатором об'єкта. Ім'я об'єкта не використовується.
- Порівняння з конфігурацією постачальника. Виконується зіставлення по ідентифікаторів, але при цьому ідентифікатори не обов'язково повинні бути однакові.
Уточнення: автоматичний вибір буде зроблений не тільки за умови вибору відомої пари, але і при правильному порядку, коли першою вказується основна конфігурація. Цим можна скористатися для того, щоб змінити алгоритм зіставлення для відомої пари конфігурацій, досить їх поміняти місцями.
Тепер розглянемо варіант порівняння з конфігурацією постачальника. Його особливість пов'язана з наявністю двох варіантів підтримки - з включеною можливістю змін і без. У другому випадку оновлення виконується шляхом завантаження нової версії конфігурації постачальника, тобто, як було описано вище, ідентифікатори об'єктів при цьому не змінюються. У першому випадку використовується кероване об'єднання конфігурацій, і при цьому нові об'єкти отримують нові ідентифікатори. Разом з тим, зіставляти об'єкти по іменах в цьому випадку не можна, оскільки зміна користувачем імені не повинно призводити до втрати зв'язку з об'єктом постачальника. У зв'язку з цим використовується наступна техніка. Для кожного об'єкта постачальника запам'ятовується пара ідентифікаторів об'єктів (в конфігурації постачальника і в конфігурації на підтримку). І зіставлення виконується тільки за цими парам. Для забезпечення логічної цілісності підтримки конфігурації одного разу створена пара ніколи не зміняться. Якщо в новій версії постачальника з'явився новий об'єкт, то користувач при оновленні може просто його скопіювати, а може зіставити з якимось своїм об'єктом. Але в подальшому цю зв'язок змінити буде не можна.
Вплив зіставлення об'єктів на швидкість порівняння конфігурацій
Порівняння великих конфігурацій - процедура досить тривала, особливо в режимі оновлення конфігурації постачальника, коли проводиться три порівняння (старої і нової конфігурації постачальника, і конфігурації користувача з кожною з них). Загальне правило можна сформулювати так - порівняння виконується в оптимізованому режимі (набагато швидше) в разі дотримання двох умов:
Серед зіставлених об'єктів немає пар з різними ідентифікаторами.
Серед несопоставленние об'єктів немає можливих пар з однаковими ідентифікаторами.
На основі цих правил можна пояснити різницю в швидкості порівняння при оновленні конфігурацій. Версії установки постачальника завжди порівнюються максимально швидко, оскільки вони виходять з однієї і тієї ж конфігурації шляхом створення файлів постачання і - або поновлення і, як було зазначено вище, ідентифікатори об'єктів залишаються незмінними. Швидкість порівняння конфігурації користувача залежить від історії змін у версіях конфігурації постачальника. Після того як користувач включив можливість змін, порівняння відбувається швидко, оскільки ідентифікатори всіх зіставлених об'єктів однакові. Але як тільки в якомусь із оновлень постачальник додасть хоча б один новий об'єкт, після виконання оновлення цей об'єкт отримає новий ідентифікатор, і всі наступні порівняння користувальницької конфігурації з конфігурацією постачальника будуть виконуватися помітно повільніше.
Зауваження по методиці використання механізму
Часто у фахівців виконують впровадження виникає питання, як правильно ставити конфігурацію на підтримку: включати можливість зміни в дистрибутивному варіанті установки постачальника або свою власну конфігурацію об'єднати з цим дистрибутивом з одночасною постановкою на підтримку. Принципової різниці немає. Логічно результат буде однаковий, що ж стосується швидкості порівняння при оновленні, то в першому випадку вона буде набагато вище, але лише до того моменту як постачальник в новій версії додасть хоча б один новий об'єкт, що, цілком можливо, відбудеться вже в наступній версії . Після чого вже ніяких відмінностей в швидкості порівняння не буде.
Видалення об'єктів постачальника
Розглянемо варіанти видалення об'єкта постачальника.
видалення користувачем
Для того щоб видалити об'єкт постачальника, користувач повинен спочатку зняти з підтримки його і всіх йому підлеглих. При оновленні цей об'єкт не буде позначатися на об'єднання.
видалення постачальником
Починаючи з релізу платформи 8.0.7, при виконанні будь-якого об'єднання конфігурацій існує можливість видалення об'єктів основної конфігурації. За замовчуванням ця можливість включена тільки в режимі оновлення конфігурації постачальника. Для включення її в інших режимах слід встановити прапорець "Дозволити видалення об'єктів основної конфігурації" в діалозі настройки порівняння і об'єднання конфігурацій.
Розстановка позначок видалення об'єктів постачальника за замовчуванням проводиться за такими правилами. Якщо користувач змінював об'єкт постачальника в порівнянні з попередньою версією конфігурації постачальника, то об'єкт за замовчуванням не позначається на видалення, якщо об'єкт ідентичний об'єкту постачальника попередньої версії, то він на видалення позначається. Якщо об'єкт був помічений на видалення (автоматично або вручну), то при натисканні кнопки "Виконати" відбувається контроль посилальної цілісності. При виявленні нерозв'язних посилань на видаляється об'єкт, буде видано вікно показу таких посилань але, на відміну від нерозв'язних посилань, що утворюються в результаті відмови від копіювання будь-якого об'єкта установки постачальника (або будь-який іншій конфігурації, яка бере участь в об'єднанні), можливості продовжити об'єднання (і видалення об'єкта) в цьому випадку немає.
ДП "ЄВРОСОФТПРОМ" склала петицію на сайті Президента щодо перегляду введених проти неї санкцій.
Всі бажаючі можуть її підписати.
Інформацію про петиції можна отримати тут