RabbitMQ + 1С. Быстрый старт

Публикация № 845345

Разработка - Системная интеграция - Внешние источники данных

RabbitMQ dll service

Внешняя компонента для отправки сообщения из 1С в кролика. Сервис прослушивания и перенаправления сообщений из кролика в http или web-сервис.

Здравствуйте.

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

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

Основной обмен происходил файлами через файлопомойку без какого-либо оповещения об обработке входящих данных и т.п. Зачастую получалась ситуация, что данные отправлены, что-то пошло не так, данные не получены системой получателем, но система отправитель об этом ни сном ни духом. В результате получаем бесконечный поток писем в поддержку "Где наши платежи/заказы/etc?! В рознице деньги оприходовали/заказ провели,, а на сайт они не попали" и т.п. На диагностику проблемы уходило безумное количество времени, потому что, чтобы понять причину сотрудник поддержки:

  1. Смотрел лог отправки в системе отправителе.
  2. Проверял, что файла нет в папке получателе. (данные не стоят в очереди)
  3. Проверял, что файл есть в архивной папке системы получателя (данные получены и обработаны)
  4. Проверял данные самого файла.
  5. Проверял логику формирования данных.

И это на каждое письмо. Теперь:

  1. Открывает лог отправки данных в системе отправителе и смотрит в нем все статусы пакета данных (дата отправки, дата получения, ссылка на текст отправленных данных).
  2. Проверяет логику формирования данных.

В итоге получаем значительную экономию времени. Думаю, у каждого таких примеров наберется немало.

Итак, выбор пал на RabbitMQ (далее, Кролик). К сожалению, я не обнаружил сразу описания HTTP интерфейса Кролика, а на глаза попала библиотека для C# на самом сайте Кролика. Было решено в исследовательских целях написать COM-компоненту на коленке и небольшой сервис (службу) для обслуживания входящих сообщений и направлений их к адресату.

Компоненту можно регистрировать, как 32, так и 64 битную, зависит от того, какой версией регасма будете регистрировать. В итоге для работы сервера с ней нет необходимости оборачивать ее в COM+. Регистрация компоненты проходит regasm'ом, а не regsvr32:

64 бита:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm /codebase <Путь к файлу компоненты>

32 бита:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm /codebase <Путь к файлу компоненты>

Не знаю, обязателен ли ключ /codebase, но я регистрировал с ним. Версию .NET фреймворка используйте последнюю свою.

Использование компоненты отправки сообщений в 1С:

Объект = НОВЫЙ COMОбъект("AMQPSend.COM"); //Создаем COM  объект
Объект.Connect(ИмяСервераКролика, Логин, Пароль);// Подключаемся к серверу Кролика
Результат = Объект.Send(ИмяУзла, КлючМаршрутизации, СтрокаДанных); //Отправляем данные
Объект.Close();//Закрываем соединение к серверу Кролика

У объекта только одна функция Send. Имя узла - Exchange Кролика, КлючМаршрутизации - routingKey, СтрокаДанных - строковое представление передаваемых данных.

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

Таким образом, отправлять 1С данные в Кролика указанному получателю мы научились. Далее пришло время получать это все оттуда. Так же на C# была написана простенькая служба, которая создает подписчиков на определенные ключи маршрутизации в определенных узлах и переправляет эти данные получателям.

Установка службы:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil <Путь к exe файлу службы>

Удаление

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil /u <Путь к exe файлу службы>

Получателям 1С служба умеет отправлять данные двумя способами - в HTTP-сервис или в Web-сервис. Служба может поднимать множественное количество подписчиков на разные ключи маршрутизации и узлы, переправляя данные в http и/или web-сервис.

Пример конфигурационного файла (находится в папке с экзешником)

<consumers>
  <consumer>
    <host>[Имя сервера Кролика]</host>
    <routingKey>[Ключ маршрутизации]</routingKey>
    <exchange>[Узел Кролика]</exchange>
    <httpUrl>[URL для переправки данных]</httpUrl>
    <soapUrl>[URL для POST запроса в WEB-сервис]</soapUrl>
    <soapAction>[Функция, вызываемая в WEB-сервисе]</soapAction>
    <user>[Пользователь Кролика]</user>
    <password>[Пароль пользователя Кролика]</password>
    <prefetchCount>[Число сообщений, считываемых службой из очереди Кролика]</prefetchCount>
    <soapUrlExample>http://domain.com/base/ws/ESBExchange</soapUrlExample>
    <soapActionExample>http://domain.com/base/ws/ESBExchange/UploadData</soapActionExample>
  </consumer>
</consumers>

 

Credentials для запросов в 1С не ставил, т.к. у меня предполагается отправка все внутри сети. prefetchCount - это уже начались игры разума по вопросам распараллеливания переправки сообщений в 1С. Поднимать несколько подписчиковна одну очередь или забирать в экземпляр слушателя несколько сообщений и распараллеливать в нем - дальше бесконечное поле для ускорения и т.п. prefetchCount определяет сколько сообщений забирает на обработку подписчик себе из очереди Кролика.

В моем случае в одну очередь в день попадет до 30к сообщений - последовательно они все успешно отрабатывают, потому я оставляю этот параметр равный 1. Без создания тасков внутри подписчика увеличение данного числа ничего не даст.

Дополнительно настраивается еще один файл SOAPquery.txt:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="ns">
   <soap:Header/>
   <soap:Body>
      <ns:UploadData>
         <ns:Data>%data%</ns:Data>
      </ns:UploadData>
   </soap:Body>
</soap:Envelope>

В этот файл я добавил шаблон запроса в Web-сервис. Некрасиво, но удобно. Находить удобные библиотеки для работы с SOAP мне было лень. Текст %data% в шаблоне заменяется на передаваемые текстовые данные, потому лучше заворачивайте их в строку Base64, чтобы не заниматься экранированием и прочими радостями. Формат файла удобно получить из SoapUI, скормив ему WSDL вашего сервиса.

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

Теперь прием сообщения в 1С:

[Блок получения данных в HTTP/WEB сервисе]
[Парсинг данных и необходимые действия]

Объект = НОВЫЙ COMОбъект("AMQPSend.COM");
Объект.Connect(ИмяСервераКроликаДляОтвета, Логин, Пароль);
Результат = Объект.Send(ИмяУзлаДляОтвета, КлючМаршрутизацииДляОтвета, ДанныеСОтветом); 
Объект.Close();

В начале производим все необходимые данные в соответствии с логикой загрузки. Далее из входящих данных получаем идентификатор, данные Кролика этого пакета данных (мы ведь их передаем вместе с данными, верно?) и передаем точно так же обратно в Кролик. Теперь наша передача сообщения в другую систему выглядит как:

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

Таким образом, обеим системам неважно, кто и каким образом отправляет сообщение (если это важно для бизнес-логики, то эта обработка будет на стороне каждой из систем на основании входящих данных). Схема чрезвычайно легко масштабируется. В очередь/узел Системы 2 могут посылать сообщения любые другие системы и ответ в эти системы будет точно таким же, как и в Систему 1.

Так что пробуйте, видоизменяйте, унифицируйте.

К публикации приложены как есть:

  • COM компонента для отправки сообщения из 1С
  • Служба подписчиков
  • Исходники и того, и другого.

Экономика:

Потрачено - 5 вечеров свободного времени.

Получено - высвобождение 3-4 человеко часа в день, что в условиях кадрового дефицита - бесценно :)

 

PS Заранее предупрежу - я не .NET разработчик. Писал все на знаниях, оставшихся после института, и туториалах из интернета. Достигать максимального уровня абстракции не собирался. Все выложено исключительно для пробных шагов в этом направлении остальных участников сообщества. Код открыт - можно и нужно модифицировать, как угодно.

Скачать файлы

Наименование Файл Версия Размер
MQ Rabbit + 1С. Быстрый старт.:

.zip 2,44Mb
107
.zip 2,44Mb 107 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. kraynev-navi 499 10.06.18 07:45 Сейчас в теме
Я бы все-таки обратил внимание на разграничение доступа. Нужна хотя бы минимальная защита. Любая копия базы, снятая с рабочей, начнет слать в рэббит "левые" сообщения. Сэкономленные человеко-часы будут перечеркнуты "случайными" отправками платежных документов из баз разработчиков.
2. Goleff74 183 10.06.18 10:28 Сейчас в теме
(1)
Ну, это уже на уровне кода конфигураций контролировать. Либо ключи маршрутизации создавать вида <Строка базы 1><Строка базы 2>, или наплодить несколько узлов с именами Система отправителя в виде строк этих баз, и оттуда уже ключами маршрутизации перенаправлять в узел получателя. Простор для творчества.
А еще лучше не регистрировать компоненту на сервере разработчиков :)
3. Steelvan 98 10.06.18 11:53 Сейчас в теме
туториал = руководство, неуч
soci0pat; ghostaz; Yakud3a; Gureev; +4 23 Ответить
6. nixel 1028 10.06.18 23:44 Сейчас в теме
(3) граммар наци живёт в ЖЖ. проследуйте туда.
RFP; ZhdanovR; ktb; amon_ra; pbazeliuk; webester; UniversaLL; +7 Ответить
12. Evil Beaver 7041 13.06.18 18:47 Сейчас в теме
4. s-coder 10.06.18 20:44 Сейчас в теме
Почему я должен скачивать за мани этих стар, чтобы попробовать?
Donat; 1cProfit; +2 17 Ответить
5. Goleff74 183 10.06.18 23:01 Сейчас в теме
(4)
Вы не должны
mityushov.vv; michmich; Bassgood; Flashill; LeXXeR; Lion_LexXx; temdj; bzaugolnov; Drivingblind; SkyHunter; curdate; EvgeniusRusius; Alien_job; o.nikolaev; kote; Berckk; ABudnikov; igormiro; dnikolaev; baton_pk; Evil Beaver; JohnyDeath; WizaXxX; ArchLord42; madonov; karpik666; ktb; pbazeliuk; jaroslav.h; evgefremov; 9-pm; gzharkoj; t.v.s.; UniversaLL; +34 Ответить
7. Новиков 292 13.06.18 11:56 Сейчас в теме
Приветствую!

К Вашей цитате:
я не обнаружил сразу описания HTTP интерфейса Кролика


Не могли бы пруфом поделиться? Спасибо!
8. Goleff74 183 13.06.18 12:23 Сейчас в теме
10. Evil Beaver 7041 13.06.18 18:37 Сейчас в теме
(8) ой не, HTTP-API это прям совсем медленно, тем более, что по ссылке - администраторский API. Да, он позволяет отправлять, но это костылище. Используйте родных клиентов, работающих по протоколу AMQP. Например, наш <скрытая реклама детектед> :)
32. barelpro 1210 01.12.18 11:11 Сейчас в теме
(10) Коллега, можно подробней плз, за счет чего прямые HTTP-запросы из 1С к RMQ медленнее вашей ВК? Сравнительные замеры проводили?
9. user634257_mryzhov 13.06.18 16:04 Сейчас в теме
В целом не видно в чем здесь выигрыш от Раббит.
30 тысяч сообщений в сутки - не является каким то запредельным параметром для стандартных файловых транспортов фтп, общая папка. Интересно менялась ли схема выгружаемых данных,обработка коллизий, обработка потери сообщений (по крайней мере не принятые пакеты хорошо бы не удалять из очереди или кидать в очередь сообщений с ошибками). Как я понял по коду компоненты, нет обработки исключений, т.е. сообщение в любом случае удаляется из очереди.
Открывает лог отправки данных в системе отправителе и смотрит в нем все статусы пакета данных (дата отправки, дата получения, ссылка на текст отправленных данных).
Проверяет логику формирования данных.
Подобную логику можно гораздо легче на стандартном обмене через файлы реализовать. А то усложняем там где ничего усложнять не требуется.
11. Evil Beaver 7041 13.06.18 18:40 Сейчас в теме
(9) дело в управлении этим хранилищем файлов. Рано или поздно, автоматизируя папку обмена и настраивая к ней доступ, вы напишете сервер очередей. Так может сразу начать с него?
iulyus; artbear; Сурикат; +3 Ответить
13. user634257_mryzhov 14.06.18 16:21 Сейчас в теме
(11) На этапе когда нужен обмен между двумя базами - сервер очередей избыточен.
В описанном примере это именно такой случай - из-за применения Раббита осталось только еще больше не проработанных вопросов, которые до этого при обычном файловом обмене были решены. То есть мы существенно увеличили сложность решения (отдельный сервер очередей, внешние компоненты для обмена, ХТТП-сервис), функциональность та же, а качество хуже.

Rabbit - не серебрянная пуля:)

Я не рассматриваю случаи когда у нас сотни потребителей, распаралеленные очереди, несколько серверов очередей связанных между собой и разнородные среды для интеграции - тогда да я обеими руками за Раббит)
14. 1cProfit 25.06.18 15:49 Сейчас в теме
у кого-то есть готовая компонента для раббита ?
15. Goleff74 183 28.06.18 10:15 Сейчас в теме
(14)
Прикреплена к статье вместе с исходниками.
16. baracuda 2 26.07.18 12:36 Сейчас в теме
Правильно понимаю, что в основном это применяется для разработки сервисных шин данных? ESB?
Где еще можно применить связку?
17. Goleff74 183 26.07.18 14:13 Сейчас в теме
(16)
Например, распределение пиковой нагрузки. Пришло вам 100500 запросов в секунду и веб-сервер отказался работать. Засунули эти 100500 в очередь, сами указали сколько потоков параллельно обрабатываются из Кролика и в колбэк функцию вернули результаты запроса.
18. baracuda 2 26.07.18 15:16 Сейчас в теме
(17) ясно. спасибо за пример.
19. zarucheisky 30.07.18 11:29 Сейчас в теме
(0) ActiveMQ имеет встроенный REST API :)
Вовсе необязательно подсовывать кролика где ни попадя.
stupidgamer; noname148; kote; +3 Ответить
20. MherArsh 24 29.10.18 18:17 Сейчас в теме
А можно как то подписаться на события кролика?
21. Goleff74 183 29.10.18 18:19 Сейчас в теме
(20)
Дописывать / Переписывать приложенную службу.
22. MherArsh 24 29.10.18 18:40 Сейчас в теме
(21) не реализовано, понял, но вот в чем вопрос, как в контексте сервера можно подписаться на события, это не регламентное задание где периодически что то вызывается, все, а иметь запущенного клиента тоже не очень хорошо... у меня варианты кончились )
23. Goleff74 183 29.10.18 20:59 Сейчас в теме
(22)
Не понимаю вашей боли. Давайте пример, чтоли, что вы хотите получить.
24. MherArsh 24 30.10.18 11:01 Сейчас в теме
(23) хочу обработать события по конкретному каналу из кролика, как это сделать в контексте севера 1С, без запущенных клиентов 1С.
25. Goleff74 183 30.10.18 13:35 Сейчас в теме
(24)
При получении сообщения служба посылает http-запрос по указанному вами адресу. Клиентов никаких загружать не надо. Или вы под событиями понимаете что-то иное?
26. MherArsh 24 30.10.18 18:03 Сейчас в теме
(25) я сейчас не говорю про http, его нет, есть RabbitMQ, как 1С может получать данные из какой то очереди, при их появлении.
27. Goleff74 183 30.10.18 18:22 Сейчас в теме
(26)
Эм. Вы ведь прочитали публикацию?
Получателям 1С служба умеет отправлять данные двумя способами - в HTTP-сервис или в Web-сервис. Служба может поднимать множественное количество подписчиков на разные ключи маршрутизации и узлы, переправляя данные в http и/или web-сервис.

Не можете поднять веб-сервер, допишите службу, пусть напрямую в СКЛ пушит данные или КОМ-соединение поднимает и в него пуляет.
30. MherArsh 24 30.10.18 19:33 Сейчас в теме
(27) я читал, и все понял, и задал вопрос, может не по конкретной это теме но это про очереди+1с в целом, как решить вопрос я знаю, просто хочется послушать мысли умных людей по этому вопросу :)
33. leka99 22 22.03.19 11:06 Сейчас в теме
Добрый день.
При подключении к серверу кроля с сервера (Windows server 2008 R2) выдаёт ошибку - {ВнешняяОбработка.ПостановкаВОчередьКролика.МодульОбъекта(27)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (AMQPSending): Не удалось загрузить файл или сборку "RabbitMQ.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=89e7d7c5feba84ce" либо одну из их зависимостей. Не удается найти указанный файл.
Подключение с компа с Windows 7 работает.
Не подскажите направление - в чем может быть проблема ?
28. artbear 1312 30.10.18 18:56 Сейчас в теме
(26) Обрати внимание на платную компоненту
https://silverbulleters.org/rabbitmq

Серьезно и быстро
29. artbear 1312 30.10.18 18:56 Сейчас в теме
(28) Работает напрямую с Реббитом через нативную компоненту 1С
31. MherArsh 24 30.10.18 19:42 Сейчас в теме
(29) спасибо за ссылку, не вариант
34. ardarik 10 11.04.19 09:55 Сейчас в теме
А где в конфиг файле указывается лого пасы web-сервиса?
sergpogo; +1 Ответить
35. sergpogo 12.04.19 11:00 Сейчас в теме
Коллеги, объясните мне убогому пожалуйста.
Правильно я понимаю: Когда на Кролик приходит некое сообщение оно переправляется слушателю.
Слушать пусть будет вебсервис 1С. я не понимаю где я должен указать логин и пароль вебсервиса 1С чтобы кролик в него послал это некое сообщение.
36. seregasame 29.04.19 13:34 Сейчас в теме
webClient.Headers.Add("Authorization: Basic", "логин:пароль"); логин:пароль от 1С нужно в басе64
или
soapRequest.Headers.Add("Authorization: Basic", "логин:пароль");

в зависимости от того что вы используете, http или soap

            
            var plainTextBytes = System.Text.Encoding.UTF8.GetBytes("логин:пароль");
            webClient.Headers.Add("Authorization: Basic", System.Convert.ToBase64String(plainTextBytes));


или

            var plainTextBytes = System.Text.Encoding.UTF8.GetBytes("логин:пароль");
            soapRequest.Headers.Add("Authorization: Basic", System.Convert.ToBase64String(plainTextBytes));
37. seregasame 29.04.19 14:13 Сейчас в теме
можете самостоятельно добавить в файл Consumers.xml в тег Consumer пару полей user1c и password1c.
добавить их же в класс MyConsumer и в его конструктор.
добавить в ServiceMQConsumer в методе InitialiazeConsumers их заполнение.
при отправке запроса в хеадер добавлять логин и пасс из конкретного экземпляра mqConsumer
38. seregasame 30.04.19 10:14 Сейчас в теме
С хеадерами правильно вот так:

            var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(this.user1c + ":" + this.password1c);
            webClient.Headers.Add("Authorization", "Basic " + System.Convert.ToBase64String(plainTextBytes));

и
            var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(this.user1c + ":" + this.password1c);
            soapRequest.Headers.Add("Authorization", "Basic " + System.Convert.ToBase64String(plainTextBytes));
39. vis_tmp 30 25.04.20 14:09 Сейчас в теме
Никак не могу найти, есть ли возможность для 7.7 использовать Rabbit MQ ?
41. mdie 86 15.07.20 16:09 Сейчас в теме
(39) А почему нет? COM-объекты 7ка умеет, всё остальное также реализуемо
40. tictac 19.05.20 13:46 Сейчас в теме
Здравствуйте!

Меня зовут Михаил Киселёв. Я ведущий разработчик группы компаний Легион
Мне интересна Ваша статья. Могли бы Вы добавить меня в друзья для дальнейшего общения

С Уважением,

Михаил Киселёв
42. MultiLexx 19 27.11.20 18:12 Сейчас в теме
При попытке отправить данные получаю ошибку:

(RabbitMQ.Client): None of the specified endpoints were reachable

Что я делаю не так?
И еще служба "слушателя" не стартует, точнее стартует и тут же останавливается.
43. Betman77 30.04.21 12:11 Сейчас в теме
Существует очередь кролика...
каким образом можно указать по какому порту производить подключение?
в моем случае Port 1883 (8883 for TLS)

На стадии подключения к очереди

Объект.Connect(ИмяСервераКролика, Логин, Пароль);// Подключаемся к серверу Кролика,

выдает следующую ошибку:
RabbitMQ.Client: None of the specified endpoints were reachable

я так понимаю, что номер порта не знает?
можно ли, используя данную компоненту - указать номер порта. и если можно, то
где указывается номер порта подключения?
Оставьте свое сообщение

См. также

Конвертация данных Парус 7, 10 - ЗУП 2.5, ЗИКБУ 1.0, КА 1.1, УПП Промо

Внешние источники данных Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 КА1 ЗУП2.5 УПП1 БГУ Россия БУ Госбюджет Абонемент ($m)

Перенос данных Парус 7, 10 - ЗУП 2.5, ЗИКБУ 1.0, КА 1.1, УПП Переносит данные сотрудника, физического лица и начисления за произвольный период

1 стартмани

10.06.2014    36804    67    kns77    87    

Пример обмена данными через XDTO

Внешние источники данных Интеграция v8 УНФ БП3.0 УТ11 КА2 Абонемент ($m)

Пример обмена данными между 1С и сторонним приложением посредством механизма XDTO.

1 стартмани

01.03.2021    2238    6    user925427    2    

Улучшенная обработка универсального обмена данными в формате XML (УФ)

Универсальные обработки Внешние источники данных Обмен через XML v8 v8::УФ 1cv8.cf Абонемент ($m)

Улучшенная обработка "Универсальный обмен данными" с полноценными возможностями СКД для выборки данных (не только для отборов).

1 стартмани

23.06.2020    8971    112    Lem0n    1    

И еще раз о HTTP-сервисах

WEB Внешние источники данных Интеграция v8 БП3.0 ЗУП3.x Россия Абонемент ($m)

Как разработать  подсистему обмена  с сильно ограниченными правами доступа к базе вопрошающего субъекта с использованием различных вариантов маршрутизации.

10 стартмани

28.04.2020    6786    8    zavsom    2    

Загрузка данных из М-Аптеки+ в 1С:Бухгалтерия 8 (ред. 3.0) Промо

Внешние источники данных Файловые протоколы обмена, FTP v8 v8::БУ БП3.0 Фармацевтика, аптеки БУ Абонемент ($m)

Обработка для загрузки файлов выгрузки из программы для автоматизации аптек и аптечных сетей М-Аптека+ в 1С:Бухгалтерия 8, редакция 3.0.

11.07.2014    38979    71    1C_MApteka    40    

Взаимодействие HTML (COM объект, WebKit) с 1С (обычные и управляемые формы)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Показан пример использования HTML (COM объект, WebKit) в 1С (8.3).

2 стартмани

18.01.2020    10970    29    Deniskinr83    0    

Google drive - менеджер файлов

WEB Внешние источники данных v8 1cv8.cf Россия Абонемент ($m)

Синхронизация с гугл диском легко и просто!

10 стартмани

05.12.2019    14720    35    zykov_vitaliy    26    

Использование хранимых процедур MS SQL Server в 1С

Внешние источники данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

03.12.2019    14800    11    Dedushka    27    

Менеджер загрузки данных из весов с печатью этикеток Промо

Внешние источники данных Весы Учет ТМЦ Учет ТМЦ v8 УТ10 УПП1 Абонемент ($m)

Программное обеспечение "Менеджер загрузки данных из весов с печатью этикеток" предназначено для автоматического получения данных по сети Ethernet из весов МАССА-К моделей ВПМ и ТВ_Р3 (модификация MF) в режиме On-Line.

1 стартмани

20.12.2011    25986    81    hrip    10    

Обновление расширений с Google Drive

Расширения Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

03.10.2019    5932    3    Sedaiko    4    

Получение изображения с IP-камеры

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Получение изображения JPG с IP-камеры в виде двоичных данных. В 1С может применяться для фотографирования объектов.

1 стартмани

10.09.2019    13933    41    sivin-alexey    10    

Чтение файлов PDF из 1С

Внешние источники данных Универсальные обработки v8 1cv8.cf Абонемент ($m)

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

1 стартмани

09.09.2019    15118    41    da_1c    5    

Что нам стоит Push построить Промо

Внешние источники данных v8 v8::Mobile Абонемент ($m)

Попробовал некоторое время назад, push сообщения, реализованные в платформе. Понравилось, но есть несколько минусов, на примере одной программы сообщений (не буду показывать пальцем), спустя некоторое время, сообщения переставали приходить онлайн, а на компьютере приходили моментально, при этом сами смартфоны звались флагманами. Читал позднее статью, где описывалось, что проблема на стороне смартфонов, что-то вроде технологий энергосбережения, но точно не помню. Также немалый минус доступно только для смартфонов.

1 стартмани

08.09.2016    30538    17    PloAl    8    

Согласование задач из Outlook

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Согласование задач непосредственно из почтовой программы, в моем случае Outlook 2013 без каких-либо дополнительных настроек. Из почты отправляется GET запрос к HTTP-сервису 1С, который в свою очередь выполняет задачу.

1 стартмани

06.09.2019    11031    16    duhh    17    

Телеграм 1С – почти коробка

Внешние источники данных v8 Абонемент ($m)

Почему это решение называется «почти коробка»? Потому, что это почти коробочное решение. С его помощью, просто добавив подсистему в конфигурацию, уже можно начинать взаимодействовать с мессенджером Telegram.

10 стартмани

20.08.2019    17201    33    zfilin    68    

Расширение Бром для интеграции с 1С

Внешние источники данных WEB v8 Абонемент ($m)

Из этой статьи вы узнаете, как можно быстро и просто синтегрироваться с любой конфигурацией 1С при помощи расширения Бром.

1 стартмани

06.08.2019    8903    5    itworks    23    

Конфигурация для обмена данными (интеграционная шина)

Внешние источники данных WEB v8 1cv8.cf Абонемент ($m)

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

4 стартмани

08.07.2019    17136    33    miha-28    17    

Почта России - отправка и отслеживание, интеграция с Документооборот 8

Внешние источники данных Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО Россия УУ Абонемент ($m)

Выгрузка почтовых отравлений в личный кабинет отправки Почты России; отслеживание почтовых отправлений через Почту России; расширение для интеграции Документооборот 8 с Почтой России

5 стартмани

04.06.2019    14778    105    wtlz    45    

Пример работы с viber из 1С, отправка сообщений из 1С в viber

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Обработка разработана для примера отправки сообщений в viber из 1С.

1 стартмани

16.05.2019    19579    98    Isa816    24    

Выгрузка и подготовка данных для программы "Перечень льготных профессий" для 1С: ЗУП 2.5 (ОТКРЫТЫЙ КОД) Промо

Рабочее место Внешние источники данных Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::СПР ЗУП2.5 Россия БУ ФОМС, ПФ, ФСС Абонемент ($m)

Обработка для формирования и редактирования данных для перечня льготных профессий. В связи с прекращением поддержки ЗУП 2.5 и отсутствием времени на доработку для сдачи годовой отчетности открыл код модуля. Не очередная выгрузка стажей, а практически полный аналог перечня для 1С. Формирование и редактирование стажей с последующей выгрузкой в формат перечня, но только ГОРАЗДО удобнее и быстрее. В общем, смотрите видео. Где-то половина времени на написание обработки ушла именно на удобство и скорость работы. Внимание: код модуля обработки открыт

5 стартмани

09.11.2015    55448    63    Black-fog    62    

Шаблон http-сервиса для вашего проекта

Внешние источники данных WEB Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Http-сервис для обмена данными в формате JSON. Обработчики этого сервиса находятся во внешней обработке, что позволяет дорабатывать его без изменения конфигурации. Также прилагаю пример мобильного приложения для работы с данным сервисом (получает номенклатуру и остатки на складе). Сервис очень быстро разворачивается и масштабируется под ваши задачи.

3 стартмани

04.05.2019    23267    84    MarkoSokolov    48    

WhatsApp чат для 1С

Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

WhatsApp чат для 1С. Расширение конфигурации, подходит для любых конфигураций 1С (управляемые формы).

5 стартмани

15.04.2019    13962    41    ManyakRus    22    

Доработка функционала отправки дополнительных реквизитов 1С: ЭДО для Татнефть

Внешние источники данных Документооборот и делопроизводство Документооборот и делопроизводство v8 ERP2 БУ Абонемент ($m)

Подключаемое расширение к конфигурации ERP с функционалом отправки дополнительных реквизитов 1С ЭДО для Татнефть (№ и дата договора, подразделение, автор, примечание) в электронных документах Счет-фактуры и ТОРГ-12 Проверялось на 1С:ERP Управление предприятием 2.4.6.160.

2 стартмани

07.04.2019    12125    17    sapervodichka    11    

Подсистема обмена данными с порталом ИМНС по электронным счетам-фактурам (автоматический обмен) Промо

Внешние источники данных WEB Инструментарий разработчика v8 1cv8.cf Беларусь БУ НДС Абонемент ($m)

Подсистема включает документы и обработки для автоматического обмена данными с порталом ИМНС через web-сервис. Присутствует возможность заполнения данными типовых операций за период, учёта входящих документов, учёта произвольных исходящих документов. Приложены обработки для запуска задания планировщика на автоматический обмен данными.

1 стартмани

28.07.2016    36565    19    c1nil    4    

Формирование xml файла ЭДО (СБИС, Диадок, Такском и т.п.) для типовых документов (счета-фактуры, накладные)

Внешние источники данных Обмен через XML Документооборот и делопроизводство Документооборот и делопроизводство v8 1cv8.cf Абонемент ($m)

Не все типовые документы типовых конфигураций 1С можно выгрузить в файл формата xml ЭДО. Например счет-фактуру, на текущий момент момент это не предусмотрено. Обработка позволяет сделать это.

4 стартмани

30.03.2019    58864    329    capitan    105    

Генерация схемы xsd из файла xml

Инструментарий разработчика Внешние источники данных v8 Абонемент ($m)

Утилита, генерирующая xsd схему на основании xml файла.

1 стартмани

25.03.2019    20041    34    nbeliaev    11    

Работа с Active Directory из 1С (загрузка / выгрузка данных)

Внешние источники данных v8 1cv8.cf Россия Абонемент ($m)

Загрузка данных из Active Directory / Изменение информации пользователя в AD из 1С.

1 стартмани

26.02.2019    14979    109    Смешной 1С    7    

 Интеграция 1С и C#. Обращение к 1С через COM. Создание номенклатуры и выполнение запроса к 1С из C# на примере интеграции с Союз-PLM (система информационной поддержки жизненного цикла изделий). Обработка «Загрузка заказа на сборку». (ERP) Промо

Загрузка и выгрузка в Excel Внешние источники данных Интеграция v8 ERP2 Абонемент ($m)

Союз-PLM представляет собой полнофункциональный программный комплекс для решения  широкого спектра задач управления инженерной технической информацией наукоемких изделий и сложных инженерных объектов в области машиностроения, приборостроения, архитектуры, строительства. На практике, это управление конструкторской документацией, интегрированное с САПР, бизнес-процессы, файловый архив. Все это работает в SQL и шевелится с помощью скриптов на C#. Скрипты свободно  отлаживаются в MS Visual Studio. Подробнее смотрите на их сайте: http://www.programsoyuz.ru/products/system-soyuz-plm.html  Редактирование, конструирование и использование бизнес-процессов на порядок лучше систем на базе 1С из тех, что я изучил.

1 стартмани

25.07.2016    50545    5    milkers    2    

HTTP API Диадок. Загружаем в Диадок любой документ. Посредством POST и GET запросов

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Поставили задачу через HTTP API Диадок (diadoc-api.kontur.ru) отправить любой файл в Диадок и подписать его (например, служебную записку в формате пдф). Посредством POST и GET запросов.

2 стартмани

14.01.2019    15418    40    John_d    12    

JSON-RPC. Удалённый вызов процедур

Инструментарий разработчика Внешние источники данных v8 Абонемент ($m)

Реализация спецификации JSON-RPC.

1 стартмани

04.01.2019    7314    24    berezdetsky    0    

Интеграция WhatsApp в 1С (botcorp.io и api-messenger.com)

Внешние источники данных v8 Абонемент ($m)

Сейчас у WhatsApp более 1 млрд. пользователей во всём мире. В России мессенджер держится на верхних строчках по популярности среди всех мессенджеров. Из чего следует, что WhatsApp является самым желанным мессенджером для интеграции с 1С.

3 стартмани

22.11.2018    28499    62    17808849    51    

Импорт из EXCEL и других источников (xls, xlsx, xlsb, ods, sxc, dbf, mxl, csv, clipboard, sql) в 1С Промо

Загрузка и выгрузка в Excel Внешние источники данных Обработка справочников Практика программирования Обработка документов v8 КА1 БП2.0 УТ10 Розница Беларусь Украина Россия БУ Абонемент ($m)

-Наглядная, контролируемая загрузка иерархической номенклатуры с различными атрибутами и картинками из прайсов, файлов табличного вида xls,xlsx,xlsb,ods,sxc,dbf,mxl,csv произвольной структуры по указанному диапазону строк, а также из буфера обмена и внешнего SQL-источника данных в основные, дополнительные и пользовательские реквизиты. -Вариантный поиск номенклатуры. -Создание сопутствующей справочной информации. -Создание документов в национальной/иностранной валюте. -Обычное и управляемое приложение. Файл и Клиент-Сервер.

1 стартмани

16.03.2012    383085    7650    StepByStep    736    

Исправление ошибки универсального обмена Бухгалтерия предприятия, редакция 3.0 (3.0.65.х, расширение конфигурации)

Внешние источники данных Адаптация типовых решений v8 БП3.0 Абонемент ($m)

Уже у третьего клиента вижу ошибку Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {http://www.1c.ru/SSL/Exchange/Message}Header Значит, как говаривал Винни-Пух - это неспроста. Ну и точно неспроста, 1С что-то подшаманили в обмене через универсальный формат.

1 стартмани

19.10.2018    23421    44    capitan    15    

Загрузка чека онлайн-касс (загрузка товаров из чека)

Внешние источники данных WEB Кассовые операции Розничная торговля Кассовые операции Розничная торговля v8 1cv8.cf Абонемент ($m)

Обработка-пример, позволяет любому и из любой конфигурации загрузить информацию о товарах из чека(и не только) из почтового сообщения, отправленного из приложения ФНС проверка чеков.

2 стартмани

08.10.2018    25817    40    echo77    73    

Мониторинг показателей систем 1С 8.3 с помощью Zabbix

Внешние источники данных Zabbix v8 1cv8.cf Абонемент ($m)

Опишу свой опыт мониторинга наших систем 1С с помощью Zabbix и ту пользу, которую можно извлечь из этого.

1 стартмани

05.10.2018    49452    65    akimych    49    

Самый простой клиент ЕГАИС УТМ для розницы. $m Промо

Внешние источники данных Рабочее место Розничная торговля Розничная торговля v8 1cv8.cf Россия УУ Абонемент ($m)

Данная обработка позволяет обеспечить приходную часть магазина розничной торговли алкоголем(ЕГАИС розница), или прочего предприятия. Эти действия становятся обязательными для розничного звена в городских поселениях с 01.01.2016 и будут достаточными до 01.07.2016. Предлагаю Вашему вниманию простое и доступное решение, которое позволяет отсрочить проблему интеграции ЕГАИС в розничное звено до указанной даты. (открытый код). Реализовано на открытой модели http://infostart.ru/public/402052/.

2 стартмани

14.12.2015    41435    8    Terrain25    47    

В Telegram из 1С: сообщения с эмодзи (смайлы, пиктограммы, иконки) пользователям и группам

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка отправляет сообщения с эмоджи (смайлы, иконки, пиктограммы) пользователю или группе в Телеграм. Она также показывает список пользователей и групп, которые связывались с Вашим ботом, из этого списка можно выбрать получателя сообщения.

1 стартмани

20.08.2018    16899    65    uno-c    28    

Отправка сообщений через Telegram (через прокси)

Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

Простая обработка для отправки сообщений из 1с в Телеграм конкретному пользователю. Используя прокси-сервер: jqlwb.teletype

1 стартмани

20.07.2018    23241    23    Deda    14    

Обмен 1С:Управление Торговлей 11 и Frontol 5

Внешние источники данных Розничная торговля Розничная торговля v8 УТ11 КА2 Розничная и сетевая торговля (FMCG) Абонемент ($m)

Обработка обмена для 1С Управление Торговлей 11 и фронт-кассовой системы Frontol. Отличия от типовой: выгрузка дисконтных карт с накоплениями. Выгрузка категорий товаров.

3 стартмани

14.07.2018    26726    124    Kutuzov    163    

Модуль для работы 1С (платформа 8.2 и выше) с внешними SOAP Web-сервисами Промо

Внешние источники данных WEB Интеграция v8 1cv8.cf Абонемент ($m)

Модуль для работы 1С (платформа 8.2 и выше) с внешними Web-сервисами, реализованными по протоколу SOAP.

2 стартмани

15.02.2016    42464    85    lunjio    15    

Экономим время на ввод операций в 1С: Деньги

Внешние источники данных Обработка документов Банковские операции Банковские операции v8 1cv8.cf Домашние учет и финансы Абонемент ($m)

Рабочее решение автоматического создания операций в 1С: Деньги. Основано на анализе СМС.

1 стартмани

14.05.2018    16521    17    vsbronnikov    29    

Битрикс24. Работаем с оффлайн событиями

Внешние источники данных v8 1cv8.cf Россия Абонемент ($m)

Появление оффлайн событий упростило синхронизацию Битрикс24 -> 1С. Теперь, например, можно загрузить только измененные между сеансами обмена сделки. А не тащить все незавершенные. В статье описание, как это можно сделать.

1 стартмани

11.05.2018    12464    42    user662672_explorer2000    29    

Интеграция с Redmine (Rest-API)

Внешние источники данных v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Интеграция с Redmine (Rest API). Тестировалось на 1С:Предприятие 8.3.12.1412 1. Получение списков Проектов, Трекеров, Статусов, Версий, Пользователей 2. Отбор задач по дополнительным полям (произвольные поля добавляемые пользователями в Redmine) 3. Получение Учета времени с отбором по пользователю и диапазону дат 4. Получение задач с различными отборами (гибкая настройка)

1 стартмани

28.04.2018    16498    52    lastpioneer    6    

7 причин, почему интеграция стала приятной. Не упускайте ряд потрясающих возможностей Промо

Внешние источники данных Интеграция Мобильная разработка v8 1cv8.cf Абонемент ($m)

В статье показаны примеры получения данных без программирования на стороне «1С:Предприятие 8». Вам нужно проверить гипотезу и проанализировать данные, почему бы не интегрироваться с Excel? Используете технологии .NET и «1С:Предприятие 8», процесс связывания систем движется катастрофически медленно? Хотите native Android приложение с вашими данными всегда под рукой?

1 стартмани

01.10.2015    60386    48    pbazeliuk    23    

Интеграция между Atlassian Jira и 1С:Предприятие 8.3 используя Jira REST API (выборка, создание и изменение запросов, чтение, создание и удаление записей о работах, чтение комментариев и другие возможности)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с Atlassian Jira используя Jira REST API. Ключевые функции: выборка запросов с использованием JQL; добавление и изменение запросов; добавление, изменение и удаление записей о работах; чтение комментариев к запросам; сохранение всех ключевых параметров между сеансами работы. Тестирование проводилось на платформе 1С (8.3.11.2954) совместно с JIRA Server platform (7.3.7)

1 стартмани

24.04.2018    39409    219    Ko1t    85    

Чтение и запись из таблиц гугл (google sheets) в табличный документ 1С (8.3, управляемые формы)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка на управляемой форме для 1С версии 8.3 для доступа к сервисам Google Sheets c использованием протокола авторизации OAuth 2.0. Выполняет получение списка листов таблицы гугл, чтение таблицы гугл в табличный документ 1С и запись из табличного документа 1С в таблицу гугл. Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.11.2954).

1 стартмани

09.04.2018    48857    329    Ko1t    80    

Чат бот в 73 строки на 1С - ИИ наступает

Практика программирования Внешние источники данных v8 1cv8.cf Абонемент ($m)

Интеграция с уже готовой системой чат-бота для различных случаев жизни. Используется API от DialogFlow Google. Обработка тестировалась на 1С:Предприятие 8.3 (8.3.10.2252) Должно работать на всех 8.3 версиях.

1 стартмани

09.04.2018    15125    31    Lapitskiy    7    

Загрузка документов из системы Emex через веб-сервисы (Коммерция-Автологистика) Промо

Внешние источники данных WEB v8 v8::ОУ УТ10 УУ Абонемент ($m)

Обработка предназначенная для дилеров системы Emex, для загрузки документов из программы Коммерция(Автологистика) в 1С 8.2 Управление торговлей 10. Для загрузки используются веб-сервисы программы Автологистика.

10 стартмани

11.08.2014    22842    1    desarz    1    

Загрузка чеков из ФНС (Налоговой), отсканированных с помощью QR-кода, в 1С:Деньги

Внешние источники данных WEB Банковские операции Банковские операции v8 1cv8.cf Домашние учет и финансы УУ Абонемент ($m)

Расширение для получения чеков со всеми товарами в чеке с сайта ФНС (Налоговой).

1 стартмани

19.03.2018    16412    22    semen_2008    4    

Оповещения из ЗУП и ERP в TELEGRAM

Внешние источники данных v8 ERP2 ЗУП3.x Абонемент ($m)

Начитался статей про интеграцию 1С -> Telegram, решил аккумулировать опыт и попробовать сделать какую-нибудь полезную обработку. Как результат - внешняя обработка, уведомляющая ответственных сотрудников по расписанию о необходимости оплаты отпусков, материальной помощи, премий. Данные посылаются в виде PDF файла (Отчет, созданный на основании макета). Можно использовать обработку как обучающую. Тестировалось на ERP 2.4.2.139, на ЗУП 3.X тоже должно работать.

1 стартмани

01.03.2018    16946    57    khabibullin.tu    14    

Подписка на события, преобразование объекта в JSONAPI, отправка в RabbitMQ

Внешние источники данных Универсальные функции v8 1cv8.cf Абонемент ($m)

Обработка содержит функции: - сериализация объекта 1с в JSONAPI - отправка в RabbitMQ по HTTP

1 стартмани

26.02.2018    14176    22    yaxinr    5    

HTTP API Диадок. Пример авторизации и обращения к методам посредством POST и GET запросов

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Поставили задачу через HTTP API Диадок (diadoc-api.kontur.ru) получить статус документа. Посредством POST и GET запросов.

2 стартмани

19.02.2018    20859    71    John_d    5