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

Публикация № 574117 09.01.17

Интеграция - Внешние источники данных

Битрикс 24 REST API

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

Первым делом регистрирую свое приложение в Битрикс24. Это нужно для получения client_id и client_secret.  Эти коды используются при авторизации.

Необходимо дать приложению требуемые права и поставить отметку "Приложение использует только API"

Ссылка на приложение может быть любая, в дальнейшем это не нужно.

Теперь подключаемся к Битрикс24

Процедура ПодключитьсяКБитрикс()

	Если НЕ (AccessToken = "" ИЛИ RefreshToken = "" ИЛИ RefreshTime = Дата(1, 1, 1)) Тогда
		
		Возврат;
		
	КонецЕсли;

 	
	ssl = Новый ЗащищенноеСоединениеOpenSSL(
                Новый СертификатКлиентаWindows(
                                СпособВыбораСертификатаWindows.Выбирать),
                Новый СертификатыУдостоверяющихЦентровWindows());   
                         
	Соединение = Новый HTTPСоединение(
                            АдресБитрикс24, //"хххххх.bitrix24.ru",
							, // порт
							"user@mail.ru", // пользователь
							"123456", // пароль
							, // прокси
                            5, // таймаут в секундах
                            ssl // защищенное HTTPS соединение
                        );
						
						
	Заголовки = Новый Соответствие;
	
	Запрос = Новый HTTPЗапрос("oauth/authorize/?client_id=" + <strong>client_id</strong>, Заголовки);					
	Ответ = Соединение.Получить(Запрос);
	
	
	// если нас переадрессовали
	Если Ответ.КодСостояния = 302 Тогда
		
		//в Location взять code
		
		Параметры = ПолучитьПараметрыИзGetСтроки(Ответ.Заголовки.Получить("Location"));
		Cookie = Ответ.Заголовки.Получить("Set-Cookie");
		Код = Неопределено;
		
		
		Если Параметры.Свойство("code", Код) Тогда
			
			// используя Код получаем access_token и refresh_token
			
			Соединение = Новый HTTPСоединение(
                            "oauth.bitrix.info",
							, // порт
							, // пользователь
							, // пароль
							, // прокси
                            5, // таймаут в секундах
                            ssl // защищенное HTTPS соединение
                        );
						
			Запрос.АдресРесурса	= "oauth/token" + ПараметрыАвторизацииВСтроке(Код);	
			Запрос.Заголовки.Вставить("Cookie", Cookie);
			
			
			Ответ = Соединение.Получить(Запрос);
			
			
			Если Ответ.КодСостояния <> 200 Тогда
				
				ВызватьИсключение "Ошибка при получении access_token"; 
				
			Иначе
				
				// разобрать полученный json
				json = Ответ.ПолучитьТелоКакСтроку();
				
				
				Чтение = Новый ЧтениеJSON;
				Чтение.УстановитьСтроку(json);
				ОтветСтруктура = ПрочитатьJSON(Чтение);
				
				// сохраняю параметры подключения
				AccessToken  = ОтветСтруктура.access_token;
				RefreshToken = ОтветСтруктура.refresh_token;
				RefreshTime  = ТекущаяДата() + ОтветСтруктура.expires_in;
				
			
			КонецЕсли;
			
			
			
		Иначе
			
			ВызватьИсключение "Ошибка при подключении, нет параметра code";
			
		КонецЕсли;
		
		
	КонецЕсли;

КонецПроцедуры

Функция ПараметрыАвторизацииВСтроке(Код)
	
	// собрать параметры в строку Get запроса
	Возврат "/?" + "grant_type=authorization_code" + "&" + 
		"client_id=" + client_id + "&" + 
		"client_secret=" + client_secret + "&" + 
		"code=" + Код;
		
КонецФункции

client_id и client_secret получили при регистрации приложения в Битрикс24.

Функция "ПолучитьПараметрыИзGetСтроки" из строки вида адрес?параметр1=значение1&параметр2=значение2 возвращает структуру, где ключ = параметр, а значение = значение

Теперь пробуем добавить контакт

СтрПараметров =  "fields[NAME]=" + Имя + "&fields[SECOND_NAME]=" + Отчество + "&fields[LAST_NAME]=" + Фамилия +
		"&fields[ADDRESS_CITY]=" + СтруктураПараметров.Город + 
		"&fields[COMMENTS]=" + СтруктураПараметров.Вашвиддеятельности + 
		"&fields[EMAIL][0][VALUE_TYPE]=WORK&fields[EMAIL][0][VALUE]=" + СтруктураПараметров.Email +
		"&fields[ASSIGNED_BY_ID]=" +  ОтветственныйИД + "&fields[TYPE_ID]=CLIENT" +
		"&fields[PHONE][0][VALUE_TYPE]=WORK&fields[PHONE][0][VALUE]=" + СтруктураПараметров.Телефон;
		
	
	Рез = ОтправитьRESTЗапрос("crm.contact.add", СтрПараметров, "");
	
	// смотрим что получилось

	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(Рез);
	
	РезСтр = ПрочитатьJSON(Чтение);

	Если РезСтр.Свойство("result", ИдНовогоКонтакта)  Тогда
		
		Сообщить("Контакт добавлен!");
		
	Иначе
		
		ВызватьИсключение "Ошибка при добавлении нового контакта!";
		
	КонецЕсли;

Что делает ОтправитьRESTЗапрос:

Функция ОтправитьRESTЗапрос(RESTЗапрос, Параметры, Тело)
 	
	ПроверитьТокен();
	
	
	ssl = Новый ЗащищенноеСоединениеOpenSSL(
                Новый СертификатКлиентаWindows(
                                СпособВыбораСертификатаWindows.Выбирать),
                Новый СертификатыУдостоверяющихЦентровWindows());   
                         
	Соединение = Новый HTTPСоединение(
                            АдресБитрикс24,
							, // порт
							, // пользователь
							, // пароль
							, // прокси
                            5, // таймаут в секундах
                            ssl // защищенное HTTPS соединение
                        );
						
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Cookie", Cookie);
	
	
	
	Если Параметры = "" Тогда
		Запрос = Новый HTTPЗапрос("rest/" + RESTЗапрос + "?auth=" + AccessToken, Заголовки);											
	Иначе
		Запрос = Новый HTTPЗапрос("rest/" + RESTЗапрос + "?auth=" + AccessToken + "&" + Параметры, Заголовки);											
	КонецЕсли;
	
	Запрос.УстановитьТелоИзСтроки(тело);
	
			
			
	Ответ = Соединение.Получить(Запрос);	

	Возврат Ответ.ПолучитьТелоКакСтроку();

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

Ну и соответственно  процедура ПроверитьТокен:

Процедура ПроверитьТокен()
 	
	// проверяю токен на валидность
	
	Если RefreshTime = Дата(1, 1, 1) Тогда
		
		ПодключитьсяКБитрикс();
		Возврат;
		
	КонецЕсли;
	
	Если  RefreshTime - 5 < ТекущаяДата() Тогда
		
			ssl = Новый ЗащищенноеСоединениеOpenSSL(
                Новый СертификатКлиентаWindows(
                                СпособВыбораСертификатаWindows.Выбирать),
                Новый СертификатыУдостоверяющихЦентровWindows());   		
		// обновить токен
			Соединение = Новый HTTPСоединение(
                            "oauth.bitrix.info",
							, // порт
							, // пользователь
							, // пароль
							, // прокси
                            5, // таймаут в секундах
                            ssl // защищенное HTTPS соединение
                        );
						
						
			Заголовки = Новый Соответствие;			
			Заголовки.Вставить("Cookie", Cookie);						
			
			Запрос = Новый HTTPЗапрос("oauth/token" + ПараметрыОбновленияВСтроке(), Заголовки);
			
			
			
			
			Ответ = Соединение.Получить(Запрос);
			
			
			Если Ответ.КодСостояния <> 200 Тогда
				
				ВызватьИсключение "Ошибка при получении access_token"; 
				
			Иначе
				
				// разобрать полученный json
				json = Ответ.ПолучитьТелоКакСтроку();
				
				Чтение = Новый ЧтениеJSON;
				Чтение.УстановитьСтроку(json);
				ОтветСтруктура = ПрочитатьJSON(Чтение);
				
				
				// сохраняю параметры подключения
				AccessToken  = ОтветСтруктура.access_token;
				RefreshToken = ОтветСтруктура.refresh_token;
				RefreshTime  = ТекущаяДата() + ОтветСтруктура.expires_in;
			
			КонецЕсли;
		
		
	КонецЕсли;

КонецПроцедуры


Функция ПараметрыОбновленияВСтроке()
	
	Возврат "/?" + "grant_type=refresh_token" + "&" + 
		"client_id=" + client_id + "&" + 
		"client_secret=" + client_secret + "&" + 
		"refresh_token=" + RefreshToken;
	
КонецФункции

Что пока не удалось сделать. Пока не удалось передавать пользовательские поля. И при создании контакта ответственным ставится пользователь, под которым залогинились. А не тот, которого указываю в fields[ASSIGNED_BY_ID].

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. script 126 09.01.17 20:07 Сейчас в теме
У меня к Вам огромная просьба. Покажите пожалуйста в какую сторону копать если нужно передавать из 1С реализации а в битрикс 24 загружать "Сделки"
2. user662672_explorer2000 222 10.01.17 08:38 Сейчас в теме
Добрый день! Смотрите офф документацию, в частности по сделкам http://dev.1c-bitrix.ru/rest_help/crm/cdeals/index.php. Для создания сделки используйте метод crm.deal.add. Перечень передаваемых полей доступен там же. Такой сущности, как реализация нет в Битрикс24, возможно это счета? по ним вся информация здесь http://dev.1c-bitrix.ru/rest_help/crm/invoice/index.php. Там примеры к сожалению только на js, так что пробуйте и смотрите что возвращается в качестве ответа. Если ошибка, то будет описание ошибки.
3. bulpi 209 10.01.17 14:03 Сейчас в теме
Люди, а вы не в курсе, что существует вот это :
http://1c.1c-bitrix.ru/intranet/download.php
Там готовые модули, в частности для УТ 11.1 есть.
Выгружаются организации, контрагенты, контактные лица партнеров, реализации....
Но плюс поставлю, т.к. метод реализован другой.
5. script 126 10.01.17 18:52 Сейчас в теме
(3) И не только смотрели, но и внедрили. Только когда внедрили, то оказалось что это полная ерунда.
Выгружает
Из 1С контрагенты в Б24 в клиенты
Из 1С конт. лица в Б24 в контакты
Из 1С все (любые) документы в Б24 в Дела
И все.

А внутри просто шлак. Запросы к базе через две точки.
Обращение к несуществующим полям в справочниках из-за которых все это сразу вываливается в ошибки.
Пишешь на поддержку - тебе дают 1С-ника, который лезет в запросы. Начинает там начинает ограничивать поля неограниченной длины - при тебе.
А сам модуль добавляет столько мусора, столько лишних объектов, что только из-за этого уже начинаешь жалеть что связался с ним.
Pawlick; Somebody1; ambosimba; LomayaZakat; memb3r; svilsa; seperblunt2; user731236; VachKirp; Aquashop; Starec_I; +11 Ответить
12. Alister 9 24.04.17 20:01 Сейчас в теме
(5) еще замечательная поддержка, которая долго ищет какой релиз какой редакции УТ 11 минимально нужен для работы с Б24, а потом не могут объяснить какой же модуль используется для интеграции с УТ - трекер или модуль обмена с сайтом и чем они отличаются.
user731236; IgorS; +2 Ответить
38. amd1986 07.11.17 13:08 Сейчас в теме
(5) только по ходу не поняли, что это и как это работает. Иначе бы не городили бы новое приложение, а использовали уже готовый для 1С трекера. Не говоря о том, что трекер смотрели старой версии.
Запросы к базе через две точки.
Всякое может быть, не спорю. Если бы делали наиболее оптимальные запросы , то такие как вы еще сильнее взвыли бы.
Обращение к несуществующим полям в справочниках из-за которых все это сразу вываливается в ошибки.
Может не читали для какого релиза этот модуль? Ну как всегда, виноваты все, кроме вас..
Начинает там начинает ограничивать поля неограниченной длины - при тебе
И что хотели сказать?
А сам модуль добавляет столько мусора, столько лишних объектов, что только из-за этого уже начинаешь жалеть что связался с ним.
Может потому что это универсальный модуль,а не только под вас?

Да, судя по реализации - опрятно написано, но малофункционально.
39. user662672_explorer2000 222 07.11.17 13:42 Сейчас в теме
(38) Уважаемый, это по сути инструмент, а не законченный функционал. Синхронизация контактов одно из применений. Подставьте методы работы с лидами, сделками и т.д., оберните логикой и получите нужный функционал. Это не универсальное решение и для применения требует программирования.
40. amd1986 08.11.17 15:33 Сейчас в теме
(39) да это все понятно. Пост был адресован не вам.
ybatiaev; +1 Ответить
4. user662672_explorer2000 222 10.01.17 14:39 Сейчас в теме
Тут неверно я указал привязку к УТ. Данный код можно использовать в любой конфигурации, даже под которую нет готовых модулей. Да и функционал можно реализовать какой угодно, т.к. доступен любой метод REST API
6. script 126 11.01.17 03:28 Сейчас в теме
И еще один вопрос.
Это доступ через REST API работает и на облачной версии или только в коробке?
8. kuntashov 422 12.01.17 17:25 Сейчас в теме
(6) Все нововведения у Б24 сначала в облаке. В коробке REST API добавили совсем-совсем недавно.
7. user662672_explorer2000 222 11.01.17 06:32 Сейчас в теме
На облачной работает точно, проверялось на ней. С коробочной не проверял, ее просто нет.
9. alprk 13.01.17 10:15 Сейчас в теме
Спасибо что поделились, как раз собирались городить свои костыли к Б24))
10. alprk 13.01.17 10:36 Сейчас в теме
Удивило что вы сделали авторизацию по логину и паролю. Почему бы не получить токен единожды, регулярно его обновляя?
Хотя конечно определенные плюсы в этом есть, особенно если вызовы нерегулярные. Я например даже не думал что оно даст авторизоваться по Basic, даже через curl проверил сейчас что оно работает, но вдруг перестанет (в документации ведь об этом ни слова).
11. user662672_explorer2000 222 13.01.17 12:20 Сейчас в теме
(10) Я вроде бы так и хотел сделать) Первоначально по логину и пароль получаю AccessToken и RefreshToken. Далее если время жизни токена истекло, уже обновляю его.
13. user755384 20.05.17 00:17 Сейчас в теме
Большое спасибо за статью! Очень помогла. Если знаете, подскажите, пожалуйста, в каком виде параметры (СтрПараметров) передавать в функцию для добавления товарных позиций к сделке. (crm.deal.producrows.set). Передаю
СтрПараметров = "id="+ИДСделки+
"&rows[PRODUCT_ID]="+ИдТовара+
"&rows[PRICE]="+"100"+
"&rows[QUANTITY]=1";
Ошибки не выдает, но и товары не добавляет.
14. user662672_explorer2000 222 22.05.17 06:47 Сейчас в теме
Вам нужно переделать передачу параметров вот так:

СтрПараметров = "id="+ИДСделки+

"&rows[0][PRODUCT_ID]="+ИдТовара1+
"&rows[0][PRICE]="+"100"+
"&rows[0][QUANTITY]=1"+

"&rows[1][PRODUCT_ID]="+ИдТовара2+
"&rows[1][PRICE]="+"500"+
"&rows[1][QUANTITY]=5";

Рез = ОтправитьRESTЗапрос("crm.deal.productrows.set", СтрПараметров, "");
15. dimasts 22 02.06.17 19:22 Сейчас в теме
Если авторизоваться по токену а не по логину и паролю, получится [ASSIGNED_BY_ID] правильно передавать??? Кто нибудь пробовал?

Просто это то, ради чего мы затеваем всю интеграцию :)
16. user662672_explorer2000 222 05.06.17 08:39 Сейчас в теме
Первоначальная регистрация по логину\паролю. Вы получаете токен время жизни которого ограничено. По истечении этого времени Вы обновляете токен без использования логина\пароля. Нужен старый токен, client_id и client_secret. Посмотрите процедуру ПроверитьТокен(). ASSIGNED_BY_ID присваивается автоматом. По идее его и в параметрах можно передавать, но у меня всегда ответственный тот, под кем я залогинился. Возможно нужны администраторские права. Точно не знаю.
mila_nikolaeva; dimasts; +2 Ответить
17. dimasts 22 30.06.17 07:42 Сейчас в теме
ASSIGNED_BY_ID сделал равным 2
Контакт создался с ответственным с чужого портала!
Чё так правда можно?!
NewLifeMan; +1 Ответить
18. dimasts 22 09.07.17 09:27 Сейчас в теме
В названии надо использовать слово «Забираем», а не «Передаём», так как передать из Битрикс24 что либо в 1с ни фига не просто. Создать http-сервис и зарегистрировать обработчик события в Битрикс24 дело не хитрое. А вот как заставить эти события срабатывать и переходить по запросам, которые к ним привязаны? Причём этот запрос в браузере работает как часы. а тут ещё Заговор
19. dimasts 22 09.07.17 15:11 Сейчас в теме
(18)Причина была в том что в 1с метод был установлен GET. Лучше сначала устанавливать Любой, чтобы проверить, а потом уже определяться с каким работать.
24. wiseowl 17.10.17 10:48 Сейчас в теме
(19) посмотрите, пожалуйста, мой вопрос ниже, может быть вы сможете мне помочь...
20. user662672_explorer2000 222 10.07.17 07:47 Сейчас в теме
(18) Контакты все же мы передаем (экспортируем или назовите как хотите, сути не меняет) из 1С в Битрикс24. О чем Вы пишите не тема статьи. Хотите забирать информацию из Битрикс24? Делайте аналогично, забирайте контакты с фильтром по незаполненности ORIGIN_ID например. При записи контакта в 1С пишите его GUID в ORIGIN_ID
21. bytecoded 26 25.08.17 16:08 Сейчас в теме
А с локализациями не пробовали работать? Пробую создавать валюты, одна не удается задать локализацию — если задавать через параметр LANG при вызове currrency.add, то ругается на пустое поле Format (которого в перечне полей локализации вообще нет). Если уже после создания валюты вызвать currency.localizations.set — ошибок нет, но и данные валюты, касающиеся локализаций, никак не изменяются.
22. Milanick 03.09.17 15:19 Сейчас в теме
23. wiseowl 17.10.17 10:42 Сейчас в теме
Делала по вашему примеру. Мне нужно почти тоже самое, только токен необходимо получить для power BI и данные отправлять туда.

Пишу get запрос (текст ниже), при использовании защищенного сертификата не происходит перенаправление по ссылке, которая указана в redirect_uri, если использовать http, то происходит постоянное перенаправление на тот же адрес, но уже с https соединением.
При проверке в браузере, перенаправление происходит и все нормально. Как можно решить эту проблему?

При перенаправлении на office.com я должна в строке получить параметр "code", который потом хочу использовать для получения токена приложения.
В Set-Cookie есть такое поле как "buid" это одно и тоже? Если да, то в принципе я могу использовать его в качестве кода авторизации, но проблему с перенаправлением все равно надо как то решить, так как при получении токена с запросом тоже самое, редирект не происходит...

Адрес="login.microsoftonline.com";
АдресРесурса="&response_mode=query&response_type=code&redire­­ct_uri=https%3A%2F%2Fwww.office.com%2F&nux=1&msafed=0";
client_id="3bf6d724-6dae-4177-a437-cd1e20619bd8";
//Если НЕ (AccessToken = "" ИЛИ RefreshToken = "" ИЛИ RefreshTime = Дата(1, 1, 1)) Тогда
//        
//        Возврат;
//        
//    КонецЕсли;

     
    ssl = Новый ЗащищенноеСоединениеOpenSSL();
                //Новый СертификатКлиентаWindows(
                // СпособВыбораСертификатаWindows.Выбирать),
                //Новый СертификатыУдостоверяющихЦентровWindows());   
                         
    Соединение = Новый HTTPСоединение(
                            Адрес, //"хххххх.bitrix24.ru",
                            , // порт
                            , // пользователь
                            , // пароль
                            , // прокси
                            , // таймаут в секундах
                           ssl  // защищенное HTTPS соединение
                        );
                        
                        
    //Заголовки = Новый Соответствие;
    
    Запрос = Новый HTTPЗапрос("/common/OAuth2/Authorize?client_id=" + client_id + АдресРесурса);                    
    Ответ = Соединение.Получить(Запрос);
    
     Сообщить (Ответ.КодСостояния);      
    АдресРесурса = Ответ.Заголовки.Получить("Location");
    Сообщить (АдресРесурса);
Показать
25. MakarkinPRO 28.10.17 16:46 Сейчас в теме
А есть наоборот из Битрикс24 в 1С, чтобы Битрикс24 (компании контакты) была материнская система.
28. user662672_explorer2000 222 30.10.17 14:07 Сейчас в теме
(25) Есть приложение, которое импортирует сделки в 1С. В периодическом задании запускается процедура, которая через функцию crm.deal.list получает ID сделок, у которых ORIGIN_ID не заполнено. По каждой сделке в 1С создается заказ, GUID заказа записывается в ORIGIN_ID лида. Точно так же по клиентам и контактам. Это по новым, а вот как отреагировать на изменение сделок вопрос. Нужно подписаться на событие, но URL не указать никакой, чисто средствами 1С не обойтись
33. MakarkinPRO 30.10.17 21:04 Сейчас в теме
34. user662672_explorer2000 222 30.10.17 21:19 Сейчас в теме
(33) Я немного наврал, клиент захотел лиды из Битрикс24 трансформировать в клиентские заказы в УТ. Т.е. ни сделки и ни счета. Давненько было..
26. Milanick 28.10.17 18:35 Сейчас в теме
А как в REST API обходится вывод больше 50 ?

Например ,хочу получить список пользователей, а там больше 50 пользователей не выводит :(. А у меня их больше 200 :(
29. user662672_explorer2000 222 30.10.17 14:12 Сейчас в теме
(26) Из документации: Списочные методы возвращают данные страницами по 50 элементов (число может изменяться). Для получения следующей страницы данных к запросу нужно добавить параметр start со значением, пришедшем в параметре next ответа. Ссылка https://dev.1c-bitrix.ru/rest_help/rest_sum/index.php
27. salex2002 29.10.17 15:52 Сейчас в теме
Почему-то по стандартной схеме не могу модифицировать сделку crm.deal.update

Результат = ОтправитьRESTЗапросPOST("crm.deal.update", "id="+ИДКлиента+"&fields[TITLE]="+Выборка.Представление,"")



возвращает Неопределено.
30. user662672_explorer2000 222 30.10.17 14:18 Сейчас в теме
(27) Сложно что-то сказать, возможна ошибка при получении токена. Зайдите
отладчиком в ОтправитьRESTЗапросPOST
31. salex2002 30.10.17 17:06 Сейчас в теме
(30)
Да другие методы работают через ОтправитьRESTЗапросPOST, тот же crm.deal.add. Используется ваша обработка 685093. Может в самом портале что-то включить. Пока его в базовом бесплатном варианте использую для тестов.
32. salex2002 30.10.17 17:23 Сейчас в теме
(31) Включил демо-режим "Компания" - заработал crm.deal.update
35. RIS2020 5 01.11.17 18:27 Сейчас в теме
Здравствуйте всем!

oauth/token/?grant_type=authorization_code
&client_id=local.59f9cc5662a690.43624909
&client_secret=PA5VfcmiEtE8rzkzJupvo0OX468IDPBvuZGTfYaFs3Oae­XMCOs
&code=8za5opd5bvd6hoynktv351l4zuzn0du2

КодСостояния: 400
Тело: {"error":"invalid_client1"}

В чём может быть проблема ?
36. isaev2016 02.11.17 12:03 Сейчас в теме
Справился ли кто с crm.activity.list и "COMMUNICATIONS" ? Не могу ни прочитать, ни установить правильно. Пока веду активную переписку с ТП Битрикс24
37. RIS2020 5 02.11.17 17:48 Сейчас в теме
Мой вопрос снимается, была ошибка в тексте
41. user880839 15.12.17 11:53 Сейчас в теме
Немного припозднился к разговору. Заведение нового Клиента получилось сразу. Спасибо! А вот с чтением данных из Bitrixa проблема. Хочу получить Контакт по методу crm.contact.get, а вот как задать ID в параметрах ни как не догоню... Ругается на то, что параметр вообще не задан. "ID is not defined or invalid."
74. Mva_72 21.05.18 17:57 Сейчас в теме
(41)
А подскажите, пожалуйста,как вы передали id?
75. user662672_explorer2000 222 22.05.18 07:56 Сейчас в теме
(74) разве вот так ОтправитьRESTЗапрос("crm.contact.get", "id=12345", ""); не работает?
76. Mva_72 22.05.18 10:58 Сейчас в теме
42. user880839 15.12.17 13:07 Сейчас в теме
Результат получил (нельзя пробелы указывать при задании параметров), но все значения в полях указаны отдельно по буквам. Сейчас посмотрю, что можно сделать.
43. user880839 15.12.17 15:12 Сейчас в теме
Преодолеть последствия экранирования (замены русских букв) в ответе на запрос помогла функция

Функция УТФвСтроку(ВхСтр)
ВыхСтр="";
поз=1;
Пока поз<СтрДлина(ВхСтр) Цикл
симв=Сред(ВхСтр,поз,1);
Если симв="\" И Сред(ВхСтр,поз+1,1)="u" Тогда
поз=поз+2;
Вес=4096;
ВыхКод=0;
Для п=0 По 3 Цикл
кодСимв=КодСимвола(ВхСтр,поз+п);
Если кодСимв>96 Тогда // a-f
кодСимв=кодСимв-87;
ИначеЕсли кодСимв>64 Тогда // A-F
кодСимв=кодСимв-55;
Иначе
кодСимв=кодСимв-48; // 0-9
КонецЕсли;
ВыхКод=ВыхКод+кодСимв*Вес;
Вес=Вес/16;
КонецЦикла;
ВыхСтр=ВыхСтр+Символ(ВыхКод);
поз=поз+4;
Иначе
ВыхСтр=ВыхСтр+симв;
поз=поз+1;
КонецЕсли;
КонецЦикла;
Возврат ВыхСтр;
КонецФункции

Спасибо добрым людям.

Но это я похоже сам с собой сегодня на форуме разговариваю...
ivan_luzinov; +1 Ответить
44. user662672_explorer2000 222 18.12.17 07:36 Сейчас в теме
Добрый день!

ПрочитатьJSON не выполняет эту же конвертацию? Не было проблем с получением текста на кириллице
ivan_luzinov; +1 Ответить
45. ikekoval 117 21.12.17 15:04 Сейчас в теме
(0) Автор, Спасибо за статью! Очень помогла, когда писал выгрузку компаний. Столкнулся с проблемой скудности описания данных в https://dev.1c-bitrix.ru/rest_help
Метод "crm.company.add". Не могу передать адрес компании. Во 1х данные не сохраняются в нужных полях, во 2х не понимаю где они должны отображаться. При запросе "crm.company.get(id)" поля есть, но они пустые.
Метод "crm.company.update". Телефон, почта не затираются, а создаются дополнительные с теми же данными (дубль). Параметр "fields" одинаковый для обоих методов и ниже живой пример. Что делаю не так? Пробовал адрес исполнить как массив, хоть судя по описанию полей он не множественный через &fields[ADDRESS][0][VALUE]=123022

fields[TITLE]=ООО "Рога-Копыта"&fields[COMPANY_TYPE]=Клиент&fields[ADDRESS]=123022, Москва г, Звенигородская 2-я ул, дом № 13, строение 37&fields[ADDRESS_CITY]=Москва г&fields[ADDRESS_COUNTRY_CODE]=643&fields[ADDRESS_COUNTRY]=Российская Федерация&fields[ADDRESS_POSTAL_CODE]=123022&fields[PHONE][0][VALUE_TYPE]=WORK&fields[PHONE][0][VALUE]=+7 (495) 999-11-22

"во 2х не понимаю где они должны отображаться" - к таблицам company может пристегиваться таблица "crm.requisite". На каком-то этапе после записи компании я добавлял к ней запись об организации, но в интерфейсе эти данные я видел только в окне редактирования и с адресами там тоже не срослось, а добавлять всё нужное через пользовательские поля не решился.
46. user662672_explorer2000 222 26.12.17 08:11 Сейчас в теме
Добрый день! телефон для контакта добавляю\обновляю например так "....&fields[PHONE][0][VALUE_TYPE]=WORK&fields[PHONE][0][VALUE]=+71111111111....", работает ...
47. isaev2016 27.12.17 04:38 Сейчас в теме
Сегодня авторизация отвалилась, пока нашел что вместо 302 возвращает состояние 200..
48. user662672_explorer2000 222 28.12.17 08:32 Сейчас в теме
(47) такое впечатление, что 26-го вечером что-то было, работающие закачки вываливались в неожиданных местах. Все восстановилось, даже не успел толком разобраться, с 27-го точно уже все работает
49. baracuda 2 20.02.18 22:51 Сейчас в теме
Автору лайк. Можно в личку пару вопросиков. Сейчас курю интеграцию самописной конфы с битриксом...
50. user662672_explorer2000 222 21.02.18 06:39 Сейчас в теме
Добрый день! Конечно пишите, постараюсь ответить
51. pbabincev 128 22.02.18 14:50 Сейчас в теме
Добрый день.
Спасибо за статью, думаю, что многим она пригодилась, в том числе и мне.

Опишу как в итоге сделал я. Ключевое - то, что я использовал веб-хуки и для формирования тела запроса использовал штатную сериализацию JSON.
Надеюсь, кому-нибудь пригодится.


Например, для добавления поста в живую ленту мне же:


Функция ТестПостВЖивуюЛенту() Экспорт 
	
	ПараметрыЗапроса = Новый Структура;
	
	
	
	Метод = "log.blogpost.add";
	
	SPERM_U = Новый Массив;
	SPERM_U.Добавить("U254"); // это ID пользователя, которому дать доступ читать этот пост
	
	ПараметрыЗапроса.Вставить("POST_MESSAGE", 	"Hello, World!");
	ПараметрыЗапроса.Вставить("POST_TITLE", 	"title - 3");
	ПараметрыЗапроса.Вставить("SPERM", 			Новый Структура("U", SPERM_U));
	
	
	ПараметрыЗапроса = СериализоватьВJSON(ПараметрыЗапроса);
	
	Возврат ВыполнитьЗапрос(Метод, ПараметрыЗапроса);
	
КонецФункции

Функция ВыполнитьЗапрос(Метод, Знач ПараметрыЗапроса)

	АдресСервера = "mycompany.bitrix24.ru";
	АдресРесурса = "/rest/254/xxxxxxxxxx/" + Метод + ".json"; // тут "254" - пользователь, от имени которого опубликован веб-хук; "xxxxxxxxxx" - сам веб-хук
	
	
	Попытка
		HTTPСоединение = Новый HTTPСоединение(АдресСервера, 443, , , , , Новый ЗащищенноеСоединениеOpenSSL); // соединяемся по https
	Исключение
		Возврат ОписаниеОшибки();
	КонецПопытки;
	
	
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Accept-Language", "ru");
	Заголовки.Вставить("Accept-Charset", "utf-8");
	Заголовки.Вставить("Content-Language", "ru");
	Заголовки.Вставить("Content-Charset", "utf-8");
	Заголовки.Вставить("Content-type", "application/json"); // тут обозначаем, что "общаемся" через JSON
	
	HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, Заголовки);
	HTTPЗапрос.УстановитьТелоИзСтроки(ПараметрыЗапроса);
	
	
	HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	
	
	ТелоОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
	
	
	Строка = ДесериализоватьИзJSON(ТелоОтвета);
	
	Возврат HTTPОтвет.КодСостояния;
	
КонецФункции

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

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

Функция ДесериализоватьИзJSON(СтрокаJSON)
	
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
	Строка = ПрочитатьJSON(ЧтениеJSON);
	
	Возврат Строка;
	
	
КонецФункции

Показать


Как мы видим, всё просто и логично :-)
primat; v0v; vladnet; Evilleo; ivan_luzinov; mikukrnet; +6 Ответить
52. amd1986 12.03.18 20:04 Сейчас в теме
(51) У вас все просто до того момента, пока не наткнетесь в ограничение в 2 запроса в секунду.
53. pbabincev 128 13.03.18 21:55 Сейчас в теме
(52)
Это ограничение продиктовано вэбхуком?
54. amd1986 14.03.18 11:43 Сейчас в теме
(53) Нет, нагрузкой на Б24. Нужно передавать пакетами по 50 элементов.
116. пользователь 15.12.20 18:18
Сообщение было скрыто модератором.
...
117. pbabincev 128 15.12.20 19:21 Сейчас в теме
(116)
sage.add". Сделали по аналогии с вашим кодом, не заработало. id точно корректный, т.к. методом crm.lead.get его пол

Добрый день! Написал в личку
120. yurazyuraz 16.12.21 15:50 Сейчас в теме
(51)
ПараметрыЗапроса.Вставить("POST_MESSAGE", "Hello, World!");


Добрый день!
а как сформировать в ленту сообщение с переносом строк ?

Например нужно написать так что бы в ленте это выглядело как

1 строка Hello
2 строка Bill
3 строка привет тебе
55. Milanick 15.03.18 08:40 Сейчас в теме
Ребята помогите пожалуйста с такой ерундой как Универсальные списки.
Есть примеры работы с ними через rest api ?
56. harmless 09.04.18 13:57 Сейчас в теме
Подскажите как сформировать тело POST запроса для передачи не одного, а массива контактов. Такое возможно?
57. user662672_explorer2000 222 10.04.18 07:54 Сейчас в теме
(56) на мой взгляд такое нельзя, crm.contact.add хоть через GET, хоть через POST подразумевает передачу одного контакта
58. amd1986 10.04.18 18:45 Сейчас в теме
(56)Можно через batch запрос. Пример посмотреть, как реализовано, можно в новом модуле синхронизации от Битрикса
harmless; +1 Ответить
59. user662672_explorer2000 222 11.04.18 09:17 Сейчас в теме
114. rpashkovsky 22 31.10.20 13:39 Сейчас в теме
(58) Можете, пожалуйста, дать ссылку на модуль? Не могу разобраться как при помощи batch можно обновить поля нескольких контактов.
115. amd1986 02.11.20 11:56 Сейчас в теме
(114) например вот: https://1c.1c-bitrix.ru/upload/iblock/1ae/synchronizationB24_RU_UNF.cfe
В общем модуле restApi функция отправки батч запроса
60. kobal 11.04.18 14:02 Сейчас в теме
Всем привет.
Озадачился вопросом слива Задач из Б24 в 1С для выстраивания очереди выполнения задач.
Приоритетность будет строиться исходя из данных о клиентах в 1Ске (важность, срочность и тд)
Прочитав ленту понимаю, что есть проблема слива обновленных задач (перенесли дату, ответственного и т.д.)
Но на первом этапе стоит задача просто слить все задачи в 1Ску.
Кто может поделиться кодом?
Спасибо.
61. amd1986 11.04.18 15:28 Сейчас в теме
(60) Используйте новый механизм регистрации изменений. Если для задач есть событий(при добавлении/обновлении задачи), тогда взлетит.
62. pbabincev 128 16.04.18 12:03 Сейчас в теме
(61)
Александр, можете уточнить - вы имеете в виду то, что в Б24 появился механизм регистрации изменений? Давно он там есть?
Спасибо.
63. amd1986 16.04.18 19:30 Сейчас в теме
(62)Примерно месяц - полтора. С выходом нового модуля синхронизации в режиме реального времени.
Смысл логики такой:
1) Цепляем офлайн события на нужные типы данных в Б24.
2) Когда зацепленное событие выполняется, то записывается инфа о событии и ид элемента в спец таблицу.
3) HTTP запросом С получаем данные из этой таблицы и обрабатываем.

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

Это все в кратце. Частично дока уже есть тут: https://dev.1c-bitrix.ru/rest_help/general/events_method/index.php
Но там мизер. По событиям(которые были реализованы почти для всех сущностей CRM) пока только в модуле синхронизации.


Т.е. можно получить только изменения(например только новые и измененные компании/контакты), а не все данные. А возможность узнать об изменении сразу - дает возможность реализации реал тайм обмена.
pbabincev; +1 Ответить
66. pbabincev 128 17.04.18 17:27 Сейчас в теме
67. kobal 18.04.18 09:40 Сейчас в теме
(61) Спасибо за подсказку.
Я решил попробовать просто сливать задачи по реквизиту CHANGED_DATE - дата последнего изменения;
Тут скачал пример по созданию задачи и сливу ее по ID.
Но чтобы получит список по фильтру надо применять метод task.item.list

В параметры нужно передавать 1= (ORDER) Массив для сортировки, 2= (FILTER) фильтр, 3= (PARAMS) Массив для опций вызова, 4= (SELECT) Массив полей записей. Дока тут https://dev.1c-bitrix.ru/rest_help/tasks/task/item/list.php


и вот проблема никак не могу его заполнить параметрами.
Что удалось нарыть.
Пример кода.
1) Запрос = Новый HTTPЗапрос("rest/" + RESTЗапрос + "?auth=" + AccessToken + "&" + Параметры, Заголовки);
Выдает 50 задач.
2) если заполнить параметры
СтрПараметров = fields[CREATED_DATE]=" + "asc"; //desc
Выдает 50 первых или 50 последний с сортировкой по дате создания.
Видимо я устанавливают параметр 1 ORDER,
как установить параметр 2 FILTER (отборы) никак не могу разобраться.
Кто знает подскажите!
СПАСИБО!
68. user662672_explorer2000 222 18.04.18 10:40 Сейчас в теме
(67) Если пользоваться процедурами из статьи, то например так

Ответ = ОтправитьRESTЗапрос("task.item.list", "order[]=&filter[RESPONSIBLE_ID]=46&filter[!REAL_STATUS]=5¶ms[]=&select[]=", "");


Запрос получает не выполненные задачи по ответственному с ИД=46

Это работает, проверено
69. user662672_explorer2000 222 18.04.18 10:45 Сейчас в теме
(68) какой-то глюк, почему-то вместо & и слитно params[] вставляет ¶ms[]
70. kobal 18.04.18 11:55 Сейчас в теме
(68) Спасибо огромное! Заработало.
Я лично убил на изучение и поиск проблему часа 3-4 :)
Как могу отблагодарить?
64. script 126 17.04.18 12:24 Сейчас в теме
Т.е. можно получить только изменения(например только новые и измененные компании/контакты), а не все данные. А возможность узнать об изменении сразу - дает возможность реализации реал тайм обмена.


Ну так это уже совсем другое дело.

Скажите пожалуйста, кто уже хорошо покопался, я так понял что некоторые манипуляции данными в Б24 из 1С можно сделать только в платных тарифах Б24.

В частности интересует обмен Сделки-Заказы + статусы, Компании - Контрагенты, и товарами
65. user662672_explorer2000 222 17.04.18 12:49 Сейчас в теме
(64) Все перечисленное будет работать и на бесплатном тарифе. Думаю, если есть доступ через интерфейс, то и через API будет работать. С ограничениями еще не сталкивался...
71. amd1986 18.04.18 12:17 Сейчас в теме
(65)Регистрация изменений, в полном объеме, на бесплатном тарифе работать не будет.
72. пользователь 25.04.18 20:19
Сообщение было скрыто модератором.
...
73. user662672_explorer2000 222 26.04.18 09:30 Сейчас в теме
Добрый день!

кусочек кода как обновляю контакт с телефоном


?(СтруктураПараметров.Свойство("Телефон"), "&fields[PHONE][0][ID]=" + ИДТелефона + "&fields[PHONE][0][VALUE_TYPE]=WORK&fields[PHONE][0][VALUE]=" + СтруктураПараметров.Телефон 
		


ИДТелефона из массива PHONE когда получаю контакт по crm.contact.get


Хотя коллеги уже это описали здесь https://dev.1c-bitrix.ru/rest_help/crm/contacts/crm_contact_get.php. Смотрите пользовательский комментарий.
77. uinx 95 01.06.18 10:58 Сейчас в теме
Добрый вечер!
Коллеги, подскажите что такое "AccessToken и RefreshToken" - как их получить?
78. user662672_explorer2000 222 01.06.18 11:29 Сейчас в теме
AccessToken - некий ID который получается при подключении к Битрикс24, он должен в дальнейшем передаваться при каждом обращении к API. Время действия ограничено. Когда время действия AccessToken истекает, его необходимо получить заново. При помощи RefreshToken, который так же получается при регистрации. Как получить в статье есть пример кода и в обработке из вложения.
ivan_luzinov; +1 Ответить
79. novatrade 05.06.18 10:19 Сейчас в теме
Я бы строку
				ВызватьИсключение "Ошибка при получении access_token"; 

заменил бы на:
		ПодключитьсяКБитрикс();
		Возврат;

в процедуре проверки токена. Столкнулся с этим.
80. ПрестарелыйЗаяц 02.08.18 10:32 Сейчас в теме
А есть этот пример в виде обработки у кого-нибудь ?
81. ПрестарелыйЗаяц 02.08.18 10:36 Сейчас в теме
Функция "ПолучитьПараметрыИзGetСтроки" из строки вида адрес?параметр1=значение1&параметр2=значение2 возвращает структуру, где ключ = параметр, а значение = значение

Что это за функция и где она ???
105. uno-c 211 17.10.19 14:54 Сейчас в теме
(81)
&НаСервере
Функция ПолучитьПараметрыИзGetСтроки(ГетСтрока)
	
	ТолькоПараметры = Сред(ГетСтрока, СтрНайти(ГетСтрока, "?") + 1);
	МассивПараметров = СтрРазделить(ТолькоПараметры, "&", Ложь);
	Результат = Новый Структура;
	Для каждого эл из МассивПараметров Цикл
		МассивКиЗ = СтрРазделить(эл, "="); //должны получить массив из двух элементов
		Если МассивКиЗ.Количество() <> 2 Тогда
			ВызватьИсключение("Неверная строка параметров:" + ТолькоПараметры);
		КонецЕсли;
		Результат.Вставить(МассивКиЗ[0],МассивКиЗ[1]);
	КонецЦикла;
	Возврат Результат;
	
КонецФункции
Показать
107. AbadaTouro 8 17.10.19 15:56 Сейчас в теме
(105) мой вариант
Функция ПолучитьПараметрыИзGetСтроки(СтрокаОтвета)
	КакаятоСтрока =  УТФвСтроку(СтрокаОтвета);	
	Параметры = Новый Структура;
	//ПозицияСимвола =  СтрНайти(СтрокаОтвета,"?"); 
	ПозицияСимвола =  Найти(СтрокаОтвета,"?"); 
	СтрокаОтветаНовая = Прав(СтрокаОтвета,стрДлина(СтрокаОтвета)-ПозицияСимвола);
	
	//МассивПодстрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СтрокаОтветаНовая,"&");
	МассивПодстрок = РазложитьСтрокуВМассивПодстрок(СтрокаОтветаНовая,"&");
	Для Индекс = 0 По МассивПодстрок.Количество() - 1 Цикл
		ЗначениеПары = МассивПодстрок[Индекс];
		//ПозицияСимвола = СтрНайти(ЗначениеПары,"=");
		ПозицияСимвола = Найти(ЗначениеПары,"=");
		Параметр = Лев(ЗначениеПары,ПозицияСимвола-1);
		ЗначениеПараметра =Прав(ЗначениеПары,СтрДлина(ЗначениеПары)-ПозицияСимвола);
		Параметры.Вставить(Параметр,ЗначениеПараметра);
		
	КонецЦикла;
	
	Возврат Параметры;
КонецФункции
Показать
82. user662672_explorer2000 222 02.08.18 13:05 Сейчас в теме
Вот здесь есть законченная обработка. Это тоже моя статья, в ней есть все функции
83. men260181 22 18.10.18 11:55 Сейчас в теме
Спасибо автору, вариант рабочий, но тормозной. Для больших объемов информации не годится к сожалению.
Milanick; +1 Ответить
84. user662672_explorer2000 222 18.10.18 12:41 Сейчас в теме
не подойдет, т.к. по одному передает. Нужно через batch, как-нибудь дойдут руки сделаю
Milanick; men260181; +2 Ответить
85. Milanick 19.10.18 22:52 Сейчас в теме
Блин, такой потенциал у инструмента , а пользоваться почти невозможно :(
86. user1073447 23.10.18 13:10 Сейчас в теме
нужна интеграция 1с и битрикс - создание обычного счета и счета/оферты в битрикс, синхронизация с 1с, отладка автоматической интеграции номенклатуры и товаров между битрикс/1с интересуют сроки и стоимость, нахождение программиста в спб обязательно!
автоматические инструменты не подойдут, есть особенности заполнения полей
87. Vladislava-smile 14.12.18 11:09 Сейчас в теме
Добрый день. Как обстоят дела через batch? Пробую так:
rest/batch.xml?auth=c671135c0031a352003001c600000001706203479f972da7baeb2d9­58790d4f5c68828&halt=0&cmd[task.item.add]=&fields[TITLE]=Проверка Битрикс&fields[DESCRIPTION]=Проверка обмена Битрикс&fields[DEADLINE]=18.12.2018 0:00:00&fields[START_DATE_PLAN]=17.12.2018 0:00:00&fields[RESPONSIBLE_ID]=1&fields[CREATED_BY]=1

ошибка ( Может знаете в чем проблема?
88. Vladislava-smile 14.01.19 10:21 Сейчас в теме
Проблема с выгрузкой задач из Б24.

Запрос:
"rest/task.item.list?auth=ТокенБ24&order[CHANGED_DATE]=asc&filter[CHANGED_DATE]>=2019-01-11T00:00:00+03:00". в ответ пустой массив, если убирать фильтр по дате изменения - сортирует и отображает. Подскажите, как работать с датой????
89. user662672_explorer2000 222 14.01.19 10:55 Сейчас в теме
попробуйте вместо filter[CHANGED_DATE]>=2019-01-11T00:00:00+03:00 вот так filter[>=CHANGED_DATE]=2019-01-11T00:00:00+03:00

Перед названием фильтруемого поля может указать тип фильтрации:
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

взял отсюда https://dev.1c-bitrix.ru/rest_help/tasks/task/item/list.php
90. Vladislava-smile 14.01.19 11:14 Сейчас в теме
(89) Да я тоже читала документацию, это код для php, а я отправляю запрос через url, и не так там это пишется, как они дают в примерах ((.
91. user662672_explorer2000 222 14.01.19 11:17 Сейчас в теме
больше или равно не проверял, но точно работает например так ....&filter[!REAL_STATUS]=5&....
92. Vladislava-smile 14.01.19 11:31 Сейчас в теме
(91) Прав, трабл был в часовом поясе ... СтрПараметров = "order[CHANGED_DATE]=asc" + "&filter[>CHANGED_DATE]=2019-01-10 16:53:00"; работает. Спасибо)
LomayaZakat; +1 Ответить
Оставьте свое сообщение

См. также

Как мы тащили выгрузки в SQL из болота

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

Ускорение, оптимизация и автоматизация выгрузок в SQL.

01.12.2022    743    MatulRR    2    

1

Пример разработки инструмента загрузки данных SAP в 1С

Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бесплатно (free)

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

14.09.2022    1237    Anirina    3    

7

PROSTO:СКУД для интеграции 1С и СКУД: руководство по установке программного продукта

Внешние источники данных Внедрение ИТ-системы Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Рассмотрим, как сделать интеграцию типовых конфигураций 1С и популярных СКУД RusGuard, Parsec, Sigur и др. при помощи готового решения PROSTO:СКУД, а именно — за счет его внедрения в виде подсистемы.

18.08.2022    1524    ProgrammingStore    8    

6

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Получение данных таблиц PostgreSQL через внешний источник данных

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

Получение данных таблиц напрямую из PostgreSQL через объект конфигурации "Внешний источник данных", с развёрнутым сервером 1С на Linux.

31.01.2022    2620    AndreyNit    4    

6

ВИДы на жительство. Использование внешних источников данных в прикладных задачах

Внешние источники данных Платформа 1С v8.3 Бесплатно (free)

На Infostart Meetup Novosibirsk выступил ведущий разработчик МКК «Ваш Инвестор» Вадим Фоминых. Он на практических примерах показал коллегам, как его команда использует внешние источники данных в прикладных задачах, призвал не отказываться от этого инструмента и объяснил – почему.

19.04.2021    3559    Shmell    5    

30

Бухгалтерия 3.0. Ошибка загрузки билетов из Smartway

Внешние источники данных Бухгалтерский учет 8.3.14 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Бесплатно (free)

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

18.03.2021    1855    maria_vl    2    

1

Правила обмена больше не нужны

Внешние источники данных Обмен между базами 1C WEB-интеграция Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    18833    Nikola23    40    

79

Работа с Ворд через СОМ-Объект

Внешние источники данных Платформа 1С v8.3 Бесплатно (free)

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

15.02.2021    20959    Sindbad_M    36    

66

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

DaJet Exchange: обмен данными с 1С (часть 1)

Внешние источники данных Платформа 1С v8.3 Бесплатно (free)

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

11.01.2021    6011    zhichkin    14    

35

Соединение COM в 1С: примеры и инструкции

Внешние источники данных Платформа 1С v8.3 Бесплатно (free)

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

31.07.2020    2147    Koder_Line    4    

9

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

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

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

06.07.2020    9834    Infector    4    

19

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

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

08.05.2020    6721    chernenko_vv    26    

43

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

Внешние источники данных Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Россия Бесплатно (free)

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

08.05.2020    4115    vostok1.dz    3    

7

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

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

04.05.2020    5819    RPGrigorev    0    

66

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Получение данных из Сигур

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Получение данных из СКУД Сигур (без танцов с бубном)

25.12.2019    10061    skaoxy    12    

15

Доступ к базе 1С из MariaDB

Внешние источники данных Платформа 1С v8.3 1С:Бухгалтерия 2.0 Бесплатно (free)

Прямое соединение MariaDB с базой на сервере MSSQL. Получение доступа к актуальным данным 1С из сторонних программ.

25.12.2019    5763    serg7965    1    

6

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

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

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

28.08.2019    37286    user1114182    14    

6

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

Внешние источники данных Платформа 1С v8.3 Бесплатно (free)

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

02.07.2019    15545    EvgenSav    18    

17

Готовые переносы данных из различных конфигураций 1C Промо

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

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

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

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

20.06.2019    10735    osipov_cvizi    16    

29

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

Внешние источники данных Платформа 1С v8.3 Бесплатно (free)

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

09.04.2019    40725    Infostart    49    

80

Программное чтение файла ibases.v8i

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример кода, который позволяет читать файл списка баз данных ibases.v8i.

02.04.2019    5919    Andryza    17    

15

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

Внешние источники данных Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Конвертация данных Бесплатно (free)

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

21.03.2019    34202    barelpro    87    

235

Выполнение REST API запросов к Битрикс24 из 1с8

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Модуль для выполнения REST API запросов к Битрикс24 с примерами вызова.

1 стартмани

12.02.2019    10146    73    sdemon72    8    

13

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

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

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

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

07.02.2019    8339    SatanClaws    6    

10

RabbitMQ, Python и Windows. Step By Step

Внешние источники данных Платформа 1С v8.3 Бесплатно (free)

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

13.12.2018    13263    w.r.    10    

43

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

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

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

12.09.2018    10639    oyti    9    

5

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

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

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

01.06.2018    33645    oyti    45    

8

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Битрикс24. Работаем с оффлайн событиями

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

11.05.2018    18079    55    user662672_explorer2000    29    

20

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

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

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

16.04.2018    13945    Гексагон    19    

25

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

Файловый обмен (TXT, XML, DBF), FTP Внешние источники данных Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

09.04.2018    12210    m-rv    12    

6