Так вот - не могу понять как можно установить фильтр по типу файла в данному методе?
Есть вариант использовать сначала ДиалогВыбораФайла с фильтрами, а потом не интерактивно помещать файлы во временное хранилище.
Как можно это сделать без таких вот манипуляций?
Спасибо
Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после завершения помещения файла со следующими параметрами:
<Результат> - Ложь - в параметре <Интерактивно> установлен интерактивный режим (Истина) и пользователь отказался от выполнения операции в диалоге выбора файла,
<Адрес> - расположение нового файла,
<ВыбранноеИмяФайла> - Через этот параметр возвращается путь к файлу, указанный в диалоге выбора файла. Для неинтерактивного режима выбранное имя файла соответствует начальному имени файла. В режиме запуска "Веб-клиент" значение параметра зависит от типа браузера. Для Mozilla Firefox 3 в параметре возвращается только имя файла без пути. Для Microsoft Internet Explorer возвращаемое значение зависит от настройки текущей зоны. Подробности: http://msdn.microsoft.com/en-us/library/ms535128(VS.85).aspx,
<ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения.
Если параметр не указан или имеет тип Неопределено, то по завершении никакая процедура вызвана не будет.
<Адрес> (необязательный)
Тип: Строка.
Содержит адрес файла во временном хранилище, по которому должны быть помещены данные. Если не задан или является пустой строкой, то будет создан новый файл.
<НачальноеИмяФайла> (необязательный)
Тип: Строка.
Путь файла на диске, данные из которого будут помещены во временное хранилище. Может быть не указан, если параметр <Интерактивно> = Истина. В этом случае отображается диалог выбора файла.
<Интерактивно> (необязательный)
Тип: Булево.
Указывает, используется ли интерактивный режим, в котором отображается диалог выбора файла. Этот файл будет помещен по указанному в параметре <Адрес> расположению во временном хранилище или по новому адресу, если параметр <Адрес> опущен.
Истина - интерактивный режим используется.
Значение по умолчанию: Истина.
<УникальныйИдентификаторФормы> (необязательный)
Тип: УникальныйИдентификатор.
Уникальный идентификатор формы, который можно получить с помощью свойства УникальныйИдентификатор управляемой формы. Файл помещается во временное хранилище и автоматически удаляется после удаления объекта формы.
Если параметр не указан, то помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы.
Возвращаемое значение:
Тип: Булево.
Ложь - в параметре <Интерактивно> установлен интерактивный режим (Истина) и пользователь отказался от выполнения операции в диалоге выбора файла.
Описание:
Помещает файл из локальной файловой системы во временное хранилище.
На мобильной платформе параметр <Интерактивно> игнорируется и диалоговое окно выбора файла не отображается никогда.
В тонком и толстом клиентах, в отличие от веб-клиента, метод блокирует исполнение кода языка. Тем не менее, по завершению помещения файла указанный обработчик оповещения также будет вызван, но до исполнения кода, размещенного после вызова метода.
--------------------------------------------------------------------------------
Методическая информация
Показать
Судя по справке. Фильтр явно указать не получится.
Тип: Строка.
Содержит строку с набором файловых фильтров.
Для операционной системы MS Windows:
Фильтр состоит из двух частей, разделенных символом "|" (вертикальная черта): строки представления, которая отображается в окне выбора файла, и строки маски. В строке маски допускается использование символа "*" (звездочка), обозначающего любое число произвольных символов, и "?" (знак вопроса), обозначающего один произвольный символ. Можно последовательно перечислить несколько фильтров, разделенных символом "|" (вертикальная черта).
Пример строки: "Текстовый документ(*.txt)|*.txt|Табличный документ(*.mxl)|*.mxl".
Для операционной системы Linux:
В строке маски допускается использование следующих последовательностей:
любой символ, допустимый в имени файла. Сопоставление указанных символов производится с учетом регистра;
"*" (звездочка) - любая последовательность символов;
"?" (знак вопроса) - любой символ;
"[" - класс символов. После открывающей квадратной скобки указывается последовательность символов. Паттерн соответствует любому из указанных символов. Можно указывать диапазон, используя "-". Описание класса символов завершается "]". Для указания "-" в качестве символа класса нужно указать его первым или последним символом. Если после "[" указан знак "!", то класс описывает все символы, кроме указанных.
Пример строки: "Текстовый документ(*.txt)|*.txt|Текстовый документ с расширением txt в любом регистре|*.[tT][xX][tT]"
Для операционной системы MacOS (веб-клиент):
В строке маски допускается использовании последовательности вида "*.расширение", где:
"*" (звездочка) – описывает имя файла;
"расширение" - состоит из любых символов, допустимых в имени файла. Сравнение происходит на регистро-зависимой основе.
Пример строки: "Текстовый документ(*.txt)|*.txt|Табличный документ(*.mxl)|*.mxl".
(4) Xershi, а ты вопрос читать умеешь ?
или ты просто себе ответы набиваешь? зачем пишешь то что и так я описал в постановке вопроса?
Если нет нормального ответа, а только пересказываешь очевидное (что изложено в вопросе), то лучше не пиши вообще
(6) Xershi, ну раз не видишь - значит не надо пересказывать мои слова. Ты же "программист" и должен понимать, что если я привел пример обхода проблемы которую я описал
Есть вариант использовать сначала ДиалогВыбораФайла с фильтрами, а потом не интерактивно помещать файлы во временное хранилище.
, то я знаю про ДиалогВыбораФайла() и знаю для чего и даже написал, что в нем можно использовать фильтры(!)
И меня этот вариант не устраивает - вот поэтому я и написал на форуме для поиска решения данной проблемы!
а мне в ответ "программист" пишет воспользуйся ДиалогВыбораФайла() и описание из СП приводит :)
(1) Agapov_Stas, почему бы не использовать в связке
ДиалогВыбораФайла и ПоместитьВоВременноеХранилище, получится аналог НачатьПомещениеФайла но с фильтром который вам нужен..
(1) Agapov_Stas,
я не очень понял, вам нужно интерактивно выбрать файл с нужным расширением, или же имя файла известно, и помещать во временное хранилище нужно не интерактивно, без участия пользователя?
Если не интерактивно тогда НачальноеИмяФайла - задаешь явно имя файла.
Если интерактивно то тут надо проверить подключено ли расширение работы с файлами, если подключено - тогда смело можно использовать ДиалогВыбораФайла, если не подключено, тогда с пустой строкой вместо НачальноеИмяФайла (весьма скромное диалоговое окно выбора файла появится).
В тонком клиенте расширение работы с файлами подключено всегда.
Фильтр на тип файла можно установить во всех случаях, кроме веб клиента с не подключенным расширением работы с файлами.
Следует обратить внимание, что объект ДиалогВыбораФайла не имеет метода Показать() в отличие от диалогов выбора цвета или шрифта, поскольку реализация этих диалогов существенно разная.
Для использования диалога выбора файла на веб-клиенте необходимо предварительно подключить расширение работы с файлами.
Диалоги, реализуемые через расширение работы с файлами, не создают таких проблем в работе, как модальные окна браузеров, поэтому не было реализовано открытие блокирующих окон для объекта ДиалогВыбораФайла.
(12) AllexSoft, Это все равно костыль - сначала выбираем интерактивно одним методом (потому что там есть возможность установить фильтр по типу файла), а потом передаем выбранный файл в другой метод и отключаем модальность - вам не кажется это как то не правильным?
Вот я и хочу узнать есть ли способ выбрать файл с фильтром по типу файла без костылей ?
Тип: ДиалогВыбораФайла; Строка.
Определяет набор помещаемых файлов.
Может быть задан строкой поиска для метода НайтиФайлы либо заранее подготовленным диалогом выбора файлов в режиме открытия файлов.
Если параметр определен, то параметр <ПомещаемыеФайлы> должен быть не определен либо быть пустым массивом.
Смотрим - там третий параметр "НАЧАЛЬНОЕ ИМЯ ФАЙЛА"!
<НачальноеИмяФайла> (необязательный)
Тип: Строка.
Путь файла на диске, данные из которого будут помещены во временное хранилище. Может быть не указан, если параметр <Интерактивно> = Истина. В этом случае отображается диалог выбора файла.
(15) Спасибо за решение, но вероятно это применимо к методу НачатьПомещениеФайла, поскольку именно там он идет 3-м параметром, платформа 8.3.16.1502, вот мой код:
АдресФайлаВоВременномХранилище = "";
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ВыборФайла.Заголовок = "Выберите файл";
Если ИмяТаблицы = "КартинкиИФайлыНоменклатурыСПараметрами" Тогда
ВыборФайла.Фильтр = "Файлы (*.bmp;*.emf;*.gif;*.ico;*.jpg;*.png;*.tif;*.wmf;*.jpeg)|*.bmp;*.emf;*.gif;*.ico;*.jpg;*.png;*.tif;*.wmf;*.jpeg|";
Иначе
ВыборФайла.Фильтр = "Файлы (*.swf;*.zip;)|*.swf;*.zip;|";
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьДанныеЗавершение", ЭтотОбъект);
НачатьПомещениеФайла(ОписаниеОповещения, АдресФайлаВоВременномХранилище, ВыборФайла, Истина, УникальныйИдентификатор);
Раньше особо с УФ не работал, но поясню для автора в чем его была ошибка:
1. НачатьПомещениеФайла - процедура, которая предполагает, что все фильтры вы уже сделали и даете конечный файл на отправку!
2. НачатьПомещениеФайлов - более расширенный вариант работы, который позволяет использовать ДиалогВыбораФайла.
3. ДиалогВыбораФайла.Показать - процедура, которую автор тупо не понял, считая, что есть только Выбрать, который и является модальным.
Так что за что столько минусов понаставили непонятно, думаю все разжевал даже для "программистов"!