Квартал в 1С: как узнать границы, выбрать период и вычислить номер в коде
Содержание
Квартал в 1С — это три календарных месяца подряд: I квартал — январь, февраль, март; II — апрель, май, июнь; III — июль, август, сентябрь; IV — октябрь, ноябрь, декабрь. Чтобы определить квартал по дате, достаточно посмотреть на месяц и разделить его номер на три: дату закрытия периода программа подставит сама.
На практике «определить квартал» значит одно из трёх: выбрать нужные три месяца в периоде отчёта, отфильтровать документы за квартал или вычислить номер квартала в коде. Разберём каждый путь — от мыши в обычной базе до функций встроенного языка.
Границы квартала по календарю
Запомнить деление проще всего по таблице. Границы не меняются из года в год — это обычный календарный квартал, а не «квартал с даты регистрации».
| Квартал | Месяцы | Первый день | Последний день |
|---|---|---|---|
| I | январь — март | 1 января | 31 марта |
| II | апрель — июнь | 1 апреля | 30 июня |
| III | июль — сентябрь | 1 июля | 30 сентября |
| IV | октябрь — декабрь | 1 октября | 31 декабря |
Чтобы быстро получить номер квартала по месяцу вручную: возьмите номер месяца, отнимите единицу, разделите на три нацело и прибавьте один. Например, для сентября: (9 − 1) ÷ 3 = 2 (целая часть), плюс 1 — это III квартал. Для декабря: (12 − 1) ÷ 3 = 3 (целая часть), плюс 1 — IV квартал.
Проверьте себя на паре дат.
Как выбрать квартал в отчёте
В любом стандартном отчёте (оборотно-сальдовая ведомость, карточка счёта, анализ счёта) период задаётся вверху формы — полем или двумя датами «с … по …». Чтобы не вводить границы руками, откройте выбор периода щелчком по полю: появится календарь с переключателем вида периода.
Порядок действий:
- Нажмите на поле периода в шапке отчёта.
- В открывшемся окне переключите вид периода на
Квартал. - Стрелками листайте кварталы вперёд и назад — даты «с» и «по» программа проставит сама (например,
01.07—30.09). - Нажмите
Выбрать, затемСформировать.
В поле периода есть готовые варианты относительных периодов — «Этот квартал», «Предыдущий квартал», «Этот год». Они удобны для сохранённых настроек и рассылок: отчёт всегда берёт актуальный квартал, пересчитывать даты не нужно.
Если вам нужен не календарный квартал, а произвольные три месяца (скажем, с 15 числа), выбирайте вид периода Произвольный и задавайте даты вручную — переключатель «Квартал» всегда работает строго по календарю.
Отдельно стоит знать про детализацию. В оборотно-сальдовой ведомости и ряде других отчётов есть настройка периодичности вывода. Если задать период в год, а периодичность — Квартал, отчёт развернёт обороты по четырём кварталам отдельными колонками. Это удобно, когда нужно не выбрать один квартал, а сравнить все четыре в одной таблице: видно, в каком квартале прошли крупные обороты, без переформирования отчёта четыре раза.
Квартал в списках документов и журналах
В журналах документов и в списках (счета-фактуры, реализации, поступления) отдельного поля «квартал» нет — там фильтруют по дате. Способов два.
Быстрый интервал дат. В командной панели списка найдите команду установки периода (значок календаря или пункт в меню Ещё). Она открывает тот же выбор периода, что и в отчётах: переключаете на Квартал и выбираете нужный. Список показывает только документы попавших в квартал дат.
Отбор и сортировка. Через Ещё → Настроить список можно добавить отбор по полю Дата с условием «в интервале» и задать границы квартала. Такой отбор удобно сохранить как вариант списка, чтобы возвращаться к нему одним щелчком.
Отбор по дате и установленный интервал работают одновременно. Если список внезапно «потерял» документы, проверьте оба: и период в панели, и сохранённый отбор в настройке списка — часто виноват забытый фильтр.
В регистрах (накопления, бухгалтерии, сведений) понятия «квартал» как реквизита тоже нет — движения хранятся с датой документа-регистратора или с периодом записи. Поэтому «данные регистра за квартал» получают через отбор по периоду: в форме списка регистра или в отчёте на его основе задаётся тот же интервал дат, что и в журналах. Для периодических регистров сведений, где важна дата актуальности, границы квартала задают нижним и верхним пределом среза.
Квартал в регламентированных и налоговых отчётах
Для НДС, авансовых платежей по налогу на прибыль, расчёта по страховым взносам и 6-НДФЛ отчётный период — именно квартал (или нарастающий период в разах квартала). В разделе регламентированной отчётности при создании отчёта программа сама предлагает выбрать период кратно кварталу:
- для декларации по НДС — конкретный квартал (I, II, III, IV);
- для расчёта по страховым взносам, 6-НДФЛ и прибыли — период нарастающим итогом (3, 6, 9 месяцев и год), где каждая граница совпадает с концом квартала.
Если открыть помощник по налогам или список задач, отчётные формы там уже разложены по кварталам со сроками сдачи. Это самый надёжный способ «определить квартал» для сдачи: не вы подбираете даты под отчёт, а программа ставит форму на нужный квартал и напоминает о сроке.
Уточнение по терминам. У квартальных налогов отчётный период и срок уплаты не совпадают: декларация по НДС за квартал сдаётся уже в следующем месяце, а налог платится частями в течение следующего квартала. Поэтому «определить квартал» для расчёта налога и «определить квартал» для даты платёжки — это разные даты: период расчёта берётся по операции, а срок — по регламенту. Список задач организации разводит эти события по отдельным строкам, и путать их не нужно.
НачалоКвартала() и КонецКвартала(), а номер квартала считайте по месяцу формулой.Как вычислить квартал в коде (встроенный язык)
Разработчикам границы квартала не нужно считать руками — во встроенном языке 1С есть готовые функции работы с датами. Блоки кода ниже можно копировать кнопкой.
Начало и конец квартала по любой дате:
Дата = ТекущаяДата();
НачалоКв = НачалоКвартала(Дата); // первый день квартала, 00:00:00
КонецКв = КонецКвартала(Дата); // последний день квартала, 23:59:59
Готового метода «номер квартала» в платформе нет — его получают из номера месяца. Проверенная формула:
Функция НомерКвартала(Дата)
Возврат Цел((Месяц(Дата) - 1) / 3) + 1;
КонецФункции
Разберём на числах. Для марта Месяц вернёт 3: Цел((3 − 1) / 3) = Цел(0,66) = 0, плюс 1 — это I квартал. Для октября Месяц вернёт 10: Цел((10 − 1) / 3) = Цел(3) = 3, плюс 1 — IV квартал. Формула всегда даёт число от 1 до 4.
Если нужен диапазон «весь квартал» для запроса или отбора, берите начало квартала как нижнюю границу и начало следующего квартала как верхнюю — так в выборку не попадёт лишняя секунда последнего дня:
ГраницаС = НачалоКвартала(Дата);
ГраницаПо = НачалоКвартала(ДобавитьМесяц(КонецКвартала(Дата), 1));
// условие в запросе: Документ.Дата >= &ГраницаС И Документ.Дата < &ГраницаПо
Часто номер квартала нужно показать пользователю строкой — в заголовке отчёта или в имени файла выгрузки. Собрать подпись можно так:
Квартал = Цел((Месяц(Дата) - 1) / 3) + 1;
Подпись = СтрШаблон("%1 квартал %2 г.", Квартал, Год(Дата));
// для 15 августа получим: "3 квартал 2026 г."
Здесь важно склеивать число с текстом через СтрШаблон, а не простым сложением: так результат останется читаемым и не превратится в неожиданный формат. Для римской нумерации (I, II, III, IV) заведите соответствие в коде — встроенной функции для римских цифр в платформе нет.
КонецКвартала() возвращает время 23:59:59, а не 00:00:00 следующего дня. Для отборов по строгому «меньше» надёжнее опираться на начало следующего квартала, как в примере выше.
Автоматизация и внешние обработки
Если квартал нужно определять регулярно — в рассылках, печатных формах, выгрузках, — не считайте его каждый раз вручную.
- 📅 Относительные периоды в настройках. Сохраните вариант отчёта с периодом «Этот квартал» или «Предыдущий квартал». При каждом открытии отчёт сам подставит актуальные даты — настройку менять не придётся.
- 📨 Рассылка отчётов по расписанию. В механизме рассылки отчётов укажите относительный период кратно кварталу: система соберёт отчёт за нужный квартал и отправит получателям без участия человека.
- ⚙️ Внешние обработки. Если типовой функциональности не хватает (нестандартный свод по кварталам, выгрузка в свой формат), пишут внешнюю обработку
. В ней те же функции
НачалоКвартала()/КонецКвартала()и формула номера квартала — границы считаются один раз в коде.
Для разовой задачи достаточно относительного периода в стандартном отчёте. Внешнюю обработку заказывайте, только если нужен расчёт, которого нет в типовой конфигурации, — иначе вы усложняете там, где хватает штатной настройки.
Если рассылка или выгрузка работает по расписанию на сервере, помните про момент запуска. Задание, которое стартует 1 числа, определит «предыдущий квартал» уже как новый, завершившийся. А вот запуск 31 числа последнего месяца ещё относит дату к текущему, не закрытому кварталу. Поэтому для квартальных выгрузок ставьте задание на первые дни после окончания квартала и привязывайтесь к относительному периоду «Предыдущий квартал», а не к фиксированным датам, которые придётся править каждые три месяца.
Типичные ошибки с кварталами
Большинство проблем — не в самих функциях, а в датах и границах.
- ❌ Путают календарный и произвольный период. Переключатель
Кварталв отчёте всегда даёт календарные три месяца. Если ждали «последние 90 дней» — это другой режим (Произвольныйпериод). - ❌ Теряют последний день квартала в отборе. Условие
Дата <= КонецКвартала()иногда отсекает документы последнего дня из-за времени23:59:59. Берите начало следующего квартала и строгое<. - ❌ Считают номер квартала делением без целой части.
(Месяц − 1) / 3безЦел()даёт дробь. Номер квартала — только целое число, оборачивайте вЦел(). - ❌ Смешивают квартал и нарастающий период. НДС сдают за отдельный квартал, а взносы и прибыль — нарастающим итогом (3, 6, 9 месяцев). Это разные периоды, хотя границы совпадают с концами кварталов.
- ❌ Забывают сохранённый отбор в списке. Документы «пропали» не из-за квартала, а из-за старого фильтра по дате в настройке списка.
Частые вопросы о квартале в 1С
Как в 1С быстро посмотреть текущий квартал?
Можно ли задать квартал по дате регистрации организации, а не по календарю?
Какой функцией получить номер квартала во встроенном языке?
Цел((Месяц(Дата) - 1) / 3) + 1. Границы периода дают НачалоКвартала() и КонецКвартала().Почему в отборе за квартал пропадают документы последнего дня?
КонецКвартала() возвращает время 23:59:59. Если в условии стоит строгое сравнение, документы с более поздним временем выпадают. Используйте нижнюю границу следующего квартала и условие «меньше».