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

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

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

JSON JSONAPI RabbitMQ MQ AMQP подписка на события событийно-ориентированная архитектура EDA SOA

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

JSONAPI - соглашение об обмене данными о ресурсах в формате JSON.

RabbitMQ - брокер сообщений реализующий протокол AMQP, который имеет менеджмент плагин, позволяющий отправлять сообщения по протоколу HTTP.

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

// Создает exchange имя которого равно строке соединения с базой 1с
Функция PutExchange(Соединение, Заголовки, обработкаJSONAPI, VirtualHost = "")
	exchange= СтрокаСоединенияИнформационнойБазы();
	vhost= ?(VirtualHost="", "%2f", VirtualHost);
	Запрос = Новый HTTPЗапрос("/api/exchanges/"+vhost+"/"+exchange, Заголовки);
	телоСтрока = обработкаJSONAPI.JSON(new Структура("type", "topic"));
	Запрос.УстановитьТелоИзСтроки(телоСтрока, "CESU-8");
	Соединение.Записать(Запрос, "c:\shared\rmq1c-http-response.txt");
	возврат Запрос.АдресРесурса + Символы.ВК + телоСтрока;
КонецФункции

//отправляет ссылку в формате JSONAPI в exchange имя которого равно строке соединения с базой 1с
//routing key равен полному имени типа ссылки
Функция ОтправитьJSONAPIвRMQ(ссылка, обработкаJSONAPI, VirtualHost = "")
	Попытка
		Соединение = Новый HTTPСоединение("rmq.local", 15672);
	Исключение
		//Сообщить("Не удалось установить соединение с сервером онлайн-проверки:" 
		//+ Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
		Возврат ИнформацияОбОшибке().Описание;
	КонецПопытки;
	Заголовки = Новый Map();
	Заголовки.Вставить("authorization", "Basic Ym90MWM6Ym90MWM=");  
	Заголовки.Вставить("Content-Type", "application/json");
	PutExchange(Соединение, Заголовки, обработкаJSONAPI, VirtualHost);
	exchange= СтрокаСоединенияИнформационнойБазы();
	vhost= ?(VirtualHost="", "%2f", VirtualHost);
	Запрос = Новый HTTPЗапрос("/api/exchanges/"+vhost+"/"+exchange+"/publish", Заголовки);
	payloadJSON = обработкаJSONAPI.j_Экранировать(обработкаJSONAPI.JSONAPI(ссылка));
	телоСтруктура = new Структура();
	телоСтруктура.Вставить("properties",new Структура());
	телоСтруктура.Вставить("routing_key", ссылка.Метаданные().ПолноеИмя());
	телоСтруктура.Вставить("payload",payloadJSON);
	телоСтруктура.Вставить("payload_encoding","string");
	телоСтрока = обработкаJSONAPI.JSON(телоСтруктура);
	Запрос.УстановитьТелоИзСтроки(телоСтрока, "CESU-8");
	Соединение.ОтправитьДляОбработки(Запрос, "c:\shared\rmq1c-http-response.txt");
	возврат Запрос.АдресРесурса + Символы.ВК + телоСтрока;
КонецФункции

//отправка ссылки, с указанием обработки JSONAPI, в которой находится функция сериализации в JSONAPI
Процедура ОтправитьВОчередь(Ссылка) Экспорт
	ОтправитьJSONAPIвRMQ(Ссылка, Обработки.JSONAPI.Создать());
КонецПроцедуры

//отправляем в фоновом режиме, чтобы не тормозить процессы
Процедура ПриЗаписиСправочникаПриЗаписи(Источник, Отказ) Экспорт
	Параметры = Новый Массив;
	Параметры.Добавить(Источник.ссылка);
	ФоновыеЗадания.Выполнить("RMQ.ОтправитьВОчередь", 
		Параметры, Новый УникальныйИдентификатор, "Пример асинхронной концепции программирования");
	//ОтправитьВОчередь(Источник);	
КонецПроцедуры

В веб интерфейсе RabbitMQ указываем в какой очереди и по каким routing key (типы объектов) мы хотим получать сообщения с данными.

Недостаток: событие "при записи" происходит перед транзакцией БД, а не после, поэтому если транзакция не пройдет, то событие "запись" отправленное куда либо, будет фальшивым.

протестировано на 1С:Предприятие 8.2 (8.2.19.130)

Перем j_СоответствиеТиповИИмен;
Перем j_Сч;

// Служебная функция из арсенала 1С. Название говорит само за себя 
Функция j_ОпределитьПоСсылкеИмяТипа(СсылкаНаОбъект) Экспорт
	
	Если СсылкаНаОбъект = Неопределено Тогда
		Возврат "";
	КонецЕсли;
	
	ТипОбъекта = ТипЗнч(СсылкаНаОбъект);
	
	j_СоответствиеТиповИИмен = Новый Соответствие();
	СтрокаСоответствия = j_СоответствиеТиповИИмен.Получить(ТипОбъекта);
	
	Если СтрокаСоответствия = Неопределено Тогда 
		
		МетаданныеСсылки = СсылкаНаОбъект.Метаданные();
		
		Если Метаданные.Справочники.Содержит(МетаданныеСсылки) Тогда
			
			ИмяТипа = "СправочникСсылка";
			
		ИначеЕсли Метаданные.Документы.Содержит(МетаданныеСсылки) Тогда
			
			ИмяТипа = "ДокументСсылка";
			
		ИначеЕсли Метаданные.ПланыВидовХарактеристик.Содержит(МетаданныеСсылки) Тогда
			
			ИмяТипа = "ПланВидовХарактеристикСсылка";
			
		ИначеЕсли Метаданные.ПланыСчетов.Содержит(МетаданныеСсылки) Тогда
			
			ИмяТипа = "ПланСчетовСсылка";
			
		ИначеЕсли Метаданные.ПланыВидовРасчета.Содержит(МетаданныеСсылки) Тогда
			
			ИмяТипа = "ПланВидовРасчетаСсылка";
			
		ИначеЕсли Метаданные.ПланыОбмена.Содержит(МетаданныеСсылки) Тогда
			
			ИмяТипа = "ПланОбменаСсылка";
			
		ИначеЕсли Метаданные.Задачи.Содержит(МетаданныеСсылки) Тогда
			
			ИмяТипа = "ЗадачаСсылка";
			
		ИначеЕсли Метаданные.Перечисления.Содержит(МетаданныеСсылки) Тогда
			
			ИмяТипа = "ПеречислениеСсылка";
			
		ИначеЕсли Метаданные.БизнесПроцессы.Содержит(МетаданныеСсылки) Тогда
			
			ИмяТипа = "БизнесПроцессСсылка";
			
		Иначе
			
			ИмяТипа = "";
			
		КонецЕсли;
		
		j_СоответствиеТиповИИмен.Вставить(ТипОбъекта, ИмяТипа);
		
		Возврат ИмяТипа;
	
	КонецЕсли;
	
	Возврат СтрокаСоответствия;
	
КонецФункции

// Служебная функция из арсенала 1С. Название говорит само за себя 
Функция j_ОпределитьПоСсылкеПредставление(СсылкаНаОбъект) Экспорт
	
	Если СсылкаНаОбъект = Неопределено Тогда
		Возврат "";
	КонецЕсли;
	
	МетаданныеСсылки = СсылкаНаОбъект.Метаданные();
	ИмяТипа = j_ОпределитьПоСсылкеИмяТипа(СсылкаНаОбъект) + "." + МетаданныеСсылки.Имя;
	Возврат ИмяТипа;
	
КонецФункции

// Экранирует спецсимвоы в строке
Функция j_Экранировать(Знач Строка) Экспорт
	Строка = СтрЗаменить(Строка, "\", "\\");
    Строка = СтрЗаменить(Строка,Символы.ПС,"\n");
    Строка = СтрЗаменить(Строка,Символы.ВК,"\r"); 
	Строка = СтрЗаменить(Строка,Символы.Таб,"\t");
	Строка = СтрЗаменить(Строка,"""","\""");
	//Строка = СтрЗаменить(Строка,"'","\'");
	//Строка = СтрЗаменить(Строка, "\", "\\");
    Возврат Строка
КонецФункции

Функция JSON(Значение, Форматировать = Истина, Отступ  = "") Экспорт
	
	JSONРазделСтрок = Символы.ВК + Символы.ПС; 
	Разделитель	= "";
    ТипЗн = ТипЗнч(Значение);
	Отступ = ?(Форматировать, Отступ, "");
	
	// Строка
	Если ТипЗн = Тип("Строка") Тогда
        Стр = """" + j_Экранировать(Значение) + """"

	// Число или Булево
    ИначеЕсли ТипЗн = Тип("Число") ИЛИ ТипЗнч(Значение) = Тип("Булево") Тогда
        Стр = XMLСтрока(Значение)

	// Дата	
    ИначеЕсли ТипЗн = Тип("Дата") Тогда
        Стр = """" + ?(ЗначениеЗаполнено(Значение),XMLСтрока(Значение),"") + """"

	// Структура Данных Рекурсивно	
	ИначеЕсли ТипЗн = Тип("Структура") Тогда
        Стр = JSONРазделСтрок + Отступ + "{";
        Для Каждого Параметр Из Значение Цикл
            Стр = Стр + Разделитель + JSONРазделСтрок + Отступ + """" + Параметр.Ключ + """:" + JSON(Параметр.Значение, Форматировать, Отступ + Символы.Таб);
			Разделитель = ","
        КонецЦикла;
        Стр = Стр + JSONРазделСтрок + Отступ + "}";
		
	// Массив Рекурсивно
    ИначеЕсли ТипЗн = Тип("Массив") Тогда
        Стр = Отступ + "[";
		Для Каждого Элемент Из Значение Цикл
            Стр = Стр + Разделитель + JSONРазделСтрок + Отступ + JSON(Элемент, Форматировать, Отступ + Символы.Таб);
            Разделитель = ","
        КонецЦикла;
        Стр = Стр + JSONРазделСтрок + Отступ + "]";

	// Таблица Значеий как массив структур Рекурсивно	
	ИначеЕсли ТипЗн = Тип("ТаблицаЗначений") Тогда
        Колонки = Значение.Колонки;
        Массив = Новый Массив;
        Для Каждого СтрокаТЗ Из Значение Цикл
            Структура = Новый Структура;
            Для Каждого Колонка Из Колонки Цикл
                Структура.Вставить(Колонка.Имя,СтрокаТЗ[Колонка.Имя])
            КонецЦикла;
            Массив.Добавить(Структура);
        КонецЦикла;
        Стр = JSON(Массив, Форматировать, Отступ)

	// Ссылка на объект
	ИначеЕсли Найти(Строка(ТипЗн), "ссылка") >0 Тогда
		Структура = Новый Структура;
		
		ИмяТипа = j_ОпределитьПоСсылкеИмяТипа(Значение);                
		
		Если Не Значение.Пустая()  Тогда
			Если ИмяТипа = "СправочникСсылка" Тогда
				Структура.Вставить("UUID",XMLСтрока(Значение));
			ИначеЕсли ИмяТипа = "ДокументСсылка" Тогда
				Структура.Вставить("UUID",XMLСтрока(Значение));
				Структура.Вставить("НомерДокумента",Значение.Номер);
				Структура.Вставить("ДатаДокумента",Значение.Дата);
			КонецЕсли;
			Структура.Вставить("ТипОбъекта",j_ОпределитьПоСсылкеПредставление(Значение));
			Структура.Вставить("Представление",j_Экранировать(Значение));
		Иначе
			Структура.Вставить("ТипОбъекта",j_ОпределитьПоСсылкеПредставление(Значение));
			Структура.Вставить("Представление",Неопределено);
		КонецЕсли;
		Стр = Отступ + JSON(Структура, Форматировать, Отступ + Символы.Таб);
		
	// Коллекция Объектов - Не сериализуется
	ИначеЕсли Найти(Строка(ТипЗн), "менеджер") >0 Тогда
		Структура = Новый Структура;
		Структура.Вставить("ТипОбъекта",j_Экранировать(Значение));
		Стр = Отступ + JSON(Структура, Форматировать, Отступ + Символы.Таб);		
		
	// Неопределенка
    ИначеЕсли не значениеЗаполнено(Значение) Тогда
        Стр = "null"
		
	// Все остальное не сериализуется
	Иначе
		//Стр = "null" + j_Экранировать(Значение);
		data = Новый Структура;
		data.Вставить("type", Значение.Метаданные().ПолноеИмя());
		попытка
			data.Вставить("id",строка(Значение.ссылка.УникальныйИдентификатор()));
		исключение
			data.Вставить("id",j_Экранировать(Значение));
		конецпопытки;
		Структура = Новый Структура;
		Структура.Вставить("data", data);
		Стр = Отступ + JSON(Структура, Форматировать, Отступ + Символы.Таб);		
    КонецЕсли;

    Возврат Стр
КонецФункции

Процедура ДобавитьВСтруктуру(Имя, Значение, attributes, relationships)
	ТипЗн = ТипЗнч(Значение);
	Если не значениеЗаполнено(Значение)Тогда
	ИначеЕсли ТипЗн = Тип("Строка") или ТипЗн = Тип("Число") ИЛИ ТипЗнч(Значение) = Тип("Булево") или ТипЗн = Тип("Дата")
		или ТипЗн = Тип("Структура") 
		//или ТипЗн = Тип("Массив") или ТипЗн = Тип("ТаблицаЗначений")
		Тогда
		attributes.Вставить(Имя, Значение);
	иначе
		relationships.Вставить(Имя, Значение);
	Конецесли;
КонецПроцедуры

Функция JSONAPI(Ссылка)Экспорт
	Ссылка = Ссылка.ссылка;
	data = Новый Структура();  
	//Объект = справочники.Контрагенты.найтипокоду("000000001").ПолучитьОбъект();
	//Объект.Метаданные().ПолноеИмя()
	МД = ссылка.Метаданные();
	ПолноеИмяТипа = МД.ПолноеИмя();
	data.Вставить("type", ПолноеИмяТипа);
	data.Вставить("id", Строка(Ссылка.УникальныйИдентификатор()));
	attributes = Новый Структура;
	relationships = Новый Структура;
	included = Новый Массив;
	Для каждого Реквизит из МД.СтандартныеРеквизиты Цикл
		ДобавитьВСтруктуру(Реквизит.Имя, Ссылка[Реквизит.Имя], attributes, relationships);
	КонецЦикла;     
	Для каждого Реквизит из МД.Реквизиты Цикл
		ДобавитьВСтруктуру(Реквизит.Имя, Ссылка[Реквизит.Имя], attributes, relationships);
	КонецЦикла;     
	Для каждого ТабличнаяЧасть из МД.ТабличныеЧасти Цикл
		Значение = Ссылка[ТабличнаяЧасть.Имя].Выгрузить();
		Колонки = Значение.Колонки;
		Массив = Новый Массив;
		Для Каждого СтрокаТЗ Из Значение Цикл
			attributes1 = Новый Структура();
			relationships1 = Новый Структура();
			Для Каждого Колонка Из Колонки Цикл
				ДобавитьВСтруктуру(Колонка.Имя, СтрокаТЗ[Колонка.Имя], attributes1, relationships1);
			КонецЦикла;
			type = ПолноеИмяТипа + "." + ТабличнаяЧасть.Имя;
			id = Строка(Ссылка.УникальныйИдентификатор()) + "-" + СтрокаТЗ.НомерСтроки;
			item1 = Новый Структура("type,id", type, id);
			Массив.Добавить(item1);
			item = Новый Структура("type,id", type, id);
			item.Вставить("attributes", attributes1);
			item.Вставить("relationships", relationships1);
			included.Добавить(item);
		КонецЦикла;
		relationships.Вставить(ТабличнаяЧасть.Имя, Новый Структура("data", Массив));
	КонецЦикла;
	Если attributes.Количество()>0 тогда 
		data.Вставить("attributes", attributes);
	КонецЕсли;
	Если relationships.Количество()>0 тогда 
		data.Вставить("relationships", relationships);
	КонецЕсли;
	Если included.Количество()>0 тогда 
		data.Вставить("included", included);
	КонецЕсли;
	Структура = Новый Структура("data", data);
	возврат JSON(Структура);
КонецФункции

 

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

Наименование Файл Версия Размер
Преобразование объекта в JSONAPI

.epf 11,77Kb
23.02.18
22
.epf 11,77Kb 22 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. nomadon 391 07.05.18 19:35 Сейчас в теме
Спасибо за возможность копипаста)
vsozansky; VVi3ard; maxopik2; Irwin; +4 Ответить
2. vis_tmp 30 25.04.20 14:07 Сейчас в теме
Никак не могу найти, есть ли возможность для 7.7 использовать Rabbit MQ ?
3. user1383227 18.05.20 22:00 Сейчас в теме
4. kare 21 26.10.20 13:30 Сейчас в теме
Добрый день, а как реализован процесс оповещения получателя? т.е н-ое количество раз опрашиваем кролика на сообщения на стороне базы приемника?
Оставьте свое сообщение

См. также

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

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

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

11.07.2014    34724    29    1C_MApteka    37    

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

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

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

1 стартмани

23.06.2020    4255    49    Lem0n    0    

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

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

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

2 стартмани

18.01.2020    8017    24    Deniskinr83    0    

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

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

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

10 стартмани

05.12.2019    9543    29    zykov_vitaliy    22    

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

Универсальные функции Инструментарий разработчика Учет ТМЦ Учет ТМЦ v8 1cv8.cf Россия БУ Абонемент ($m)

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

1 стартмани

17.08.2015    47200    156    ekaruk    32    

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

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

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

1 стартмани

03.12.2019    10308    3    Dedushka    26    

Вывод QR-кода типовыми средствами.

Универсальные печатные формы Сканер штрих-кода Универсальные функции v8 КА1 УТ10 УПП1 Абонемент ($m)

Вывод QR-кода типовыми средствами. На данный момент очень часто нужно вывести в печатную форму QR-код. Показываю как на примере типового кода из УТ11 это сделать. Можно использовать в любых конфигурациях с обычными формами.

1 стартмани

21.10.2019    17817    31    Емельянов Алексей    47    

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

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

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

1 стартмани

10.09.2019    10923    34    sivin-alexey    8    

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

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

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

1 стартмани

20.12.2011    22541    4    hrip    10    

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

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

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

1 стартмани

06.09.2019    8488    12    duhh    17    

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

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

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

10 стартмани

20.08.2019    13473    25    zfilin    66    

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

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

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

4 стартмани

08.07.2019    12004    30    miha-28    17    

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом Промо

Печатные формы документов Универсальные функции Email v8 КА1 БП2.0 УТ10 УПП1 Абонемент ($m)

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями "Управление торговлей 10.3", "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1", "Бухгалтерия предприятия 2.0".

1 стартмани

21.09.2018    24469    16    stvorl    0    

Экспортные процедуры и функции общих модулей БП 3.0, ЗУП 3.1, УТ 11

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

Таблицы экспортных процедур и функций общих модулей конфигураций БП КОРП 3.0, ЗУП КОРП 3.1, УТ 11 + обработка по формированию такой таблицы из любой конфигурации.

14.06.2019    9649    22    SanchoD    29    

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

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

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

3 стартмани

04.05.2019    19383    72    MarkoSokolov    47    

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

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

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

1 стартмани

25.03.2019    14831    24    nbeliaev    11    

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

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

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

1 стартмани

08.09.2016    27605    17    PloAl    8    

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

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

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

2 стартмани

14.01.2019    11823    33    John_d    10    

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

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

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

3 стартмани

22.11.2018    25341    58    17808849    49    

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

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

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

2 стартмани

08.10.2018    20932    38    echo77    72    

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

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

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

1 стартмани

05.10.2018    40001    56    akimych    48    

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

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

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

1 стартмани

20.07.2018    18603    18    Deda    12    

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

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

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

1 стартмани

10.06.2018    30205    91    Goleff74    41    

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

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

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

5 стартмани

09.11.2015    51492    84    Black-fog    62    

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

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

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

1 стартмани

14.05.2018    13817    16    vsbronnikov    25    

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

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

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

1 стартмани

24.04.2018    32265    175    Ko1t    80    

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

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

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

1 стартмани

09.04.2018    39507    263    Ko1t    73    

Лучшие методы сравнения таблиц значений Промо

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

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

1 стартмани

02.02.2015    109646    39    ildarovich    59    

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

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

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

1 стартмани

09.04.2018    12892    29    Lapitskiy    7    

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

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

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

1 стартмани

01.03.2018    14734    54    khabibullin.tu    14    

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

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

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

2 стартмани

19.02.2018    17170    48    John_d    4    

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

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

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

1 стартмани

28.07.2016    33730    19    c1nil    4    

[Расширение] Контекстная подсказка и автозаполнение данных используя DaData.ru без снятия с поддержки БП + УТ + CRM

Обработка справочников Внешние источники данных WEB v8 УНФ БП3.0 УТ11 1С:CRM Абонемент ($m)

Удобно искать, выбирать варианты и заполнять справочники Контрагенты\партнеры\адреса по частям строк, адресов, ИНН, чему угодно, благодаря сервису DaData.ru. Подключается в режиме Предприятие, конфигурация полностью остаётся на поддержке. Не требует наличия подписки ИТС и загрузки КЛАДРа (ФИАС) в базу, при этом не отключает штатный функционал по автозаполнению.

2 стартмани

07.01.2018    16383    123    ipetrochenko    86    

Чтение отчета ОФД (ПлатформаОФД/СБИС Тензор) + получение состава кассового чека

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

Чтение отчетов оператора ПлатформаОФД/СБИС Тензор с возможностью получения детализации по кассовым чекам для Управление торговлей 10.3.Х.ХХХ.

1 стартмани

12.12.2017    16758    15    independ    9    

Автоматическое заполнение реквизитов контрагентов по ИНН для ERP 2.4, ERP 2.2, УТ 11.4, УТ 11.3, УТ 11.2, КА 2.4, КА 2.2 и БП 3.0 (расширение конфигурации)

Обработка справочников Внешние источники данных WEB Расширения v8 v8::БУ v8::ОУ v8::УФ УПП1 ERP2 БП3.0 УТ11 КА2 Россия Абонемент ($m)

Универсальное расширение конфигурации для автоматической загрузки реквизитов контрагентов (партнеров) из ОГРН для 1С:ERP Управление предприятием 2 (1С:ERP Управление предприятием 2, редакция 2.4), 1С:ERP Управление предприятием 2 (1С:ERP Управление предприятием 2, редакция 2.2), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.4), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.3), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.2), 1С:Комплексная автоматизация 8 (1С:Комплексная автоматизация, редакция 2.4), 1С:Комплексная автоматизация 8 (1С:Комплексная автоматизация, редакция 2.2) и 1С:Бухгалтерия 8 (Бухгалтерия предприятия, редакция 3.0)

3 стартмани

08.11.2017    31120    231    AlexeyT1978    173    

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

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

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

1 стартмани

25.07.2016    45084    5    milkers    2    

Универсальная выгрузка данных в формате CSV

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

Универсальная обработка для выгрузки данных из 1С в файл формата CSV.

3 стартмани

06.11.2017    28365    212    ltfriend    32    

«Горыныч - то НЕ НАСТОЯЩИЙ!» … или О Конвертации Данных ред.3 (КД 3) и обменах в универсальном формате Enterprise Data… доступным русско-народным языком

Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8 v8 КД Абонемент ($m)

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

1 стартмани

13.06.2017    21740    142    Davlad_A    16    

Шаблон внешней обработки регламентного задания с формой настройки параметров выполнения

Инструментарий разработчика Универсальные функции v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

28.05.2017    25828    184    Bassgood    10    

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

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

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

1 стартмани

16.03.2012    367851    2869    StepByStep    734    

Пример работы с апи AMO CRM под УНФ 1.6

Внешние источники данных Управление взаимоотношениями с клиентами (СRM) Управление взаимоотношениями с клиентами (СRM) v8 УНФ Абонемент ($m)

Пример импорта сделок и контактов в Управление небольшой фирмой 1.6 из АМО СРМ. Обработка может быть полезна разработчикам, у которых есть необходимость с нуля, используя апи АМО СРМ, выполнить импорт данных контактов и сделок.

1 стартмани

17.04.2017    14420    115    nickn1659@gmail.com    7    

Публичный аккаунт Viber. Регистрация и отправка сообщений

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

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

1 стартмани

12.04.2017    57542    103    Anton64    25    

Web сервис 1С

Практика программирования Универсальные функции WEB v8 1cv8.cf Россия Абонемент ($m)

Пример реализации простого web сервиса. Особенность: не используются XDTO пакеты, определяемые в дереве конфигураций; возможность передачи любых структур данных: списки значений, таблицы значений, табличные документы и т.п.

1 стартмани

21.03.2017    31482    94    hiduk    34    

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

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

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

2 стартмани

14.12.2015    39286    45    Terrain25    47    

План обмена в формате "EnterpriseData" для УТ 10.3

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

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

1 стартмани

19.03.2017    17752    98    binex    3    

Процессор вывода результата компоновки данных в JSON. И не только...

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

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

1 стартмани

14.02.2017    23639    46    pbazeliuk    33    

Выгрузка метаданных конфигурации 1С в Visio 2010/2013 (для 8.3)

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

Обработка выгрузки метаданных конфигурации 1С в ER-диаграмму Visio 2010/2013 (для 8.3)

2 стартмани

30.11.2016    20007    126    pfihr    19    

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

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

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

2 стартмани

15.02.2016    39949    84    lunjio    15    

Telegram bot. Обработка для управления ботом

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

Может быть основой для ваших ботов, или если нужно создать быстро бота и управлять. Так как управление из 1С, вы можете писать боту разные команды для получения данных из базы. Обработка работает целиком на клиенте, без серверных вызовов! Это очень полезно, для развития максимальных скоростей. Настройки хранятся в каталоге пользователя. Тестировалась на 8.3.8, тонкий клиент, для любых конфигураций.

1 стартмани

14.11.2016    10740    45    silberRus    10    

Работа с системой Меркурий через Ветис.API

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

Инструкция по первичной интеграции с 1С. Общий модуль и ряд рабочих обработок для работы с системой Меркурий через Ветис.API.

1 стартмани

11.11.2016    56349    305    anig99    29