В современных конфигурациях на платформе «1С:Предприятие 8.3», таких как «Управление торговлей 11», «Комплексная автоматизация 2» и «ERP Управление предприятием», пользователи часто сталкиваются с мистической ситуацией: документ физически существует в базе данных, его можно найти через консоль запросов или по прямой ссылке, но в стандартном журнале документов он отсутствует. При этом никакие пользовательские фильтры или отборы не установлены, а права доступа (RLS) не ограничивают видимость.
Разберем детально, почему это происходит, как устроены современные динамические списки и какие шаги нужно предпринять для восстановления корректного отображения данных.
Основная причина «исчезновения» документов в УТ 11.4 кроется в оптимизации интерфейса. Для того чтобы списки документов открывались мгновенно, система не обращается напрямую к таблицам документов (например, к таблице Документ.ПриобретениеТоваровУслуг). Вместо этого запрос динамического списка обращается к специальному вспомогательному регистру сведений — РеестрДокументов.
Этот регистр содержит индексированные краткие сведения о документе: дату, номер, сумму, контрагента, организацию и хозяйственную операцию. Если по какой-то причине запись в этом регистре отсутствует или повреждена, документ перестает отображаться в общем списке, хотя его проведение и движения по регистрам накопления остаются в порядке.
Проанализируем, как восстановить эти данные. Для этого нам необходимо программно инициировать перезапись данных в реестре. Мы можем воспользоваться методом встроенного языка. Рассмотрим пример кода, который поможет восстановить записи для конкретных документов:
Процедура ВосстановитьРеестрДокументов(СсылкаНаДокумент)
// Метод инициализирует и записывает данные в РС РеестрДокументов
РегистрыСведений.РеестрДокументов.ИнициализироватьИЗаписатьДанныеДокумента(СсылкаНаДокумент);
КонецПроцедуры
Если «пропавших» документов много, мы можем выполнить массовое обновление. Разберем по шагам, как это сделать с помощью внешней обработки или в консоли кода:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПриобретениеТоваровУслуг.Ссылка КАК Ссылка
|ИЗ
| Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
|ГДЕ
| ПриобретениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода";
Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(Объект.ДатаНачала));
Запрос.УстановитьПараметр("КонецПериода", КонецДня(Объект.ДатаОкончания));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.РеестрДокументов.ИнициализироватьИЗаписатьДанныеДокумента(Выборка.Ссылка);
КонецЦикла;
Выполнение этого кода заставит систему заново проанализировать документы и создать необходимые записи в таблице РеестрДокументов, после чего они сразу появятся в интерфейсе.
Иногда корень проблемы лежит не в данных, а в отображении. Платформа 1С сохраняет настройки колонок, видимости и отборов для каждого пользователя индивидуально. Бывают случаи, когда внутренние настройки динамического списка «зацикливаются» или содержат некорректные значения после обновления конфигурации.
Выясним, как устранить такие сбои. Рассмотрим последовательность действий:
%AppData%\1C\1cv8\. Это поможет, если «глюк» носит локальный характер на конкретном компьютере.Проанализируем ситуацию с точки зрения логики конфигурации. В УТ 11 видимость данных сильно зависит от функциональных опций. Если в системе была выключена опция, например, «Многооборотная тара» или «Закупки по нескольким соглашениям», документы, использующие эти возможности, могут быть отфильтрованы на уровне запроса динамического списка.
Посмотрим, на что обратить внимание программисту:
ПриобретениеТоваровУслуг, найдите основную схему или текст запроса динамического списка. Обратите внимание на секцию ГДЕ. Там часто встречаются конструкции вида {ГДЕ (&ИспользоватьНесколькоСоглашений = ИСТИНА)}.ПриСозданииНаСервере. Проанализируйте расширения на предмет наличия кода, который устанавливает ФиксированныеНастройки.Если вы пытаетесь найти документ через строку поиска в верхней части списка и не находите его, хотя визуально прокручивая список, вы его видите — проблема в индексе полнотекстового поиска (ППП).
Разберем, как исправить индекс:
Подводя итог, можно сказать, что в 90% случаев в УТ 11.4 документы пропадают из-за рассинхронизации основной таблицы документов и регистра РеестрДокументов. Использование метода РегистрыСведений.РеестрДокументов.ИнициализироватьИЗаписатьДанныеДокумента() является самым надежным и быстрым способом решения данной проблемы. В остальных случаях следует проверять кэш, функциональные опции и корректность расширений конфигурации.