Здравствуйте. УПП, обычные формы
Есть обработка, где пользователь выбирает каталог с файлами PDF. После выбора каталога, нужно скопировать эти файлы в папку, которая лежит C:\Program Files\source на сервере(доступа к этой папке у пользователей нету). Дальше запустить скрипт, который лежит там же C:\Program Files\src\index.js и результат окажется в папке C:\Program Files\dist, с которой мне и нужно дальше работать. Как это делается? Не могу понять сам принцип
Есть обработка, где пользователь выбирает каталог с файлами PDF. После выбора каталога, нужно скопировать эти файлы в папку, которая лежит C:\Program Files\source на сервере(доступа к этой папке у пользователей нету). Дальше запустить скрипт, который лежит там же C:\Program Files\src\index.js и результат окажется в папке C:\Program Files\dist, с которой мне и нужно дальше работать. Как это делается? Не могу понять сам принцип
По теме из базы знаний
- Передача файлов и данных на веб-сервер средствами 1С:Предприятие 8.X методом POST
- Загрузка файлов на сервер с прогрессом и докачкой
- Выгрузка в XML и загрузка из XML. Пример с передачей файла с клиента на сервер и обратно
- Передача файла с клиента на сервер и с сервера на клиент. Управляемые формы
- Динамические реквизиты на управляемой форме и передача файла Excel на сервер
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Внешняя обработка на обычных формах видит всегда только файловую систему клиента. Файловую систему сервера из внешней обработки не увидеть. Можно например создать общий модуль с галкой Сервер и ВызовСервера и из него увидеть файловую систему сервера.
1. передать с клиента на сервер
2. Сохранить на сервере в нужную папку
3. запустить скрипт (должно быть разрешение на исполнение внешних компонентов)
4. дождаться выполнения (ожидать появления файла в папке)
5. profit
2. Сохранить на сервере в нужную папку
3. запустить скрипт (должно быть разрешение на исполнение внешних компонентов)
4. дождаться выполнения (ожидать появления файла в папке)
5. profit
(2)Тут скорее всего трудности с обычными формами. Где Клиент, а где сервер не понятно
На УФ нет проблем
А на Обычном приложении действительно вопрос, как одну процедуру направить жестко на сервер. Кроме Общего модуля с галкой "Сервер" и не вижу решения
На УФ нет проблем
&НаКлиенте
Процедура ВыполнитьСкрипт()
Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(<Имя файла на клиенте исходный>));
ВыполнитьСкриптНаСервере(Адрес);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьСкриптНаСервере(Адрес)
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес);
ДвоичныеДанные.Записать(<Имя конечного файла в Prorram Filrs>);
ЗапуститьПриложение(<Имя файла скрипта>);
КонецПроцедуры
ПоказатьА на Обычном приложении действительно вопрос, как одну процедуру направить жестко на сервер. Кроме Общего модуля с галкой "Сервер" и не вижу решения
Сделал так, как вы сказали.
Запустил на сервере
Но "Ошибка доступа к файлу". Как её можно побороть?
Запустил на сервере
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес);
ДвоичныеДанные.Записать("C:\Program Files\source");
ЗапуститьПриложение("C:\Program Files\src\index.js");
ДвоичныеДанные.Записать("C:\Program Files\source");
ЗапуститьПриложение("C:\Program Files\src\index.js");
Но "Ошибка доступа к файлу". Как её можно побороть?
(7)
Или перенести обрабатываемые файлы и скрипт куда-нибудь в более доступное место, а то запись чего-либо в C:\Program Files\ часто вызывает аллергию и у антивируса, и у защитника Windows.
"Ошибка доступа к файлу". Как её можно побороть?
Дать права на папки C:\Program Files\source и C:\Program Files\src\ для пользователя, от имени которого запускается сервер 1С.
Или перенести обрабатываемые файлы и скрипт куда-нибудь в более доступное место, а то запись чего-либо в C:\Program Files\ часто вызывает аллергию и у антивируса, и у защитника Windows.
(8)у пользователя права есть, от имени которого запущен сервер 1С
Пытаюсь как-то так:
Пока попытка попадает в исключение
Пытаюсь как-то так:
КаталогПриемник = "C:\Program Files\source";
ИмяФайла = "\120200090_1607321580.pdf";
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес);
тПуть = КаталогПриемник + ИмяФайла;
Попытка
ДвоичныеДанные.Записать(тПуть);
Исключение
Сообщить("не удалось");
КонецПопытки;
ПоказатьПока попытка попадает в исключение
(10)
Вам критически важно держать свои скрипты именно в ней? Попробуйте создать папку типа MyPDF, и желательно - не на диске С.
Пройдет запись в нее?
я не прямо в Program Files записываю, там ещё одна папка в ней
Это уже не важно, вся Program Files под особым контролем.
Вам критически важно держать свои скрипты именно в ней? Попробуйте создать папку типа MyPDF, и желательно - не на диске С.
Пройдет запись в нее?
(12)
Антивирус на сервере есть? Если да - отключите и пробуйте записать.
Мне нужно как-то воспользоваться этим скриптом, предварительно закинув свой ПДФ в эту папку
Еще раз: проверьте права именно на папку "C:\Program Files\source" - они могут не совпадать с правами на "C:\Program Files\".
Антивирус на сервере есть? Если да - отключите и пробуйте записать.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот