1С CRM 2.0 (2.0.5.2): Извлечение полей из табличной части "Дополнительная информация"

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

Страницы: 1
RSS
1С CRM 2.0 (2.0.5.2): Извлечение полей из табличной части "Дополнительная информация", Описание проблемы и обсуждение её решений
 
Есть у Партнеров (Клиентов) и у Контактных лиц табличная часть "Дополнительная информация" ("Дополнительные сведения"). Благодаря ей в режиме "Предприятие" пользователь может создавать поля, не предусмотренные базовой конфигурацией, и вводить туда значения.
Как программиста меня интересует вопрос извлечения значений полей из табличной части "Дополнительная информация" для заполнения параметров при печати.
Особенностей таких полей то какая: создаются самостоятельно пользователями, а не в конфигурации. Потому здесь нужен другой подход. Какой?

Вот какие реквизиты используются в дополнительной информации: Свойство, Значение.
Свойство - наименование поля, а Значение - содержание.
Необходимо получить значение согласно описываемому свойству (в примере ниже не предусмотрено).
Например, в Дополнительной информации контактного лица введена новая запись, где свойство "Действует на основании", а в значении произвольное строковое значение, в зависимости от определенного лица.

Пример кода, как бы позволяющего получить нужное значение:

Код
Запрос = Новый Запрос;
   Запрос.Текст = 
      "ВЫБРАТЬ
      |   КонтактныеЛицаПартнеров.ДополнительнаяИнформация.Свойство КАК ДополнительнаяИнформация
      |ИЗ
      |   Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
      |ГДЕ КонтактныеЛицаПартнеров.Ссылка = &Ссылка";      
   
   Запрос.УстановитьПараметр("Ссылка", Объект.Партнер.CRM_ОсновноеКонтактноеЛицо.Ссылка);
   
   РезультатЗапроса = Запрос.Выполнить();      
      
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();   

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

   КонецЦикла;     


Результатом здесь является пустая строка. Согласно РезультатуЗапроса, в Выборке находится одна единственная запись. Вроде всё верно. Но все же не работает как надо.

Пожалуйста, помогите решить данную проблему.
 
Да вопрос интересный. Пожалуйста помогите, а то функций добавили, а как их использовать?
 
Запрос = Новый Запрос("
|ВЫБРАТЬ ПЕРВЫЕ 1
| ДополнительнаяИнформация.Значение КАК ЗначениеСвойства
|ИЗ
| Справочник.КонтактныеЛицаПартнеров.ДополнительнаяИнформация КАК ДополнительнаяИнформация
|ГДЕ
| ДополнительнаяИнформация.Ссылка = &Ссылка
| И ДополнительнаяИнформация.Свойство = &Свойство");

Запрос.УстановитьПараметр("Ссылка", Объект.Партнер.CRM_ОсновноеКонтактноеЛицо);

Запрос.УстановитьПараметр("Свойство", Ссылка_На_Описываемое_Свойство);

// Где Ссылка_На_Описываемое_Свойство - это значение типа ПланВидовХарактеристикСсылка.CRM_ДополнительнаяИнформация,
// для приведенного выше примера должна быть ссылкой на элемент "Действует на основании"

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ЗначениеСвойства = Выборка.ЗначениеСвойства;
Иначе
ЗначениеСвойства = ""; // нет такого свойства
КонецЕсли;
 
Работает. Спасибо большое!
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С