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

Изменить название файла при сохранении документа в УНФ

Автор User22112002333, 28 янв 2025, 10:03

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

User22112002333

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

Если ОбщегоНазначения.ЭтоДокумент(Метаданные.НайтиПоТипу(ТипЗнч(ОбъектПечати))) Тогда
ПараметрыДляВставки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ОбъектПечати, "Дата,Номер");
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрефиксацияОбъектов") Тогда
МодульПрефиксацияОбъектовКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ПрефиксацияОбъектовКлиентСервер");
ПараметрыДляВставки.Номер = МодульПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ПараметрыДляВставки.Номер);
КонецЕсли;
ПараметрыДляВставки.Дата = Формат(ПараметрыДляВставки.Дата, "ДЛФ=D");
ПараметрыДляВставки.Вставить("НазваниеПечатнойФормы", ШаблонНаименование);
Шаблон = НСтр("ru = '[НазваниеПечатнойФормы] № [Номер] от [Дата]'");
Иначе   

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПокупателя.Ссылка КАК Ссылка,
| ЗаказПокупателя.Номер КАК Номер,
| ЗаказПокупателя.Дата КАК Дата
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка",Ссылка);
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
ПараметрыДляВставки = Новый Структура;
ПараметрыДляВставки.Вставить("НазваниеПечатнойФормы",ШаблонНаименование);
ПараметрыДляВставки.Вставить("ПредставлениеОбъекта", ОбщегоНазначения.ПредметСтрокой(ОбъектПечати));
ПараметрыДляВставки.Вставить("Дата",Формат(РезультатЗапроса.Дата, "ДЛФ=D"));
ПараметрыДляВставки.Вставить("Номер",РезультатЗапроса.Номер);
Шаблон = НСтр("ru = '[НазваниеПечатнойФормы] - [Номер] - [Дата]'");
КонецЦикла;

КонецЕсли;
Возврат СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(Шаблон, ПараметрыДляВставки);

КонецФункции

 

Максим75

User22112002333, ну если у Вас в объектПечати передается ссылка на справочник, то как Вы планируете получить ссылку на документ?


вот у Вас есть условие
Если ОбщегоНазначения.ЭтоДокумент(Метаданные.НайтиПоТипу(ТипЗнч(ОбъектПечати))) Тогда

Вы куда попадаете по этому условию?
В первой ветке у Вас будет документ, там можете и получить данные ЗаказаПокупателя, а во второй ветке явно не документ.

User22112002333

Максим75,
Если ОбщегоНазначения.ЭтоДокумент(Метаданные.НайтиПоТипу(ТипЗнч(ОбъектПечати))) Тогда по этому условию попадаю в Иначе, я поняла, что могу по первой ветке получить данные, они и так туда выводятся, когда сохраняю другой документ "Коммерческое предложение". Просто думала, что можно как-то запросом получить данные, теперь понимаю что не получится так сделать


Теги:

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

Рейтинг@Mail.ru

Поиск