КА 2.4
Клиент подключаются к базе через веб клиент, им нужны по нажатию строки в отчете скачать файлы. На тонком клиенте всё работает, на веб - не могу открыть диалоговое окно для выбора каталога. Пробовал устанавливать расширения на хром и фаерфокс, скачивал через программный код файлы расширения, через серию оповещений пытался вызвать это окно - никак.
Пожалуйста помогите с решением, уверен у кого то есть простейший пример.
---
Решение

```1c
    &НаКлиенте
    Процедура кнВыбратьКаталог(Команда)
    СтандартнаяОбработка = Ложь;
    ДополнительныеПараметры = Новый Структура;
    ДополнительныеПараметры.Вставить("ВыборЗавершение", Новый ОписаниеОповещения("ВложениеВыборЗавершение", ЭтотОбъект));
    Оповещение = Новый ОписаниеОповещения("НачатьПодключениеРасширенияРаботыСФайламиЗавершение", ЭтотОбъект, ДополнительныеПараметры);
    НачатьПодключениеРасширенияРаботыСФайлами(Оповещение);
    КонецПроцедуры

    &НаКлиенте
    Процедура НачатьПодключениеРасширенияРаботыСФайламиЗавершение(Подключено, ДополнительныеПараметры) Экспорт
    Если Не Подключено Тогда
    Оповещение = Новый ОписаниеОповещения("НачатьУстановкуРасширенияРаботыСФайламиЗавершение", ЭтотОбъект, ДополнительныеПараметры);
    ТекстСообщения = НСтр("ru='Для продолжении работы необходимо установить расширение для веб-клиента "1С:Предприятие". Установить?'");
    ПоказатьВопрос(Оповещение, ТекстСообщения, РежимДиалогаВопрос.ДаНет);
    Иначе
    ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ВыборЗавершение);
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура НачатьУстановкуРасширенияРаботыСФайламиЗавершение(Результат, ДополнительныеПараметры) Экспорт
    Если Результат = КодВозвратаДиалога.Да Тогда
    НачатьУстановкуРасширенияРаботыСФайлами(ДополнительныеПараметры.ВыборЗавершение);
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура ВложениеВыборЗавершение(ДополнительныеПараметры, ДопПараметр) Экспорт
    НачатьПолучениеКаталогаДокументов(Новый ОписаниеОповещения("КаталогДокументовЗавершение", ЭтотОбъект));
    КонецПроцедуры

    &НаКлиенте
    Процедура КаталогДокументовЗавершение(ИмяКаталогаДокументов, ДополнительныеПараметры) Экспорт
    Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    ОписаниеОп=новый ОписаниеОповещения("КаталогВыбран", ЭтотОбъект);
    Диалог.Показать(ОписаниеОп);
    КонецПроцедуры

    &НаКлиенте
    Процедура КаталогВыбран(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
    Если ВыбранныеФайлы<>Неопределено и ВыбранныеФайлы.Количество()>0 Тогда
    Сообщить(ВыбранныеФайлы[0]);
    КонецЕсли;
    КонецПроцедуры
```
---
расширение работы с файлами нужно еще и подключить.
https://forum.infostart.ru/forum9/topic152661/
---
да, пробовал по этой теме - не получилось. 5-7 вызывающих друг друга процедур, но диалогового окна так и нет.
---
посмотреть расширение в браузере, может оно выключено и его просто включить нужно.
---
проверил, включен со всеми правами(к диску и буферу обмена)
---
тогда показывайте код
---
его ещё нужно написат, сейчас пробую (10) но я не могу выбрать каталог, на тонком клиенте выбирает файл. Веб интерфейс смогу проверить вечером, но пока нужно добиться корректной работы хотя бы на тонком клиенте.
---
а с какой ошибкой диалог выбора файла отваливается?
просто - ДиалогВыбораФайла.Выбрать()
---
ДиалогВыбораФайла.Выбрать()

ошибки нет, просто ничего не происходит. Отладкой к сожалению пройтись нельзя.
---
НачатьПомещениеФайла(<ОписаниеОповещенияОЗавершении>, <Адрес>, <НачальноеИмяФайла>, <Интерактивно>, <УникальныйИдентификаторФормы>)
---
почитал СП - мало что понял, есть пример со всеми подключениями модулей работы с файлами и т.п.?
---
вопрос актуальный, если есть примеры и догадки - напишите сюда.
---
Примерно так, работоспособность не проверял

```1c
    &НаКлиенте
    Процедура ЗагрузитьДанные(Команда)

    АдресФайлаВоВременномХранилище = ";

    ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьДанныеЗавершение", ЭтотОбъект);
    НачатьПомещениеФайла(ОписаниеОповещения, АдресФайлаВоВременномХранилище, Нстр("ru = 'Файл выгрузки'"),, УникальныйИдентификатор);

    КонецПроцедуры

    &НаКлиенте
    Процедура ЗагрузитьДанныеЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт

    Если Результат Тогда

    ДвоичныеДанные = Новый ДвоичныеДанные();
    ДвоичныеДанные.Записать(ВыбранноеИмяФайла);

    КонецЕсли;

    КонецПроцедуры
```
---
можете рассказать подробнее как выбрать каталог?
---
Корректно отработало в тонком клиенте. Вечером протестирую на веб.
Если что-то сделал и не так и можно сделать правильнее/проще напишите пожалуйста.

```1c
    &НаКлиенте
    Процедура кнВыбратьКаталог(Команда)
    СтандартнаяОбработка = Ложь;
    ДополнительныеПараметры = Новый Структура;
    ДополнительныеПараметры.Вставить("ВыборЗавершение", Новый ОписаниеОповещения("ВложениеВыборЗавершение", ЭтотОбъект));
    Оповещение = Новый ОписаниеОповещения("НачатьПодключениеРасширенияРаботыСФайламиЗавершение", ЭтотОбъект, ДополнительныеПараметры);
    НачатьПодключениеРасширенияРаботыСФайлами(Оповещение);
    КонецПроцедуры

    &НаКлиенте
    Процедура НачатьПодключениеРасширенияРаботыСФайламиЗавершение(Подключено, ДополнительныеПараметры) Экспорт
    Если Не Подключено Тогда
    Оповещение = Новый ОписаниеОповещения("НачатьУстановкуРасширенияРаботыСФайламиЗавершение", ЭтотОбъект, ДополнительныеПараметры);
    ТекстСообщения = НСтр("ru='Для продолжении работы необходимо установить расширение для веб-клиента "1С:Предприятие". Установить?'");
    ПоказатьВопрос(Оповещение, ТекстСообщения, РежимДиалогаВопрос.ДаНет);
    Иначе
    ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ВыборЗавершение);
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура НачатьУстановкуРасширенияРаботыСФайламиЗавершение(Результат, ДополнительныеПараметры) Экспорт
    Если Результат = КодВозвратаДиалога.Да Тогда
    НачатьУстановкуРасширенияРаботыСФайлами(ДополнительныеПараметры.ВыборЗавершение);
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура ВложениеВыборЗавершение(ДополнительныеПараметры, ДопПараметр) Экспорт
    НачатьПолучениеКаталогаДокументов(Новый ОписаниеОповещения("КаталогДокументовЗавершение", ЭтотОбъект));
    КонецПроцедуры

    &НаКлиенте
    Процедура КаталогДокументовЗавершение(ИмяКаталогаДокументов, ДополнительныеПараметры) Экспорт
    Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
    Диалог = Новый ДиалогВыбораФайла(Режим);
    Если Диалог.Выбрать() Тогда
    Сообщить(Диалог.Каталог+"\");
    КонецЕсли;
    КонецПроцедуры
```
---
на веб клиенте не работает, именно последняя процедура "КаталогДокументовЗавершение", ошибка "использование синхронных методов на клиенте запрещено".
Кто сможет помочь?
---
Решение

```1c
    &НаКлиенте
    Процедура кнВыбратьКаталог(Команда)
    СтандартнаяОбработка = Ложь;
    ДополнительныеПараметры = Новый Структура;
    ДополнительныеПараметры.Вставить("ВыборЗавершение", Новый ОписаниеОповещения("ВложениеВыборЗавершение", ЭтотОбъект));
    Оповещение = Новый ОписаниеОповещения("НачатьПодключениеРасширенияРаботыСФайламиЗавершение", ЭтотОбъект, ДополнительныеПараметры);
    НачатьПодключениеРасширенияРаботыСФайлами(Оповещение);
    КонецПроцедуры

    &НаКлиенте
    Процедура НачатьПодключениеРасширенияРаботыСФайламиЗавершение(Подключено, ДополнительныеПараметры) Экспорт
    Если Не Подключено Тогда
    Оповещение = Новый ОписаниеОповещения("НачатьУстановкуРасширенияРаботыСФайламиЗавершение", ЭтотОбъект, ДополнительныеПараметры);
    ТекстСообщения = НСтр("ru='Для продолжении работы необходимо установить расширение для веб-клиента "1С:Предприятие". Установить?'");
    ПоказатьВопрос(Оповещение, ТекстСообщения, РежимДиалогаВопрос.ДаНет);
    Иначе
    ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ВыборЗавершение);
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура НачатьУстановкуРасширенияРаботыСФайламиЗавершение(Результат, ДополнительныеПараметры) Экспорт
    Если Результат = КодВозвратаДиалога.Да Тогда
    НачатьУстановкуРасширенияРаботыСФайлами(ДополнительныеПараметры.ВыборЗавершение);
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура ВложениеВыборЗавершение(ДополнительныеПараметры, ДопПараметр) Экспорт
    НачатьПолучениеКаталогаДокументов(Новый ОписаниеОповещения("КаталогДокументовЗавершение", ЭтотОбъект));
    КонецПроцедуры

    &НаКлиенте
    Процедура КаталогДокументовЗавершение(ИмяКаталогаДокументов, ДополнительныеПараметры) Экспорт
    Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    ОписаниеОп=новый ОписаниеОповещения("КаталогВыбран", ЭтотОбъект);
    Диалог.Показать(ОписаниеОп);
    КонецПроцедуры

    &НаКлиенте
    Процедура КаталогВыбран(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
    Если ВыбранныеФайлы<>Неопределено и ВыбранныеФайлы.Количество()>0 Тогда
    Сообщить(ВыбранныеФайлы[0]);
    КонецЕсли;
    КонецПроцедуры
```
---
БСП для типовых конфигураций

```1c
    ОбменДаннымиКлиент.ОбработчикВыбораФайловогоКаталога(Объект, "ИмяФайлаВыгрузки", Ложь);
```
---
Если БСП, то ФайловаяСистемаКлиент.ВыбратьКаталог(Оповещение, "Заголовок")