Антонов Игорь | Руководитель отдела разработки | АО "ДальЖАСО"

«Механизм расширений. 2 года в продакшн»

Мы, страховая компания, используем для автоматизации большую конфигурацию «Бухгалтерия некредитных финансовых организаций + Континент страхование». Почти 2000 объектов метаданных, регулярные обновления от трех поставщиков и регулярные собственные наработки. Проблема обновления стоит особенно остро. Чтобы не «сойти с ума» мы сделали ставку на механизм расширений. Что из этого получилось через два года. * Что такое механизм расширений. Актуальный список возможностей; * Плюсы и минусы механизма расширений; * Когда расширений становится слишком много; * Особенности разработки и отладки; * Командная разработка; * HTTP-сервисы в расширениях; * Использовать или не использовать;

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

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С
Санкт-Петербург
зарплата от 80 000 руб. до 100 000 руб.
Полный день

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

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

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

Ведущий специалист 1С
Москва
Полный день