Работа с датами в 1С:Предприятие 8 — одна из самых частых операций, с которой сталкиваются и бухгалтеры, и программисты. От корректности установленной даты зависит всё: от формирования отчетности до корректной работы документов. Но как правильно задать дату в разных сценариях? Когда достаточно ручного ввода, а когда требуется программное вмешательство?
В этой статье мы разберем 5 основных способов установки даты в 1С 8.3 и 8.2 — от базовых действий в интерфейсе до написания кода на встроенном языке. Особое внимание уделим типичным ошибкам, которые приводят к сбоям в учете, и нюансам работы с ретроспективными данными. Если вы когда-нибудь сталкивались с ситуацией, когда программа "не видит" введенную дату или документ "уезжает" в другой период — этот материал для вас.
Материал будет полезен как начинающим пользователям, так и опытным специалистам. Для удобства мы разделили инструкции по уровням сложности и добавили практические примеры с пояснениями.
1. Ручная установка даты в документах и справочниках
Самый простой способ — ввод даты непосредственно в форме документа или справочника. Этот метод подходит для большинства типовых операций, когда не требуется массовое изменение или автоматизация.
Чтобы установить дату вручную:
- 📅 Откройте нужный документ (например,
Поступление товаровилиСчет-фактура) через журнал документов - 🖱️ Найдите поле
Дата(обычно расположено в шапке документа рядом с номером) - 📝 Кликните по полю и введите дату в формате
ДД.ММ.ГГГГили выберите из календаря (иконка 🗓️) - 💾 Сохраните документ (
Ctrl+Sили кнопкаЗаписать)
Важно учитывать, что в некоторых конфигурациях (например, 1С:Бухгалтерия 3.0) дата документа автоматически влияет на:
- 📊 Период отражения в отчетах (ОСВ, баланс, книга продаж)
- 💰 Курсы валют (если документ валютный)
- 📦 Остатки товаров на складах (для документов движения)
Если дата "не проставляется" или сбрасывается при записи, проверьте права пользователя в Администрирование → Пользователи. Часто проблема кроется в ограничении прав на редактирование ретроспективных данных.
⚠️ Внимание: В конфигурациях с включенным режимом управляемого блокирования (например, 1С:ERP) изменение даты в уже проведенном документе может заблокировать другие операции. Перед массовым изменением дат проверьте настройки блокировок в Администрирование → Настройки программы → Режимы блокировки.
2. Установка даты по умолчанию для новых документов
Если вам постоянно приходится создавать документы с одной и той же датой (например, при ретроспективном вводе данных), удобнее настроить дату по умолчанию. Это сэкономит время и уменьшит риск ошибок.
Способы настройки:
| Метод | Действие | Применение |
|---|---|---|
| Глобальная настройка | Изменить параметр ТекущаяДата в модуле управляемого приложения |
Для всех пользователей системы |
| Пользовательская настройка | Установить РабочаяДата в профиле пользователя |
Индивидуально для каждого оператора |
| Настройка документа | Изменить свойство ДатаПоУмолчанию в метаданных |
Для конкретных видов документов |
Для бухгалтеров самый простой способ — изменить рабочую дату в личном профиле:
- Перейдите в
Сервис → Параметры - Выберите вкладку
Общие - В поле
Рабочая датаукажите нужную дату - Сохраните настройки и перезапустите сеанс
После этого все новые документы будут создаваться с указанной датой по умолчанию. Remember: это не влияет на уже существующие документы!
3. Программная установка даты (для разработчиков)
Когда требуется массовое изменение дат или интеграция с внешними системами, ручной ввод становится неэффективным. В таких случаях используется встроенный язык 1С.
Основные методы программной работы с датами:
// 1. Установка даты для документа
Документ.Дата = '2023-12-31';
// 2. Получение текущей даты системы
ТекущаяДата = ТекущаяДата();
// 3. Работа с рабочей датой пользователя
РабочаяДата = РабочаяДата();
// 4. Форматирование даты для вывода
ФорматированнаяДата = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
// 5. Проверка корректности даты
Если Не ЗначениеЗаполнено(Документ.Дата) Тогда
Сообщить("Дата не указана!");
КонецЕсли;
Пример скрипта для массового изменения дат в документах типа РеализацияТоваровУслуг:
Выборка = Документы.РеализацияТоваровУслуг.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Дата < '2023-01-01' Тогда
Выборка.Дата = '2023-01-01';
Выборка.Записать();
КонецЕсли;
КонецЦикла;
⚠️ Внимание: Массовое изменение дат может привести к нарушению хронологии документов и ошибкам в учете. Перед выполнением таких операций обязательно:
- 🔄 Сделайте резервную копию базы
- 📋 Проверьте зависимые документы (счета, платежки, накладные)
- 👥 Убедитесь, что в системе нет других пользователей
Что будет если нарушить хронологию документов?
При нарушении хронологии (когда документ с более поздней датой проведен раньше документа с более ранней датой) система может неправильно рассчитать остатки товаров, сальдо по счетам и взаимозачеты. В некоторых конфигурациях это приводит к ошибке "Нарушена последовательность документов" при проведении.
4. Установка даты через внешнюю обработку
Для пользователей без доступа к конфигуратору или тем, кто не владеет программированием, удобно использовать внешние обработки. Это готовые решения, которые можно скачать и подключить к базе.
Популярные обработки для работы с датами:
- 📅 "Массовое изменение дат документов" (от 1С-Рарус)
- 🔄 "Перенос документов на другую дату" (с сайта infostart.ru)
- 🗓️ "Календарь ретроспективного ввода" (для бухгалтерских конфигураций)
Инструкция по подключению обработки:
- Скачайте файл обработки с расширением
.epf - В 1С перейдите в
Файл → Открыть - Выберите скачанный файл и нажмите
Открыть - В появившемся окне обработки укажите параметры (тип документов, диапазон дат)
- Запустите выполнение кнопкой
Выполнить
Преимущества этого метода:
- ✅ Не требует знаний программирования
- ✅ Можно протестировать на копии базы перед применением
- ✅ Многие обработки имеют встроенную проверку целостности данных
Создать резервную копию базы|Проверить права доступа пользователя|Определить диапазон изменяемых документов|Уведомить других пользователей о временной блокировке|Протестировать обработку на копии базы-->
5. Особенности работы с датами в разных конфигурациях
Важно понимать, что механизмы работы с датами могут существенно отличаться в зависимости от конкретной конфигурации 1С. Рассмотрим ключевые особенности для популярных решений:
| Конфигурация | Особенности работы с датами | Типичные проблемы |
|---|---|---|
| 1С:Бухгалтерия 3.0 | Строгий контроль хронологии документов, автоматическое заполнение даты платежей по банковским выпискам | Ошибки при изменении даты в уже закрытых периодах, проблемы с курсами валют |
| 1С:Управление торговлей 11 | Гибкие настройки дат в заказах и отгрузках, поддержка предварительных дат отгрузки | Конфликты дат между заказами и реализациями, проблемы с резервированием товаров |
| 1С:Зарплата и Управление Персоналом 3.1 | Автоматическое заполнение дат в кадровых документах, привязка к графику работы | Ошибки при изменении даты увольнения/приема, проблемы с перерасчетом зарплаты |
| 1С:ERP Управление предприятием 2 | Сложная система блокировок по датам, интеграция с производственным календарем | Зависание документов при изменении даты, конфликты с плановыми показателями |
Для 1С:Бухгалтерия 3.0 особенно важно следить за датами закрытия периодов. Если период закрыт, то:
- 🔒 Изменить дату документа можно только после открытия периода
- 📉 Изменение даты может потребовать перепроведения зависимых документов
- 💰 Возможны расхождения в оборотно-сальдовой ведомости
В 1С:Управление торговлей часто возникают проблемы с датами в цепочках документов Заказ → Реализация → Оплата. При изменении даты в одном документе может потребоваться корректировка дат во всех связанных документах.
Перед изменением даты в конфигурациях с сложной логикой (ERP, УТ 11) всегда проверяйте связанные документы через отчет "Анализ связей объектов" (Отчеты → Стандартные → Анализ связей).
6. Типичные ошибки и их решение
Даже опытные пользователи иногда сталкиваются с проблемами при работе с датами в 1С. Рассмотрим наиболее распространенные ошибки и способы их устранения.
Ошибка 1: "Нарушена последовательность документов"
Причина: Attempt to post a document with an earlier date than the last posted document of this type.
Решение:
- 🔍 Найдите последний проведенный документ этого типа через журнал
- 📅 Измените дату нового документа на более позднюю
- 🔄 Если нужно ввести документ с более ранней датой — сначала отмените проведение более поздних документов
Ошибка 2: Дата автоматически сбрасывается на текущую
Причина: В настройках документа или профиля пользователя установлена привязка к текущей дате системы.
Решение:
- 🛠️ Проверьте свойства документа в конфигураторе (раздел
ДатаПоУмолчанию) - 👤 Настройте
РабочуюДатав профиле пользователя - 📝 Для ретроспективного ввода используйте внешние обработки
Ошибка 3: Нельзя изменить дату в проведенном документе
Причина: В конфигурации установлены ограничения на редактирование проведенных документов.
Решение:
- 🔓 Снимите проведение документа (
Действия → Отменить проведение) - 🔧 Измените дату и проведите документ заново
- 🛡️ Если документ заблокирован — обратитесь к администратору за правами
Ошибка 4: Дата в отчетах не совпадает с датой документа
Причина: В настройках отчета установлен другой период или используются данные из регистров с другой периодичностью.
Решение:
- 📊 Проверьте настройки периода в отчете
- 🔍 Используйте отчет
Анализ субконтодля проверки дат движений - 📅 Убедитесь, что документ действительно проведен (статус "Проведен")
⚠️ Внимание: В некоторых конфигурациях (например, 1С:Комплексная автоматизация) при изменении даты документа может потребоваться перерасчет себестоимости. Это длительная операция, которая блокирует работу других пользователей. Планируйте такие изменения на время минимальной нагрузки на систему.
7. Работа с датами в отчетах и запросах
При формировании отчетов правильная работа с датами критически важна. Ошибка в одном символе при указании периода может привести к некорректным данным в отчетности.
Основные приемы работы с датами в запросах:
// 1. Выборка документов за конкретный день
ВЫБРАТЬ
Документ.Ссылка КАК Ссылка
ИЗ
Документ.РеализацияТоваровУслуг КАК Документ
ГДЕ
Документ.Дата = ДАТАВРЕМЯ(2023, 12, 31)
// 2. Выборка за период
ВЫБРАТЬ
Документ.Ссылка КАК Ссылка
ИЗ
Документ.ПоступлениеТоваров КАК Документ
ГДЕ
Документ.Дата МЕЖДУ '2023-01-01' И '2023-12-31'
// 3. Работа с началом и концом дня
НачалоДня = НачалоДня(ТекущаяДата());
КонецДня = КонецДня(ТекущаяДата());
// 4. Сравнение без учета времени
ГДЕ ДАТАВРЕМЯ(ГОД(Документ.Дата), МЕСЯЦ(Документ.Дата), ДЕНЬ(Документ.Дата))
= ДАТАВРЕМЯ(2023, 12, 31)
Для бухгалтерских отчетов часто требуется указывать период формирования. В большинстве стандартных отчетов (ОСВ, Анализ счета, Карточка счета) период можно задать:
- 📅 Вручную в полях
Начало периодаиОкончание периода - 🔄 Через кнопку
Установить период(обычно предлагает стандартные варианты: месяц, квартал, год) - 📋 Через настройку вариантов отчета (сохраненные настройки)
В отчетах с настройкой "По субконто" дата документа может влиять на распределение сумм по аналитическим разрезам. Например, в отчете по 60 счету суммы будут распределены по контрагентам и договорам именно на ту дату, которая указана в документе-основании.
FAQ: Частые вопросы о работе с датами в 1С
Можно ли в 1С поставить дату будущего периода?
Да, технически можно установить любую дату, включая будущие периоды. Однако:
- В бухгалтерских конфигурациях это может привести к ошибкам при закрытии месяца
- В торговых конфигурациях могут возникнуть проблемы с резервированием товаров
- Некоторые обработки (например, регламентные операции) игнорируют документы с будущими датами
Рекомендуется использовать будущие даты только для плановых документов (заказы, планы продаж) и избегать их в учетных документах (накладные, акты).
Как изменить дату в уже проведенном документе, если система не дает?
Последовательность действий:
- Отмените проведение документа (
Действия → Отменить проведение) - Измените дату в шапке документа
- Проведите документ заново
- Если документ зависит от других документов (например, счет от реализации), проверьте цепочку связанных документов
Если документ заблокирован (например, в закрытом периоде), сначала откройте период в Администрирование → Закрытие периода.
Почему при изменении даты документа меняются суммы в отчетах?
Это происходит потому, что:
- Дата документа определяет период отражения в отчетности
- В некоторых конфигурациях дата влияет на курсы валют (если документ валютный)
- Изменение даты может повлиять на себестоимость (в торговле и производстве)
- Документы с измененной датой могут перекрывать движения других документов
Всегда проверяйте влияние изменения даты через отчет Анализ субконто или Карточка счета.
Как сделать так, чтобы новые документы создавались с вчерашней датой по умолчанию?
Есть несколько способов:
- Изменить
РабочуюДатав профиле пользователя на вчерашнюю дату - Использовать обработку, которая автоматически устанавливает нужную дату при создании документа
- Для программистов: добавить код в модуль документа:
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)ЭтотОбъект.Дата = ТекущаяДата() - 86400; // 86400 секунд = 1 день
КонецПроцедуры
Remember: Это изменение затронет все новые документы, поэтому используйте его осознанно.
Можно ли в 1С поставить дату раньше даты создания базы?
Технически да, но:
- Это может привести к ошибкам при проведении документов
- В некоторых конфигурациях такие документы не будут учитываться в отчетах
- Могут возникнуть проблемы с нумерацией документов (если нумерация привязана к дате)
- Для ретроспективного ввода лучше использовать специальные обработки, которые корректно формируют движения
Если нужно ввести данные за период до создания базы, рассмотрите вариант начального заполнения остатков через документ Ввод начальных остатков.