Внутрішній устрій версіонірованія об'єктів УПП 1
призначення
У типовій конфігурації "Управління виробничим підприємством" версії 1.3 є функціонал версіонірованія об'єктів, що дозволяє відслідковувати зміну довідників і документів в часі. Зміни відслідковуються як для реквізитів, так і для табличних частин.
Як ми бачимо, в двох версіях документа відрізняються тільки дата. Далі внутрішній устрій універсального механізму версіонірованія об'єктів.
Внутрішній пристрій
Виконаємо короткий опис механізми версіонірованія. Розглянуті об'єкти входять до підсистеми "Версіонування об'єктів".
Почнемо з налаштувань і закінчимо таблицой зберігання версій.
Всі настройки виконуються за допомогою наступних об'єктів:
- Константа "Використовувати Версіонування об'єктів"
- Реєстр. відомостей "Налаштування версіонірованія об'єктів"
- Перерахування "Варіанти версіонірованія об'єктів"
Константа має логічний тип. Якщо вона відключена, то незалежно від налаштувань версіонірованія для окремих об'єктів - Версіонування не виконуватиметься. У регістрі відомостей "Налаштування версіонірованія об'єктів" виконується настройка для окремих видів довідників і документів. Є три види настройки для версіонірованія для об'єкта, задані в відповідному перерахування. Для довідників варіант "Версіоніровать при проведенні" не доступний.
Вимірювання "Тип об'єкта" має строковий тип, в якому зберігається ім'я об'єкта метаданих, для якого встановлюється варіант версіонірованія.
У режимі 1С: Підприємство настройки версіонірованія об'єктів включаються через форми редагування налаштувань програми:
Натиснувши на кнопку "Налаштування версіонірованія об'єктів" ви потрапите в форму редагування регістра відомостей для установки параметрів для кожного окремого об'єкта:
Всі вищеописані об'єкти і складають основу для настройки версіонірованія об'єктів в УПП 1.3. Розглянемо як ці настройки використовуються в подальшому.
Використання налаштувань
Надалі під час запису довідників і документів виконується перевірка включення версіонірованія для записуваного об'єкта. У разі, якщо Версіонування включено, то виконується збереження версії в регістрі "Версії об'єктів". В рамках цієї статті ми не будемо розглядати зберігання версій об'єктів в базі. Це питання буде розглянуто в наступній статті.
Зараз звернемо увагу на підписку на події "ВерсіонірованіеОб'ектов_ПріЗапісіОб'екта". Подія підписки виконується для будь-яких об'єктів довідників і документів. Оброблювач підписки містить наступний алгоритм:
Нас цікавить лише функція "Об'ектВерсіоніруется", яка визначає необхідність запису версії для записуваного об'єкта. Ось лістинг цієї функції:
Спочатку перевіряється чи включена константа використання версіонірованія об'єктів. Після цього отримуємо варіант версіонірованія для поточного об'єкта, який ми налаштовували в регістрі відомостей "Налаштування версіонірованія об'єктів". Лістинг цієї функції:
замість висновку
Вище ми розглянули внутрішній устрій налаштувань версіонірованія об'єктів в конфігурації "Управління виробничим підприємством" версії 1.3. У наступній статті ми детально розглянемо спосіб зберігання версій об'єктів в базі даних, а також роботу з ними.