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

Регистр накопления

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

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

Структура

Информация в регистре накопления хранится в виде записей, каждая из которых содержит значения измерений и соответствующие им значения ресурсов.

Измерения регистра описывают разрезы, в которых хранится информация, а в ресурсах регистра накапливаются нужные числовые данные. Например, для регистра ТоварныеЗапасы, который имеет следующую структуру:

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

записи, производящие изменение ресурсов регистра в базе данных, будут выглядеть следующим образом:

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

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

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

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

Связь с регистратором

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

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

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

Состав документов, которые могут создавать записи в регистре накопления, задается разработчиком в процессе создания прикладного решения:

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

Конструктор движений

Алгоритмы, по которым формируются записи в регистре, описываются средствами встроенного языка в процедурах соответствующих документов. Система содержит конструктор движений, который помогает разработчику создавать алгоритмы проведения документа. Подробнее…

Уникальность записей

Система обеспечивает контроль уникальности записей, хранящихся в регистре накопления. Благодаря этому в регистре накоплений не может находиться двух записей, относящихся к одной и той же строке одного и того же документа.

Регистры остатков и регистры оборотов

Существует два вида регистров накопления: регистры накопления остатков и регистры накопления оборотов. Регистр накопления остатков позволяет хранить как итоговые значения ресурсов — остатки, так и изменения этих ресурсов — обороты. Регистр накопления оборотов является более «специализированным» видом регистра накопления и позволяет хранить только изменения ресурсов — обороты.

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

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

Поскольку регистр накопления оборотов не накапливает остатки ресурсов, для него не имеет смысла «направление» движения ресурсов (приход или расход); накапливается только величина изменения ресурсов. Поэтому все записи регистра накопления оборотов отмечены одинаковыми пиктограммами.

Агрегаты

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

Форма списка и форма набора записей

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

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

Источник

Регистр накопления в 1С 8.3

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

Для чего нужен регистр накопления

Представим, что есть некое торговое предприятие, которое автоматизировано на платформе 1С. В конфигурации есть два документа: приход товара и расход товара. В каждом документе есть табличная часть с товарами, количеством и суммой. При поступлении товара оформляется приход товара, при продаже — расход товара.

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

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

Для решения этой проблемы предназначен регистр накопления.

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

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

Виды регистров накопления:

Регистр накопления остатки

Создание регистра накопления

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

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

Это регистр накопления остатков.

Перейдем на закладку Данные. Здесь можно создать измерения и ресурсы регистра накопления. Ресурсы — это то что будет накапливаться в регистре. Для ресурса доступен только один тип данных — число. Измерения — это то, в разрезе чего нужно хранить ресурсы. Тут уже можно выбрать как примитивные, так и ссылочные типы данных.

В нашем примере измерениями регистра накопления будут Товар и Склад. А ресурс — Количество. Типы СправочникСсылка.Товары, СправочникСсылка.Склады и Количество (15, 3):

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

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

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

В результате в базе данных будет создана следующая таблица:

ПериодРегистраторНомер строкиВид движенияСкладТоварКоличество

В колонке Период хранится дата записи. В колонке Регистратор — ссылка на документ-регистратор. В колонке Номер строки — уникальный номер записи в пределах одного регистратора, заполняется автоматически. В колонке Вид движения — значение системного перечисления ВидДвиженияНакопления, возможны два значения: приход или расход. В колонках Склад, Товар и Количество будут храниться значения измерений и ресурсов регистра накопления.

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

Текущие итоги

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

ПериодСкладТоварКоличество

Добавим в обработку проведения документов код для формирования движений в регистре накопления:

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

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

Зеленый плюс в начале означает, что это вид движения Приход.

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

ПериодСкладТоварКоличество
01.11.3999ОсновнойКровать2
01.11.3999ОсновнойШкаф3

Проведем еще один приход за июнь, будут добавлены следующие записи в таблицу движений:

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

Снова будет пересчитана таблица итогов, изменится колонка Количество:

ПериодСкладТоварКоличество
01.11.3999ОсновнойКровать6
01.11.3999ОсновнойШкаф9

Проведем еще один приход, за апрель:

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

ПериодСкладТоварКоличество
01.11.3999ОсновнойКровать6
01.11.3999ОсновнойШкаф9
01.11.3999ОсновнойТумбочка5

Была добавлена новая строка с тумбочкой.

Теперь проведем расход товара от 1 июня:

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

В таблицу движений были добавлены три строки с типом Расход. А также была пересчитана таблица итогов, общее количество было уменьшено:

ПериодСкладТоварКоличество
01.11.3999ОсновнойКровать5
01.11.3999ОсновнойШкаф8
01.11.3999ОсновнойТумбочка4

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

Промежуточные итоги

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

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

Чтобы в таблице итогов появились промежуточные итоги нужно установить период итогов. Для этого в пользовательском режиме в функциях технического специалиста (во всех функциях для старых версий платформы) в группе Стандартные нужно выбрать обработку Управление итогами:

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

В открывшейся обработке внизу нужно переключиться на полные возможности:

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

Затем нужно выделить нужный регистр накопления, нажать кнопку Установить период итогов, в открывшемся окне в поле Максимальный хранимый период итогов для регистров накопления ввести 30.06.2021 и нажать ОК:

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

После этого таблица итогов примет следующий вид:

ПериодСкладТоварКоличество
01.05.2021ОсновнойТумбочка5
01.06.2021ОсновнойТумбочка5
01.06.2021ОсновнойКровать2
01.06.2021ОсновнойШкаф3
01.07.2021ОсновнойТумбочка4
01.07.2021ОсновнойКровать8
01.07.2021ОсновнойШкаф5
01.11.3999ОсновнойТумбочка4
01.11.3999ОсновнойКровать5
01.11.3999ОсновнойШкаф8

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

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

Итоги хранятся помесячно. Итоги за май хранятся с датой 01.06.2021, итоги за июнь с датой 01.07.2021 и т.д.

Если сейчас добавить новую запись в таблицу движений за 10.06.2021, то в таблице итогов будут автоматически пересчитаны итоги за июнь и текущие итоги. Если добавить запись за 10.05.2021, то будут пересчитаны итоги за май, за июнь и текущие итоги. Если добавить новую запись за 01.01.2021, то в таблице итогов будут добавлены новые записи за январь, февраль и март. А также будут пересчитаны итоги за апрель, май, июнь и текущие итоги. Однако, если добавить запись за 01.08.2021, то будут пересчитаны только текущие итоги, потому что в обработке управления итогами мы установили максимальный период равным 30.06.2021. Запись с промежуточными итогами за август не будет добавлена.

Алгоритм заполнения таблицы итогов регистра остатков:

Регистр накопления обороты

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

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

Регистры остатков следует создавать таким образом, чтобы по каждому измерения ресурсы как увеличивались, так и уменьшались.

Здесь подойдет регистр накопления оборотов. Добавим новый регистр Продажи, на закладке Основные в поле Вид регистра выберем Обороты:

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

Оборотный регистр накопления почти ничем не отличается от регистра остатков, за исключением нескольких отличий:

Если на закладке Данные создать измерение Контрагент и ресурс Сумма:

для чего может использоваться набор записей регистра накопления. Смотреть фото для чего может использоваться набор записей регистра накопления. Смотреть картинку для чего может использоваться набор записей регистра накопления. Картинка про для чего может использоваться набор записей регистра накопления. Фото для чего может использоваться набор записей регистра накопления

То таблица движений будет выглядеть следующим образом:

ПериодРегистраторНомер строкиКонтрагентСумма

Формирование движений по регистру будет выглядеть следующим образом:

Источник

Устройство регистра накопления


Структура регистра накопления

Все поля регистра накопления можно разделить на три категории: измерения, ресурсы, реквизиты. К этим категориям относятся и все системные поля регистра. Период является измерением. Регистратор и НомерСтроки, с одной стороны, являются измерениями, так как вместе периодом определяют момент времени в которое произошло движение; с другой стороны, они характеризуют конкретную запись и могут быть отнесены к категории реквизитов. Вид движения является реквизитом так как является только характеристикой конкретной записи.

Таблицы регистра накопления остатков

Регистр накопления остатков состоит из двух таблиц: таблицы движения и таблицы итогов. В таблице движений хранятся записи, которые либо вводятся пользователем вручную, либо генерируются в процессе проведения документа или исполнения обработки. Таблица движений имеет следующую структуру:
1. Период
2. Регистратор
3. Номер строки
4. Вид движения
5.
6.
7.
В таблице итогов хранятся остатки в разрезе всех измерений с периодичностью месяц, на начало месяца. Временной интервал, за который хранятся остатки, ограничивается установкой периода рассчитанных итогов. Период рассчитанных итогов указывается как последний день месяца, по который рассчитаны итоги. То есть если период рассчитанных итогов равен 31.07.2004, то итоги будут рассчитаны по 01.08.2004 включительно. Кроме того, в таблице итогов отдельно хранятся актуальные итоги. Таблица итогов имеет следующую структуру:
1. Период
2.
3.
Если период рассчитанных итогов равен 31.07.2004, а самое раннее движение было сделано 02.05.2004, то итоги будут хранится за следующие периоды: 01.06.2004, 01.07.2004, 01.08.2004 и актуальные итоги.

Виртуальная таблица остатков

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

Рассмотрим несколько примеров. Пусть период рассчитанных итогов равен 31.07.2004. Мы хотим получить остатки на 01.07.2004, 15.07.2004, 01.08.2004, 15.08.2004 и актуальные остатки.
Для случаев получения остатков на 01.07.2004, 01.08.2004 и актуальных остатков данные будут получены непосредственно из таблицы итогов. В случае получения остатков на 15.07.2004 сначала будут получены данные из таблицы итогов на момент времени 01.08.2004, так как это ближайший больший момент времени, на который посчитаны остатки, а затем будут обработаны данные из таблицы движений за период с 15.07.2004 по 31.07.2004 включительно. В случае получения остатков на 15.08.2004, ближайшим большим моментом времени, на который посчитаны остатки является момент актуальных остатков. Таким образом, для расчета остатков на 15.08.2004, будут получены актуальные итоги и обработаны данные таблицы движений начиная с 15.08.2004.

Виртуальная таблица оборотов

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

Виртуальная таблица остатков и оборотов

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

Отличие оборотного регистра от регистра остатков

В отличие от регистра остатков, оборотный регистр накапливает обороты. По данному регистру нельзя посчитать остатки, и поэтому для него существуют только одна виртуальная таблица оборотов. Структура таблицы движений оборотного регистра не сильно отличается от таблицы движений регистра остатков. Она имеет следующую структуру:
1. Период
2. Регистратор
3. Номер строки
4.
5.
6.

Очевидно, что в таблице движений оборотного регистра отсутствует только поле ВидДвижения. Таблица же итогов оборотного регистра по своей структуре идентична структуре таблицы регистра остатков:
1. Период
2.
3.

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

Виртуальная таблица оборотов

Виртуальная таблица оборотов в своей работе может использовать как таблицу итогов, так и таблицу движений. Зависит это от заданного периода и периодичности. Если периодичность задана, и она меньше месяца, то используется только таблица движений. Если периодичность не задана или задана большей или равной месяцу, то использование таблицы итогов или движений зависит от заданного периода. Если в заданный период попадают целые месяцы, то данные за них считаются по таблице итогов, остальное считается по таблице движений. Например считаются данные с периодичностью месяц за периоды:
1. с 01.03.2004 по 31.03.2004
2. с 02.03.2004 по 03.05.2004
3. с 02.03.2004 по 03.04.2004

В первом случае все данные будут посчитаны по таблице итогов. Во втором случае данные за период с 01.04.2004 по 30.04.2004 включительно будут посчитаны по таблице итогов, а за периоды с 02.03.2004 по 31.03.2004 включительно и с 01.05.2004 по 03.05.2004 включительно будут посчитаны по таблице движений. В третьем случае данные за весь указанный период будут посчитаны по таблице движений.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *