Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выгрузка информации на весы в регламентном задании
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
kosalex
Доброго времени суток!
Делаю процедуру выгрузки данных на весы в регламентном задании, не получается подключиться к торговому оборудованию, а точнее подключить внешнюю компоненту ДЛЛ.
Кто ни будь сталкивался с работой торгового оборудования в регламентном задании?

При подключении ДЛЛ в реглам. задании, по какому пути ищет?

Писал так:
ПодключитьВнешнююКомпоненту("AddIn.DrvLP");


И так:
ПодключитьВнешнююКомпоненту("C:\Program Files (x86)\1cv8\8.3.5.1625\bin\DrvLP.dll");


logist
dll работает не в интерактивном варианте? База серверная? Пользователь сервера имеет доступ к dll? Больше информации, не понятно в чем проблема.
kosalex
logist @ Сегодня, 18:48 необходимо зарегистрироваться для просмотра ссылки,
Конфа ДАЛИОН ТРЕНД
База серверная.

ДЛЛ подключается если руками делать выгрузку,через форму, клиентский модуль вызывается и подключается без проблем.
Админ говорит что пользователь имеет права доступа

а вот в регламентном задании, подключение из клиентского модуля перенесено в серверный. И вот в этом серверном модуле при ПодключитьВнешнююКомпоненту возвращается ЛОЖЬ.

Сбросили эту ДЛЛ в SysWoW64 и зарегистрировали ее. все равно результат = ЛОЖЬ...
logist
Цитата(kosalex @ 21.02.16, 21:26) необходимо зарегистрироваться для просмотра ссылки
И вот в этом серверном модуле при ПодключитьВнешнююКомпоненту возвращается ЛОЖЬ.

Значит библиотека умеет работать только в интерактивном режиме. Думаю это вполне нормально, т.к. процесс передачи информации между весами, всё таки должен обеспечивать человек, разработчикам dll может в голову не приходило, что какое-то ПО будет автоматически что-то делать с весами, поэтому они использовали только интерактивные директивы.
kosalex
logist @ Сегодня, 20:43 необходимо зарегистрироваться для просмотра ссылки,
Я пытаюсь запускать еще один сеанс в процедуре регламентного задания, с открытием обработки которая в свою очередь уже произведет подключение ДЛЛ и дальнейшую работу.
Но вот беда...не получается запустить этот сеанс....

logist
Цитата(kosalex @ 21.02.16, 23:00) необходимо зарегистрироваться для просмотра ссылки
Я пытаюсь запускать еще один сеанс в процедуре регламентного задания

Он никогда не запустится. Серверная часть не может запускать интерактивные действия.

Ваш случай реализуется планировщиком заданий в windows, но для этого на сервере должен постоянно висеть активный сеанс, в котором из планировщика ОС будет запускаться интерактивный сеанс 1С, выполнять вашу процедуру, и завешаться. Признак выполнения процедуры можно передать в командной строке, и в ПриНалачеРаботы его поймать, выполнить что надо, и завершиться. Только так.
kosalex
logist @ Сегодня, 22:05 необходимо зарегистрироваться для просмотра ссылки,


Т.е. у меня не получиться вот как необходимо зарегистрироваться для просмотра ссылки ?
logist
Цитата
Код для обычного приложения. Теоретически полностью аналогично будет работать и в управляемом.

Текст хороший, но я так и не понял, как это Теоретически работает. У меня на практике, в управляемом приложении, не получилось в серверном варианте запустить клиентскую часть.
И еще, я из текста так и не понял, как это сработает даже в обычному приложении. Разве что это рассчитано на то, что на компе постоянно запущен сеанс пользователя, под которым и работает(запускается) сам сервер 1С, тогда да, это будет работать.

p.s. вы там кстати, комменты почитайте, там же обсуждают, что com-компоненты на сервере не работают.
Batchir
Недавно пришлось писать подключение к SAP с сервера (регл. заданиями тянуть данные)
Следующий код успешно отработал:

Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
Скрипт.languadge = "vbscript";
Текст = "
|Function GetData()
|Dim R3
|Set R3 = CreateObject(""SAP.Functions"")";
// и тут далее идет код получения данных с SAP на vbs

Скрипт.AddCode(Текст);

ТаблицаДанных = Скрипт.Run("GetData");


Условия работы:
1. На СЕРВЕРЕ корректно установлена компонента для стыковки с SAP.
Для проверки нужно зайти в сессию под пользователем от имени которого запускается сервер 1С и проверить что б интерактивно всё работало
2. Пришлось немного поиграться с MSScriptControl, т.к. не сразу взлетел (необходимо зарегистрироваться для просмотра ссылки )

З.Ы. информация просто из опыта того как я запустил ком на сервере))
Petre
А непосредственно:
R3 = Новый COMОбъект("SAP.Functions");

не сработал?
Batchir
Честно ))) даже не пробовал. Был код на VBS который нужно было вызывать для получения данных. В сам код не вникал, писали люди со стороны SAP и дали мне.
kosalex
Сделал так, обработка1 - в ней код по выгрузке и подключению ДЛЛ. в регламентном задании процедура которая запустит сеанс и откроет обработка1, после выполнения кода в обработка1 сеанс закроется.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.