Первым делом регистрирую свое приложение в Битрикс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С реализации а в битрикс 24 загружать «Сделки»
Добрый день! Смотрите офф документацию, в частности по сделкам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, так что пробуйте и смотрите что возвращается в качестве ответа. Если ошибка, то будет описание ошибки.
Люди, а вы не в курсе, что существует вот это :
http://1c.1c-bitrix.ru/intranet/download.php
Там готовые модули, в частности для УТ 11.1 есть.
Выгружаются организации, контрагенты, контактные лица партнеров, реализации….
Но плюс поставлю, т.к. метод реализован другой.
Тут неверно я указал привязку к УТ. Данный код можно использовать в любой конфигурации, даже под которую нет готовых модулей. Да и функционал можно реализовать какой угодно, т.к. доступен любой метод REST API
(3) И не только смотрели, но и внедрили. Только когда внедрили, то оказалось что это полная ерунда.
Выгружает
Из 1С контрагенты в Б24 в клиенты
Из 1С конт. лица в Б24 в контакты
Из 1С все (любые) документы в Б24 в Дела
И все.
А внутри просто шлак. Запросы к базе через две точки.
Обращение к несуществующим полям в справочниках из-за которых все это сразу вываливается в ошибки.
Пишешь на поддержку — тебе дают 1С-ника, который лезет в запросы. Начинает там начинает ограничивать поля неограниченной длины — при тебе.
А сам модуль добавляет столько мусора, столько лишних объектов, что только из-за этого уже начинаешь жалеть что связался с ним.
И еще один вопрос.
Это доступ через REST API работает и на облачной версии или только в коробке?
На облачной работает точно, проверялось на ней. С коробочной не проверял, ее просто нет.
(6) Все нововведения у Б24 сначала в облаке. В коробке REST API добавили совсем-совсем недавно.
Спасибо что поделились, как раз собирались городить свои костыли к Б24))
Удивило что вы сделали авторизацию по логину и паролю. Почему бы не получить токен единожды, регулярно его обновляя?
Хотя конечно определенные плюсы в этом есть, особенно если вызовы нерегулярные. Я например даже не думал что оно даст авторизоваться по Basic, даже через curl проверил сейчас что оно работает, но вдруг перестанет (в документации ведь об этом ни слова).
(10) Я вроде бы так и хотел сделать) Первоначально по логину и пароль получаю AccessToken и RefreshToken. Далее если время жизни токена истекло, уже обновляю его.
(5) еще замечательная поддержка, которая долго ищет какой релиз какой редакции УТ 11 минимально нужен для работы с Б24, а потом не могут объяснить какой же модуль используется для интеграции с УТ — трекер или модуль обмена с сайтом и чем они отличаются.
Большое спасибо за статью! Очень помогла. Если знаете, подскажите, пожалуйста, в каком виде параметры (СтрПараметров) передавать в функцию для добавления товарных позиций к сделке. (crm.deal.producrows.set). Передаю
СтрПараметров = «id=»+ИДСделки+
«&rows[PRODUCT_ID]=»+ИдТовара+
«&rows[PRICE]=»+»100″+
«&rows[QUANTITY]=1»;
Ошибки не выдает, но и товары не добавляет.
Вам нужно переделать передачу параметров вот так:
СтрПараметров = «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», СтрПараметров, «»);
Если авторизоваться по токену а не по логину и паролю, получится [ASSIGNED_BY_ID] правильно передавать??? Кто нибудь пробовал?
Просто это то, ради чего мы затеваем всю интеграцию 🙂
Первоначальная регистрация по логинупаролю. Вы получаете токен время жизни которого ограничено. По истечении этого времени Вы обновляете токен без использования логинапароля. Нужен старый токен, client_id и client_secret. Посмотрите процедуру ПроверитьТокен(). ASSIGNED_BY_ID присваивается автоматом. По идее его и в параметрах можно передавать, но у меня всегда ответственный тот, под кем я залогинился. Возможно нужны администраторские права. Точно не знаю.
ASSIGNED_BY_ID сделал равным 2
Контакт создался с ответственным с чужого портала!
Чё так правда можно?!
В названии надо использовать слово «Забираем», а не «Передаём», так как передать из Битрикс24 что либо в 1с ни фига не просто. Создать http-сервис и зарегистрировать обработчик события в Битрикс24 дело не хитрое. А вот как заставить эти события срабатывать и переходить по запросам, которые к ним привязаны? Причём этот запрос в браузере работает как часы. а тут ещёЗаговор
(18)Причина была в том что в 1с метод был установлен GET. Лучше сначала устанавливать Любой, чтобы проверить, а потом уже определяться с каким работать.
(18) Контакты все же мы передаем (экспортируем или назовите как хотите, сути не меняет) из 1С в Битрикс24. О чем Вы пишите не тема статьи. Хотите забирать информацию из Битрикс24? Делайте аналогично, забирайте контакты с фильтром по незаполненности ORIGIN_ID например. При записи контакта в 1С пишите его GUID в ORIGIN_ID
А с локализациями не пробовали работать? Пробую создавать валюты, одна не удается задать локализацию — если задавать через параметр LANG при вызове currrency.add, то ругается на пустое поле Format (которого в перечне полей локализации вообще нет). Если уже после создания валюты вызвать currency.localizations.set — ошибок нет, но и данные валюты, касающиеся локализаций, никак не изменяются.
А с вебхуками работали?
Делала по вашему примеру. Мне нужно почти тоже самое, только токен необходимо получить для power BI и данные отправлять туда.
Пишу get запрос (текст ниже), при использовании защищенного сертификата не происходит перенаправление по ссылке, которая указана в redirect_uri, если использовать http, то происходит постоянное перенаправление на тот же адрес, но уже с https соединением.
При проверке в браузере, перенаправление происходит и все нормально. Как можно решить эту проблему?
При перенаправлении на office.com я должна в строке получить параметр «code», который потом хочу использовать для получения токена приложения.
В Set-Cookie есть такое поле как «buid» это одно и тоже? Если да, то в принципе я могу использовать его в качестве кода авторизации, но проблему с перенаправлением все равно надо как то решить, так как при получении токена с запросом тоже самое, редирект не происходит…
Показать
(19) посмотрите, пожалуйста, мой вопрос ниже, может быть вы сможете мне помочь…
А есть наоборот из Битрикс24 в 1С, чтобы Битрикс24 (компании контакты) была материнская система.
А как в REST API обходится вывод больше 50 ?
Например ,хочу получить список пользователей, а там больше 50 пользователей не выводит :(. А у меня их больше 200 🙁
Почему-то по стандартной схеме не могу модифицировать сделку crm.deal.update
возвращает Неопределено.
(25) Есть приложение, которое импортирует сделки в 1С. В периодическом задании запускается процедура, которая через функцию crm.deal.list получает ID сделок, у которых ORIGIN_ID не заполнено. По каждой сделке в 1С создается заказ, GUID заказа записывается в ORIGIN_ID лида. Точно так же по клиентам и контактам. Это по новым, а вот как отреагировать на изменение сделок вопрос. Нужно подписаться на событие, но URL не указать никакой, чисто средствами 1С не обойтись
(26) Из документации: Списочные методы возвращают данные страницами по 50 элементов (число может изменяться). Для получения следующей страницы данных к запросу нужно добавить параметр start со значением, пришедшем в параметре next ответа. Ссылкаhttps://dev.1c-bitrix.ru/rest_help/rest_sum/index.php
(27) Сложно что-то сказать, возможна ошибка при получении токена. Зайдите
отладчиком в ОтправитьRESTЗапросPOST
(30)
Да другие методы работают через ОтправитьRESTЗапросPOST, тот же crm.deal.add. Используется ваша обработка 685093. Может в самом портале что-то включить. Пока его в базовом бесплатном варианте использую для тестов.
(31) Включил демо-режим «Компания» — заработал crm.deal.update
(28) сделки или счета?
(33) Я немного наврал, клиент захотел лиды из Битрикс24 трансформировать в клиентские заказы в УТ. Т.е. ни сделки и ни счета. Давненько было..
Здравствуйте всем!
oauth/token/?grant_type=authorization_code
XMCOs
&client_id=local.59f9cc5662a690.43624909
&client_secret=PA5VfcmiEtE8rzkzJupvo0OX468IDPBvuZGTfYaFs3Oae
&code=8za5opd5bvd6hoynktv351l4zuzn0du2
КодСостояния: 400
Тело: {«error»:»invalid_client1″}
В чём может быть проблема ?
Справился ли кто с crm.activity.list и «COMMUNICATIONS» ? Не могу ни прочитать, ни установить правильно. Пока веду активную переписку с ТП Битрикс24
Мой вопрос снимается, была ошибка в тексте
(38) Уважаемый, это по сути инструмент, а не законченный функционал. Синхронизация контактов одно из применений. Подставьте методы работы с лидами, сделками и т.д., оберните логикой и получите нужный функционал. Это не универсальное решение и для применения требует программирования.
(39) да это все понятно. Пост был адресован не вам.
Немного припозднился к разговору. Заведение нового Клиента получилось сразу. Спасибо! А вот с чтением данных из Bitrixa проблема. Хочу получить Контакт по методу crm.contact.get, а вот как задать ID в параметрах ни как не догоню… Ругается на то, что параметр вообще не задан. «ID is not defined or invalid.»
Результат получил (нельзя пробелы указывать при задании параметров), но все значения в полях указаны отдельно по буквам. Сейчас посмотрю, что можно сделать.
Преодолеть последствия экранирования (замены русских букв) в ответе на запрос помогла функция
Функция УТФвСтроку(ВхСтр)
ВыхСтр=»»;
поз=1;
Пока поз<СтрДлина(ВхСтр) Цикл
симв=Сред(ВхСтр,поз,1);
Если симв=»» И Сред(ВхСтр,поз+1,1)=»u» Тогда
поз=поз+2;
Вес=4096;
ВыхКод=0;
Для п=0 По 3 Цикл
кодСимв=КодСимвола(ВхСтр,поз+п);
Если кодСимв>96 Тогда // a-f
кодСимв=кодСимв-87;
ИначеЕсли кодСимв>64 Тогда // A-F
кодСимв=кодСимв-55;
Иначе
кодСимв=кодСимв-48; // 0-9
КонецЕсли;
ВыхКод=ВыхКод+кодСимв*Вес;
Вес=Вес/16;
КонецЦикла;
ВыхСтр=ВыхСтр+Символ(ВыхКод);
поз=поз+4;
Иначе
ВыхСтр=ВыхСтр+симв;
поз=поз+1;
КонецЕсли;
КонецЦикла;
Возврат ВыхСтр;
КонецФункции
Спасибо добрым людям.
Но это я похоже сам с собой сегодня на форуме разговариваю…
Добрый день!
ПрочитатьJSON не выполняет эту же конвертацию? Не было проблем с получением текста на кириллице
Добрый день! телефон для контакта добавляюобновляю например так «….&fields[PHONE][0][VALUE_TYPE]=WORK&fields[PHONE][0]» class=» show-hide-props row «>
user662672_explorer2000
171
Сейчас в теме
Сегодня авторизация отвалилась, пока нашел что вместо 302 возвращает состояние 200..
(47) такое впечатление, что 26-го вечером что-то было, работающие закачки вываливались в неожиданных местах. Все восстановилось, даже не успел толком разобраться, с 27-го точно уже все работает
Автору лайк. Можно в личку пару вопросиков. Сейчас курю интеграцию самописной конфы с битриксом…
Добрый день! Конечно пишите, постараюсь ответить
Добрый день.
Спасибо за статью, думаю, что многим она пригодилась, в том числе и мне.
Опишу как в итоге сделал я. Ключевое — то, что я использовал веб-хуки и для формирования тела запроса использовал штатную сериализацию JSON.
Надеюсь, кому-нибудь пригодится.
Например, для добавления поста в живую ленту мне же:
Показать
Как мы видим, всё просто и логично 🙂
(51) У вас все просто до того момента, пока не наткнетесь в ограничение в 2 запроса в секунду.
(52)
Это ограничение продиктовано вэбхуком?
(53) Нет, нагрузкой на Б24. Нужно передавать пакетами по 50 элементов.
Ребята помогите пожалуйста с такой ерундой как Универсальные списки.
Есть примеры работы с ними через rest api ?
Подскажите как сформировать тело POST запроса для передачи не одного, а массива контактов. Такое возможно?
(56) на мой взгляд такое нельзя, crm.contact.add хоть через GET, хоть через POST подразумевает передачу одного контакта
(56)Можно через batch запрос. Пример посмотреть, как реализовано, можно в новом модуле синхронизации от Битрикса
(58) Верно, вот описаниеhttps://dev.1c-bitrix.ru/rest_help/general/batch.php
Нужно попробовать
Всем привет.
Озадачился вопросом слива Задач из Б24 в 1С для выстраивания очереди выполнения задач.
Приоритетность будет строиться исходя из данных о клиентах в 1Ске (важность, срочность и тд)
Прочитав ленту понимаю, что есть проблема слива обновленных задач (перенесли дату, ответственного и т.д.)
Но на первом этапе стоит задача просто слить все задачи в 1Ску.
Кто может поделиться кодом?
Спасибо.
(60) Используйте новый механизм регистрации изменений. Если для задач есть событий(при добавлении/обновлении задачи), тогда взлетит.
(61)
Александр, можете уточнить — вы имеете в виду то, что в Б24 появился механизм регистрации изменений? Давно он там есть?
Спасибо.
(62)Примерно месяц — полтора. С выходом нового модуля синхронизации в режиме реального времени.
Смысл логики такой:
1) Цепляем офлайн события на нужные типы данных в Б24.
2) Когда зацепленное событие выполняется, то записывается инфа о событии и ид элемента в спец таблицу.
3) HTTP запросом С получаем данные из этой таблицы и обрабатываем.
Также реализован спец метод push&pull сервера, который сразу сообщает, что появилось хоть одно новое офлайн событие(ну это для реал тайм).
Это все в кратце. Частично дока уже есть тут:https://dev.1c-bitrix.ru/rest_help/general/events_method/index.php
Но там мизер. По событиям(которые были реализованы почти для всех сущностей CRM) пока только в модуле синхронизации.
Т.е. можно получить только изменения(например только новые и измененные компании/контакты), а не все данные. А возможность узнать об изменении сразу — дает возможность реализации реал тайм обмена.
Ну так это уже совсем другое дело.
Скажите пожалуйста, кто уже хорошо покопался, я так понял что некоторые манипуляции данными в Б24 из 1С можно сделать только в платных тарифах Б24.
В частности интересует обмен Сделки-Заказы + статусы, Компании — Контрагенты, и товарами
(64) Все перечисленное будет работать и на бесплатном тарифе. Думаю, если есть доступ через интерфейс, то и через API будет работать. С ограничениями еще не сталкивался…
(63)
Благодарю!
(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 (отборы) никак не могу разобраться.
Кто знает подскажите!
СПАСИБО!
(67) Если пользоваться процедурами из статьи, то например так
Запрос получает не выполненные задачи по ответственному с ИД=46
Это работает, проверено
(68) какой-то глюк, почему-то вместо & и слитно params[] вставляет ¶ms[]
(68) Спасибо огромное! Заработало.
Я лично убил на изучение и поиск проблему часа 3-4 🙂
Как могу отблагодарить?
(65)Регистрация изменений, в полном объеме, на бесплатном тарифе работать не будет.
Добрый день!
кусочек кода как обновляю контакт с телефоном
ИДТелефона из массива PHONE когда получаю контакт по crm.contact.get
Хотя коллеги уже это описали здесьhttps://dev.1c-bitrix.ru/rest_help/crm/contacts/crm_contact_get.php . Смотрите пользовательский комментарий.
(41)
А подскажите, пожалуйста,как вы передали id?
(74) разве вот так ОтправитьRESTЗапрос(«crm.contact.get», «id=12345», «»); не работает?
(75) Работает. Спасибо!
Добрый вечер!
Коллеги, подскажите что такое «AccessToken и RefreshToken» — как их получить?
AccessToken — некий ID который получается при подключении к Битрикс24, он должен в дальнейшем передаваться при каждом обращении к API. Время действия ограничено. Когда время действия AccessToken истекает, его необходимо получить заново. При помощи RefreshToken, который так же получается при регистрации. Как получить в статье есть пример кода и в обработке из вложения.
Я бы строку
заменил бы на:
в процедуре проверки токена. Столкнулся с этим.
А есть этот пример в виде обработки у кого-нибудь ?
Функция «ПолучитьПараметрыИзGetСтроки» из строки вида адрес?параметр1=значение1&параметр2=значение2 возвращает структуру, где ключ = параметр, а значение = значение
Что это за функция и где она ???
Вотздесь есть законченная обработка. Это тоже моя статья, в ней есть все функции
Спасибо автору, вариант рабочий, но тормозной. Для больших объемов информации не годится к сожалению.
не подойдет, т.к. по одному передает. Нужно через batch, как-нибудь дойдут руки сделаю
Блин, такой потенциал у инструмента , а пользоваться почти невозможно 🙁
нужна интеграция 1с и битрикс — создание обычного счета и счета/оферты в битрикс, синхронизация с 1с, отладка автоматической интеграции номенклатуры и товаров между битрикс/1с интересуют сроки и стоимость, нахождение программиста в спб обязательно!
автоматические инструменты не подойдут, есть особенности заполнения полей
Добрый день. Как обстоят дела через batch? Пробую так:
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
rest/batch.xml?auth=c671135c0031a352003001c600000001706203479f972da7baeb2d9
ошибка ( Может знаете в чем проблема?
Проблема с выгрузкой задач из Б24.
Запрос:
«rest/task.item.list?auth=ТокенБ24&order[CHANGED_DATE]=asc&filter[CHANGED_DATE]>=2019-01-11T00:00:00+03:00». в ответ пустой массив, если убирать фильтр по дате изменения — сортирует и отображает. Подскажите, как работать с датой????
попробуйте вместо 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
(89) Да я тоже читала документацию, это код для php, а я отправляю запрос через url, и не так там это пишется, как они дают в примерах ((.
больше или равно не проверял, но точно работает например так ….&filter[!REAL_STATUS]=5&….
(91) Прав, трабл был в часовом поясе … СтрПараметров = «order[CHANGED_DATE]=asc» + «&filter[>CHANGED_DATE]=2019-01-10 16:53:00»; работает. Спасибо)
Пожалуйста
Доброго времени дня.
https://dev.1c-bitrix.ru/rest_help/crm только сами методы описаны, и куцые примеры… Или я не нашёл?
Огромное спасибо за статью, хоть стало понятно с какой стороны к этому битриксу подойти, а то поддержка у них ни бе, ни ме…
Только вот никак не найду, где можно почитать, какие разновидности field’s и тому подобных переменных бывают? На
Добрый день! Всю информацию брал отсюдаhttps://dev.1c-bitrix.ru/rest_help/rest_sum/index.php
(95) Я тоже, но зачастую нет описания того, что можно передать: «параметры_метода». Например,https://dev.1c-bitrix.ru/rest_help/crm/contacts/crm_contact_add.php , в этом методе есть fields, а вот какие поля можно передавать в этот массив, не сказано((
есть метод crm.contact.fields, он вернет описание полей. Хотя даже нет необходимости его вызывать — в описании метода все поля перечислены. Их и передавайте в crm.contact.add в массиве fields
Попробовал сделать по статье. не происходит редиректа на страницу с полем code вместо этого идет редирект на страницу авторизации. Хотя я передаю и логин и пароль. причем если из браузера сделать то нормально перебрасывает на страницу где можно взять поле code. Не подскажете куда копать?
(81)
Показать
(105) мой вариант
Показать