0. kirlog 79 23.05.12 13:55 Сейчас в теме

Как открыть форму внешней обработки из другой формы внешней обработки. 8.2. Управляемый режим.

Обсуждений на эту тему достаточно много, но окончательного ответа на вопрос, как открыть одну форму внешней обработки из другой в управляемом режиме, я не нашел.
Решил разместить свое решение.

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

Комментарии
Избранное Подписка Сортировка: Древо
1. maddy 17 23.05.12 17:12 Сейчас в теме
На ИТС есть статья "Как программно открыть внешнюю обработку?". Там даже подробнее все описано.
2. kirlog 79 23.05.12 17:42 Сейчас в теме
Статью читал. Там написано как программно открыть внешнюю обработку. Но не написано, как из самой внешней обработки открыть вторую форму этой же внешней обработки.

В статье сказано, что для того, чтобы программно открыть внешнюю обработку, нужно знать полное имя ее файла.
В нашей ситуации мы его не знаем. Пользователь может положить внешнюю обработку в любой каталог.

Многих ставит в тупик тот факт, что не существует штатных средств узнать полное имя файла обработки из нее самой.
Я демонстрирую, как это можно сделать с помощью WScript.Shell
jobkostya1c8; truba; SirYozha; +3 Ответить
3. Danil.Potapov 23.05.12 17:55 Сейчас в теме
ВнешняяОбработкаОбъект.ИспользуемоеИмяФайла
4. Поручик 4333 23.05.12 18:05 Сейчас в теме
(3) Ответ неверный. Это для обычной формы.
5. Danil.Potapov 23.05.12 18:11 Сейчас в теме
(4) Поручик,
ответ верный, используй &НаСервере и РеквизитФормыВЗначение()
truba; SirYozha; +2 Ответить
6. kirlog 79 23.05.12 18:27 Сейчас в теме
Точно!

&НаСервере
....
РеквизитФормыВЗначение("Объект").ИспользуемоеИмяФайла
....

Можно и без WScript обойтись.

Меня смутило, что синтакс-помощнике написано:

ВнешняяОбработка (ExternalDataProcessor)
ИспользуемоеИмяФайла (UsedFileName)
Использование:Только чтение.
Описание: Тип: Строка. Содержит полное имя файла внешней обработки.
Доступность: Толстый клиент.

Т.е., что на толстом клиенте доступно только.
7. Danil.Potapov 23.05.12 18:49 Сейчас в теме
(6) в справке к 8.2.15.310 указано, что сервер и толстый клиент
8. kirlog 79 23.05.12 19:02 Сейчас в теме
Да. Вижу. У меня подревнее платформа.
Спасибо.
9. Slon1c 06.12.12 17:23 Сейчас в теме
Не знаю... вот такая строка срабатывает без таких извращений.

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

где ФормаОсновныеСредства одна из форм внешней обработки заполнение ОС.
adhocprog; +1 Ответить
10. matashin 16.01.15 11:40 Сейчас в теме
(9) Это если обработка в конфе.
11. kirlog 79 16.01.15 13:21 Сейчас в теме
(9) Slon1c, для этого сначала обработка должна быть подключена к конфигурации через ВнешниеОбработки.Подключить
Это и демонстрируется в моем примере
12. UMM 56 15.03.19 02:47 Сейчас в теме
По-моему, всё гораздо проще:

&НаСервере
Функция ПолучитьИмяФормы()
Стр = СокрЛП(РеквизитФормыВЗначение("Объект")); //"ВнешняяОбработкаОбъект.Имя" или "ОбработкаОбъект.Имя"
ПутьКОбработке = СтрЗаменить(Стр,"Объект.", ".");
Возврат ПутьКОбработке+".Форма.ВыборДокументов");
КонецФункции

И неважно, внешняя обработка или встроенная
serg_gres; +1 Ответить
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Ведущий программист 1С
Омск
зарплата от 70 000 руб. до 110 000 руб.
Полный день

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

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

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

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день