Диалоги выбора в 1с
Думаю Вы довольно часто сталкивались с задачей дать пользователю возможность выбора файла в программе, но кроме этого есть ещё два помощника это ДиалогВыбораЦвета и ДиалогВыбораШрифта. Давайте познакомимся с ними поближе.
ДиалогВыбораФайла
Позволяет в пользовательском режиме выбрать файлы и папки как для сохранения так и для редактирования.
Например, следующий код служит для выбора файла который нужно редактировать.
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Фильтр="Все файлы|*.*";
ВыборФайла.Фильтр=Фильтр;
ВыборФайла.Заголовок="Выберите файл";
ВыборФайла.ПолноеИмяФайла = ;
Если Не ВыборФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
Как Вы могли догодаться назначение диалога меняется от параметра при его создании. В данном случае Открытие, но также может быть Сохранение и ВыборКаталога. При режиме диалога выбора "ВыборКаталога" диалог выбора файла становится диалогом выбора папки.
У этого объекта есть полезные свойства: Фильтр, Заголовок,ПроверятьСуществованиеФайла и другие.
Добавляя фильтр есть возможность быстро отфильтровывать папку по шаблонам заданным в фильтре. Выше в фильтре указано только одно значение. Но можно записать например так:
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ФильтрФайла = "Файл для Импорта(2015*.xml)|"+ 2015*.xml+"| ";
Фильтр=ФильтрФайла+"Все файлы|*.*";
В этом случае из списка фильтров можно будет выбрать из 2-х записей либо Файл для Импорта где будут отображены только файл xml которые начинаются с 2015, либо все файлы.
ДиалогВыбораЦвета
Позволяет пользователю ввести цвет. Имеет единственное свойство "Цвет". Например это может понадобиться когда цвета хранятся в справочнике и используются где-то в отчетах для обозначения
ВыборЦвета=Новый ДиалогВыбораЦвета();
ВыборЦвета.Цвет=Элементы.ЦветНоменклатуры.ЦветФона;
Если ВыборЦвета.Выбрать() Тогда
Элементы.ВыбратьЦвет.ЦветФона=ВыборЦвета.Цвет;
КонецЕсли;
ДиалогВыбораШрифта
У диалога выбора шрифта также как и у диалога выбора цвета только одно свойство "Шрифт".
ВыборШрифта=Новый ДиалогВыбораШрифта();
Если ВыборШрифта.Выбрать() Тогда
ВыбранныйШрифт = ВыборШрифта.Шрифт;
КонецЕсли;
Все три диалога, кроме метода Выбрать(), также имеют метод Показать(), который служит для выбора соответствующего значения в немодальном режиме, т.е. окна находящиеся за диалогом выбора не блокируются и доступны для работы