Новый период в 1С 8.3: где задать даты и как не сломать учёт

· 9 мин

Содержание

Добавить период в 1С можно в трёх местах: в шапке отчёта (поле «Период» и кнопка ... выбора дат), в периодическом регистре сведений (новая запись с датой «Период») и в запросе — через параметр периодичности виртуальной таблицы и конструкцию ПЕРИОДАМИ. Если же программа не даёт провести документ задним числом, «добавлять» ничего не нужно: надо сдвинуть дату запрета изменения.

Частая путаница — искать в 1С:Предприятии кнопку «Добавить период» как отдельную команду. Её нет. Период — это свойство конкретного объекта: отчёта, записи регистра, итогов. Ниже разобрано, где он живёт и как его менять в каждом случае, от пользовательских настроек до кода.

Что такое период в 1С и где он хранится

В платформе 1С:Предприятие 8.3 период — это не отдельный справочник, а реквизит или параметр. Он встречается в четырёх ролях.

ГдеКак выглядитКто меняет
📊 ОтчётПоля «Период с … по …» или параметр СКД СтандартныйПериодПользователь
🗂 Периодический регистр сведенийПоле «Период» у каждой записиПользователь или код
🧮 Регистры накопления и бухгалтерииДата движения = дата документа-регистратораДокумент при проведении
🔒 Даты запрета измененияГраница, до которой данные нельзя менятьАдминистратор

Тип «Дата» в 1С хранит значения с 1 января 0001 года по 31 декабря 3999 года. Пустая дата выглядит как 01.01.0001 0:00:00. Это важно для запросов: «открытый» конец периода обычно передают пустой датой или датой далеко в будущем.

Определите, какой из случаев ваш, — дальше путь разный.

Что именно нужно сделать?

Период в отчётах и обработках: как задать и расширить

В типовых конфигурациях на «Такси» почти у каждого отчёта в шапке есть пара полей дат и кнопка .... Она открывает окно выбора стандартного периода.

Быстрый выбор периода

  1. Откройте отчёт, например оборотно-сальдовую ведомость в 1С:Бухгалтерии 3.0.
  2. Нажмите ... рядом с полями дат.
  3. Выберите готовый вариант: месяц, квартал, полугодие, год, или переключитесь на произвольный интервал.
  4. Нажмите «Выбрать», затем «Сформировать».

💡 В окне выбора есть стрелки для перехода к соседнему году. Так быстрее, чем вбивать даты руками.

Произвольный интервал

Если нужно «с 15 марта по 10 мая», вводите даты прямо в поля. Конец периода платформа трактует как конец дня: дата 10.05 включает все операции этого дня до 23:59:59.

Период в варианте отчёта

Отчёты на СКД сохраняют период в варианте. Если каждый раз открывается «прошлый год», значит, он сохранён в пользовательских настройках.

  1. Задайте нужный период.
  2. Сохраните вариант через меню «Ещё» → команду сохранения варианта.
  3. Для «плавающего» периода выбирайте в окне выбора вариант вида «Этот месяц» или «Прошлый квартал», а не конкретные даты. Тогда в январе отчёт сам покажет январь.

Период в обработках

У обработок период обычно задают реквизиты «Начало периода» и «Конец периода» на форме. Если таких полей нет, обработка работает на одну дату или берёт период из настроек программы. Добавить период в такую обработку можно только доработкой: два реквизита типа «Дата» и передача их в запрос как параметров.

Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(Объект.НачалоПериода));
Запрос.УстановитьПараметр("КонецПериода", КонецДня(Объект.КонецПериода));

Без КонецДня() в запрос уйдёт полночь последнего дня, и операции этого дня выпадут из выборки.

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

Это самый частый смысл фразы «добавить период» у бухгалтеров: новая ставка, цена, курс или настройка начинают действовать с определённой даты. Старое значение при этом остаётся в истории.

Как устроена периодичность

У регистра сведений в конфигураторе есть свойство «Периодичность»:

  • 🔹 непериодический — даты нет, одно значение на набор измерений;
  • 🔹 в пределах секунды, дня, месяца, квартала, года;
  • 🔹 по позиции регистратора — для регистров, подчинённых документам.

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

Пошагово: добавить запись с новой даты

  1. Откройте список регистра. Учётную политику в 1С:Бухгалтерии 3.0 открывают из раздела Главное, курсы — из справочника валют, цены — из соответствующих документов или форм.
  2. Нажмите «Создать» (или скопируйте последнюю запись — так меньше полей заполнять).
  3. В поле даты укажите, с какого числа действует новое значение.
  4. Заполните измерения и ресурсы, запишите.

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

Не правьте вручную регистры, которые заполняют документы: часть регистров сведений пишется при проведении, и ручная запись разойдётся с ними после перепроведения.

Добавить запись задним числом

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

Добавить запись программно

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

МенеджерЗаписи = РегистрыСведений.ВашРегистр.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Период = Дата(2026, 11, 1);
МенеджерЗаписи.Измерение1 = СсылкаНаЭлемент;
МенеджерЗаписи.Значение = 150;
МенеджерЗаписи.Записать(); // запись с тем же периодом и измерениями перезапишется

Имена регистра, измерений и ресурсов подставьте из своей конфигурации.

Сделать регистр периодическим

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

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

Пустые периоды в запросе и СКД: как добавить месяцы без данных

Отчёт «Продажи по месяцам» выводит только месяцы, где были обороты. Если в июне продаж не было, строки «Июнь» нет вовсе. Добавить недостающие периоды можно двумя способами.

В запросе: периодичность и ПЕРИОДАМИ

Виртуальная таблица оборотов принимает периодичность третьим параметром и возвращает поле Период. Дополнение пустых периодов делает конструкция ПЕРИОДАМИ в секции ИТОГИ.

ВЫБРАТЬ
    Обороты.Период КАК Период,
    СУММА(Обороты.СуммаОборот) КАК Сумма
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК Обороты
СГРУППИРОВАТЬ ПО
    Обороты.Период
ИТОГИ
    СУММА(Сумма)
ПО
    Период ПЕРИОДАМИ(МЕСЯЦ, &НачалоПериода, &КонецПериода)

Чтобы пустые месяцы попали в выборку, обходите результат по группировкам и передайте "ВСЕ" для значений группировки:

Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "ВСЕ");
Пока Выборка.Следующий() Цикл
    Сумма = ?(Выборка.Сумма = NULL, 0, Выборка.Сумма);
КонецЦикла;

У добавленных периодов ресурсы равны NULL, поэтому проверка на NULL обязательна.

В СКД: тип дополнения группировки

В схеме компоновки то же делается без кода:

  1. Откройте настройки варианта отчёта, перейдите к группировке по полю Период.
  2. В полях группировки у строки Период задайте «Тип дополнения»: день, неделя, месяц и так далее.
  3. Укажите начало и конец периода дополнения — обычно параметры &НачалоПериода и &КонецПериода.

💡 Если начало и конец не заданы, СКД дополнит только промежутки между первой и последней датой с данными. Пустые месяцы в начале и в конце периода не появятся.

Закрытый период: даты запрета изменения

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

Где настроить

В 1С:Бухгалтерии 3.0 даты запрета находятся в Администрирование → Пользователи и права. Там флажок включения дат запрета и ссылка на их настройку. В других конфигурациях на БСП путь похожий: раздел администрирования, настройки пользователей и прав.

Дату можно задать:

  • 🔸 одну для всех пользователей и организаций;
  • 🔸 отдельно по организациям;
  • 🔸 отдельно по пользователям — например, главбуху позволить правки до конца квартала, остальным нет.

Есть и относительная дата: «конец прошлого месяца» сдвигается сама, ручная правка каждый месяц не нужна.

Как поправить документ в закрытом периоде

  1. Согласуйте правку с главным бухгалтером: закрытый период обычно уже отчётный.
  2. Сдвиньте дату запрета на день раньше документа — только для себя.
  3. Внесите правку и перепроведите документ.
  4. Перезапустите закрытие месяца с этого месяца и до текущего.
  5. Верните дату запрета на место.

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

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

Большие периоды без тормозов: итоги и срезы

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

Итоги регистров

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

ДействиеКогда нужноЧто даёт
Установить период рассчитанных итоговПрошлые периоды закрытыОстатки на прошлые даты берутся из готовых итогов
Пересчитать итогиОстатки «плывут», после сбояИтоги пересобираются по движениям
Включить разделение итоговМного пользователей проводят одновременноМеньше блокировок при записи

Пересчёт итогов в большой базе идёт долго и нагружает сервер. Запускайте его вне рабочего времени: проведение у пользователей в это время будет тормозить.

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

Правильный срез последних

Отбор передавайте в параметр виртуальной таблицы, а не в ГДЕ:

ВЫБРАТЬ
    Срез.Измерение1,
    Срез.Значение
ИЗ
    РегистрСведений.ВашРегистр.СрезПоследних(&Дата, Измерение1 В (&Список)) КАК Срез

Условие в ГДЕ платформа применит уже после построения среза по всем записям регистра. Условие в параметре сузит выборку до расчёта.

Ещё три правила

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

Частые ошибки при работе с периодом

Диагностика: выберите симптом

Ещё одна ловушка — время в датах документов. Документ от 31.03 23:59:59 и запись регистра от 01.04 0:00:00 при срезе на 31.03 дадут старое значение. Это правильное поведение, а не ошибка.

Частые вопросы

Можно ли задать период отчёта больше одного года?
Да. Платформа не ограничивает длину интервала. Ограничение одно — скорость: отчёт за несколько лет по детальным данным будет формироваться заметно дольше.
Как сделать, чтобы отчёт всегда открывался за текущий месяц?
В окне выбора периода выберите вариант «Этот месяц» вместо конкретных дат и сохраните вариант отчёта. Даты будут пересчитываться при каждом открытии.
Удалится ли старое значение, если добавить новую запись в регистр сведений?
Нет. Периодический регистр хранит историю. Старое значение действует до даты новой записи, новое — после.
Почему в регистре дата записи стала первым числом месяца?
У регистра периодичность «в пределах месяца». Платформа приводит дату к началу периода, поэтому в одном месяце возможна только одна запись с одинаковыми измерениями.
Нужно ли перепроводить документы после смены даты запрета?
Нет. Дата запрета только разрешает или запрещает правки. Перепроводить нужно те документы, которые вы изменили, и после них повторить закрытие месяца.