Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Подставить свой текст в шаблон при определенном значении ДопРеквизита (Документооборот)

Подставить свой текст в шаблон при определенном значении ДопРеквизита (Документооборот)
Я
   ГлызинаЮИ
 
12.01.21 - 05:19
Уважаемые, помогите девушке, пожалуйста. Я ни разу не программист, то что вы сейчас увидите, это отрывки из разных форумов, естественно это не работает

РезультатОбработки = "";
Полномочие = ВладелецФайла.Ссылка.ДопРеквизиты.НайтиПоНаименованию("Полномочия, права")
Если
Полномочие = "Лизинг"
Тогда РезультатОбработки = "длинющий текст";
КонецЕсли;


Короче, есть доп.реквизит у внутреннего документа - "Полномочия, права". В таком доп.реквизите есть одно из значений - "Лизинг"
Мне нужно в шаблон вордовский вместо слова лизинг подставить некий текст, для удобства я его пока обозначила как "длинющий текст"
   Filin
 
1 - 12.01.21 - 08:25
Как-то так - 

ДопРеквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Полномочия, права");
ЗначениеДопРеквизита = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Лизинг",,ДопРеквизит);

Если ЗначениеЗаполнено(ДопРеквизит) Тогда 
    СтрокаДопРеквизита = ВладелецФайла.Ссылка.ДополнительныеРеквизиты.Найти(ДопРеквизит);
    Если НЕ СтрокаДопРеквизита = Неопределено Тогда 
        Если СтрокаДопРеквизита.Значение = ЗначениеДопРеквизита Тогда 
            РезультатОбработки = "длинющий текст";
        КонецЕсли;  
    КонецЕсли;
КонецЕсли;
   ГлызинаЮИ
 
2 - 12.01.21 - 09:00
(1) к сожалению, не работает. При проверке заполнения (доп.реквизит указан как раз как лизинг), выдает не содержательную ошибку что скрип настроен некорректно.

ps в начале вашего кода я добавила РезультатОбработки = "";
и еще меня смутила вторая запятая в ЗначениеДОпРеквизита, но что с двумя, что с одной заполнения не происходит
   Filin
 
3 - 12.01.21 - 09:23
Тогда нужно все-таки звать программиста.
   Йохохо
 
4 - 12.01.21 - 09:28
"Мне нужно в шаблон вордовский вместо слова лизинг подставить некий текст" Вам нужно как то акцентировать на этом внимание. что эта конструкция выполняется через Выполнить() в работе с шаблонами договоров ДО, там не всё доступно
   hhhh
 
5 - 12.01.21 - 09:51
(2) попробуйте
ЗначениеДопРеквизита = "Лизинг";
   Масянька
 
6 - 12.01.21 - 09:54
(0) У Вас есть шаблоны внутренних документов?
   ГлызинаЮИ
 
7 - 12.01.21 - 10:24
(6) Вы имеете в виду не подставлять текст, а использовать просто нужный шаблон? У нас порядка 10 видов полномочий, где тогда научить ДО что если выбран тип Лизинг, то заполнять вот этот шаблон, а не другой?
   ГлызинаЮИ
 
8 - 12.01.21 - 10:25
(5) неа(
   Масянька
 
9 - 12.01.21 - 10:56
(7) (8) У нас в ДО для каждого документа свой шаблон. Есть док-ты, у которых несколько шаблонов, но это другая история.
Заполнение шаблонов (у нас) происходит при сохранении док-та. А правила заполнения шаблонов прописаны именно в шаблонах (поля файлов = скрипты).
   ГлызинаЮИ
 
10 - 12.01.21 - 11:02
(9) я вас поняла. Что мы имеем - это вид одного внутреннего документа - Доверенность. В зависимости от выбранных полномочий доверенного, которые описаны в доп.реквизите типа как "УПД/ Лизинг/ ГИДББ" необходимо подставлять простыню юридического текста в шаблон. Правило я и описываю (прошу помощи) в скриптах заполнения шаблона
   Масянька
 
11 - 12.01.21 - 11:03
(10) Текст скрипта покажите.
   ГлызинаЮИ
 
12 - 12.01.21 - 11:10
(11) 1 комментарий от Филина
   Масянька
 
13 - 12.01.21 - 11:11
(12) Исходный. Текст.
   ГлызинаЮИ
 
14 - 12.01.21 - 11:52
(1) Вот так поправили и работает
РезультатОбработки = "";
ДопРеквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Полномочия, права");
ЗначениеДопРеквизита = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Лизинг",,,ДопРеквизит);

Если ЗначениеЗаполнено(ДопРеквизит) Тогда 
    СтрокаДопРеквизита = Файл.ВладелецФайла.ДополнительныеРеквизиты.Найти(ДопРеквизит);
    Если НЕ СтрокаДопРеквизита = Неопределено Тогда 
        Если СтрокаДопРеквизита.Значение = ЗначениеДопРеквизита Тогда 
            РезультатОбработки = "длинющий текст";
     КонецЕсли;  
   КонецЕсли;
КонецЕсли;


Но я поняла что я не очень верно задачу озвучила, мне нужно в зависимости от того какое значение  заполнено в ДопРеквизите подставлять разные тексты
типа для лизинга - "длинющий текст"
а для УПД - "текст покороче"
   Filin
 
15 - 12.01.21 - 12:01
Да, что-то я с запятыми накосячил. Там же владелец.
Вот вариант про все - 

РезультатОбработки = "";
ДопРеквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Полномочия, права");
ЗначениеДопРеквизитаЛизинг = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Лизинг",,,ДопРеквизит);
ЗначениеДопРеквизитаУПД = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("УПД",,,ДопРеквизит);
ЗначениеДопРеквизитаГИБДД = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("ГИДББ",,,ДопРеквизит);

Если ЗначениеЗаполнено(ДопРеквизит) Тогда 
    СтрокаДопРеквизита = Файл.ВладелецФайла.ДополнительныеРеквизиты.Найти(ДопРеквизит);
    Если НЕ СтрокаДопРеквизита = Неопределено Тогда 
        Если СтрокаДопРеквизита.Значение = ЗначениеДопРеквизитаЛизинг Тогда 
            РезультатОбработки = "длинющий текст про лизинг";
        ИначеЕсли  СтрокаДопРеквизита.Значение = ЗначениеДопРеквизитаУПД Тогда
            РезультатОбработки = "длинющий текст про УПД"; 
        ИначеЕсли  СтрокаДопРеквизита.Значение = ЗначениеДопРеквизитаГИБДД Тогда
            РезультатОбработки = "длинющий текст про ГИБДД";  
        Иначе
            РезультатОбработки = "длинющий текст про то что мы не знаем про что писать";
        КонецЕсли;  
    КонецЕсли;
КонецЕсли;
   ГлызинаЮИ
 
16 - 13.01.21 - 03:30
(15) Боже, храни умных людей и вас, господин Филин) Все работает!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.