Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Особенности блокировки таблиц последовательности документов          
Batchir Подменю пользователя
сообщение 21.03.09, 9:23
Сообщение #1

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Работу с последовательностью документов можно разделить на три независимых процесса – регистрация документа в последовательности, передвижение границы последовательности вперед, передвижение границы последовательности назад. Каждый из процессов по-своему влияет на блокировку записей последовательности документов.

Последовательность документов состоит из двух таблиц данных. Одна таблица содержит записи регистрации документов в последовательности, вторая таблица содержит границы последовательностей в разрезе измерений последовательности. Каждая таблица по-разному используется и, соответственно, по-разному блокируется во всех этих трех процессах.

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

Регистрация документа в последовательности

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

Перемещение границы последовательности вперед

Перемещение границы последовательности вперед происходит только при проведении документа. Процесс перемещения границы вперед состоит из следующих операций:
  1. Проверяется, что момент регистрации документа больше чем граница последовательности.
  2. Проверяется, что в последовательности в диапазоне от границы до момента регистрации данного документа нет регистрации других проведенных документов.
  3. Предвигается граница последовательности на новый момент времени.


В результате этих действий оказывается заблокирована и таблица регистрации, и таблица границ. Таблица регистрации заблокирована в диапазоне от границы последовательности по момент времени регистрации документа в последовательности. Таблица границ будет заблокирована от изменения границы, независимо от того раньше она момента регистрации документа или позже, так как ее чтение осуществляется с блокировкой для последующего обновления (FOR UPDATE).
Если у последовательности есть измерения, то заблокированы будут только записи и границы последовательности со значениями измерений, совпадающими со значениями измерений записей регистрации.

Например, в конфигурации есть последовательность документов "ПартионныйУчет" с одним измерением "Товар", в которой регистрируются документы "РасходнаяНакладная". В таблице границ последовательности существуют три границы со следующими значениями измерений "Стол", "Стул" и "Диван". Допустим, записывается и проводится документ, который осуществил регистрацию по двум товарам: "Стул" и "Диван". Тогда в таблице границ последовательности будут заблокированы 2 записи со значением измерения "Товар" равным "Стул" и "Диван".

Перемещение границы последовательности назад

Перемещение границы последовательности назад происходит при записи набора записей регистра, который участвует в последовательности. Процесс перемещения границы назад состоит из следующих операций:
  1. Поверяется, что граница последовательности больше момента времени записи регистра.
  2. Предвигается граница последовательности на момент времени записи регистра.


В результате оказывается заблокирована таблица границ последовательности. Если в последовательности есть измерения, то будут заблокированы только те границы, у которых значения измерений равны значениям измерений записей регистра, в соответствии с настроенным соответствием измерений регистра и последовательности.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 27.04.24, 18:42
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!