Как во внешней обработке открыть форму выбора? Код.

1. Shecurok 25.04.19 11:46 Сейчас в теме
Приветствую всех!

Дали задание доделать обработку внешнюю, чтоб сначала открывалась форма выбора комиссии. Сама форма уже есть написанная, осталось понять как её вывести перед открытием обработки.

Пытался через код
Процедура ПередОткрытием
         #Если Клиент Тогда
	          ПолучитьФорму("ФормаВыбора").ОткрытьМодально();
	#КонецЕсли
КонецПроцедуры


Не выводит. Ошибок не пишет никаких, но и сразу открывается основная форма. Если писать без
#Если Клиент Тогда
то будет вылезать ошибка "Интерактивные действия не доступны".

Также пробовал через
ОткрытьФорму("ВнешняяОбработка.АктСписания.Форма.ФормаВыбора", Новый Структура("РежимВыбора, МножественныйВыбор, Отбор", Истина, Истина), ЭтотОбъект);

Пишет
"Процедура или функция с указанным именем не определена (ОткрытьФорму)"


В программировании совсем недавно, пытаюсь вот совладать с этим.

Делаю под управляемые формы.

Какой код здесь нужен?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
17. Shecurok 25.04.19 15:08 Сейчас в теме
Решение не моё! а Pavel Rodinchenko
в модуле ФОРМЫ СПИСКА документа требование накладная, в процедуре «Подключаемый_ВыполнитьКоманду» проверять на имя своей команды

Если Команда.Имя = "ПодменюПечатьОбычное_АктСписанияВнешний" Тогда

// открывать форму

// заполнить комиссию в ТЧ обработки

// заполнить комиссию в ТЧ документа

КонецЕсли;



И уже полученные значения хранить, но все дело в том, что тебе придется перезаписывать документ. А если хочешь именно для печатной формы самой это сделать, то я бы делал следующий образом: поискал бы возможность, чтобы отключить проверку на проведенность документа, потом делал бы действия описанные выше.

Это если конфигурация снята с поддержки.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. spacecraft 25.04.19 12:14 Сейчас в теме
(1) для начала определиться с контекстом.
ПередОткрытием и Управляемые формы несовместимы.
2. user-z99999 67 25.04.19 11:49 Сейчас в теме
Код ниже похож на рабочий. Запускай его из места, где директива компиляции &НаКлиенте
ОткрытьФорму("ВнешняяОбработка.КуКу.Форма.ФормаВыбора", Новый Структура("РежимВыбора, МножественныйВыбор, Отбор", Истина, Истина), ЭтотОбъект);
3. Shecurok 25.04.19 11:54 Сейчас в теме
(2)
&НаКлиенте

А это в форме выбора этой или в модуле обработки? Если второе, то при написании обработки "&НаКлиенте" нигде не использовалась. Там просто сплошной текст.
4. user-z99999 67 25.04.19 11:57 Сейчас в теме
(3)
при написании обработки &НаКлиенте нигде не использовалась

Наверно у вас обычные форма, а не управляемые.

Тогда на форме обработки создай кнопку.
ОткрытьФорму("ВнешняяОбработка.КуКу.Форма.ФормаВыбора"

Как форма внешней обработки называется ? КуКу ?
Посмотри какие формы созданы для обработки. Среди них есть форма с названием ФормаВыбора?
5. Shecurok 25.04.19 12:01 Сейчас в теме
(4) Нет, у меня именно УФ. Обработка для БП 3.0. Обработка называется Акт списания, уже в первом соо исправил. Создана форма для нее только одна: ФормаВыбора, что мне и нужна.
6. Pavel Rodinchenko 25.04.19 12:05 Сейчас в теме
Может попробовать через подписку на событие? Подменять открываемую форму по умолчанию на ту, которая необходима
7. Shecurok 25.04.19 12:07 Сейчас в теме
(6) К сожалению не знаю как делать подписку. Да и плюс внешняя обработка будет использоваться не только на этой базе.
9. Pavel Rodinchenko 25.04.19 12:15 Сейчас в теме
(7)
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Отказ = Истина;
	
	ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма1");
КонецПроцедуры
10. Shecurok 25.04.19 12:30 Сейчас в теме
(9)опять же, не могли бы вы подсказать где это писать. В модуле обработки?
11. Pavel Rodinchenko 25.04.19 12:39 Сейчас в теме
(10)У Вас есть обработка. В ней есть форма, назовем ее "Основная", которая открывается по умолчанию и вместо которой Вам необходимо открыть форму для выбора комиссии, пусть называется "Комиссия".

Открываем форму "Основная", в самом низу формы есть вкладка "Модуль". Открываем ее. Там будут процедуры, Вас будет интересовать процедура "ПриОткрытии". Если ее нет, то ее необходимо создать. Для этого внизу формы нажимаем на закладку "Форма". Открываем свойства формы. В появившемся окне находим "События" - "ПриОткрытии" - нажимаем на значок с лупой, выбираем &НаКлиенте, далее перед Вами откроется процедура, которую я описал выше.
12. Pavel Rodinchenko 25.04.19 12:40 Сейчас в теме
14. Shecurok 25.04.19 13:39 Сейчас в теме
(12) Самое интересное, "Основной" формы нет.
Весь код написан в модуле обработки и ссылается на макет печатной формы. Можно как нибудь Вам отправить свою обработку, что посмотрели своими глазами?) Сюда прикреплять не хочу.
15. Pavel Rodinchenko 25.04.19 13:55 Сейчас в теме +0.5 $m
(14)моя почта pavel.rodinchenko@gmail.com
16. Shecurok 25.04.19 13:58 Сейчас в теме
13. starik-2005 3039 25.04.19 12:56 Сейчас в теме
(0) в модуле формы в процедуре ПриОткрытии каким-то таким вот образом: https://infostart.ru/public/675208/
17. Shecurok 25.04.19 15:08 Сейчас в теме
Решение не моё! а Pavel Rodinchenko
в модуле ФОРМЫ СПИСКА документа требование накладная, в процедуре «Подключаемый_ВыполнитьКоманду» проверять на имя своей команды

Если Команда.Имя = "ПодменюПечатьОбычное_АктСписанияВнешний" Тогда

// открывать форму

// заполнить комиссию в ТЧ обработки

// заполнить комиссию в ТЧ документа

КонецЕсли;



И уже полученные значения хранить, но все дело в том, что тебе придется перезаписывать документ. А если хочешь именно для печатной формы самой это сделать, то я бы делал следующий образом: поискал бы возможность, чтобы отключить проверку на проведенность документа, потом делал бы действия описанные выше.

Это если конфигурация снята с поддержки.
Оставьте свое сообщение

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