Из модуля объекта внешней обработки вызвать диалог открытия файла

1. iott 15.02.18 10:13 Сейчас в теме
Всем привет!
Платформа 1С 8.3.10.2580
Самописная конфигурация на БСП 2.4.4....
В модуле внешней обработки есть экспортная процедура.
В теле этой процедуры необходимо получить полный путь к фалу для дальнейших манипуляций на сервере.

Вопрос: как из модуля объекта (внешняя обработка) вызвать диалог выбора файла для получения полного пути?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
12. kild 89 15.02.18 23:47 Сейчас в теме
(1)
ДиалогВыбораФайла (FileDialog)
Доступность:
Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).

Клиентские процедуры из серверных нельзя вызывать, только наоборот.

В модуле внешней обработки есть экспортная процедура

В вашем случае для вашей внешней обработки используйте
 НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
 НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода();

Ваш код выполняйте на форме обработки. На клиенте получайте диалог выбора файла и вызывайте нужные экспортные процедуры из модуля объекта с переданным путем файла.
2. Alexei_Siva 183 15.02.18 10:16 Сейчас в теме
Очевидно, что никак. Полный путь надо получать в форме на клиенте и передавать его на сервер.
3. iott 15.02.18 10:19 Сейчас в теме
(2) Спасибо за внимание! Получается как буд-то нужно из модуля объекта открыть форму, в которой выбрать файл и которая вернет путь к файлу, верно?
4. Octopus 337 15.02.18 10:23 Сейчас в теме
В общем случае полного пути, полученного на стороне клиента, вам будет мало. Т.к. файловая система сервера <> файловая система клиента, это могут быть физически разные машины. Так что путь клиента (типа "C:\Temp\file.txt") на сервере попросту может не существовать.

Для УФ алгоритм такой:
1. Выбор файла на клиенте (из формы)
2. Помещение его двоичных данных в хранилице
3. Передача на сервер адреса хранилища
4. Извлечение на сервере двоичных данных

Для частных случаев (небольшой текстовый файл, к примеру), лучше "высосать" все из файла на клиенте и отдать серверу сами "внутренности"
5. iott 15.02.18 10:29 Сейчас в теме
(4) Руслан, спасибо за внимание!
Мне известно, что при клиент-серверном варианте пути к файлу могут быть разные. Передавать файл с клиента на сервер тоже не предполагается, так как физически это будет на одном компьютере.
Решение этой задачи не предполагает постоянного использования - только для тестирования.
База только файловая. Файл лежи локально в каталоге.
Вызывается экспортная процедура модуля обработки в теле которой происходит вызов формы где пользователь должен указать файл, а форма должна вернуть путь к файлу на сервер.
7. Octopus 337 15.02.18 10:37 Сейчас в теме
(5) Такой финт ушами сработает только в обычных формах. На УФ диалог выбора файла в модуле объекта не запустится. Вызвать его можно только на клиенте (из формы обработки), так что вам придется вызвать его там и передать путь на сервер параметром вашей экспортной процедуры.
6. iott 15.02.18 10:36 Сейчас в теме
Хорошо....
Есть экспортная процедура "ВыполнитьОбработку" в модуле объекта внешней обрабобтки.
Обработка содержит форму для выбора файла.

Как в экспортной процедуре открыть форму для выбора файла?

Обработка не запускается явно (Меню Файл - Открыть...."), она вызывается из другого модуля (на сервере) путем вызова экспортной процедуры "ВыполнитьОбработку()".
8. Octopus 337 15.02.18 10:39 Сейчас в теме
(6)
Как в экспортной процедуре открыть форму для выбора файла?

Никак. Меняйте логику решения
9. iott 15.02.18 10:45 Сейчас в теме
(8) Может попробовать запустить 1С в режиме "Толстого клиента" или "поиграть" с директивами препроцессора?
10. Octopus 337 15.02.18 10:50 Сейчас в теме
(9) Модуль объекта заведомо серверный. Это не общий модуль, где можно поставить галку "Клиент". Ругаться будет уже при попытке создания такого объекта как диалог выбора файла. Режим клиента и директивы препроцессора вас не спасут. Все "сломается" еще даже на этапе проверки синтаксиса.
Rafaraf; Roman_Loginov; iott; +3 Ответить
11. iott 15.02.18 10:52 Сейчас в теме
(9) блин точно.....туплю уже. Руслан, спасибо!
Оставьте свое сообщение

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