Как открывать одну и ту же обработку в обычном и управляемом режиме?

1. 0dayMaja 08.12.15 13:28 Сейчас в теме
Подскажите.. есть обработка, для которой я создала обычную и управляемую форму. Обработка не встроена в конфигурацию, а открывается через Файл > Открыть. Будет использоваться в двух конфигурациях: БП 2.0 и БП 3.0.

Подскажите, как заставить открываться ее "правильно" - т.е. чтобы при запуске ее в БП 2.0 открывалась обычная форма, а в БП 3.0 - управляемая?

Сейчас я пока сделала так: основной формой назначила "обычную". Соответственно, под БП 2.0 все открывается хорошо. Теперь мне нужно при запуске под БП 3.0 открыть управляемую форму. Сам режим запуска я смогу отловить (через #Если ТонкийКлиент Тогда ... ), но - что дальше? Где перехватить и каким кодом прописать вызов управляемой формы вместо обычной при запуске под БП 3.0.?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Denis_CFO 49 08.12.15 13:42 Сейчас в теме
(1) 0dayMaja, здесь два варианта:
1. Создать дополнительную форму в обработке для ОФ (на вкладке дополнительно);
2. Форму сделать одну, но в свойствах конфигурации разрешить использовать обычные формы в управляемом приложении.

Первый вариант - самый надёжный и лучший.
diar01; markovki; +2 Ответить
9. Dnki 4 08.12.15 14:08 Сейчас в теме
(3) Denis_CFO, хочу поддержать тему. Вопрос и для меня актуален.

Denis_CFO писал "в свойствах конфигурации разрешить использовать обычные формы в управляемом приложении". Совершенно согласен, но с большой оговоркой:
После такой установки 1С открывает отчеты/обработки встроенные в конфигурацию.
Справедливо и для обратной ситуации: в обычном приложении открывать УФ.

С внешними все гораздо хуже: 1С открывает их в так называемом "Безопасном режиме". Отсюда и разница в поведении встроенных и внешних. Читал когда-то и ни черта не понял, зачем он, если обработка может что угодно удалить и записать.
Идея писать в одной обработке 2 формы не интересна 1) по затратности. 2) кажется не пройдет. 1С сама не выбирает "подходящую" форму. Будет тупо вызывать основную.

Была такая мысль: сделать в конфигурации обработку-вызывалку. Она открывается, в нее вводишь имя файла-обработки.
Вызывалка сначала дает команду УстановитьБезопасныйРежим(Ложь), потом открывает внешнюю обработку. Но руки не дошли проверить.
10. Denis_CFO 49 08.12.15 14:15 Сейчас в теме
(9) Dnki, согласен, что второй вариант лучше не применять. Но я рассказал, как можно сделать. Я не сомневаюсь, что если топик-стартер более полно опишет какой он (она) хочет результат в итоге, я уверен, что будет предложено ещё куча решений... А так "... каков поп, таков и приход..." (с) Народное.
PS. Кстати, про безопасный режим ещё даже руки не доходили... В основном работаю с ОФ (такая клиентура). И ещё - если автору нужно сделать один раз и надолго - то можно и две формы описать один раз время потратить.
13. Boneman 302 09.12.15 10:05 Сейчас в теме
(1) 0dayMaja, поменяй местами формы,
основная - управляемая,
дополнительная - обычная.

А вообще, я посмотрел сейчас, как это сделано в готовой обработке (Универсальный подбор и обработка объектов для обычного и управляемого приложения).
Пишутся 2 самодостаточных обработки, одна для управляемого приложения (со сведениями, регистрацией), другая для обычного..
далее, чтобы нам это объединить в одну,
в обработку на управляемых формах, добавляем обычную форму, и макет двоичных данных, в который пихается обработка от обычного приложения.
Далее, в добавленной обычной форме следующий код
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	Отказ = Истина;
	
	ОбработкаДвоичныеДанные = ПолучитьМакет("УниверсальныеПодборИОбработкаОбъектов");
	мИмяВременногоФайлаОбработки = ПолучитьИмяВременногоФайла("epf");
	ОбработкаДвоичныеДанные.Записать(мИмяВременногоФайлаОбработки);
	ВнешниеОбработки.ПолучитьФорму(мИмяВременногоФайлаОбработки).Открыть();
	УдалитьФайлы(мИмяВременногоФайлаОбработки);
	
КонецПроцедуры
Показать

собственно и все.

По умолчанию, всегда пытается открываться основная форма обработки, управляемая. В управляемых конфах, это происходит без проблем, и все работает.
В обычных формах, управляемая открыться не может, и открывается альтернативная, которая обычная, та в принципе извлекает обработку из макета, и запускает ее.
Все предельно просто и понятно.
Sean1s; sizeoff; usersed; YanTsys; +4 Ответить
2. BackinSoda 08.12.15 13:38 Сейчас в теме
Назначьте дополнительную (рядом вкладка с основной) форму в главном окне обработки вашу Управляемую форму
4. suvolod 28 08.12.15 13:42 Сейчас в теме
Тоже интересует. Попробовал сейчас воспроизвести ситуацию. Я не могу этого сделать.. поле выбора доп. формы недоступно
5. alljoke 08.12.15 13:49 Сейчас в теме
(4) Что за платформа? Что за конфигурация?
Да не суть конфа, платформа какая?
https://www.dropbox.com/s/hoqk4wj5n1e6bp0/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D­0%BE%D1%82%202015-12-08%2013.49.16.png?dl=0
всё норм
6. foxey 4 08.12.15 13:54 Сейчас в теме
(5) alljoke, интересно, а что Вы хотели показать на данном скриншоте?
14. Boneman 302 09.12.15 10:11 Сейчас в теме
(4) suvolod, видимо потому что, обработку пытаешся делать в како-то конфе для управляемого приложения.
Создай обработку, скажем, в бухне 2.0
и дополнительная форма будет доступна.
ITMS; UPSoft; akkorn; +3 Ответить
7. alljoke 08.12.15 13:55 Сейчас в теме
что у орбработки есть две формы - обычная и упарвляема. И платформа сама понимает какую отркывать в обычном интерфейсе или управляемом.
11. BurningChrome 212 08.12.15 15:05 Сейчас в теме
Обработку для 2.0 подключайте так же как и обычные обработки.
Обработку для 3.0 нужно дописать как написано на ИТС http://its.1c.ru/db/bspdoc#content:427:1 и подключать стандартным методом
12. foxey 4 08.12.15 15:11 Сейчас в теме
(11) BurningChrome, простите, а что там написано за ссылочкой? У меня нет доступа на ИТС-материалы.
15. petechkin 17.12.20 19:52 Сейчас в теме
Как сделал я
-Назначил УФ основной
-А для вызова Обычной формы в модуле обработки написал:
#Если ТолстыйКлиентОбычноеПриложение Тогда
	ЭтотОбъект.ПолучитьФорму("ОбычнаяФорма").Открыть();
#КонецЕсли

Всё!
Оставьте свое сообщение

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