Имя: Пароль:
1C
1С v8
как сохранить файл из диалога выбора файла в xml
, ,
0 Svikator1
 
14.06.16
16:43
8.3.8.1675 Всем доброго времени суток. Помоги пожалуйста со следующим вопросом, просьба сразу тапками не кидать, т.к. уже гуглил, пробовал различные методы и т.д. Суть вопроса: пытаюсь поместить файл в формате xml во временное хранилище для дальнейшей передачи адреса на сервер, ничего не получается. При вызове процедур Поместитьфайл(),Поместитьфайлы(),ПоместитьВоВременноеХранилище() выдаётся ошибка "Использование модальных окон в данном режиме запрещено!"(хм...вроде всё по книжке). Дальше погуглив нашёл примеры на сайте Чистова и других умных людей, что нужно использовать "ОписаниеОповещения",т.к. всё нужно делать без использования модальности, попробовав данный метод возникает та же самая ошибка на строке кода при создании Описания оповещения. Вопрос в следующем, есть ли вообще рабочий механизм для того чтобы поместить файл во временное хранилище?Если есть то можно ли привести пример для помещения файла. А то уже весь мозг сломал с этой модальностью))
1 Волшебник
 
модератор
14.06.16
16:44
запусти в толстом клиенте
2 Svikator1
 
14.06.16
17:29
Спасибо действительно помогло. Не сочтите за наглость, просто в продолжение темы:
1. А как передать параметры как это есть в "ДиалогВыбораФайла", допустим если я хочу открывать файл только определённого расширения или допустим использовать режим множественного выбора. В СП указано что для объекта "ОписаниеОповещения" есть дополнительные параметры, а какие параметры туда можно передавать не указано.
2. Как же быть на тонком клиенте или web? Или есть какие то ещё методы?
3 Nuobu
 
14.06.16
17:46
(2) Такие методы есть: Свойство "Фильтр" у объекта "ДиалогВыбораФайлов".
4 Fragster
 
гуру
14.06.16
17:55
Глобальный контекст.НачатьПомещениеФайлов (Global context.BeginPuttingFiles)
Глобальный контекст (Global context)
НачатьПомещениеФайлов (BeginPuttingFiles)
Синтаксис:

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

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

Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после завершения со следующими параметрами:
<ПомещенныеФайлы> – массив объектов типа ОписаниеПереданногоФайла или Неопределено, если файлы не получены.
<ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения.
<ПомещаемыеФайлы> (необязательный)

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

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

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

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

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

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

Тонкий клиент, веб-клиент, толстый клиент.
См. также:

Глобальный контекст, метод ПоместитьФайлы

--------------------------------------------------------------------------------

     Методическая информация
5 Fragster
 
гуру
14.06.16
17:55
диалог передавать в НаборПомещаемыхФайлов
6 Fragster
 
гуру
14.06.16
17:56
совет из (1) в топку
7 Fragster
 
гуру
14.06.16
17:56
все-таки 8.3.8 на дворе
8 Svikator1
 
14.06.16
18:42
Всё получилось, файл получен. Только в процессе возник ещё небольшой вопрос.
Оп = Новый ОписаниеОповещения("ОбработатьВыборФайла",ЭтаФорма);
    
    НачатьПомещениеФайлов(Оп,,Диалог,Истина,УникальныйИдентификатор);

Почему если идти по шагам в отладчике то обе процедуры отрабатывать отрабатывают, а сам диалог выбора файла вызывается уже в самом конце процедуры нажатия кнопки и вызов "ОбработатьВыборФайла" тоже происходит в самом конце, не совсем понятно почему так происходит?
9 Svikator1
 
14.06.16
19:01
Я конечно ничего против не имею, только вот приходится вызовы процедур и функций идущих после этих двух строчек кода, переносить в процедуру "ОбработатьВыборФайла", иначе они обрабатываются не своевременно и некорректно.
10 Fragster
 
гуру
15.06.16
11:06
(9) так и задумано. асинхронность. боль. ведь async/await - это же так сложно.
11 Fragster
 
гуру
15.06.16
11:20