Получает фильтры для диалога выбора файлов, соответствующие формату картинки.
Синтаксис
ФильтрИменФайлов(<ВсеВарианты>, <ПодобратьВариант>)Примеры платформы
ФильтрДиалога = Картинка.ФильтрИменФайлов();Полное описание, параметры и ограничения
Картинка.ФильтрИменФайлов (Picture.FileNameFilter)
Картинка (Picture)
ФильтрИменФайлов (FileNameFilter)
Доступен, начиная с версии 8.2.
Синтаксис:
ФильтрИменФайлов(<ВсеВарианты>, <ПодобратьВариант>)
Параметры:
<ВсеВарианты> (необязательный)
Тип: Булево.
Данный параметр используется, если картинка представлена архивом, содержащим варианты этой картинки. Если значение Ложь - фильтр будет подготовлен для картинки варианта. Если значение Истина - для архива.
Значение по умолчанию: Ложь.
<ПодобратьВариант> (необязательный)
Тип: Соответствие, Неопределено.
Данный параметр используется, если картинка представлена архивом, содержащим варианты этой картинки, и <ВсеВарианты> установлен в значение Ложь.
Пары "Ключ-Значение" соответствуют xml-тегам в манифесте вариантов картинки. Если параметры выбора варианта не заданы, будет выбран вариант по умолчанию. Если параметры указывают на несуществующий в архиве вариант, то будет возвращено Неопределено.
Значение по умолчанию: Неопределено.
Возвращаемое значение:
Тип: Строка.
Фильтр для диалога выбора файлов.
Описание:
Получает фильтры для диалога выбора файлов, соответствующие формату картинки.
Доступность:
Тонкий клиент, толстый клиент, внешнее соединение.
Пример:
ФильтрДиалога = Картинка.ФильтрИменФайлов();
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Получить фильтр PNG и разобрать старое Преобразовать на независимой BMP-копии
Клиентский урок не открывает файловый диалог и не пишет файл. Преобразовать показан как устаревающий метод для чтения существующего кода.
Где и как запускать
Полный клиентский обработчик команды собственной управляемой формы, настольный тонкий/толстый клиент Windows.
Подготовка
В отдельной своей конфигурации УчебнаяКонфигурацияСинтаксиса создайте серверный общий модуль УчебныеКартинки с флагом Сервер. Вставьте весь код одного урока и вызовите УчебныеКартинки.ВыполнитьПример() из серверной команды своей обработки.
Встроенный собственный PNG имеет 80×40 пикселей: белое поле, синий прямоугольник 40×20 с красной рамкой, начинающийся в точке 20,10. Фотографии, подписи, печати и документы пользователей не используются.
Картинки создаются из Base64 в памяти. Методы изменения меняют ОбрабатываемаяКартинка, а не исходный Картинка. ПолучитьКартинку создаёт отдельный результат; результаты не записываются на диск или в базу.
Основные уроки выполняйте на настольном сервере 1С 8.5.1.1343, не на мобильной платформе. Там другие ограничения форматов, метаданных цвета и плотности.
Последний урок — отдельный клиентский обработчик команды своей управляемой формы: он нужен для ФильтрИменФайлов и чтения устаревшего API, не для серверной обработки.
Для этого урока добавьте команду ПроверитьКартинку своей управляемой формы и назначьте ей одноимённый клиентский обработчик. Серверный общий модуль из других уроков не нужен.
&НаКлиенте
Процедура ПроверитьКартинку(Команда)
Исходная = Новый Картинка(Base64Значение("iVBORw0KGgoAAAANSUhEUgAAAFAAAAAoCAIAAADmAupWAAAAX0lEQVR4nO3YURGAMAxEwYhAROUgu66KCIZmuO6bE5D9Ta3DqnVYwOkBpwecHnB6r8BzjJZ1gq97bh4wMDAwMDAwMDAwMDAwMDDw1+CzXjx/DDg94PSA0wNOr7oP2N0DKcWmInx+weoAAAAASUVORK5CYII="));
Если Исходная.Ширина() <> 80 ИЛИ Исходная.Высота() <> 40 Тогда
ВызватьИсключение "Собственный PNG должен быть 80 на 40 пикселей";
КонецЕсли;
Фильтр = Исходная.ФильтрИменФайлов();
Сообщить(ТипЗнч(Фильтр) = Тип("Строка") И Не ПустаяСтрока(Фильтр));
Сообщить("Фильтр PNG: " + Фильтр);
ИсходныеБайты = Исходная.ПолучитьДвоичныеДанные();
Копия = Исходная.Преобразовать(ФорматКартинки.BMP);
Если Копия = Неопределено Тогда
ВызватьИсключение "Не получена BMP-копия собственного PNG";
КонецЕсли;
Сообщить(Копия.Формат() = ФорматКартинки.BMP);
Сообщить(Копия.Ширина() = 80 И Копия.Высота() = 40);
Сообщить(Исходная.Формат() = ФорматКартинки.PNG);
Сообщить(Base64Строка(Исходная.ПолучитьДвоичныеДанные()) = Base64Строка(ИсходныеБайты));
Сообщить(Исходная.РазмерФайла() > 0);
Сообщить(Копия.РазмерФайла() > 0);
КонецПроцедурыРазбор по шагам
ФильтрИменФайлов возвращает строку для возможного будущего диалога, но сам диалог не запускает.
ПолучитьДвоичныеДанные используется для сравнения исходных байтов до и после опыта.
Старый Преобразовать создаёт BMP-копию собственного PNG. Проверить Неопределено перед обращением к ней.
Сравнить размеры, форматы и байты исходника. РазмерФайла описывает размер представления, а не наличие файла на диске.
Для нового серверного кода выбирайте ОбрабатываемаяКартинка из предыдущих уроков.
Как проверить результат
Семь булевых сообщений Истина и фактическая строка фильтра PNG. BMP-копия 80×40, оригинал PNG не изменён.
Base64 двоичных данных исходника совпадает до и после опыта; диалог выбора файла не открывается.
Ожидаемый результат
Пример старого API имеет полный исходник, отдельный результат и явное указание современного варианта.
На что обратить внимание
ФильтрИменФайлов доступен тонкому/толстому клиенту, не серверу; этот урок не переносите в серверный модуль.
Не сравнивайте размер BMP и PNG по универсальному правилу: сжатие и содержимое влияют на результат.
Преобразовать не рекомендуется начиная с 8.3.14; метод приведён для изучения старого кода.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.