В процессе администрирования конфигурации «Торговля + Склад» на платформе 1С 7.7 специалисты часто сталкиваются с ситуацией, когда Журнал регистрации показывает создание документа текущим числом, в то время как сам документ датирован прошлым периодом. Рассмотрим причины этого явления и проанализируем, может ли это быть техническим сбоем или же это результат действий пользователя.
Проанализируем ситуацию: в Журнале регистрации (системном файле, который фиксирует события) мы видим запись от 10.09.2010 о создании документа ПКО (Приходный кассовый ордер). Однако в журнале документов этот же ПКО значится под датой 01.09.2010. Нам необходимо выяснить, виновата ли в этом база данных.
Выясним причину: платформа 1С 7.7 устроена таким образом, что она самостоятельно не меняет дату документа (число, месяц, год). Система может автоматически изменять время документа при проведении (согласно настройкам оперативного учета, например, «заменять время на текущее при проведении после ТА»), но дата всегда инициируется либо пользователем, либо программным кодом. Таким образом, вариант «самопроизвольного сбоя» из-за отключения питания или «глюка» базы практически исключен. В 99,9% случаев мы имеем дело с действиями оператора, которые могут быть как осознанными, так и случайными.
Разберем самый распространенный случай, который часто называют «машинальной ошибкой». В 1С 7.7 при копировании существующего документа (через меню или клавишей F9) новый документ по умолчанию наследует все реквизиты оригинала, включая дату.
Если оператор решил создать новый ПКО, взяв за образец документ от 01.09.2010, и нажал «Копировать», то в форме нового документа автоматически подставится дата 01.09.2010. Если пользователь просто нажмет кнопку «ОК» или «Провести», не посмотрев на дату, документ запишется задним числом. В Журнале регистрации это отразится как «Создание документа» сегодняшним днем, но сам реквизит ДатаДок будет содержать старое значение.
Посмотрим на настройки интерфейса. В 1С 7.7 существует понятие «Рабочая дата». Если пройти по пути Сервис — Параметры — Общие, можно обнаружить поле установки рабочей даты. Рассмотрим, как это влияет на работу:
Важно помнить, что Журнал регистрации при этом все равно будет фиксировать реальное время записи файла на диск (10.09.2010), что и создает видимое противоречие.
Проанализируем интерфейсные возможности. В конфигурации «Торговля + Склад» поле даты в документе, как правило, доступно для редактирования. Оператор мог случайно:
Enter или Пробел на выделенной строке).Иногда дата устанавливается программно. Разберем код в модуле формы документа. Даже если в процедурах ПриЗаписи() или ОбработкаПроведения() изменений нет, стоит заглянуть в процедуру ВводНового().
Пример кода, который может влиять на дату:
Процедура ВводНового(Копирование)
Если Копирование = 1 Тогда
// Здесь может быть логика, которая либо оставляет старую дату,
// либо принудительно ставит текущую.
// Если кода нет — дата остается от документа-образца.
Иначе
// Проверка на ввод на основании
Если ПустоеЗначение(Основание) = 0 Тогда
ДатаДок = Основание.ДатаДок; // Установка даты по документу-основанию
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Если ПКО вводился на основании Реализации, которая сама была создана задним числом, то и подчиненный документ может унаследовать эту «старую» дату.
Чтобы исключить влияние человеческого фактора и предотвратить подобные «сбои», необходимо реализовать контроль прав доступа. В 1С 7.7 это делается следующим образом:
ПриЗаписи(), которая будет сравнивать ДатаДок с текущей системной датой ТекущаяДата().Рассмотрим пример реализации такой проверки:
Процедура ПриЗаписи()
Если ДатаДок < ТекущаяДата() Тогда
Если Найти(Врег(ИмяПользователя()), "АДМИНИСТРАТОР") = 0 Тогда
Предупреждение("У вас нет прав на создание документов задним числом!");
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Важный момент: Обратите внимание на «Точку Актуальности» (ТА). В 1С 7.7 проведение документа задним числом (ранее ТА) не вызывает перемещения ТА, но может привести к временным отрицательным остаткам, если вы сначала отменили проведение старого документа, а затем провели его снова. Всегда рекомендуем пользователям сначала исправлять данные, а затем выполнять процедуру «Последовательность документов» для восстановления корректности учета.
Подводя итог, можно утвердительно сказать: ситуация, описанная вами, является следствием **действий оператора**. Будь то случайное копирование старого документа или работа с измененной «Рабочей датой», платформа 1С 7.7 лишь добросовестно исполнила команду пользователя. Для решения проблемы рекомендуем провести инструктаж персонала и ограничить права на работу с документами вне текущей даты.