Добрый день.
Встала задача получать из ЛЕРСа данные в 1с.
Как я понял, есть несколько вариантов. Это выгрузка из веб интерфейса в XML. Обращение к SQL таблицам напрямую. И через библиотеку.
Какой способ посоветуете? Сам я больше склоняюсь к обращению к SQL, но где можно посмотреть описание таблиц и как часто происходят изменения в них?
Так же в документации в библиотеке есть примеры для C# и java, а вот для 1с8 нет. Возможно ли дополнить документацию примером для 1с8.
Однозначно мы не рекомендуем прямое обращение к таблицам - их структура часто меняется, техническая поддержка при прямой работе с базой не оказывается.
Если нужно импортировать данные в 1С из чужих систем, то самый надежный способ - использовать веб-службу, т.к. это дает независимость от версии чужой системы.
При импорте из своей системы, удобнее использовать LERS Framework. Примеры его использования с 1С постараемся опубликовать завтра.
Здравствуйте.
Опишите задачу, которая стоит перед вами. Тогда мы сможем посоветовать более подходящий для вас вариант.
В 1С 8.х можно обращаться к веб-службам. Это будет предпочтительный вариант. Также можно написать powershell скрипт, который будет подключаться к ЛЭРС УЧЕТ и выгружать данные в 1С через COM.
Нам требуется загружать данные о суточных показателях потребления.
Где можно посмотреть описание веб сервиса?
Описание и примеры работы с веб-службой можно посмотреть в документации.
Вот спасибо, то что нужно.
Подскажите еще пожалуйста. Не получается пройти авторизацию.
Прокси = WSСсылки.WS_LERS.СоздатьWSПрокси(“http://www.lers.ru/website/api",“Api”,"ApiSoap”);
Прокси.Пользователь = “admin”;
Прокси.Пароль = “gfhjkm”;
Авторизация = Прокси.Login(“admin”,“gfhjkm”);
СформироватьНадписьПодключения(Авторизация);
Если Авторизация.ErrorCode <> “None” Тогда Возврат; КонецЕсли;
ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить(“http://www.lers.ru/website/api").Получить("GetMeasurePointList”);
WSПараметр = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
СписокТочек = Прокси.GetMeasurePointList(WSПараметр);
В переменной “авторизация” свйоство ErrorCode = “None”, что как бы намекает что авторизация прошла.
Но GetMeasurePointList возвращает ErrorMessage = “Ошибка получения списка точек учета. Пользователь не авторизован”
Подскажите в чем проблема может быть?
При выполнении метода Login, веб-сервис возвращет Cookie клиенту, содержащий идентификатор сессии. Для дальнейшей работы с веб-сервисом, необходимо передавать эти Cookie обратно. Обычно прокси объекты это делают автоматически, необходимо лишь установить Cookie контейнер.
Вот как это выглядит на других языках:
C#:
// Создаем прокси класс для работы со службой
LersApi.Api client = new LersApi.Api();
// Устанавливаем куки-контейнер, необходим для авторизации пользователя
client.CookieContainer = new System.Net.CookieContainer();
PowerShell:
# Создаем прокси класс для работы со службой
$webservice = New-WebServiceProxy -uri $url
# Устанавливаем куки-контейнер, необходим для авторизации пользователя
$webservice.CookieContainer = New-Object System.Net.CookieContainer
Вам необходимо выяснить есть ли поддержка Cookie при работе с веб-службой в 1C.
Судя по всему в 1с нету такой поддержки. Как же быть?
Возможно ли реализовать в вашем веб сервисе альтернативный метод авторизации?
Или помочь в написании C# com объекта? Тогда бы я мог через него обращаться.
Например, при выполнении метода Login, в Response в качестве дополнительного свойства возвращался бы некий с генерированный токен.
И потом он бы передавался во все функции в качестве дополнительного параметра. Возможно ли так сделать?
К сожалению у нас нет специалиста по 1С. Давайте разбираться вместе.
Посмотрите в сторону Soap Toolkit 3.0. Он предоставляет COM интерфейс для работы с удаленной веб-службой. Он должен поддерживать передачу Cookies. 1C в свою очередь будет работать с COM объектами.
Альтернативный способ авторизации будем рассматривать после того как попробуем все варианты.
Спасибо, буду смотреть “Soap Toolkit 3.0”.
Вот пытаюсь через библиотек ваше Lers.Automation.dll реализовать. Объект LersAuto.Server создается, а вот Connect вываливает в ошибку -“произошла исключительная ситуация (Lers.Automation): Ошибка при десериализации типа Lers.Interop.LoginExtraInfo.”
Что это может быть? Параллельно хочу оба варианта проверить, может хоть 1 взлетит.
Начиная с версии 3.03 мы прекратили поддержку библиотеки автоматизации. Было очень много изменений во внутренней структуре ЛЭРС УЧЕТ. COM-интерфейсы библиотеки не были востребованы пользователями (практически все пользовались ей как .Net-сборкой), а их поддержка очень затратна. Мы удалили библиотеку со страницы загрузок.
День добрый!
Необходимо создать в 1с 8.2 документ о нештатных ситуациях в ЛЭРС
Вопрос: как НС получить через фреймворк (Lers.System)? Если, конечно, это возможно
Пока никак. Данный функционал появится после выпуска 3.04.
Добрый день!
- Есть ли сейчас возможность обращения из 1с 8.3 через фреймворк
- Есть ли какие то проблемы именно в связке с 1с?
- Можно ли посмотреть примеры кода?
Напрямую использовать библиотеки .NET из 1С нельзя, к ней можно подключить только COM-объекты.
Существует возможность, наоборот, использовать API 1С из программ, написанных на .NET. Пример
Примеры использования Lers Framework вы можете найти:
Если появятся дополнительные вопросы, задавайте их в этом форуме.
Здравствуйте!
Присоединяюсь к вопросу про пример кода.
Ваш ответ прочитал, но хотелось бы увидеть хотя бы инициализацию библиотеки, дальше сам бы додумал…
В моем предыдущем сообщении приведены три ссылки на примеры.
В первой - пример использования 1С в программе на С#, во второй и третьей - примеры использования Lers Framework в программе на C#.
Какие еще примеры вам необходимы?
Пробую загрузить библиотеку Lers.System.dll, аналогично примеру работы с фискальным регистратором:
ЗагрузитьВнешнююКомпоненту(“FPrnM1C.dll”);
ОбъектФР = Новый(“AddIn.FprnM45”);
- Компонента не загружается (пробовал с полным путем к файлу).
- Как называется com-объект Lers-учёта, к которому можно обратится для создания объекта?