Всем привет, подскажите пожалуйста, какие методы нужно использовать и как построить код, чтобы человек на клиенте выбрал каталог и выгрузил все изображения из справочника. В коде я изображения получаю из Хранилища Значений и приходит от туда двоичные значения. Пробовал метод записать использовать, но не понимаю как организовать путь Каталога. Не ругайтесь если я чего то не понимаю, можно дать ссылки на литературу которая поможет решить вопрос. Я пишу функцию, в которой пишу запрос для получения двоичных данных картинки, после циклом добавляю значения в массив и возращаю массив в процедуру на клиенте. 2) Тут я должен по нажатию кнопки, открыть каталог для выбора сохранения, и я так понимаю от выбранного пути меняется переменная "Путь", но вот сам метод записать двоичных данных строиться циклом? То есть я обхожу массив и каждый его элемент и формирую запись по выбранному пути ?
---
Примерно так: (Дальше сам подгонишь)

```1c
    &НаСервере
    Функция ВыгрузитьНаДиск()

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 2
    | 0 КАК Расширение,
    | 0 КАК Ссылка,
    | 0 КАК ДанныеФайла
    |ИЗ 0
    | КАК 0

    Результат = Запрос.Выполнить().Выбрать();
    КоллекцияКартинок = новый Массив;

    Пока Результат.Следующий() Цикл
    СтруктураФайла = новый Структура;
    СтруктураФайла.Вставить("Данные",Результат.ДанныеФайла);
    СтруктураФайла.Вставить("Наименование", Строка(Результат.Ссылка));
    СтруктураФайла.Вставить("Расширение",Результат.Расширение);

    КоллекцияКартинок.Добавить(СтруктураФайла);

    КонецЦикла;

    Возврат КоллекцияКартинок;

    КонецФункции

    &НаКлиенте
    Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    КоллекцияКартинок = ВыгрузитьНаДиск();

    // Отказываемся от стандартной обработки процедуры
    СтандартнаяОбработка = Ложь;

    // Создаем диалог выбора каталога и указываем для чего он будет использоваться
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    // Задаем фильтр доступных расширений файлов для выбора
    //Диалог.Фильтр = НСтр("ru=’Книга Excel 97 (*.xls)|*.xls|Книга Excel 2007 (*.xlsx)|*.xlsx’"); // это если выбор файла, а не каталога
    // Задаем текст заголовка окна выбора
    Диалог.Заголовок = НСтр("ru=’Выберите каталог для сохранения’");
    // Создаем объект ОписаниеОповещения, который будет передан в метод Показать
    ОповещениеЗавершения = Новый ОписаниеОповещения("ВыборФайлаЗавершение", ЭтотОбъект, КоллекцияКартинок);
    // Открываем окно выбора файла
    Диалог.Показать(ОповещениеЗавершения);

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

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

    Если ВыбранныеФайлы = Неопределено Тогда
    //Сообщить("Каталог не выбран");
    Возврат;
    КонецЕсли;

    ПутьКаталога = Результат[0];

    Для каждого Файл из КоллекцияКартинок Цикл
    Файл.Записать( СтрШаблон("%1/%2.%3",ПутьКаталога,Файл.Наименование,Файл.Расширение);
    КонецЦикла;

    Если КоллекцияКартинок.Количество() Тогда
    ПоказатьОповещениеПользователя("Успешно сохранены картинки!",,ПутьКаталога,БиблиотекаКартинок.СформироватьОтчет)№
    КонецЕсли;

    КонецПроцедуры
```
---
какие методы нужно использовать и как построить кодНачни, пожалуй, с https://infostart.ru/edu/1353188/
---
Примерно так: (Дальше сам подгонишь)

```1c
    &НаСервере
    Функция ВыгрузитьНаДиск()

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 2
    | 0 КАК Расширение,
    | 0 КАК Ссылка,
    | 0 КАК ДанныеФайла
    |ИЗ 0
    | КАК 0

    Результат = Запрос.Выполнить().Выбрать();
    КоллекцияКартинок = новый Массив;

    Пока Результат.Следующий() Цикл
    СтруктураФайла = новый Структура;
    СтруктураФайла.Вставить("Данные",Результат.ДанныеФайла);
    СтруктураФайла.Вставить("Наименование", Строка(Результат.Ссылка));
    СтруктураФайла.Вставить("Расширение",Результат.Расширение);

    КоллекцияКартинок.Добавить(СтруктураФайла);

    КонецЦикла;

    Возврат КоллекцияКартинок;

    КонецФункции

    &НаКлиенте
    Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    КоллекцияКартинок = ВыгрузитьНаДиск();

    // Отказываемся от стандартной обработки процедуры
    СтандартнаяОбработка = Ложь;

    // Создаем диалог выбора каталога и указываем для чего он будет использоваться
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    // Задаем фильтр доступных расширений файлов для выбора
    //Диалог.Фильтр = НСтр("ru=’Книга Excel 97 (*.xls)|*.xls|Книга Excel 2007 (*.xlsx)|*.xlsx’"); // это если выбор файла, а не каталога
    // Задаем текст заголовка окна выбора
    Диалог.Заголовок = НСтр("ru=’Выберите каталог для сохранения’");
    // Создаем объект ОписаниеОповещения, который будет передан в метод Показать
    ОповещениеЗавершения = Новый ОписаниеОповещения("ВыборФайлаЗавершение", ЭтотОбъект, КоллекцияКартинок);
    // Открываем окно выбора файла
    Диалог.Показать(ОповещениеЗавершения);

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

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

    Если ВыбранныеФайлы = Неопределено Тогда
    //Сообщить("Каталог не выбран");
    Возврат;
    КонецЕсли;

    ПутьКаталога = Результат[0];

    Для каждого Файл из КоллекцияКартинок Цикл
    Файл.Записать( СтрШаблон("%1/%2.%3",ПутьКаталога,Файл.Наименование,Файл.Расширение);
    КонецЦикла;

    Если КоллекцияКартинок.Количество() Тогда
    ПоказатьОповещениеПользователя("Успешно сохранены картинки!",,ПутьКаталога,БиблиотекаКартинок.СформироватьОтчет)№
    КонецЕсли;

    КонецПроцедуры
```
---
ПутьКаталога = Результат[0]; Откуда Результат берется?