Работа с периодами в 1С:Предприятие — одна из базовых операций, с которой сталкиваются и бухгалтеры, и программисты, и обычные пользователи. Без корректно заданного временного интервала невозможно сформировать отчет, провести документ или выполнить обработку данных. Однако даже опытные специалисты иногда сталкиваются с ошибками типа "Период не входит в допустимый диапазон" или "Некорректная дата начала/окончания", которые блокируют работу.
В этой статье мы разберем все способы создания периодов — от ручного ввода в формах до программного задания через встроенный язык 1С. Особое внимание уделим нюансам для разных конфигураций (1С:Бухгалтерия 3.0, 1С:Управление торговлей 11, 1С:Зарплата и управление персоналом) и типичным ошибкам, которые возникают при работе с датами. Если вы только начинаете осваивать 1С, здесь найдете пошаговые скриншоты. Разработчики получат готовые кодовые примеры для типичных задач.
⚠️ Внимание: Интерфейсы и доступные функции могут отличаться в зависимости от версии платформы 1С:Предприятие (8.3.20+ рекомендуется для актуальных конфигураций). Перед работой с критическими данными проверьте настройки периода в тестовой базе или сделайте резервную копию.
1. Что такое период в 1С и зачем он нужен
В 1С:Предприятие период — это временной интервал, который определяет, за какой промежуток времени будут обрабатываться данные. Он может состоять из:
- 📅 Даты начала — первый день интервала (включительно).
- 📅 Даты окончания — последний день интервала (включительно).
- 🔄 Типа периода — день, неделя, месяц, квартал, год или произвольный интервал.
Без корректного периода невозможно:
- 📊 Сформировать отчет (например,
Оборотно-сальдовую ведомостьилиАнализ субконто). - 📄 Провести документ с привязкой ко времени (например,
Поступление товаровилиНачисление зарплаты). - 🔧 Выполнить обработку данных (например,
Закрытие месяцаилиПерепроведение документов).
В разных конфигурациях 1С период может задаваться:
- 🖥️ Вручную — через интерфейс программы (календарь, поля ввода).
- 💻 Программно — с помощью встроенного языка 1С (для разработчиков).
- 📥 Автоматически — по умолчанию (например, текущий месяц в отчетах).
⚠️ Внимание: В конфигурациях с поддержкой регламентированного учета (например, 1С:Бухгалтерия) период закрытия месяца блокирует изменение данных за прошлые интервалы. Попытка провести документ "задним числом" может привести к ошибке "Период закрыт для изменений".
2. Как задать период вручную: пошаговая инструкция
Самый простой способ — использовать стандартные элементы интерфейса 1С. Рассмотрим на примере формирования отчета Оборотно-сальдовая ведомость в 1С:Бухгалтерия 3.0:
Откройте раздел
Отчеты→ выберитеОборотно-сальдовая ведомость.В верхней части формы найдите поля
Период сипо(или одно полеПериодс календарем).Нажмите на иконку календаря (📅) рядом с полем. Откроется окно выбора даты.
Выберите нужный интервал:
- 🔹 Для одного дня — укажите одинаковую дату в обоих полях.
- 🔹 Для месяца — выберите первый и последний день месяца (например,
01.01.2026—31.01.2026). - 🔹 Для квартала — используйте кнопку
Кварталв календаре (доступна в новых версиях платформы).
Нажмите Сформировать — отчет построится за выбранный период.
🔹 Совет: В большинстве конфигураций можно быстро задать стандартные периоды с помощью кнопок:
- 📅
Текущий день— сегодняшняя дата. - 📅
Текущий месяц— с 1-го числа по текущую дату. - 📅
Прошлый месяц— полный предыдущий месяц. - 📅
Квартал/Год— автоматически подставляет границы.
Указаны обе даты (начало и конец)
Даты логически верны (начало ≤ окончания)
Период не выходит за пределы допустимого диапазона (например, не раньше даты создания базы)
Для регламентированных отчетов период соответствует требованиям ФНС (например, квартальная отчетность)
-->
⚠️ Внимание: В некоторых конфигурациях (например, 1С:Управление торговлей) при ручном вводе дат в формате ДД.ММ.ГГГГ может срабатывать автозамена на текущий год. Всегда проверяйте конечную дату в календаре!
3. Программное создание периода на встроенном языке 1С
Для разработчиков и опытных пользователей, которые пишут обработки или дорабатывают конфигурации, период можно задавать через код. Основные методы:
3.1. Создание периода с помощью объекта Структура
Самый универсальный способ — использовать структуру с ключами НачалоПериода и КонецПериода:
Период = Новый Структура();
Период.Вставить("НачалоПериода", НачалоДня(ТекущаяДата()));
Период.Вставить("КонецПериода", КонецМесяца(ТекущаяДата()));
3.2. Использование функции ПериодДата
В некоторых конфигурациях (например, 1С:ERP) есть специализированная функция:
Период = ПериодДата(НачалоГода(ТекущаяДата()), КонецГода(ТекущаяДата()));
3.3. Работа с датами через глобальные функции
Платформа 1С:Предприятие предоставляет удобные функции для манипуляции датами:
| Функция | Описание | Пример результата |
|---|---|---|
НачалоДня(Дата) |
Возвращает начало дня (00:00:00) | 01.01.2026 00:00:00 |
КонецДня(Дата) |
Возвращает конец дня (23:59:59) | 31.01.2026 23:59:59 |
НачалоМесяца(Дата) |
Первый день месяца | 01.01.2026 |
КонецКвартала(Дата) |
Последний день квартала | 31.03.2026 |
ДобавитьМесяц(Дата, Количество) |
Сдвигает дату на N месяцев | ДобавитьМесяц(ТекущаяДата(), -1) → предыдущий месяц |
🔹 Пример кода для создания периода "прошлый месяц":
НачалоПериода = НачалоМесяца(ДобавитьМесяц(ТекущаяДата(), -1));
КонецПериода = КонецМесяца(ДобавитьМесяц(ТекущаяДата(), -1));
Сообщить("Период: " + Формат(НачалоПериода, "ДФ=dd.MM.yyyy") + " - " + Формат(КонецПериода, "ДФ=dd.MM.yyyy"));
⚠️ Внимание: При программной работе с периодами в распределенных базах данных (например, 1С:Управление холдингом) учитывайте, что даты должны синхронизироваться между узлами. Используйте функцию ТекущаяДатаСеанса() вместо ТекущаяДата(), чтобы избежать расхождений.
4. Особенности работы с периодами в разных конфигурациях 1С
Каждая конфигурация 1С имеет свои нюансы при работе с временными интервалами. Рассмотрим ключевые различия:
4.1. 1С:Бухгалтерия 3.0
Здесь период критичен для:
- 📋 Регламентных операций (например,
Закрытие месяца). Перед закрытием проверяйте, что все документы проведены в рамках текущего периода. - 📊 Регламентированной отчетности (декларации, расчеты по страховым взносам). Период должен строго соответствовать требованиям ФНС.
- 🔄 Перепроведения документов. При изменении периода перепроведения (
Все документы→Перепровести) учитывайте нагрузку на сервер.
В 1С:Бухгалтерия 3.0 при формировании отчетов типа Анализ счета или Карточка счета период по умолчанию устанавливается на текущий месяц, но его можно расширить до года для анализа динамики.
4.2. 1С:Управление торговлей 11
В торговых конфигурациях период важен для:
- 📦 Аналитики продаж (отчеты
Ведомость по товарам,ABC-анализ). - 📈 Плана закупок. Период планирования должен совпадать с периодами поставщиков.
- 🔄 Инвентаризации. Дата инвентаризации фиксирует остатки на конец периода.
⚠️ Внимание: В 1С:УТ при работе с сезонными товарами период анализа продаж должен охватывать не менее 12 месяцев, иначе данные будут нерепрезентативны.
4.3. 1С:Зарплата и управление персоналом
Здесь периоды используются для:
- 💰 Начисления зарплаты (месяц, полугодие).
- 📅 Табельного учета (день, неделя, месяц).
- 📊 Отчетов в ПФР и ФСС (квартал, год).
🔹 Пример: При формировании отчета РСВ (расчет по страховым взносам) период должен строго соответствовать кварталу. Ошибка в датах приведет к отказу в приеме отчетности.
Как проверить закрытие периода в 1С
Бухгалтерия:
1. Откройте раздел Отчеты → Регламентные операции → Журнал закрытия месяца.
2. Посмотрите статус последней операции: если стоит галочка ✅, период закрыт.
3. Для детальной проверки используйте отчет Контроль закрытия месяца (доступен в профессиональных редакциях).
5. Типичные ошибки при работе с периодами и как их избежать
Даже опытные пользователи сталкиваются с проблемами, связанными с некорректными периодами. Рассмотрим самые распространенные ошибки и способы их решения:
5.1. Ошибка: "Период не входит в допустимый диапазон"
🔹 Причина: Вы пытаетесь задать дату, которая выходит за пределы:
- 📅 Даты создания информационной базы.
- 📅 Даты блокировки (если период закрыт для изменений).
- 📅 Текущей даты (в некоторых конфигурациях запрещено работать с будущими периодами).
🔹 Решение:
- Проверьте допустимый диапазон дат в настройках учетной политики (
Главное → Настройки → Учетная политика). - Если период закрыт, выполните
Открытие периода(требуются права администратора). - Для будущих дат используйте тестовую базу или отложите операцию.
5.2. Ошибка: "Некорректная дата начала периода"
🔹 Причина: Дата начала позже даты окончания или указана в неверном формате (например, 31.02.2026).
🔹 Решение:
- Проверьте формат даты в настройках региональных стандартов (
Сервис → Параметры → Региональные настройки). - Используйте календарь для выбора дат, а не ручной ввод.
5.3. Ошибка: "Период пересекается с уже закрытым"
🔹 Причина: Вы пытаетесь провести документ или изменить данные в периоде, который уже закрыт (например, после выполнения регламентной операции Закрытие месяца).
🔹 Решение:
- Откройте журнал закрытия месяца (
Отчеты → Регламентные операции). - Если закрытие выполнено ошибочно, отмените его (требуются права администратора).
- Для корректировок используйте механизм
Исправление ошибок закрытия(доступен в 1С:Бухгалтерия 3.0).
⚠️ Внимание: В 1С:ERP и 1С:КА 2.4 при работе с бюджетированием периоды бюджетов и фактических данных должны совпадать. Расхождение приведет к ошибкам при анализе отклонений.
Если вам нужно часто работать с одним и тем же периодом (например, "прошлый квартал"), создайте обработку с предопределенными датами. Это сэкономит время и уменьшит риск ошибок при ручном вводе.
6. Продвинутые приемы: динамические периоды и работа с датами
Для автоматизации рутинных задач можно использовать динамические периоды, которые рассчитываются на основе текущей даты или других параметров.
6.1. Создание "плавающих" периодов
🔹 Пример 1: Период "последние 30 дней" (скользящее окно):
КонецПериода = ТекущаяДата();
НачалоПериода = НачалоДня(ДобавитьДень(КонецПериода, -30));
🔹 Пример 2: Период "с начала года по предыдущий месяц":
КонецПериода = КонецМесяца(ДобавитьМесяц(ТекущаяДата(), -1));
НачалоПериода = НачалоГода(КонецПериода);
6.2. Работа с нестандартными периодами (неделя, 10 дней)
Для аналитики иногда требуются нетипичные интервалы. Например, ретайл-неделя (с понедельника по воскресенье) или декада (10 дней).
🔹 Пример: Получение дат текущей ретайл-недели:
ТекущаяДата = ТекущаяДата();
// Находим понедельник текущей недели
НачалоНедели = ТекущаяДата - (ДеньНедели(ТекущаяДата) - 1);
// Воскресенье текущей недели
КонецНедели = НачалоНедели + 6;
6.3. Проверка периодов на корректность
Перед использованием периода в обработках рекомендуется выполнять валидацию:
Функция ПроверитьПериод(Начало, Конец) Экспорт
Если Начало > Конец Тогда
Возврат Ложь;
КонецЕсли;
// Проверка на будущие даты (если не разрешено)
Если Конец > ТекущаяДата() Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
⚠️ Внимание: В 1С:Управление холдингом при работе с консолидированными отчетами периоды дочерних организаций должны быть синхронизированы с головной компанией. Расхождение приведет к ошибкам консолидации.
Динамические периоды позволяют создавать гибкие отчеты, которые автоматически адаптируются к текущей дате. Это особенно полезно для регулярной аналитики (еженедельные/ежемесячные отчеты).
7. Как исправить ошибки закрытия периода
Если период ошибочно закрыт или требуется внести изменения в прошлые данные, воспользуйтесь следующими методами:
7.1. Открытие периода в 1С:Бухгалтерия 3.0
Перейдите в
Отчеты → Регламентные операции → Журнал закрытия месяца.Найдите строку с закрытым периодом и снимите флажок
Закрыт.Нажмите
Выполнить отмену закрытия.После внесения изменений повторно выполните закрытие месяца.
7.2. Исправление ошибок без открытия периода
В некоторых случаях можно обойтись без полного открытия:
- 🔹 Используйте документ
Корректировка записей(доступен в 1С:Бухгалтерия и 1С:ERP). - 🔹 Для кадровых данных в 1С:ЗУП применяйте документ
Исправление данных учета. - 🔹 В торговле (1С:УТ) используйте
Корректировку остатков.
🔹 Важно: После любых исправлений в закрытых периодах рекомендуется:
- Перепровести связанные документы.
- Сформировать контрольные отчеты (
Оборотно-сальдовая ведомость,Анализ счета). - Сверить данные с предыдущими периодами на предмет расхождений.
8. Часто задаваемые вопросы (FAQ)
Как задать период "с начала года по текущую дату"?
Используйте комбинацию функций НачалоГода() и ТекущаяДата():
НачалоПериода = НачалоГода(ТекущаяДата());
КонецПериода = ТекущаяДата();
В интерфейсе выберите в календаре 1 января текущего года и сегодняшнюю дату.
Почему в отчете не показываются данные за выбранный период?
Возможные причины:
- 🔹 Период закрыт для изменений (проверьте журнал закрытия месяца).
- 🔹 В настройках отчета установлен фильтр по организации, валюте или другому параметру.
- 🔹 Данные еще не проведены (проверьте статусы документов).
- 🔹 Ошибка в правах доступа (у пользователя нет прав на просмотр данных за этот период).
Решение: Уточните период, проверьте настройки отчета и права пользователя.
Как в 1С задать период "последний квартал"?
Вручную:
- В календаре нажмите кнопку
Квартал. - Выберите предыдущий квартал (например, если сейчас 2-й квартал, выберите 1-й).
Программно:
ТекущийКвартал = Квартал(ТекущаяДата());
НачалоПериода = НачалоКвартала(ДобавитьКвартал(ТекущаяДата(), -1));
КонецПериода = КонецКвартала(ДобавитьКвартал(ТекущаяДата(), -1));
Можно ли в 1С задать период с точностью до часа/минуты?
Да, но это зависит от конфигурации:
- 🔹 В 1С:Бухгалтерия и 1С:УТ периоды обычно задаются с точностью до дня.
- 🔹 В 1С:ЗУП для табельного учета можно указывать время (например,
08:00 01.01.2026). - 🔹 В 1С:ERP и 1С:КА для некоторых операций доступны часы и минуты.
Для работы с временем используйте функции НачалоЧаса(), КонецМинуты() и т.д.
Как перенести период из одного отчета в другой?
Способы:
- 🔹 Копирование через буфер: В первом отчете выделите период в полях ввода, скопируйте (
Ctrl+C) и вставьте (Ctrl+V) во второй отчет. - 🔹 Сохранение настроек: В некоторых конфигурациях можно сохранить настройки отчета (включая период) в файл и загрузить их в другой отчет.
- 🔹 Программно: Если вы разрабатываете обработку, передавайте период как параметр между процедурами.