Довідковий матеріал

Проблема проведення послідовності під час роботи з УРБД.

Проблема проведення послідовності під час роботи з УРБД. Як вирішити проблему проведення послідовності під час роботи з УРБД?

Проблема проведення послідовності під час роботи з УРБД.

Пошукаємо відповідь на запитання, чому в окремих випадках не працює стандартне проведення послідовності.

Методы проведения последовательности

Існує три методи проведення послідовності:

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

Було проведено експеримент на базі, у SQL форматі з УРБД (ЦБ).

Для експерименту використовувалися таблиці _1SSTREAM,_1SJOURN. У Таблиці журналів цікавило поле DS7536, де 7536 — це десятковий код послідовності.

Під час відновлення послідовності проводяться лише ті документи, для яких досліджуване поле DS7536 = 1. Таким чином, для відновлення послідовності необхідно для всіх проведених документів установити досліджуване поле DS7536 = 1. Далі виникає питання: чому за можливих значень 0 і 1 у методі послідовності "НалежитьПослідовності" є ще значення і 2?

Пояснимо ситуацію, що виникла.

Джерелом усіх документів є периферійна інформаційна база, при цьому прапорець установлено у властивостях міграції послідовності у віконці "Єдина послідовність у центральній ІБ". Тому в периферійній інформаційній базі, де здійснюється введення всіх документів, поле DS7536 набуває значення 0 або 2, і, як правило, метод НалежитьПослідовності повертає 0 або 2. Крім того, також під час автообміну до центральної бази передається значення досліджуваного поля DS7536, що дорівнює 2.

Тепер розглянемо те, що відбувається за стандартного методу проведення послідовності. 1С не здійснює через метадані належності послідовності перевірку (оскільки є ще рухи, що впливають на послідовність, і лише за проводками можна судити, чи входить документ до послідовності), а перевіряє поле DS7536, що дорівнює 2. Оскільки 2 <> 1, то відновлення послідовності не може привести до проведення документів, що входять до послідовності.

Підсумуємо.

  1. Якщо документи вводяться не в центральній базі, тобто робота ведеться в розподіленій базі, а прапорець при цьому встановлено у вікні "Єдина послідовність у центральній інформаційній базі", то поле DS7536 завжди дорівнює 2 або 0, і це — правильно.
  2. У момент автообміну можливий глюк, що призводить до того, що завантаження поля DS7536 здійснюється з периферійної інформаційної бази й воно стає рівним 2.
  3. Програма 1С перепроводить під час проведення лише ті документи, поле DS7536 яких = 1.

Глюк може з'явитися як на другому, так і на третьому етапі.

Як вирішити проблему проведення послідовності під час роботи з УРБД?

Що робити, якщо 1С не здійснює перевірку через метадані належності послідовності:

  • Послідовність можна відновлювати власними методами, перевіряючи належність документа до послідовності через метадані
  • Потрібно встановити поле DS7536 = 1 для тих ситуацій, коли воно дорівнює 2.

1С не проводит проверку через метаданные принадлежности последовательности

У ході дослідження було виявлено, що в периферійній інформаційній базі послідовність завжди перебуває на останньому проведеному документі (за полем Date_time_IDDOC або за часом на осі часу), тобто рухи регістрів ігноруються.

Записатися телефоном