Работа с датами в 1С:Предприятие — одна из самых частых операций, с которой сталкиваются и бухгалтеры, и кладовщики, и разработчики. Казалось бы, что может быть проще, чем указать текущую дату в документе? Но на практике пользователи сталкиваются с ошибками формата, проблемами при автоматическом заполнении или необходимостью вводить даты в нестандартных форматах (например, для отчетности по иностранным стандартам). В этой статье мы разберем все возможные способы работы с датами — от базового ручного ввода до программного управления через встроенный язык 1С.

Особое внимание уделим типичным ошибкам, которые приводят к сбоям в отчетах или неправильному расчету налогов. Например, многие не знают, что при экспорте данных в Excel даты могут автоматически преобразовываться в другой формат, если не настроить параметры выгрузки. Или что в некоторых конфигурациях (например, 1С:ERP) дата документа влияет на доступность определенных функций — например, блокировку редактирования после проведения.

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

1. Ручной ввод даты: базовые правила

Самый простой способ указать дату в 1С — ввести её вручную в соответствующем поле документа или справочника. Однако даже здесь есть нюансы, которые влияют на корректность работы системы.

Формат даты по умолчанию зависит от региональных настроек вашей операционной системы и конфигурации 1С. В России чаще всего используется формат ДД.ММ.ГГГГ (например, 15.05.2026). Но в некоторых случаях (например, при работе с иностранными контрагентами) может потребоваться формат ММ/ДД/ГГГГ или ГГГГ-ММ-ДД (ISO). Чтобы избежать путаницы, всегда обращайте внимание на подсказки в интерфейсе:

  • 📅 ДД.ММ.ГГГГ — стандартный российский формат (день, месяц, год). Используется по умолчанию в большинстве конфигураций.
  • 📅 ММ/ДД/ГГГГ — американский формат. Может встречаться в конфигурациях для международных компаний.
  • 📅 ГГГГ-ММ-ДД — формат ISO, часто используется в обмене данными с другими системами.

Если вы ввели дату в неверном формате, 1С может:

  • ⚠️ Автоматически исправить её (например, 12.13.2026 превратится в 13.12.2026, если 12-й месяц не существует).
  • ⚠️ Выдать ошибку и заблокировать сохранение документа.
  • ⚠️ Сохранить дату "как есть", ноLater вызвать сбои в отчетах (например, если 31.02.2026 прошло валидацию, но такого дня не существует).
⚠️ Внимание: В конфигурациях 1С:Зарплата и Управление Персоналом некорректная дата в документах по сотрудникам (например, в кадровых перемещениях) может привести к ошибкам в расчете стажа и начислениях. Всегда проверяйте даты в таких документах дважды.
📊 Какой формат даты вы используете чаще всего?
ДД.ММ.ГГГГ
ММ/ДД/ГГГГ
ГГГГ-ММ-ДД
Другой

2. Автоматическое заполнение текущей даты

В большинстве документов 1С текущая дата проставляется автоматически при создании нового элемента. Однако иногда требуется обновить её или вставить в поле, где автозаполнение не работает. Вот как это сделать:

Способ 1: Горячие клавиши

Чтобы быстро вставить сегодняшнюю дату в любое поле, используйте комбинацию:

Ctrl + ;

Эта комбинация работает в большинстве конфигураций 1С (включая 1С:Бухгалтерия 8, 1С:Управление Торговлей, 1С:ERP). Если она не срабатывает, проверьте настройки интерфейса или используйте альтернативный метод.

Способ 2: Контекстное меню

Кликните правой кнопкой мыши по полю даты и выберите пункт Вставить текущую дату (название может отличаться в зависимости от конфигурации). В некоторых версиях этот пункт называется Сегодня или Текущая дата.

Конфигурация 1С Горячие клавиши для даты Пункт контекстного меню
1С:Бухгалтерия 8 Ctrl + ; Вставить текущую дату
1С:Управление Торговлей 11 Ctrl + ; или Shift + T Сегодня
1С:ERP Управление предприятием 2 Ctrl + ; Текущая дата
1С:Зарплата и Управление Персоналом Ctrl + ; или F5 Вставить дату

Если автоматическое заполнение даты не работает, проверьте:

  • 🔧 Настройки прав пользователя (возможно, у вас нет прав на редактирование дат в этом документе).
  • 🔧 Настройки конфигурации (в некоторых случаях автозаполнение отключают для определенных типов документов).
  • 🔧 Версию платформы 1С (в старых версиях некоторые функции могут отсутствовать).
💡

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

3. Работа с датами в табличных частях документов

Табличные части документов (например, списки товаров в накладной или график платежей в договоре) часто требуют заполнения дат для каждой строки. Здесь ручной ввод может занять много времени, поэтому полезно знать способы автоматизации.

Способ 1: Копирование даты на несколько строк

Если вам нужно проставить одинаковую дату для нескольких строк:

  1. Введите дату в первую строку.
  2. Выделите ячейку с датой и нажмите Ctrl + C.
  3. Выделите ячейки в других строках, куда нужно скопировать дату, и нажмите Ctrl + V.

Способ 2: Автозаполнение с шагом

Если даты должны идти с определенным интервалом (например, ежемесячные платежи по кредиту), используйте функцию автозаполнения:

  1. Введите начальную дату в первую строку.
  2. Вторую строку заполните датой с нужным шагом (например, 01.06.2026, если первая дата 01.05.2026 и шаг — 1 месяц).
  3. Выделите обе ячейки и "протяните" маркер автозаполнения (маленький квадратик в правом нижнем углу выделения) вниз на нужное количество строк.

Способ 3: Программное заполнение (для разработчиков)

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

Для Каждого Строка Из Документ.ТабличнаяЧасть Цикл

Строка.Дата = НачальнаяДата + (Строка.НомерСтроки - 1);

КонецЦикла;

Где НачальнаяДата — переменная с исходной датой, а Дата — имя колонки в табличной части.

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

Выбраны корректные даты для всех строк|Дата первой строки логически оправдана|Шаг между датами соответствует бизнес-логике|Нет "прыгающих" дат (например, 01.01.2026 → 15.06.2026 → 02.01.2026)-->

4. Программная работа с датами (для разработчиков)

Разработчики 1С часто сталкиваются с задачами, где требуется не просто вставить дату, а произвести с ней какие-либо действия: прибавить дни, вычесть месяцы, сравнить с другой датой или преобразовать в строку особого формата. Для этого во встроенном языке 1С есть специальные функции.

Основные функции для работы с датами:

  • 📅 ТекущаяДата() — возвращает текущую дату и время.
  • 📅 НачалоДня(Дата) — обнуляет время, оставляя только дату.
  • 📅 КонецДня(Дата) — устанавливает время на 23:59:59.
  • 📅 ДобавитьМесяц(Дата, Количество) — добавляет указанное количество месяцев.
  • 📅 РазницаДат(Дата1, Дата2, ЕдиницаИзмерения) — вычисляет разницу между датами в днях, месяцах или годах.

Пример 1: Добавление дней к дате

Допустим, вам нужно рассчитать дату оплаты через 10 дней после даты заказа:

ДатаОплаты = ДобавитьДень(Документ.Дата, 10);

Пример 2: Проверка просроченных документов

Чтобы найти все неоплаченные счета с просрочкой более 30 дней:

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| СчетаКОплате.Ссылка КАК Ссылка

|ИЗ

| Документ.СчетКОплате КАК СчетаКОплате

|ГДЕ

| СчетаКОплате.ДатаОплаты < ТекущаяДата() - 30

| И СчетаКОплате.СтатусОплаты = Значение(Перечисление.СтатусыОплаты.НеОплачен)";

Пример 3: Форматирование даты для отчета

Если нужно вывести дату в нестандартном формате (например, "15 мая 2026 года"):

ФорматированнаяДата = Формат(ТекущаяДата(), "ДФ='dd MMMM yyyy года'");
Функция Пример использования Результат
Год(Дата) Год(ТекущаяДата()) 2026
Месяц(Дата) Месяц(ТекущаяДата()) 5 (для мая)
ДеньНедели(Дата) ДеньНедели(ТекущаяДата()) 3 (среда, если 1 — понедельник)
НачалоКвартала(Дата) НачалоКвартала('15.05.2026') 01.04.2026
⚠️ Внимание: При работе с датами в 1С:Предприятие 8.3 и выше учитывайте, что функции ДобавитьМесяц() и ДобавитьГод() корректно обрабатывают переходы через границы месяцев и високосные годы. Однако в старых версиях платформы (8.2 и ниже) могут возникать ошибки при добавлении месяцев к датам вроде 31.01.2026 + 1 месяц (результат будет 28.02.2026, а не 31.03.2026).
Как 1С обрабатывает несуществующие даты?

При добавлении месяцев к датам, которые не существуют в целевом месяце (например, 31 января + 1 месяц), 1С автоматически корректирует дату до последнего дня месяца. Например:

- 31.01.2026 + 1 месяц = 29.02.2026 (високосный год)

- 31.03.2026 + 1 месяц = 30.04.2026 (в апреле 30 дней)

- 31.12.2026 + 1 месяц = 31.01.2026

Это правило работает во всех современных версиях платформы 1С (8.3 и выше).

5. Типичные ошибки при работе с датами и как их избежать

Ошибки с датами — одна из самых распространенных причин сбоев в 1С. Они могут приводить к неправильным расчетам, ошибкам при проведении документов или даже потере данных. Разберем самые частые проблемы и способы их решения.

Ошибка 1: Несоответствие форматов при обмене данными

При импорте/экспорте данных (например, через Com-соединение или XML) даты могут искажаться, если форматы в источниках и приемниках не совпадают. Например, дата 05.06.2026 (5 июня) в американском формате будет интерпретирована как 6 мая.

Решение: Всегда проверяйте настройки обмена и при необходимости используйте функции преобразования формата, например:

ДатаДляЭкспорта = Формат(Документ.Дата, "ДФ=yyyy-MM-dd");

Ошибка 2: Пустые даты в обязательных полях

Некоторые документы (например, Поступление товаров или Реализация) требуют обязательного заполнения даты. Если поле остается пустым, документ не проведется.

Решение: Используйте конструкцию для проверки заполненности:

Если Документ.Дата = '00010101' Тогда

Сообщить("Дата не заполнена!");

Возврат;

КонецЕсли;

Ошибка 3: Даты вне допустимого диапазона

В 1С даты могут храниться в диапазоне с 01.01.0001 по 31.12.9999. Однако в некоторых конфигурациях (например, 1С:Бухгалтерия) накладываются дополнительные ограничения. Например, дата документа не может быть раньше даты начала ведения учета в информационной базе.

Решение: Проверяйте диапазон допустимых дат через Максимум(Дата1, Дата2) и Минимум(Дата1, Дата2).

Ошибка 4: Разница во временных зонах

Если вы работаете с распределенной информационной базой (например, филиалы в разных часовых поясах), даты в документах могут сдвигаться на несколько часов. Это актуально для конфигураций с учетом времени (например, 1С:ERP с модулем Управление производством).

Решение: Настройте параметры временных зон в конфигураторе или используйте функцию ЛокальнаяДата() для приведения к единому стандарту.

  • ⚠️ Последствия ошибок с датами:
  • 📉 Неправильный расчет налогов (например, НДС за неверный период).
  • 📉 Блокировка проведения документов.
  • 📉 Ошибки в отчетах (например, оборотно-сальдовая ведомость покажет неверные остатки).
  • 📉 Проблемы при обмене данными с банками или госорганами (например, неверная дата в платежном поручении приведет к отказу в исполнении).
💡

Всегда проверяйте даты в документах, которые влияют на финансовые расчеты или налоговую отчетность. Ошибка даже в один день может привести к штрафам от ФНС.

6. Особенности работы с датами в отчетах

При формировании отчетов (например, Оборотно-сальдовая ведомость, Анализ субконто) даты играют ключевую роль. Они определяют период, за который будут выбраны данные, и влияют на итоговые показатели. Рассмотрим основные нюансы.

Настройка периода в отчетах

Большинство отчетов в 1С имеют поля Начало периода и Конец периода. По умолчанию там часто проставляется текущий месяц, но вы можете изменить его:

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

Использование относительных дат

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

  • 📅 Начало недели / Конец недели
  • 📅 Начало месяца / Конец месяца
  • 📅 Начало квартала / Конец квартала
  • 📅 Начало года / Конец года

Это удобно для регулярных отчетов, где не нужно каждый раз вводить даты вручную.

Экспорт отчетов с датами в Excel

При экспорте отчета в Excel даты могут преобразовываться в числовой формат (например, 45341 вместо 01.05.2026). Чтобы этого избежать:

  1. Перед экспортом откройте настройки выгрузки (обычно кнопка Еще → Параметры экспорта).
  2. Укажите, что даты должны сохраняться в текстовом формате.
  3. Или после экспорта в Excel выделите колонку с датами и примените формат Дата.
⚠️ Внимание: В отчетах по НДС (например, Книга покупок/продаж) даты должны строго соответствовать налоговому периоду. Если вы укажете неверный интервал, отчет может не сойтись с декларацией, что приведет к проблемам при камеральной проверке.
💡

Если вам часто нужны отчеты за стандартные периоды (месяц, квартал, год), сохраните шаблоны настроек. Для этого сформируйте отчет с нужными датами, затем нажмите Еще → Сохранить настройки и укажите имя шаблона.

7. Даты в документообороте: юридические нюансы

В некоторых документах дата имеет не только техническое, но и юридическое значение. Например:

  • 📄 В платежных поручениях дата определяет срок исполнения банком.
  • 📄 В договорах дата подписания влияет на начало действия обязательств.
  • 📄 В счетах-фактурах дата определяет налоговый период для НДС.
  • 📄 В кадровых документах (приказы о приеме/увольнении) дата влияет на расчет стажа и выплат.

Особенности для бухгалтеров:

  • 💰 Дата в платежном поручении не может быть раньше даты его создания в 1С (иначе банк отклонит платеж).
  • 💰 Дата счета-фактуры должна попадать в тот же налоговый период, что и дата отгрузки (для НДС).
  • 💰 В авансовых отчетах дата должна быть не позже даты, указанной в приказе о командировке.

Особенности для кадровиков:

  • 👔 Дата приказа о приеме на работу не может быть позже даты фактического выхода сотрудника.
  • 👔 Дата увольнения должна совпадать с последним рабочим днем (иначе могут быть проблемы с трудовой инспекцией).
  • 👔 В больничных листах даты должны строго соответствовать периоду нетрудоспособности (расхождения даже в один день приводят к отказам в выплатах от ФСС).

Для документов с юридической силой рекомендуется:

  1. Всегда проверять даты на соответствие первичным документам (договорам, актам, приказам).
  2. Использовать функцию КонтрольДат() в 1С для проверки логической последовательности (если она доступна в вашей конфигурации).
  3. Ведите журнал изменений дат в критически важных документах (например, через механизм версионности в 1С).
⚠️ Внимание: В конфигурациях 1С:Зарплата и Управление Персоналом и 1С:ERP даты в кадровых документах блокируются для редактирования после проведения. Чтобы изменить дату, нужно сначала сделать документ непроведенным.

8. Продвинутые приемы: работа с датами через запросы

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

Пример 1: Выборка документов за текущий месяц

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Документ.Ссылка КАК Ссылка,

| Документ.Дата КАК Дата,

| Документ.Сумма КАК Сумма

|ИЗ

| Документ.РеализацияТоваровУслуг КАК Документ

|ГДЕ

| Документ.Дата МЕЖДУ НачалоМесяца(ТекущаяДата()) И КонецМесяца(ТекущаяДата())";

Пример 2: Группировка по годам

Если нужно посчитать суммы продаж по годам:

Запрос.Текст =

"ВЫБРАТЬ

| ГОД(Документ.Дата) КАК Год,

| СУММА(Документ.Сумма) КАК Итого

|ИЗ

| Документ.РеализацияТоваровУслуг КАК Документ

|СГРУППИРОВАТЬ ПО

| ГОД(Документ.Дата)";

Пример 3: Сравнение с датой относительно текущей

Найти документы, которые были созданы ровно год назад:

Запрос.Текст =

"ВЫБРАТЬ

| Документ.Ссылка КАК Ссылка

|ИЗ

| Документ.ПоступлениеТоваровУслуг КАК Документ

|ГДЕ

| Документ.Дата = НачалоДня(ТекущаяДата() - 365)";

Пример 4: Работа с временными интервалами

Выбрать документы, созданные в рабочие дни (понедельник-пятница):

Запрос.Текст =

"ВЫБРАТЬ

| Документ.Ссылка КАК Ссылка

|ИЗ

| Документ.ЗаказПокупателя КАК Документ

|ГДЕ

| ДеньНедели(Документ.Дата) МЕЖДУ 2 И 6"; // 2 — вторник, 6 — суббота (1 — понедельник)

Пример 5: Использование параметров в запросах

Чтобы сделать запрос гибким и передавать даты как параметры:

Запрос = Новый Запрос;

Запрос.УстановитьПараметр("ДатаНачала", НачалоМесяца(ТекущаяДата()));

Запрос.УстановитьПараметр("ДатаОкончания", КонецМесяца(ТекущаяДата()));

Запрос.Текст =

"ВЫБРАТЬ

| Документ.Ссылка КАК Ссылка

|ИЗ

| Документ.Оплаты КАК Документ

|ГДЕ

| Документ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";

⚠️ Внимание: В