|
Работа с файлами | ☑ | ||
---|---|---|---|---|
0
ammorf
10.04.18
✎
08:44
|
Приветствую! Подскажите как получить/записать файл расположенный на сервере 1С на клиенте? При попытке получить файл клиент использует файловую систему клиенского ПК. Обычное приложение. Платформа последняя. Клиент-сервер.
|
|||
1
Сияющий в темноте
10.04.18
✎
08:59
|
Написать получение файла в процедуре,выполняющейся на сервере,только имя файла должно быть известно
|
|||
2
Cool_Profi
10.04.18
✎
08:59
|
На сервере пихнуть в хранилище значений, отдать клиенту, там получить из хранилища, записать
|
|||
3
ammorf
10.04.18
✎
09:02
|
(1) Обычное приложение. Процедура с директивой &НаСервере не прокатит..
|
|||
4
shuhard
10.04.18
✎
09:03
|
(3) у общего модуля есть галка где выполняться, она от толщины клиента не зависит
|
|||
5
Strogg
10.04.18
✎
09:03
|
(3) можешь через сетевую папку. Только доступ с парольной защитой отключить надо
|
|||
6
ammorf
10.04.18
✎
09:04
|
В общем задача такая. Обработка выполняет выгрузку:
Обработина.РежимОбмена = "Выгрузка"; Обработина.ИмяФайлаОбмена = "D:\1CShare\Upload_inueco.xml"; Обработина.ИмяФайлаПравилОбмена = "D:\1CShare\ExchangeRules.xml"; Обработина.ЗагрузитьПравилаОбмена(); Для Каждого ТПВ Из Обработина.ТаблицаПравилВыгрузки.Строки Цикл Для Каждого ТПВСтрока Из ТПВ.Строки Цикл ТПВСтрока.СсылкаНаУзелОбмена = ПланыОбмена.Полный.НайтиПоКоду("001"); КонецЦикла; КонецЦикла; Обработина.ИспользоватьТранзакцииПриВыгрузкеДляПлановОбмена = Истина; Обработина.ВыполнитьВыгрузку(); Сообщить("Выгрузка завершена!"); На сервер обработка отрабатывает отлично. Но на клиентской машине не работает так как путь не существует. |
|||
7
ammorf
10.04.18
✎
09:04
|
Использует обработку УниверсальныйОбменДаннымиXML
|
|||
8
shuhard
10.04.18
✎
09:06
|
(6) запускай на сервере
копируй файлы на клиент - внутри 1С , либо вне 1С |
|||
9
ammorf
10.04.18
✎
09:10
|
(8) Клиент на сервере не вариант. Вообще это регламентное задание и оно выполняется по расписанию. Просто бухи хотят сами когда захотят инициализировать обмен. А работают они на клиентах на своих ПК. Я думал запускать рег. задание принудительно, но что то не разобрался как это сделать.
|
|||
10
ammorf
10.04.18
✎
09:11
|
а предоставлять им работу с консолью заданий я как то побаиваюсь))
|
|||
11
Alexperumov
10.04.18
✎
09:17
|
6) "Но на клиентской машине не работает так как путь не существует" Положи в сетевую папку типа
\\server\1CShare\Upload_inueco.xml |
|||
12
ammorf
10.04.18
✎
09:18
|
(11) попробую уговорить нашего админа) он очень не любит всякие открытые сетевые папки (помешан на безопасности)))
|
|||
13
shuhard
10.04.18
✎
09:21
|
(9) т.е. делать ты ни чего не будешь - смысл создания топика ?
|
|||
14
Сияющий в темноте
10.04.18
✎
09:22
|
В чем проблема написать управлялку конкретным регламентным заданием?
|
|||
15
ammorf
10.04.18
✎
09:26
|
(14) все таки проще действительно пойти путем принудительного запуска регламентного задания.
|
|||
16
_Дайвер_
10.04.18
✎
09:40
|
&НаСервере //вызывается с клиента
Путь = ПолучитьИмяВременногоФайла(); ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(Путь); Тут заполняешь файл например, получаешь или что хочешь делаешь // Получаем двоичные данные файла и помещаем их во временное хранилище ДвоичныеДанные = Новый ДвоичныеДанные(Путь); Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанные); Возврат Адрес; &НаКлиенте //После отработки серверной функции пишешь ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоФайла); ДвоичныеДанные.Записать(Объект.КаталогВыгрузки+"\"+ИмяФайлаXML); Сообщить("Файл сохранен в " + Объект.КаталогВыгрузки, СтатусСообщения.Внимание); Примерно так, нюансы сам разберешь |
|||
17
ammorf
10.04.18
✎
09:46
|
(16) конфигурация в режиме совместимости 8.1. Директивы не работают. Процедура помещаемая в эту директиву с клиента становится не видна.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |