Как мы запилили в АЙТАТ.РФ обработку-бота, чтобы ускорить отгрузку в 2 раза или Реальный опыт внедрения нового механизма "Трансляция событий" от 1С-Коннект

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

Разработка - Системная интеграция - Интеграция

1С-Коннект ТрансляцияСобытий

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

Всё описанное ниже сделано на 1С УПП 1.3 + CRM, редакция 1.4, но всё это можно реализовать в любой конфигурации.

 

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

 

Трансляция событий представляет собой механизм, дополняющий основные команды по манипулированию данными, и предоставляющий информирование об изменении/добавлении данных на стороне 1С-Коннект, внешнему пользователю API (Документация "Трансляция событий").

 

Задача

У нас была задача, где надо было автоматизировать работу менеджера, которая заключалась в том, чтобы при получении определенных электронных писем об оплате создавать обращение в 1С-Коннекте в свободную линию поддержки (ЛП) специалиста, что клиент всё оплатил и нужно отгрузить товар. Всё это контролировал, ответственный за это дело менеджер, искал свободную ЛП и писал туда заявку менеджеру. Почему мы использовали чат вместо «тикетов»? В чате менеджеры могут писать доп. информацию и ввести переписку по текущей задаче или же смотреть историю переписки и обращении.

 

Разработка решения задачи.

Сначала для решения этой задачи была разработана обработка, которая после запуска должна была каждые 15 минут обрабатывать электронные письма и писать сообщение в 1С-Коннект. Работала обработка через Agent API (Что такое Agent API и его документация), т.к. раньше программно отправлять сообщение можно было только через Agent API , как нам было известно. Для этого необходимо было подключить внешнюю компоненту, которая отправляла команды через канал Named-Pipe (Подробнее о том, что такое Named-Pipe). У этого способа были такие минусы:

  1. Работает только через клиент
  2. 1С-Коннект и 1С должны быть всегда включены
  3. Нельзя отправлять сообщение от имени другого пользователя, а только от авторизованного в 1С-Коннекте
  4. Сложность в интеграции

Эти ограничения мешали нормальной работе обработки, нужно было выделить ПК, который должен был быть включённым 24/7, с запущенной программой 1С-Коннект и с запущенным 1С Предприятие, нужно было проверять всё ли работает в штатном состоянии.

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

Новый механизм избавил нас от ограничении Agent API и получил такие плюсы:

  1. Работает через сервер и нет зависимости от самой программы 1С-Коннект
  2. Можно программно отправлять сообщения от имени любого специалиста вашей компании
  3. Можно отправлять файлы
  4. Можно переводить обращение
  5. Закрывать обращения
  6. Не требует сложного программирования
  7. Быстро возвращает, в указанный URL, информацию о всех действиях 1С-Коннекта, с подробным описанием.

Обработку переделали под новый механизм и теперь он стал работал как "часы" без всяких ограничении.

Обработка запускается фоновым заданием каждые 5 минут, после запуска обработка собирает данные по электронным письмам, какой контрагент, когда, сколько, по какому заказу и за что оплатил. Далее с помощью "Трансляция событий" получает список занятых ЛП и сохраняет в табличной части (ТЧ) «ТЧОктрытыеЗаявки». Для этого устанавливаем HTTPS соединение, отправляем GET запрос (Описание запроса в документации), получаем результат и обрабатываем. Для подключения HTTPS соединения используем такой же логин, пароль как и для WebAPI. 

Отмечу, что почти везде POST запросы.

Процедура ЗагрузитьОткрытыеЗаявки()
	
	ТЧОткрытыеЗаявки.Очистить();
	
	Сервер = "push.1c-connect.com";
	ТекстЗапрос = "/v1/line/treatment/";
	
	Логин = Константы.бфЛогин.Получить();   //логин и пароль для доступа такой же как и для WebApi
	Пароль = Константы.бфПароль.Получить();
	
	ssl1 = Новый ЗащищенноеСоединениеOpenSSL(
	Новый СертификатКлиентаWindows(),
	Новый СертификатыУдостоверяющихЦентровWindows());
	
	Соединение = Новый HTTPСоединение(Сервер,443,Логин,Пароль,,,ssl1);
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Content-Type", "application/json");
	
	Запрос = Новый HTTPЗапрос(ТекстЗапрос,Заголовки);
	
	Попытка
		Результат = Соединение.Получить(Запрос);
	Исключение
		ЗаписьЖурналаРегистрации("Создать заявки менеджерамв Коннекте. " + ОписаниеОшибки(), 
		УровеньЖурналаРегистрации.Ошибка);  
	КонецПопытки;
	
	Если Результат.КодСостояния <> 200 Тогда
		Отказ = Истина;
		Возврат;
	КонецЕсли; 
	
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(Результат.ПолучитьТелоКакСтроку());
	
	РезультатДерево = Неопределено;
	СформироватьДерево(ЧтениеJSON, РезультатДерево);
	
	Для Каждого Строка Из РезультатДерево Цикл
		line_id = СокрЛП(Строка.Получить("line_id"));
		
		НВСтр = ТЧОткрытыеЗаявки.Добавить();
		НВСтр.ServiceID = line_id;
	КонецЦикла;
	
КонецПроцедуры

 

Далее получаем список всех ЛП, которые хранятся в регистре сведении бфВидыСервисов и отсекаем, которые уже заняты.

Циклом проходим по ТЧ с данными об электронных письмах, создавая на каждое эл. письмо обращение в свободное ЛП с помощью бота "Трансляция событий". Если свободных ЛП нет, то ответственному менеджеру отправляется на почту письмо,  что все его ЛП заняты с информацией о заявке и об основном менеджере,  который должен был принять заявку. У каждого контрагента свой основной менеджер.

ЗагрузитьОткрытыеЗаявки();
	Для каждого Строка Из ТЧ Цикл
		
		Если Строка.Различаются или НЕ Строка.Обработать или Строка.ЗаявкаСоздана Тогда
			Продолжить;
		КонецЕсли; 
		
		// У каждого менеджера свои ЛП, найдём ЛП менеджера
		//ТЧСервисы с колонками "IDСервиса, ИмяСервиса, Менеджер"
		Найденные = ТЧСервисы.НайтиСтроки(Новый Структура("Менеджер", Строка.ОсновнойМенеджер));
		
		Если Найденные.Количество() > 0 Тогда		
			IDЛП = ПолучитьСвобнуюЛП(Найденные[0].IDСервиса, Строка.ОсновнойМенеджер); //Получаем ИД свободной ЛП
			
			Если ЗначениеЗаполнено(IDЛП) Тогда
				ТекстСообщения = ПолучитьТекстСообщения(Строка); //Формируем текст сообщения
				
				// Отправляется сообщение в указанный ЛП от имени Специалиста, тем самым создаёт обращение
				РезультатОбращение = бфСервер.НаписатьСообщениеВКоннектЧерезПушАпи(IDЛП, АйдиКлиента, ТекстСообщения, АйдиСпец);
				
				Если РезультатОбращение Тогда
					//Записываем в регистр информацию о том, что обращение создано и доп информацию
					ДействияСРегистром(Строка.ЭлПисьмо,,Строка.ЗаказКлиента,IDЛП, , Строка.Контрагент); 
				КонецЕсли; 
				УдалитьЛПИзТЧ(IDЛП); //Удалить ЛП из ТЧСервисы, чтобы туда больше не создавались заявки, т.к. уже занято
			КонецЕсли; 
			
		Иначе
			СообщениеОтправлено = ДействияСРегистром(Строка.ЭлПисьмо, 4,,,,Строка.Контрагент);
			Если НЕ СообщениеОтправлено Тогда
				Попытка
					//Отправляем на Эл. почту письмо менеджеру, с описанием заявки о том, что все ЛП Заняты
					ИсхПисьмо = ОтправитьСообщениеНаПочту(Строка.ОсновнойМенеджер, Строка.ЭлПисьмо, 1);
					
					//Записываем в регистр информацию о письме
					ДействияСРегистром(Строка.ЭлПисьмо, 5, ИсхПисьмо,,,Строка.Контрагент);  
				Исключение
				КонецПопытки;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла; 

 

Но перед тем как всё это работало надо боту один раз подключить каждую ЛП, по которым будут отправляться сообщения. Для этого отправляем POST запрос (Описание запроса в документации) со структурой обязательных параметров:

  1. Тип = бот
  2. URL адрес опубликованной базы, куда будет приходить ответ
  3. id линии поддержки, к которому нужно подключить бота

 

Функция ПодключитьЛинию(Соединение, IDЛП)
	
	ТекстЗапрос = "/v1/hook/";
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Content-Type", "application/json");
	
	Запрос = Новый HTTPЗапрос(ТЕкстЗапрос,Заголовки);
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	
	СтруктураЗапроса = Новый Структура;
	СтруктураЗапроса.Вставить("type", "bot");
	СтруктураЗапроса.Вставить("url", "https://push.example.com/connect/hook/");
	СтруктураЗапроса.Вставить("id", IDЛП);
	
	ЗаписатьJSON(ЗаписьJSON, СтруктураЗапроса);
	ТелоЗапроса = ЗаписьJSON.Закрыть();
		
	Запрос.УстановитьТелоИзСтроки(ТелоЗапроса,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.НеИспользовать);
	
	Попытка
		Результат = Соединение.ОтправитьДляОбработки(Запрос);
	Исключение
		ЗаписьЖурналаРегистрации("Создать заявки менеджерамв Коннекте. " + ОписаниеОшибки(), 
		УровеньЖурналаРегистрации.Ошибка);  
	КонецПопытки;
	
	Если Результат.КодСостояния <> 200 Тогда
		Возврат Ложь;
	КонецЕсли; 

	Возврат Истина;
КонецФункции // ПодключитьЛинию()

А вот как открывать обращение (Описание запроса в документации)

Post запрос с параметрами

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

Ещё можно добавить параметр «keyboard», который добавляет кнопки пользователю для быстрого ответа, он необязательный.

 

Функция ОткрытьОбращениеПушАпи(Соединение,АйдиЛинии,АйдиКлиента,ТекстСообщения, АйдиСпец)
	
	ТекстЗапрос = "/v1/line/send/message/";
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Content-Type", "application/json");
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	
	СтруктураЗапроса = Новый Структура;
	СтруктураЗапроса.Вставить("line_id", АйдиЛинии);
	СтруктураЗапроса.Вставить("text", ТекстСообщения);
	СтруктураЗапроса.Вставить("user_id", АйдиКлиента);
	СтруктураЗапроса.Вставить("author_id", АйдиСпец);
	
	ЗаписатьJSON(ЗаписьJSON, СтруктураЗапроса);
	ТелоЗапроса = ЗаписьJSON.Закрыть();
	Запрос = Новый HTTPЗапрос(ТекстЗапрос,Заголовки);
	Запрос.УстановитьТелоИзСтроки(ТелоЗапроса,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.НеИспользовать);
	
	Попытка
		Результат = Соединение.ОтправитьДляОбработки(Запрос);
	Исключение
		#Если клиент Тогда
			Сообщить(ОписаниеОшибки());
		#КонецЕсли   
	КонецПопытки;
	
	Если Результат.КодСостояния <> 200 Тогда
		Сообщить("Код состояния " + Результат.КодСостояния);
		Возврат Ложь;
	КонецЕсли; 
	
	Возврат Истина;
	
КонецФункции

 

Записываем в регистр информацию о созданной заявке, чтобы потом видеть, что по такой-то электронной письме создано обращение. Измерение Объект - это "Электронное письмо"

 

Описание всех событии приходит на указанный URL адрес, например, в нашем случае это опубликованная база, где используется HTTP-сервис для получения ответа от "Трансляция событий". Хочу добавить, что ответ мы получаем быстро и оперативно обо всех событиях 1С-Коненкта.

 

Также мы добавили кнопку "Написать в 1С-Коннект" в формы контрагента, конт. лица контрагента, CRM_РабочийСтол и в документ Событие, которая работает через "Трансляция событий".

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

 

Процедура КоманднаяПанельКонтактныеЛицаКонтрагентаНаписатьВКоннект(Кнопка)
	
	КонтактноеЛицо = ЭлементыФормы.КонтактныеЛицаКонтрагента.ТекущаяСтрока;
	
	Если НЕ ЗначениеЗаполнено(КонтактноеЛицо) Тогда
		Предупреждение("Контактное лицо не выбрано!");
		Возврат;
	КонецЕсли; 
	
	СписокСервсиов = бфСервер.ПолучитьСписокДоступныхЛППоКонтЛицу(КонтактноеЛицо);
	
	Если НЕ СписокСервсиов.Количество() > 0 Тогда
		Сообщить("У тек. пользователя нет доступных сервсиов для взаимодействия с клиентом");
		Возврат;
	КонецЕсли;
	
	Попытка
		
		Если СписокСервсиов.Количество() > 1 Тогда
			ВыбранноеЗначение = ВыбратьИзСписка(СписокСервсиов);
		Иначе
			ВыбранноеЗначение = СписокСервсиов[0];
		КонецЕсли; 
		
		СервисИД = СокрЛП(ВыбранноеЗначение.Значение);
		
		бфСервер.НаписатьСообщениеВКоннект(КонтактноеЛицо,СервисИД, Ссылка); 
	Исключение
		
	КонецПопытки;
	
КонецПроцедуры


//В общем модуле бфСервер
Функция НаписатьСообщениеВКоннект(КонтактноеЛицо, СервисИД, Контрагент = Неопределено) Экспорт
	Результат = Ложь;
	
	Если Контрагент = Неопределено Тогда
		Контрагент = КонтактноеЛицо.Владелец;
	КонецЕсли; 
	
	АйдиКонтрагента = ПолучитьАйдиКонтрагента(Контрагент);
	АйдиКлиента = ПолучитьАйдиПользователяКонтрагента(КонтактноеЛицо);
	АйдиСпец = ПолучитьАйдиКоннектТекПользователя();
	Если ЗначениеЗаполнено(СервисИД) и ЗначениеЗаполнено(АйдиКлиента) и ЗначениеЗаполнено(АйдиСпец) Тогда
		ТекстСообщения = "";
		ВвестиСтроку(ТекстСообщения, "Введите текст сообщения");
		
		Если СтрДлина(ТекстСообщения) > 0 Тогда
			
			Результат = НаписатьСообщениеВКоннектЧерезПушАпи(СервисИД, АйдиКлиента, ТекстСообщения, АйдиСпец);  
			
			Если НЕ Результат Тогда
				Ответ = ПодключитьЛиниюБоту(СервисИД);
				Если Ответ Тогда
					Результат = НаписатьСообщениеВКоннектЧерезПушАпи(СервисИД, АйдиКлиента, ТекстСообщения, АйдиСпец);
				КонецЕсли; 
			КонецЕсли;
			
			Если Результат Тогда
				Сообщить("Сообщение успешно отправлено!");
			Иначе
				Сообщить("Ошибка. Сообщение не отправлено!");
			КонецЕсли; 
			
		Иначе
			Сообщить("Текст сообщения не заполнен!");
		КонецЕсли;
	Иначе
		Сообщить("У тек. пользователя нет доступных сервисов для связи с клиентом");
	КонецЕсли;
	
	Если ИспользоватьБухФон() Тогда
		
		ДанныеСообщения = ПолучитьДанныеСообщения(АйдиКонтрагента, АйдиКлиента, СервисИД, АйдиСпец, ,ТекстСообщения);
		бфКлиент.ОбработатьСообщение(ДанныеСообщения);
	КонецЕсли; 
	
	Возврат Результат;
КонецФункции // НаписатьСообщениеВКоннект()


Функция НаписатьСообщениеВКоннектЧерезПушАпи(АйдиЛинии, АйдиКлиента, ТекстСообщения, АйдиСпец = "", Соединение = Неопределено) Экспорт
	
	Если Соединение = Неопределено Тогда
		Соединение = ПолучитьСоединениеПушАпи();
	КонецЕсли; 
		
	ТекстЗапрос = "/v1/line/send/message/";
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Content-Type", "application/json");
	
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	
	СтруктураЗапроса = Новый Структура;
	СтруктураЗапроса.Вставить("line_id", АйдиЛинии);
	СтруктураЗапроса.Вставить("text", ТекстСообщения);
	СтруктураЗапроса.Вставить("user_id", АйдиКлиента);
	Если ЗначениеЗаполнено(АйдиСпец) Тогда
		СтруктураЗапроса.Вставить("author_id", АйдиСпец);
	КонецЕсли; 
	
	
	ЗаписатьJSON(ЗаписьJSON, СтруктураЗапроса);
	ТелоЗапроса = ЗаписьJSON.Закрыть();
	Запрос = Новый HTTPЗапрос(ТекстЗапрос,Заголовки);
	
	Запрос.УстановитьТелоИзСтроки(ТелоЗапроса,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.НеИспользовать);
	
	Попытка
		Результат = Соединение.ОтправитьДляОбработки(Запрос);
	Исключение
		#Если клиент Тогда
			Сообщить(ОписаниеОшибки());
		#КонецЕсли   
	КонецПопытки;
	
	Если Результат.КодСостояния <> 200 Тогда
		Сообщить("Код состояния " + Результат.КодСостояния);
		Возврат Ложь;
	КонецЕсли; 
	
	Возврат Истина;
	
КонецФункции

 

P.S. Первый раз пишу статью. Буду благодарен за адекватную критику и помощь в редактировании и улучшении статьи :) 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 504 24.06.20 17:24 Сейчас в теме
"Возрадуйтесь, товарищи" - понятно что Вы рады, не все читающие понимают/разделяют радость.
Возможно сам сервис "1С-Коннект" Вам удобен, в каком общем контексте он используется непонятно. Если реализовано как готовый мессенджер с разделением на каналы, то будет интересно прочитать про реализацию.

Для доставки сообщений на клиент использую WebSocket сервер, да используется внешняя компонента, но вся инфраструктура локальна. Куда "утекают" данные при использовании сервисов 1С неизвестно.

По оформлению статьи:
* большие картинки и код в спойлеры, чтобы можно было прочитать текст не теряя контекст.
* код в виде текста (обертка code), возможно кто-то скопипастит и будет доволен.
* желательно уточнять термины, например Named-Pipe, добавить ссылку не сложно, информативность повысится.
* оставлять в публикации свои белые IP с портами чревато сканом/атакой на этот порт, "школьников" хватает.
* если есть схема, то возможно попробовать её отобразить графически, будет понятнее и нагляднее (Описание всех событии приходит на указанный URL адрес)
* желательно не забывать что если не пробросить порт то внешний сервис не "достучится", начинающие сис админы из за этого не могут настроить уведомления от АТС например. так же ограничить IP источника при пробросе порта.
VasDmi666; +1 Ответить
2. capitan 1734 26.06.20 11:59 Сейчас в теме
(1)По мне так очень даже нормально.
Я не так параноидально настроен.

Вебсокеты у вас разве асинхронно срабатывают?
А на телеграм тоже неизвестно куда утекают данные.
Плюс однозначно
VasDmi666; freesourcer; +2 Ответить
3. malikov_pro 504 26.06.20 12:50 Сейчас в теме
(2) Это базовые вещи по безопасности. Уже второй раз за месяц сталкиваюсь что настроенная "умными сис. админами" машина с 1С по их словам "изолированная" от пользователей на RDP по факту висит с белым IP в инет с опубликоваными базами по HTTP в фулл. Защиты от брутфорса в 1С до последних релизов не было.
4. TODD22 19 26.06.20 13:07 Сейчас в теме
(2)
Я не так параноидально настроен.

СБ в некоторых компаниях очень даже "так" настроены.

А на телеграм тоже неизвестно куда утекают данные.

Так себе аргумент.
Оставьте свое сообщение

См. также

Обмен данными. Консистентность vs Многопоточность Промо

Интеграция v8 1cv8.cf Бесплатно (free)

Рассмотрим теоретические основы обмена данными. Какие бывают обмены, какие гарантии при этом даются, зачем идти на компромиссы и что при этом может пойти не так. Есть ли идеальная схема?

03.09.2019    12162    m-rv    1    

Интеграция с Трелло. Готовый код

Обмен данными 1С Интеграция Agile (XP, SCRUM, Канбан) v8 Бесплатно (free)

Код основных действий, интеграция с API Трелло.

19.08.2020    2082    Yashazz    14    

Интеграции с сервером SQL. Быстро и просто

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

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

06.07.2020    1805    Infector    4    

Мониторинг факта выполнения обмена с помощью сервиса healthchecks.io

Интеграция Системное администрирование v8 1cv8.cf Россия Бесплатно (free)

В статье опишу вариант простого мониторинга обработчиков, запускаемых по расписанию.

30.06.2020    1632    malikov_pro    5    

Маркировка лекарственных препаратов. Часть первая "Быстрая интеграция"

Интеграция v8 1cv8.cf Фармацевтика, аптеки Россия УУ Бесплатно (free)

Данный цикл будет посвящен маркировке лекарственных препаратов (далее ЛП), нюансам работы с "1С: Библиотека интеграции с МДЛП", доступной для скачивания на сайте ИТС, методиками работы с регистраторами выбытия, и проблемам, с которыми пришлось столкнуться при интеграции. Эта статья будет представлять из себя краткую инструкцию, что делать, когда маркировка уже близко и необходимо быстро внедрить ее. Надеюсь, она станет подспорьем в данной задаче. Будут приведены рекомендации, как в короткие сроки с минимально необходимой функциональностью и минимумом чтения документации произвести интеграцию библиотеки МДЛП и выполнить начальные настройки. Также будут даны рекомендации по быстрым, но важным, на мой взгляд, доработкам.

23.06.2020    2763    IssakN    22    

Диадок. Подключаемый модуль. Отладка

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Небольшой пример, как работать с подключаемым модулем Диадок (для изменения УПД перед выгрузкой на сайт Диадок.). Отладка подключаемого модуля, если не смогли подключить стандартную отладку.

17.06.2020    3550    John_d    1    

1C# – 1С моей мечты

Интеграция v8 Бесплатно (free)

Встроенных в платформу 1С возможностей не всегда хватает для построения сложных интеграционных схем между различными 1С и не-1С-решениями на базе MS SQL Server. Как сделать интеграцию между SQL-базами более гибкой с помощью платформы 1С# на конференции Infostart Event 2019 Inception рассказал Дмитрий Жичкин.

01.06.2020    10751    zhichkin    33    

Обработчик "После завершения транзакции" своими руками

Практика программирования Интеграция v8::blocking Бесплатно (free)

Обработчик "Сразу после завершения транзакции" очень востребован в механизме обмена мгновенными сообщениями, развитием которого фирма 1С заинтересовались настолько, что уже создала "Сервисы интеграции". Но платформа 8.3.17 всё еще не имеет полноценного обработчика "После записи" в подписках на события.

31.05.2020    2690    barelpro    62    

Интеграция Camunda BPM и 1С

WEB Интеграция v8 Бесплатно (free)

Быстрый старт. Только практические примеры. Установка, запуск и публикация бизнес-процесса на сервере Camunda BPM. Управление бизнес-процессами из 1С при помощи Camunda REST API.

12.05.2020    3485    zhichkin    19    

Как мы загружаем данные в "Центр управления кассами Магнита"

Внешние источники данных Интеграция v8 1cv8.cf Бесплатно (free)

Статья о том, как мы делали механизм загрузки больших объемов данных в "Центр управления кассами Магнита"

08.05.2020    4845    chernenko_vv    25    

Интеграция СуперОкна7 и УНФ

Интеграция Внешние источники данных v8 УНФ Россия Бесплатно (free)

Изучаем базу данных СуперОкна7, смотрим возможности передачи и получения информации.

08.05.2020    2107    vostok1.dz    3    

Синхронизация БИТ:СКУД 8 с Parsec.Net 2.5

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Настройка синхронизации БИТ:СКУД 8 с Parsec.Net.2.5, выгрузка данных из внешней системы контроля доступа.

04.05.2020    3880    RPGrigorev    0    

Измерительная лаборатория с использованием 1С+Ардуино

Периферийные устройства Интеграция v8 Россия Бесплатно (free)

1С в автоматизации "научных" и около... экспериментов.

02.05.2020    4214    maxlab    15    

Интеграция БИТ:СКУД с типовой конфигурацией

Интеграция v8 1cv8.cf Россия Бесплатно (free)

Интеграция БИТ:СКУД с типовой конфигурацией, обновление БИТ:СКУД в составе конфигурации и отдельно. Обновление системы защиты.

26.04.2020    5010    RPGrigorev    0    

Интеграция 1С и BI-системы: мой опыт с коннектором ATK BIView

Интеграция v8 1cv8.cf Россия Бесплатно (free)

Интеграция 1С и BI-системы: мой опыт с коннектором ATK BIView.

06.04.2020    4075    Flyerink    0    

Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST

Производительность и оптимизация (HighLoad) WEB Интеграция Мобильная разработка Администрирование веб-серверов v8 Бесплатно (free)

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

31.03.2020    12568    informa1555    31    

Использование таблиц SQL Server в качестве очередей сообщений

Практика программирования Интеграция v8 Бесплатно (free)

Статья о событийно-ориентированной интеграции и об асинхронной обработке данных в контексте 1C под управлением SQL Server. Подробно разбирается вопрос использования таблиц СУБД в качестве очередей сообщений.

23.03.2020    2767    zhichkin    6    

Интеграция "Библиотеки интеграции МДЛП 1.1.2.7" с типовой конфигурацией

Интеграция Конфигурирование 1С v8 Здравоохранение, медицина, стоматология Россия Бесплатно (free)

Инструкция для интеграции “Библиотеки интеграции МДЛП 1.1.2.7” в типовые конфигурации, на примере конфигурации “Управление нашей фирмой, редакция 1.6 (1.6.18.168)”.

02.03.2020    5734    RPGrigorev    3    

Бесшовная интеграция через обмен по правилам - миссия выполнима

Практика программирования Интеграция Перенос данных из 1C8 в 1C8 v8 ДО ERP2 Бесплатно (free)

При организации работы с договорами в ERP 2, с помощью бесшовной интеграции с Документооборотом, «типовой» методикой является создание договоров в ЕРП. После создания договора в ЕРП, пользователь «отправляет» договор в ДО по бесшовной интеграции. На практике, весьма часто пользователи хотят видеть обратную схему: вводить договоры в ДО и при этом получать их в ЕРП без «лишних телодвижений». Или даже вводить их независимо в обеих системах – так, чтобы потом «стыковать» по каким-то определенным правилам.

24.01.2020    4974    e-9    2    

Передача данных с сервера на клиент через WebSocket NativeAPI и Centrifugo

Интеграция v8::УФ 1cv8.cf Россия Бесплатно (free)

В статье описываю реализацию обмена для замены передачи сообщений через 1С Сервер взаимодействия.

23.09.2019    7287    malikov_pro    11    

Оповещения боту из 1С за 31 минуту

Практика программирования Интеграция v8::УФ 1cv8.cf Бесплатно (free)

Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.

18.09.2019    16981    feva    41    

Как организовать консолидацию данных из трех десятков предприятий, не привлекая программистов на местах?

Интеграция v8 1cv8.cf Бесплатно (free)

Какую архитектуру и технологии выбрать для организации обмена между «зоопарком» разных конфигураций и системой, принципиально отличающейся от 1С, как наладить такой обмен без изменения конфигурации и организовать мониторинг из единого центра, расскажет докладчик конференции INFOSTART EVENT 2018 EDUCATION Александр Бобрышов. 

15.07.2019    4531    ShurikDM    4    

Система питания в офисе: как совместить вендинговые автоматы, 1С, облачную кассу и веб-технологии

Интеграция Розничная торговля Розничная торговля v8 1cv8.cf Розничная и сетевая торговля (FMCG) Россия УУ Бесплатно (free)

В начале 2019 года тенденция развития автоматов питания в России привела к появлению проекта нового формата питания на работе — МикроМаркета “Го!Поедим”. Потребовалось создать новый формат зоны питания сотрудников: интегрировать в офисные кухни полноценные МикроМаркеты с бесконтактной оплатой, кофе-машинами, лаунж-зоной. Если правильно совместить вендинговые автоматы, облачную кассу, 1С и веб-технологии, то в результате будут не только сытые сотрудники, но и корректная работа всей системы офисного питания.

22.06.2019    6481    antonovintervolga    6    

1С + TecDoc + CMS Битрикс. Трудности перевода

Интеграция Оптовая торговля Оптовая торговля v8 1cv8.cf Автомобили, автосервисы Россия УУ Бесплатно (free)

Варианты подключения номенклатурных данных базы TecDoc, если у вас автобизнес.

12.04.2019    6859    n.saltsina    11    

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

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

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

21.03.2019    26228    barelpro    82    

Переход на "Зарплату и управление персоналом 3.1"

Интеграция Управление персоналом (HRM) Пользователю системы Бухгалтерский учет Управление персоналом (HRM) v8 v8::СПР ЗУП2.5 ЗУП3.x Россия БУ Бесплатно (free)

Сменила я тут работу и уже после того, как я приступила к исполнению обязанностей, мой новый начальник мне призналась, что выбор пал на меня только из-за того, что я знаю программу. Справедливости ради, эта уверенность была основана только на том, что я прошла тестирование, включающее только основные операции кадрового делопроизводства. Так или иначе, а работодатель попал в точку, нанимая меня в надежде, что я решу проблему: нужно перейти «с 8.2 на 8.3». Ничего сложного, скажет большинство, я тоже так говорю, но ситуация осложнялась некоторым количеством предшественников, которые уже «нафеячили» в программах до меня. Взять и сделать все заново мне не разрешили, так что пришлось исходить из того, что есть, и именно это дало пищу для размышлений и, в конце концов, привело к написанию этих рекомендаций. Если перед Вами стоит задача перехода с ЗУП 2.5 на ЗУП 3.1, я попробую облегчить Вам жизнь этой статьей.

01.02.2019    13280    VKuser24804875    33    

Выбор программы 1С

Пользователю системы Интеграция Управление проектом v8 1cv8.cf Россия Бесплатно (free)

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

16.01.2019    9180    itworks    22    

Проектирование архитектуры и модификация программных продуктов как технология в сложных проектах системной интеграции и автоматизации на базе 1С: СППР

Управление проектом Интеграция СППР v8 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

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

03.10.2018    16804    roman72    19    

Планы обмена 1С

Перенос данных из 1C8 в 1C8 Интеграция v8 Бесплатно (free)

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

10.09.2018    58594    zhichkin    31    

Создание web-площадки на технологиях 1С, или как Водоканал сделал "Личный кабинет потребителя"

WEB Интеграция v8 Энергетика и ЖКХ Бесплатно (free)

Гончаров Максим делится опытом создания «Личного кабинета потребителя» на сайте водоканала. Он описывает архитектуру системы и объясняет, какую роль в ней играют технологии: «Битрикс», OData, веб-сервисы, «1С:БСП». Также в статье раскрываются возможности использования подсистемы «Анкетирование» в «1С:БСП» как конструктора документов.

25.06.2018    17454    maxx    33    

На что действительно способны HTTP-сервисы

WEB Интеграция v8 Бесплатно (free)

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

14.06.2018    35776    dalgaso2010    45    

Как написать обмен с 50 поставщиками и не сойти с ума. Теория

Интеграция v8 1cv8.cf Бесплатно (free)

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

09.04.2018    11669    m-rv    12    

Может ли 1С выйти на рынок B2C

Интеграция v8 Бесплатно (free)

Размышляя о том, может ли 1С втиснуться на рынок сервисов типа Slack, Wrike и им подобных, текст незаметно углубился в размышления о том, где граница применимости платформы 1С. Что будет, если 1С пойдет на рынок таких продуктов и возможно ли это вообще. Рассказал свое представление о том, где у 1С есть преимущества и где слабые стороны. Получился такой себе вырожденный SWAT-анализ. Но без таблиц. Только буквы, только хардкор.

15.08.2017    13598    WanGoff    76    

Обмен сообщениями. Что это?

Интеграция v8 Бесплатно (free)

Большая часть моей работы посвящена интеграции приложений. Очень странно, что для «1С:Предприятие 8» нигде не описаны промышленные шаблоны интеграции, а если и есть какая-то информация — то ее очень мало. Цель данной статьи (или цикла статей, как получится) стало желание поделится опытом, источниками информации и самое главное полезными книгами.

27.10.2016    22594    pbazeliuk    11    

Контур.EDI изнутри, или история командной разработки тиражного продукта на 1С

Интеграция Практика программирования Математика и алгоритмы Оптовая торговля Оптовая торговля v8 Россия УУ Бесплатно (free)

“Система - больше, чем просто совокупность ее элементов”; “Несколько разработчиков - это еще не команда разработки”. Расскажу, как мы прочувствовали эти очевидные утверждения на своей шкуре.

17.11.2015    41315    skif47    97    

УПП + Perco + SDK

Интеграция v8 УПП1 Россия Бесплатно (free)

1С: УПП интеграция с Perco через SDK

24.10.2014    32724    Alex33614    12    

Интеграция 1С с Perco

Интеграция v8 УПП1 Россия Бесплатно (free)

Как работать с базой электронной проходной Perco через 1С.

16.10.2014    30223    Alex33614    17    

Автоматизация компании ЖКХ: задачи и решения

Интеграция v8 Энергетика и ЖКХ Россия Бесплатно (free)

Отрасль жилищно-коммунального хозяйства мы до сих пор видели в двух ипостасях. Это оставшиеся с советских времен, жутко неэффективные МУПы и ДЭЗы и новоиспеченные фирмы, дорвавшиеся к «большим» деньгам ЖКХ, при этом тут же попавшие в шумные скандалы о растратах и неэффективном управлении. Но потихоньку ситуация меняется. Приходят на руководящие должности разумные люди, создаются управляющие компании целью которых становиться не «урвать и сбежать», а нормально работать и зарабатывать.

29.05.2011    11388    verybig    14