Ситуация, когда документы отображаются в списках конкретного вида (например, только в «Реализациях товаров и услуг»), но внезапно исчезают из общих журналов («Документы продажи», «Документы закупки»), является классической технической проблемой 1С. Обычно это происходит после аварийного завершения работы системы, сбоев файловой базы данных или некорректного обновления. В этой статье мы подробно разберем причины возникновения данной ошибки и рассмотрим все эффективные методы ее решения.
Прежде чем переходить к активным действиям, проанализируем ситуацию. В современных конфигурациях 1С (УТ 11, КА 2, ERP) журналы документов строятся не только на классическом механизме ЖурналДокументов, но и на вспомогательном регистре сведений Реестр документов. Динамический список в журнале обращается именно к этому регистру для ускорения работы. Если связь между физической таблицей документа и записью в регистре (или таблицей журнала) нарушается, документ становится «невидимкой» для общего списка.
Если вы работаете в конфигурациях на базе 1С:ERP или Управление торговлей 11, первым делом следует проверить состояние реестра. Разберем по шагам, как запустить процедуру восстановления:
Заполнение реестра документов (в некоторых версиях она называется Исправление реестра документов).Система принудительно проанализирует все документы в базе и создаст недостающие записи в регистре сведений. Это самый безопасный и «штатный» способ решения проблемы.
Если типовая обработка не помогла или вы используете конфигурацию, где механизм реестров реализован иначе, рассмотрим метод «шоковой терапии» для метаданных. Мы заставим систему полностью перестроить физическую таблицу журнала в базе данных.
Проанализируем алгоритм действий:
ЖурналДокументов в дереве метаданных.ВременнаяГрафа).F7 для обновления конфигурации базы данных.В процессе обновления 1С выполнит полную реструктуризацию таблицы этого журнала. Система увидит, что структура изменилась, и будет вынуждена заново считать данные из всех документов, чтобы заполнить новую графу. После завершения операции проверьте результат в режиме «Предприятие». Если документы появились, временную графу можно удалить и снова обновить конфигурацию.
Иногда записи в журналах не обновляются из-за того, что объект не был должным образом зарегистрирован в таблицах итогов. Мы можем инициировать событие записи для всех проблемных документов программно. Рассмотрим, как это сделать без ручного перепроведения каждого чека или накладной.
Воспользуемся стандартной обработкой Групповое изменение реквизитов:
Реализация товаров и услуг).Система вызовет метод Записать() для каждого объекта. В процессе записи сработают механизмы подписки на события, которые автоматически обновят данные в журналах и реестрах. Если документов очень много, можно использовать следующий код во внешней обработке:
Выборка = Документы.РеализацияТоваровУслуг.Выбрать(ДатаНачала, ДатаОкончания);
Пока Выборка.Следующий() Цикл
Объект = Выборка.ПолучитьОбъект();
// Устанавливаем режим обмена, чтобы не менять движения, но обновить регистрацию в журналах
Объект.ОбменДанными.Загрузка = Ложь;
Попытка
Объект.Записать(РежимЗаписиДокумента.Запись);
Сообщить("Обработан документ: " + Объект);
Исключение
Сообщить("Ошибка при записи: " + ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
Как показывает практика, часто виновниками «исчезновения» становятся расширения. Если вы добавили новый тип документа в расширение и включили его в существующий журнал, при обновлении платформы или режима совместимости может произойти программный сбой.
Посмотрим на решение в этом контексте:
Стандартный запуск ТиИ со всеми галочками часто не дает результата, если не выбраны правильные режимы. Рассмотрим наиболее эффективную комбинацию для нашей проблемы:
Если база файловая, перед запуском ТиИ обязательно выполните проверку утилитой chdbf.exe, так как логические ошибки в файле 1Cv8.1CD могут блокировать работу встроенных механизмов исправления.
Если проблема возникла в клиент-серверном варианте, проанализируем состояние серверного кэша. Даже после исправления таблиц SQL, сервер 1С может продолжать «отдавать» пустой список из своей оперативной памяти.
Выполним следующие действия:
C:\Program Files\1cv8\srvinfo\reg_1541\ (путь может отличаться).snccntx. Там хранятся данные сеансов и кэш динамических списков.Подведем итог: В большинстве случаев проблема решается либо через Заполнение реестра документов, либо через добавление временной графы в журнал для принудительной реструктуризации. Если же документы исчезают регулярно, стоит обратить внимание на стабильность работы сети (для файловых баз) и корректность доработок в расширениях.