Почему исчезают документы из списка Приобретение товаров и услуг в 1С:УТ 11 и как их вернуть?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В современных конфигурациях на платформе «1С:Предприятие 8.3», таких как «Управление торговлей 11», «Комплексная автоматизация 2» и «ERP Управление предприятием», пользователи часто сталкиваются с мистической ситуацией: документ физически существует в базе данных, его можно найти через консоль запросов или по прямой ссылке, но в стандартном журнале документов он отсутствует. При этом никакие пользовательские фильтры или отборы не установлены, а права доступа (RLS) не ограничивают видимость.

Разберем детально, почему это происходит, как устроены современные динамические списки и какие шаги нужно предпринять для восстановления корректного отображения данных.

Причина 1: Механизм регистра «Реестр документов»

Основная причина «исчезновения» документов в УТ 11.4 кроется в оптимизации интерфейса. Для того чтобы списки документов открывались мгновенно, система не обращается напрямую к таблицам документов (например, к таблице Документ.ПриобретениеТоваровУслуг). Вместо этого запрос динамического списка обращается к специальному вспомогательному регистру сведений — РеестрДокументов.

Этот регистр содержит индексированные краткие сведения о документе: дату, номер, сумму, контрагента, организацию и хозяйственную операцию. Если по какой-то причине запись в этом регистре отсутствует или повреждена, документ перестает отображаться в общем списке, хотя его проведение и движения по регистрам накопления остаются в порядке.

Проанализируем, как восстановить эти данные. Для этого нам необходимо программно инициировать перезапись данных в реестре. Мы можем воспользоваться методом встроенного языка. Рассмотрим пример кода, который поможет восстановить записи для конкретных документов:


Процедура ВосстановитьРеестрДокументов(СсылкаНаДокумент)
    // Метод инициализирует и записывает данные в РС РеестрДокументов
    РегистрыСведений.РеестрДокументов.ИнициализироватьИЗаписатьДанныеДокумента(СсылкаНаДокумент);
КонецПроцедуры

Если «пропавших» документов много, мы можем выполнить массовое обновление. Разберем по шагам, как это сделать с помощью внешней обработки или в консоли кода:

  1. Создадим выборку документов за определенный период, которые не видны в списке.
  2. Для каждого документа из выборки вызовем процедуру обновления реестра.

Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	ПриобретениеТоваровУслуг.Ссылка КАК Ссылка
    |ИЗ
    |	Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
    |ГДЕ
    |	ПриобретениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода";

Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(Объект.ДатаНачала));
Запрос.УстановитьПараметр("КонецПериода", КонецДня(Объект.ДатаОкончания));

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    РегистрыСведений.РеестрДокументов.ИнициализироватьИЗаписатьДанныеДокумента(Выборка.Ссылка);
КонецЦикла;

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

Причина 2: Сбои кэширования и настройки формы

Иногда корень проблемы лежит не в данных, а в отображении. Платформа 1С сохраняет настройки колонок, видимости и отборов для каждого пользователя индивидуально. Бывают случаи, когда внутренние настройки динамического списка «зацикливаются» или содержат некорректные значения после обновления конфигурации.

Выясним, как устранить такие сбои. Рассмотрим последовательность действий:

  1. Сброс настроек формы. В окне списка документов нажмите кнопку «Еще», затем выберите пункт «Установить стандартные настройки». Это принудительно очистит все пользовательские фильтры, которые могли быть скрыты.
  2. Очистка кэша платформы. Закройте программу и удалите содержимое папок в каталоге %AppData%\1C\1cv8\. Это поможет, если «глюк» носит локальный характер на конкретном компьютере.
  3. Проверка «проблемной» колонки. Как отмечают опытные специалисты, иногда динамический список дает сбой из-за программного вычисления определенного поля. Попробуйте через «Изменить форму» поочередно отключать колонки (особенно добавленные вручную или расширениями) и проверять результат.

Причина 3: Влияние функциональных опций и расширений

Проанализируем ситуацию с точки зрения логики конфигурации. В УТ 11 видимость данных сильно зависит от функциональных опций. Если в системе была выключена опция, например, «Многооборотная тара» или «Закупки по нескольким соглашениям», документы, использующие эти возможности, могут быть отфильтрованы на уровне запроса динамического списка.

Посмотрим, на что обратить внимание программисту:

Причина 4: Проблемы полнотекстового поиска

Если вы пытаетесь найти документ через строку поиска в верхней части списка и не находите его, хотя визуально прокручивая список, вы его видите — проблема в индексе полнотекстового поиска (ППП).

Разберем, как исправить индекс:

  1. Перейдите в раздел «Администрирование» — «Обслуживание» — «Полнотекстовый поиск».
  2. Нажмите кнопку «Очистить индекс», а затем «Обновить индекс».
  3. Дождитесь завершения регламентного задания. После этого поиск по номеру или контрагенту должен заработать корректно.

Заключение

Подводя итог, можно сказать, что в 90% случаев в УТ 11.4 документы пропадают из-за рассинхронизации основной таблицы документов и регистра РеестрДокументов. Использование метода РегистрыСведений.РеестрДокументов.ИнициализироватьИЗаписатьДанныеДокумента() является самым надежным и быстрым способом решения данной проблемы. В остальных случаях следует проверять кэш, функциональные опции и корректность расширений конфигурации.

← На главную