При создании письма - поле объекта не обнаружено (УТ11)

Типовая торговля 11.4.3.144 - при создании исходящего электронного письма / при вводе адреса получателя выдается сообщение "Поле объекта не обнаружено"

Вероятно что такая же ошибка будет наблюдаться и в соответствующих версиях типовой комплексной и типовой ЕРП.

Причина - документ "Электронное письмо исходящее", модуль формы документа, функция ДанныеВыбораДляЭлектронногоПисьма.

 

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

Для исправления можно изменить выделенный фрагмент кода следующим образом:

  1. УсловиеПолейВводаПоСтроке = "";
  2. МетаданныеОбъекта = Метаданные.НайтиПоТипу(ЭлементМассиваОписания.Тип);
  3. СписокПолей = МетаданныеОбъекта.ВводПоСтроке;
  4. Для Каждого Поле Из СписокПолей Цикл
  5. // оквита
  6. Если МетаданныеОбъекта.Реквизиты.Найти(Поле) <> Неопределено Тогда
  7. Если МетаданныеОбъекта.Реквизиты[Поле.Имя].Тип.Типы()[0] = Тип("Строка") Тогда
  8. УсловиеПолейВводаПоСтроке = УсловиеПолейВводаПоСтроке + " ИЛИ СправочникКонтакт." + Поле.Имя + " ПОДОБНО &amp;ВведеннаяСтрока";
  9. КонецЕсли;
  10. Иначе
  11. // /оквита
  12. Если МетаданныеОбъекта.СтандартныеРеквизиты[Поле.Имя].Тип.Типы()[0] = Тип("Строка") Тогда
  13. УсловиеПолейВводаПоСтроке = УсловиеПолейВводаПоСтроке + " ИЛИ СправочникКонтакт." + Поле.Имя + " ПОДОБНО &amp;ВведеннаяСтрока";
  14. КонецЕсли;
  15. // оквита
  16. КонецЕсли;
  17. // /оквита
  18. КонецЦикла;
 

Теперь полсе ищется сначала в обычных реквизитах и если не нашлось - в стандартных.

Обновлено 15.11.2018 20:16
 
home search