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
09.06.18
92
.zip 2,44Mb 92 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. kraynev-navi 468 10.06.18 07:45 Сейчас в теме
Я бы все-таки обратил внимание на разграничение доступа. Нужна хотя бы минимальная защита. Любая копия базы, снятая с рабочей, начнет слать в рэббит "левые" сообщения. Сэкономленные человеко-часы будут перечеркнуты "случайными" отправками платежных документов из баз разработчиков.
2. Goleff74 170 10.06.18 10:28 Сейчас в теме
(1)
Ну, это уже на уровне кода конфигураций контролировать. Либо ключи маршрутизации создавать вида <Строка базы 1><Строка базы 2>, или наплодить несколько узлов с именами Система отправителя в виде строк этих баз, и оттуда уже ключами маршрутизации перенаправлять в узел получателя. Простор для творчества.
А еще лучше не регистрировать компоненту на сервере разработчиков :)
3. Steelvan 10.06.18 11:53 Сейчас в теме
туториал = руководство, неуч
soci0pat; ghostaz; Yakud3a; Gureev; +4 20 Ответить
6. nixel 922 10.06.18 23:44 Сейчас в теме
(3) граммар наци живёт в ЖЖ. проследуйте туда.
RFP; ZhdanovR; ktb; amon_ra; pbazeliuk; webester; UniversaLL; +7 Ответить
12. Evil Beaver 6833 13.06.18 18:47 Сейчас в теме
4. s-coder 10.06.18 20:44 Сейчас в теме
Почему я должен скачивать за мани этих стар, чтобы попробовать?
Donat; 1cProfit; +2 16 Ответить
5. Goleff74 170 10.06.18 23:01 Сейчас в теме
(4)
Вы не должны
Drivingblind; SkyHunter; curdate; Ganjubas; 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; +26 Ответить
7. Новиков 291 13.06.18 11:56 Сейчас в теме
Приветствую!

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


Не могли бы пруфом поделиться? Спасибо!
8. Goleff74 170 13.06.18 12:23 Сейчас в теме
10. Evil Beaver 6833 13.06.18 18:37 Сейчас в теме
(8) ой не, HTTP-API это прям совсем медленно, тем более, что по ссылке - администраторский API. Да, он позволяет отправлять, но это костылище. Используйте родных клиентов, работающих по протоколу AMQP. Например, наш <скрытая реклама детектед> :)
32. barelpro 1172 01.12.18 11:11 Сейчас в теме
(10) Коллега, можно подробней плз, за счет чего прямые HTTP-запросы из 1С к RMQ медленнее вашей ВК? Сравнительные замеры проводили?
9. user634257_mryzhov 13.06.18 16:04 Сейчас в теме
В целом не видно в чем здесь выигрыш от Раббит.
30 тысяч сообщений в сутки - не является каким то запредельным параметром для стандартных файловых транспортов фтп, общая папка. Интересно менялась ли схема выгружаемых данных,обработка коллизий, обработка потери сообщений (по крайней мере не принятые пакеты хорошо бы не удалять из очереди или кидать в очередь сообщений с ошибками). Как я понял по коду компоненты, нет обработки исключений, т.е. сообщение в любом случае удаляется из очереди.
Открывает лог отправки данных в системе отправителе и смотрит в нем все статусы пакета данных (дата отправки, дата получения, ссылка на текст отправленных данных).
Проверяет логику формирования данных.
Подобную логику можно гораздо легче на стандартном обмене через файлы реализовать. А то усложняем там где ничего усложнять не требуется.
11. Evil Beaver 6833 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 170 28.06.18 10:15 Сейчас в теме
(14)
Прикреплена к статье вместе с исходниками.
16. baracuda 2 26.07.18 12:36 Сейчас в теме
Правильно понимаю, что в основном это применяется для разработки сервисных шин данных? ESB?
Где еще можно применить связку?
17. Goleff74 170 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 :)
Вовсе необязательно подсовывать кролика где ни попадя.
noname148; kote; +2 Ответить
20. MherArsh 24 29.10.18 18:17 Сейчас в теме
А можно как то подписаться на события кролика?
21. Goleff74 170 29.10.18 18:19 Сейчас в теме
(20)
Дописывать / Переписывать приложенную службу.
22. MherArsh 24 29.10.18 18:40 Сейчас в теме
(21) не реализовано, понял, но вот в чем вопрос, как в контексте сервера можно подписаться на события, это не регламентное задание где периодически что то вызывается, все, а иметь запущенного клиента тоже не очень хорошо... у меня варианты кончились )
23. Goleff74 170 29.10.18 20:59 Сейчас в теме
(22)
Не понимаю вашей боли. Давайте пример, чтоли, что вы хотите получить.
24. MherArsh 24 30.10.18 11:01 Сейчас в теме
(23) хочу обработать события по конкретному каналу из кролика, как это сделать в контексте севера 1С, без запущенных клиентов 1С.
25. Goleff74 170 30.10.18 13:35 Сейчас в теме
(24)
При получении сообщения служба посылает http-запрос по указанному вами адресу. Клиентов никаких загружать не надо. Или вы под событиями понимаете что-то иное?
26. MherArsh 24 30.10.18 18:03 Сейчас в теме
(25) я сейчас не говорю про http, его нет, есть RabbitMQ, как 1С может получать данные из какой то очереди, при их появлении.
27. Goleff74 170 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 1194 30.10.18 18:56 Сейчас в теме
(26) Обрати внимание на платную компоненту
https://silverbulleters.org/rabbitmq

Серьезно и быстро
29. artbear 1194 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-сервиса?
35. spogo 2 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 Сейчас в теме
Здравствуйте!

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

С Уважением,

Михаил Киселёв
Оставьте свое сообщение

См. также

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

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

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

11.07.2014    34108    29    1C_MApteka    37    

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

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

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

1 стартмани

23.06.2020    3727    43    Lem0n    0    

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

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

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

10 стартмани

28.04.2020    4448    8    zavsom    2    

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

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

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

2 стартмани

18.01.2020    7629    24    Deniskinr83    0    

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

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

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

1 стартмани

20.12.2011    22090    3    hrip    10    

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

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

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

10 стартмани

05.12.2019    9039    26    zykov_vitaliy    22    

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

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

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

1 стартмани

03.12.2019    9789    3    Dedushka    26    

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

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

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

1 стартмани

03.10.2019    3808    3    Sedaiko    4    

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

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

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

1 стартмани

08.09.2016    27177    17    PloAl    8    

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

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

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

1 стартмани

10.09.2019    10394    32    sivin-alexey    8    

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

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

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

1 стартмани

09.09.2019    8650    18    da_1c    4    

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

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

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

1 стартмани

06.09.2019    8151    12    duhh    17    

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

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

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

10 стартмани

20.08.2019    12903    24    zfilin    64    

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

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

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

1 стартмани

06.08.2019    6294    4    itworks    13    

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

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

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

4 стартмани

08.07.2019    11360    27    miha-28    17    

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

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

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

5 стартмани

09.11.2015    51058    84    Black-fog    62    

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

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

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

5 стартмани

04.06.2019    9197    68    wtlz    27    

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

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

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

1 стартмани

16.05.2019    13555    77    Isa816    24    

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

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

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

3 стартмани

04.05.2019    18898    72    MarkoSokolov    47    

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

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

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

1 стартмани

28.07.2016    33344    19    c1nil    4    

WhatsApp чат для 1С

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

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

5 стартмани

15.04.2019    10492    36    ManyakRus    20    

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

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

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

2 стартмани

07.04.2019    9271    12    sapervodichka    10    

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

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

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

4 стартмани

30.03.2019    37907    211    capitan    84    

 Интеграция 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    44251    5    milkers    2    

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

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

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

1 стартмани

25.03.2019    14143    23    nbeliaev    11    

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

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

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

1 стартмани

26.02.2019    11373    80    Смешной 1С    7    

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

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

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

2 стартмани

14.01.2019    11272    29    John_d    8    

Импорт из 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    364823    2863    StepByStep    733    

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

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

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

1 стартмани

04.01.2019    4989    18    berezdetsky    0    

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

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

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

3 стартмани

22.11.2018    24854    58    17808849    49    

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

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

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

1 стартмани

19.10.2018    16941    33    capitan    15    

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

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

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

2 стартмани

14.12.2015    38918    45    Terrain25    47    

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

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

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

2 стартмани

08.10.2018    20273    36    echo77    71    

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

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

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

1 стартмани

05.10.2018    38681    54    akimych    48    

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

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

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

1 стартмани

20.08.2018    11536    45    uno-c    17    

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

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

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

2 стартмани

15.02.2016    39543    84    lunjio    15    

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

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

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

1 стартмани

20.07.2018    17942    17    Deda    12    

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

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

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

3 стартмани

14.07.2018    19426    99    Kutuzov    146    

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

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

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

1 стартмани

14.05.2018    13465    16    vsbronnikov    25    

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

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

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

1 стартмани

01.10.2015    56353    45    pbazeliuk    23    

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

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

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

1 стартмани

11.05.2018    9743    39    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    13385    42    lastpioneer    6    

Интеграция между 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    31179    174    Ko1t    78    

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

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

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

10 стартмани

11.08.2014    20579    2    desarz    1    

Чтение и запись из таблиц гугл (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    38268    257    Ko1t    72    

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

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

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

1 стартмани

09.04.2018    12581    29    Lapitskiy    7    

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

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

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

1 стартмани

19.03.2018    13637    21    semen_2008    4    

Оформление ветеринарных документов на продукты питания и грядущие глобальные изменения в 1С (часть 1) Промо

Внешние источники данных Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 Сельское хозяйство и рыболовство Оптовая торговля, дистрибуция, логистика Пищевая промышленность УУ Абонемент ($m)

С 01 января 2016 года возможно оформление ветеринарно-сопроводительных документов в электронном виде. Что это означает для предприятий, производящих и торгующих подконтрольной продукцией?

3 стартмани

27.12.2015    61208    7    axxell    28    

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

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

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

1 стартмани

01.03.2018    14397    54    khabibullin.tu    14    

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

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

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

1 стартмани

26.02.2018    11395    21    yaxinr    3    

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

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

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

2 стартмани

19.02.2018    16542    43    John_d    4    

К вопросу об интеграции 1С и Битрикс24

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

Обработка реализует 4 метода из Rest API Битрикс24 - получение списка бизнес-процессов, получение списка задач, создание задачи и получение свойств задачи по ее идентификатору.

1 стартмани

19.02.2018    15050    90    bulpi    15