Справочник, прикреплённый файл(шаблон) создать на основании него еще один шаблон в другом справочнике

1. Lunatic1991 28.08.21 15:06 Сейчас в теме
Добрый день, новичок в 1с, периодически сталкиваюсь с разными заданиями, в которых слабо понимаю, прошу помощи..

Версия программы: BASБухгалтерия (разработка 2.1.12.1, совместимость 8.3.12)

Ситуация следующая:
Нужно сделать внешнюю обработку, прикрепить её к кнопке в справочнике "ДоговораКонтрагентов", по нажатию которой будет создаваться печатная форма договора, и сохраняться как прикреплённый файл к данному договору, в формате docx.

Создаваться должно по шаблону, который хранится как прикреплённый файл к организации. Так же надо менять часть текста внутри шаблона.


Застрял на этапе получения шаблона организации и считывания текста с него, выдаёт ошибку что файл с таким-то названием не найден. Пытался получить файл запросом из справочника "ОрганизацииПрикреплённыеФайлы", так же из справочников "ВерсииФайлов" и "файлы", везде одна и та же ошибка.
Как мне в процедуре получить шаблон и текст внутри шаблона?

Заранее спасибо!
Вознаграждение за ответ
Показать полностью
Найденные решения
6. malikov_pro 1330 30.08.21 13:51 Сейчас в теме +0.1 $m
(5) Вы получили ссылку на справочник, docx шаблон находится либо в томе хранения либо в РС ДвоичныеДанные.
Чтобы получить двоичные данные нужно РаботаСФайлами.ДвоичныеДанныеФайла(ПрисоединенныйФайл);

После решить где буду обрабатывать если на клиенте то нужно передать из через ПоместитьВоВременноеХранилище
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. krasnodar-it 29.08.21 19:25 Сейчас в теме
2. malikov_pro 1330 29.08.21 15:45 Сейчас в теме
"выдаёт ошибку что файл с таким-то названием не найден." - код покажите как открываете.
5. Lunatic1991 30.08.21 09:15 Сейчас в теме
(2)
 Запрос = Новый Запрос();
	   Запрос.Текст = "ВЫБРАТЬ
	                  |	ОрганизацииПрисоединенныеФайлы.Ссылка КАК Ссылка
	                  |ИЗ
	                  |	Справочник.ОрганизацииПрисоединенныеФайлы КАК ОрганизацииПрисоединенныеФайлы
	                  |ГДЕ
	                  |	ОрганизацииПрисоединенныеФайлы.ВладелецФайла = &организация
	                  |	И ОрганизацииПрисоединенныеФайлы.Наименование = &наименование";
	запрос.УстановитьПараметр("организация", ОрганизацияПоДоговору);
	запрос.УстановитьПараметр("наименование", ИмяШаблона);
	
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл

	ФайлДляОткрытия  =  выборка.Ссылка;
        КонецЦикла;
Показать
3. o.nikolaev 216 29.08.21 15:52 Сейчас в теме
В типовых посмотрите как реализовано.
6. malikov_pro 1330 30.08.21 13:51 Сейчас в теме +0.1 $m
(5) Вы получили ссылку на справочник, docx шаблон находится либо в томе хранения либо в РС ДвоичныеДанные.
Чтобы получить двоичные данные нужно РаботаСФайлами.ДвоичныеДанныеФайла(ПрисоединенныйФайл);

После решить где буду обрабатывать если на клиенте то нужно передать из через ПоместитьВоВременноеХранилище
7. Lunatic1991 31.08.21 15:59 Сейчас в теме
(6)Получилось взять из реестра двоичных данных, спасибо!
Сохранил в файл на диске, теперь мучаюсь с тем чтоб перезаписать в файл нужные данные через ком объект и потом прикрепить этот файл к справочнику
8. malikov_pro 1330 31.08.21 19:35 Сейчас в теме
(7) Через COM изменяете/создаете документ, результат сохраняете в файл. Файл с результатом через ПоместитьВоВременноеХранилище переносите на сервер и добавляете через РаботаСФайламиВТомахСлужебный.ДобавитьФайл(), посмотрите как эта функция используется в типовой. Для редактирования DOCX не обязательно COM https://infostart.ru/public/1171429/, альтернатива формировать через google, моя статья https://infostart.ru/1c/articles/1283766/

Готовое решение https://infostart.ru/1c/articles/1388478/ с использованием БСП
Оставьте свое сообщение

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