Период в регистре накопления 1С: Предприятие

Разбираем, как правильно задать Период в запросах к регистрам накопления. Избегайте ошибок остатков и ускоряйте отчеты в 1С:Предприятии прямо сейчас!

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

Регистры накопления – один из ключевых объектов платформы 1С:Предприятие․ Они позволяют хранить
агрегированные данные (остатки, обороты) и получать их за любой интересующий момент
времени․ Основным измерением любого регистра накопления является поле Период․
От того, как правильно задать период в запросе, зависит корректность результата и
производительность работы системы․

Содержание статьи

  1. Что такое период в регистре накопления
  2. Виды регистров накопления (Остатки и Обороты)
  3. Синтаксис указания периода в запросе
  4. Параметры запроса и работа с датами
  5. Примеры запросов
  6. Оптимизация и производительность
  7. Часто задаваемые вопросы
  8. Контактная информация

Что такое период в регистре накопления

Поле Период – это системный реквизит, фиксирующий дату (время) состояния
записи регистра․ В отличие от большинства реквизитов, Период не привязан к
дате документа, а задаёться непосредственно при записи в регистр (обычно в момент
проведения документа‑регистратора)․

Для регистров остатков значение периода определяет «на какую дату» нужно
получить состояние․ Для регистров оборотов период задаёт границы интервала,
за который считаются приходы и расходы;

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

  • Регистры накопления «Остатки» – позволяют получать значение ресурса на
    конкретную дату (например, остаток денежных средств на )․
  • Регистры накопления «Обороты» – позволяют получать суммарные приходы и
    расходы за выбранный период (например, оборот по кассе за квартал)․

Синтаксис указания периода в запросе

В запросах 1С используется специальный синтаксис вызова виртуальных таблиц
регистра․ Параметры НачалоПериода и КонецПериода передаются
в круглых скобках после имени таблицы․

Общий вид:

SELECT
․․․
FROM
РегистрНакопления․ИмяРегистра․ИмяТаблицы(НачалоПериода, КонецПериода) КАК Таблица
WHERE
․․․

Если требуется получить только остатки на одну дату, в качестве КонецПериода
можно указать ту же дату, а НачалоПериода – NULL (или
Дата(0001,1,1))․

Параметры запроса и работа с датами

Для гибкости часто используют параметры запроса․ Пример установки параметров:

Запрос = Новый Запрос;
Запрос․Текст =
«ВЫБРАТЬ
| Остатки․Сумма ОСТАТОК,
| Остатки․Период КАК Дата
|ИЗ
| РегистрНакопления․КассаОстатки․Остатки(&Начало, &Конец) КАК Остатки
|ГДЕ
| Остатки․Сотрудник = &Сотрудник»;
Запрос․УстановитьПараметр(«Начало», Дата(2024,1,1));
Запрос․УстановитьПараметр(«Конец», Дата(2024,12,31));
Запрос․УстановитьПараметр(«Сотрудник», Сотрудники․Сотрудники․НайтиПоКоду(«001»));

Важно помнить:

  • Параметры &Начало и &Конец должны быть типом Дата․
  • Если нужен «полный» период, можно передать NULL – система заменит его
    на минимальную/максимальную дату, доступную в базе․
  • Для сравнения только по месяцам/годам удобно использовать функции
    ГОД, МЕСЯЦ или преобразование в строку
    Формат(Дата, "YYYYMM")․

Примеры запросов

Остатки кассы на конкретную дату

Запрос = Новый Запрос;
Запрос․Текст =
«ВЫБРАТЬ
| ОСТАТКИ․Сумма КАК СуммаОстаток,
| ОСТАТКИ․Период КАК Дата
|ИЗ

| РегистрНакопления․КассаОстатки․Остатки(&Дата, &Дата) КАК ОСТАТКИ
|ГДЕ
| ОСТАТКИ․Сотрудник = &Сотрудник»;

Запрос․УстановитьПараметр(«Дата», Дата(2025,12,31));
Запрос․УстановитьПараметр(«Сотрудник», Сотрудники․Сотрудники․НайтиПоКоду(«001»));

Обороты по типу платежа за квартал

Запрос = Новый Запрос;
Запрос․Текст =
«ВЫБРАТЬ
| Обороты․Сумма КАК СуммаОборот,
| Обороты․Период КАК Период
|ИЗ
| РегистрНакопления․КассаОстатки․Обороты(&Начало, &Конец) КАК Обороты
|ГДЕ
| Обороты․ТипПлатежа = &ТипПлатежа»;

Запрос․УстановитьПараметр(«Начало», Дата(2024,1,1));
Запрос․УстановитьПараметр(«Конец», Дата(2024,3,31));
Запрос․УстановитьПараметр(«ТипПлатежа», Перечисления․ТипПлатежа․Наличные);

Сводка по годам (30 документов за каждый год)

Запрос = Новый Запрос;
Запрос․Текст =
«ВЫБРАТЬ
| Год(Обороты․Период) КАК Год,
| СУММА(Обороты․Сумма) КАК СуммаГода
|ИЗ
| РегистрНакопления․ПартииТоваровНаСкладах․Обороты(&Начало, &Конец) КАК Обороты
|ГДЕ
| Обороты․ТипДокумента = &ТипДокумента
|СГРУППИРОВАТЬ ПО Год»;

Запрос․УстановитьПараметр(«Начало», Дата(2018,1,1));
Запрос․УстановитьПараметр(«Конец», Дата(2020,12,31));
Запрос․УстановитьПараметр(«ТипДокумента», Перечисления․ТипДокумента․ПоступлениеТоваров);

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

  • Указывайте точные границы периода․ Чем шире диапазон, тем больше строк
    обрабатывается, что замедляет запрос․
  • Индексы по полям Период и измерениям․ В 1С они создаются автоматически,
    но в больших базах рекомендуется проверять наличие индексов в СУБД․
  • Избегайте функций над полем Период в условии WHERE․ Выражения типа
    Год(Период) = 2024 заставляют СУБД выполнять расчёт для каждой строки․
    Лучше использовать диапазон: Период >= Дата(2024,1,1) И Период < Дата(2025,1,1)․
  • Кеширование запросов․ При повторяющихся запросах используйте
    Запрос․УстановитьКешировать(Истина) или сохраняйте результаты в
    временные таблицы․

Часто задаваемые вопросы

Можно ли задать только конец периода?
Да․ Если в скобках указать (NULL, &Конец), система будет использовать
минимальную возможную дату в качестве начала․
Как получить остаток «на конец месяца» без указания точного дня?
Воспользуйтесь функцией КонецМесяца(Дата):

Запрос․УстановитьПараметр("Конец", КонецМесяца(Дата(2024,5,1)))․
Почему запрос возвращает нулевые строки, хотя данные есть?
Частая причина – несоответствие типа даты (например, время 00:00:00 против
12:00:00)․ Убедитесь, что в параметрах время не задаётся, либо используйте
функцию ДатаБезВремени․

Контактная информация

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

  • Официальный сайт: https://support-1c․example․com
  • Горячая линия: 8 (800) -55‑33‑22 (круглосуточно)
  • Номера телефонов отдела технической поддержки:
    • Москва – 8 (495) -23‑45‑67
    • Санкт‑Петербург – 8 (812) -65‑43‑21
    • Региональный центр – 8 (800) -77‑88‑99
  • Электронный адрес: support@1c․example․com
  • Личный кабинет клиента: https://support-1c․example․com/cabinet
  • Личный приём (запись онлайн): https://support-1c․example․com/appointment
  • График приёма:
    • Пн‑Пт: 09:00 – 18:00
    • Сб: 10:00 – 15:00 (по предварительной записи)
    • Вс: выходной
  • Отделы:
    • Техническая поддержка
    • Консультации по конфигурациям
    • Обучение и сертификация
    • Разработка типовых решений
  • Руководство центра:
    • Иванов И․И․ – Директор по поддержке клиентов
    • Петров П․П․ – Руководитель отдела технической поддержки
  • Отзывы клиентов: https://support-1c․example․com/reviews

Надеемся, что данная статья помогла вам разобраться с указанием периода в запросах
к регистрами накопления 1С․ При необходимости используйте приведённые примеры
и не стесняйтесь обращаться в службу поддержки – мы всегда готовы помочь!