Внимание! Эта публикация предназначена для начинающих разработчиков/программистов как пример использования типовых процедур и функций входящих в БСП.
В данном примере приведенный фрагмент кода добавлен в процедуру
ПослеЗаписиНаСервере()
после блока, в котором выполняется типовая вставка штрихкода и автоматическое заполнение шаблонов. Картинка забирается из справочника "Файлы" по привязке к конкретному пользователю, который является отвественным лицом на текущую дату для организации, указанной в документе (в данном примере - ВнутреннийДокумент).
Непосредственно код:
Если Приемник.ВладелецФайла.Шаблон.ВидДокумента = Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Распоряжение") ИЛИ
Приемник.ВладелецФайла.Шаблон.ВидДокумента = Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Приказ по общей деятельности предприятия") Тогда
ДанныеОШтрихкоде = ШтрихкодированиеСервер.ПолучитьДанныеДляВставкиШтрихкодаВОбъект(Приемник);
МассивСвойств = Новый Массив;
МассивСвойств.Добавить(ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Файл подписи"));
ОтветственноеЛицо = РаботаСОрганизациями.ПолучитьОтветственноеЛицо("Руководитель", Объект.Организация, ТекущаяДата());
Если ЗначениеЗаполнено(ОтветственноеЛицо) Тогда
Результат = УправлениеСвойствами.ПолучитьЗначенияСвойств(ОтветственноеЛицо, Истина, Ложь,МассивСвойств);
Если Результат.Количество() > 0 Тогда
ДвоичныеДанныеКартинки = РаботаСФайламиВызовСервера.ПолучитьДвоичныеДанныеФайла(Результат[0].Значение.Ссылка);
Попытка
ШтрихкодированиеКлиентСервер.ВставитьШтрихкодВместоТэга(Приемник.Ссылка,
"ВставитьИзображениеПодписи",
Ложь,
ДвоичныеДанныеКартинки,
ДанныеОШтрихкоде.ДвоичныеДанныеФайла,
ДанныеОШтрихкоде.Расширение,
ДанныеОШтрихкоде.ФайлРедактируется,
ДанныеОШтрихкоде.ИзменениеФайловMSWordТолькоНаСервере,
10);
Исключение
КонецПопытки;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Фрагмент представлен как есть, без рефакторинга. Если кому-то захочется оформить через свою функцию в общем модуле, пожалуйста.
Логика:
- Сначала проверяем условие, для каких видов документов будет выполняться данный код
- Получаем пользователя, который является действующим ответственным лицом для указанной в документе организации
- Получаем значение дополнительного реквизита с наименованием "Файл подпись" у найденного пользователя
- Вставляем полученную картинку, применяя типовую функцию ВставитьШтрихкодВместоТэга()
P.S.: Последний параметр функции ВставитьШтрихкодВместоТэга определяет высоту картинки.