Новый период в 1С 8.3: где задать даты и как не сломать учёт
Содержание
Добавить период в 1С можно в трёх местах: в шапке отчёта (поле «Период» и кнопка ... выбора дат), в периодическом регистре сведений (новая запись с датой «Период») и в запросе — через параметр периодичности виртуальной таблицы и конструкцию ПЕРИОДАМИ. Если же программа не даёт провести документ
задним числом, «добавлять» ничего не нужно: надо сдвинуть дату запрета изменения.
Частая путаница — искать в 1С:Предприятии кнопку «Добавить период» как отдельную команду. Её нет. Период — это свойство конкретного объекта: отчёта, записи регистра, итогов. Ниже разобрано, где он живёт и как его менять в каждом случае, от пользовательских настроек до кода.
Что такое период в 1С и где он хранится
В платформе 1С:Предприятие 8.3 период — это не отдельный справочник, а реквизит или параметр. Он встречается в четырёх ролях.
| Где | Как выглядит | Кто меняет |
|---|---|---|
| 📊 Отчёт | Поля «Период с … по …» или параметр СКД СтандартныйПериод | Пользователь |
| 🗂 Периодический регистр сведений | Поле «Период» у каждой записи | Пользователь или код |
| 🧮 Регистры накопления и бухгалтерии | Дата движения = дата документа-регистратора | Документ при проведении |
| 🔒 Даты запрета изменения | Граница, до которой данные нельзя менять | Администратор |
Тип «Дата» в 1С хранит значения с 1 января 0001 года по 31 декабря 3999 года. Пустая дата выглядит как 01.01.0001 0:00:00. Это важно для запросов: «открытый» конец периода обычно передают пустой датой или датой далеко в будущем.
Определите, какой из случаев ваш, — дальше путь разный.
Период в отчётах и обработках: как задать и расширить
В типовых конфигурациях на «Такси» почти у каждого отчёта в шапке есть пара полей дат и кнопка .... Она открывает окно выбора стандартного периода.
Быстрый выбор периода
- Откройте отчёт, например оборотно-сальдовую ведомость в 1С:Бухгалтерии 3.0.
- Нажмите
...рядом с полями дат. - Выберите готовый вариант: месяц, квартал, полугодие, год, или переключитесь на произвольный интервал.
- Нажмите «Выбрать», затем «Сформировать».
💡 В окне выбора есть стрелки для перехода к соседнему году. Так быстрее, чем вбивать даты руками.
Произвольный интервал
Если нужно «с 15 марта по 10 мая», вводите даты прямо в поля. Конец периода платформа трактует как конец дня: дата 10.05 включает все операции этого дня до 23:59:59.
Период в варианте отчёта
Отчёты на СКД сохраняют период в варианте. Если каждый раз открывается «прошлый год», значит, он сохранён в пользовательских настройках.
- Задайте нужный период.
- Сохраните вариант через меню «Ещё» → команду сохранения варианта.
- Для «плавающего» периода выбирайте в окне выбора вариант вида «Этот месяц» или «Прошлый квартал», а не конкретные даты. Тогда в январе отчёт сам покажет январь.
Период в обработках
У обработок период обычно задают реквизиты «Начало периода» и «Конец периода» на форме. Если таких полей нет, обработка работает на одну дату или берёт период из настроек программы. Добавить период в такую обработку можно только доработкой: два реквизита типа «Дата» и передача их в запрос как параметров.
Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(Объект.НачалоПериода));
Запрос.УстановитьПараметр("КонецПериода", КонецДня(Объект.КонецПериода));
Без КонецДня() в запрос уйдёт полночь последнего дня, и операции этого дня выпадут из выборки.
Новая запись в периодическом регистре сведений
Это самый частый смысл фразы «добавить период» у бухгалтеров: новая ставка, цена, курс или настройка начинают действовать с определённой даты. Старое значение при этом остаётся в истории.
Как устроена периодичность
У регистра сведений в конфигураторе есть свойство «Периодичность»:
- 🔹 непериодический — даты нет, одно значение на набор измерений;
- 🔹 в пределах секунды, дня, месяца, квартала, года;
- 🔹 по позиции регистратора — для регистров, подчинённых документам.
Периодичность определяет, сколько записей можно сделать в один интервал. При периодичности «в пределах месяца» дата записи округляется до начала месяца. Вторая запись в том же месяце с теми же измерениями вызовет ошибку о существовании записи с такими ключевыми полями.
Пошагово: добавить запись с новой даты
- Откройте список регистра. Учётную политику в 1С:Бухгалтерии 3.0 открывают из раздела
Главное, курсы — из справочника валют, цены — из соответствующих документов или форм. - Нажмите «Создать» (или скопируйте последнюю запись — так меньше полей заполнять).
- В поле даты укажите, с какого числа действует новое значение.
- Заполните измерения и ресурсы, запишите.
Если открыть регистр из типовой формы нельзя, включите команду «Все функции»: меню в правом верхнем углу → «Настройки» → «Параметры» → флажок «Отображать команду “Все функции”». Затем Все функции → Регистры сведений → нужный регистр.
Не правьте вручную регистры, которые заполняют документы: часть регистров сведений пишется при проведении, и ручная запись разойдётся с ними после перепроведения.
Добавить запись задним числом
Запись можно сделать и на прошлую дату. Тогда срез последних на любую дату после неё вернёт новое значение. Проверьте, что после этой даты нет документов, которые уже взяли старое значение: их нужно перепровести, иначе расчёты останутся прежними.
Добавить запись программно
Для периодического регистра удобнее менеджер записи: он пишет ровно одну запись и не трогает остальные.
МенеджерЗаписи = РегистрыСведений.ВашРегистр.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Период = Дата(2026, 11, 1);
МенеджерЗаписи.Измерение1 = СсылкаНаЭлемент;
МенеджерЗаписи.Значение = 150;
МенеджерЗаписи.Записать(); // запись с тем же периодом и измерениями перезапишется
Имена регистра, измерений и ресурсов подставьте из своей конфигурации.
Сделать регистр периодическим
Если регистр собственный и непериодический, а история значений стала нужна, меняют свойство «Периодичность» в конфигураторе и обновляют конфигурацию базы данных. Существующие записи получат пустую дату периода — их стоит перенести на реальную дату обработкой.
У типового регистра так делать не стоит: придётся снять конфигурацию с поддержки, а каждое обновление станет ручным. Лучше завести свой регистр в расширении.
Пустые периоды в запросе и СКД: как добавить месяцы без данных
Отчёт «Продажи по месяцам» выводит только месяцы, где были обороты. Если в июне продаж не было, строки «Июнь» нет вовсе. Добавить недостающие периоды можно двумя способами.
В запросе: периодичность и ПЕРИОДАМИ
Виртуальная таблица оборотов принимает периодичность третьим параметром и возвращает поле Период. Дополнение пустых периодов делает конструкция ПЕРИОДАМИ в секции ИТОГИ.
ВЫБРАТЬ
Обороты.Период КАК Период,
СУММА(Обороты.СуммаОборот) КАК Сумма
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК Обороты
СГРУППИРОВАТЬ ПО
Обороты.Период
ИТОГИ
СУММА(Сумма)
ПО
Период ПЕРИОДАМИ(МЕСЯЦ, &НачалоПериода, &КонецПериода)
Чтобы пустые месяцы попали в выборку, обходите результат по группировкам и передайте "ВСЕ" для значений группировки:
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "ВСЕ");
Пока Выборка.Следующий() Цикл
Сумма = ?(Выборка.Сумма = NULL, 0, Выборка.Сумма);
КонецЦикла;
У добавленных периодов ресурсы равны NULL, поэтому проверка на NULL обязательна.
В СКД: тип дополнения группировки
В схеме компоновки то же делается без кода:
- Откройте настройки варианта отчёта, перейдите к группировке по полю
Период. - В полях группировки у строки
Периодзадайте «Тип дополнения»: день, неделя, месяц и так далее. - Укажите начало и конец периода дополнения — обычно параметры
&НачалоПериодаи&КонецПериода.
💡 Если начало и конец не заданы, СКД дополнит только промежутки между первой и последней датой с данными. Пустые месяцы в начале и в конце периода не появятся.
Закрытый период: даты запрета изменения
Сообщение о том, что данные не могут быть изменены, так как период закрыт, — повод не «добавлять» период, а сдвинуть границу.
Где настроить
В 1С:Бухгалтерии 3.0 даты запрета находятся в Администрирование → Пользователи и права. Там флажок включения дат запрета и ссылка на их настройку. В других конфигурациях на БСП путь похожий: раздел администрирования, настройки пользователей и прав.
Дату можно задать:
- 🔸 одну для всех пользователей и организаций;
- 🔸 отдельно по организациям;
- 🔸 отдельно по пользователям — например, главбуху позволить правки до конца квартала, остальным нет.
Есть и относительная дата: «конец прошлого месяца» сдвигается сама, ручная правка каждый месяц не нужна.
Как поправить документ в закрытом периоде
- Согласуйте правку с главным бухгалтером: закрытый период обычно уже отчётный.
- Сдвиньте дату запрета на день раньше документа — только для себя.
- Внесите правку и перепроведите документ.
- Перезапустите закрытие месяца с этого месяца и до текущего.
- Верните дату запрета на место.
Правка в периоде, по которому сдана отчётность, может потребовать уточнённой декларации. Проверьте это до изменения, а не после.
Дату запрета загрузки данных при обмене задают отдельно, в тех же настройках. Если обмен «не видит» исправление, проверьте и её.
Большие периоды без тормозов: итоги и срезы
Отчёт за пять лет или срез последних по регистру на миллион записей нагружают базу. Помогают настройки итогов и правильные запросы.
Итоги регистров
Регистры остатков и бухгалтерии хранят итоги помесячно. Управлять ими можно через Все функции → Стандартные → Управление итогами.
| Действие | Когда нужно | Что даёт |
|---|---|---|
| Установить период рассчитанных итогов | Прошлые периоды закрыты | Остатки на прошлые даты берутся из готовых итогов |
| Пересчитать итоги | Остатки «плывут», после сбоя | Итоги пересобираются по движениям |
| Включить разделение итогов | Много пользователей проводят одновременно | Меньше блокировок при записи |
Пересчёт итогов в большой базе идёт долго и нагружает сервер. Запускайте его вне рабочего времени: проведение у пользователей в это время будет тормозить.
Для периодических регистров сведений в конфигураторе есть свойства, разрешающие итоги среза первых и последних. Платформа хранит текущие значения в отдельной таблице, и СрезПоследних на текущую дату читает её, а не всю историю.
Правильный срез последних
Отбор передавайте в параметр виртуальной таблицы, а не в ГДЕ:
ВЫБРАТЬ
Срез.Измерение1,
Срез.Значение
ИЗ
РегистрСведений.ВашРегистр.СрезПоследних(&Дата, Измерение1 В (&Список)) КАК Срез
Условие в ГДЕ платформа применит уже после построения среза по всем записям регистра. Условие в параметре сузит выборку до расчёта.
Ещё три правила
- ✅ Выбирайте периодичность регистра по задаче. «В пределах секунды» там, где хватит дня, раздувает таблицу.
- ✅ Не запрашивайте обороты с периодичностью «Запись» или «Регистратор» за годы: это почти чтение всей таблицы движений.
- ✅ Для отчётов за длинный срок берите периодичность «Месяц», а детализацию по дням открывайте расшифровкой.
Частые ошибки при работе с периодом
Ещё одна ловушка — время в датах документов. Документ от 31.03 23:59:59 и запись регистра от 01.04 0:00:00 при срезе на 31.03 дадут старое значение. Это правильное поведение, а не ошибка.