Использование сервиса Corp2World, отправка «сообщений в мир» из 1С

в 9:22, , рубрики: , open source, Программирование, метки:

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

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

Начну, пожалуй, с регистрации пользователя на сервисе C2W.
Заходим на сайт Corp2World и выбираем пункт регистрация, заполняем обязательные поля, незабываем о временной зоне (так время сообщения будет отображаться правильно). После регистрации не забудьте активировать аккаунт перейдя по ссылке, которую Вы получите по email и принять лицензионное соглашение, иначе сообщения доставляться не будут.

Далее идем в раздел «Загрузить» и ищем ссылку на файл конфигурации для 1С, знакомимся с инструкцией и выполняем указанные действия (процедура занимает от силы 5 минут, с учетом «внимательно почитать 3 раза»). Для примера брал за основу конфигурацию «1С: Управление производственным предприятием для Украины», так как это была, на данный момент, единственная развернутая тестовая конфа, которую не жалко было «угробить», в целях эксперимента естественно. После слияния конфигураций, в объектах «общие модулях» появился модуль ЯдроC2W. Там собран весь необходимый функционал (вместе с подробными комментариями), который быстро позволит начать использовать сервис С2W.

image

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

image

Сервис поддерживает два режима работы:

  1. список возможных получателей настраивается на сервисе в разделе каналы коммуникации, в этом случае на сервис приходит сообщение без указания получателя и в зависимости от контекста сообщения и настроек фильтров каналов доставляется по указанным адресам (email, sms, ISQ и т.д.).
  2. список получателей приходит в теле сообщения, и сервис только доставляет их.

Для 1С или других подобных систем 2-й вариант наиболее предпочтителен, т.к. база данных уже как правило, содержит информацию о телефонах и email-х клиентов и пользователей. Исходя из этого пример, который я приведу, будет использовать этот режим сервиса.

Я буду использовать две основных функции:
«ВставитьМассивПолучателей» — сформировать список получателей сообщения, а именно тип получателя (email, ISQ, телефон и т.д. ) и его адрес (номер телефона, номер ISQ, и т.д.).

«ОтправитьДляОбработкиНаСерверС2W» — непосредственно отправка сообщения, в которой будет указано тема сообщения, текст сообщения и параметры доступа к сервису (имя пользователя и пароль зарегистрированного Вами аккаунта).

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

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

image

Итак, мы определились, по каким каналам будет использоваться сервис. В данном случае это электронная почта и ICQ.
Далее в окне «Конфигурация» добавляем подписку на события.

image

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

image

Далее пишем следующий небольшой код:

image

Номер канала соответствующего эл. почте (подчеркнутая «1» на скриншоте) и ICQ (подчеркнутая «5» на скриншоте), а также номера других каналов, можно увидеть в комментариях модуля «ЯдроC2W», либо на самом сайте сервиса.
Все, теперь у нас есть реализованный пример отправки сообщения на электронную почту и «аську» ответственным лицам склада получателя (в нашем примере это будет выступать НТТ). Сохраняем и обновляем конфигурацию и можем пользоваться.
Чтобы проверить работоспособность примера проделаем следующие шаги:

  1. Создадим некое «ответственное лицо» для какой-то НТТ, и в секции «адреса и телефоны» укажем хотя бы один E-Mail и ICQ.
    image image

  2. Создадим некую НТТ и назначим «ответственным лицом» раннее созданное физ. лицо.
    image image

  3. Создадим и проведем документ «Перемещение товаров». После проведения должны увидеть следующее:
    image
    image

Теперь можно смело проверять «почту» и «аську», которую мы указали для физ. лица в пункте 1.

Результат:
Перемещение товаров НФ000000006 от 30.06.2011 14:07:18
notifier@corp2world.com
кому: мне

Рюмки одноразовые 50мл, Тарелки одноразовые; Из склада: Главный склад; В склад: Киоск «Все для дома»;
— Corp2World Notifier

Автор: olegdv

Источник

Поделиться

* - обязательные к заполнению поля