Найти в Дзене
CORS Academy

Набор записей и оперативное проведение в 1С

Добавление, изменение и удаление записей программно Данные в регистр попадают только из документов, если документ
проведен. Руками внести данные в регистр нельзя, но их можно добавить
программно в любой момент. Обязательно при добавлении нужно указать Период и Регистратор (тип
– ДокументСсылка.<ИмяДокумента> – ссылка на документ, которая
существует не только у проведенного документа, но и у записанного). Период может содержать любую дату, не обязательно равняться Дате документа. Для работы с записями в регистре накопления программно используется
объект встроенного языка РегистрНакопленияНаборЗаписей, который содержит
коллекцию записей регистра накопления в памяти. Данный объект позволяет
считывать записи из базы данных по определенному регистратору,
добавлять, удалять и изменять записи в наборе. Данные в наборе записей можно отфильтровать только по определенному
регистратору, при этом применяется только условие на равенство. Несмотря на то, что в записях регистра накопления об
Оглавление

Добавление, изменение и удаление записей программно

Данные в регистр попадают только из документов, если документ
проведен. Руками внести данные в регистр нельзя, но их можно добавить
программно в любой момент. Обязательно при добавлении нужно указать
Период и Регистратор (тип
– ДокументСсылка.<ИмяДокумента> – ссылка на документ, которая
существует не только у проведенного документа, но и у записанного).
Период может содержать любую дату, не обязательно равняться Дате документа.

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

Данные в наборе записей можно отфильтровать только по определенному
регистратору, при этом применяется только условие на равенство.

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

Чтобы повысить производительность записи данных в регистр накопления
можно отключить использование агрегатов, итогов и текущих итогов.
Отключение выполняется в стандартной обработке «
Управление итогами»
или с помощью методов УстановитьИспользованиеИтогов(), методом
УстановитьИспользованиеТекущихИтогов() или методом
УстановитьИспользованиеАгрегатов(). Следует помнить, что при отключении
итогов у регистра его виртуальные таблицы будут недоступны. Поэтому
после загрузки использование итогов нужно включить обратно. При
включении итогов таблица итогов будет заполняться по таблице движений.

-2

Оперативное проведение документов

При проведении документа срабатывает обработчик ОбработкаПроведения(<Отказ>, <РежимПроведения>), где в параметр «РежимПроведения» передается текущий режим проведения:

  • Оперативный — это проведение документа в режиме
    реального (текущего) времени. Дата для документа устанавливается
    автоматически. Не зависит от вида используемого регистра. В основном
    используется для организации механизма контроля текущих остатков.
  • Неоперативный – это проведение документа не в реальном времени, а в прошлом или будущем. Например, используется при проведении задним числом.
-3

У документа в свойстве «Оперативное проведение» можно настроить режим оперативного проведения:

  • Разрешено – разрешает проведение документов в «Оперативном режиме» и в «Неоперативном режиме». Таким образом, документы могут быть проведены в прошлом или текущем периоде.
  • Запрещено – разрешает проведение документов только в «Неоперативном режиме». Таким образом, документы могут быть проведены в прошлом, текущем или будущем периоде.

Настройка оперативного проведения документов

-4

Удаление движений

Записи из проведенного документа попадают в регистр накопления. Если документ провести повторно или отменить его проведение, то система должна точно знать, как поступать с ранее внесёнными записями в регистре накопления.
Для этого существует специальное свойство «
Удаление движений».

-5
  • Удалять автоматически при отмене проведения
    движения, связанные с документом, удаляются автоматически только при
    удалении и отмене проведения документа. При проведении документа
    движения не удаляются, а перезаписываются. Такое поведение является
    стандартным для платформы «1С:Предприятие».
  • Удалять автоматически — платформа автоматически
    удаляет старые записи движений, связанных с данным документом, при
    повторном проведении документа перед записью новых движений, а также при
    удалении и отмене проведения документа. Отключение этого режима имеет
    смысл, прежде всего, при решении задач оперативного учета в реальном
    времени.
  • Не удалять автоматически — автоматическое удаление
    движений при удалении и отмене проведения документа производиться не
    будет, разработчику необходимо самостоятельно реализовать механизм
    удаления старых записей. Один из вариантов использования документа с
    отключенным автоматическим удалением движений – это построчное
    проведение документа, при котором запись по новой строке добавляется в
    регистр без удаления всех ранее сделанных движений документа.

Последовательности документов

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

Основные настройки

«Перемещение границы при проведении» – включает или выключает режим перемещения границы последовательности.

  • «Перемещать» – документ, зарегистрированный в этой
    последовательности, при своем проведении будет пытаться переместить
    границу этой последовательности документов.
  • «Не перемещать» – документ не будет перемещать границу этой последовательности документов при своем проведении.

«Входящие документы» – в этом свойстве указываются документы, которые могут регистрироваться в последовательности документов.

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

Последовательности могут использоваться с любыми регистрами.

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

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

-7

Чтобы привести учет, контролируемый последовательностью, в актуальное состояние, необходимо воспользоваться режимом «Восстановления последовательности» в системной обработке «Проведение документов».

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

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

-8

Ваганов Сергей, эксперт в области разработки прикладных решений на платформе 1С:Предприятие, преподаватель-методист CORS Academy и автор курса «Разработчик 1С с нуля до профессионала».

-9

Подписывайтесь:

CORS Клуб - сообщество и образовательная среда для специалистов из IT-сферы https://cors.su/klub/

АБП -Сообщество специалистов по автоматизации бизнес-процессов и по использованию ИТ технологий в бизнесе https://t.me/analitiki_1c

Канал руководителей IT компаний и подразделений, CIO, СDO, CDTO https://t.me/cio_channel

CIO. Сообщество IT руководителей https://vk.com/cio_club

-10