Последовательность документов в 1С 8.3

Курс

Настройка последовательности

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

Например, в информационной базе используются 2 вида документов: приход товара и расход товара. При расходе товара сразу рассчитывается себестоимость проданного товара. 1 марта поступило 2 штуки товара по цене 100 рублей. Итоговая себестоимость 200 рублей. 5 марта была продана 1 штука. Себестоимость списания = 100 рублей (200 / 2). Но затем 2 марта ввели еще один приход товара на 1 штуку по цене 250 рублей. Себестоимость одной штуки стала равна 150 рублей ((200 + 250) / 3). Для исправления списания себестоимости нужно перепровести расход товара.

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

В дереве метаданных последовательность находится в узле Документы -> Последовательности. Основные настройки указываются на закладке Использование:

Последовательность в 1С 8.3

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

В списке Движения, влияющие на последовательность нужно указать те регистры, изменение которых нужно отслеживать.

Измерения последовательности

На закладке Данные в последовательность можно добавить измерения:

Последовательность в 1С 8.3

Измерения позволяют разбить одну последовательность на несколько. В свойствах измерения нужно настроить соответствие реквизитам документов и реквизитам движений:

Последовательность в 1С 8.3

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

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

В свойствах документа на закладке Последовательности можно настроить Заполнение последовательностей. Данное свойство может принимать два значения: Заполнять автоматически и Не заполнять автоматически:

Последовательность в 1С 8.3

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

ПериодРегистраторСклад
21.03.2021 16:57:23Расход товара 1 от 21.03.2021Основной
23.03.2021 21:14:17Расход товара 2 от 23.03.2021Основной

Таблицу регистрации можно использовать для восстановления последовательности.

Если выбрано значение Не заполнять автоматически, то таблица регистрации не будет заполняться автоматически. Для регистрации документа в последовательности можно программно в обработчике ПередЗаписью документа заполнить набор записей последовательности. Для обращения к последовательностям, в которые входит документ, используется свойство ПринадлежностьПоследовательностям:

В случае автоматического заполнения можно очищать набор записей последовательности, тогда документ не будет регистрироваться:

Новую запись в последовательность можно добавить не только из модуля объекта документа. Но тогда нужно установить отбор по регистратору:

Через набор записей можно удалить регистрацию любого документа в последовательности:

С помощью метода Принадлежит можно узнать зарегистрирован ли документ в последовательности:

Граница последовательности

Граница последовательности — это момент времени, до которого считается что документы проведены в хронологической последовательности, а после возможно нет.

Для хранения границы последовательности используется еще одна таблица. Состав колонок такой же как у таблицы регистрации: период, регистратор и по одной колонке для каждого измерения. Для каждого набора измерений хранится своя граница:

ПериодРегистраторСклад
23.03.2021 21:14:17Расход товара 2 от 23.03.2021Основной
24.03.2021 12:00:0Расход товара 4 от 24.03.2021Розничный

В настройках последовательности, на закладке Использование можно указать нужно ли автоматически перемещать границу последовательности при проведении:

Последовательность в 1С 8.3

Если свойство Перемещение границы при проведении = Перемещать, то при проведении документа будет выполнен следующий алгоритм действий:

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

Если свойство Перемещение границы при проведении = Не перемещать, то никаких дополнительных действий с последовательностью не будет выполнено.

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

С помощью метода УстановитьГраницу можно изменить границу последовательности программно:

Получить границу можно с помощью метода ПолучитьГраницу. Данный метод вернет самую раннюю границу из таблицы границ. С помощью метода ПолучитьГраницы можно получить таблицу значений с границами по всем измерениям. В таблице будет по одной колонки для каждого измерения и колонка Граница:

С помощью метода Проверить можно узнать не нарушена ли последовательность на определенный момент времени:

Восстановление последовательности

Для автоматического восстановления последовательности предназначена специальная обработка Проведение документов.

Чтобы открыть данную обработку нужно:

  1. Выбрать Главное меню -> Настройки -> Параметры:
Параметры в 1С 8.3
  1. В открывшемся окне установить флажок Режим технического специалиста и нажать «ОК»:
Режим технического специалиста в 1С 8.3
  1. Через главное меню выбрать Функции для технического специалиста:
Функции для технического специалиста в 1С 8.3
  1. В открывшемся окне развернуть узел Стандартные и выбрать обработку Проведение документов:
Проведение документов в 1С 8.3
  1. В открывшейся обработке перейти на закладку Восстановление последовательностей. Здесь будет список всех последовательностей и текущая граница:
Восстановление последовательностей в 1С 8.3
  1. Для восстановления последовательности нужно выделить нужную последовательность и нажать кнопку «Восстановить». Платформа автоматически перепроведет нужные документы в хронологическом порядке и переместит границу последовательности. Перепроводиться будут только проведенные документы последовательности. Порядок перепроведения будет определен по дате регистрации в последовательности, а не по дате документа.
Проведение документов в 1С 8.3

С помощью метода Восстановить можно восстановить последовательность программно:


Подписывайтесь на группу ВКонтакте , где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С
Здесь может быть Ваша реклама
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Используя этот сайт, Вы даете согласие на использование cookies. На данном этапе Вы можете отказаться от использования cookies, настроив необходимые параметры в своем браузере.
ok