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 Тогда
	ВсеФайлыДокумента = РаботаСФайламиВызовСервера.ПолучитьВсеПодчиненныеФайлы(Документ.Ссылка, Ложь);
	Для Каждого ТекущийФайл Из ВсеФайлыДокумента Цикл
		СозданИзШаблона = ?(ТекущийФайл.ШаблонОснованиеДляСоздания <> Справочники.Файлы.ПустаяСсылка(), Истина, Ложь);
		Если СозданИзШаблона Тогда 
			ДанныеВыполнения = АвтозаполнениеШаблоновФайловКлиентСервер.ЗаполнитьПоляФайлаДаннымиВладельца(Истина, ТекущийФайл, Ложь);
			Если ДанныеВыполнения.Результат Тогда
				Комментарий = "Автозаполнение полей файла после регистрации";
				АвтозаполнениеШаблоновФайловСервер.ОбновитьВерсиюИзДвоичныхДанных(ДанныеВыполнения.ДвоичныеДанныеЗаполненногоФайла, ТекущийФайл, Комментарий);
			КонецЕсли;	
		КонецЕсли;
	КонецЦикла;   
КонецЕсли;
Показать


Подписка: Регистрация внутреннего документа
valkovsky; eaglemw; +2 Ответить
9. Skromnyi 10 16.09.16 10:09 Сейчас в теме
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Консультант-аналитик 1С
Санкт-Петербург
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

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

Программист 1С
Санкт-Петербург
зарплата от 130 000 руб. до 150 000 руб.
Полный день