Предположим, нам нужно создать новый подкаталог для определенного каталога. Короткое имя этого нового каталога задано в поле ввода демонстрационной обработки (реквизит ИмяНовогоКаталога).
Для решения этой задачи добавим команду СоздатьКаталог. Обработчик команды заполним следующим образом (листинг 6.8).
Листинг 6.8. Обработчик команды «СоздатьКаталог»
&НаКлиенте
Процедура СоздатьНовыйКаталог(Команда)
ВыбратьКаталог("Выбор родительского каталога для создания каталога",
Новый ОписаниеОповещения("ПослеВыбораКаталогаДляСоздания", ЭтотОбъект));
КонецПроцедуры
Сначала нам нужно выбрать каталог, для которого будет создаваться дочерний подкаталог. Для этого мы вызываем процедуру ВыбратьКаталог(), которая была рассмотрена ранее, в листинге 6.2. В эту процедуру мы передаем заголовок диалога и описание оповещения, указывающее на экспортную процедуру ПослеВыбораКаталогаДляСоздания(), которая будет выполнена после того, как пользователь выберет каталог (листинг 6.9).
Листинг 6.9. Процедура «ПослеВыбораКаталогаДляСоздания()»
&НаКлиенте
Процедура ПослеВыбораКаталогаДляСоздания(ВыбранныеФайлы, Параметры) Экспорт
Если ВыбранныеФайлы = Неопределено Тогда
Возврат;
КонецЕсли;
РодительскийКаталог = ВыбранныеФайлы[0];
ИмяКаталога = РодительскийКаталог + "\" + ИмяНовогоКаталога + "\";
// Создать подкаталог в выбранном каталоге.
НачатьСозданиеКаталога(Новый ОписаниеОповещения("СоздатьКаталогЗавершение", ЭтотОбъект), ИмяКаталога);
КонецПроцедуры
В этом обработчике оповещения, в случае если каталог выбран, мы получаем путь к родительскому каталогу как первый элемент массива, содержащийся в параметре ВыбранныеФайлы. Чтобы получить полный путь к создаваемому каталогу, прибавляем к нему «через слеш» имя нового каталога. Затем вызываем процедуру НачатьСозданиеКаталога(), в которую передаем этот путь (ИмяКаталога).
Первым параметром в немодальный метод НачатьСозданиеКаталога() мы передаем описание оповещения, указывающее на экспортную процедуру СоздатьКаталогЗавершение(), которая будет вызвана по окончании создания каталога (листинг 6.10).
Листинг 6.10. Процедура «СоздатьКаталогЗавершение()»
&НаКлиенте
Процедура СоздатьКаталогЗавершение(ИмяКаталога, Дополнительно) Экспорт
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Каталог: " + ИмяКаталога + " создан";
Сообщение.Сообщить();
КонецПроцедуры
Если создаваемый каталог уже существует, то повторно он создан не будет и ошибки не возникнет.