Интеграция в 1с.

Добрый день.
Встала задача получать из ЛЕРСа данные в 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. Есть ли сейчас возможность обращения из 1с 8.3 через фреймворк
  2. Есть ли какие то проблемы именно в связке с 1с?
  3. Можно ли посмотреть примеры кода?

Напрямую использовать библиотеки .NET из 1С нельзя, к ней можно подключить только COM-объекты.

Существует возможность, наоборот, использовать API 1С из программ, написанных на .NET. Пример

Примеры использования Lers Framework вы можете найти:

  1. в этом разделе форума. Например тема.
  2. в разделе загрузок

Документация по LersFramework

Если появятся дополнительные вопросы, задавайте их в этом форуме.

Здравствуйте!
Присоединяюсь к вопросу про пример кода.
Ваш ответ прочитал, но хотелось бы увидеть хотя бы инициализацию библиотеки, дальше сам бы додумал…

В моем предыдущем сообщении приведены три ссылки на примеры.
В первой - пример использования 1С в программе на С#, во второй и третьей - примеры использования Lers Framework в программе на C#.

Какие еще примеры вам необходимы?

Пробую загрузить библиотеку Lers.System.dll, аналогично примеру работы с фискальным регистратором:
ЗагрузитьВнешнююКомпоненту(“FPrnM1C.dll”);
ОбъектФР = Новый(“AddIn.FprnM45”);

  1. Компонента не загружается (пробовал с полным путем к файлу).
  2. Как называется com-объект Lers-учёта, к которому можно обратится для создания объекта?