Документы с пустой датой   

Иногда в 1С-Предприятии 7.7 в журнале документов присутствует документ с пустой датой. Довольно часто происходит так, что его присутствия в системе не замечают. Это неудивительно, так как при открытии журнала его не видно. Чтобы его увидеть, необходимо указать начальный интервал в виде пустой даты. В результате наличия такого или таких документов в базе данных могут возникнуть следующие серьезные проблемы:

  • при загрузке данных средствами конфигуратора идет пересчет ссылок, начиная с 17xx года.
  • при полном пересчете бухгалтерских итогов после пересчета агрегатные таблицы становятся пустыми.

Серьезность проблемы в данном случае будет прямо пропорционально размеру базы данных. Например если загрузка маленькой базы выполняется 10 минут, то удвоение времени выполнения в результате пересчета ссылок с 17xx года не будет замечено. Другое дело, если база большая, и загружаться должна несколько часов в нерабочее время. Аналогично и вторая проблема. Если пересчет итогов делается быстро, проблема будет обнаружена сразу. Если же полный пересчет итогов длится 4-5 часов, то на диагностирование и исправление проблемы, а также и на повторный пересчет может не оказаться времени. Здесь сразу можно сказать, что связать пустые агрегатные таблицы с наличием в журнале документов пустого документа можно либо доскональным копанием в базе с включением профайлера, на что требуется достаточно много времени даже не на большой базе, либо если уже хоть раз встречался с такой проблемой.

Причины.

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

Итак, действуем по пунктам:

  • Запускаем предприятие.
  • Идем в сервис-параметры, и устанавливаем в качестве рабочей даты пустую дату.

Устанавливаем пустую дату в сервис-параметры.

  • Далее, средствами встроенного языка создаем обработку, которая выполняет следующие действия (необходимо создавать документы любого вида, которые есть в конфигурации):

Док=СоздатьОбъект("Документ.Расчет");
Док.Новый();
Док.Записать();

  • В результате в журнале будет получен документ с пустой датой. В моем примере видно два документа:

В журнале видны документы без даты!

Для диагностирования проблемы документов с нулевой датой средствами SQL достаточно выполнить следующий запрос в QA (Query Analizer):

SELECT COUNT(*) FROM _1sjourn where date_time_iddoc LIKE '17530101%'

В результате будет выдано количество документов в журнае с пустой датой.

В приведенном примере создавался документ с пустой датой, но точно таким же путем можно создать операцию с пустой датой. Как можно видеть, совсем легко можно создать документ с пустой датой, о котором, если его сразу не увидеть, впоследствии никто не вспомнит, в результате чего документ будет оставаться в базе и негативно влиять на ее работу. Данная особенность поведения 1С-Предприятия 7.7 может смело считаться глюком платформы. Такое поведение было протестировано и зафиксировано на релизах 21, 23 и 25. Вполне возможно, что аналогичным образом 1С ведет себя и в предыдущих релизах.

Каждый желающий может за 2 минуты проделать аналогичный тест и убедиться в результатах. В заключение хочется отметить, что компания "СофтПоинт" имеет свои средства и методики для диагностирования и исправления этой и других ошибок платформы 7.7.

 


 

Перепечатка, воспроизведение в любой форме, распространение, в том числе в переводе, любых материалов с сайта www.softpoint.ru возможны только с письменного разрешения компании "СофтПоинт". Это правило действует для всех без исключения случаев, кроме тех, когда в материале прямо указано разрешение на копирование (основание: Закон Российской Федерации "Об авторском праве и смежных правах").