подмена формы документа формой внешней обработки (УФ)

1. odekolon 26.12.13 16:15 Сейчас в теме
Имеется потребность в том, чтобы подменить упр. форму объекта документа упр. формой внешней обработки.

Есть 2 идеи:
1. Использовать обработчик "ОбработкаПолученияФормы". В случае использования обработки конфигурации указанная задача решается без проблем, а с внешней не получается (заранее подключать внешнюю обработку я не забываю). Вообще возможно подменить при помощи этого обработчика форму документа формой внешней обработки?
2. Создать некоторую форму объекта. В обработчике формы "ПриОткрытии" открывать нужную мне форму внешней обработки.

Второе решение не очень нравится по понятным причинам.

Может кто-то поделится своими идеями?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DeniNikitin 36 26.12.13 16:18 Сейчас в теме
(1) odekolon,
А чем не нравиться идея рисуешь и создаёшь форму во внешней, потом при закрытии или по кнопке создаёшь документ программно и заполняешь все реквизиты!
3. DeniNikitin 36 26.12.13 16:20 Сейчас в теме
(1) odekolon,
У меня например нарисована форма кассира отдельная для столовой во внешней обработке по кнопке закрыть выполняется код:
	ДокументЗП = Документы.ПитаниеСотрудниковПодЗП.СоздатьДокумент();
	
	ЧекСотрудника = ТабДокумент;
	
	Макет = Обработки.РабочийСтолКассира.ПолучитьМакет("ЧекСотрудника");
	
	ДокументЗП.Дата = ТекущаяДата();
	ДокументЗП.Ответственный = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойОтветственный");
	ДокументЗП.Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяОрганизация");
	ДокументЗП.ТабельныйНомер = Объект.ТабельныйНомер;
	ДокументЗП.Склад = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойСклад");
	
	Если Парам = 2 Тогда
		ДокументЗП.Представительские = ИСТИНА;	
	КонецЕсли;
	
	ОбластьЧека = Макет.ПолучитьОбласть("Заголовок");
	ОбластьЧека.Параметры.Организация = ДокументЗП.Организация;
	ОбластьЧека.Параметры.Сотрудник = ДокументЗП.ТабельныйНомер;
	ОбластьЧека.Параметры.Дата = ДокументЗП.Дата;
	
	Сумма = Объект.НажатиеКнопок.Итог("Сумма");
	
	Руб=Цел(Сумма);
	Коп=ОКР(100*(Сумма-Руб),0,1);
	СуммаРубКоп=""+Руб+" руб. "+Цел(Коп/10)+(Коп-10*Цел(Коп/10))+" коп.";
	
	ОбластьЧека.Параметры.Сумма = СуммаРубКоп;
	ОбластьЧека.Параметры.Табельный = "Таб № - " + СокрЛП(ДокументЗП.ТабельныйНомер.Код);
	ОбластьЧека.Параметры.Подразделение = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновноеПодразделениеОрганизации");
	
	ЧекСотрудника.Вывести(ОбластьЧека);
	
	Для Каждого Строка Из Объект.НажатиеКнопок Цикл
		НоваяСтрока = ДокументЗП.Товары.Добавить();
		НоваяСтрока.Номенклатура = Строка.Наименование;
		НоваяСтрока.СерияНоменклатуры = Строка.СерияНоменклатуры;
		НоваяСтрока.Количество = Строка.Количество;
		НоваяСтрока.Цена = Строка.Цена;
		НоваяСтрока.Сумма = Строка.Сумма;
	КонецЦикла;
	
	ДокументЗП.Записать(РежимЗаписиДокумента.Проведение);
Показать
4. Восьмой 88 26.12.13 16:21 Сейчас в теме
(1) odekolon, да можно сделать что-то подобное могу скинуть пример
6. odekolon 26.12.13 16:24 Сейчас в теме
(4) Восьмой, скиньте пример, если можно!
7. Восьмой 88 26.12.13 16:29 Сейчас в теме
(6) odekolon, на деревню дедушки скинуть?)
9. odekolon 26.12.13 16:33 Сейчас в теме
(7) Восьмой, почту указал в личке!
14. odekolon 26.12.13 17:06 Сейчас в теме
(7) Восьмой, большое спасибо за пример, однако без реализации второй моей идеи это работать не будет, иначе придется везде, где имеет место открытие или создание документа, нужно писать свой код.
15. Восьмой 88 26.12.13 17:08 Сейчас в теме
(14) odekolon, ну так создай обработку и забей туда форму с основным реквизитом объекта и дергай ее оттуда
механизму пофиг откуда брать форму лишь бы основной реквизит соответсвовал типу открываемого объекта
10. DeniNikitin 36 26.12.13 16:33 Сейчас в теме
(4) Восьмой,
И мне можно!
5. odekolon 26.12.13 16:22 Сейчас в теме
Мне необходимо, чтобы форма внешней обработки использовалась и при открытии существующего документа. А открытие может быть вызвано откуда угодно, скажем при нажатии соотв. гиперссылки на какой-либо форме.
8. DeniNikitin 36 26.12.13 16:30 Сейчас в теме
(5) odekolon,

С встроенными обработками можно но только не ПриОткрытии, а ПриСозданииНаСервере, а вот насчёт внешней точно не скажу!
11. odekolon 26.12.13 16:35 Сейчас в теме
(8) DeniNikitin, открыть упр. форму можно только на клиенте. Потому речь идет как раз об обработчике "ПриОткрытии".
12. DeniNikitin 36 26.12.13 16:44 Сейчас в теме
(11) odekolon,
Может у меня другой случай я программно заполняю форму кнопками и.т.д.!
13. odekolon 26.12.13 16:51 Сейчас в теме
Случай однозначно другой! У нас используется своя конфигурация на основе типовой. Много "своих" документов, функционал которых довольно часто меняется (по многим причинам). Хочу вынести формы документов во внешние обработки, чтобы можно было выкладывать их "с пылу в жару" (без динамического обновления).
17. DeniNikitin 36 26.12.13 18:03 Сейчас в теме
(13) odekolon,
Ну да! Найдёшь решение отпишись интересно!
16. odekolon 26.12.13 17:20 Сейчас в теме
Это я и собирался сделать!
Вопрос состоял в элегантности вызова внешней обработки!
Очень хотелось реализовать подмену формы при помощи обработчика "ОбработкаПолученияФормы", а не вызова из формы списка...
18. Восьмой 88 26.12.13 18:05 Сейчас в теме
(16) odekolon, так я же пример скинул)) я Уфу пока слабо знаю а что не получается с ОбработкаПолученияФормы ??? через ВнешниеОтчетыМенеджер подключаешь?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот