Запись табличного документа в формате PDF в справочник физ лица

1. go_margaret 16 24.11.22 15:58 Сейчас в теме
Добрый день, есть задача записать сформированный программно табличный документ записать в справочник к физ лицу в формате PDF, не могу сообразить как к этому приступить... Есть типовой функционал записи файла с внешнего носителя, но как это сделать программно не соображу. Может есть у кого такой опыт и может направить куда смотреть?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1089020 24.11.22 16:04 Сейчас в теме
Я правильно понимаю, что Вам нужно табличный документ преобразовать в PDF и прикрепить к элементу справочника?
4. go_margaret 16 24.11.22 16:40 Сейчас в теме
(2) Да, все верно, при этом табличный документ я создаю и заполняю программно, потом мне нужно его добавить к элементу
3. beldieff 24.11.22 16:27 Сейчас в теме
ЗУП? Там же есть присоединенные файлы. Смотри как там делается и пиши так же..
go_margaret; +1 Ответить
5. go_margaret 16 24.11.22 16:43 Сейчас в теме
(3) Да, там есть обработка, но я не могу разобраться в типовом коде, точнее что из него использовать для записи в нужный справочник. Есть функция в общем модуле РаботаСФайламиСлужебныйВызовСервера.ДобавитьФайл(СведенияОФайле, АдресХранилищеЗначения), по сути туда я передаю структуру и данные табличного документа помещенного в хранилище, но вылетает на проверке Проверить(ЭтоКорректныйТип,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Недопустимое значение параметра %1 в %2.
|Ожидалось: %3; передано значение: %4 (тип %5).'"),
ИмяПараметра, ИмяПроцедурыИлиФункции, ПредставлениеТипов(ОжидаемыеТипы),
?(ЗначениеПараметра <> Неопределено, ЗначениеПараметра, НСтр("ru = 'Неопределено'")),
ТипЗнч(ЗначениеПараметра)));
8. beldieff 24.11.22 16:56 Сейчас в теме
(5)
вылетает на проверке Проверить(ЭтоКорректныйТип,
это какой модуль какая процедура?
10. go_margaret 16 24.11.22 17:01 Сейчас в теме
(8) ОбщегоНазначенияКлиентСервер.ПроверитьПараметр

Сейчас получилось получить ошибку, разбираюсь
6. beldieff 24.11.22 16:51 Сейчас в теме
(5) Можно же посмотреть в отладке какие параметры передаются в функцию и подогнать свои под них.
Прикрепленные файлы:
7. go_margaret 16 24.11.22 16:54 Сейчас в теме
(6) А как по вашему я нашла модуль в котором ошибка выходит?) Только пока понять почему она там не получилось, по параметрам передаю все верно
9. beldieff 24.11.22 16:58 Сейчас в теме
(7)
А как по вашему я нашла модуль в котором ошибка выходит?)
Поэтому в вопросе надо давать больше информации, чтоб не давали глупых советов)
11. go_margaret 16 24.11.22 17:02 Сейчас в теме
(9) Я просто подумала, может кто-то уже сталкивался с таким, сейчас параллельно сижу разбираюсь с типовым кодом
12. user5300 1010 24.11.22 17:05 Сейчас в теме
пример )
&НаСервере
Процедура ДобавитьКартинку(Номенклатура,ДВКартинки)
	
	СтруктураФайла = Новый Структура;
	СтруктураФайла.Вставить("Автор", 				Пользователи.ТекущийПользователь());
	СтруктураФайла.Вставить("ВладелецФайлов", 		Номенклатура);
	СтруктураФайла.Вставить("ИмяБезРасширения", 	"КартинкаНоменклатуры" + Лев(Строка(Номенклатура),14));
	СтруктураФайла.Вставить("РасширениеБезТочки", 	"jpg"); //можно распарсить полученный файл, но для простоты - всегда jpg
	СтруктураФайла.Вставить("ВремяИзмененияУниверсальное", ТекущаяУниверсальнаяДата());
	СтруктураФайла.Вставить("ГруппаФайлов", 		Справочники.Файлы.ПустаяСсылка());
	СтруктураФайла.Вставить("Служебный", 			Ложь);
	
	

	АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДВКартинки);    
	Картинка = РаботаСФайлами.ДобавитьФайл(СтруктураФайла, АдресВременногоХранилищаФайла);

	ОБ = Номенклатура.ПолучитьОбъект();
	ОБ.ФайлКартинки = Картинка;
	ОБ.Записать();     
	
КонецПроцедуры
Показать
go_margaret; +1 Ответить
13. go_margaret 16 24.11.22 17:09 Сейчас в теме
(12)
АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДВКартинки);

Вот тут у меня как раз сейчас ошибка, при проверке параметров нужно передавать двоичные данные, а у меня тут получается табличный документ...
14. user5300 1010 24.11.22 17:12 Сейчас в теме
(13)а что сложного?)
ИмяФайла = ПолучитьИмяВременногоФайла(«.pdf»);
ТабличныйДокумент.записать(имяфайла, типфайла ПДФ);

двоичныеДанные = новый двоичныеДанные(ИмяФайла)
go_margaret; +1 Ответить
15. go_margaret 16 24.11.22 17:26 Сейчас в теме
(14) Да, верно, все сработало, немного подкорректировала, запись получилась)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот