НачатьПомещениеФайла()

1. Agapov_Stas 1 24.11.14 16:34 Сейчас в теме
В управляемых формах для того чтоб выбрать файл можно использовать такой метод:
НачатьПомещениеФайла(<ОписаниеОповещенияОЗавершении>, <Адрес>, <НачальноеИмяФайла>, <Интерактивно>, <УникальныйИдентификаторФормы>) 


Так вот - не могу понять как можно установить фильтр по типу файла в данному методе?
Есть вариант использовать сначала ДиалогВыбораФайла с фильтрами, а потом не интерактивно помещать файлы во временное хранилище.
Как можно это сделать без таких вот манипуляций?
Спасибо
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1536 24.11.14 16:52 Сейчас в теме
(1) Agapov_Stas,
Глобальный контекст.НачатьПомещениеФайла (Global context.BeginPutFile)
Глобальный контекст (Global context)
НачатьПомещениеФайла (BeginPutFile)
Синтаксис:

НачатьПомещениеФайла(<ОписаниеОповещенияОЗавершении>, <Адрес>, <НачальноеИмяФайла>, <Интерактивно>, <УникальныйИдентификаторФормы>)
Параметры:

<ОписаниеОповещенияОЗавершении> (необязательный)

Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после завершения помещения файла со следующими параметрами:
<Результат> - Ложь - в параметре <Интерактивно> установлен интерактивный режим (Истина) и пользователь отказался от выполнения операции в диалоге выбора файла,
<Адрес> - расположение нового файла,
<ВыбранноеИмяФайла> - Через этот параметр возвращается путь к файлу, указанный в диалоге выбора файла. Для неинтерактивного режима выбранное имя файла соответствует начальному имени файла. В режиме запуска "Веб-клиент" значение параметра зависит от типа браузера. Для Mozilla Firefox 3 в параметре возвращается только имя файла без пути. Для Microsoft Internet Explorer возвращаемое значение зависит от настройки текущей зоны. Подробности: http://msdn.microsoft.com/en-us/library/ms535128(VS.85).aspx,
<ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения.
Если параметр не указан или имеет тип Неопределено, то по завершении никакая процедура вызвана не будет.
<Адрес> (необязательный)

Тип: Строка.
Содержит адрес файла во временном хранилище, по которому должны быть помещены данные. Если не задан или является пустой строкой, то будет создан новый файл.
<НачальноеИмяФайла> (необязательный)

Тип: Строка.
Путь файла на диске, данные из которого будут помещены во временное хранилище. Может быть не указан, если параметр <Интерактивно> = Истина. В этом случае отображается диалог выбора файла.
<Интерактивно> (необязательный)

Тип: Булево.
Указывает, используется ли интерактивный режим, в котором отображается диалог выбора файла. Этот файл будет помещен по указанному в параметре <Адрес> расположению во временном хранилище или по новому адресу, если параметр <Адрес> опущен.
Истина - интерактивный режим используется.
Значение по умолчанию: Истина.
<УникальныйИдентификаторФормы> (необязательный)

Тип: УникальныйИдентификатор.
Уникальный идентификатор формы, который можно получить с помощью свойства УникальныйИдентификатор управляемой формы. Файл помещается во временное хранилище и автоматически удаляется после удаления объекта формы.
Если параметр не указан, то помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы.
Возвращаемое значение:

Тип: Булево.
Ложь - в параметре <Интерактивно> установлен интерактивный режим (Истина) и пользователь отказался от выполнения операции в диалоге выбора файла.
Описание:

Помещает файл из локальной файловой системы во временное хранилище.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
Примечание:

На мобильной платформе параметр <Интерактивно> игнорируется и диалоговое окно выбора файла не отображается никогда.
В тонком и толстом клиентах, в отличие от веб-клиента, метод блокирует исполнение кода языка. Тем не менее, по завершению помещения файла указанный обработчик оповещения также будет вызван, но до исполнения кода, размещенного после вызова метода.
--------------------------------------------------------------------------------

Методическая информация
Показать
Судя по справке. Фильтр явно указать не получится.
pbahushevich; +1 10 Ответить
3. Agapov_Stas 1 24.11.14 16:53 Сейчас в теме
(2) Xershi, ну СП я тоже умею пользоваться - поэтому и задал тут вопрос - т.к. не нашел явного объяснения как указать фильтр по типу файла
4. Xershi 1536 24.11.14 16:56 Сейчас в теме
(1) Agapov_Stas, http://howknow1c.ru/jazyk-1s/rabota-s-fajlami-1s.html и вот как раз ДиалогВыбораФайла свойство Фильтр:
ДиалогВыбораФайла (FileDialog)
Фильтр (Filter)
Использование:

Чтение и запись.
Описание:

Тип: Строка.
Содержит строку с набором файловых фильтров.
Для операционной системы MS Windows:
Фильтр состоит из двух частей, разделенных символом "|" (вертикальная черта): строки представления, которая отображается в окне выбора файла, и строки маски. В строке маски допускается использование символа "*" (звездочка), обозначающего любое число произвольных символов, и "?" (знак вопроса), обозначающего один произвольный символ. Можно последовательно перечислить несколько фильтров, разделенных символом "|" (вертикальная черта).
Пример строки: "Текстовый документ(*.txt)|*.txt|Табличный документ(*.mxl)|*.mxl".
Для операционной системы Linux:
В строке маски допускается использование следующих последовательностей:
любой символ, допустимый в имени файла. Сопоставление указанных символов производится с учетом регистра;
"*" (звездочка) - любая последовательность символов;
"?" (знак вопроса) - любой символ;
"[" - класс символов. После открывающей квадратной скобки указывается последовательность символов. Паттерн соответствует любому из указанных символов. Можно указывать диапазон, используя "-". Описание класса символов завершается "]". Для указания "-" в качестве символа класса нужно указать его первым или последним символом. Если после "[" указан знак "!", то класс описывает все символы, кроме указанных.
Пример строки: "Текстовый документ(*.txt)|*.txt|Текстовый документ с расширением txt в любом регистре|*.[tT][xX][tT]"
Для операционной системы MacOS (веб-клиент):
В строке маски допускается использовании последовательности вида "*.расширение", где:
"*" (звездочка) – описывает имя файла;
"расширение" - состоит из любых символов, допустимых в имени файла. Сравнение происходит на регистро-зависимой основе.
Пример строки: "Текстовый документ(*.txt)|*.txt|Табличный документ(*.mxl)|*.mxl".

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
Показать
KUAvanesov; Program; +2 11 Ответить
5. Agapov_Stas 1 24.11.14 16:59 Сейчас в теме
(4) Xershi, а ты вопрос читать умеешь ?
или ты просто себе ответы набиваешь? зачем пишешь то что и так я описал в постановке вопроса?
Если нет нормального ответа, а только пересказываешь очевидное (что изложено в вопросе), то лучше не пиши вообще
maksa2005; CagoBHuK; user735018; kild; atomskxs; Nelli_A86; namreg131313; ojiojiowka; qwinter; kuzev; +10 Ответить
6. Xershi 1536 24.11.14 17:07 Сейчас в теме
(5) Agapov_Stas, я тебе ссылку дал. Прочел? Все что там есть?
Ответ на твой вопрос: нет, вариант рабочий, лучше метода судя по справке пока не вижу!
7. Agapov_Stas 1 24.11.14 17:19 Сейчас в теме
(6) Xershi, ну раз не видишь - значит не надо пересказывать мои слова. Ты же "программист" и должен понимать, что если я привел пример обхода проблемы которую я описал
Есть вариант использовать сначала ДиалогВыбораФайла с фильтрами, а потом не интерактивно помещать файлы во временное хранилище.

, то я знаю про ДиалогВыбораФайла() и знаю для чего и даже написал, что в нем можно использовать фильтры(!)
И меня этот вариант не устраивает - вот поэтому я и написал на форуме для поиска решения данной проблемы!
а мне в ответ "программист" пишет воспользуйся ДиалогВыбораФайла() и описание из СП приводит :)
8. AllexSoft 24.11.14 17:45 Сейчас в теме
(1) Agapov_Stas, почему бы не использовать в связке
ДиалогВыбораФайла и ПоместитьВоВременноеХранилище, получится аналог НачатьПомещениеФайла но с фильтром который вам нужен..
9. Agapov_Stas 1 24.11.14 18:23 Сейчас в теме
(8) AllexSoft, потому что ДиалогВыбораФайла() это модальное окно
11. Boneman 302 24.11.14 22:51 Сейчас в теме
(9) Agapov_Stas,
потому что ДиалогВыбораФайла() это модальное окно

да вроде нет.
Во всяком случае в таксях никаких предупреждений не выдает при использовании.
10. qwinter 684 24.11.14 22:08 Сейчас в теме
(8) AllexSoft, потому что это нельзя на веб клиенте
Aligator69; +1 Ответить
16. ЧерныйКот 16.02.16 17:43 Сейчас в теме
(1) Agapov_Stas,
я не очень понял, вам нужно интерактивно выбрать файл с нужным расширением, или же имя файла известно, и помещать во временное хранилище нужно не интерактивно, без участия пользователя?

Если не интерактивно тогда НачальноеИмяФайла - задаешь явно имя файла.
Если интерактивно то тут надо проверить подключено ли расширение работы с файлами, если подключено - тогда смело можно использовать ДиалогВыбораФайла, если не подключено, тогда с пустой строкой вместо НачальноеИмяФайла (весьма скромное диалоговое окно выбора файла появится).

В тонком клиенте расширение работы с файлами подключено всегда.

Фильтр на тип файла можно установить во всех случаях, кроме веб клиента с не подключенным расширением работы с файлами.
18. Agapov_Stas 1 27.06.16 13:36 Сейчас в теме
(16) ЧерныйКот,
тогда смело можно использовать ДиалогВыбораФайла
насколько я знаю - это модальное окно?
а меня интересуют немодальные вызовы
19. ditp 94 27.06.16 13:47 Сейчас в теме
(18) Agapov_Stas, ДиалогВыбораФайла - это не модальное окно. Это вообще не окно.

А вот ДиалогВыбораФайла.Выбрать() уже вызывает модальное окно.
Не хотите модальности - используйте ДиалогВыбораФайла.Показать(<ОписаниеОповещения>) .
Innuil; Синицын; Xershi; mario2; +4 Ответить
20. Agapov_Stas 1 27.06.16 14:40 Сейчас в теме
24. Maxis 22.11.16 14:39 Сейчас в теме
(1)
В параметре <НачальноеИмяФайла> укажите, например, маску: "*.txt"
pbahushevich; Ilya_138; user779781; +3 Ответить
12. AllexSoft 25.11.14 09:50 Сейчас в теме
Следует обратить внимание, что объект ДиалогВыбораФайла не имеет метода Показать() в отличие от диалогов выбора цвета или шрифта, поскольку реализация этих диалогов существенно разная.

Для использования диалога выбора файла на веб-клиенте необходимо предварительно подключить расширение работы с файлами.

Диалоги, реализуемые через расширение работы с файлами, не создают таких проблем в работе, как модальные окна браузеров, поэтому не было реализовано открытие блокирующих окон для объекта ДиалогВыбораФайла.
13. Agapov_Stas 1 25.11.14 14:06 Сейчас в теме
(12) AllexSoft, Это все равно костыль - сначала выбираем интерактивно одним методом (потому что там есть возможность установить фильтр по типу файла), а потом передаем выбранный файл в другой метод и отключаем модальность - вам не кажется это как то не правильным?
Вот я и хочу узнать есть ли способ выбрать файл с фильтром по типу файла без костылей ?
14. AllexSoft 25.11.14 14:10 Сейчас в теме
вам не кажется это как то не правильным?

к сожалению 1С не всегда делает то что мы с вами считаем правильным...

Вот я и хочу узнать есть ли способ выбрать файл с фильтром по типу файла без костылей ?
на данный момент нет
15. NSerget 5 16.02.16 17:29 Сейчас в теме
Возможно запоздало, но напишу

// Вызываем диалог выбора изображений
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ВыборФайла.Заголовок 				= "Выберите файлы с изображениями";
ВыборФайла.Фильтр 					= "Изображения (png)|*.png";
	
ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьИзображенияВодяныеЗнаки_Завершение", ЭтотОбъект);
НачатьПомещениеФайлов(ОписаниеОповещения, , ВыборФайла , Истина, Новый УникальныйИдентификатор);

Показать
user2007306; keyn5565`; Innuil; varovinm; Kazaams; lexxmaster; improg; soroka; ivan_vostok@mail.ru; NekoZver; link_l; user735018; Wdivine; ikekoval; Александр056; ksely; RomanBor; hillsnake; brunen9; +19 Ответить
17. Agapov_Stas 1 27.06.16 13:33 Сейчас в теме
(15) NSerget,
НачатьПомещениеФайлов
Третий параметры "СТРОКА" - как туда можно запихивать диалог выбора ???
21. brunen9 62 30.06.16 20:36 Сейчас в теме
(17) Agapov_Stas, вот что у меня в СП написано:

<НаборПомещаемыхФайлов> (необязательный)

Тип: ДиалогВыбораФайла; Строка.
Определяет набор помещаемых файлов.
Может быть задан строкой поиска для метода НайтиФайлы либо заранее подготовленным диалогом выбора файлов в режиме открытия файлов.
Если параметр определен, то параметр <ПомещаемыеФайлы> должен быть не определен либо быть пустым массивом.
22. Agapov_Stas 1 30.06.16 22:21 Сейчас в теме
(21) brunen9,
НЕ знаю в какой версии платформы вы смотрите, но в 8.3.8.1652 нет такого ...может вы про другое пишете ?
Вот из СП описание :

НачатьПомещениеФайла(<ОписаниеОповещенияОЗавершении>, <Адрес>, <НачальноеИмяФайла>, <Интерактивно>, <УникальныйИдентификаторФормы>)

Смотрим - там третий параметр "НАЧАЛЬНОЕ ИМЯ ФАЙЛА"!

<НачальноеИмяФайла> (необязательный)

Тип: Строка.
Путь файла на диске, данные из которого будут помещены во временное хранилище. Может быть не указан, если параметр <Интерактивно> = Истина. В этом случае отображается диалог выбора файла.
23. brunen9 62 30.06.16 22:47 Сейчас в теме
(22) Agapov_Stas, вы не тот метод смотрите, нужно НачатьПомещениеФайлов
link_l; user811769; pbahushevich; kild; RomanBor; _LkMaksimka_; +6 Ответить
29. improg 723 12.06.21 14:26 Сейчас в теме
(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;|";
		КонецЕсли;
		
		ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьДанныеЗавершение", ЭтотОбъект);
		НачатьПомещениеФайла(ОписаниеОповещения, АдресФайлаВоВременномХранилище, ВыборФайла, Истина, УникальныйИдентификатор);		
Показать
25. Xershi 1536 16.01.19 22:35 Сейчас в теме
Раньше особо с УФ не работал, но поясню для автора в чем его была ошибка:
1. НачатьПомещениеФайла - процедура, которая предполагает, что все фильтры вы уже сделали и даете конечный файл на отправку!
2. НачатьПомещениеФайлов - более расширенный вариант работы, который позволяет использовать ДиалогВыбораФайла.
3. ДиалогВыбораФайла.Показать - процедура, которую автор тупо не понял, считая, что есть только Выбрать, который и является модальным.

Так что за что столько минусов понаставили непонятно, думаю все разжевал даже для "программистов"!
KUAvanesov; sinops; user735018; +3 1 Ответить
27. user603532_fan_club_chelsea 14.05.20 12:32 Сейчас в теме
(25) это Вы 5 лет потратили на изучение данного вопроса?! Ну или к чему эти оправдания?! )))
Синицын; +1 Ответить
28. Xershi 1536 14.05.20 12:43 Сейчас в теме
(27) как было время наткнулся на эту статью и разжевал. За 5 лет более детально с методами поработал.
30. varovinm 26.04.23 11:42 Сейчас в теме
(25)
НачатьПомещениеФайл

в 2023 и НачатьПомещениеФайла тож работает в выбором файла))
26. Гость 05.04.20 14:23
Сам столкнулся с такой проблемой, и вот один из вариантов готового решения, используется ДиалогВыбораФайла и НачатьПомещениеФайла.

&НаКлиенте
Процедура ВыбратьФайлКартинки(Команда)
	
	Оповещение = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтотОбъект);
		
	ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	
	ДиалогВыбора.Заголовок = "Выберите картинку";
	ДиалогВыбора.Фильтр = "Изображение JPEG(*.jpg;*.jpeg;*.jpe)|*.jpg;*.jpeg;*.jpe|";
	
    ДиалогВыбора.Показать(Оповещение);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьВыборФайла(Результат, ДополнительныеПараметры) Экспорт
	
	Если Результат = Неопределено Тогда
		
		Возврат;
		
	КонецЕсли;
	
		
	Оповещение = Новый ОписаниеОповещения("ОбработатьПомещениеФайла", ЭтотОбъект);
	НачатьПомещениеФайла(Оповещение, , Результат[0], Ложь, УникальныйИдентификатор);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьПомещениеФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
	
	Если Не Результат Тогда
		
		Возврат;
		
	КонецЕсли;
	
	СсылкаНаКартинку = Адрес;
	
КонецПроцедуры
Показать
varovinm; maksa2005; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот