0. dsdred 1220 29.07.19 09:30 Сейчас в теме

БСП: Дополнительные отчеты и обработки - одна обработка, несколько форм

Как в одной дополнительной обработке разместить несколько форм с типом команды "ОткрытиеФормы"?

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. A_Max 17 29.07.19 13:53 Сейчас в теме
Первым в голову пришёл именно второй вариант с формой маршрутизатором, ничего крамольного в нём не вижу.
fvadim; eden_gmail; ltfriend; +3 Ответить
2. dsdred 1220 29.07.19 13:57 Сейчас в теме
(1)Ну не знаю, мне как то не по душе ))
3. A_Max 17 29.07.19 15:12 Сейчас в теме
(2) До того как появилась возможность переопределения форм (ОбработкаПолученияФормы) в типовых конфигурациях повсеместно использовалось для документов.
4. KazanKokos 8 30.07.19 09:38 Сейчас в теме
помню форму sbis - отчетности для УТ11.2 построенную на формах вроде по такому же алгоритму. Помню был гимор. Сам считаю что стиль это как нотация - привыкаешь к стилю типовых 1Сок и не паришься не выдумываешь всякую фигню :)
5. ltfriend 408 30.07.19 10:31 Сейчас в теме
Именно второй вариант первый и приходит на ум, вместо того, чтобы лезть и менять код БСП. Что в нём извращённого? Только я использовал бы тип команды "Вызов клиентского метода". Тогда в модуле основной формы достаточно одной процедуры вместо двух ("ПриСозданииНаСервере" и "ПриОткрытии").
Создаётся пустая форма без всяких реквизитов и параметров и в модуле этой формы прописывается код:
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
    НазваниеФормы = ПолучитьФормуПоИндентификатору(ИдентификаторКоманды);
    ОткрытьФорму(НазваниеФормы);
КонецПроцедуры
SlavaKron; A_Max; +2 Ответить
6. dsdred 1220 30.07.19 13:03 Сейчас в теме
(5)мне честно говорю не очень нравится ))

Я сделал
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
		
	НазваниеФормы = ПолучитьФормуПоИндентификатору(Параметры.ИдентификаторКоманды);	

	//Если нужны еще параметры дописываем тут
	ПараметрыОбработки = Новый Структура("ИдентификаторКоманды, ДополнительнаяОбработкаСсылка, ИмяФормы, КлючСессии");
	ПараметрыОбработки.ИдентификаторКоманды          = Параметры.ИдентификаторКоманды;
	ПараметрыОбработки.ДополнительнаяОбработкаСсылка = Параметры.ДополнительнаяОбработкаСсылка;
	ПараметрыОбработки.ИмяФормы   = Параметры.ИмяФормы;
	ПараметрыОбработки.КлючСессии = Параметры.КлючСессии;
		
КонецПроцедуры
Показать
и
ОткрытьФорму(НазваниеФормы, ПараметрыОбработки,ВладелецФормы);


Чтобы полностью имитировать Процедура ВыполнитьОткрытиеФормыОбработки

Процедура ВыполнитьОткрытиеФормыОбработки(ВыполняемаяКоманда, Форма, ОбъектыНазначения) Экспорт
	ПараметрыОбработки = Новый Структура("ИдентификаторКоманды, ДополнительнаяОбработкаСсылка, ИмяФормы, КлючСессии");
	ПараметрыОбработки.ИдентификаторКоманды          = ВыполняемаяКоманда.Идентификатор;
	ПараметрыОбработки.ДополнительнаяОбработкаСсылка = ВыполняемаяКоманда.Ссылка;
	ПараметрыОбработки.ИмяФормы                      = ?(Форма = Неопределено, Неопределено, Форма.ИмяФормы);
	ПараметрыОбработки.КлючСессии = ВыполняемаяКоманда.Ссылка.УникальныйИдентификатор();

//...

	ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма", ПараметрыОбработки, Форма);

//...
Показать


Но еще раз повторюсь, решение мне не нравится. Но это сугубо мое ощущение.
7. Cyberhawk 114 24.09.19 16:38 Сейчас в теме
Если вместо "Закрыть" взводить отказ, то заметного глазу мелькания формы распределения быть не должно
8. dsdred 1220 24.09.19 21:34 Сейчас в теме
(7)Согласен, можно так:
//Закрываем форму "ФормаРаспределения"
//Закрыть();
Отказ = Истина;
9. ShootNICK 13 16.10.19 14:42 Сейчас в теме
в БП3 так (открытие из формы по умолчанию) было для некоторых документов, потом добавили в менеджер ОбработкаПолученияФормы и ура.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Консультант 1 С
Краснодар
зарплата от 50 000 руб. до 150 000 руб.
Полный день

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

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