Автозаполнение шаблона документов

1. 15.09.16 11:02 Сейчас в теме
Добрый день

как настроить автообновление шаблона документа, при изменении карточки документа. Часть информации добавляется карточку документа в процессе движения документа. Вариант ручного обновления через "Заполнить файл данными документа" - человеческий фактор, который хотелось бы исключить.
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Skromnyi 12 15.09.16 16:13 Сейчас в теме
Через дополнительные обработчики бизнес-событий
3. eaglemw 15.09.16 16:27 Сейчас в теме
какой код там надо прописать? я все настроил, застопорился на коде.... кто может помочь? просто никто не юзал такую функциональность из знакомых
4. Skromnyi 12 16.09.16 09:56 Сейчас в теме
у меня на 1.4 работает такой код для обработчика: Автоматическое заполнение файлов Внутреннего документа после утверждения
Задача = Событие.Источник;
МассивПредметов = МультипредметностьКлиентСервер.ПолучитьМассивПредметовОбъекта(Задача);
Для Каждого Документ ИЗ МассивПредметов Цикл
	Если ДелопроизводствоКлиентСервер.ЭтоВнутреннийДокумент(Документ) Тогда
		Если  ТипЗнч(Задача.БизнесПроцесс)= Тип("БизнесПроцессСсылка.Утверждение") Тогда
			Запрос = Новый Запрос;
			Запрос.Текст = 
			"ВЫБРАТЬ
			|	РезультатыУтверждения.РезультатУтверждения
			|ИЗ
			|	БизнесПроцесс.Утверждение.РезультатыУтверждения КАК РезультатыУтверждения
			|ГДЕ
			|	РезультатыУтверждения.ЗадачаИсполнителя = &ЗадачаИсполнителя
			|	И РезультатыУтверждения.РезультатУтверждения = &РезультатУтверждения";
			Запрос.УстановитьПараметр("ЗадачаИсполнителя", Задача);
			Запрос.УстановитьПараметр("РезультатУтверждения", Перечисления.РезультатыУтверждения.Утверждено);
			Результат = Запрос.Выполнить();
			Если НЕ Результат.Пустой() Тогда
				КоличествоФайлов = Делопроизводство.КоличествоФайлов(Документ.Ссылка);
				Если КоличествоФайлов > 0 Тогда
					ВсеФайлыДокумента = РаботаСФайламиВызовСервера.ПолучитьВсеПодчиненныеФайлы(Документ.Ссылка, Ложь);
					Для Каждого ТекущийФайл Из ВсеФайлыДокумента Цикл
						СозданИзШаблона = ?(ТекущийФайл.ШаблонОснованиеДляСоздания <> Справочники.Файлы.ПустаяСсылка(), Истина, Ложь);
						Если СозданИзШаблона Тогда 
							ДанныеВыполнения = АвтозаполнениеШаблоновФайловКлиентСервер.ЗаполнитьПоляФайлаДаннымиВладельца(Истина, ТекущийФайл.Ссылка, Ложь);
							Если ДанныеВыполнения.Результат Тогда
								Комментарий = "Автозаполнение полей файла после утверждения документа";
								АвтозаполнениеШаблоновФайловСервер.ОбновитьВерсиюИзДвоичныхДанных(ДанныеВыполнения.ДвоичныеДанныеЗаполненногоФайла, ТекущийФайл, Комментарий);
							КонецЕсли;	
						КонецЕсли;
					КонецЦикла;   
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
КонецЦикла;
Показать
5. Skromnyi 12 16.09.16 09:57 Сейчас в теме
Подписка на вид события: Выполнение задачи
6. Skromnyi 12 16.09.16 09:58 Сейчас в теме
для обработчика "Автоматическое заполнение файлов Внутреннего документа после согласования" код такой:
Задача = Событие.Источник;
МассивПредметов = МультипредметностьКлиентСервер.ПолучитьМассивПредметовОбъекта(Задача);
Для Каждого Документ ИЗ МассивПредметов Цикл
	Если ДелопроизводствоКлиентСервер.ЭтоВнутреннийДокумент(Документ) Тогда
		Если  ТипЗнч(Задача.БизнесПроцесс)= Тип("БизнесПроцессСсылка.Согласование") Тогда
			Виза = РаботаСВизамиСогласования.ПолучитьАктивнуюВизуПоЗадаче(Документ, Задача);
			Если Виза <> Неопределено  И Виза.РезультатСогласования <> Перечисления.РезультатыСогласования.НеСогласовано Тогда
				КоличествоФайлов = Делопроизводство.КоличествоФайлов(Документ.Ссылка);
				Если КоличествоФайлов > 0 Тогда
					ВсеФайлыДокумента = РаботаСФайламиВызовСервера.ПолучитьВсеПодчиненныеФайлы(Документ.Ссылка, Ложь);
					Для Каждого ТекущийФайл Из ВсеФайлыДокумента Цикл
						СозданИзШаблона = ?(ТекущийФайл.ШаблонОснованиеДляСоздания <> Справочники.Файлы.ПустаяСсылка(), Истина, Ложь);
						Если СозданИзШаблона Тогда 
							ДанныеВыполнения = АвтозаполнениеШаблоновФайловКлиентСервер.ЗаполнитьПоляФайлаДаннымиВладельца(Истина, ТекущийФайл.Ссылка, Ложь);
							Если ДанныеВыполнения.Результат Тогда
								Комментарий = "Автозаполнение полей файла после согласования документа";
								АвтозаполнениеШаблоновФайловСервер.ОбновитьВерсиюИзДвоичныхДанных(ДанныеВыполнения.ДвоичныеДанныеЗаполненногоФайла, ТекущийФайл, Комментарий);
							КонецЕсли;	
						КонецЕсли;
					КонецЦикла;   
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
КонецЦикла;
Показать
7. Skromnyi 12 16.09.16 10:00 Сейчас в теме
подписка такая-же: Выполнение задачи
8. Skromnyi 12 16.09.16 10:01 Сейчас в теме
ну и уж до кучи обработчик "Автоматическое заполнение файлов Внутреннего документа после регистрации"
Документ = Событие.Источник;
КоличествоФайлов = Делопроизводство.КоличествоФайлов(Документ.Ссылка);
Если КоличествоФайлов > 0 Тогда
	ВсеФайлыДокумента = РаботаСФайламиВызовСервера.ПолучитьВсеПодчиненныеФайлы(Документ.Ссылка, Ложь);
	Для Каждого ТекущийФайл Из ВсеФайлыДокумента Цикл
		СозданИзШаблона = ?(ТекущийФайл.ШаблонОснованиеДляСоздания <> Справочники.Файлы.ПустаяСсылка(), Истина, Ложь);
		Если СозданИзШаблона Тогда 
			ДанныеВыполнения = АвтозаполнениеШаблоновФайловКлиентСервер.ЗаполнитьПоляФайлаДаннымиВладельца(Истина, ТекущийФайл, Ложь);
			Если ДанныеВыполнения.Результат Тогда
				Комментарий = "Автозаполнение полей файла после регистрации";
				АвтозаполнениеШаблоновФайловСервер.ОбновитьВерсиюИзДвоичныхДанных(ДанныеВыполнения.ДвоичныеДанныеЗаполненногоФайла, ТекущийФайл, Комментарий);
			КонецЕсли;	
		КонецЕсли;
	КонецЦикла;   
КонецЕсли;
Показать


Подписка: Регистрация внутреннего документа
user199589; Julia13; valkovsky; eaglemw; +4 Ответить
10. Julia13 13.12.18 11:21 Сейчас в теме
(8)
Спасибо, очень помогло!! Я именно это и искала)
12. user626131 30.01.19 09:39 Сейчас в теме
(8) а в каком формате должен быть файл? docx или doc, чтобы обновление было на сервере?
13. Skromnyi 12 30.01.19 13:26 Сейчас в теме
(12) у нас используется "doc", т.к. с "docx" были какие-то проблемы (точно сейчас их уже не помню).
14. user626131 31.01.19 08:48 Сейчас в теме
(13) и у вас происходит обновление файла на сервере формата .doc? На сервере стоит МС Офис?
9. Skromnyi 12 16.09.16 10:09 Сейчас в теме
11. Svet_Serg 28.01.19 10:03 Сейчас в теме
Документооборот 8 КОРП, 2.1.12.2 - работает безотказно! Спасибо!
Оставьте свое сообщение
Вопросы с вознаграждением