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

Обновлено: 05.07.2024

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

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

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

Регистр накопления остатков состоит из двух таблиц: таблицы движения и таблицы итогов. В таблице движений хранятся записи, которые либо вводятся пользователем вручную, либо генерируются в процессе проведения документа или исполнения обработки. Таблица движений имеет следующую структуру:
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 включительно будут посчитаны по таблице движений. В третьем случае данные за весь указанный период будут посчитаны по таблице движений.

Вы сотрудник франчайзи "1С"? Может быть, Вы даже обновляете клиентов и следите за работоспособностью их информационных баз? Или Вы работаете в штате компании и работоспособность систем на базе платформы "1С" лежит на Ваших плечах? Если ответа "ДА" хотя бы на один вопрос, то эта статья для Вас!


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

Не могу точно сказать для кого эта статья - для новичков или опытных программистов. Или администраторов? Думаю, что решать только Вам!

Как они работают

Платформа "1С" использует механизм итогов для оптимизации получения данных в запросах за большой период. Механизм итогов доступен в регистрах накопления, бухгалтерии и сведений. Именно благодаря ему мы можем формировать отчеты достаточно быстро за большой период времени. Не всегда, конечно, но это уже другая история :).

Но, прежде чем говорить об обслуживании итогов, давайте поверхностно рассмотрим их работу для каждого вида регистра. Мы не будем погружаться в особенности их работы на стороне СУБД, аспекты блокировок и другие связанные темы. Только принцип работы, только суть!

Регистры сведений

Начнем с простого - итогов регистров сведений. С некоторого момента, платформа поддерживает итоги среза первых / последних записей. Например, в последних типовых конфигурациях для регистра "Курсы валют" включены итоги среза последних. Под спойлером Вы найдете пример как данные в регистре отражаются на итогах этого регистра.

Вот такие данные содержатся в самом регистре.

И вот такие данные будет содержать таблица итогов.

Все просто - в итогах хранятся последние записи по периоду в разрезе измерений. Для регистра сведений "Курсы валют" это "Валюта".

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

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

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

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

Регистр оборотов

Для примера возьмем регистр накопления "Реализация услуг" из типовой конфигурации "Бухгалтерия предприятия 3.0". Под спойлером пример данных в регистре и полученные итоги.

Это пример данных.

Движения регистра сформированы в период с марта по май 2019 года. Итоги в этом случае содержат сгруппированные данные по измерениям.

Итоги содержат сгруппированные данные по месяцам, а период записи - начало месяца.

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

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

В качестве примера остаточного регистра возьмем "НДС предъявленный". Пример снова под спойлером.

Вот пример данных регистра "НДС предъявленный". Некоторые поля убраны (пустые, служебные, реквизиты регистра). Правильность данных с прикладной точки зрения не гарантируется :).

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

В этом случае, на самом деле, тоже все просто:

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

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

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

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

Регистры бухгалтерии

Не менее интересным объектом с поддержкой хранения итогов является регистр бухгалтерии. Это настоящий рекордсмен по количеству таблиц с итогами. Возьмем для рассмотрения типовой регистр "Хозрасчетный" в той же "Бухгалтерии предприятия 3.0". Всего в регистре можно насчитать 5 таблиц с итогами:

Итоги между счетами - для хранения итогов оборотов между корреспондирующими счетами

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

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

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

Что же с обслуживанием

И так, мы быстрым шагом прошлись по механизму хранения итогов платформы, рассмотрели какие итоги бывают и у каких объектов. Что же здесь может такое случиться, что потребует обслуживания?

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

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

Во всех типовых конфигурациях имеется регламентное задание "Установка периода рассчитанных итогов" с расписанием на запуск каждое 5 число месяца в 01:00. Вот алгоритм обновления периода рассчитанных итогов.

Эта функция получена из модулей "Библиотеки стандартных подсистем" и находится в общем модуле "УправлениеИтогамиИАгрегатамиСлужебный".

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

Как проверить, что у Вас установлен актуальный период рассчитанных итогов? Самый простой способ - зайти в обработку "Управление итогами" через "Все функции -> Стандартные -> Управление итогами". Там выбрать полные возможности и в показанной таблице проверить дату в колонке "Период итогов".


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

Но и это еще не все! Есть еще как минимум две операции, которые необходимо планировать для итогов:


Зачем их устанавливать? Если в базе хранятся данные за 10 лет, то вряд ли они все используются. Целесообразно проанализировать какие данные действительно используются и за какой период (например, только последние 5 лет) и ограничить период хранения итогов нужным значением. Данный подход похож на метод скользящего окна, который упрощает сопровождение больших объемов данных.

Вот и все основные операции обслуживания.

Заключение

Мы быстро пробежались по принципу работы механизма итогов платформы "1С" и рассмотрели основные направления работ по обслуживанию итогов. Список получился коротким:

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

  1. Количество измерений платформой не ограничивается
  2. Количество измерений при использовании таблицы итогов до 30
  3. Количество измерений при использовании агрегатов до 30
  4. Верны все варианты
В соответствии с ответами, число измерений для остаточных регистров не ограничено, а для оборотных ограничено 30-ю. На деле пруфов не нашлось, и для оборотных регистров можно добавить и более: Вопрос 12.22 экзамена 1С:Профессионал по Платформе. Какое максимальное количество измерений можно определять для регистра накопления с видов Обороты?
  1. Количество измерений платформой не ограничивается
  2. Количество измерений при использовании таблицы итогов до 30
  3. Количество измерений при использовании агрегатов до 30
  4. Верны все варианты
См. предыдущий вопрос. Агрегаты на деле не влияют на ограничение по измерениям: Вопрос 12.27 экзамена 1С:Профессионал по Платформе. При определении вида регистра накопления следует учитывать:
  1. Зависимость показателей, хранящихся в ресурсах, от предыдущих состояний
  2. Зависимость показателей, хранящихся в ресурсах, от периода определения
  3. Наличие возможных записей с видом движения "Приход" и "Расход"
  4. Тип значения показателей, хранящихся в ресурсах
  5. Верны все перечисленные ответы
  6. Верны ответы 1,2,3
Правильный ответ шестой. Тип значения не при чем - он по умолчанию числовой. Вопрос 12.28 экзамена 1С:Профессионал по Платформе. Для получения информации об остатках накопленных средств можно использовать:
  1. Регистры накопления с видом "Остатки"
  2. Регистры накопления с видом "Обороты"
  3. Верны ответы 1 и 2
Вопрос 12.29 экзамена 1С:Профессионал по Платформе. Для получения информации об оборотах накопленных средств можно использовать:
  1. Регистры накопления с видом "Остатки"
  2. Регистры накопления с видом "Обороты"
  3. Верны ответы 1 и 2
Правильный ответ третий - остаточный регистр содержит данные и по оборотам, и по остаткам накопленным итогом. Вопрос 12.31 экзамена 1С:Профессионал по Платформе. Выберите правильное утверждение:
  1. Регистр накопления с видом "Обороты" позволяет получить информацию об оборотах за период эффективнее, чем регистр с видом "Остатки"
  2. Регистр накопления с видом "Обороты" позволяет получить информацию об оборотах за период с такой же эффективностью, что и регистр с видом "Остатки", но при проведении документа запись в регистр будет происходить быстрее, т.к. не будет происходить расчет остатков
  3. Регистр накопления с видом "Обороты" повышает общую эффективность работы базы, т.к. информация об остатках не хранится, не пересчитывается, и, следовательно, уменьшается размер базы

Правильный ответ первый. Размер обрабатываемой таблицы меньше.

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

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

Вопрос 12.51 экзамена 1С:Профессионал по Платформе. Зачем существует регистр накопления оборотный, если в регистре накопления остатков есть возможность получения оборотов?
  1. Для использования в тех случаях, когда информация по остаткам не требуется
  2. Для расширения возможностей анализа оборотных данных
  3. Для ускорения процесса разработки
  4. Верны варианты 1 и 2
  5. Верны все варианты
Правильный ответ пятый. Во-первых, есть показатели, по которым остатки в принципе бессмысленны, например движения денег в разрезе статей; это обуславливает первый вариант. Во-вторых, предполагается, что остаточные регистры строятся с минимальной аналитичностью, соответственно требуются усилия, чтобы добыть из них данных. Это обуславливает второй и третий варианты. Вопрос 12.52 экзамена 1С:Профессионал по Платформе. Для каких задач может использоваться механизм получения оборотных данных в регистре накопления с видом остатки?
  1. Для упрощения структуры прикладного решения
  2. Для ускорения процесса разработки
  3. Для оптимизации конфигурации
  4. Для получения простых оборотов совместно с остатками
  5. Верны все варианты

9 комментариев:

Поясните, пожалуйста "оборотный регистр содержит данные . и по остаткам накопленным итогом." В оборотном регистре можно получить остатки?

Поправочка, речь об остаточном конечно.

Опечатка "по которым остатки в принципе дессмысленны"

Вопрос 12.22 экзамена 1С:Профессионал по Платформе. Какое максимальное количество измерений можно определять для регистра накопления с видов Обороты?

Читайте также: