Как исправить ошибку «Поле объекта не обнаружено (Валюта)» при подборе номенклатуры в 1С:Бухгалтерии 3.0?

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

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

{Обработка.ПодборНоменклатуры.Форма.Форма.Форма(377)}: Поле объекта не обнаружено (Валюта)

Проанализируем ситуацию: данная ошибка возникает в момент работы программы, когда программный код пытается обратиться к полю Валюта в текущей строке динамического списка. Выясним причину этого сбоя и подробно рассмотрим эффективные варианты исправления ситуации.

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

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

Когда вы обновляете релиз программы, структура динамического списка в обработке ПодборНоменклатуры меняется. Однако сохранённая ранее индивидуальная настройка пользователя переопределяет новую структуру формы и блокирует появление реквизита Валюта в составе данных. В результате при исполнении строки СтрокаДинамическогоСписка.Данные.Валюта = Выборка.Валюта; программа не находит нужное поле и выдаёт сбой.

Способ 1. Точечный сброс настроек подбора номенклатуры

Чтобы не сбрасывать все персональные настройки пользователя (порядок журналов, настройки отчётов и списков), рекомендуем очистить параметры только для проблемной обработки «Подбор номенклатуры».

  1. Перейдем в раздел Администрирование и выберем пункт Настройки пользователей и прав.
  2. Раскроем блок Персональные настройки пользователей и перейдем по ссылке Настройки пользователей.
  3. В появившемся окне выберем учетную запись сотрудника, у которого возникает ошибка при подборе.
  4. Раскроем папку Настройки отчетов и форм.
  5. Найдем в списке объект Подбор номенклатуры (или обработку Обработка.ПодборНоменклатуры), нажмите по нему правой кнопкой мыши и выберите команду Удалить (или кнопку «Очистить настройки»).

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

Способ 2. Восстановление стандартных настроек из интерфейса формы

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

  1. Откроем документ «Реализация (акты, накладные, УПД)».
  2. Нажмем кнопку Подбор. Если окно подбора открывается до возникновения ошибки, выберем меню Ещё в правом верхнем углу формы.
  3. Нажмем Изменить форму (или Настройка формы).
  4. В открывшемся окне вызовем команду Ещё -> Установить стандартные настройки.

Способ 3. Очистка локального кэша платформы 1С

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

  1. Завершим работу всех сеансов «1С:Предприятие» на рабочем месте.
  2. В окне запуска 1С выделим нужную информационную базу и нажмем кнопку Изменить.
  3. На последнем шаге мастера настройки в поле Дополнительные параметры запуска укажем ключ: /ClearCache
  4. Запустим базу. Платформа автоматически очистит скомпилированный кэш метаданных. После успешного запуска параметр /ClearCache можно удалить из настроек запуска.

Решение для нетиповых (доработанных) конфигураций

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

Во-первых, в конфигураторе необходимо проверить текст запроса динамического списка формы подбора: реквизит Валюта должен входить в секцию ВЫБРАТЬ (например, ТипЦен.Валюта КАК Валюта).

Во-вторых, разработчикам рекомендуется использовать безопасную проверку обращения к свойствам структуры данных с помощью метода Свойство():


Если СтрокаДинамическогоСписка.Данные.Свойство("Валюта") Тогда
    СтрокаДинамическогоСписка.Данные.Валюта = Выборка.Валюта;
КонецЕсли;

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

← На главную