SpRecord и 1с
Re: SpRecord и 1с
Всем спасибо, все получилось из 1С если вам нужна демка готов написать небольшую, скажите только какой функционал в ней реализовать, просто описание вызовов всех функция очень долгий.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: SpRecord и 1с
Напишите демку получения номера. Однако предыдущий пример плох тем, что не смотрит на результаты ф-ций. Например, Connect не всегда может выполниться успешно. Поэтому в хорошую демку нужно добавить условие "Если" ("If"). Возможно такое в 1С ?
Re: SpRecord и 1с
Вот демка, получает список каналов с указанного сервера и номер из аона из указанного канала.
- Вложения
-
- DemoSpRecord.zip
- Пример для 1С:Предприятие 8.2 (Обычное приложение)
- (5.54 КБ) 1730 скачиваний
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: SpRecord и 1с
Не знаю как смотреть этот файл. Можете текст кода сюда выложить?
Re: SpRecord и 1с
Получение списка каналов:
Перем СписокКаналовСтрока;
СписокКаналовСтрока = "";
SPRecordChannel = Новый COMОбъект("spsdksw.SpRecordClientW",СокрЛП(АдресСервера));
Попытка
SPRecordChannel.Connect(0, "", "");
Если SPRecordChannel.Connected Тогда
SPRecordChannel.GetChannelNames(1,СписокКаналовСтрока);
SPRecordChannel.Disconnect();
Иначе
Предупреждение("Неудачная попытка подключения!");
КонецЕсли;
Исключение
Предупреждение("Неудачная попытка подключения!");
КонецПопытки;
Получение номера:
Перем ПолучНомер;
ПолучНомер = "";
SPRecordChannel = Новый COMОбъект("spsdksw.SpRecordChannelClientW",СокрЛП(АдресСервера));
Попытка
SPRecordChannel.Connect(СокрЛП(ИмяКанала), 1, "", "");
Если SPRecordChannel.Connected Тогда
SPRecordChannel.GetInfo(7,ПолучНомер);
SPRecordChannel.Disconnect();
Иначе
Предупреждение("Неудачная попытка подключения!");
КонецЕсли;
Исключение
Предупреждение("Неудачная попытка подключения!");
КонецПопытки;
Перем СписокКаналовСтрока;
СписокКаналовСтрока = "";
SPRecordChannel = Новый COMОбъект("spsdksw.SpRecordClientW",СокрЛП(АдресСервера));
Попытка
SPRecordChannel.Connect(0, "", "");
Если SPRecordChannel.Connected Тогда
SPRecordChannel.GetChannelNames(1,СписокКаналовСтрока);
SPRecordChannel.Disconnect();
Иначе
Предупреждение("Неудачная попытка подключения!");
КонецЕсли;
Исключение
Предупреждение("Неудачная попытка подключения!");
КонецПопытки;
Получение номера:
Перем ПолучНомер;
ПолучНомер = "";
SPRecordChannel = Новый COMОбъект("spsdksw.SpRecordChannelClientW",СокрЛП(АдресСервера));
Попытка
SPRecordChannel.Connect(СокрЛП(ИмяКанала), 1, "", "");
Если SPRecordChannel.Connected Тогда
SPRecordChannel.GetInfo(7,ПолучНомер);
SPRecordChannel.Disconnect();
Иначе
Предупреждение("Неудачная попытка подключения!");
КонецЕсли;
Исключение
Предупреждение("Неудачная попытка подключения!");
КонецПопытки;
Re: SpRecord и 1с
А можете выложить данный пример под 7 версию 1С? Я скопировал текст, но 1С выдает ошибку:
SPRecordChannel = Новый <<?>>COMОбъект("C://spsdksw.SpRecordClientW",СокрЛп(192.168.0.105));
{C:\DOCUMENTS AND SETTINGS\ÄÈÌÀ\ÐÀÁÎ×ÈÉ ÑÒÎË\DGH.ERT(5)}: Переменная не определена (COMОбъект)
Если SPRecordChannel.Connected <<?>>Тогда
{C:\DOCUMENTS AND SETTINGS\ÄÈÌÀ\ÐÀÁÎ×ÈÉ ÑÒÎË\DGH.ERT(8)}:Выражение должно иметь логический тип
SPRecordChannel = Новый <<?>>COMОбъект("C://spsdksw.SpRecordClientW",СокрЛп(192.168.0.105));
{C:\DOCUMENTS AND SETTINGS\ÄÈÌÀ\ÐÀÁÎ×ÈÉ ÑÒÎË\DGH.ERT(5)}: Переменная не определена (COMОбъект)
Если SPRecordChannel.Connected <<?>>Тогда
{C:\DOCUMENTS AND SETTINGS\ÄÈÌÀ\ÐÀÁÎ×ÈÉ ÑÒÎË\DGH.ERT(8)}:Выражение должно иметь логический тип
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: SpRecord и 1с
Dima, а зачем вы путь указываете?
Re: SpRecord и 1с
Да я и без пути пробовал, ошибка таже. Библиотеку нужно как-то регистрировать? Но компьютере установлен Sprecord и 1С, этого достаточно? Или нужно как-то указать по какому адресу искать описание COM объектов?
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: SpRecord и 1с
Какая у вас версия ПО SpRecord?
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: SpRecord и 1с
Не силен я в 1С. SpRecord предоставляет COM-объект. Так что ищите в инете общую инфу про использование COM-объектов в 1С.
Re: SpRecord и 1с
Оказывается 1С 7.7 не умеет работать с COM объектами, ищем другой способ интеграции. А вариантов остается не много, либо через web сервер 1С умеет делать http запросы, либо ставить sql версию sprecord, 1С умеет подключатся в sql сервер.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: SpRecord и 1с
Еще можно создать на каком-либо языке dll, которая вызывает ф-ции SpRecord. А эту dll подключить к 1С. Правда, можно ли в 1С использовать ф-ции из dll, я не знаю. Опять же, гуглите в яндексе.
Re: SpRecord и 1с
Точно dll, спасибо за идею. Наверно так и сделаем. Насколько я знаю мы уже используем какуе-то dll для загрузки на сервер данных.
Re: SpRecord и 1с
Sannx, а можно как-то передать адрес сервера не в момент создания COM объекта, а после?
SPRecordChannel = Новый COMОбъект("spsdksw.SpRecordChannelClientW",СокрЛП(АдресСервера)); - вот так вот 7 версии не получается
Но грубо говоря получается вот так:
SPRecordChannel = Новый COMОбъект("spsdksw.SpRecordChannelClientW")
Можно потом как-то передать адрес сервера? Или только в момент создания? В документации к SDK не нашел метода или свойства для задания адреса.
SPRecordChannel = Новый COMОбъект("spsdksw.SpRecordChannelClientW",СокрЛП(АдресСервера)); - вот так вот 7 версии не получается
Но грубо говоря получается вот так:
SPRecordChannel = Новый COMОбъект("spsdksw.SpRecordChannelClientW")
Можно потом как-то передать адрес сервера? Или только в момент создания? В документации к SDK не нашел метода или свойства для задания адреса.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: SpRecord и 1с
Адрес сервера нужен для удаленного покдлючения. Если устр-во sprecord стоит на том же компе, что и 1С, то, по идее, адрес не требуется. Проверьте эту идею у себя.
Re: SpRecord и 1с
Здравствуйте.
А как узнать свойства и методы COM-объекта SpRecord???
SPRecordChannel = Новый COMОбъект("spsdksw.SpRecordChannelClientW","10.10.2.202");
Нужно типо справки по этому COM-объекту.
Help!!!
А как узнать свойства и методы COM-объекта SpRecord???
SPRecordChannel = Новый COMОбъект("spsdksw.SpRecordChannelClientW","10.10.2.202");
Нужно типо справки по этому COM-объекту.
Help!!!
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: SpRecord и 1с
Вообще-то методы и свойства описаны в Справке SDK. А также их можно посмотреть в "заголовочниках" на С и Делфи (опять же в SDK).
Re: SpRecord и 1с
А как справку SDK посмотреть, где она??