Как изменить название файла при сохранении внешней печатной формы
Есть конфигурация типовая БП 3.0 Есть внешняя печатная форма акта в документу "Поступление Товаров, услуг". Хочется чтобы пари сохранении этой формы название было бы уникальным. Скажем "Акт_услуг_Иванов_Договор4_10_11_2018.docx"
Ну а вместо этого имя файла получается "Внешняя печатная форма поступления № БП-1 от 31.03.2017.docx".
Как можно изменить его при сохранение файла.
Пытался так в модуле внешней обработки
не проходит. Пишет метод объекта не обнаружен "ИспользуемоеИмяФайла"
хотя ТабличныйДокумент прописан как
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.КлючПараметровПечати = СтруктураПараметровПечати.ИмяПараметровПечати;
Ну а вместо этого имя файла получается "Внешняя печатная форма поступления № БП-1 от 31.03.2017.docx".
Как можно изменить его при сохранение файла.
Пытался так в модуле внешней обработки
СтрокаИмениФайла="Акт_приемки_услуг_"+Контрагент+"_"+Договор +"_"+Формат(ДатаАкта, "ДФ=yyyyMMdd");
ТабличныйДокумент.ИспользуемоеИмяФайла(СтрокаИмениФайла);
Возврат ТабличныйДокумент;
не проходит. Пишет метод объекта не обнаружен "ИспользуемоеИмяФайла"
хотя ТабличныйДокумент прописан как
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.КлючПараметровПечати = СтруктураПараметровПечати.ИмяПараметровПечати;
Прикрепленные файлы:
![](/upload/forum/upload/bfc/bfc52eb156ed72bec7430ae5df204f96.png)
![](/upload/forum/upload/d4d/d4d32eaaf2766edf1a11612955cadb31.png)
По теме из базы знаний
- Продвинутая технология внешних печатных форм
- Установка, просмотр статуса документа через внешнюю печатную форму (хранение статуса во внешнем dbf)
- [Розница 8. Аптека] Загрузка приходных накладных из файлов DBF
- Подключаемые печатные формы с .DOCX макетом без Word'а
- Параметризация печатных форм под контрагентов (подключаемое расширение)
Найденные решения
Разобрался. КоллекцияПечатныхФорм - это таблица значений. И у нее есть колонка "ИмяФайлаПечатнойФормы". Достаточно переопределить эту колонку
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "АКТ", УказатьНаименованиеВнешнейПечатнойФормы(),
ПечатьАктаОбОказанииУслуг(ТаблицаСведенийАктаОбОказанииУслуг, ОбъектыПечати, СтруктураПараметровПечати));
КонецЕсли;
ИмяФайлаПечатнойФормы="";
Если СтруктураПараметровПечати.Свойство("ИмяФайлаПечатнойФормы",
ИмяФайлаПечатнойФормы) Тогда
Для Каждого Строка Из КоллекцияПечатныхФорм Цикл
Строка.ИмяФайлаПечатнойФормы=ИмяФайлаПечатнойФормы;
КонецЦикла;
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Разобрался. КоллекцияПечатныхФорм - это таблица значений. И у нее есть колонка "ИмяФайлаПечатнойФормы". Достаточно переопределить эту колонку
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "АКТ", УказатьНаименованиеВнешнейПечатнойФормы(),
ПечатьАктаОбОказанииУслуг(ТаблицаСведенийАктаОбОказанииУслуг, ОбъектыПечати, СтруктураПараметровПечати));
КонецЕсли;
ИмяФайлаПечатнойФормы="";
Если СтруктураПараметровПечати.Свойство("ИмяФайлаПечатнойФормы",
ИмяФайлаПечатнойФормы) Тогда
Для Каждого Строка Из КоллекцияПечатныхФорм Цикл
Строка.ИмяФайлаПечатнойФормы=ИмяФайлаПечатнойФормы;
КонецЦикла;
КонецЕсли;
Показать
// Процедура формирует имя сохраняемого файла путем формирования представления документа и удаления из него символов "точка"
Процедура УстановитьИмяСохраняемогоФайла(ОбъектыПечати, КоллекцияПечатныхФорм, ИмяФайлаПоВходящимНомерам)
Если НЕ КоллекцияПечатныхФорм.Количество() = 1 Тогда
Возврат;
КонецЕсли;
ПечатнаяФорма = КоллекцияПечатныхФорм[0];
Если ЗначениеЗаполнено(ПечатнаяФорма.ИмяФайлаПечатнойФормы) Тогда
// Имя файла уже задано ранее, не меняем его.
Возврат;
КонецЕсли;
ИмяФайлаПечатнойФормы = Новый Соответствие;
Для Каждого ОбъектПечати Из ОбъектыПечати Цикл
ПредставлениеДокументаДляПечатнойФормы = СформироватьЗаголовокПервичногоДокумента(
ОбъектПечати.Значение, ПечатнаяФорма.СинонимМакета, ИмяФайлаПоВходящимНомерам);
ПредставлениеДокументаДляПечатнойФормы = СтрЗаменить(ПредставлениеДокументаДляПечатнойФормы, ".", "");
//*** ШО 2023-11-23
Если ОбъектПечати.Значение.Ссылка.Метаданные().Имя = "АктСверкиВзаиморасчетов" Тогда
ПредставлениеДокументаДляПечатнойФормы = ОбъектПечати.Значение.Контрагент.Наименование + " " + ПредставлениеДокументаДляПечатнойФормы;
КонецЕсли;
//*** шо 2023-11-23
ИмяФайлаПечатнойФормы.Вставить(ОбъектПечати.Значение, ПредставлениеДокументаДляПечатнойФормы);
КонецЦикла;
ПечатнаяФорма.ИмяФайлаПечатнойФормы = ИмяФайлаПечатнойФормы;
КонецПроцедуры
В БП 83 общий модуль общегоназначенияБП
Процедура УстановитьИмяСохраняемогоФайла(ОбъектыПечати, КоллекцияПечатныхФорм, ИмяФайлаПоВходящимНомерам)
Если НЕ КоллекцияПечатныхФорм.Количество() = 1 Тогда
Возврат;
КонецЕсли;
ПечатнаяФорма = КоллекцияПечатныхФорм[0];
Если ЗначениеЗаполнено(ПечатнаяФорма.ИмяФайлаПечатнойФормы) Тогда
// Имя файла уже задано ранее, не меняем его.
Возврат;
КонецЕсли;
ИмяФайлаПечатнойФормы = Новый Соответствие;
Для Каждого ОбъектПечати Из ОбъектыПечати Цикл
ПредставлениеДокументаДляПечатнойФормы = СформироватьЗаголовокПервичногоДокумента(
ОбъектПечати.Значение, ПечатнаяФорма.СинонимМакета, ИмяФайлаПоВходящимНомерам);
ПредставлениеДокументаДляПечатнойФормы = СтрЗаменить(ПредставлениеДокументаДляПечатнойФормы, ".", "");
//*** ШО 2023-11-23
Если ОбъектПечати.Значение.Ссылка.Метаданные().Имя = "АктСверкиВзаиморасчетов" Тогда
ПредставлениеДокументаДляПечатнойФормы = ОбъектПечати.Значение.Контрагент.Наименование + " " + ПредставлениеДокументаДляПечатнойФормы;
КонецЕсли;
//*** шо 2023-11-23
ИмяФайлаПечатнойФормы.Вставить(ОбъектПечати.Значение, ПредставлениеДокументаДляПечатнойФормы);
КонецЦикла;
ПечатнаяФорма.ИмяФайлаПечатнойФормы = ИмяФайлаПечатнойФормы;
КонецПроцедуры
В БП 83 общий модуль общегоназначенияБП
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот