Как устранить внутреннюю ошибку динамического списка при поиске по полям реквизитов в 1С?

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

В конфигурациях на базе управляемых форм, таких как 1С:Управление торговлей, 1С:Комплексная автоматизация или 1С:ERP, пользователи часто настраивают интерфейс под свои задачи. Типичный сценарий: через меню Еще — Изменить форму в динамический список документов выводятся дополнительные поля путем разыменования ссылок, например Ссылка.Комментарий или цепочка Ссылка.ДокументОснование.Комментарий.

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

Причины возникновения ошибки

Проанализируем механику работы динамических списков и компоновщика настроек платформы 1С:

  1. Ошибки платформы при разыменовании ссылок в поиске: В ряде релизов платформы 1С:Предприятие 8.3 (в частности, в ветках 8.3.10 ранних билдов) содержалась зарегистрированная ошибка: при глобальном поиске по списку компоновщик настроек платформы пытается наложить отбор по всем отображаемым полям. Если поле добавлено пользователем через путь к данным объекта (через точку от ссылки), механизм СКД динамического списка не всегда мог корректно сопоставить это поле со схемой доступных настроек.
  2. Особенности произвольного запроса: В типовых журналах документов динамический список чаще всего формируется с признаком Произвольный запрос. При автоматическом формировании текста запроса с наложением отбора СКД может оптимизировать поля и исключать неявные соединения, что приводит к отсутствию требуемого поля в доступных полях отбора.
  3. Кэширование поврежденных настроек формы: В хранилище системных настроек пользователя сохраняются пути к данным, которые после обновления конфигурации или изменения структуры запроса могут конфликтовать со структурой динамического списка.

Способ 1. Обновление версии платформы 1С:Предприятие

Если ошибка вызвана внутренним сбоем механизма динамических списков платформы, наиболее простым и эффективным решением является обновление технологической платформы. Фирма «1С» устранила данную проблему в более поздних релизах веток 8.3.10, 8.3.11 и во всех актуальных версиях (8.3.14+ и старше).

  1. Выполним обновление платформы 1С:Предприятие на сервере и клиентских рабочих местах до актуального стабильного релиза.
  2. Перезапустим кластер серверов 1С и клиентские сеансы.
  3. Проверим повторное выполнение поиска в динамическом списке.

Способ 2. Доработка запроса динамического списка

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

Разберем по шагам, как модифицировать форму списка документов:

  1. Откроем форму списка нужного документа в конфигураторе или в расширении.
  2. Перейдем в свойства реквизита формы Список (тип ДинамическийСписок).
  3. Откроем свойство Настройка списка и отредактируем текст запроса, добавив явное поле с псевдонимом:

ВЫБРАТЬ
    ДокументЗаказКлиента.Ссылка КАК Ссылка,
    ДокументЗаказКлиента.Номер КАК Номер,
    ДокументЗаказКлиента.Дата КАК Дата,
    ДокументЗаказКлиента.Комментарий КАК Комментарий,
    ДокументЗаказКлиента.ДокументОснование.Комментарий КАК КомментарийОснования
ИЗ
    Документ.ЗаказКлиента КАК ДокументЗаказКлиента
  1. В настройках динамического списка на вкладке Поля найдем добавленные поля и при необходимости установим для них свойство Использовать всегда. Это предотвратит удаление поля оптимизатором СКД при выполнении запросов без явного вывода на форму.
  2. Вынесем полученное поле Список.Комментарий или Список.КомментарийОснования в элементы формы напрямую, минуя цепочки разыменования Ссылка.....

Способ 3. Очистка пользовательских настроек формы

Если ошибка возникает только у определенных пользователей из-за некорректно сохраненных вариантов отображения, выполним сброс настроек:

  1. В пользовательском режиме в форме списка нажмем Еще — Установить стандартные настройки.
  2. Если сброс не помог, перейдем в раздел Администрирование — Настройки пользователей и прав — Очистка настроек.
  3. Выберем проблемного пользователя, найдем соответствующую форму списка и удалим сохраненные настройки.

Способ 4. Корректные методы поиска и использование допреквизитов

Рассмотрим дополнительные рекомендации, которые помогут избежать подобных ошибок при повседневной работе:

  1. Точечный поиск по колонке: Вместо использования общей строки поиска по всем колонкам списка рекомендуется установить курсор в нужную колонку и нажать комбинацию клавиш Ctrl + F. Поиск по конкретной колонке генерирует прямой отбор по точно заданному полю, снижая вероятность ошибок сопоставления доступных настроек.
  2. Использование дополнительных реквизитов: Если в поле Комментарий пользователи вносят типовые метки (например, название проекта или направление), целесообразно включить типовой механизм Дополнительные реквизиты и сведения. Дополнительный реквизит является полноценным свойством объекта и штатно поддерживается механизмами отборов и поиска в динамических списках без сбоев.
← На главную