1. eaglemw 15.09.16 11:02 Сейчас в теме

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

Добрый день

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


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

Вакансии

Программист 1С
Нижний Новгород
зарплата до 120 000 руб.
Полный день

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Консультант-аналитик 1С
Москва
зарплата от 70 000 руб. до 100 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб. до 120 000 руб.
Временный (на проект)