Добавление, изменение и удаление записей программно
Данные в регистр попадают только из документов, если документ
проведен. Руками внести данные в регистр нельзя, но их можно добавить
программно в любой момент. Обязательно при добавлении нужно указать Период и Регистратор (тип
– ДокументСсылка.<ИмяДокумента> – ссылка на документ, которая
существует не только у проведенного документа, но и у записанного). Период может содержать любую дату, не обязательно равняться Дате документа.
Для работы с записями в регистре накопления программно используется
объект встроенного языка РегистрНакопленияНаборЗаписей, который содержит
коллекцию записей регистра накопления в памяти. Данный объект позволяет
считывать записи из базы данных по определенному регистратору,
добавлять, удалять и изменять записи в наборе.
Данные в наборе записей можно отфильтровать только по определенному
регистратору, при этом применяется только условие на равенство.
Несмотря на то, что в записях регистра накопления обязательно должен заполняться реквизит Регистратор,
может получится другая ситуация, когда записи существуют, но у них не
указан документ-регистратор (битая ссылка – это не пустая ссылка), такая
ситуация возможна при использовании плана обмена, что может привести к
нарушению ссылочной целостности информационной базы.
Чтобы повысить производительность записи данных в регистр накопления
можно отключить использование агрегатов, итогов и текущих итогов.
Отключение выполняется в стандартной обработке «Управление итогами»
или с помощью методов УстановитьИспользованиеИтогов(), методом
УстановитьИспользованиеТекущихИтогов() или методом
УстановитьИспользованиеАгрегатов(). Следует помнить, что при отключении
итогов у регистра его виртуальные таблицы будут недоступны. Поэтому
после загрузки использование итогов нужно включить обратно. При
включении итогов таблица итогов будет заполняться по таблице движений.
Оперативное проведение документов
При проведении документа срабатывает обработчик ОбработкаПроведения(<Отказ>, <РежимПроведения>), где в параметр «РежимПроведения» передается текущий режим проведения:
- Оперативный — это проведение документа в режиме
реального (текущего) времени. Дата для документа устанавливается
автоматически. Не зависит от вида используемого регистра. В основном
используется для организации механизма контроля текущих остатков. - Неоперативный – это проведение документа не в реальном времени, а в прошлом или будущем. Например, используется при проведении задним числом.
У документа в свойстве «Оперативное проведение» можно настроить режим оперативного проведения:
- Разрешено – разрешает проведение документов в «Оперативном режиме» и в «Неоперативном режиме». Таким образом, документы могут быть проведены в прошлом или текущем периоде.
- Запрещено – разрешает проведение документов только в «Неоперативном режиме». Таким образом, документы могут быть проведены в прошлом, текущем или будущем периоде.
Настройка оперативного проведения документов
Удаление движений
Записи из проведенного документа попадают в регистр накопления. Если документ провести повторно или отменить его проведение, то система должна точно знать, как поступать с ранее внесёнными записями в регистре накопления.
Для этого существует специальное свойство «Удаление движений».
- Удалять автоматически при отмене проведения —
движения, связанные с документом, удаляются автоматически только при
удалении и отмене проведения документа. При проведении документа
движения не удаляются, а перезаписываются. Такое поведение является
стандартным для платформы «1С:Предприятие». - Удалять автоматически — платформа автоматически
удаляет старые записи движений, связанных с данным документом, при
повторном проведении документа перед записью новых движений, а также при
удалении и отмене проведения документа. Отключение этого режима имеет
смысл, прежде всего, при решении задач оперативного учета в реальном
времени. - Не удалять автоматически — автоматическое удаление
движений при удалении и отмене проведения документа производиться не
будет, разработчику необходимо самостоятельно реализовать механизм
удаления старых записей. Один из вариантов использования документа с
отключенным автоматическим удалением движений – это построчное
проведение документа, при котором запись по новой строке добавляется в
регистр без удаления всех ранее сделанных движений документа.
Последовательности документов
Последовательность документов — это прикладной
объект конфигурации, предназначенный для обеспечения проведения
определенных документов в строгой хронологической последовательности.
Основные настройки
«Перемещение границы при проведении» – включает или выключает режим перемещения границы последовательности.
- «Перемещать» – документ, зарегистрированный в этой
последовательности, при своем проведении будет пытаться переместить
границу этой последовательности документов. - «Не перемещать» – документ не будет перемещать границу этой последовательности документов при своем проведении.
«Входящие документы» – в этом свойстве указываются документы, которые могут регистрироваться в последовательности документов.
«Движения, влияющие на последовательность» –одно из основных свойств последовательности. Оно определяет, какие из движений будут влиять на необходимость перепроведения документов данной последовательности. В список данного параметра необходимо добавить те виды регистров, движения которых будут нарушать данную последовательность.
Последовательности могут использоваться с любыми регистрами.
Документы, являющиеся регистраторами регистров, указанных в свойстве «Движения, влияющие на последовательность» могут регистрировать новую границу последовательности документов своим моментом времени.
Последовательность документов
Чтобы привести учет, контролируемый последовательностью, в актуальное состояние, необходимо воспользоваться режимом «Восстановления последовательности» в системной обработке «Проведение документов».
Граница последовательности документов
— это момент времени, начиная с которого перепроведение документов
последовательности в хронологическом порядке, восстановит правильность
(актуальность) учета, контролируемого последовательностью. Получается
режим восстановления последовательности позволяет автоматически
выполнить перепроведение всех документов, относящихся к
последовательности, от текущей позиции границы (момент времени)
последовательности до текущего момента.
Восстановление последовательности
Ваганов Сергей, эксперт в области разработки прикладных решений на платформе 1С:Предприятие, преподаватель-методист CORS Academy и автор курса «Разработчик 1С с нуля до профессионала».
Подписывайтесь:
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