Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 12:01

правила автозаполнения шаблонов в 1С:Документооборот

Автор lionbeast, 16 авг 2012, 16:32

0 Пользователей и 1 гость просматривают эту тему.

lionbeast

Документооборот 8 КОРП, редакция 1.2 (1.2.4.3)
1С:Предприятие 8.2 (8.2.16.352)

Пытаюсь настроить автозаполнение шаблона, принцип вывода понял - создаются правила заполнения, какие-то поля даже заполнил. Дошел до банковских данных. Что имею: корреспондент, у него основной банковский счет, у счета есть реквизиты: наименование, р/с и т.д.(стандартные), но при создания правила я не могу получить доступ к ним (их просто нет в дереве реквизитов). Как вытащить данные с этих полей?


http://rghost.ru/39816605 - скрин древа реквизитов

Karapuzzzz

Так оно и есть. Не ко всем значениям реквизитов можно подобраться. Использовать для таких целей необходимо выражения.
Например МФО:

РезультатОбработки=Файл.ВладелецФайла.Корреспондент.ОсновнойБанковскийСчет.Банк.Код

РезультатОбработки - то, что в итоге пойдет в документ
Файл.ВладелецФайла - тут все ясно (смотрим структуру справочника "Файлы")


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


Получаем ФИО для вставки в подпись (Фамилия и инициалы)
Буфер=СокрЛП(Файл.ВладелецФайла.ПодписалОтКорреспондента);
Пробел = Найти(Буфер, " ");
Фам = СокрЛП(Лев(Буфер, Пробел));
Буфер = СокрЛП(Сред(Буфер, Пробел + 1));
Пробел = Найти(Буфер, " ");
Имя=СокрЛП(Лев(Буфер, 1));
Буфер = СокрЛП(Сред(Буфер, Пробел + 1));
Отч=СокрЛП(Лев(Буфер, 1));
ФИО=(Фам+" "+Имя+"."+Отч+".");
РезультатОбработки=ФИО;


Сумма прописью
ПарПредмета=",,,,,,,,0";
ФормСтрока = "Л = ru_RU; НП=Ложь, НД=Ложь; ДП = Ложь";
Сумма=Цел(Файл.ВладелецФайла.Сумма);
ПрописьЧисла = ЧислоПрописью(Сумма, ФормСтрока, ПарПредмета);
РезультатОбработки = ПрописьЧисла;


Копеек
СуммаЦел=Цел(Файл.ВладелецФайла.Сумма);
СуммаКоп=Файл.ВладелецФайла.Сумма-СуммаЦел;
Коп=Формат(СуммаКоп, "ЧЦ=2; ЧДЦ=2; ЧРД=' '; ЧН=00");
РезультатОбработки = Коп;


Сумма НДС
СуммаНДС=Формат(ОКР(Файл.ВладелецФайла.Сумма*0.2,2), "ЧДЦ=2; ЧН=0");
РезультатОбработки = СуммаНДС;


Теперь мучаюсь вставкой таблицы.


stas1kbob

у меня почему то не работают такие произвольные выражения. пишет "не найдено поле ***", такая ошибка выходит на любое поле после файл.владелецФайла. то есть вообще ни одно поле не получить. документоооборот 1.2.8.1

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск