1С сеть

  1. Предисловие

Не так давно столкнулся с задачей интеграции облачной АТС и 1с CRM. Типовой функционал предполагает получения http-запросов через http-сервис. Обработкой запросов занимается сервер и создается документ «Телефонный звонок». И все бы ничего если данного функционала хватило для работы, но данной статьи тогда бы не было.

Дополнительная задача заключалась в открытии форм существующего документа по клиенту «Интерес» и обработки «Мастер формирования интереса».

  1. Поиск решения

Проблема была проста: при приеме http-запроса работает только Сервер, вызова Клиента не происходит. Вопрос, как реализовать открытие форм и отображение их конкретному пользователю?

За день «гуглежа» энтузиазм устремился в минус бесконечность пока не наткнулся на статью, посвященную функционалу «Обсуждения» добавленного в платформу 8.3.11.2867.

Сервис представляет собой открытие обсуждения между пользователями информационной базы в форме чата.

Данная статья подразумевает передачу данных с сервера на клиент путем отправки сообщения конкретному пользователю системы.

  1. Реализация

Код в основном использовался из статьи указанной выше лишь с малыми изменениями необходимыми для решения моих задач.

Для начала каждому пользователю необходимо создать свое «Служебное обсуждение», ориентироваться будем по Ключу, который (в моем случаи) формируется из идентификатора пользователя в системе обсуждения (уид пользователя в системе обсуждения и уид в информационной базе разный) и произвольного префикса (оставил как в статье, для меня это было не принципиально).

&НаСервере Процедура СоздатьСлужебноеОбсуждение(КлючСлужебногоОбсуждения) Экспорт Если СистемаВзаимодействия.ПолучитьОбсуждение(КлючСлужебногоОбсуждения) = Неопределено Тогда Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение(); Обсуждение.Отображаемое = Ложь; Обсуждение.Ключ = КлючСлужебногоОбсуждения; Обсуждение.Участники.Добавить(СистемаВзаимодействия.ИдентификаторТекущегоПользователя()); Обсуждение.Записать(); КонецЕсли; КонецПроцедуры &НаСервере Функция КлючСлужебногоОбсуждения() Экспорт Возврат «Сообщения сервера » + СистемаВзаимодействия.ИдентификаторТекущегоПользователя(); КонецФункции

Функция для генерации ключа «Служебного обсуждения» возвращает сформированный ключ и процедура, в которую передаем ключ, для формирования самого обсуждения.

Участники обсуждения добавляются по идентификатору пользователя в системе обсуждения.

СистемаВзаимодействия.ИдентификаторТекущегоПользователя() – возвращает идентификатор в системе по текущему пользователю информационной базы.

СистемаВзаимодействия.ПолучитьИдентификаторПользователя(ПользовательИБ.УникальныйИдентификатор) – возвращает идентификатор пользователя по уникальному идентификатору пользователя информационной базы.

Обсуждение.Отображаемое = Ложь – скрываем обсуждение от пользователя (а зачем оно ему?).

Обсуждение создано, пользователь подвязан, следующий этап – добавление возможности пользователя получать эти самые «Служебные обсуждения».

Для этого будем использовать процедуру, которую мы будем вызывать 1 раз за сеанс, в моем случаи я подключаю ее при входе в рабочее место «Телефония» и до конца действия сеанса. Все поступившие сообщения для пользователя сохраняются в системе даже если сеанс неактивен, после выполнения процедуры все сообщения будут воспроизведены.

&НаКлиенте Процедура ПодписатьсяНаСлужебноеОбсуждение(КлючСлужебногоОбсуждения) Экспорт ОшибкаПодключения = Новый ОписаниеОповещения( , , , «ОшибкаПодключения», БИТ_СерверВзаимодействия); ОбработкаСообщенийСервера = Новый ОписаниеОповещения(«ОбработкаСообщенийСервера», БИТ_СерверВзаимодействия); СистемаВзаимодействия.НачатьПодключениеОбработчикаНовыхСообщений(ОшибкаПодключения, КлючСлужебногоОбсуждения, ОбработкаСообщенийСервера); КонецПроцедуры

Процедура проста: на вход передаем Ключ и заводим описания вызова процедур. ОшибкаПодключения – по желанию, если что-то пошло не так, то система проинформирует и ОбработкаСообщенийСервера – то, что и будет обрабатывать наше сообщение в моменте его поступления.

Следующее что нам необходимо сделать – создать сообщение, которое мы и будем обрабатывать.

В моем случаи я получаю данные из http-запроса, типовым функционалом формируется документ «Телефонный звонок», а дальше забираю входящий номер телефона, внутренний телефон менеджера и сам документ себе в процедуру формирования служебного сообщения.

&НаСервере Процедура ВыполнитьДействиеПриЗвонке(НомерТелефонаВх, НомерПользователя, ДокументЗвонка) Экспорт ПользовательСВ = ПолучитьПользователяСВ(НомерПользователя); Ключ = «Сообщения сервера » + ПользовательСВ; СлужебноеОбсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(Ключ); СтруктураДанных = Новый Структура; СтруктураДанных.Вставить(«Значение», ДокументЗвонка); СтруктураДанных.Вставить(«СпособОбработки», «Индикатор»); СтруктураДанных.Вставить(«НомерТелефона», НомерТелефонаВх); Сообщение = СистемаВзаимодействия.СоздатьСообщение(СлужебноеОбсуждение.Идентификатор); Сообщение.Данные = СтруктураДанных; Сообщение.Записать(); КонецПроцедуры

Функция ПолучитьПользователяСВ(НомерПользователя) – получает данные по внутреннему номеру АТС пользователя. Сначала я получаю пользователя информационной базы, после чего по уникальному идентификатору получаю пользователя системы взаимодействия.

Далее по ключу ищу его «Служебное обсуждение» и завожу в него структуру с данными. Так же через структуру можно передать название «клиентской» процедуры или функции и в обработке данного сообщения ее вызвать (Выполнить(«НазваниеПроцедуры()») – для процедуры и Вычислить(«НазваниеФункции()») – для функции).

Создаем сообщение в «Служебном обсуждении» и записываем его.

Осталось нам только обработать новое сообщение у пользователя.

&НаКлиенте Процедура ОбработкаСообщенийСервера(Сообщение, ДополнительныеПараметры) Экспорт СтруктураЗвонка(Сообщение.Данные.НомерТелефона, Сообщение.Данные.Значение); КонецПроцедуры &НаКлиенте Процедура СтруктураЗвонка(НомерТелефона, Документ) … КонецПроцедуры

Это та самая процедура которую мы подключаем в ОбработкаСообщенийСервера.

Возможно это особенность конфигурации, но сам сервер взаимодействия устанавливать не пришлось. Как установить сервер взаимодействия можно посмотреть .

Касательно новых конфигурации, например Управление торговлей 11.4 включение сервиса взаимодействий находится в НСИ и администрирование -> Интернет-поддержка и сервисы -> Группа «Обсуждения»

На этом все.

Моя первая статья, особо ногами не пинайте)

Переход торговых организаций на электронный обмен данными при взаимодействии со своими контрагентами по поставке товара и его реализации имеет ряд неоспоримых преимуществ. Но при большом количестве контрагентов (по нашим оценкам — более 50-70) реализация механизмов электронного взаимодействия по схеме Peer-to-Peer (когда необходимо установить отдельный канал обмена с каждым из своих поставщиков/покупателей) силами самого торгово-сервисного предприятия требует значительных вложений в технические и организационные решения.

Сервис «1С:Сеть» позволяет предприятию использовать готовое решение и построить такую систему «под ключ» практически без первичных вложений. Сервис «1С:Сеть» состоит из центра обработки данных — сертифицированного EDI-провайдера «1С:Сеть» — и механизмов электронного взаимодействия, поставляемых с типовыми торговыми конфигурациями. (аббревиатура EDI расшифровывается как Electronic Data Interchange — электронный обмен данными).

EDI-провайдер «1С:Сеть» адаптирован к российской бизнес-практике. С этой целью фирма «1С» использовала результаты работы межрегиональной общественной организации «Стандартизация Обмена Деловой Информацией» (СОДИ), собравшей крупнейших российских представителей розничного бизнеса, которая формализовала обычные для России бизнес-процессы обмена.

«1С:Сеть» поддерживает обмен документами для четырех бизнес-процессов:

  • обмен данными о товаре;
  • обмен коммерческими предложениями;
  • заказ товара, акцепт заказа;
  • поставка товара, накладная, акцепт накладной.

Подробная информация о подключении к сервису «1С:Сеть» на сайте 1c-net.ru.

Инфраструктура

Инфраструктура сервиса «1С:Сеть» включает несколько компонентов. Ее основа — Центр Обработки Данных (ЦОД), отвечающий высоким требованиям отказоустойчивости и производительности.

ЦОД размещен у одного из провайдеров связи первого уровня и снабжен:

  • системой автономного электропитания с источниками бесперебойного питания и дизель генератором;
  • газовой системой пожаротушения;
  • системой климат-контроля;
  • высокой степенью защищенности оборудования от несанкционированного доступа;
  • бесперебойным качественным доступом в сеть Интернет.

Программное ядро ЦОД взаимодействует с клиентской частью при помощи Web-сервисов.

Оно осуществляет маршрутизацию сообщений EDI в формате CommerceML EDI между абонентами «1С:Сеть», реализует протокол гарантированной доставки и гарантирует последовательность доставки сообщений.

Клиентская часть сервиса «1С:Сеть» — это используемые абонентами информационные системы, прежде всего, продукты семейства «1С:Предприятие».

Преимущества EDI

EDI (Electronic Data Interchange — электронный обмен данными) получил распространение, поскольку дает ощутимые преимущества компаниям. Выгоды возникают в таких областях, как управление складами, транспорт и дистрибуция, администрирование, а также управление денежными потоками.

Уменьшение числа ошибок, сокращение времени получения информации

Сегодня осталось не много предприятий, не использующих компьютерные системы. При бумажном обмене данные документов приходится распечатывать из компьютерной системы одного контрагента, чтобы затем вручную ввести в компьютерную систему другого, что приводит к ошибкам и досадному увеличению продолжительности обмена по сравнению с тем, как быстро передаются данные внутри компаний.

EDI позволяет стыковать компьютерные системы непосредственно, что радикально уменьшает число ручных ошибок и в десятки раз ускоряет попадание информации из системы в систему.

Прямая экономия затрат

Сокращаются затраты на факсимильную и почтовую связь, курьерскую службу, ощутимые для больших компаний.

Низкие затраты при организации обмена с новым партнером

В отличие от сообщений электронной почты, сообщения EDI структурированы и стандартизованы. Подключившись к EDI один раз, компания может взаимодействовать с любым партнером, также использующим EDI, без необходимости доработок, связанных с различиями в используемых форматах или информационных системах.

Возможность использования современных схем взаимодействия в цепочках поставок

В результате внедрения EDI появляется возможность использовать современные схемы взаимодействия поставщиков и потребителей, основанные на мгновенном получении информации контрагентами, такие как VMI (Vendor Managed Inventory) и CPFR (Collaborative Planning Forecasting Replenishment). Упомянутые схемы позволяют увеличить скорость оборота и снизить объем складских запасов, что приводит к повышению рентабельности оборотного капитала. Быть может, указанная возможность, позволяющая оптимизировать бизнес-процессы в масштабе всей цепочки поставок, более важна, чем перечисленные выше источники прямой экономии.

Поддержка стандартов в сервисе «1С:Сеть»

Бизнес-процессы

  • Бизнес-процессы взаимодействия сетевых операторов и их поставщиков СОДИ.
  • Бизнес-процессы системы синхронизации данных GS1.

Форматы сообщений