Вебхук. Путь Телеграма

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

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

Телеграм telegram вебхук webhook. бот для телеграм + на http сервис телеграма webhook

64
Долгое (на самом деле нет) и нелегкое путешествие телеграма к неведомым (из за РКН) конфигурациям 1С. Памятка себе.

Ну вот, когда где-нибудь едешь, то в голове столько мыслей, что написать, а когда садишься писать, где вы, все мысли?!

Вдох

Выдох

Поехали (с)

 

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

P.S. Поскольку вышел там какой то закон, все картинки рисовал сам.

 

Сказ о том, как телеграм путь к 1С искал.

Однажды я подумал... и понеслось.

...

А потом думаю - "оповещать покупателей в телеграме, из 1с, о статусах заказов было бы прикольно". Но на деле оказалось все куда интересней. Получение данных из 1с для сотрудников! Эта идея показалась мне очень интересной. Есть один маааааленький минус... телеграм запрещен в РФ. Вайбер? Да, как вариант. Может быть когда нибудь) 

"Я смутно помню тот момент, это был не легкий выбор. Все как в туманном сне, я плохо контролирую свое тело, вокруг паника, нужно встать и идти. В голове была одна мысль - нельзя останавливаться. Нужно было выбрать направление. Передо мной появился он... протянув руку и раскрыв кулак, он сказала:

- Выберешь голубую, и история закончится прямо здесь.

 На ладони лежали две таблетки - голубая и красная. Это была точка не возврата " (с) bot_telegram

Конечно, для себя я сразу определил, что буду пользоваться вебхуком, когда узнал, что такое возможно) Итак, что нам понадобится для вебхука:

1. Сервер apach

2. Статический(белый ip) на сервере. 

3. Виртуальный сервер - если у вас заблокирован телеграм. 

4. Прямые руки.

5. Чашечка чая.

6. Две чашечки кофе. 

Теперь подробней... По факту я конечно начал с шестого пункта, но здесь пойдем по порядку.

1. Сервер

Качаем apach 2.4 и vc_redist с этого сайта. Не перепутайте разрядности(версия apach на момент написания статьи).

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

Открываем файл C:\Apache24\conf\httpd.conf блокнотом. Находим в нем строку Listen 80, и ниже нее добавляем допустим Listen 8018. Именно на порт 8018 будет идти запрос. Можете установить какой предпочитаете.

- Установим vc_redist

- Для установки службы, откроем командную строку от имени администратора. Перейдем в каталог bin командой:

cd C:\Apache24\bin

и следующей командой установим службу:

httpd.exe -k install

Кажись служба установлена, ну зайдем в список служб проверим на всякий случай) Если не получилось, то выполним пункт назначения 5 или 6, на ваше усмотрение, и попробуем еще раз.

2. Статический ip

Здесь все еще проще. Чтобы телеграмму было куда отправить телеграм мог отправить запрос, нужен статический ip все потому что он белый

Если он уже есть - хорошо, если нет - нужно как то чтобы был. Далее пробрасываем порт на наш сервер apach на порт 8018, чтобы открыв наш адрес через белый ip, мы увидели что It works!

PS Если не получиться, но вы уверены, что все сделали правильно, то проверьте не блокирует ли ваш запрос антивирус или брандмауэр.

3. VPS или Виртуальный сервер. 

Здесь все достаточно просто - поскольку обращения телеграма к нашему серверу будет блокировать провайдер, то нам нужен посредник. Есть замечательное видио. по настройки этого посредника, так же у автора на сайте есть статья по этому видио, откуда можно скопировать все команды. Я арендовал VPS в другом месте, так как мне показалось, что рекомендуемый VPS дороговат. Я нашел за 3 евро в месяц. Так же выбрал ОС debian и все настраивал полностью по видио. Все получилось! 

Единственное, что у меня не получилось - это установить вебхук))))))))))) Так как в видио этого нет, а я не совсем бумбум) Но я не сдрейфил, связался с автором и попросил помочь, за что ему большое спасибо)

Если у вас на VPS не установлен curl(а если вы только развернули сервер, то скорей всего так и будет), нужно выполнить команду:

apt install curl

И установка вебхука:

curl -F "url=https://IP_VPS:Port" -F "certificate=@/etc/ssl/certs/nginx-selfsigned.crt" "https://api.telegram.org/bot{ТокенБота}/setWebhook"

IP_VPS - ip ващего виртуального сервера.

Port - порт, который установили в конфигурационном файле telegram.conf.

nginx-selfsigned.crt - сгенерированный сертификат. 

Не забудьте указать порт, при установки вебхука, а то я порядком так тупил в этот момент)))

Если кому то интересно, могу продлить аренду еще на пару месяцев, и попробовать пробросить порт на ваш ip, исключительно для тестов. Но не уверен, что у меня это получится) Если что, пишите в лс, можем попробовать))

4. Да начнется веселье....

Ну да ладно, будем откровенны - прямые руки нужны на каждом пункте этой эпопеи. И даже щелчок Таноса здесь не поможет.

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

Теперь, в 1с. Запускаем конфигуратор от имени администратора

Нам нужно создать http сервис, который будет принимать запросы телеграма. Корневой каталог укажем bot_telegram

 

На закладке Шаблоны URL добавим шаблон, предположим ОбработатьВходящиеСообщение, с двумя методами GET и POST.

В обработчике GET напишем следующий код:

Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-Type","text/html; charset=utf-8");
Попытка
	Ответ.УстановитьТелоИзСтроки("Связь есть, продолжаем");
Исключение
	Ответ.КодСостояния = 400;
	Ответ.УстановитьТелоИзСтроки(ОписаниеОшибки());
КонецПопытки;
Возврат Ответ;

Обновим конфигурацию базы данных. Теперь необходимо опубликовать наш сервис. Переходим на закладку Администрирование - Публикация на веб сервере... Заполняем необходимые данные

Сразу же включим отладку веб сервера. Перейдем на закладку Прочее

Жмем Опубликовать, и перезагружаем службу apach(в моем случае службу приходилось перезагружать каждый раз, когда вносили изменения в конфигурацию). 1с предложит самой перезапустить службу, но не верьте ей, сделайте это сами. Переходим по нашему VPS IP Если все сделано правильно, то должны увидеть наше сообщение:

Теперь напишем команду приветствия нового пользователя. Переходим в обработчик POST запроса. Сразу скажу что при принятии сообщения, нужно различать текстовую команду, от клавиатурной команды сообщения (inline клавиатура). Я делаю это проверкой свойства структуры callback_query. Функцией РазобратьПакет json разберем пакет на структуры.

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

Функция ОбработатьВходящиеСообщенияPOST(Запрос)
	
	ПакетСообщения = Разобратьпакет(Запрос.ПолучитьТелоКакСтроку());
	ПакетСообщения = ?(ПакетСообщения.Свойство("callback_query"), ПакетСообщения.callback_query, ПакетСообщения); // Если ответ с inline клавиатуры, тогда берет подпакет
	Подписчик = ПакетСообщения.message.chat.id;
	Если ПакетСообщения.message.Свойство("text") Тогда 															  // Если нет текста то ничего не делаем
		Если ПакетСообщения.Свойство("data") Тогда 																  // Если есть свойство data значит ответ пришел с inline клавиатуры
			//ОбработатьКомандуinline(ПакетСообщения, Подписчик);
		Иначе
			Если ПакетСообщения.message.text = "/start" Тогда														  // Определяем какую команду отправил пользователь. первая команда всегда /start, так как пользователь только подписался
				ТекстСообщения = "Добро пожаловать в чат =/";
				Успешно = Неопределено;
				Кнопки = СформироватьМассивКомандКлавиатуры();														  // Сформируем команды начальной клавиатуры 
				ОтправитьСообщениеПользователю(Подписчик,,,ТекстСообщения,Успешно,,Кнопки);
			ИначеЕсли ПакетСообщения.message.text = "ЕстьCHO??" Тогда
				//ПоказатьПодписчикуinlineКлавиатуру(Подписчик);
			Иначе
				//ОтветКомандаНеНайдена(Подписчик, Строка(ПакетСообщения.message.text));
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
	
	Ответ = Новый HTTPСервисОтвет(200);
	Возврат Ответ;
	
КонецФункции

Функция Разобратьпакет(СтрокаJSON) 
	
	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(СтрокаJSON);
	Данные = ПрочитатьJSON(Чтение, Ложь);
	Чтение.Закрыть();	
	
	Возврат Данные;
	
КонецФункции

Функция СформироватьМассивКомандКлавиатуры()
	
	МассивКнопок = Новый Массив;
	МассивКнопок.Добавить("ЕстьCHO??");
	Строки = Новый Массив;
	Строки.Добавить(МассивКнопок);
	КнопкиJs = ЗаписатьJS(Новый Структура("keyboard", Строки));
	
	Возврат КнопкиJs;
	
КонецФункции

Функция ЗаписатьJS(СтруктураJS)
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ЗаписьJSON,СтруктураJS);
	Возврат ЗаписьJSON.Закрыть();	

КонецФункции

Процедура ОтправитьСообщениеПользователю(id_Чата, Токен = Неопределено, Сервер = Неопределено, Сообщение, Успешно = Неопределено, ПутьФайла = Неопределено, Кнопки = Неопределено) Экспорт
	
	Если Токен = Неопределено Тогда
		ПолучитьБотаПоУмолчанию(Токен, Сервер);
	КонецЕсли;
	
	Если ЗначениеЗаполнено(ПутьФайла) Тогда
		//ОтправитьФайл(id_Чата, Токен, Сервер, ПутьФайла);
	Иначе
		
		ИнтернетПрокси = Новый ИнтернетПрокси(Ложь);
		ИнтернетПрокси.Установить("https","195.171.27.244",3128, "", "", Ложь);
		
		Ресурс = "bot" + Токен + "/sendMessage?chat_id=" + СтрЗаменить(Формат(id_Чата, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text=" + Сообщение+ ?(Кнопки<>Неопределено, "&reply_markup="+Кнопки ,"");
		ЗС = Новый ЗащищенноеСоединениеOpenSSL();
		
		Соединение  =  Новый HTTPСоединение(Сервер,443,,,ИнтернетПрокси,,ЗС);
		Запрос = Новый HTTPЗапрос(Ресурс);
		
		Попытка
			Ответ = Соединение.Получить(Запрос);
		Исключение
			Успешно = ОписаниеОшибки();
			Возврат;
		КонецПопытки;
		
		Успешно = Ответ.КодСостояния = 200;
	КонецЕсли;
	
КонецПроцедуры

Процедура ПолучитьБотаПоУмолчанию(Токен, Сервер)
	
	Запрос = Новый Запрос("ВЫБРАТЬ
	                      |	Боты.Токен КАК Токен,
	                      |	Боты.Сервер КАК Сервер
	                      |ИЗ
	                      |	Справочник.Боты КАК Боты
	                      |ГДЕ
	                      |	Боты.Основной");
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Выборка.Следующий();
	
	Токен 	= Выборка.Токен;
	Сервер 	= Выборка.Сервер;
	
КонецПроцедуры

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

Обновляем конфигурацию, перезапускаем службу apach.

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

Бот у нас будет не особо доброжелательным. Ну еще бы...

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

Процедура ПоказатьПодписчикуinlineКлавиатуру(Подписчик)
    
    ТекстСообщения = "А чо нада???";
    Успешно = Неопределено;
    Кнопки = СформироватьМассивКомандКлавиатуры_inline();
    ОтправитьСообщениеПользователю(Подписчик,,,ТекстСообщения,Успешно,,Кнопки);
        
КонецПроцедуры

Функция СформироватьМассивКомандКлавиатуры_inline()
    
    МассивКнопок = Новый Массив;
    МассивКнопок.Добавить("Картинка");
    МассивКнопок.Добавить("Аудио");
    МассивКнопок.Добавить("Документ");
    Кнопки = Новый Массив;
    Для каждого Кнопка ИЗ МассивКнопок Цикл
        Кнопки.Добавить(Новый Структура("text, callback_data", кнопка, СтрЗаменить(Кнопка, " ", "")));
    КонецЦикла;
    Строки = Новый Массив;
    Строки.Добавить(Кнопки);
    КнопкиJs = ЗаписатьJS(Новый Структура("inline_keyboard", Строки));
    Возврат КнопкиJs;


КонецФункции

Сформируется три кнопки:

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

Процедура ОбработатьКомандуinline(ПакетСообщения, Подписчик)
	
	Отказ = ложь;
	
	Если ПакетСообщения.data = "Картинка" Тогда
		ПутьКФайлу = "C:\fil_bot\картинка.jpg";		
		ТекстСообщения = "Ваша картинка, сЭр";
	ИначеЕсли ПакетСообщения.data = "Аудио" Тогда
		ПутьКФайлу = "C:\fil_bot\audio.mp3";
		ТекстСообщения = "Ваше аудио, сЭр";
	ИначеЕсли ПакетСообщения.data = "Документ" Тогда
		ПутьКФайлу = "C:\fil_bot\document.xlsx";
		ТекстСообщения = "Ваш документ, сЭр";
	Иначе
		Отказ = истина;
	КонецЕсли;
	
	Если Не Отказ Тогда
		ОтправитьСообщениеПользователю(Подписчик,,,ТекстСообщения,, ПутьКФайлу, Кнопки);
	КонецЕсли;
	
КонецПроцедуры

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

Процедура ОтправитьФайл(id_Чата, Токен, Сервер, ПутьКФайлу)
    
	Файл = Новый Файл(ПутьКФайлу);
	ИмяОтправляемогоФайла = Файл.Имя;	
    
    СтрокаСоединения = "/bot" + Токен + "/sendDocument";
    
    Boundary = "----"+Строка(Новый УникальныйИдентификатор());
    
    //Определяем массив для процедуры ОбъединитьФайлы
    МассивФайловДляОбъединения = Новый Массив;
    
    //Формируем начальный фрагмент файла POST-запроса
    ИмяФайлаОтправкиНачало = ПолучитьИмяВременногоФайла("txt");
    ФайлОтправкиНачало = Новый ЗаписьТекста(ИмяФайлаОтправкиНачало, КодировкаТекста.UTF8);
    
    //Формируем конечный фрагмент файла POST-запроса
    ИмяФайлаОтправкиКонец = ПолучитьИмяВременногоФайла("txt");
    ФайлаОтправкиКонец = Новый ЗаписьТекста(ИмяФайлаОтправкиКонец, КодировкаТекста.UTF8);
    
    ТекстДляОтправки = "";
    
    ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""chat_id""" + Символы.ПС + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + id_Чата + Символы.ПС;
    
    ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""document""; filename="""+ИмяОтправляемогоФайла+"""" + Символы.ПС;
    
    ФайлОтправкиНачало.ЗаписатьСтроку(ТекстДляОтправки );
    ФайлОтправкиНачало.Закрыть();
    
    МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиНачало);
    
    МассивФайловДляОбъединения.Добавить(СокрЛП(ПутьКФайлу));
    
    ТекстДляОтправки = "" + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary+"--";
    ФайлаОтправкиКонец.ЗаписатьСтроку(ТекстДляОтправки);
    ФайлаОтправкиКонец.Закрыть();
    МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиКонец);
    
    ИмяФайлаОтправки = ПолучитьИмяВременногоФайла("txt");
    ОбъединитьФайлы(МассивФайловДляОбъединения, ИмяФайлаОтправки);
    
    HTTPЗапрос = Новый HTTPЗапрос;
    Заголовки = Новый Соответствие;
    
    HTTPЗапрос.Заголовки.Вставить("Connection", "keep-alive");
    HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary="+Boundary);
    
    HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаОтправки);
    HTTPЗапрос.АдресРесурса = СтрокаСоединения;
    
    ЗС = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
	ИнтернетПрокси = Новый ИнтернетПрокси(Ложь);
	ИнтернетПрокси.Установить("https","195.171.27.244",3128, "", "", Ложь);
    HTTPСоединение = Новый HTTPСоединение(Сервер,,,,ИнтернетПрокси,, ЗС);
    
    Попытка
        ОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
    Исключение
		
	КонецПопытки;
	
КонецПроцедуры

И получаем то, что выбрали

Так же сделал обработку, для отправки сообщений в чат пользователя от имени бота

Как то так...

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

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

Конфигурацию прикреплю во вложение. 

Разрабатывалось на платформе 8.3.15.1656, но на более низких версиях 8.3 должно работать без проблем. 

 

 

 

 

 

 

 

 

 

 

 

 

 

Используемые источники:

Установка сервера Аpache 2.4

Телеграм + 1С + Вебхуки + Апач + Самоподписанный сертификат

1С:Пирог

https://nizamov.school/

HTTP Сервисы: Путь к своему сервису. Часть 1

 

64

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

Наименование Файл Версия Размер
Вебхук. Путь Телеграма. :
.cf 16,35Kb
02.10.19
5
.cf 16,35Kb 5 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. ex3mall 2 03.10.19 22:42 Сейчас в теме
Нужный материал.

Когда-то, надеюсь, здравый смысл восторжествует, РКН перестанет изображать муху, бьющуюся в стекло, и Телеграмм начнет работать стабильно у всех на мобилах.

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

Но, к сожалению, из-за опасения "А вдруг все-таки заблокируют наглухо" люди предпочитают тратить деньги на создание собственных мобильных приложений.
8. for_sale 803 04.10.19 14:22 Сейчас в теме
(1)
У меня вообще без проблем работает, даже без ВПН.
Ну а уж жить в этой стране без ВПН - это как-то...
2. acanta 74 03.10.19 22:51 Сейчас в теме
Вау. Раньше использовали Миранду как локальный сервер с приложением от глобального чата плюс выгонялка из 1с. Видимо проблема у них с собственным сервером.. Теперь телеграмм тоже можно и даже больше. Это очень круто.
3. kuzyara 815 04.10.19 05:21 Сейчас в теме
4. platonov.e 68 04.10.19 07:22 Сейчас в теме
(3) Думал туда еще знак РКН пририсовать, но посмотрел на это, и удалил его)
5. serg-lom89 43 04.10.19 10:49 Сейчас в теме
отлично
Согласен счас Телега самый доступный и простой во внедрении для 1С.
Публичный Api что открыт это прекрасно
Сам много познал из https://nizamov.school/ и после него тоже занесло в дебри интеграции с веб !
Вебхук еще не использовал ,но надеюсь в ближайшее время дойдут руки.!
6. platonov.e 68 04.10.19 10:53 Сейчас в теме
(5)Успехов вам) Если что обращайтесь, постараюсь помочь) Но там вроде все просто)
7. Region102 04.10.19 11:49 Сейчас в теме
Очень рад что мои уроки пригодились. Скоро запишу полноценный курс по telegram.
platonov.e; +1 Ответить
9. dap 12 09.10.19 17:18 Сейчас в теме
У меня файловая база опубликована на IIS10
успешно приходят сообщения в 1С на HTTP сервис от Бота только в том случае, если в базе НЕТ пользователей (без авторизации)
Если завожу в базу пользователей, то соответственно getWebhookInfo - дает ошибку 401 авторизации
и сообщения от бота не приходят.

1. публиковал базу без галочки "Использовать аутентификацию ОС"
2. в IIS везде от сервера до базы анонимная авторизация ВКЛЮЧЕНА, остальные - отключены.

Поэтому вопрос. Раскройте пожалуйста тему авторизации. Как должна быть настроена авторизация, чтобы связка
HTTP сервис 1С и БОТ Телеги работала нормально. Для случая, когда в базе зарегистрированы пользователи.
10. platonov.e 68 09.10.19 20:26 Сейчас в теме
(9) Я такое на apach обходил следующим образом: В 1с заводил пользователя с необходимыми правами. В файле default.vrd прописывал логин и пароль этого пользователя, и при обращении к сервису, он автоматически авторизовывался под ним. Прописывал в атрибуте id, тег point. получалась строка такого вида:
ib="File="Каталогбазы";Usr="Пользователь";Pwd="Пароль;";"


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

См. также

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

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

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

1 стартмани

10.09.2019    4355    17    sivin-alexey    8       

Описание формата внутреннего представления данных 1С в контексте обмена данными 150

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных Разработка

Фирма 1С не рекомендует использовать внутреннее представление данных для любых целей, которые отличны от обмена с 1С:Предприятием 7.7. Но сама возможность заглянуть на "внутреннюю кухню" платформы с помощью функций ЗначениеВСтрокуВнутр(), ЗначениеВФайл(), ЗначениеИзСтрокиВнутр() и ЗначениеИзФайла(), дала возможность сообществу программистов 1С разработать новые приемы разработки и анализа. Так, именно на использовании внутреннего представления был построен алгоритм "быстрого массива", который позволяет практически мгновенно создать массив в памяти на основании строки с разделителями. С помощью разбора внутреннего представления можно "на лету" программным кодом выполнить анализ обычной формы и даже сделать редактор графической схемы. Во внутреннем формате сохраняют свои данные между сеансами различные популярные внешние обработки. А еще это возможность сделать быстрый обмен с внешними системами.

1 стартмани

06.09.2019    5733    5    Dementor    27       

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

Инструменты и обработки Программист Расширение (cfe) v8 1cv8.cf Windows Абонемент ($m) Внешние источники данных

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

1 стартмани

06.09.2019    3001    10    duhh    17       

Обмен большими данными между клиентом и сервером 68

Статья Программист Внешняя обработка (ert,epf) v8 Абонемент ($m) Внешние источники данных

В статье рассматривается вопрос передачи больших объемов данных, превышающих теоретический лимит сеансовых данных (4Гб за вызов) (они же временное хранилище) как с клиента на сервер, так и в обратном направлении.

1 стартмани

27.08.2019    4479    1    logos    17       

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

Инструменты и обработки Программист Пользователь Архив с данными v8 Windows Абонемент ($m) Внешние источники данных

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

10 стартмани

20.08.2019    4980    17    zfilin    58       

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

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

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

1 стартмани

06.08.2019    2084    3    itworks    8       

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

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

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

4 стартмани

08.07.2019    3713    15    miha-28    14       

Интеграция 1С с Битрикс CRM через REST API 16

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

На фоне неутихающего обострения «бизнеса» по внедрению СРМ-систем остро встают вопросы обмена данными с уже существующими системами. В статье рассматривается выгрузка контактов, товаров и сделок из 1С в Битрикс CRM через REST API, приложена обработка для тестирования.

1 стартмани

28.06.2019    6781    9    muzipov    7       

Совместное использование 1С:Сервер взаимодействия и Документооборот 8 КОРП, редакция 2.1.13 - Уведомления для рабочего стола 21

Статья no Архив с данными v8 ДО УУ Документооборот и делопроизводство Абонемент ($m) Пользователю системы Работа с интерфейсом Интеграция

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

1 стартмани

18.06.2019    6128    ilya.rudziak    6       

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

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

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

1 стартмани

16.05.2019    4188    31    Isa816    17       

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

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

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

2 стартмани

04.05.2019    7289    53    MarkoSokolov    47       

1C + Python + Django Rest Framework + Vue.js. Опыт несложной full-stack разработки 121

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

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

1 стартмани

22.04.2019    17568    18    riposte    63       

WhatsApp чат для 1С 13

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

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

5 стартмани

15.04.2019    3443    16    ManyakRus    13       

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

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

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

2 стартмани

07.04.2019    3606    8    sapervodichka    6       

Аутентификация на внешних сервисах посредством OAuth 80

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Windows Абонемент ($m) Информационная безопасность Внешние источники данных

Пример подключения к сервисам Google из 1С с помощью протокола OAuth и получения данных с внешнего сервиса.

1 стартмани

03.04.2019    7429    4    binx    5       

Декларации по формам 11 и 12 алкогольной продукции, интеграция с ПО Декларант-Алко 16

Отчеты и формы Бухгалтер Архив с данными v8 Розничная и сетевая торговля (FMCG) Россия БУ Розничная торговля Абонемент ($m) Регламентированная отчетность Внешние источники данных

Конфигурация на обычных формах, платформа 1С 8.2.19.130 и выше, с помощью которой можно сформировать Декларации по формам 11 и 12 алкогольной продукции, гибрид/интеграция с ПО Декларант-Алко версии 4.31.05 и выше.

1 стартмани

25.03.2019    2872    8    independ    6       

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

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Абонемент ($m) Внешние источники данных

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

1 стартмани

26.02.2019    5403    43    Смешной 1С    6       

Телеграм + 1С + Вебхуки + Апач + Самоподписанный сертификат 48

Статья Программист Архив с данными v8 Windows Абонемент ($m) Внешние источники данных

Много строк исписано про интеграцию Телеграма и 1С. Но нигде не увидел полной инструкции по установке и настройке вебхуков. Попробую её написать.

1 стартмани

26.02.2019    7455    6    alexlx    29       

Универсальное расширение 1С для Google Таблиц и Документов 96

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

Эта статья для тех, кто использует G Suite и 1С. Готовое решение для выгрузки отчетов и печатных форм из баз 1С в Google Диск в формате Google Таблиц и Google Документов. Информация по его внедрению. Описание создания и настройки проекта в GCP.

1 стартмани

31.01.2019    7706    20    Maria18    12       

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 548

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

1 стартмани

31.01.2019    28896    267    bonv    111       

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

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

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

2 стартмани

14.01.2019    4735    12    John_d    4       

Применение средств MS SQL R service для 1С 55

Статья Программист Нет файла v8 1cv8.cf MS SQL Абонемент ($m) Внешние источники данных

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

1 стартмани

25.11.2018    10166    Robbi    14       

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

Инструменты и обработки no Конфигурация (md, cf) v8 Абонемент ($m) Внешние источники данных

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

3 стартмани

22.11.2018    16837    49    17808849    49       

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

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

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

1 стартмани

19.10.2018    8865    22    capitan    12       

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

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

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

2 стартмани

08.10.2018    8359    23    echo77    32       

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

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Внешние источники данных Zabbix

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

1 стартмани

05.10.2018    22253    37    akimych    48       

1С и Telegram. Об опыте использования прокси-серверов 37

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

Рассказ о том, как немного улучшить отправку сообщений из 1С в Телеграм в условиях использования прокси-серверов

02.08.2018    10305    altmf    24       

Связка 1С и Telegram. Отправка стикеров 33

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

В качестве факультатива сейчас изучаю возможности связки 1С и мессенджера Telegram. И возник вопрос, как помимо сообщений, посылать в ответ на действия пользователя произвольный стикер? Решению этой мини задачи и посвящена данная статья.

1 стартмани

31.07.2018    7891    4    Skin123    4       

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

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Внешние источники данных

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

1 стартмани

20.07.2018    10085    9    Deda    7       

Опыт интеграции мессенджера Telegram c 1C 99

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

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

19.07.2018    13046    429    VachKirp    31       

HTTP Сервисы: Путь к своему сервису. Часть 1 274

Статья Системный администратор Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) Практика программирования WEB

Уже много было написано про http-сервисы, но то и дело всплывают «Новые» статьи по обмену между базами V8 по COM, что «Немножко» удивляет. Решил внести свои 5 копеек, поработаем с http-сервисом.

1 стартмани

15.07.2018    39603    16    dsdred    22       

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

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

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

1 стартмани

10.06.2018    18078    76    Goleff74    38       

Опять про sFTP и вообще 35

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Внешние источники данных

Памятка для разработчика по работе с FTP, FTPs и sFTP.

1 стартмани

23.05.2018    11505    24    leongl    11       

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

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

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

1 стартмани

14.05.2018    7407    13    vsbronnikov    20       

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

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Внешние источники данных WEB

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

1 стартмани

24.04.2018    18618    119    Ko1t    63       

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

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Внешние источники данных WEB

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

1 стартмани

09.04.2018    23047    171    Ko1t    58       

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

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

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

1 стартмани

09.04.2018    9154    26    Lapitskiy    7       

Практикум по созданию обменов данными через протокол oData «за полдня» 98

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

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

1 стартмани

20.03.2018    19098    11    timm00    64       

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

Инструменты и обработки Программист Бухгалтер Внешняя обработка (ert,epf) v8 ERP2 ЗУП3.x Абонемент ($m) Внешние источники данных

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

1 стартмани

01.03.2018    9909    54    khabibullin.tu    14       

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

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

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

2 стартмани

19.02.2018    10890    25    John_d    4       

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

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Внешние источники данных

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

1 стартмани

19.02.2018    10750    73    bulpi    11       

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

Инструменты и обработки Бухгалтер Пользователь Расширение (cfe) v8 БП3.0 УТ11 1С:CRM Абонемент ($m) Обработка справочников Внешние источники данных WEB

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

1 стартмани

07.01.2018    12076    104    ipetrochenko    57       

Практика доступа в базу 1С через протокол oData. Изменение данных 116

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

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

1 стартмани

30.12.2017    24100    95    Dementor    26       

Загрузка ОФД (ofd.ru, ofd-ya.ru, taxcom.ru, platformaofd.ru, ofd.kontur.ru, online.sbis.ru, life-pay.ru, modulpos.ru, 1-ofd.ru, Экспресс касса, subtotal.ru, sberbank.ru/ofd, chekonline.ru, initpro.ru) 13

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::БУ БП3.0 Россия БУ Кассовые операции Абонемент ($m) Внешние источники данных

Обработка по загрузке файлов из основных ОФД. Возвраты вычитаются из внесенных денег. Тестирование проводилось на Бухгалтерия предприятия, редакция 3.0 (3.0.54.15)

1 стартмани

28.12.2017    12457    64    ikbokov    6       

Инструкция по настройке загрузки из ФСС электронных листков нетрудоспособности ЭЛН в документ 1С Начисление по больничному листу 59

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

Клиент (страхователь) работает в программе "1С Зарплата и управление персоналом ред.2.5" сдает отчетность через Контур или СБИС и не собирается подключать 1С-Отчетность, при этом хочет загружать электронные больничные в программу 1С Зарплата. Подобная ситуация может быть и для других конфигураций в которых есть документ "Начисление по больничному листу", например Комплексная автоматизация 1.1, Управление производственным предприятием 1.3.

1 стартмани

28.11.2017    109959    181    rusmil    118       

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

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

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

3 стартмани

08.11.2017    22116    185    AlexeyT1978    150       

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

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

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

3 стартмани

06.11.2017    18619    158    ltfriend    18