Работа с периодами в 1С:Предприятие — одна из базовых операций, с которой сталкиваются и бухгалтеры, и программисты, и обычные пользователи. Без корректно заданного временного интервала невозможно сформировать отчет, провести документ или выполнить обработку данных. Однако даже опытные специалисты иногда сталкиваются с ошибками типа "Период не входит в допустимый диапазон" или "Некорректная дата начала/окончания", которые блокируют работу.

В этой статье мы разберем все способы создания периодов — от ручного ввода в формах до программного задания через встроенный язык 1С. Особое внимание уделим нюансам для разных конфигураций (1С:Бухгалтерия 3.0, 1С:Управление торговлей 11, 1С:Зарплата и управление персоналом) и типичным ошибкам, которые возникают при работе с датами. Если вы только начинаете осваивать , здесь найдете пошаговые скриншоты. Разработчики получат готовые кодовые примеры для типичных задач.

⚠️ Внимание: Интерфейсы и доступные функции могут отличаться в зависимости от версии платформы 1С:Предприятие (8.3.20+ рекомендуется для актуальных конфигураций). Перед работой с критическими данными проверьте настройки периода в тестовой базе или сделайте резервную копию.

1. Что такое период в 1С и зачем он нужен

В 1С:Предприятие период — это временной интервал, который определяет, за какой промежуток времени будут обрабатываться данные. Он может состоять из:

  • 📅 Даты начала — первый день интервала (включительно).
  • 📅 Даты окончания — последний день интервала (включительно).
  • 🔄 Типа периода — день, неделя, месяц, квартал, год или произвольный интервал.

Без корректного периода невозможно:

  • 📊 Сформировать отчет (например, Оборотно-сальдовую ведомость или Анализ субконто).
  • 📄 Провести документ с привязкой ко времени (например, Поступление товаров или Начисление зарплаты).
  • 🔧 Выполнить обработку данных (например, Закрытие месяца или Перепроведение документов).

В разных конфигурациях период может задаваться:

  • 🖥️ Вручную — через интерфейс программы (календарь, поля ввода).
  • 💻 Программно — с помощью встроенного языка 1С (для разработчиков).
  • 📥 Автоматически — по умолчанию (например, текущий месяц в отчетах).

⚠️ Внимание: В конфигурациях с поддержкой регламентированного учета (например, 1С:Бухгалтерия) период закрытия месяца блокирует изменение данных за прошлые интервалы. Попытка провести документ "задним числом" может привести к ошибке "Период закрыт для изменений".

2. Как задать период вручную: пошаговая инструкция

Самый простой способ — использовать стандартные элементы интерфейса . Рассмотрим на примере формирования отчета Оборотно-сальдовая ведомость в 1С:Бухгалтерия 3.0:

  1. Откройте раздел Отчеты → выберите Оборотно-сальдовая ведомость.

  2. В верхней части формы найдите поля Период с и по (или одно поле Период с календарем).

  3. Нажмите на иконку календаря (📅) рядом с полем. Откроется окно выбора даты.

  4. Выберите нужный интервал:

    • 🔹 Для одного дня — укажите одинаковую дату в обоих полях.
    • 🔹 Для месяца — выберите первый и последний день месяца (например, 01.01.202631.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С:Управление холдингом) учитывайте, что даты должны синхронизироваться между узлами. Используйте функцию ТекущаяДатаСеанса() вместо ТекущаяДата(), чтобы избежать расхождений.

    📊 Какой способ задания периода вы используете чаще?
    Ручной ввод в интерфейсе
    Программный код на 1С
    Автоматические периоды (текущий месяц/год)
    Другой вариант

    4. Особенности работы с периодами в разных конфигурациях 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. Ошибка: "Период не входит в допустимый диапазон"

    🔹 Причина: Вы пытаетесь задать дату, которая выходит за пределы:

    • 📅 Даты создания информационной базы.
    • 📅 Даты блокировки (если период закрыт для изменений).
    • 📅 Текущей даты (в некоторых конфигурациях запрещено работать с будущими периодами).

    🔹 Решение:

    1. Проверьте допустимый диапазон дат в настройках учетной политики (Главное → Настройки → Учетная политика).
    2. Если период закрыт, выполните Открытие периода (требуются права администратора).
    3. Для будущих дат используйте тестовую базу или отложите операцию.

    5.2. Ошибка: "Некорректная дата начала периода"

    🔹 Причина: Дата начала позже даты окончания или указана в неверном формате (например, 31.02.2026).

    🔹 Решение:

    • Проверьте формат даты в настройках региональных стандартов (Сервис → Параметры → Региональные настройки).
    • Используйте календарь для выбора дат, а не ручной ввод.

    5.3. Ошибка: "Период пересекается с уже закрытым"

    🔹 Причина: Вы пытаетесь провести документ или изменить данные в периоде, который уже закрыт (например, после выполнения регламентной операции Закрытие месяца).

    🔹 Решение:

    1. Откройте журнал закрытия месяца (Отчеты → Регламентные операции).
    2. Если закрытие выполнено ошибочно, отмените его (требуются права администратора).
    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

    1. Перейдите в Отчеты → Регламентные операции → Журнал закрытия месяца.

    2. Найдите строку с закрытым периодом и снимите флажок Закрыт.

    3. Нажмите Выполнить отмену закрытия.

    4. После внесения изменений повторно выполните закрытие месяца.

    7.2. Исправление ошибок без открытия периода

    В некоторых случаях можно обойтись без полного открытия:

    • 🔹 Используйте документ Корректировка записей (доступен в 1С:Бухгалтерия и 1С:ERP).
    • 🔹 Для кадровых данных в 1С:ЗУП применяйте документ Исправление данных учета.
    • 🔹 В торговле (1С:УТ) используйте Корректировку остатков.

    🔹 Важно: После любых исправлений в закрытых периодах рекомендуется:

    1. Перепровести связанные документы.
    2. Сформировать контрольные отчеты (Оборотно-сальдовая ведомость, Анализ счета).
    3. Сверить данные с предыдущими периодами на предмет расхождений.

    8. Часто задаваемые вопросы (FAQ)

    Как задать период "с начала года по текущую дату"?

    Используйте комбинацию функций НачалоГода() и ТекущаяДата():

    НачалоПериода = НачалоГода(ТекущаяДата());
    

    КонецПериода = ТекущаяДата();

    В интерфейсе выберите в календаре 1 января текущего года и сегодняшнюю дату.

    Почему в отчете не показываются данные за выбранный период?

    Возможные причины:

    • 🔹 Период закрыт для изменений (проверьте журнал закрытия месяца).
    • 🔹 В настройках отчета установлен фильтр по организации, валюте или другому параметру.
    • 🔹 Данные еще не проведены (проверьте статусы документов).
    • 🔹 Ошибка в правах доступа (у пользователя нет прав на просмотр данных за этот период).

    Решение: Уточните период, проверьте настройки отчета и права пользователя.

    Как в 1С задать период "последний квартал"?

    Вручную:

    1. В календаре нажмите кнопку Квартал.
    2. Выберите предыдущий квартал (например, если сейчас 2-й квартал, выберите 1-й).

    Программно:

    ТекущийКвартал = Квартал(ТекущаяДата());
    

    НачалоПериода = НачалоКвартала(ДобавитьКвартал(ТекущаяДата(), -1));

    КонецПериода = КонецКвартала(ДобавитьКвартал(ТекущаяДата(), -1));

    Можно ли в 1С задать период с точностью до часа/минуты?

    Да, но это зависит от конфигурации:

    • 🔹 В 1С:Бухгалтерия и 1С:УТ периоды обычно задаются с точностью до дня.
    • 🔹 В 1С:ЗУП для табельного учета можно указывать время (например, 08:00 01.01.2026).
    • 🔹 В 1С:ERP и 1С:КА для некоторых операций доступны часы и минуты.

    Для работы с временем используйте функции НачалоЧаса(), КонецМинуты() и т.д.

    Как перенести период из одного отчета в другой?

    Способы:

    • 🔹 Копирование через буфер: В первом отчете выделите период в полях ввода, скопируйте (Ctrl+C) и вставьте (Ctrl+V) во второй отчет.
    • 🔹 Сохранение настроек: В некоторых конфигурациях можно сохранить настройки отчета (включая период) в файл и загрузить их в другой отчет.
    • 🔹 Программно: Если вы разрабатываете обработку, передавайте период как параметр между процедурами.