Интеграция решений на 1С и сервиса обмена данными RabbitMQ

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

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

Программирование RabbitMQ AMQP COM COMОбъект HelloWorld UTF-8 CP-1251 Интеграция Интеграции RegAsm DotNet .NET ПотокВПамяти Кодировка ЧтениеДанных ЗаписьДанных Байт COMSafeArray RMQ

100
"Hello world" из 1С на сервер RabbitMQ и обратно. Полностью открытый код 1С! Реализация протестирована на 1С 8.3.12.1714 (x64).

WARNING

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

 

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

Некоторые плюсы использования единого сервера обмена:

  • Один или несколько стандартных протоколов обмена данными;
  • Возможность построить карту маршрутов передаваемых данных.

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

Итак приступим к "Hello world!" интеграции RabbitMQ и 1С!


Что нам нужно:

  1. Платформа 1С v8.3.*;
  2. Сервер RabbitMQ с настроенным обменом и пользователем для подключения;
  3. Стандартная библиотека RabbitMQ Client для DotNet.

 

С первым пунктом все ясно, но со второго возникают сложности:

Бесплатный экземпляр сервера RabbitMQ (а точнее его хост) можно получить на CloudAMQP.com. Нужно просто зарегистрироваться, создать новый "инстанс" и новый хост с правами админа готов.

 
 Немного о предоставляемой CloudAMQP бесплатной услуге (тарифный план Little Lemur)

 

Библиотека RabbitMQ Client для DotNet:

Где получить:

  • Сама библиотека (v5) доступна в репозитории NuGet;

  • Имеет единственную зависимость Microsoft.Diagnostics.Tracing.EventSource.Redist v1.1.28

Как установить:

  • Можно установить через стандартные менеджеры пактов NuGet или DotNet;

  • Можно скачать оба пакета NuPkg, извлечь нужные DLL и зарегистрировать в windows через RegAsm.exe:

    • Для x32 \Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /codebase <пусть до распакованной RabbitMQ.Client.dll>

    • Для x64 \Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe /codebase <пусть до распакованной RabbitMQ.Client.dll>

  • Для корректной регистрации RabbitMQ.Client.dll через RegAsm, файл Microsoft.Diagnostics.Tracing.EventSource.dll должен быть в той-же папке.

     
     Снимок экрана использования RegAam.exe

     


Реализация программного кода 1С с подробными комментариями:
(код описанный ниже, теоретический может быть переписан под любой язык программирования поддерживающий работу с COM объектами, так как по сути вызывает стандартные методы библиотеки RabbitMQ.Client.dll, ПримерыAPIОписаниеAPI)

// выполнить тест отправки и получения сообщения через RabbitMQ
&НаСервере
Процедура ВыполнитьТестНаСервере()
	
	// создать новый COM объект RabbitMQ Client Factory
	Попытка
		ФабрикаAMQP = Новый COMОбъект("RabbitMQ.Client.ConnectionFactory");
	Исключение
		Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
		Возврат;
	КонецПопытки;
	
	// установим параметры подключения
	ФабрикаAMQP.HostName = АдресСервера;
	ФабрикаAMQP.UserName = ИмяПользователя;
	ФабрикаAMQP.Password = Пароль;
	ФабрикаAMQP.Port = Порт;
	ФабрикаAMQP.VirtualHost = Хост; 
	
	// попытка подключится
	Попытка
		Соединение = ФабрикаAMQP.CreateConnection();
	Исключение
		Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
		Возврат;
	КонецПопытки;
	
	// создать бызовые СОМ для работы с серврером RabbitMQ
	Модель = Соединение.CreateModel();
	ПараметрыОтправки = Модель.CreateBasicProperties();
	
	// установим параметры обмена
	ПараметрыОбмена = Новый Структура("ИмяМаршрута, ИмяОчереди, ИмяОбмена");
	ЗаполнитьЗначенияСвойств(ПараметрыОбмена, ЭтаФорма);
	////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// проверить наличие обмена и очреди
	// если данные введены неверно то получим исключение
	Попытка
		Модель.ExchangeDeclarePassive(ПараметрыОбмена.ИмяОбмена);
		Модель.QueueDeclarePassive(ПараметрыОбмена.ИмяОчереди);
	Исключение
		Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
		Возврат;
	КонецПопытки;
	
	// подготовить сообщение
	// дело в том, что метод BasicPublish() принемает в качестве сообщения только массив байтов (COMSafeArray - VT_UI1)
	// по этому соберем его !!!
	ПотокВПамяти = ПолучитьДвоичныеДанныеИзСтроки(Сообщение, Кодировка).ОткрытьПотокДляЧтения();
	ЧтениеДанных = Новый ЧтениеДанных(ПотокВПамяти, Кодировка);
	СтрокаSafeArray = Новый COMSafeArray("VT_UI1", ПотокВПамяти.Размер());
	Пока ПотокВПамяти.ТекущаяПозиция() < ПотокВПамяти.Размер() Цикл
		Позиция = ПотокВПамяти.ТекущаяПозиция();
		СтрокаSafeArray.SetValue(Позиция, ЧтениеДанных.ПрочитатьБайт());
	КонецЦикла;
	ЧтениеДанных.Закрыть();
	ПотокВПамяти.Закрыть();
	// собрали СтрокаSafeArray!
	
	// подготовим параметры для отправки
	ПараметрыОтправки.AppId = "Любимый 1С!"; // кто отправитель?
	ПараметрыОтправки.ContentType = "text/plain"; // тип передоваемых данных
	ПараметрыОтправки.DeliveryMode = 2; // 1 - хранить сообщение в ОЗУ сервера, 2 - хранить сообщение на диске сервера
	ПараметрыОтправки.CorrelationId = Строка(Новый УникальныйИдентификатор); // - id сообщения
	
	// вызвать метод отправки
	// (помещать BasicPublish() в попытку нет смысла, 
	// он не вызыват исключений никогда, если типы передаваемых значений правельные)
	Модель.BasicPublish(ПараметрыОбмена.ИмяОбмена, ПараметрыОбмена.ИмяМаршрута, False, ПараметрыОтправки, СтрокаSafeArray);
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// проверить есть ли сообщения в очереди
	Если НЕ Модель.MessageCount(ПараметрыОбмена.ИмяОчереди) Тогда
		Возврат;
	КонецЕсли;
	
	// прочитаем одно сообщение из очереди
	Результат = Модель.BasicGet(ПараметрыОбмена.ИмяОчереди, Ложь); // второй параметр делает BasicAck() - сразу, лучше сделать его потом
	Если Результат = Неопределено ИЛИ Результат = NULL Тогда
		Возврат;
	КонецЕсли;
	
	// получим массив байтов (оно же сообщение)
	ОтветSafeArray = Результат.Body;
	
	// получим параметры ответа
	// это тоже самое что и ПараметрыОтправки только сейчас мы их получим обратно
	ПараметрыОтвета = Результат.BasicProperties();
	
	Сообщить(ПараметрыОтвета.AppID); // выведет того кто сообщение в Rabbit отправил - "Любимый 1С!"
	
	// Тег доствки - число, позволяет удалить сообщение из очереди после приема
	ТегДоставкиВПределахСессии = Результат.DeliveryTag;
	
	// выпонить ответ об прочтении сообщения
	// (без ответа оно не будет удалено и останеться в очереди)
	Модель.BasicAck(ТегДоставкиВПределахСессии, false);
	
	// преобразуем массив байтов в строку
	ПотокВПамяти = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(ПотокВПамяти, Кодировка);
	Для Каждого Байт Из ОтветSafeArray.Выгрузить() Цикл
		ЗаписьДанных.ЗаписатьБайт(Байт);
	КонецЦикла;
	ЗаписьДанных.Закрыть();
	Ответ = ПолучитьСтрокуИзДвоичныхДанных(ПотокВПамяти.ЗакрытьИПолучитьДвоичныеДанные(), Кодировка);
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	// закртыть соединение
	Модель.Close();
	Соединение.Close();
	
КонецПроцедуры

Описание общих этапов алгоритма:

  1. Получение зарегистрированного COM объекта из стандартной сборки DotNet - RabbitMQ.Client;
  2. Создание соединения с сервером;
  3. Проверка правильности заполнения "Параметров обмена";
  4. Подготовка сообщения для отправки;
  5. Отправка сообщения;
  6. Проверка наличия сообщений для прочтения;
  7. Чтение сообщения;
  8. Преобразование сообщения в текст.

Плюсы использования:

  • Реализация полностью OpenSource;
  • Нет никакого платного либо самописного коннектора;
  • Можно использовать и обновлять официальную библиотеку RabbitMQ.Client.dll.

Описание дополнительных способов кодирования и декодирования:

  1. Помимо манипуляции с байтами(описано тут) при помощи потоков можно еще использовать стандартный COM Объект "System.Text.UTF8Encoding".
    Пример:
    UTF8Encoding = Новый COMОбъект("System.Text.UTF8Encoding");
    СтрокаSafeArray = UTF8Encoding.GetBytes_4("Hello world!");
    Строка = UTF8Encoding.GetString(СтрокаSafeArray);
    

    Но тогда мы ограничиваем себя исключительно кодировкой UTF-8.

  2. Еще можно использовать стандартные возможности платформы "Символ()" и "КодСимвола()", для сборки и разборки COMSafeArray. Но тогда мы ограничимся символами чей код не более 255 (как бы ASCII получается), потому что массив типа "VT_UI1" имеет однобайтовые ячейки.

P.S. так как обработка грубо говоря состоит из одной процедуры, выкладывать ее сюда не вижу смысла.

100

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

Комментарии
Избранное Подписка Сортировка: Древо
1. VmvLer 24.04.19 13:03 Сейчас в теме
Некоторые плюсы использования единого сервера обмена:

Один или несколько стандартных протоколов обмена данными;
Возможность построить карту маршрутов передаваемых данных.



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

в общем, если плюсов больше нет, то минуса:
- сливать свои данные куда-попало;
- изучать нечто долго и упорно с риском, что
-- его блокнут;
-- оно перестанет работать;
-- захочет денег.
-

как-то отпугивают
Andle; AneJIbcuH; Eret1k; +3 5 Ответить
3. TODD22 18 24.04.19 13:31 Сейчас в теме
(1)
- сливать свои данные куда-попало;
- изучать нечто долго и упорно с риском, что
-- его блокнут;
-- оно перестанет работать;
-- захочет денег.

Так можно и свой сервер развернуть.
Irwin; maxopik2; berezdetsky; Robbi; Eret1k; +5 Ответить
6. Eret1k 606 24.04.19 16:55 Сейчас в теме
(3) Не просто развернуть!
Превратить в собственный бесплатный провайдер EDI.
7. TODD22 18 24.04.19 18:03 Сейчас в теме
(6)
Превратить в собственный бесплатный провайдер EDI.

За свой счёт это не бесплатно :) бесплатно это за чужой счёт :)
Andle; RFP; Eret1k; +3 Ответить
2. Идальго 120 24.04.19 13:14 Сейчас в теме
Хм, никогда не сталкивался с такими системами (как разработчик). Скажите пожалуйста, а вы этот RabbitMQ внедрили у себя в проекте (в конторе), или просто изучали возможность интеграции? Какие результаты от внедрения, решило ли это какие-то проблемы(если таковые были, конечно)?
mip128; Eret1k; +2 Ответить
5. Eret1k 606 24.04.19 16:12 Сейчас в теме
(2)
Внедрение RabbitMQ, да это был проект,
Решило ли проблемы - да,
Результаты - положительные,
Проблемы, а куда без них)
Стоило ли оно того - однозначно да!

А вообще тут рядом живут две полезные статьи: "Что такое обмен сообщениями" и Хорошое описание масштабной интеграции через RabbitMQ
juliia1992; barelpro; +2 Ответить
4. Senator_I 2 24.04.19 15:07 Сейчас в теме
Я читал, как на основании таких запросов получали моментально данные по чекам (только на кассе закрывался чек, тут же летел в RabbitMQ, а оттуда уже в 1С, в итоге продажи приходили в Центр практически онлайн, причем через самое плохое интернет-подключение и без УРБД.
Evil Beaver; maxopik2; MaZaHacKa_13; Eret1k; +4 Ответить
8. Infactum 281 24.04.19 19:50 Сейчас в теме
(4) Думаю вот статья, которую вы читали.
Evil Beaver; Eret1k; +2 Ответить
18. Senator_I 2 25.04.19 08:27 Сейчас в теме
34. Evil Beaver 6284 08.08.19 17:50 Сейчас в теме
(18) О, дык это ж я писал :)
Senator_I; +1 Ответить
38. Senator_I 2 09.08.19 09:51 Сейчас в теме
(34) о как, рад познакомится с автором, статья очень зашла, жаль поздно узнал, на одном проекте как раз такое нужно было.
9. Labotamy 24.04.19 20:50 Сейчас в теме
Вот все отлично кроме com(
zakiap; Evil Beaver; olegtymko; acanta; +4 Ответить
10. spogo 2 24.04.19 21:27 Сейчас в теме
11. Labotamy 24.04.19 22:24 Сейчас в теме
(10) Мне известен только один кроссплатформенный метод расширения функциональных возможностей платформы - внешние компоненты по технологии Native API.

А эту цитату из документации я просто оставлю тут:

При работе на сервере «1С:Предприятия» допустимо использовать только компоненты, разработанные по технологии Native API, которые могут быть как отдельными файлами, так и упакованными в специальные zip-архивы.
okulus; zakiap; Evil Beaver; comol; acanta; +5 Ответить
12. Идальго 120 24.04.19 23:36 Сейчас в теме
(11) Погодите, ведь тут речь о системе, которая, как я опять же понял, обеспечивает гарантированную доставку с использованием специального механизма очереди. Хм, ну в таком случае можно через rest, grpс, наконец сокеты передавать в некий сервак(т.н. брокер) сообщения. Там они ставятся в стековую очередь, сервак выдает квитанцию что типа получил и зарегал сообщение (все это в рамках одной транзакции). Ну и всё, а далее сервак примерно таким же макаром передает сообщение приемнику, а тот подтвержает через аналогичный механизм подтверждения доставки. Теперь брокер может считать это сообщение доставленным. Как-то так. И тут не нужно никаких com или ВК))) Хотя для сокетов всеж потребуется.
17. Labotamy 25.04.19 08:22 Сейчас в теме
(12)Речь о добавлении поддержки протокола amqp в платформу.
13. comol 4072 25.04.19 00:35 Сейчас в теме
Получение сообщений из очереди путём регулярного опроса RabbitMQ с заданным интервалом... хм... В случае такой "Архитектуры" точно нужен RabbitMQ? Ну и как бы COMSafeArray... ну нельзя так :(
GreenDragon; +1 Ответить
35. Evil Beaver 6284 08.08.19 17:52 Сейчас в теме
(13) Где ком, там и safearray, чего удивительного. Бяка? Бяка. Зато бесплатно и без этих ваших сиплюсплюсов. (Про добавленный гемор с RegAsm умолчим, к тому же Labotamy все сказал выше)
14. d.zhukov 485 25.04.19 07:43 Сейчас в теме
Добрый день. К сожалению, некогда вникать в тему. Просто подскажите плз, можно ли данной штукой отправить файл (допустим pdf) на сервер rabbitmq и получить ссылку на его открытие в браузере без каких-либо авторизаций?
15. GreenDragon 25.04.19 08:12 Сейчас в теме
(14) Вам немножко не сюда. Вам бы файлопомойку без авторизации организовать под такую задачу.
16. Labotamy 25.04.19 08:16 Сейчас в теме
36. Evil Beaver 6284 08.08.19 17:52 Сейчас в теме
19. EvgeTrofi 08.05.19 11:54 Сейчас в теме
Подскажите пожалуйста, чему у Вас равны переменные:
	ФабрикаAMQP.HostName = АдресСервера;
	ФабрикаAMQP.UserName = ИмяПользователя;
	ФабрикаAMQP.Port = Порт;
	ФабрикаAMQP.VirtualHost = Хост; 

Я задал
	АдресСервера = "zebra.rmq.cloudamqp.com";
	ИмяПользователя = "kibgbbpf";
	Порт = "1883";
	Хост = "kibgbbpf";

После строчки
Соединение = ФабрикаAMQP.CreateConnection();

Получается ошибка: Произошла исключительная ситуация (RabbitMQ.Client): None of the specified endpoints were reachable
Не знаете, в чём может быть причина?
20. Eret1k 606 08.05.19 18:35 Сейчас в теме
(19)
Скорее всего проблема с номером порта:
у меня так - ФабрикаAMQP.Port 5 672 Число

Я смог повторить вашу ошибку, когда правилами файрвола закрыл напрочь этот порт:
{ВнешняяОбработка.HelloWorldForRabbitMQ.Форма.Форма.Форма(46)}: Ошибка при вызове метода контекста (CreateConnection)
        Соединение = ФабрикаAMQP.CreateConnection();
по причине:
Произошла исключительная ситуация (RabbitMQ.Client): None of the specified endpoints were reachable
juliia1992; EvgeTrofi; +2 Ответить
21. EvgeTrofi 13.05.19 05:58 Сейчас в теме
(20) Огромное спасибо! Проблема была в номере порта. Его действительно нужно задавать числом, а не строкой.
22. dracoola 05.06.19 11:57 Сейчас в теме
Добрый день, пытаюсь подключиться к облачному CloudAMQP.com выпадает ошибка
None of the specified endpoints were reachable

ФабрикаAMQP.HostName = "toad-01.rmq.cloudamqp.com"; ФабрикаAMQP.UserName = "afaneugp"; ФабрикаAMQP.Port = 1883; ФабрикаAMQP.VirtualHost = "afaneugp";

Подскажите,пожалуйста, в чем может быть проблема ? Ошибка выпадает именно на моменте самого подключения. Порт задан именно числом . Пробовала и другой 8883, ошибка аналогична (
23. Eret1k 606 05.06.19 12:45 Сейчас в теме
(22)номер порта очень странный у вас.
С чего вы вообще взяли эти цифры?
24. dracoola 05.06.19 12:58 Сейчас в теме
25. dracoola 05.06.19 12:59 Сейчас в теме
Может что то неправильно настроила изначально . Такие настройки в облачном кролике
26. Eret1k 606 05.06.19 13:39 Сейчас в теме
(25) попробуйте порт по умолчанию 5 672
juliia1992; dracoola; +2 Ответить
27. Eret1k 606 05.06.19 19:45 Сейчас в теме
(25)Проверил, у меня в облаке как ни странно тоже указан порт 1883 но работает нормально только по 5 672
28. dracoola 05.06.19 20:12 Сейчас в теме
(27) спасибо огромное!! вначале вывалилась какая-то другая ошибка, но в итоге все заработало!!!
29. juliia1992 19.06.19 15:56 Сейчас в теме
Добрый день! При попытке подключения к фабрике
ФабрикаAMQP = Новый COMОбъект("RabbitMQ.Client.ConnectionFactory");
возникает ошибка: "Класс не зарегистрирован!" Кто-нибудь сталкивался с такой проблемой?
Прикрепленные файлы:
30. Eret1k 606 19.06.19 18:58 Сейчас в теме
(29) Значит RabbitMQ.Client.dll не зарегистрирован в системе.
31. juliia1992 20.06.19 08:48 Сейчас в теме
(30) Компоненту регистрировала
Для x64 \Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe /codebase <пусть до распакованной RabbitMQ.Client.dll>
И файл Microsoft.Diagnostics.Tracing.EventSource.dll положила в ту же папку, где и лежит RabbitMQ.Client.dll.
32. Eret1k 606 20.06.19 16:14 Сейчас в теме
(31)странно
Есть в сети утилита показывающая все зарегистрированные библиотеки RegDllView Ссылка
Проверьте зарегистрировался ли тип: RabbitMQ.client или что-то на подобие того.
33. juliia1992 21.06.19 09:36 Сейчас в теме
(32) Спасибо, библиотека зарегистрирована.
Прикрепленные файлы:
37. Evil Beaver 6284 08.08.19 17:54 Сейчас в теме
(33) А теперь не забывайте повторять на каждом сервере 1С и в случае переездов с машины на машину. :)
39. GreenDragon 14.08.19 16:00 Сейчас в теме
40. 2dnk 26.09.19 16:02 Сейчас в теме
Коллеги, Дмитрий, приветствую!
Благодаря Вашему примеру смогли подключиться к Раббиту. Создали в нем очередь. А дальше просьба пояснить, чему должны быть равны параметры "ИмяМаршрута" и "ИмяОбмена". Я не нашел таких переменных в Раббит.

Ваш пример:
// установим параметры обмена
ПараметрыОбмена = Новый Структура("ИмяМаршрута, ИмяОчереди, ИмяОбмена");

Пока для меня только очевиден один параметр - ИмяОчереди

Заранее благодарен за помощь!
42. Eret1k 606 27.09.19 11:52 Сейчас в теме
(40)
Имя маршрута -> Routing key;
ИмяОбмена -> Exchange;
41. 2dnk 26.09.19 16:08 Сейчас в теме
и подскажите пожалуйста, где параметры "ИмяМаршрута" и "ИмяОбмена" прописываются в Реббит?
43. kotlovD 61 03.10.19 11:15 Сейчас в теме
Спасибо большое за статью! Реализовываем обмен данными 1С - сайт. Рэббит это просто панацея.

Есть одно замечание к коду 1С, а именно сериализация сообщения в ComSafeArray. Код из статьи работает очень медленно на больших объемах данных (может занимать до 90% всего времени выполнения обмена), также может вызывать ошибки выделения памяти.

Переписал на этот, может кому пригодятся:

	Текст = Новый COMОбъект("System.Text.UTF8Encoding");
	СтрокаSafeArray = Текст.GetBytes_4(ДанныеДляОбмена);
44. 2dnk 03.10.19 19:37 Сейчас в теме
(43) Спасибо за информацию!
Оставьте свое сообщение

См. также

Выгрузка из 1С номенклатуры со штрихкодами без программирования 3

Статья Программист Пользователь Стажер Нет файла v8 УТ11 Россия Бесплатно (free) Загрузка и выгрузка в Excel Внешние источники данных

Я так и не смог найти простой инструкции или обработки, чтобы выгрузить из 1С: Управление торговлей 11 номенклатуру вместе со штрихкодами, поэтому решил написать собственную инструкцию.

28.08.2019    1470    user1114182    4       

Выгрузка данных в таблицу MS SQL SERVER 14

Статья Программист Нет файла v8 MS SQL Бесплатно (free) Внешние источники данных

Процедура по выгрузке данных из 1C (таблица значений) в таблицу MS SQL SERVER через COM.

02.07.2019    1681    EvgenSav    6       

1С и компьютерное зрение: новый подход к контролю за ассортиментом магазина 22

Статья Бизнес-аналитик Нет файла v8 1С:Франчайзи, автоматизация бизнеса УУ Розничная торговля Бесплатно (free) Внешние источники данных

Машинное зрение в магазинах и 1С. Как поднять эффективность торгового предприятия (магазин. кафе, шоурум и т.д.) с совершенно неожиданной стороны? Как получить реальные демографические данные покупателей и, самое главное, как это использовать в повседневной работе магазина? Как можно расширить привычные ABC и XYZ анализ, добавив в них пласт данных о трафике и демографии покупателей? Что необходимо для 1С, чтобы использовать данные видеоанализа людского трафика?

20.06.2019    3442    osipov_cvizi    16       

MS Access и 1С. Что, когда и зачем? 70

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

Об использовании MS Access в связке с 1С. Можно ли использовать продукты Office на сервере. Когда Access может быть полезен. Примеры работы и другое.

09.04.2019    14633    YPermitin    31       

RabbitMQ + Конвертация Данных 3.0 177

Статья Системный администратор Программист Бизнес-аналитик Руководитель проекта Нет файла v8 КД Бесплатно (free) Внешние источники данных Обмен через XML Интеграция Перенос данных из 1C8 в 1C8

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

21.03.2019    13600    barelpro    81       

Загрузка ЭЛН (электронных листов нетрудоспособности) из файлов 7

Статья Системный администратор Программист Нет файла v8 УПП1 Россия БУ Зарплата ФОМС, ПФ, ФСС Бесплатно (free) Внешние источники данных

Что делать, если по каким-то причинам нет возможности разместить 1С и Крипто-Про на одном рабочем месте? Правильно - открывать конфигуратор и пилить. Благо, там не сложно. Непосредственно решение для УПП 1.3. Для ЗиК 2.5 и Комплексной автоматизации должно быть аналогично.

07.02.2019    2528    SatanClaws    4       

Работа с кассой Atol через веб-сервер ДТО-10 54

Статья Программист Нет файла v8 Россия Кассовые операции НДС Бесплатно (free) Внешние источники данных ККМ Фискальный регистратор

Поддержка многопользовательской печати на одном устройстве ККТ. Поддержка изменений в законодательстве (Переход на ФФД 1.05 и НДС 20%).

31.12.2018    16455    medangel    36       

RabbitMQ, Python и Windows. Step By Step 36

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Внешние источники данных

Работа с шиной RabbitMQ, используя Python на Windows. Пошаговый быстрый старт.

13.12.2018    5076    w.r.    7       

Из 1С в IIKO: Передаем перемещения УТ в приходные накладные 4

Статья Программист Нет файла v8 УТ11 Рестораны, кафе и фаст-фуд УУ Оптовая торговля Бесплатно (free) Внешние источники данных

Рассмотрение вариантов передачи документа "Перемещение товаров" из Управление торговлей 11 в документ "Приходная накладная" IIKO.

12.09.2018    4080    oyti    7       

IIKO (Айко). Обмениваемся накладными с 1С 6

Статья Программист Нет файла v8 БП3.0 Рестораны, кафе и фаст-фуд БУ УУ Бесплатно (free) Внешние источники данных

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

01.06.2018    9235    oyti    13       

Интеграция Zimbra и 1С 22

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

В публикации описывается способ интеграции 1С с почтовым сервером Zimbra, используя SOAP сервис. Рассматривать вопрос интеграции будем на примере бизнес задачи, из блока CRM. Реализации общей адресной книги(GAL-Global Address List) между сотрудниками. Сотрудники(компания) ведет весь учет в 1С, в том числе и элементы CRM, а Zimbra выступает лишь в роли почтового сервиса. Сделать данную публикация побудило отсутствие в интернете готовых примеров совместной работы 1С и Zimbra. Надеюсь, она поможет кому-либо сократить время на реализацию похожей задачи.

16.04.2018    7221    Гексагон    17       

Обмен сведениями о пособиях с ФСС для Зарплата и Управление персоналом 2.5.129.3 11

Статья Программист Нет файла v8 v8::СПР ЗУП2.5 Россия БУ Зарплата ФОМС, ПФ, ФСС Бесплатно (free) Внешние источники данных

Ошибка отправки файла при обмене сведениями о пособиях с ФСС. Зарплата и Управление Персоналом, редакция 2.5 (2.5.129.3).

06.03.2018    14679    Igorexa    30       

Загрузка данных из DocsVision 4

Статья Программист Нет файла v8 Бесплатно (free) Внешние источники данных

Необходимо было реализовать загрузку данных из программы документооборота "DocsVision 5" в "1С:Документооборот 8". Данное описание оставляю больше для себя, чтобы не забыть, ну и, может, еще кому поможет, т.к. не нашел нигде нормального описания.

17.01.2018    6349    apxi    0       

Создание мобильного клиента 1С на Android с использованием HTTP-сервисов 144

Статья Программист Нет файла v8 v8::Mobile Android Бесплатно (free) Внешние источники данных Мобильная разработка

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

03.11.2017    26150    cdiamond    15       

Как сделать конфигурацию «1С:Предприятие 8» приложением QuickBooks. Проходим авторизацию OAuth 1.0a+OpenID 2.0 52

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

Пришло время, когда интеграция со сторонними организациями и их приложениями стала необходимостью для успешного ведения бизнеса. В этой статье будет рассмотрено прохождение авторизации OAuth 1.0a+OpenID 2.0 и превращение конфигурации «1С:Предприятие 8» в приложение QuickBooks.

10.09.2017    17238    pbazeliuk    28       

Редактирование пользовательских полей в Битрикс24 через REST API 7

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

Меняем значения пользовательских полей в Битрикс24 через REST API на примере редактирования контактов

06.02.2017    11525    user662672_explorer2000    2       

Нагрузочное тестирование сервера 1С при использовании WEB сервисов 51

Статья Системный администратор Программист Нет файла v8 ИТ-компания Бесплатно (free) Производительность и оптимизация (HighLoad) Внешние источники данных WEB

Проведение нагрузочного тестирования WEB-сервисов, развернутых на платформе 1С. Целью тестирования является ознакомление с возможностями платформы 1С при работе с большим количеством запросов через опубликованные WEB сервисы на IIS 7.5

01.02.2017    22916    BraunAlex    34       

Передаем контакты из 1С в Битрикс24 через REST API 117

Статья Программист Нет файла v8 УТ11 Россия Бесплатно (free) Внешние источники данных

Хочу поделиться опытом использования Битрикс24 REST API для экспорта контактов из 1С УТ 11

09.01.2017    42463    user662672_explorer2000    96       

Используем механизмы обмена данными БСП для произвольного обмена 147

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

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

23.08.2016    27588    Патриот    22       

Технология проведения миграции данных в крупных проектах 43

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

В статье систематизируется проектный опыт проведения миграции данных в крупных проектах, связанных с переходом Заказчиков на работу в конфигурациях «1С:Предприятие 8».

17.05.2016    26753    cinimex    26       

7 причин, почему интеграцию необходимо строить на очередях. Практика RabbitMQ. Отказ от Zato ESB и OData в 1С 164

Статья Программист Нет файла v8 Windows Бесплатно (free) Внешние источники данных

Этот набросок является продолжение предыдущей статьи "7 причин, почему интеграция стала приятной. Не упускайте ряд потрясающих возможностей". В большей части это описание боли, через которую пришлось пройти на практике, используя сервисную шину данных Zato ESB и OData протокол совместно с «1С:Предприятие 8».

18.03.2016    55148    pbazeliuk    125       

1C + ЭДО Мегафон 3

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

Тестируем модуль обмена 1С с ЭДО Мегафон (модуль прилагается пользователям ресурса ЭДО Мегафон бесплатно).

1 стартмани

21.12.2015    11911    JetBrain    5       

Linq to ODATA 34

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

1С сейчас совершенствует REST интерфейс приложения, автоматически генерируемый платформой, и протокол обмена ODATA версии 3. С недавнего времени появилась возможность обмениваться, используя JSON. На просторах интернета мало информации по использованию Linq для ODATA для 1С. Поэтому решил поделиться опытом. Это продолжение статей https://infostart.ru/public/402433/

29.09.2015    27780    Serginio    11       

1С Предприятие 8.2: Обмен данными между базами на основе инструментов SQL 18

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

Обмен данными (сотрудники организаций) между базами (1С Предприятие 8.2: Бухгалтерия и 1С Предприятие 8.2: Зарплата и управление персоналом) на основе триггера SQL, отслеживающего изменения таблицы

06.11.2013    19750    jan27    25       

Алгоритм выгрузки из 1С в Access 5

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

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

31.10.2013    27980    dimens    10       

Организация обмена с прочими программами через XML. Имитация двухстороннего обмена без именения конфигурации 20

Статья Программист Нет файла v8 Windows Бесплатно (free) Внешние источники данных Обмен через XML

Настраиваем обмен типовой конфигурации со сторонними базами данных, с функционалом двустороннего обмена

24.04.2013    13106    Stim213    6       

Подсистема "COMExchange": прямой доступ к EXCEL через ADO 8

Статья Системный администратор Программист Нет файла v8 1cv8.cf УТ10 УПП1 Россия Windows Бесплатно (free) Файловые протоколы обмена, FTP Загрузка и выгрузка в Excel Внешние источники данных

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

20.01.2013    21147    yuraos    7       

Простой TCP сервер с обработкой событий на стороне 1С 67

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

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

05.12.2012    26770    VoDo    8       

Работа с PerCo своими силами 26

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

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

03.10.2012    27599    Nas'ka    24       

1С Конвертация, использование внешнего источника данных 305

Статья Системный администратор Программист Нет файла v8 КД Windows Бесплатно (free) Внешние источники данных

Загрузка информации в базу данных платформы 1С 8.2 из внешних источников с помощью "Конвертации данных"

26.09.2012    45553    SergeMalikov    30       

Инструкция по подключению 1С к IBM DB2 с помощью внешнего источника данных. 5

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

Краткая инструкция по работе с внешними источниками данных - подключение 1C к IBM DB2 с помощью внешнего источника данных через ODBC драйвер.

17.09.2012    10049    RomaLut    4       

Загрузка материалов из программы Командор Дизайнер в 1С: Бухгалтерия 8. 4

Статья Системный администратор Программист Нет файла v8 БП2.0 Россия БУ Windows Учет ТМЦ Бесплатно (free) Пользователю системы Загрузка и выгрузка в Excel Внешние источники данных

Komandor Designer - программа для проектирования шкафов купе. Ее используют многие предприятия, которые производят мебель. Также они используют для учета программу 1С. Поэтому возникает проблема обмена данными между этими программами. Что важно для плодотворного общения двух людей — правильно — они должны понимать друг друга, разговаривать на одном языке. То же правило и в нашем случае, программы должны одинаково правильно понимать, какой материал находится в заказе, расходе сырья по заказу.

22.08.2012    9256    knigula    1       

Загрузка из Lotus или OLE-подключение из других (не 1С) программ 2

Статья Системный администратор Программист Нет файла v8 БП2.0 Россия БУ НУ Windows НДС Бесплатно (free) Обработка документов Внешние источники данных

Как-то давно писала настройку в 7.7. Теперь пришлось переделать на 8.2. Суть в том, что в программе Lotus заводятся счета, накладные, счет-фактуры. Как уж там прописана кнопка "Экспорт" - не знаю, но эта кнопка передает в 1С8 через функцию Import2 перечень реквизитов (ИНН, Наименование, Сумма, СуммаНДС , НомерСчета, ДатаСчета, ПН, Группа). А 1С8 их подхватывает в модуле внешнего соединения и "загружает" реализацию и счета-фактуры.

12.06.2012    13131    nvl    2       

Сканируем без сканера или MXL to JPG 137

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

Хотите конвертировать документы в формат изображения менее чем за минуту, не имея сканера? Тогда эта статья для вас.

24.05.2012    29774    shakmaev    47       

Вызов операций WS-сервисов SAP из 1С (передача в параметрах Объектов XDTO) 38

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

Довелось столкнуться в своей работе с вызовом из 1С веб-сервисов SAP. Если с передачей простых типов (в терминах XDTO - значений XDTO) в параметрах операции веб-сервиса, не возникло никаких проблем, то с передачей объекта XDTO пришлось повозиться. Несмотря на то, что в 1С я его заполнял, в SAP он воспринимался как пустой. В интернет особо много полезной информации не нашел, поэтому выкладываю свои наработки по теме.

18.04.2012    33530    adva    12       

Загрузка остатков из 1С6 в 1С8 2

Статья Системный администратор Программист Нет файла v8 БП2.0 БУ Бесплатно (free) Перенос данных из 1С7.7 в 1C8.X Внешние источники данных

Часто при организации обмена данными с 1С6 требуется наладить перенос проводок из 1С6 за период. Но тут же возникает вопрос и о переносе начальных остатков. Так вот, если разработан механизм загрузки движений из 1с6 из файла проводок 1sboper.dbf, то можно просто сэмулировать файл 1sboper.dbf, но в нем оставить только проводки с нулевым счетом и загрузить этот файл на дату загрузки остатков. Таким образом не придется делать дополнительный механизм. Единственное - нужно свернуть остатки в 1sboper.dbf. Как это сделать - эта статья.

27.03.2012    14865    fixin    3       

1C + jabber 26

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

Использование протокола xmpp для информационных сообщений из 1С без подключения внешних dll.

17.03.2012    20220    X.Leshiy    31       

Внешние источники данных: Синхронизация с внешними мастер-данными 29

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

Пример использования . Использование Запросов к таблицам внешнего источника, использование полученных данных для синхронизации справочников.

11.01.2012    11389    xzorkiix    7       

Чтение и запись данных по COM для Lotus Notes из 1С 8.х 11

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

Чтение и запись данных по COM для Lotus Notes программно из кода 1С 8.х

25.11.2011    9610    Rovan    2       

"Сделай сам" свою самую быструю перегрузку (видео). Использование технологии SQL Server IS для быстрых перегрузок данных. 30

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

Видео, демонстрирующее использование SSIS для нужд 1С. Пример очень простой, но поможет сделать "первый шаг", а потом вы сами поймете, какие возможности перед вами открывает этот механизм, и будете им пользоваться. SSIS это службы, поставляемые MS SQL Server для различных перегрузок данными. Существует достаточно простой и удобный визуальный конструктор, взаимодействие с различными ODBC и даже не ODBC источниками данных, кроме того технология использует bulk insert что обеспечивает даже для SQL Server очень высокую скорость перегрузки

29.10.2011    18343    comol    31       

Внешние источники данных в 1С 8.2.14.533 167

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

Читая анонсы обновлений 1С, задумывались, какая это замечательная возможность? Хотите использовать в своих решениях? В статье изложен опыт практического использования внешних источников данных, возможно, это "совсем не то, чего мы все так хотели".

02.10.2011    103383    comol    60       

Настройка связи между mysql и 1С через ODBC в версии 8.2.14 (Внешние источники) 175

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

В новой редакции платформы 1С 8.2.14 появилась возможность устанавливать связь с внешними источниками данных. У меня была идея написать программу для прямой работы с базой данных на нашем сайте из 1С:Предприятия 8

17.09.2011    108321    jorikfon    66       

Особенности работы 1С+ADO+MSSQL и Oracle. 69

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

В моей работе пришлось столкнуться с задачей обмена данными XML через Шину (MDM), используя ADO. При построении такого обмена есть некоторые особенности, о которых я попытаюсь рассказать в данной статье.

12.09.2011    30952    provova    9       

Печать на больничных бланках 19

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

Печатная форма для печати на больничных листках с использованием "OpenOffice Writer". Применяется для УПП. Печатается из документа "Начисление по больничному листу", либо как внешняя обработка.

09.08.2011    9270    153    ialex2008    19