Загрузка внешних компонент фоновым заданием
В программе используется отправка СМС через внешнию компоненту. Создал регламентное задание и под Фоновым заданием выдает ошибку:
Хотя если это задание запустить в ручную через консоль заданий то выполняется успешно. Также если вызвать через любого пользователя функцию
МодульРегламентныхЗаданий.ОтправитьSMSSMSintel() успешно срабатывает.
выдает ошибку именно под пользователем "Фоновое задание"
компонента на сервере приложения
Сисадмин говорит, что права есть на каталог под системной записью 1С
Где копать, в чем причина?
{ОбщийМодуль.МодульРегламентныхЗаданий.Модуль(17187)}: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту): Ошибка при загрузке внешней компоненты
Хотя если это задание запустить в ручную через консоль заданий то выполняется успешно. Также если вызвать через любого пользователя функцию
МодульРегламентныхЗаданий.ОтправитьSMSSMSintel() успешно срабатывает.
выдает ошибку именно под пользователем "Фоновое задание"
ПутьКомпонента = КаталогПрограммы() + "SMS\SMSXml.dll";
Попытка
ЗагрузитьВнешнююКомпоненту(ПутьКомпонента);
СМСХмл = Новый("Addin.SMSXml");
Исключение
ЗаписьЖурналаРегистрации("Контрагенты. SMS", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
СМСХмл = -1;
Возврат;
КонецПопытки;
Показатькомпонента на сервере приложения
Сисадмин говорит, что права есть на каталог под системной записью 1С
Где копать, в чем причина?
По теме из базы знаний
- Оповещение приложений 1С об изменении данных на сервере
- Расширенные методы загрузки внешних библиотек в http-сервисах OneScript
- Эволюция расширения конфигурации
- Асинхронные вызовы свойств и методов Внешних компонент. Особенности 2-х способов асинхронной работы
- Эффективное управление фоновыми заданиями и коммуникация сеансов сервера с Фоном с помощью Структуры обмена (ноу-хау) + Бонус: Альтернативный вариант через Хранилище настроек
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для эксперимента создал внешнию обработку с кодом:
Процедура КнопкаВыполнитьНажатие(Кнопка)
ПутьКомпонента = КаталогПрограммы() + "SMS\SMSXml.dll";
сообщить(ПутьКомпонента);
Попытка
ЗагрузитьВнешнююКомпоненту(ПутьКомпонента);
СМСХмл = Новый("Addin.SMSXml");
сообщить("ОК");
Исключение
СМСХмл = -1;
сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
КонецПроцедуры
Запустил на сервере где выдает ошибку фоновое задание и вот результат и ни каких ошибок
C:\Program Files (x86)\1cv8\8.3.10.2466\bin\SMS\SMSXml.dll
ОК
Процедура КнопкаВыполнитьНажатие(Кнопка)
ПутьКомпонента = КаталогПрограммы() + "SMS\SMSXml.dll";
сообщить(ПутьКомпонента);
Попытка
ЗагрузитьВнешнююКомпоненту(ПутьКомпонента);
СМСХмл = Новый("Addin.SMSXml");
сообщить("ОК");
Исключение
СМСХмл = -1;
сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
КонецПроцедуры
Запустил на сервере где выдает ошибку фоновое задание и вот результат и ни каких ошибок
C:\Program Files (x86)\1cv8\8.3.10.2466\bin\SMS\SMSXml.dll
ОК
(7)
Запустил на сервере где выдает ошибку фоновое задание и вот результат и ни каких ошибок
C:\Program Files (x86)\1cv8\8.3.10.2466\bin\SMS\SMSXml.dll
так клиентское приложение (1cv8.exe) - 32-битное. Оно 32-битным и останется, на 64-битной машине запускаете или нет.
а рабочий процесс (rphost.exe), где запускается фоновое задание, 64-битный.
Запустил на сервере где выдает ошибку фоновое задание и вот результат и ни каких ошибок
C:\Program Files (x86)\1cv8\8.3.10.2466\bin\SMS\SMSXml.dll
так клиентское приложение (1cv8.exe) - 32-битное. Оно 32-битным и останется, на 64-битной машине запускаете или нет.
а рабочий процесс (rphost.exe), где запускается фоновое задание, 64-битный.
Нашел публикацию Использование внешних COM-компонент (.dll) или любых клиентских методов в регламентных заданиях серверной базы. буду пробывать.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот