PDA

Просмотр полной версии : Проблема со вставкой данных в поле автозаполняемого шаблона Документооборот 1.4.5.1



starter01
09.11.2014, 15:03
Очень прошу помощи.
Создан автозаполняемый шаблон письма, в котором есть поля с адресатом и его адресом (т.е. кому отсылается). Этот шаблон должен отрабатываться через исходящие документы.
При попытке сформировать в правилах автозаполнения заполнение этих полей данными обнаружилось, что в форме выбора реквизитов отсутствуют данные об адресате, хотя в карточке исходящего документа поле выбора наименования адресата присутствует.
Попытался написать в правиле вот это для адреса корреспондента:

РезультатОбработки = УправлениеКонтактнойИнфор мацией.ПолучитьКонтактную� �нформацияОбъекта(Файл.Вла� �елецФайла.Корреспондент , Справочники.ВидыКонтактно� �Информации.ЮридическийАдр есКорреспондента);
однако при проверке правила выскакивает "Поле объекта не обнаружено (Корреспондент)".
В принципе, понятно, что не обнаружено, поскольку такого реквизита нет и в списке выбора при оформлении правила.
Подскажите, пожалуйста, как правильно прописать эти реквизиты (наименование и адрес корреспондента), чтобы все нормально отрабатывалось при формировании исходящего документа (файла по шаблону).
Заранее очень благодарен за советы и помощь!

mdamakar
20.11.2014, 12:14
Можно сделать так:


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

Запрос.УстановитьПараметр("Ссылка",ИсхДок);
Результат = Запрос.Выполнить().Выбрать() ;

Пока Результат.Следующий() Цикл
Корреспондент = Результат.Получатель;
КонецЦикла;

КонтактныеДанные = Корреспондент.КонтактнаяИ� �формация;

Для Каждого ТекСтрока из КонтактныеДанные Цикл
ТекСтрокаВид = строка(ТекСтрока.Вид);
ТекСтрокаВидПредставление = "Юридический адрес";
Если ТекСтрокаВид = ТекСтрокаВидПредставление Тогда
КонтактныеДанныеПредставл ение = ТекСтрока.Представление;
КонецЕсли;
КонецЦикла;

//Сообщить("Юридический адрес: " + КонтактныеДанныеПредставл ение);

РезультатОбработки = КонтактныеДанныеПредставл ение;

starter01
27.11.2014, 22:18
Огромное Вам, mdamakar, спасибо!
Все отлично получилось с первого раза - теперь в вордовский шаблон вставляется адрес контрагента (адресата). А на какой строке можно остановиться, чтобы получить наименование адресата. Как я вижу по коду, сначала идет отбор из исходящего документа ряда параметров, потом "отфильтровывается" параметр по критерию, следом формируется строка с представлением. Вероятно, я бы смог по аналогии переделать код для наименования контрагента, знать бы как этот параметр в коде точно именуется. Просто в вышеприведенном коде есть практически одинаковые строки:

ИсходящиеДокументыПолучат ели.НомерСтроки,
| ИсходящиеДокументыПолучат ели.Получатель,
| ИсходящиеДокументыПолучат ели.Получатель.Код Как ПолучательКод,
| ИсходящиеДокументыПолучат ели.Адресат,
| ИсходящиеДокументыПолучат ели.Получатель.ЮрФизЛицо

mdamakar
20.04.2015, 11:29
ИсхДок = Файл.ВладелецФайла;
//Сообщить("Исходящий документ: " + ИсхДок);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ Первые 1
| ИсходящиеДокументыПолучат ели.Ссылка,
| ИсходящиеДокументыПолучат ели.НомерСтроки,
| ИсходящиеДокументыПолучат ели.Получатель,
| ИсходящиеДокументыПолучат ели.Получатель.Код Как ПолучательКод,
| ИсходящиеДокументыПолучат ели.Адресат,
| ИсходящиеДокументыПолучат ели.СпособОтправки,
| ИсходящиеДокументыПолучат ели.Отправлен,
| ИсходящиеДокументыПолучат ели.ДатаОтправки,
| ИсходящиеДокументыПолучат ели.УдалитьПолученОтвет,
| ИсходящиеДокументыПолучат ели.ВходящийНомер,
| ИсходящиеДокументыПолучат ели.ВходящаяДата,
| ИсходящиеДокументыПолучат ели.Получатель.ЮрФизЛицо
|ИЗ
| Справочник.ИсходящиеДокум? ?нты.Получатели КАК ИсходящиеДокументыПолучат ели
|ГДЕ
| ИсходящиеДокументыПолучат ели.Ссылка = &Ссылка";

Запрос.УстановитьПараметр( "Ссылка",ИсхДок);
Результат = Запрос.Выполнить().Выбрать() ;

Пока Результат.Следующий() Цикл
Корреспондент = Результат.Получатель;
КонецЦикла;

РезультатОбработки = Корреспондент;