PinkRabbitMQ - Native API компонента 1С с открытым исходным кодом, для обмена сообщениями через RabbitMQ

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

Разработка - Разработка внешних компонент

Бесплатно free RabbitMQ Обмен

137
PinkRabbitMQ представляет собой Native API компоненту для 1С Предприятия 8 (Windows 32bit и 64bit) с открытым исходным кодом на с++ (можно собрать компоненту самостоятельно). PinkRabbitMQ это низкоуровневая компонента которая реализует обмен по протоколу AMQP с брокером сообщений RabbitMQ. Для организации высокоуровнего обмена между информационными базами предназначен Адаптер. Компонента разрабатывается в рамках проекта Адаптер.

Предпосылки создания своей компоненты

  • Мы активно развиваем свой проект Адаптер (о нем мы уже писали на инфостарте), в котором реализован обмен через RabbitMQ
  • Т.к. 1С напрямую не поддерживает протокол AMQP (а для обмена с брокером RabbitMQ через http есть ограничения) нам потребовалась внешняя компонента
  • Раньше мы использовали стороннюю компоненту Yellow RabbitMQ, но для некоторых наших заказчиков было важно избежать зависимости от конкретного поставщика, и наличие закрытого кода (в виде скомпилированной компоненты) являлось важным аргументом против использования Yellow RabbitMQ
  • Технически создание своей компоненты нам казалось не сложным
  • У нас уже был весь набор тестов для Адаптера, который позволил нам быть уверенными, что наша компонента работает
  • Хотелось получить возможность самостоятельного развития компоненты

 

Наши цели публикации исходных кодов компоненты Pink RabbitMQ:

  • Она у нас все равно есть, и для нас это "ничего не стоит"
  • Мы хотим улучшить код компоненты
  • Мы хотим "продвинуть кролика в массы", как "среду" обмена данными, и как средство для построения событийно-ориентированных интеграций
  • Мы надеемся, что это будет полезно и для нашего Адаптера, как инструмента организации обмена

 

Особенности компоненты Pink RabbitMQ:

  • Описание API компоненты содержится в https://github.com/BITERP/PinkRabbitMQ/blob/master/README.md
  • Представляет собой Native API компоненту для 1С Предприятия 8 (Windows 32bit и 64bit). Для Linux мы не компилировали, но радикальных препятствий для этого нет (примерно понятно, какие нужно для этого сделать доработки)
  • С точки зрения API компонента практически полностью совместима с  Yellow RabbitMQ т.е. в Адаптер мы просто замени компоненту на нашу, но те механизмы, которые не нужны в Адаптере мы не реализовывали
  • В основе компоненты лежат "свежие" библиотеки
    •  AMQP-CPP - асинхронный клиент для работы  c протоколом AMQP
    •  POCO C++ - только для работы с tcp socket
  • Для обеспечения совместимости с Yellow RabbitMQ мы внутри компоненты превратили асинхронные методы библиотеки в синхронные, что немного повлияло на производительность
  • При разработке исходный код компоненты проверяются Sonar Cube и тестируются BDD тестами Адаптера (см. бэджи в репозитории)

 

Вопросы производительности

Поскольку мы использовали ранее Yellow RabbitMQ, то и сравнивали с ней:

Простой синтетический тест

Метод

Yellow RabbitMQ

Pink RabbitMQ

Последовательная отправка 1000 сообщений (сек)

28.30

57.54

Последовательное получение 1000 сообщений (с отправкой 2000 логов) (сек) 220.41 390.70

 

Тест на реальном проекте где в Адаптере компонента Yellow RabbitMQ была заменена на Pink RabbitMQ.

У нас не было цели провести отдельный чистый тест, мы просто хотели убедиться, что на одном из наших проектов, на котором мы недавно перешли с обмена БСП (не типового) на обмен через RabbitMQ при переходе на компоненту Pink RabbitMQ не будет проблем с производительностью.

В рамках теста из базы УТ10.3 в базу ERP переносился 1241 документ и проводился в ERP (реализации товаров превращались в поступления)

Метод

Yellow RabbitMQ

Pink RabbitMQ

План обмена из БСП в формате КД2

Длительность отправки из УТ 10.3 (час) 1:47 2:19 1:38
Длительность загрузки в ERP (час) 3:10 2:48 3:36
Общая длительность от момента как начали отправлять до момента, что все получили (час) 3:12 2:51 3:47


т.е. мы видим, что на реальном проекте

  • Меньшая скорость работы самой компоненты "теряется" во времени записи и проведения реальных загруженных документов
  • Общая длительность обмена зависит от прочих факторов гораздо больше, чем от скорости работы самой компоненты

по этому пока мы не считаем меньшую производительность Pink RabbitMQ проблемой

 

API

Компонента имеет ряд методов для работы из встроенного языка 1С. Параметры с тегом [НЕ РЕАЛИЗОВАНО] имеют пустую реализацию, но передавать их все равно требуется. Параметры с тегом [НЕОБЯЗАТЕЛЬНЫЙ] можно не передавать. Список методов:

Connect - устанавливает соединение с сервером RabbitMQ

Параметры:

  • host - Строка - Адрес сервера RabbitMQ
  • port - Число - Порт работы через tcp (обычно 5672)
  • login - Строка - Имя пользователя
  • pwd - Строка - Пароль пользователя
  • vhost - Строка - Vhost пользователя
  • pingRate - Число - [НЕ РЕАЛИЗОВАНО][НЕОБЯЗАТЕЛЬНЫЙ]. Частота пульса

DeclareExchange - Объявить точку обмена

Параметры:

  • name - Строка - Имя exchange
  • type - Строка - Тип точки обмена. Поддерживаются "direct", "fanout", "topic"
  • onlyCheckIfExists - Булево - [НЕ РЕАЛИЗОВАНО] Не создавать новую, выбросить исключение, если такой точки нет.
  • durable - Булево - Сохранять сообщения на диске на случай рестарта RMQ (не рекомендуется)
  • autodelete - Булево - Удалить после того, как от точки будут отвязаны все очереди.

DeleteExchange - Удаляет очередь с сервера

Параметры:

  • name - Строка- Имя точки обмена.
  • ifunused - Булево - Удаление будет выполнено, только если точка обмена не используется.

DeclareQueue - Объявить очередь

Параметры:

  • name - Строка - Имя объявляемой очереди.
  • onlyCheckIfExists - Булево - [НЕ РЕАЛИЗОВАНО] Не создавать очередь с таким именем, использовать существующую
  • save - Булево - Кешировать сообщения на диске, на случай падения RMQ.
  • exclusive - Булево - [НЕ РЕАЛИЗОВАНО] Только текущее соединение может иметь доступ к этой очереди.
  • autodelete - Булево - Удалить очередь если к ней был подключен, а затем отключен читающий клиент.

Возвращаемое значение:

  • Имя очереди, заданное явно в 1-м параметре.

DeleteQueue - Удаляет очередь с сервера

Параметры:

  • name - Строка - Имя очереди
  • onlyIfIdle - Булево - Удаление будет выполнено, только если очередь не используется
  • onlyIfEmpty - Булево - Удаление будет выполнено, только если очередь пуста

BindQueue - Установить связь очереди. Создает маршрут от точки обмена до очереди.

Параметры:

  • queue - Строка - Имя очереди
  • exchange - Строка - Имя точки обмена
  • routingKey - Строка - Rлюч маршрутизации.

UnbindQueue - Отсоединяет очередь от точки обмена.

Параметры:

  • queue - Строка - Имя очереди
  • exchange - Строка - Имя точки обмена
  • routingKey - Строка - Rлюч маршрутизации.

BasicPublish - Отправить сообщение

Параметры:

  • exchange - Строка - Имя точки в которую отправляется сообщение
  • routingKey - Строка - Ключ маршрутизации (см. руководство RMQ)
  • message - Строка - Тело сообщения
  • livingTime - Число - [НЕ РЕАЛИЗОВАНО] Время жизни сообщения в миллисекундах
  • persist - Булево - [НЕ РЕАЛИЗОВАНО] Сбрасывать сообщение на диск

BasicReject - Отказывается от последнего полученного сообщения. Работает по принципу Ack, но в обратную сторону.

Параметры отсутствуют

BasicConsume - Начать чтение. Регистрирует потребителя сообщений для очереди.

Параметры:

  • queue - Строка - Очередь из которой будем читать сообщения.
  • consumerId - Строка - [НЕ РЕАЛИЗОВАНО] имя потребителя. Если не задан, то имя потребителя сгенерирует сервер и вернет из метода
  • noConfirm - Булево - [НЕ РЕАЛИЗОВАНО] не ждать подтверждения обработки. Сообщения будут удалены из очереди сразу после отправки на клиента.
  • exclusive - Булево - [НЕ РЕАЛИЗОВАНО] монопольно захватить очередь
  • selectSize - Число - [НЕ РЕАЛИЗОВАНО] количество сообщений единовременно отправляемых клиенту. Оптимизационный параметр, если > 1 усложняет программирование клиента

Возвращаемое значение:

  • Строка. Имя потребителя, сгенерированное сервером или переданное в параметре ИмяПотребителя.

BasicConsumeMessage - Получить сообщение

Параметры:

  • consumerId - Строка - [НЕ РЕАЛИЗОВАНО] Имя зарегистрированного потребителя
  • outdata - Строка - Выходной параметр. Тело сообщения.
  • timeout - Число - Таймаут ожидания сообщения в миллисекундах. 0 означает без ожидания

BasicCancel - Закрывает канал для чтения сообщений

Параметры:

  • channelId - Строка - Имя созданного ранее потребителя.

BasicAck Отсылает серверу подтверждение (ack), что сообщение обработано и его можно удалить. Подтвердить можно только последнее прочитанное сообщение.

Параметры отсутствуют

GetLastError - получает информацию о последней ошибке

Параметры отсутствуют

Возвращаемое значение:

  • Строка - Последнее сообщение ошибки

 

Наши ближайшие планы:

  • Мы собираемся поддерживать компоненту, т.к. она является частью нашего решения Адаптер
  • С точки зрения функционала ходим добавить в компоненту асинхронные методы (как в 1С), что увеличит скорость работы и немного упростит алгоритмы Адаптера

 

Как начать использовать Pink RabbitMQ:

  • Скачать демонстрационную обработку, приложенную к статье (компонента находится в ней в виде макета)
  • Скачать из репозитория исходники и воспользоваться инструкцией из readme.md

 

Интересные технические особенности:

  • Источником вдохновения послужила статья https://habr.com/ru/post/253317/
  • Сборка компоненты осуществляется как через sln проект на VS Studio 2019, так и через cmake (см. readme.md)
  • Все зависимости проекта (в частности POCO и AMQP) поставляются прекомпилированными либами для простоты сборки (поэтому репозиторий много весит, но проект собирается элементарно )

Как стать контрибьютером:

  • Репозиторий проекта https://github.com/BITERP/PinkRabbitMQ
  • Как обычно, создавайте issues, делайте форки, вносите доработки, собирайте и проверяйте компоненту и делайте пулл-реквест
  • Мы со своей стороны будем принимать пулл-реквесты после
    • прохождения проверок Sonar Cube и BDD тестами Адаптера
    • оценки соответствия предлагаемых изменений концепции/планам развития Pink RabbitMQ

 

Ждем ваших вопросов/замечаний/предложений

137

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

Наименование Файл Версия Размер
PinkRabbitMQ - Native API компонента 1С с открытым исходным кодом, для обмена сообщениями через RabbitMQ:
.zip 654,98Kb
29.07.19
220
.zip 654,98Kb 220 Скачать бесплатно
Демонстрационная обработка
.epf 695,44Kb
29.07.19
232
.epf 695,44Kb 232 Скачать бесплатно

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

Комментарии
Избранное Подписка Сортировка: Древо
1. barelpro 1084 29.07.19 13:37 Сейчас в теме
Когда-то это должно было случится! ) Спасибо!
zakiap; Pavl0; Gureev; maxopik2; +4 1 Ответить
2. Evil Beaver 6357 29.07.19 14:22 Сейчас в теме
Вот так придумаешь на внутреннем совещании звучное название, напишешь компоненту, научишь людей Кролику, а они тебе за это сравнение производительности не в твою пользу, плагиат-троллинг названия, скопированный 1-в-1 API (который ты мучился сочинял, чтобы удобно было) и даже никаких спасибо. Ну бывает, чего. Не любят у нас в отрасли спасибо говорить.
ZeratulAyuris; ZhdanovR; Bronislav; johnnyshut23; zurapa; JohnyDeath; philya; alexey.karmanov; 🅵🅾️🆇; Scorpion4eg; new_user; Soloist; ingmar; sm.artem; 9-pm; YPermitin; vandalsvq; testnv0; baton_pk; ArchLord42; acanta; Infactum; artbear; +23 2 Ответить
3. Begemoth80 137 29.07.19 14:48 Сейчас в теме
(2)
а они тебе за это сравнение производительности не в твою пользу


Почему? Я же явно пишу в разделе "Простой синтетический тест" что Желтый кролик в 1,5 раза быстрее?
7. Evil Beaver 6357 29.07.19 16:03 Сейчас в теме
(3) А в соседнем - не пишете :)

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

Представьте, что кто-то начал выпускать автомобили FasterAudi с четырьмя кольцами по кругу или компьютеры GreenApple, где яблоко не откушено. Какое ощущение возникает? Кроссовки Abadis! С соответствующим отношением.
new_user; +1 Ответить
10. Begemoth80 137 29.07.19 16:21 Сейчас в теме
(7)
А в соседнем - не пишете

Цитирую соседний раздел "по этому пока мы не считаем меньшую производительность Pink RabbitMQ проблемой"

перевирать названия

Pink - один из наших корпоративных цветов
RabbitMQ - стандартная часть названия, указывающая с кем обмениваемся
11. Evil Beaver 6357 29.07.19 16:22 Сейчас в теме
(10) Ой, блин, ну продолжайте делать вид, что названия вообще никак не коррелируют в семантике
new_user; berezdetsky; nvv1970; +3 1 Ответить
41. theshadowco 90 30.07.19 16:28 Сейчас в теме
(10)
RabbitMQ - стандартная часть названия, указывающая с кем обмениваемся

(10) В поддержку названия (и только его) посмотрите на github https://github.com/search?p=5&q=RabbitMQ&type=Repositories
4. Gureev 29.07.19 15:32 Сейчас в теме
(2) Сейчас спасибо говорят на гитхабе. Учтите на будущее ;)
5. Tahallus 426 29.07.19 15:36 Сейчас в теме
(2)
даже никаких спасибо. Ну бывает, чего. Не любят у нас в отрасли спасибо говорить

Андрей, не обижайся на меня, но я вот заметил ты часто пишешь про это, как будто обижен, все лавры достаются всем кроме тебя.
Все друг друга копируют таков сейчас мир, это не хорошо и не плохо. Такое чувство что при каждом упоминание 1С+RabbitMQ нужно писать/говорить спасибо.
Irwin; chemezov; lunjio; A_Max; Gorus; user774630; Aptem199; eleva; Gureev; +9 1 Ответить
6. Evil Beaver 6357 29.07.19 15:59 Сейчас в теме
(5) Нет, это не обида и не жажда славы (у меня ее хватает и так), но я, возможно, так воспитан, что считаю нормой выражать признательность тем, у кого я учился или тем, кто как-то иначе мне помог. Если я что-то публикую, то считаю нормой упомянуть как минимум источники, на которых основывался.

Здесь я среагировал тон статьи, название, основанное на названии конкурирующего продукта и увидел выделенные жирным цифры производительности. Это все в совокупности выглядит, как "а мы на*бали серебряную пулю, мы молодцы".

Скажем, если бы статья называлась "MegaRMQ - Бесплатный клиент RabbitMQ для 1С" и предлагаемое API было бы отличным от YellowRMQ - вообще никаких вопросов.

А здесь - прямое копирование с целью заменить и никакого стеснения перед авторами: да, чуваки, мы взяли ваше API, вашу работу по популяризации кролика, даже ваше название, но ничего личного, just business.
new_user; YPermitin; berezdetsky; mvxyz; artbear; +5 1 Ответить
8. Tahallus 426 29.07.19 16:10 Сейчас в теме
(6) славы у тебя хоть отбавляй и знающие люди понимают с кого началось движение, клиентов думаю они у вас не сильно отберут, все таки больше покупают опыт чем команду в придачу к инструменту. С названием они конечно переборщили согласен. На счет API, опять же это у все так, возьми amazon и их api, почти все взяли чтобы конкурировать в облаках, и чтобы для конечного пользователя переход был менее болезненным.
A_Max; Gorus; izidakg; +3 Ответить
9. Evil Beaver 6357 29.07.19 16:20 Сейчас в теме
(8) Ну, во-первых, клиентов отберут не у меня, я не работаю в SB. Согласны, что с названием переборщили, и то ладно. И все-таки, в посте, о том "как мы сделали аналог платного продукта" я ожидал увидеть хотя бы минимальный обзор этого продукта и хоть какой-то tribute.
12. Begemoth80 137 29.07.19 16:23 Сейчас в теме
(9)
я ожидал увидеть хотя бы минимальный обзор этого продукта


В статье содержится 3 прямые ссылки на Yellow RabbitMQ (в самых первых разделах) и по тексту он упоминается несколько раз
13. Evil Beaver 6357 29.07.19 16:29 Сейчас в теме
(12) ну блиин, вы серьезно считаете "упоминание" и "обзор" синонимами?
14. Begemoth80 137 29.07.19 16:40 Сейчас в теме
(13)
Возьмем к примеру ПароВоз и ТеплоВоз.
Кажется что:
1.То что в этих словах часть слова одинаковая не является проблемой или перевиранием названия
2.В статье на WiKi про ТеплоВоз не должно быть обзора ПароВоза, но должна быть на него ссылка
Irwin; pfilyk; +2 Ответить
15. Evil Beaver 6357 29.07.19 16:49 Сейчас в теме
(14) вы сейчас на какую мою фразу отвечаете? Если вверх по ветке переписки, то в этой ветке нет ничего про названия, эта ветка про обзор.
18. Begemoth80 137 29.07.19 17:11 Сейчас в теме
(15) я отвечаю на фразы из (13) и (11) одним примером
16. oleg-x 13 29.07.19 16:49 Сейчас в теме
(14) С названием продукта все очень сложно. Например попробуйте выпустить свой продукт (компьютер/планшет/телефон/часы и прочие технологические продукты) с названием Apple, налетят юристы и начнут судится, за плагиат торговой марки.
24. Begemoth80 137 29.07.19 19:49 Сейчас в теме
(6)
название, основанное на названии конкурирующего продукта


Мне кажется что компонента PinkRabbitMQ не является конкурентом продукту Yellow RabbitMQ, также, как она не является конкурентом нашему же продукту Адаптер(иначе мы бы ее не публиковали, так ведь?).

Компонента - это всего лишь компонента (обертка над типовой библиотекой), а "Подсистема Yellow RabbitMQ содержит в себе высокоуровневые абстракции для наиболее распространенных схем" (цитирую из статьи по ссылке).

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


С другой стороны чем больше людей познакомятся с новой технологией, тем лучше (а открытый код компоненты этому способствует)
Irwin; chemezov; A_Max; izidakg; Aptem199; Gureev; +6 Ответить
57. minimajack 57 31.07.19 13:38 Сейчас в теме
Вот не понимаю я SB.

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


Я бы еще понял претензии если бы вы компоненту писали работая в первом бите...а так либо работая в SB или по заказу SB.

Давайте трезво:
- Сравнение производительности - еще осталось добавить "ЗАПРЕТИТЬ ВЫКЛАДЫВАТЬ РЕЗУЛЬТАТЫ ЛУЧШЕ ЧЕМ ХХХХХХ"
- SILVER BULLETES - хм...тоже цвет первый, совпадение....а давайте Yellow (желтая программа 1С) и RabbitMq сольем...вот круто будет! УНИКАЛЬНОСТЬ прям 100-го левела.
- Написали обертку на популярную, или как нынче можно говорить - ХАЙПОВУЮ, технологию. Ну уж ampq-либы явно не сами писали. Как там в комплекте с поставкой от SB лицензии на opensource либы прикладываются?
- Что то нет в опенсорсе "yellow rabbitmq" за что спасибо?
- Спасибо за обучение технологией которую сами же и впариваете, REALLY?

з.ы. Без обид парни...не храните все яйца в одной корзине. Я понимаю бизнес-шмизнес, но к такому надо быть готовым.
з.з.ы. сори за срач не по теме
Irwin; pfilyk; lunjio; zurapa; sashocq; +5 Ответить
68. zurapa 01.08.19 10:11 Сейчас в теме
(57) А, вот, аргументированно даже. Вовсе не срач! Просто правда с говницом в лицо. Я это люблю.
Вот, если у жёлтокролика не открыт код, то тогда действительно уже спасибо не за что говорить. Концепции все друг у друга перенимают, и как бы на это не стоит залупаться. Другое дело если код скопировали в чистую и не упомянули, тогда да. А API, я правильно понимаю, это набор команд к сервису, чтобы с ним общаться. Его для того и делают похожим максимально на аналогичную технологию, чтобы пользователям удобно было переходить - есть такое выражение - удобство пользователя.
Бывает же так, что создатель продукта выбрал не ту технлогию, не тот язык и повесил свою идею на не совсем эффективные технологии. Почему нельзя скопировать идею и сделать аналогичное на другом, быть может даже более эффективном? Кому от этого плохо стало? При том, что в историю вы уже записаны, а на другие языки это же переписывать вам лень, ибо сейчас интересно другое.
Разработчики как дети - Не играй в мою машинку пусть лежи. Я ей тоже играть не буду, но пусть лежит, я сказал!
17. vandalsvq 1131 29.07.19 17:10 Сейчас в теме
А что с БИТ случилось? Я что-то пропустил и они начинают превращаться в корпорацию "добра"?
Или стартапу БИТ:ERP вдруг дали немного больше привилегий, чем остальным?
smirnov.es; glebushka; berezdetsky; +3 1 Ответить
23. Tahallus 426 29.07.19 19:31 Сейчас в теме
(17) БИТ вообще волшебная компания, сотрудник БИТ-а чтобы обучиться БИТ:Адаптер должен сам заплатить деньги в размере 50к, внезапно )), так что похоже на чье-то несогласованное действие. Предвижу что либо удалять все это, либо больше не будут обновлять репозиторий.
25. Begemoth80 137 29.07.19 19:51 Сейчас в теме
(23)
ибо удалять все это


Как можно удалить опубликованный и 7 раз "форкнутый" репозиторий? ;-)
27. Tahallus 426 29.07.19 20:26 Сейчас в теме
(25) не так выразился бро, удалять статью и обсуждение, забросят репозиторий.
29. Begemoth80 137 29.07.19 20:44 Сейчас в теме
(27)
удалять статью и обсуждение, забросят репозиторий


Зачем? Я вроде попытался описать нашу мотивацию в статье и в этом комментарии (24).

Т.е. это не баг, это фитча :-)

И да, мы ожидаем, что в результате публикации компоненты https://github.com/BITERP/PinkRabbitMQ придут разработчики, и помогут сделать ее лучше
chemezov; +1 Ответить
30. Begemoth80 137 29.07.19 20:48 Сейчас в теме
(27)
удалять статью и обсуждение


Зачем? Я вроде в статье и в комментарии (24) попробовал описать нашу мотивацию.

Т.е. это не баг, это фича :-)

И да, мы заинтересованы в том, чтобы на GitHub в репозиторий компоненты пришли разработчики, и помогли сделать компоненту лучше.
chemezov; zurapa; +2 Ответить
26. glebushka 229 29.07.19 20:13 Сейчас в теме
(23)
(17) БИТ вообще волшебная компания, сотрудник БИТ-а чтобы обучиться БИТ:Адаптер должен сам заплатить деньги в размере 50к, внезапно )).


Это сейчас было сугубо для пущего эпатажа? Если нет, прошу сообщить (можно в личку) конкретику: кто, когда, кому и при каких обстоятельствах в компании Первый БИТ предложил курс сотруднику за 50 тыс. руб.?
Сотрудникам компании офисом-разработчиком (БИТ:ERP) предоставляются скидки для повышения квалификации, и по имеющейся практике офисы, где работает сотрудник, компенсирует затраты на обучение и сертификацию по БИТ.Адаптер вплоть до 100% от стоимости (но это зависит от офиса, сотрудника и его руководства).
28. Tahallus 426 29.07.19 20:28 Сейчас в теме
(26) И правда попутал, БИТ стал великодушен и для собственных холопов сделал скидку.
Прикрепленные файлы:
zurapa; user774630; +2 1 Ответить
32. TODD22 18 29.07.19 21:48 Сейчас в теме
(28)
И правда попутал, БИТ стал великодушен и для собственных холопов сделал скидку.

Скоро придётся доплачивать за работу в БИТе:
-Вам выпала великая честь работать в нашей компании, с нашими отраслевыми продуктами, с вас 50 тыс руб в месяц и на работу просим не опаздывать.
chemezov; zurapa; izidakg; +3 1 Ответить
37. qwed557 30 30.07.19 12:44 Сейчас в теме
(28) И правда волшебная контора, своих же сотрудников для работы со свей же разработкой обучать за деньги сотрудников.
chemezov; zurapa; +2 1 Ответить
110. myxins1989 105 31.10.19 15:24 Сейчас в теме
(28) Ребят, вы не вникаете в тему, потом говорите. Как старухи на заваленке, чесслово. Как сотрудник бита, который прошел данный курс, могу заявить, что мне это не стоило ни копейки, если не пересчитывать время, потраченное на подготовку, в деньги по стоимости часа. Вся данная фишка заключается в возможности подсчета эффективности/прибыльности филиала.
73. kembrik 3 01.08.19 12:45 Сейчас в теме
(17) Корпорация добра? Нет, не про них. Сам Адаптер как то "внезапно" со 150 подорожал до 200, плюс агрессивно навязывается недешевый саппорт. Ах вы купили год назад и не оплатили саппорт? Ну бывает. Надумали внедрять? Ну, хорошо. Оплатите саппорт за то время, которое не платили и ещё купите годик, будем разговаривать. Комплект поставки адаптера вообще за гранью, это конвертик с лицензией. Всё! Т.е за эти бабки мы даже инструкции "В бумаге" не получили
79. glebushka 229 01.08.19 14:14 Сейчас в теме
(73)
Приношу извинения. Скорее всего вас неверно информировали. У нас изменилась не только цена. Было введено требование обязательного наличия квалифицированного специалиста в команде внедрения/поддержки.
Мы не сможем у вас принять деньги за саппорт. Поскольку, как я понял из вашего сообщения, у вашей компании нет специалиста с действующим сертификатом "БИТ.Профессионал по интеграции".Это сейчас проверяется при каждой отгрузке. Поэтому если сертификата на этапе отгрузки не окажется, то мы возвращаем деньги (без отгрузки). Обратите внимание, чтобы не терять время.

PS. Прошу вас написать в личку рег. номер и имя менеджера, который вас консультировал, мы проведем работу, чтобы ситуация не повторилась.
80. vandalsvq 1131 01.08.19 14:50 Сейчас в теме
(79) т.е. надо ещё м сертифицировать своего сотрудника чтобы с БИТ работать? А затраты на сертификацию бит компенсирует?
82. glebushka 229 01.08.19 16:33 Сейчас в теме
(80) Нет, не компенсирует. Стоимость обучения и сертификации специалиста здесь: https://bit-erp.ru/adapter#edu
86. kembrik 3 02.08.19 16:04 Сейчас в теме
(79) Это достаточно новая инициатива, на момент покупки нами адаптера таковой не было. То есть, получается что затраты на Адаптер сейчас составят 200 тысяч за конвертик с лицензией, 50 тысяч за доступ на месяц к курсам (эффективность их и наполнение под большим вопросом) и 20 тысяч за сертификат специалисту, заплатить 67 тысяч за обновление и каждый год потом ещё оплачивать 67+20 (обновления плюс подтверждение сертификата). Не знаю как у вас, но у меня перед глазами стоит Золотая антилопа.

А нет ли лёгкого диссонанса с утверждением:

Мы продаем решение, которое состоит из коробки, готовых шаблонов интеграций между популярными системами и курсом (с сертификацией) для специалистов заказчика. По практике спец, который ранее занимался обменами на КД2/3 в течение недели начинает делать обмены на БИТ.Адаптер, в течение двух недель скорость разработки интеграций становится не меньше чем раньше, а в течение месяц интеграции разрабатываются быстрее. При этом сообщения мелкие, передаются часто, доставляются быстро и надежно. Разница очевидна при этом не только спецам, но и конечным пользователям.


Фирма же, которая по новым правилам приобрела Адаптер, купила доступ на месяц к курсам и провела сертификацию специалиста, при увольнении данного специалиста получает неработающий немасштабируемый блок, сравнимый по стоимости с ERP

Нет у вас "коробки", не вводите людей в заблуждение. По крайней мере не было год назад. Есть бумажка с лицензией, пара ссылок на Confluence и файлик с внешней обработкой, всё. "Коробочный" продукт в понимании человека, который выделил на данный "прожект" деньги это сущность, позволяющая сотруднику с определенным опытом работы, но без опыта работы с "кроликом" через неделю после покупки выдать MVP.

Ну это если вынести за скобки фактическую функциональность Адаптера, особенно если попробовать реализовать на нём "из коробки" обмены типовых конфигураций. не относящихся к "Большой тройке"

Вы молодцы, тут вопросов нет, светлые головы, жадные до денег, вот только денег вам дарить больше не хочется, лучше дождаться когда 1С в типовых добавить "обмен через кролика" и мне всё равно чью внешнюю компоненту они возьмут за основу, из данного топика или "ту, другую"
berezdetsky; +1 Ответить
90. glebushka 229 03.08.19 22:24 Сейчас в теме
(86)
Вы, в целом, корректно описали состояние БИТ.Адаптер по состоянию на год назад: это была подсистема, которая имела сложную структуру, имеющая поддержку обмена разными форматами несовместимыми друг с другом, и поддерживающая, помимо прочего веб-сервисы. При этом имеющая высокий порог вхождения. В тот момент покупали систему или наши клиенты в рамках проектов, или "энтузиасты", которые в любом случае хотели перевести интеграции на событийную модель, и для многих наших ранних покупателей это, действительно, позволило сократить затраты и ускорить выпуск MVP.

Но для массового рынка продукт был не готов, и, кажется, мы вовремя поняли это и внесли соответствующие изменения:
1. Разработали интерактивный курс обучения и аттестации в виде выполнения практического задания и собеседования с экзаменатором в режиме телеконференции
2. Экзамены принимают исключительно сами разработчики продукта (это позволяет им быть как можно ближе к рынку, а студентам получить ответы на вопросы в контексте конкретной ситуации в их компании)
3. После экзамена у студентов остается на весь срок действия сертификата доступ в закрытый канал Slack, где они могут задавать вопросы и советоваться по сложным случаям напрямую с разработчиками продукта (с одним из которых "познакомились" на аттестации)
4. Сам продукт претерпел существенные изменения: количество опций в интерфейсе радикально сократилось, при одновременном увеличении числа сценариев интеграции, поддерживаемом из коробки
5. В продукт постоянно добавляются новые шаблоны интеграции (в котором аккумулирован наш проектный опыт), а курс - постоянно дорабатывается, с большими обновлениями каждый квартал
6. Именно прямая обратная связь непосредственно от разработчиков на конкретных внедрениях позволила нам уверенно отказаться от части неиспользуемого кода, а также добавить в продукт недостающий функционал (например, в ближайшее время в бит.адаптер будет добавлен функционал, который позволит выбирать между JSON/xml, при этом сохранив обратную совместимость. Это мы делаем, так как оказалось, что БИТ.Адаптер оказался очень популярным решением для реализации интеграции с веб-сайтами (битрикс, битрикс 24, atlassian и т.п.).
7. Последние два двухнедельных спринта идет рефакторинг кода, поскольку по обратной связи от студентов стек вызовов был слишком запутанный и, иногда, нелогичный. Использование CI-контура позволяет нам быть уверенными в минимизации числа проблем у наших клиентов, связанных с этой работой
8. Наконец, мы приняли коммерчески спорное решение: запретить продажи клиентам, у которых нет специалиста с действующим сертификатом БИТ.Адаптер.

Что касается вашего расчета стоимости - там есть неточности. С одной стороны, стоимость курса включает одну попытку сдачи, с другой - мы категорически рекомендуем через год оплатить заново обучение: это точно будут совершенно другой курс и продукт :)

PS. Я очень сожалею что у вас есть негативный опыт использования ранней версии БИТ.Адаптер. В качестве компенсации могу предложить следующее: вам (или вашему специалисту) мы дадим доступ к курсу и сертификации бесплатно. В случае успешной сдачи экзамена, и вашей заинтересованности, мы "простим" пропущенные периоды обновления, предоставив вам возможность, оплатив обновления, получить новую версию продукта и получать обновления в течение года. Уверен, что пройдя курс вы измените свое отношение к продукту.
Если актуально - прошу написать в личку ваши контакты для связи, а также рег. номер и дату покупки БИТ.Адаптер.
93. kembrik 3 05.08.19 14:38 Сейчас в теме
(90) "Сообщение не отправлено, отложенная группа", что бы это ни значило. ник в Tg @Kembreg
19. ZLENKO 381 29.07.19 17:52 Сейчас в теме
Ждем реализацию вендором протокола AMQP :-)
20. Begemoth80 137 29.07.19 18:15 Сейчас в теме
(19) А чем это будет лучше/полезней чем компонента с открытым исходным кодом (кроме маркетинга)?
Т.е. если посмотреть код компоненты, то никакой "хитрой" логики там нет, это всего-лишь небольшая надстройка над типовой библиотекой AMQP-CPP для взаимодействия с 1С.
Что бы 1С могла туда полезного добавить с точки зрения функций или технологий?
chemezov; +1 Ответить
21. TODD22 18 29.07.19 18:20 Сейчас в теме
(20)
Что бы 1С могла туда полезного добавить с точки зрения функций или технологий?

Поддержку из коробки, без всяких компонент.
izidakg; ZLENKO; +2 Ответить
22. Begemoth80 137 29.07.19 19:05 Сейчас в теме
(21) А чем поддержка
из коробки, без всяких компонент
лучше чем внешняя компонента с открытым кодом?
Т.е. с точки зрения кода 1С отличие в 2 сточках, где подключается компонента.
31. TODD22 18 29.07.19 21:39 Сейчас в теме
(22)
лучше чем внешняя компонента с открытым кодом?

А чем хуже?
33. Begemoth80 137 29.07.19 21:51 Сейчас в теме
(31) На мой взгляд особой разницы нет, по этому будет сложно просить
реализацию вендором протокола AMQP
45. leemuar 30.07.19 18:47 Сейчас в теме
(33) ЕМНИП внешние компоненты не умеют работать с коллекциями (массивы, структуры) и другими встроенными объектами (потоки, например). Это не всегда удобно
64. Begemoth80 137 01.08.19 07:23 Сейчас в теме
(45) Ну вроде в нашем конкретном случае это не является проблемой.
Кажется, что проблема обходится, если вместе с компонентой делать некий общий модуль-обертку, в котором "спрятаны" подобные особенности. А функции этого модуля если смотреть "снаружи" уже не имеют таких ограничений.
70. zurapa 01.08.19 10:31 Сейчас в теме
(45) Зачем в 1С весь сброд тащить. Компоненты весьма приемлемая вещь, если она не в особом ходу. Кому кролик нужен? Покажите пальцем. Просто чтобы погонять? Или действительно нужен?

Давайте начнём с того, что до кучи разработчиков обмены делают на файловых шарах. Вот так вот просто берут, шарят папку, в неё выгружают, а потом другим сервером это забирают. И всё бы ништяк, но они это делают и на сильно удалённых друг от друга системах, да ещё и по слабым каналам связи, а потом залупаются, что обмен херовый в 1С. И им даже не в домёк это делать хотя бы по почтовому протоколу. Вообще в принцыпе на слабо нагруженных системах, ну или так, не сильно нагруженных системах, можно справится и почтовым транспортом, который в том числе есть и в кролике, но нам нужен кролик. Нахера нам стандартный почтовый протокол и умение 1С работать с SMTP?!

А потом, когда достаточно кроликов и прочих хреней напихали в 1С и она стала что-то тормозить, потом начнём залупаться на быстродействие 1С и искать, что-нибудь получше. Это вот типичная проблема современного IT сообщества - хвататься за хайповые неотлаженные вещи, принебрегая известными отлаженными годами протоколами. Я понимаю, когда это про нагрузку, но в большинстве случаев, это говёно спроектированная архитектура, а нагрузка лишь показывает говёность проекта.

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

Вот веб-сервер строить в 1С, наверное полезно будет, чтобы не мыкаться с апатчами, при том, что веб-сервер, прям, очень в ходу в 1С.
DSergunov; +1 2 Ответить
75. Rashid80 26 01.08.19 13:54 Сейчас в теме
(71)
Если это ответ мне то я прекрасно знаю как работает кролик ибо использую его в других языках. Именно поэтому я и удивился как они скрестили обмен и кролика. По факту это просто rpc.
Прежде чем рвать тельняшку и доказывать очевидное можно выдохнуть и спросить
81. zurapa 01.08.19 15:48 Сейчас в теме
(75) Из вопроса было понято, что вы пытались запихать туда большое. А это только могут делать те, кто не знает особенностей, поэтому меня тут прорвало.
Если вы это знаете, то могли бы намекнуть как-то в своём сообщении. Забавно же получилось в примером, про "срать ракетами"?.. ;)
Не обижайтесь. Этим своим ответом вы полностью реабилитировались. А я получил возможность в несколько юморной форме подчеркнуть особенность кролика для тех, кто не в теме, но по каким-то причинам читает эти комментарии.
Мир вам.
83. Begemoth80 137 01.08.19 16:34 Сейчас в теме
(75)
По факту это просто rpc

Уточните пожалуйста, что вы здесь имеете в виду?

Что кролика можно использовать только для реализации RPC (remote procedure call) и нельзя/не эффективно использовать для передачи данных (даже если это просто информация о событии, например Создан контрагент ООО "Молоко")?
36. Begemoth80 137 30.07.19 11:39 Сейчас в теме
34. Rashid80 26 30.07.19 01:16 Сейчас в теме
"В рамках теста из базы УТ10.3 в базу ERP переносился 1241 документ и проводился в ERP (реализации товаров превращались в поступления)
...
План обмена из БСП в формате КД2"

Не понятно - вы гоняли тяжелые XML через кролик или что? В чем заключается обмен с помощью кролика?
35. Begemoth80 137 30.07.19 06:32 Сейчас в теме
(34) Обмен с использованием Pink RabbitMQ и Yellow RabbitMQ выполняется с помощью Адаптера, там свой достаточно легковесный формат (в принципе у нас есть в общедоступной документации, но могу отдельно про него написать). Данные передаются через кролика.

Обмен "из БСП в формате КД2" выполняется через файлы (т.е. "типовой обмен", кролик тут не участвует)
59. mybracho 31.07.19 15:31 Сейчас в теме
(35) Где почитать про ваш внутренний легковесный формат?
60. Begemoth80 137 31.07.19 15:37 Сейчас в теме
71. zurapa 01.08.19 10:34 Сейчас в теме
(34) Мужик! Это просто жесть! Ты когда берёшь технологию, ты хотя бы посмотри чуть-чуть видосики от разрабов объясняющие, как это рабтает и для каких целей. Везде где говорят о кролике, говорят о том, что он для мелких порций данных но очень частых. Большое в него сувать - это как пытаться срать ракетами - будет очень больно и смертельно даже. Не спрашивай такие вещи! Их даже читать не нужно, об этом рассказывают!..
38. Gureev 30.07.19 13:06 Сейчас в теме
Сделать открытый продукт и выложить исходники это гораздо круче, чем написать тулзу за деньги, и это достойно уважения.
Не слушайте завистников и злопыхателей.

Комерсы всегда будут втыкать палки в колеса технического прогресса.
Irwin; chemezov; sashocq; eleva; ripreal1; alprk; izidakg; Aptem199; +8 4 Ответить
39. artbear 1159 30.07.19 14:33 Сейчас в теме
(38) Коллега, Вы бы почитали (2) (6) (8) и задумались, что, возможно, ситуация с "новым" продуктом все-таки сильно (!) отличается от простого "Сделать открытый продукт и выложить исходники" :(
berezdetsky; +1 Ответить
40. Gureev 30.07.19 15:01 Сейчас в теме
(39) Я все прочитал.
Воровство кода доказано? - Нет.
Название? - Я думаю Битлз были первыми.
API? - Ну логично, что будет что-то совместимое. Программист же не идиот, делать несовместимый продукт с написанной инфраструктурой.

Я помню ситуацию с маней, когда кто-то написал аналог его супер-пупер "продукта", сколько было вони.
А потом как маню феерично выпилили с ИС из-за жадности.
chemezov; eleva; Gorus; glebushka; +4 2 Ответить
48. Evil Beaver 6357 31.07.19 07:42 Сейчас в теме
(40) воровства кода нет. Я даже посмотрел в код - написано очень по 1совски "в лоб". Даже кажется знаю почему оно медленнее. Омнокод.

И вообще, воровство в IT плоходоказуемое, ибо это на 80% идеи и лишь на 20% код.

Еще раз повторюсь: сделать конкурирующий продукт это нормально. Сделать его бесплатным - нормально. В чистую содрать АПИ (недореализовав heartbeats, потому что ниасилили) и поведение, накрыв это ёрничающим названием - некрасиво. Просто некрасиво. Но легально
chemezov; artbear; +2 1 Ответить
49. genayo 31.07.19 07:58 Сейчас в теме
(48) С названием несколько промахнулись, белый кролик имело бы намного более глубокий подтекст :))
54. glebushka 229 31.07.19 12:07 Сейчас в теме
(49) это имя уже занято в 2012 году: https://github.com/kakaranet/white_rabbit :) Причем там практически все варианты сочетаний с белым есть.
66. Begemoth80 137 01.08.19 08:04 Сейчас в теме
(48)
Даже кажется знаю почему оно медленнее. Омнокод.


Подскажите пожалуйста, "куда копать" (мы не большие специалисты в с++)?

Кажется для партнеров было-бы очень полезным, если бы в компоненте не было явного Омнокода, который к тому-же влияет на ее работу (а именно на производительность)
67. Evil Beaver 6357 01.08.19 09:28 Сейчас в теме
(66) Ну не, посоны, давайте сами и без обид.
ZhdanovR; +1 Ответить
42. izidakg 150 30.07.19 17:07 Сейчас в теме
Сейчас мало кто выкладывает исходный код, даже уже "устаревших" решений и уже поэтому автору спасибо, а учитывая актуальность темы - СПАСИБО
Если получится, с большим удовольствием поучаствую хотя бы в тестировании.
Что касается благодарности, то как понимаю вопрос не в отсутствии, а качестве))) Ну а по претензии что API 1-в-1 вопрос: кто помнит про такое понятие как СТАНДАРТЫ, ГОСТ? В конце концов даже в публикации от Yellow RabbitMQ есть раздел "Без имени нет предмета".
Получается при желании разработать свой продукт, разработчик должен придумать все свои наименования объектов, команд? Возможно есть ситуации где это реально необходимо, но в большинстве случаев это глупость мешающая развитию.
А в целом статья Yellow RabbitMQ мне очень понравилась, для важно было подробное описание элементарных вещей, жаль нет возможности поработать с компонентой без оплаты. Эта статья по сути как продолжение, что-то вроде технического описания с приложенным функционалом для работы
46. Begemoth80 137 30.07.19 20:08 Сейчас в теме
(42)
Если получится, с большим удовольствием поучаствую хотя бы в тестировании.


Да, вы бы могли очень помочь проекту.

Сейчас у нас выполняется автоматическое тестирование сборок компоненты с использованием ADD (он тоже есть на GitHub, его делает Артур, он тоже участвует в этом обсуждении).

ADD нам полностью подходит, но сама проверка выполняется на тестах Адаптера.

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

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

Т.е. для того, чтобы все кто скачивает компоненту могли ее доработать и сами проверить, что ничего не сломалось, нужно:
1. Разработать некий минимальный (но полный) набор BDD тестов которые проверяют именно работу компоненты, например используя ADD
2. Включить эти тесты в репозиторий PinkRabbitMQ

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

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

Мы чуть позже выложим в репозиторий файлик CONTRIBUTING.MD в котором опишем правила, как можно вносить изменения в репозиторий. Но если вам интересна такая задача, то можно прямо сейчас начать с создание соответсвующей issue в репозитории.
52. ripreal1 386 31.07.19 09:42 Сейчас в теме
(46) О том как поучаствовать в проекте см. файл CONTRIBUTING.MD
62. Evil Beaver 6357 31.07.19 17:41 Сейчас в теме
(42) демо-версия YRMQ бесплатная, насколько я знаю.
96. Alex_Smolensky 104 07.08.19 19:05 Сейчас в теме
(62) может она бесплатная для избранных. Мне не удалось достать ни демо-версию ни описание к ней ни через сайт ни через телефон.
43. hawk911 30.07.19 18:05 Сейчас в теме
Представители Пули не возмущаются, значит они в курсе - а возможно, продали данный продукт... а БИТ пиарится.
44. artbear 1159 30.07.19 18:08 Сейчас в теме
(43) Представители Пули "офигели" от такого "нахальства коллег" :(

Андрей как автор кода выше уже отписался, например, смотри (2) (6) (8)
Я как человек также участвовавший в проекте Желтого Кролика, с ним абсолютно согласен.
47. hawk911 31.07.19 03:52 Сейчас в теме
(44) тогда, да - некрасиво получается.
50. izidakg 150 31.07.19 08:50 Сейчас в теме
(44) и все таки кто-то чего-то не договаривает и под "нахальства коллег" похоже имеется что-то другое, а не описанное в постах (2) (6) (8)
про использование API 1-в-1 даже в (8) написано что это норма, продуктов похожих\идентичных много и требовать другие наименования команд глупо.
еще хотя основная мысль в этих трех постах что было слизано название, которое рождалось в муках творчества и это в серьез? в (6) даже высказано что авторы этой публикации должны были убрать из названия "Rabbit". Вопрос только один - а разве представители Пули являются разработчиком "Rabbit"? Если да, тогда они в праве требовать что-либо на эту тему.
о претензии что Yellow RabbitMQ популизировало кролика, а тут приперлись на все готовое также раздута. Про кролика больше ни кто не пишет?
Да статья получилась немного не политкорректна, ссылок на конкурента хватает. И как понимаю ключевая проблема в исходниках, что в наше время среди "крутых" разработчиков не принято.
Разработчики как понимаю с нуля написали свою компоненту, если есть факты воровства кода, то должны быть приведены факты.
Irwin; chemezov; eleva; barelpro; glebushka; ripreal1; Gorus; +7 1 Ответить
51. ripreal1 386 31.07.19 09:38 Сейчас в теме
Кстати, YellowRabbitMQ API - не что-то эдакое особенное, а просто переадресация и адаптация под 1С части методов либы, вероятно использованной в ее основе http://alanxz.github.io/rabbitmq-c/docs/0.5.0/annotated.html. Да и вообще обе либы ничего сами не делают по сути, а просто перенаправляют вызовы для их понимания 1С-ом. Нормальный С++ прогер может написать эту либу за 2 дня. И стоит ли ради таких вещей разводить споры?

НО!
chemezov; Gureev; zurapa; minimajack; +4 Ответить
53. Infactum 282 31.07.19 11:54 Сейчас в теме
(51) 2 дня - это слишком оптимистичная оценка.
Тесты? Причем не только юниты на уровне C++, но и интеграционные на 1С. Кросплатформенность? Да и ссылку вы дали на С библиотеку.
А уж найти С++ разраба, который знает современные плюсы, а не пишет код по стандарту двадцатилетней давности, да еще и за 1С готов взяться, мягко говоря не просто.
Evil Beaver; +1 Ответить
55. minimajack 57 31.07.19 13:08 Сейчас в теме
(53) ссылка на rabbitmq-c не относится к PinkRabbitMQ

В статье все ссылки на либы : с++ и кроссплатформенные.
2 дня - это как раз норм для MVP; что бы работало хоть как то.

Тесты не обязательно как бы. Кому нужны могут сделать pull request.
56. Infactum 282 31.07.19 13:22 Сейчас в теме
(55) Ну а кому нужен MVP? Тем, кто просто хочет хайпануть, рассказывая , что использует "кролик" ?
Реальному бизнесу нужен продукт. Надежный и протестированный. И на сколько я вижу PinkRabbit так и позиционируется. Хоть и сыроват пока.
Так что фраза про 2 дня выглядит неуместной. Особенно в контексте этой темы, где постоянно сравнивают с продуктом пули.
58. minimajack 57 31.07.19 14:07 Сейчас в теме
(56) MVP - minimum viable product. Даже если это будет работать медленно, синхронно, только получать сообщения - это все равно продукт который можно использовать в бизнесе.
Понятно что есть риски, но зачем продавать со своей подсистемой "левую" компоненту, когда можно написать свою?

Бит:Адаптер и "Событийная интеграция" - никто не сравнивает, сравниваются NativeApi компоненты в конкретной задаче.

з.ы. Я не смог бы заопенсорсить продукт который ломает бизнес другим...но прогресс не может стоять на месте
61. glebushka 229 31.07.19 17:24 Сейчас в теме
(58)
Я не смог бы заопенсорсить продукт который ломает бизнес другим...но прогресс не может стоять на месте


Вообще я не согласен, например, мы начали и не доделали https://github.com/BITERP/vanessa_debugger/
Но мы всё-равно выложили. Вдруг кто доделает? Зачем велосипед с нуля делать?
В общем, разумеется, не нужно вводить в заблуждение, но не выкладывать что-то потому что "вдруг у кого чего сломает" - имхо, неправильно.

Но конкретно к данной компоненте это не относится. Используется уже на нескольких "нагруженных" внедрениях, и имеет вполне себе CI (отчет по которому доступен с гитхаб)
chemezov; +1 Ответить
63. minimajack 57 31.07.19 17:55 Сейчас в теме
(61) Спасибо убедили.
Все что не выложено - исключительно по причинам личного характера. Если это кому нибудь надо - даешь опенсорс!!!
65. izidakg 150 01.08.19 07:57 Сейчас в теме
(51) нескольких ссылок на их публикацию мало? если бы на инфостате не было публикации, то да. В конце концов Yellow RabbitMQ в первую очередь должен был дать ссылку на себя
69. Eret1k 673 01.08.19 10:17 Сейчас в теме
Хорошее решение, но кое-чего все же не хватает.

Почему не реализовали метод BasicGet?
Вам не кажется что это, выглядит как минимум странно:
Потребитель = КлиентКомпоненты.BasicConsume(ИмяОчереди, "", Истина, Ложь, 0);
КлиентКомпоненты.BasicConsumeMessage("", ОтветноеСообщение, 5);
КлиентКомпоненты.BasicAck();
Если уж вы пишите native и намекаете на использование consumer-a, то имеет смысл попробовать реализовать передачу "Описание оповещения" или "ДобавитьОбработчик"

То что Я описывал на основании COM куда проще.
Результат = Модель.BasicGet(ИмяОчереди, Ложь);


Нет методов: QueueDeclarePassive() и ExchangeDeclarePassive(), а ведь они очень удобно позволяют проверять наличие обмена и очереди на сервере.

Также брокер сообщений RabbitMQ поддерживает маршрутизацию сообщений не только по "routingKey" но еще и по "Headers", второе имеет смысл реализовать, так как в больших компаниях их использовать проще и более наглядно.

P/S/
Спасибо за OpenSource! В мире 1С этого всегда не хватает.
Но мне кажется, что мое описание через com все же проще: https://infostart.ru/public/1051620/
77. ripreal1 386 01.08.19 13:56 Сейчас в теме
(69)
Метод BasicGet() забирает только одно сообщение из очереди. На практических задачах требуется обычно забрать все сообщения из очереди. Поэтому его нет. Можно реализовать самому, т.к. он достаточной простой через issue и пулл реквест.

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

По поводу QueueDeclarePassive() и ExchangeDeclarePassive(), В API компоненты в методах DeclareQueue и DeclareExchange предусмотрен параметр onlyCheckIfExists. Она еще не реализован, т.к. не было необходимости.

"Headers" в данной компоненте вообще не поддерживаются. Если кому-то потребуется на реальных задачах можно завести issue на гитхабе, чтобы ускорить процесс
85. Eret1k 673 02.08.19 10:04 Сейчас в теме
(77)
Метод BasicGet() забирает только одно сообщение из очереди. На практических задачах требуется обычно забрать все сообщения из очереди. Поэтому его нет.


Со всем уважением к данным трудам, но в данной реализации:
КлиентКомпоненты.BasicConsumeMessage("", ОтветноеСообщение, 5) Тогда
КлиентКомпоненты.BasicAck();
И
Результат = Модель.BasicGet(ИмяОчереди, Ложь);
делают абсолютно одно и тоже.

Если Я правильно понимаю API, чтобы забрать все сообщения через компоненту, нужно:
Потребитель = КлиентКомпоненты.BasicConsume(ИмяОчереди, "", Истина, Ложь, 0);
МассивСообщений = Новый Массив;
ОтветноеСообщение = "";
Пока КлиентКомпоненты.BasicConsumeMessage("", ОтветноеСообщение, 5) Цикл
	КлиентКомпоненты.BasicAck();
	МассивСообщений.Добавить(ОтветноеСообщение);
КонецЦикла;

Если бы реализовали Метод BasicGet() и MessageCount() было бы так:
МассивСообщений = Новый Массив;
Пока КлиентКомпоненты.MessageCount(ИмяОчереди) Цикл
	Результат = КлиентКомпоненты.BasicGet(ИмяОчереди, Ложь);
	МассивСообщений.Добавить(Результат.Сообщение);
КонецЦикла;

Второй вариант красивее и более интуитивно понятный чем имеющийся на данный момент.
88. ripreal1 386 03.08.19 12:26 Сейчас в теме
(85) Не получится так сделать. Нет метода, который позволяет получить количество сообщений в очереди. Кроме того мы делали API совместимое с серебрянной пулей.
78. glebushka 229 01.08.19 13:59 Сейчас в теме
(69) (77) реально ускорит процесс примеры из жизни, где бы потребовался указанный функционал, которые бы были релевантны реальным или потенциальным пользователям БИТ.Адаптер.
Если же это специфическое требование, нужное (69), то самый надежный способ: сделать самому и сделать пулл-риквест.
72. zurapa 01.08.19 11:13 Сейчас в теме
А у меня тут вопрос возник по обоим кроликам. Зачем они, если есть такие разработчики, которые не понимают его концепции и пихают туда большое, при том что 1С уже умеет SMTP, в который можно пихать и большое. Почтовик это вполне пережуёт и отправит и даже на говёных каналах связи это просрётся с какой-то там попытки. Но, почему-то мы все говорим о кроликах, которые не умеют срать ракетами, но каждый заурядный программист пытается выяснить величину ракеты, с которой кролик порвётся и перестанет бегать между серверами. А потом ещё и выступают на конференциях со своими открытиями.

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

Скорость! Да! Да! Да! Вы скажете скорость! Вот тут согласен. Только при всей этой скорости у вас возникают множество неизвестных, когда пакеты не приходят, или сервис упал, или ещё там что-то и вы не придумали как сохранить эту очередь... Надёжность! Да! Да! Да! Надёжность никакая! Особенно если вы её хорошо не обкатали!

Так вопрос снова - На... Зачем нужен кролик?! - если надежность и гарантия доставки падает, появляется куча других неизвестных, хоть и доставляется всё вроде бы быстрей.

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

И вы со своим кролём пытаетесь эту технологию перевести на некий иной уровень, когда это будет работать непонятно как, вам потребуются неслабые знания в работе кроля, и понимание всех тонкостей одновременной работы с одинми и теми же данными из разных мест.
Значимость свою повышаете? Денег больше хотите? У вас это получится.

Только, когда вы станите очень крутыми руководителями, знающими весь этот багаж технологий: кролей, молей, постгресов - вам придётся искать себе в подчинение специалистов на эту инфраструктуру сложную, и там вы увидите то, что вижу я... Специалистов таких не будет. У вас будет отдельно специалист по постгресу, но не знающий 1С, и будет хотеть кучу денег за свои экспертные знания, у вас будет спец по кролику, который будет хотеть за свои знания много денег, но не будет хотеть разбираться в 1С, а ещё у вас будет системный администратор, который совершенно не за хочет знать 1С, но будет круто знать почтовики ( но увы не postfix, а Exchange).... Там бескончено можно продолжать. В общем у вас будет возможность раздуть бюджет IT до невообразимых размеров и потом хвастать на конференции, какой вы молодец, что вы всё это тяните шибко не вдаваясь в подробности, как это работает.
А если у вас фирмочка не транснациональная, то вы со всем этим сядите в лужу, потому, что такого многоликого спеца с нужным стеком знаний нет, а вам одобрили взять только двух, и вы будете выбирать между умным или дешёвыми двумя, которых ещё придётся доучивать. Но ни тот умный, ни те два тупых не закрывают ваших необузданных фантазий.

А мораль этой всей басни такова - чтобы что-то пихать в индустрию, нужно сначало думать, как это отзовётся на вас же.

Кролик - весьма сомнительная технология, как и кафка для 1С. В больших корпорациях это может и стрельнит, но в среднем бизнесе это лишь удорожает весь процесс решая всё тот же круг задач.
DSergunov; nicxxx; +2 6 Ответить
76. glebushka 229 01.08.19 13:55 Сейчас в теме
(72)
Кролик - весьма сомнительная технология, как и кафка для 1С.


А кто вам сказал что клиентам нужно продавать кролика и данную компоненту к кролику? Это оупенсоурс, и незаконно :)
Мы продаем решение, которое состоит из коробки, готовых шаблонов интеграций между популярными системами и курсом (с сертификацией) для специалистов заказчика. По практике спец, который ранее занимался обменами на КД2/3 в течение недели начинает делать обмены на БИТ.Адаптер, в течение двух недель скорость разработки интеграций становится не меньше чем раньше, а в течение месяц интеграции разрабатываются быстрее. При этом сообщения мелкие, передаются часто, доставляются быстро и надежно. Разница очевидна при этом не только спецам, но и конечным пользователям.
А для корпораций есть версия КОРП, которая дополнительно и готовый CI-контур содержит. Но тут я соглашусь, для среднего бизнеса это пока слишком дорого в первичной настройке и обслуживании.
Поэтому мы и не паримся, и вложили в опенсоурс. Так как те, кто пользуются нашей компонентой это:
1. или энтузиасты, которые как минимум помогут улучшить и компоненту, и БИТ.Адаптер, как максимум - наши будущие сотрудники :)
2. или наши будущие клиенты, которые столкнувшись с описанными проблемами, сформируют как раз ту потребность, которую закрывает БИТ.Адаптер.
PS. С точки зрения сложности внедрения, поддержки и диагностики проблем традиционные решения гораздо сложнее чем кролик
84. zurapa 01.08.19 17:12 Сейчас в теме
(76) Позвольте я перефразирую ваши слова в контексте своего мнения как это выглядит на мой взгляд.

Вы говорите, что не продаёте кролика, а лишь продаёте курсы обучающие определённому стеку технологий. Там во всей моей тираде, как раз и объясняется, что вы делаете. Вы придумываете новый стек технологий, новый уровень компетенций, чтобы:
1. Из специалистов выжать деньги.
2. Из компаний выжать деньги на новых специалистов, подготовленных вами.

Это, как делать всё более требовательные к ресурсам приложения, чтобы покупали более дорогие и современные смартфоны.

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

И Кстати о цене. У вас недешёвый продукт. Для большой корпорации это конечно не деньги, но вопрос в том, что это не хлеб... Платить деньги за кота в мешке, который не известно как будет работать на моей инфраструктуре - это как минимум не компетентно. Ваши тесты и обещания это не о чём.

Если вы такие прогрессивные за OpenSource сделайте так, чтобы нужно было платить за поддержку, обучении, сделайте продукт свободным для скачивания, а не 200-500 тыс. руб. Если продукт того стоит, то, думаю корпорации поддержат его рублём. Или нет?

С 1С'овской иглой и так всё понятно, к ней привыкли, с неё не соскочить. А ваша иголка очень дорогая. Но если 1С упирается где-то в потолок своих возможностей, и компания позволяет содержать штат разработчиков, то я бы что-нибудь своё, или из opensource взял и допиливал в складчину с другой такой же отчаянной компанией, нежели платил бы за очередной костыль для 1С, который всё равно упрёт меня в потолок но чуть позже.

П,С.: OpenSource можно продавать, и это законно. Вы всего лишь должны полностью открыть код для разработчиков, чтобы они могли его взять и поправить. Так работает BSD лицензия. Вы можете взять любой BSD код и продавать его. Можете его скопировать, модифицировать, закрыть и продавать. OpenSource - открытый код. Там не сказано про запрещение продавать. И даже в GPL если не ошибаюсь можно продавать такой код - только закрывать нельзя.
74. acanta 74 01.08.19 12:59 Сейчас в теме
Пока фирма 1с не сделает собственную сертификацию по постгресу и вообще каждый отдельной поддерживаемой СУБД как предшествующую экзамену на эксплуататора...
87. kabanoff 41 02.08.19 16:08 Сейчас в теме
Не получается проверить вашу компоненту.
Создал себе тестовый стенд на cloudamqp.com, в демонстрационной обработке прописал параметры подключения. При попытке подключиться обработка напрочь зависает как на клиенте, так и на сервере. Зависает на методе КлиентКомпоненты.Connect().
89. ripreal1 386 03.08.19 12:28 Сейчас в теме
(87) Компонента зависает, если пытается подключиться к порту, которого не сущесвует на сервере. Поэтому скорее всего неправильно прописан порт.
91. kabanoff 41 05.08.19 09:57 Сейчас в теме
(89) Да, всё получилось. Спасибо!
92. altu71 05.08.19 12:27 Сейчас в теме
Напишите, пожалуйста, поподробнее, что нужно сделать, чтобы заработала ваша компонента на сервере под Линуксом? Достаточно собрать с указанием нужной платформы или нужно вносить изменения в исходный код компоненты? Если второе, то планируете ли вы в ближайшее время это сделать? В наше импортозамещаемое время это было бы актуально для многих, мне кажется.
94. ripreal1 386 05.08.19 15:49 Сейчас в теме
(92)
Код нуждается в небольшой доработке. Кроме этого нужно пересобрать 2 зависимости, а также сделать новый конфиг в sln проекте для запуска под линукс. Пока таких планов нет. Контрибьюторы приветствуются.
95. artbear 1159 07.08.19 14:44 Сейчас в теме
(92) В исходном платном компоненте YellowRabbitMQ есть поддержка и Linux, и Win.
97. leobrn 206 19.08.19 11:05 Сейчас в теме
а как в компоненте закрыть соединение ? .Close() не отрабатывает, в документации компоненты не нашел.
98. ripreal1 386 19.08.19 20:37 Сейчас в теме
(97)
Соединение закрывается автоматически при очищении NativeAPI объекта. Нужно установить переменную компоненты в Неопределено. Метода Close() не предусмотрено.
Оставьте свое сообщение

См. также

Распутывая узлы интеграции: Построение архитектуры слабосвязанных систем, или Кролики наступают 130

Статья Программист Нет файла Бесплатно (free) Роли и права

Речь пойдет об интеграции систем. Кому вообще стоит обратить внимание на эту статью? Если у вас всего лишь две типовые конфигурации, то вам, наверное, эта тема будет не очень интересна – у вас нет тех проблем, с которыми сталкиваются люди, имеющие три системы и более. Но если у вас есть больше двух систем, а особенно, если есть веб-сайт, который обменивается с 1С, вам точно стоит это прочитать.

28.05.2018    15870    Evil Beaver    23       

Простая подсистема обмена данными для 1С на платформе RabbitMQ (Адаптер 3) 10

Инструменты и обработки Системный администратор Программист Конфигурация (md, cf) v8 1cv8.cf Россия Платные (руб) Внешние источники данных Перенос данных из 1C8 в 1C8

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

200000 руб.

24.01.2018    9364    9       

.Net Core, обмен с 1C по TCP/IP между различными устройствами 15

Статья Программист Нет файла v8 Бесплатно (free) Разработка внешних компонент

Часто нужно обмениваться данными с клиентом 1С из различных устройств, между клиентами 1С, а также при виртуализации между разными ОС на компьютере. Это кроссплатформенная ВК, позволяющая обмениваться сообщениями по TCP/IP между различными устройствами по определенному протоколу.

28.09.2016    17642    Serginio    8       

Net Core. Динамическая компиляция класса обертки для получения событий .Net объекта в 1С 8

Статья Программист Нет файла v8 Бесплатно (free) Разработка внешних компонент

Часто нужно использовать события объектов .Net. Например событие от COM порта, поступление сообщений по WhatsAp, сообщение об изменение в директории итд. Напрямую этого сделать нельзя, но можно сделать класс обертку и через него получать ВнешнееСобытие

14.09.2016    13524    Serginio    1       

.Net Core, 1C, динамическая компиляция, Scripting API 10

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка внешних компонент

Очень часто приходится использовать динамический код в 1С, используя Выполнить или Вычислить. Аналогичная задача и для использования скриптов на .Net. Я постарался показать, как можно скрестить ежа с ужом и получить удобный код. В этой статье много вражеского кода для чистого одноэсника, но все когда-то бывает впервые.

07.09.2016    15824    Serginio    7       

1С, Linux, Excel, Word, OpenXML, ADO, Net Core 31

Инструменты и обработки Программист Архив с данными v8 Бесплатно (free) Разработка внешних компонент

В данной статье показаны примеры кроссплатформенной работы с файлами Excel и Word (xlsx,docx) с помощью библиотеки OpenXML и Net Core

22.08.2016    17281    51    Serginio    14       

Асинхронное программирование в 1С через использование классов .Net из Native ВК 14

Статья Программист Нет файла v8 Бесплатно (free) Разработка внешних компонент

Это продолжение статьи Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux II http://infostart.ru/public/541518/ В этой статье покажу, как можно асинхронно вызывать асинхронные методы и вызывать ВнешнееСобытие в 1С из сборки .Net

09.08.2016    14653    Serginio    3       

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д. 37

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент WEB

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    25945    Serginio    22       

Быстрое создание Внешних Компонент на C#. Примеры использования Глобального Контекста, IAsyncEvent, IExtWndsSupport, WinForms и WPF 42

Статья Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент

В большинстве случаев хватает и обычного COM объекта, учитывая, что в 8.х можно использовать события. Но иногда нужно использовать Глобальный Контекст для вызова глобальных функций, таких как Сообщить, NewObject и т.д. Кроме того, для использования форм нужен дескриптор окна 1С. Это продолжение статей Использование сборок .NET в 1С 7.x b 8.x. Создание внешних Компонент. http://infostart.ru/public/238584/ Там же лежат и исходники .NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия http://infostart.ru/public/417830/ 1C Messenger для отправки сообщений, файлов и обмена данными между пользователями 1С, вэб страницы, мобильными приложениями а ля Skype, WhatsApp http://infostart.ru/public/434771/ Использование классов .Net в 1С для новичков http://infostart.ru/public/448668/

15.02.2016    24676    Serginio    13       

Подсветка синтаксиса 1С в текстовых редакторах Atom, Sublime Text, VS Code 101

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Инструментарий разработчика Разработка внешних компонент

Пакеты, добавляющие поддержку синтаксиса языка 1С:Предприятие 8 в текстовые редакторы Atom, Sublime Text и VS Code. И не только.

02.02.2016    23205    nixel    38       

Использование классов .Net в 1С для новичков 147

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент Универсальные функции

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    63753    Serginio    104       

.NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия 51

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Разработка внешних компонент Математика и алгоритмы

Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия, а так же генерация модулей на C# и 1С для подключения к событиям. Использование DynamicMethod и ILGenerator. Представлены примеры для использовании событий System.IO.FileSystemWatcher (Ожидает уведомления файловой системы об изменениях и инициирует события при изменениях каталога или файла в каталоге.) и SerialPort (обработка сканера штрих кода подключенного к COM порту). Обертка позволяет использовать классы .Net только на языке 1С. Реализация 1C Messenger описанного здесь http://infostart.ru/public/434771/

12.11.2015    42183    Serginio    35       

1С с "плюсами" 74

Статья Программист Нет файла v8 Бесплатно (free) Разработка внешних компонент Математика и алгоритмы Универсальные функции

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

14.10.2015    19970    IntelInside    47       

Генерация штрих-кода для вставки его в 1С при работе в Linux 4

Статья Системный администратор Программист Нет файла v8 1cv8.cf Linux Бесплатно (free) Разработка внешних компонент

В Linux есть отличная команда barcode, которая генерирует штрих-коды в векторном формате ps. Но 1С не понимает такие форматы. Более того, barcode генерирует штрих-код на размер листа А4 или Letter. Установка пользовательского размера листа не увенчалась успехом. Но не будем же мы вставлять изображение штрих-кода размером с лист А4… Однако есть способ, как решить данные проблемы.

01.07.2015    13734    rudjuk    4       

Простейший способ создания штрих-кода в формате PNG из командной строки в Linux Ubuntu 10

Статья Программист Нет файла v8 1cv8.cf Linux Бесплатно (free) Разработка внешних компонент

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

29.06.2015    9926    rudjuk    15       

Компилирование внешней компоненты AddInNative в ОС Linux 46

Статья Системный администратор Программист Нет файла v8 1cv8.cf Linux Бесплатно (free) Разработка внешних компонент

В статье отражены некоторые моменты, которые нужно учесть, чтобы скомпилировать пример 1С-вской внешней компоненты AddInNative в ОС Linux.

14.01.2015    17799    q_i    20       

Использование внешних COM-компонент (.dll) или любых клиентских методов в регламентных заданиях серверной базы. 50

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка внешних компонент Математика и алгоритмы

Для расширения возможностей платформы 1С существует огромное количество внешних компонент (дополнительные функции, взаимодействие с софтом и железом других производителей, ключи защиты). К сожалению, большинство из них написано на технологии .COM и не могут использоваться на сервере. Для использования в регламентных заданиях серверной базы их приходится переписывать на Native API. Однако, иногда нет возможности переписать компоненту на новую технологию, но нужно вызвать ее в регламентном задании на сервере.

10.12.2014    39771    ekaruk    51       

Мини-Эверест: Native ВК для 8.х 18

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Windows Бесплатно (free) Разработка внешних компонент

Список и свойства HDD, список и свойства ОЗУ, список запущенных процессов (для терминала - всех пользователей с указанием номера сессии), список запущенных сервисов, характеристики BIOS

20.08.2014    13963    35    Abadonna    7       

ВК для работы с файлами FilesNative.dll 28

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Windows Бесплатно (free) Разработка внешних компонент

Компонента реализует некоторые методы работы с файлами (архивами). Поддерживаемые форматы распаковки архивов: ZIP, JAR, XPI, BZ2, BZIP2, TBZ2,TBZ,RAR, R00, ARJ, Z, TAZ, LZH, LHA, 7Z, CAB, LZMA, LZMA86, ISO, XAR, MSI,RPM, TAR, GZ, TGZ, TPZ

18.06.2014    14985    77    Abadonna    9       

NetNative: ВК для работы с сетью 61

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Россия Windows Бесплатно (free) Разработка внешних компонент

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

23.02.2014    16562    142    Abadonna    10       

Отслеживание изменений каталога в REAL-TIME: Native ВК для 8.х 58

Инструменты и обработки Программист Архив с данными v8 Россия Windows Бесплатно (free) Разработка внешних компонент

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

09.10.2013    17755    229    Abadonna    38       

Трей-мессенджер: Native ВK для 8.х 97

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Россия Windows Бесплатно (free) Разработка внешних компонент

Иконка 1С в трее с popup-mеnu, баллуны, оповещения, обратная связь. Выполнена по технологии Native, не требует регистрации в реестре и особых прав пользователя. Имеет обратную связь с 1С через генерацию внешних событий. Имеет popup-menu на иконке в трее для управления окном 1С (закрыть, скрыть, показать+ 2 пункта генерации событий). Есть возможность убрать кнопку главного окна из панели задач.

23.09.2013    23466    405    Abadonna    121       

Обработка изображений 1С средствами .Net framework 8

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Разработка внешних компонент

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

19.04.2013    17738    Elisy    13       

Внешняя компонента для работы со строками 84

Инструменты и обработки Программист Архив с данными v8 Россия Windows Бесплатно (free) Разработка внешних компонент

ВК по технологии Native для работы со строками: хеши по различным алгоритмам, крутое шифрование, вычисление релевантности (схожести) строк. Событие переключения подсистем.

20.03.2013    22518    463    Abadonna    105       

Подсистема "COMExchange": ускорение выгрузки запросов ADO или «игра с огнём». 13

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Практика программирования Разработка внешних компонент

Описана поддержка подсистемой "COMExchange"работы с ВК GameWhithFire.dll и в частности ускоренная выгрузка результата запроса ADO средствами ВК.

11.03.2013    17536    yuraos    4       

Простой пример создания ActiveX-control на Qt 8

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Разработка внешних компонент

Мне была поставлена задача разработать некий ActiveX-control. Так как основным языком программирования для разработки у нас используется C++, то C# не рассматривался. Я решил выбрать Qt, так как он мне интересен. Создание ActiveX объектов на Qt достаточно простой процесс, в примерах к QtCreator есть несколько вариантов, показывающих как можно использовать ActiveQt (например этот). При написании компонента пришлось много времени потратить на поиск ответов на казалось бы простые вопросы, по крупицам их собирать. В результате я получил, что требовалось и решил написать простой пример, чтобы ускорить процесс старта разработки ActiveX-control другим. Сразу обращу внимание, что не описываю всю технологию ActiveQt, подробную информацию можно получить в документации Qt Assistant и в интернете (например здесь), это пример и пара интересных на мой взгляд моментов.

25.02.2013    7560    theshadowco    3       

Finger-биометрия в 1С 47

Статья no Нет файла v8 Россия Бесплатно (free) Разработка внешних компонент

О различных методиках использования сканеров отпечатков пальцев в 1С.

02.07.2012    24297    fixin    22       

Miracle Native - ВК для V8 74

Инструменты и обработки Программист Архив с данными v8 Россия Бесплатно (free) Разработка внешних компонент

Настоящая ВК написана по технологии 1С-Native. По методам и свойствам является наследницей MIracveV8 с планируемым развитием функционала. Версия 1.2.1.1 Не триальная, подправлена некорректная работа под х64

23.04.2012    29205    623    Abadonna    79       

Решение проблем с регистрацией внешних компонент в терминале 71

Статья Программист Нет файла v8 УТ10 Россия УУ Розничная торговля Учет ТМЦ Бесплатно (free) Разработка внешних компонент

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

22.09.2011    58834    Spacer    41       

ВК для 1С:Предприятие 8.2 NativeAPI на Delphi (запуск приложений, раскладка клавиатуры, события и др.) 98

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Бесплатно (free) Разработка внешних компонент

Внешняя компонента на основе разработки Крипича http://infostart.ru/public/81644/ - NativeAPI на Delphi реализует запуск процесса с заданным приоритетом и видимостью окна, переключение раскладки клавиатуры, всплывающие сообщения в трее, паузу sleep без загрузки процессора и внешние события.

01.08.2011    40674    1262    romix    55       

Драйвер клавиатурного сканера 24

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v8 Россия Windows Бесплатно (free) Разработка внешних компонент

Драйвер сканеров USB-HID (эмуляция клавиатуры) для 1С Предприятие 8.2. Дополнительно может отсылать текст на дисплей покупателя Posiflex PD2601.

13.07.2011    8696    386    Ma_X_X    12       

Новая версия 1С:Предприятие 8.2 конфликтует с C# и .Net framework 22

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Разработка внешних компонент

Суть конфликта 1С 8.2 с C# и .Net framework в следующем. В версии 8.2 1С анонсировала новый способ написания внешних компонент 1С с использованием так называемого Native API. Самое интересное, что на C# предложенный подход реализовать невозможно, а реализация Native API на VC++/CLI теоретически возможна, но при попытке подключения DLL, скомпилированных с опцией /CLR, происходит зависание 1С (версия 8.2.13.202). Еще один конфликт – в новой версии 1С нет поддержки технологии ActiveX, на основе которой многие разработчики вставляли в формы 1С свои WinForms-приложения.

15.12.2010    19628    Elisy    128       

Учим внешнюю компоненту правильному склонению не только ФИО, но и должностей, и подразделений (ЗУП 2.5) 120

Статья Программист Нет файла v8 ЗУП2.5 Россия Бесплатно (free) Практика программирования Разработка внешних компонент

Многие из нас сталкивались с проблемой неверного склонения должностей и подразделений внешней компонентой склонения ФИО. Результат при этом может напоминать следующее: 1.Именительный "Главный специалист" 2.Родительный "Главныя специалиста" 3.Дательный "Главныю специалисту " 4.Винительный "Главныя специалиста " 5.Творительный "Главныем специалистом " 6.Предложный "Главные специалисте " Метод борьбы с данным недугом предлагаю ниже.

21.11.2010    56780    director04    62       

Thermal Print Library - ActiveX библиотека для печати на термопринтерах Godex BZB2/EZ2/EZ4, C.Itoh EZ2/EZ4, Citizen CLP-521/621 19

Инструменты и обработки no Приложение (exe) v8 1cv8.cf 1cv7.md Россия Windows Бесплатно (free) Разработка внешних компонент

Библиотека Thermal Print Library является COM сервером и предназначается для использования в любых средах, которые в состоянии выступить в роли OLE-клиента (MS Office, 1С Предприятие, VB, VBScript, и т.д.). Допускается применение со следующими моделями термопринтеров : Godex BZB2/EZ2/EZ4, C.Itoh EZ2/EZ4, Citizen CLP-521/621.

20.09.2010    18534    255    GreenLab    23       

[BackgroundWorker] - Фоновые задания в файловом режиме 1С 8.x 41

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v8 1cv8.cf Windows Бесплатно (free) Практика программирования Разработка внешних компонент

ActiveX-компонента позволяет выполнять задачи в фоне с индикацией прогресса и возможностью прерывания выполнения. Также работает и клиент/серверном варианте, в качестве альтернативы типовым фоновым заданиям

04.03.2010    20091    418    Душелов    15       

Архивация базы 1С-Предприятие 11

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup) Разработка внешних компонент

Используем стандартный планировщик Windows и файл Visual Basic Script с файлом настроек, для плановой выгрузки базы данных.

29.12.2009    8697    276    alves    4       

Использование визуальных (ActiveX) компонент в тонком клиенте 1С 8.2 63

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Россия Бесплатно (free) Разработка внешних компонент Администрирование данных 1С

В данной статье рассматривается вопрос использования визуальных компонент (ActiveX) на форме тонкого клиента 1С 8.2 и веб-клиента на базе MS Internet Explorer.

19.11.2009    35753    616    Душелов    59       

Хранитель COM - объектов 20

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Россия Бесплатно (free) Практика программирования Разработка внешних компонент

Позволяет сохранять COM - объект между серверными вызовами в 8.2. Сохраняет и получает ссылку на объект в ROT (Running Object Table). БЕТА!

18.11.2009    10579    77    Hadgehogs    14       

[SendGoogleSMS] Отправка SMS уведомлений через сервис Google Calendar 65

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Разработка внешних компонент WEB SMS рассылки

Компонента генерирует события в Google Calendar с извещением по SMS. В архивах ВК для 7.7 (работает и в 8-ке) и ActiveX - для работы в контексте сервера 1С 8.х

07.08.2009    25945    563    Душелов    37       

[PDF Viewer] - Просмотр PDF в 1С 65

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Разработка внешних компонент Работа с интерфейсом

ActiveX-компонента для просмотра PDF. Позволяет сохранить в виде текста, картинки и PostScript. Реализованы механизмы поиска текста и печати.

15.07.2009    28734    865    Душелов    57       

Подпись к полю ввода в самом поле 15

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Бесплатно (free) Разработка внешних компонент Работа с интерфейсом

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

30.04.2009    13696    278    Stepa86    22       

[IFilter] Поиск в содержании файлов из 1С (ВК, .NET) 14

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Поиск данных Разработка внешних компонент

Компонента для работы с фильтрами поисковых систем. Получает текст из файла по установленном в системе фильтрам. Индексирует и ищет файлы по их содержанию (аналог Desktop Search) Поддерживает *.doc, *.xls, *.txt, *.ppt. Дополнительные фильтры можно скачать с http://www.ifilter.org/Links.htm

24.03.2009    28857    141    Душелов    44       

[Мониторинг изменения файлов] - ActiveX-компонента для 1С 8.х + ВК для 7.7 39

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Практика программирования Разработка внешних компонент

Компонента следит за изменениями файлов в заданных каталогах, без таймеров и опросов файловой системы. Использует события Windows.

05.03.2009    21361    522    Душелов    53       

[Проверка правописания] - ActiveX-компонента для 1С 54

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Практика программирования Разработка внешних компонент

Компонента проверяет правописание текста. Основана на технологии OpenOffice MySpell. Не требует установленного офиса. В комплекте словари для 5 языков, включая русский (с "ё").

09.02.2009    25053    1062    Душелов    66       

[ExcelEditor] Чтение/запись файла Excel напрямую из 1С без Excel (формат 97/2003) 112

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Разработка внешних компонент Загрузка и выгрузка в Excel

Чтение и запись файла Excel напрямую из 1С Компонента читает и редактирует напрямую файл Excel без загрузки самого Excel (формат Microsoft Office 97/2003)

08.01.2009    40818    1195    Душелов    92       

Защита информации при обмене данными между информационными базами "Управление производственным предприятием" 0

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 УПП1 Бесплатно (free) Разработка внешних компонент Защита и шифрование Обмен через XML

Защита информации при обмене с распределенной базой данных. В крупной фирме имеется одна центральная информационная база 1С:Предприятие 8.1 "Управление производственным предприятием" и несколько периферийных баз, обмен данными происходит через файлы XML. После выявления многочисленных случаев несанкционированного доступа к конфиденциальной информации, а именно кассовым и банковским документам при обмене данными, руководством было решено защитить данные при обмене информацией между центральной базой и периферийными базами. Перемещение данных между базами происходит через файлы XML, по нескольким каналам связи FTP, HTTP, POP, SMTP, а также на сменных носителях (типа USB Flash Drive). В связи с этим решено использовать внешнюю компоненту для шифрования файлов XML и небольшой доработки конфигурации баз данных.

25.11.2008    11656    110    astracrypt    13