Администрирование · 12 мин
Как в 1С узнать время создания документа
Как узнать время создания документа в 1С: дата документа, журнал регистрации, история изменений, запросы и техжурнал. Пошаговые инструкции и примеры кода.
Задача узнать точное время создания документа возникает регулярно: при разборе расхождений в учёте, расследовании ошибок обмена, проверке действий сотрудников. Проблема в том, что в 1С нет единого штатного поля «дата создания» — платформа хранит несколько разных дат, и не все из них отражают момент появления документа в базе.
Главное, что нужно понимать сразу: поле «Дата» в шапке документа — это учётная дата, которую пользователь может менять вручную. Она показывает, каким моментом документ проводится в учёте, а не когда его физически ввели в программу. Реальное время создания приходится искать в других местах: в журнале регистрации, в механизмах версионирования, в истории изменений или программными способами.
Ниже разобраны все рабочие способы — от простых, доступных обычному пользователю, до инструментов администратора и разработчика. Выбор зависит от того, какие механизмы включены в вашей конфигурации и какой точности достаточно.
Почему дата документа не равна времени его создания
Поле «Дата» у документа в 1С выполняет учётную функцию: оно определяет позицию документа на временной оси, момент проведения и принадлежность к периоду. Пользователь вправе установить любую дату в пределах разрешённого периода — например, ввести документ «задним числом» или будущей датой.
При создании нового документа платформа по умолчанию подставляет текущую дату и время, но это лишь начальное значение. Если бухгалтер в пятницу вводит накладную понедельника, дата документа будет понедельничной, хотя фактически запись появилась в пятницу. Поэтому доверять этому полю как «времени создания» нельзя.
Отдельный нюанс — время внутри даты документа. Для многих видов документов время устанавливается автоматически при записи и может не совпадать с моментом, когда пользователь нажал «Создать». Кроме того, при перепроведении документа время может сдвигаться, если в конфигурации настроены соответствующие механизмы.
Способ 1: журнал регистрации
Журнал регистрации — штатный механизм платформы, фиксирующий действия пользователей и системные события. Если настройки не изменялись, в нём сохраняются события добавления, изменения и удаления данных с указанием точного времени, пользователя и объекта.
Чтобы найти момент создания документа, откройте журнал регистрации: в режиме «Предприятие» через меню «Администрирование — Обслуживание — Журнал регистрации» (в типовых конфигурациях путь может немного отличаться), либо в конфигураторе через «Администрирование — Журнал регистрации».
- 1Откройте журнал регистрации и нажмите кнопку отбора (фильтра)
- 2Укажите интересующий период — чем уже, тем быстрее отбор
- 3В отборе по данным укажите представление документа или выберите его через поиск
- 4Оставьте события, связанные с данными (добавление, изменение)
- 5Найдите самое раннее событие добавления — это и есть момент создания документа
Самое раннее событие «Добавление» по конкретному документу показывает, когда запись появилась в базе, и кто её создал. Учтите: событие фиксирует момент первой записи документа в базу, а не момент нажатия кнопки «Создать» — между ними может пройти время, пока пользователь заполнял форму.
Ограничения способа: журнал регистрации может быть настроен на сокращённый уровень фиксации, а старые записи периодически удаляются при сокращении журнала. Если документ создан давно, события могут быть уже недоступны.
Способ 2: история изменений и версионирование объектов
В конфигурациях на базе Библиотеки стандартных подсистем (БСП) есть механизм «История изменений» (в старых версиях — «Версионирование объектов»). Если он включён для нужного вида документов, хранятся все версии объекта с датой, временем и автором каждой версии.
Проверить наличие истории можно прямо из формы документа: кнопка «Ещё — История изменений» (или «Показать историю изменений»). Первая версия в списке — это состояние документа при первой записи, а её дата и время — фактический момент создания документа в базе.
Если пункт в меню отсутствует, механизм не включён для этого вида документов. Включение выполняется администратором: «Администрирование — Общие настройки — История изменений», где для нужных видов объектов выбирается вариант хранения версий. Настройка начинает работать только с момента включения — ретроспективы по старым документам не появится.
Способ 3: дата и время документа как приближённая оценка
Если журнал регистрации сокращён, а история изменений не включена, остаётся косвенный метод — посмотреть дату и время самого документа. Во многих конфигурациях время документа при первой записи устанавливается автоматически и близко к реальному моменту создания.
Чтобы увидеть время, откройте документ и посмотрите поле «Дата» — в большинстве форм время отображается рядом с датой. Если время скрыто, его можно увидеть в списке документов, добавив колонку с датой в полном формате через настройку списка.
К этому способу нужно относиться как к оценке, а не как к доказательству. Дата могла быть изменена вручную, документ мог быть введён копированием с другой датой, а время — сдвинуто при перепроведении. Для разбора спорных ситуаций с сотрудниками такой аргумент недостаточен.
Сравнение способов узнать время создания
Точное время и автор, но зависит от настроек фиксации и глубины хранения журнала
Точное время первой версии и автор, но работает только если механизм был включён заранее
Всегда доступна, но это учётная дата — лишь приближённая оценка момента создания
Самый надёжный вариант на будущее, но требует доработки конфигурации
Способ 4: программные методы для разработчика
Платформа не предоставляет встроенного свойства «ДатаСоздания» у объекта документа. Разработчику доступны обходные пути: чтение журнала регистрации программно, анализ версий из истории изменений или добавление собственного реквизита.
Выгрузка журнала регистрации выполняется методом ВыгрузитьЖурналРегистрации с отбором по данным и событию. Пример получения момента первой записи конкретного документа:
ТаблицаСобытий = Новый ТаблицаЗначений;
Отбор = Новый Структура;
Отбор.Вставить("Данные", ДокументСсылка);
ВыгрузитьЖурналРегистрации(ТаблицаСобытий, Отбор, "Дата,Пользователь,Событие");
ТаблицаСобытий.Сортировать("Дата Возр");
// Первая строка — момент первой записи документа
Более надёжное решение на перспективу — добавить в конфигурацию служебный реквизит, например «ДатаСозданияЗаписи», и заполнять его в подписке на событие ПриЗаписи только при условии ЭтоНовый. Так момент создания фиксируется независимо от журналов и настроек версионирования и доступен в отчётах и запросах.
Если доработка конфигурации невозможна (типовая на поддержке без изменений), служебную дату создания можно фиксировать через дополнительное свойство объекта в механизме «Дополнительные реквизиты и сведения» БСП — с записью значения через подписку на событие, добавленную в расширении конфигурации. Это не нарушает поддержку типовой конфигурации.
Технический журнал и мониторинг СУБД
Для сложных расследований — например, когда нужно восстановить хронологию массовой загрузки документов обменом — используется технологический журнал платформы. Он настраивается через файл logcfg.xml и фиксирует события на уровне сервера 1С, включая обращения к базе данных.
На уровне СУБД (MS SQL Server, PostgreSQL) теоретически можно анализировать журналы транзакций, но на практике это трудоёмкий путь с неочевидным результатом: структура таблиц 1С не содержит служебных колонок времени вставки, а журналы СУБД обычно не хранят нужную глубину истории. Этот вариант оправдан только в исключительных случаях и требует участия администратора баз данных.
Для рядовых задач технический журнал избыточен. Его разумно применять, когда нужно понять последовательность событий при сбое обмена или массовой обработки, а журнала регистрации недостаточно по детализации.
Частые ошибки и ограничения
Ещё одна ограниченность всех методов — документы, загруженные обменом данными. В журнале регистрации такие документы фиксируются с пользователем, под которым работал сеанс обмена, а время создания в вашей базе — это момент загрузки, а не момент ввода документа в базе-источнике. Для распределённых систем время создания нужно смотреть в исходной базе.
Также учитывайте часовые пояса: в клиент-серверном режиме журнал регистрации фиксирует время сервера, а пользователи видят время своего сеанса. При различии часовых поясов сервера и рабочих мест события могут выглядеть «сдвинутыми».
Как проверить результат
Самое раннее событие «Добавление» с ожидаемым пользователем и разумным временем
Первым идёт событие «Изменение» — событие добавления не зафиксировано или удалено
Есть первая версия документа с датой и автором
Пункт «История изменений» отсутствует или список версий пуст
Пользователь соответствует ожиданиям
Пользователь — служебная учётная запись обмена, значит документ загружен из другой системы
Как организовать фиксацию времени создания на будущее
Если вопрос времени создания документов возникает регулярно, правильное решение — настроить фиксацию заранее, а не искать данные постфактум. Минимальный набор действий: включить историю изменений для критичных видов документов, проверить уровень фиксации журнала регистрации и настроить разумный срок его хранения.
Для учётных задач, где момент создания нужен в отчётах (например, контроль своевременности ввода первички), оптимален собственный реквизит с датой создания, заполняемый подпиской на событие. Такой реквизит доступен в запросах, СКД и списках документов без обращения к журналам.
Как выбрать действие
Что важно запомнить
Поля «дата создания» у документов 1С нет; дата документа — учётная и редактируется. Точное время создания дают журнал регистрации и история изменений, если они настроены заранее. Для постоянных задач лучшее решение — собственный служебный реквизит, заполняемый при первой записи документа.
Частые вопросы
Можно ли узнать время создания документа, если журнал регистрации уже очищен?
Гарантированно — нет. Остаются косвенные признаки: дата документа, номер (при последовательной нумерации он указывает на порядок ввода), данные смежных документов. Если включена история изменений, она хранится отдельно от журнала регистрации и могла сохраниться.
Почему в журнале регистрации нет события добавления моего документа?
Возможные причины: событие старше срока хранения журнала и было удалено при сокращении; в настройках журнала снижен уровень фиксации событий; документ был загружен обменом в транзакции, которая зафиксировалась иначе. Проверьте настройку «Администрирование — Настройка журнала регистрации».
Совпадает ли время создания документа со временем его проведения?
Не обязательно. Документ может быть записан без проведения, проведён позже, перепроведён многократно. Журнал регистрации фиксирует каждое изменение отдельным событием, поэтому по цепочке событий можно отличить момент создания от момента первого проведения.
Как узнать, кто создал документ?
Теми же способами: в журнале регистрации у события добавления указан пользователь, в истории изменений у каждой версии есть автор. Если документ загружен обменом, автором будет учётная запись сеанса обмена, а реального автора нужно искать в базе-источнике.
Можно ли вывести время создания в список документов?
Штатного поля для этого нет. Вариант — добавить в конфигурацию или через расширение реквизит «ДатаСоздания», заполняемый подпиской на событие при первой записи, и вывести его в форму списка. После этого колонка станет доступна для отбора, сортировки и отчётов.
Фиксирует ли 1С время создания элемента справочника?
Механика та же, что и у документов: отдельного поля нет, но журнал регистрации и история изменений работают и для справочников. Подписка на событие со служебным реквизитом применима к любым объектным данным.