gifts2017

Авторегистрация обработок заполнения табличных частей и внешних печатных форм в информационной базе + Видео-пример использования шаблона - создание внешней печатной формы самостоятельно + Универсальный отчет СКД (набор отчетов в одном с группировками уров

Опубликовал Андрей Григорьев (Borisych) в раздел Программирование - Практика программирования

Если Вы станете использовать в Ваших разработках нижеприведенную методику, тогда Вам больше никогда не придется тратить свое время на объяснение пользователю, КАК ему зарегистрировать Вашу разработку в базе (пользователю достаточно только открыть её или перетащить драг-энд-дропом в 1С:Предприятие).
И вообще, на мой взгляд данная методика является примером хорошего тона отношений разработчик-клиент

К методике приложен файл - внешняя печатная форма для документов "Акт об оказании производственных услуг" и "Реализация товаров и услуг" конфигурации "Бухгалтерия предприятия 1.6"

Суть методики - создаем основную форму обработки, перед открытием регистрируем/обновляем обработку, открываем документы, в которых используется разработка + можно делать что-то еще полезное Smile

Используемый код в первом комменте

2011.10.15

Добавил отчет "Универсальный отчет СКД" - суть такова - открываем в конфигураторе, добавляем (создаем, загружаем из схемы и т.д.) любое количество макетов - схем компоновки данных. В итоге при выборе соответствующего варианта из подменю "Выбрать вариант" получаем сразу готовый отчет (по настройкам "По умолчанию"). Плюшки - кнопки быстрой свертки группировок результата от 1 до 10 - отрабатывают при нажатии Alt+1, 2, ...,8, 9, 0 на клавиатуре. Больше 10 кнопок не предусмотрено.

 

Планы на будущее  - выдернуть из другого отчета кнопки сохранения в "Excel" и т.п. и кнопка отправки по почте либо из встроенного клиента (при наличии такой возможности конфигурации и установленной настройки), либо из клиента операционной системы

 

Добавил обработку "Шаблон ВПФ" - для внешней печатной формы и обработки заполнения табличных частей.

Как пользоваться - для ВПФ достаточно выбрать тип реквизита "СсылкаНаОбъект" (по умолчанию "все документы и все справочники") - обработка зарегистрирует себя в справочнике "Внешние обработки" (если у Вас достаточно прав для этого действия) для всех объектов, входящих в состав типов реквизита (отрабатывает справочники и документы) и откроет форму элемента по умолчанию каждого типа объектов (если у Вас достаточно прав на просмотр объктов данного типа)

В коде закомментированы участки, позволяющие для разных типов объектов использовать различные представления кнопок и дополнительные параметры, передаваемые обработке

2011.10.27 Добавлено видео - "Как сделать внешнюю печатную форму быстро и самостоятельно.rar" - наглядный пример использования обработки "ШаблонВПФ" - за несколько минут создаем сами внешнюю печатную форму "Акт об оказании услуг" для типовой БП 2.0

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Шаблон для создания внешней печатной формы (или ОЗТЧ)
.epf 9,10Kb
14.03.12
175
.epf 9,10Kb 175 Скачать
Универсальный отчет СКД
.erf 21,43Kb
14.03.12
74
.erf 21,43Kb 74 Скачать
Универсальный отчет СКД (нет поля "Выбранные поля")
.erf 20,28Kb
14.03.12
39
.erf 20,28Kb 39 Скачать
Как сделать внешнюю печатную форму быстро и самостоятельно
.rar 20,95Mb
14.03.12
71
.rar 20,95Mb 71 Скачать
Пример - Печатная форма "Акт об оказании услуг (с подписями)" (старый файлик - не качайте)
.epf 21,69Kb
14.03.12
77
.epf 21,69Kb 77 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Андрей Григорьев (Borisych) 03.03.10 11:29
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	Отказ = Истина;
	Если Метаданные.Имя <> "БухгалтерияПредприятия" И Метаданные.Имя <> "БухгалтерияПредприятияБазовая"   Тогда
		Предупреждение("Данная печатная форма предназначена для документов ""Акт об оказании производственных услуг"" 
						|и ""Реализация товаров и услуг"" конфигураций ""Бухгалтерия предприятия"" и ""Бухгалтерия предприятия базовая""!
						|Регистрация обработки не проведена!");
		Возврат;
	КонецЕсли;
	Если НЕ ПравоДоступа("Изменение",Метаданные.Справочники.ВнешниеОбработки) Тогда
		Предупреждение("У Вас недостаточно прав доступа для регистрации обработки в информационной базе! Обратитесь к пользователю с административными правами!");
		Возврат;
	КонецЕсли;
	Эл = Справочники.ВнешниеОбработки.НайтиПоНаименованию(ЭтотОбъект.Метаданные().Синоним);
	Режим = "";
	Если Эл = Справочники.ВнешниеОбработки.ПустаяСсылка() Тогда
		Режим = "Создать";
	Иначе
		Если Вопрос("В информационной базе уже зарегистрирована такая обработка. Обновить существующую?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
			Режим = "Обновить";
		КонецЕсли;
	КонецЕсли; 	
	Если Режим = "" Тогда
		Возврат;
	КонецЕсли;
	Если Режим = "Создать" Тогда
		ЭлСпрВнОбр = Справочники.ВнешниеОбработки.СоздатьЭлемент();
	КонецЕсли;	
	Если Режим = "Обновить" Тогда 
		ЭлСпрВнОбр = Эл.ПолучитьОбъект();
	КонецЕсли;
	ЭлСпрВнОбр.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.ПечатнаяФорма;
	ЭлСпрВнОбр.Наименование = ЭтотОбъект.Метаданные().Синоним;
	ЭлСпрВнОбр.ХранилищеВнешнейОбработки = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИспользуемоеИмяФайла));
	ЭлСпрВнОбр.Принадлежность.Очистить();
	Прин = ЭлСпрВнОбр.Принадлежность.Добавить();
	Прин.СсылкаОбъекта = Документы["РеализацияТоваровУслуг"].ПустаяСсылка();
	Прин.ПредставлениеКнопки = ЭтотОбъект.Метаданные().Синоним;
	Прин.ПредставлениеОбъекта = "Документ """ + Метаданные.Документы["РеализацияТоваровУслуг"].Синоним+"""";
	Прин = ЭлСпрВнОбр.Принадлежность.Добавить();
	Прин.СсылкаОбъекта = Документы["АктОбОказанииПроизводственныхУслуг"].ПустаяСсылка();
	Прин.ПредставлениеКнопки = ЭтотОбъект.Метаданные().Синоним;
	Прин.ПредставлениеОбъекта = "Документ """ + Метаданные.Документы["АктОбОказанииПроизводственныхУслуг"].Синоним+"""";
	//СтруктураПараметров = Новый Структура("Номер", Истина);
	//Прин.ДополнительныеПараметрыОбработки = Новый ХранилищеЗначения(СтруктураПараметров);
	ЭлСпрВнОбр.Записать();
	Предупреждение("Внешняя печатная форма документов ""Реализация товаров и услуг"" 
					|и  ""Акт об оказании производственных услуг"" 
					|зарегистрирована в справочнике ""Внешние обработки""",10);
	Справочники.ВнешниеОбработки.ПолучитьФормуСписка().Открыть();
	Если НЕ ПравоДоступа("Просмотр",Метаданные.Документы.РеализацияТоваровУслуг) Тогда
		Предупреждение("У Вас недостаточно прав доступа просмотра документов ""Реализация товаров и услуг""!",10);
	Иначе
		Док = Документы.РеализацияТоваровУслуг.Выбрать(,,,"Дата Убыв");
		Если Док.Следующий() Тогда
			Док.Ссылка.ПолучитьФорму().Открыть();
		КонецЕсли;
	КонецЕсли;
	Если НЕ ПравоДоступа("Просмотр",Метаданные.Документы.АктОбОказанииПроизводственныхУслуг) Тогда
		Предупреждение("У Вас недостаточно прав доступа просмотра документов ""Акт об оказании производственных услуг""!",10);
	Иначе
		Док = Документы.АктОбОказанииПроизводственныхУслуг.Выбрать(,,,"Дата Убыв");
		Если Док.Следующий() Тогда
			Док.Ссылка.ПолучитьФорму().Открыть();
		КонецЕсли;
	КонецЕсли;
	Справка = "При печати Акта в подписи берутся следующие значения:
			  |По кнопке ""Перейти"" из формы элементов справочников ""Организации"" и ""Контрагенты""
			  |переходим в регистр сведений ""Фамилия, имя, отчество физического лица"".
			  |Заполняем поле ""Фамилия"" - фамилией, ""Имя"" - инициалами, ""Отчество"" - номер доверенности.
			  |Подписи ""Исполнитель"" и ""Заказчик"" собираются из вышеприведенных значений";
	Сообщить(Справка, СтатусСообщения.Обычное);
	Предупреждение(Справка);
КонецПроцедуры
...Показать Скрыть
2. Андрей Григорьев (Borisych) 03.03.10 11:32
Давно пользуюсь таким способом - решил поделиться с общественностью
3. aga_aga (Збянтэжаны Саўка) 14.06.10 09:32
сразу видно профессионала по коду! завидую
возьму методику на заметочку
4. Андрей Григорьев (Borisych) 14.06.10 23:32
(4) спасибо
много интересных задач позволяют получить широкие познания
альтруизм позволяет помогать новичкам и товарищам в решении интересных задач
Однажды 30 минут потраченные на объяснение по телефону как зарегистрировать внешнюю печатную форму или ОЗТЧ (точно уже не помню), причем с Параметрами_Авторегистрации сподвигли на этот способ, который теперь используется во всех моих ВПФ и ОЗТЧ
Кстати, в некоторых новых обработках, которые используют документы практически всех типовых конфигураций вначале проверял присутствие в конфигурации необходимых метаданных (вместо имени конфигурации)
Збянтэжаны Саўка; +1 Ответить 2
5. aga_aga (Збянтэжаны Саўка) 15.06.10 09:23
(4)
> вначале проверял присутствие в конфигурации необходимых метаданных
хех, у меня также возникла эта мысль вчера, после прочтения твоего поста
6. Андрей Григорьев (Borisych) 02.08.10 14:56
Также товарищи, в качестве комментария можно указывать число (или релиз как типовые конфиги - например, 1.0.1, 1.0.5, преобразовывать его в число 101, 105 и сравнивая - определить, данная версия обработки более свежая чем используемая или нет)
7. Александр Журавлев (apostal86) 22.09.11 11:22
Респект, буду пользоваться с удовольствием))
8. Валерий (warenic) 11.10.11 15:39
Оченно пользительный материал. Спасибо.
9. Андрей Григорьев (Borisych) 04.11.11 01:19
10. Anna Babynina (orsprog) 20.11.11 20:59
Респект, буду пользоваться с удовольствием)) много интересных задач позволяют получить широкие познания
альтруизм позволяет помогать новичкам и товарищам в решении интересных задач
Borisych; +1 Ответить
11. itt (itt) 21.11.11 18:02
огромное спасибо за видеоурок, но с правильностью набора текста Вам надо что то делать! Видео можно было бы ужать процентов на 30.. ))))
12. Андрей Григорьев (Borisych) 21.11.11 22:51
(11) это НЕ коммерческий продукт, itt
13. Евгений Степанов (Evgeny-st) 24.01.12 15:18
Спасибо, большое! Очень ценная вещь!
14. Андрей Григорьев (Borisych) 24.01.12 22:52
пожалуйста! надеюсь на следующей неделе сделать пример для подсистемы БСП
15. Анатолий Васильченко (zveruga56) 20.07.12 13:00
Спасибо за шаблон! Уже прикручиваем!
16. Андрей Григорьев (Borisych) 20.07.12 13:13
17. Ak A (frc) 20.07.12 13:17
(1) Borisych,
код к чему прилагается?
18. Андрей Григорьев (Borisych) 20.07.12 13:37
(17) frc, код формы, назначенной основной для внешней печатной формы. иногда лениво скачивать, чтобы просмотреть фишки обработки, а так - всё понятно
19. Ak A (frc) 20.07.12 13:40
(18) Borisych,
а, ну так пометили бы в статье об этом :)
это действительно удобно.
20. Вадим Назаров (NazarovV) 18.10.12 15:37
спасибо большое, особенно за видео!просто и понятно, пригодилось\ться на практике!
21. Андрей Григорьев (Borisych) 19.10.12 08:26
(20) NazarovV, пользуйтесь, коллеги. Присылайте запросы на уже готовые решения - вдруг найдется?
22. Вадим Назаров (NazarovV) 19.10.12 09:23
(21) Borisych, ну я вот что сделал! правда не думаю что кому то будет полезно.. специфично сказать - ничего не сказать! http://infostart.ru/public/157142/
23. Dmitry -- (Zerkon) 20.11.12 09:18
Хочу поблагодарить за профессиональный подход к делу )) Сам все время своих коллег заставляю делать все через внешки, как печатные формы, так и всякие довески. Материал хорошо изложен, теперь буду использовать его для примера. Отдельно спасибо за механизм авторегистрации, самому не было времени разбирать типовое решение.
24. Андрей Григорьев (Borisych) 20.11.12 09:48
(23) Zerkon, Спасибо за приятные слова!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа