[QUOTE]
Роман Бузин написал:
[QUOTE][URL=/community/webdev/user/5867740/]Александр Нимгиров[/URL] написал:
[QUOTE] [URL=/support/forum/user/9254118/]Роман Бузин[/URL] написал:
[QUOTE] [URL=/community/webdev/user/5867740/]Александр Нимгиров[/URL] написал:
1С:Предприятие 8.5 (8.5.1.1302)Бухгалтерия предприятия, редакция 3.0 (3.0.206.19)Битрикс24: Коннектор к 1С для БП (5.0.0.12)Я создал компанию в Битрикс24Указал реквизиты + банковский счетВернулся в 1с, открыл Настройки синхронизацииНажал выполнить синхронизацию, по идее созданная компания должна была попасть в Битрикс24[/QUOTE]
Тут лог не полный. Включите в общих настройках "хранить историю взаимодействий" и "Режим отладки".
В тесте проверил - компании синхронизируются на последнем релизе[/QUOTE]
Смог понять по какой причине это происходит, но нужна ваша помощь
Выходит проблема следующая: Создания/изменения в Битриксе по контрагентам, счетам не приходит
Я включил то, что вы сказали и обратил внимание, что когда включается тумблер синхронизации той или иной сущности вы отправляете через REST, используя токен приложение, запрос на подписку оффлайн событий Создания/Изменения сущности (Это на другой конфигурации я проверил)
При включении синхронизации контрагента вижу в логе вот такой список запросов:
Скрытый текст Скрытый текст Удаление подписок на события Скрытый текст Отправка запроса по методу: b24-ri3oec.bitrix24.ru/rest/event.get Скрытый текст Тело запроса HTTP запроса: FirstParam=first&auth=&auth_connector=775&LastParam=last Скрытый текст Ответ с портала: {"result":[{"event":"ONAPPUSERREADY","handler":"https:\/\/integration-ms2.bitrix.info\/app\/1ctotal\/v8\/install.php","auth_type":"0","offline":0},{"event":"ONAPPINSTALL","handler":"https:\/\/integration-ms2.bitrix.info\/app\/1ctotal\/v8\/event.php","auth_type":"0","offline":0},{"event":"ONAPPUNINSTALL","handler":"https:\/\/integration-ms2.bitrix.info\/app\/1ctotal\/v8\/event.php","auth_type":"0","offline":0},{"event":"ONAPPTEST","handler":"https:\/\/integration-ms2.bitrix.info\/app\/1ctotal\/v8\/event.php","auth_type":"0","offline":0}],"time":{"start":1789511342,"finish":1789511342.035831,"duration":0.03583097457885742,"processing":0,"date_start":"2026-09-16T01:29:02+03:00","date_finish":"2026-09-16T01:29:02+03:00","operating_reset_at":1789511942,"operating":0}} Скрытый текст Начало добавления подписок на события
На этапе добавления подписки на события ничего не происходит, REST запрос физически не уходит в Битрикс
Поэтому когда я пытаюсь получить изменения из Битрикса мне ничего не приходит, так как при запросе списка оффлайн событий Битрикс ожидаемо в REST отдает пустой список
Скрытый текст Скрытый текст Начало формирования пакетов данных для объектов с типом:Свойство компании Скрытый текст Начало формирования пакетов данных для объектов с типом:Значение свойства компании Скрытый текст Отправка запроса по методу: b24-ri3oec.bitrix24.ru/rest/event.offline.get Скрытый текст Тело запроса HTTP запроса: FirstParam=first&auth=&auth_connector=775&auth_connector=775&clear=1&LastParam=last Скрытый текст Ответ с портала: {"result":{"process_id":null,"events":[]},"time":{"start":1789510214,"finish":1789510214.453682,"duration":0.45368194580078125,"processing":0,"date_start":"2026-09-16T01:10:14+03:00","date_finish":"2026-09-16T01:10:14+03:00","operating_reset_at":1789510814,"operating":0}} Скрытый текст Нет изменений на портале[/QUOTE]
Добрый день. Приём изменений компаний/контрагентов и счетов с портала в 1С идёт через оффлайн-события: на портале должна быть зарегистрирована offline-подписка (event.bind с event_type=offline на onCrmCompanyAdd/Update, onCrmRequisite*, onCrmBankDetail и т.п.), и тогда Битрикс копит события в очередь приложения, которую 1С забирает через event.offline.get. В вашем логе видно, что на этапе «Начало добавления подписок на события» исходящий event.bind не отправляется — подписка так и не зарегистрировалась, поэтому event.offline.get всегда пуст и изменения портала не приходят. Пустой auth=, который вы замечаете в запросах, — это нормально для коннектора (он авторизуется через auth_connector), к проблеме отношения не имеет. Почему event.bind не уходит (по коду). Регистрация подписок собирает список событий по сущностям и, если список оказался пуст, отправка batch-запроса с event.bind вообще не выполняется. События компаний (а также связанных с ними реквизитов и банк-счетов) попадают в этот список, только если в настройках синхронизации включена синхронизация контрагентов/клиентов и для сущности задано направление «Загружать в 1С»/«Обновлять в 1С». Подписки пересоздаются при сохранении общей формы «Настройки синхронизации» / контрагентов. Что проверить на вашем подключении: В «Настройках синхронизации» включена общая синхронизация контрагентов (не только отдельные сущности) и сохранена.
Для сущности «Контрагенты» задан и сохранён флаг «Загружать в 1С» (при необходимости — «Обновлять в 1С»).
Пересохраните общие настройки синхронизации (а не только форму конкретной сущности), затем в логе с «Режимом отладки» после «Начало добавления подписок на события» должен появиться batch с записями event.bind … event_type=offline и строка «Регистрация событий: N команд».
После создания компании на портале проверьте, что в event.offline.get появляются события onCrmCompanyAdd и т.д.
[/QUOTE]
Решил проблему, нашел фоновое задание, которое запускается после нажатия синхронизировать контрагентов, и оно завершалось с ошибкой:
Скрытый текст |
|---|
Скрытый текст |
|---|
| Преобразование значения к типу Булево не может быть выполнено |
Скрытый текст |
|---|
| {Битрикс24КомплексБП РегистрСведений.Б24_КС_НастройкиСинхронизации.МодульМенеджера(802)}:Если КонтрагентОбновлятьВ1С ИЛИ КонтЛицоОбновлятьВ1С Тогда |
Скрытый текст |
|---|
| {Битрикс24КомплексБП РегистрСведений.Б24_КС_НастройкиСинхронизации.МодульМенеджера(491)}:мСобытияКонтактов = ПолучитьМассивСобытийКонтактов(НастройкаПодключения, НастройкиСинхронизации); |
Скрытый текст |
|---|
| {(1)}:РегистрыСведений.Б24_КС_НастройкиСинхронизации.ВыгрузитьНастройкиВФоне(Параметры[0],Параметры[1]) |
Скрытый текст |
|---|
| {ОбщийМодуль.ОбщегоНазначения.Модуль(6334)}:Выполнить(СтрокаВызова); // АПК:487 Исполняемый код безопасен. |
Скрытый текст |
|---|
| {ОбщийМодуль.ДлительныеОперации.Модуль(1851)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова); |
Скрытый текст |
|---|
| {ОбщийМодуль.ДлительныеОперации.Модуль(1812)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения); |
Скрытый текст |
|---|
| {ОбщийМодуль.ДлительныеОперации.Модуль(1825)}:ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,, СтекЗапуска, ИнформацияОбОшибке); |
Скрытый текст |
|---|
| [ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка, ОшибкаКонфигурации] |
Скрытый текст |
|---|
| Преобразование значения к типу Булево не может быть выполнено |
Скрытый текст |
|---|
| [ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка] |
|
Открыл код модуля менеджера регистра сведений Б24_КС_НастройкиСинхронизаци и вижу:
Скрытый текст |
|---|
Скрытый текст |
|---|
| Если ТипКонфигурации = "БП" или ТипКонфигурации = "ЗУП" Тогда |
Скрытый текст |
|---|
| КонтрагентЗагружатьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Контрагенты", "ЗагружатьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтЛицоЗагружатьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "КонтактныеЛица", "ЗагружатьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтрагентОбновлятьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Контрагенты", "ОбновлятьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтрагентЗагружатьВ1СДП = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Контрагенты", "ЗагружатьВ1СДП"); |
Скрытый текст |
|---|
| КонтЛицоЗагружатьВ1СДП = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "КонтактныеЛица", "ЗагружатьВ1СДП"); |
Скрытый текст |
|---|
| ИначеЕсли ТипКонфигурации = "УТ" Тогда |
Скрытый текст |
|---|
| КонтрагентЗагружатьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Партнеры", "ЗагружатьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтЛицоЗагружатьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "КонтактныеЛицаПартнеров", "ЗагружатьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтрагентОбновлятьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Партнеры", "ОбновлятьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтЛицоОбновлятьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "КонтактныеЛицаПартнеров", "ОбновлятьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтрагентЗагружатьВ1СДП = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Партнеры", "ЗагружатьВ1СДП"); |
Скрытый текст |
|---|
| КонтЛицоЗагружатьВ1СДП = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "КонтактныеЛицаПартнеров", "ЗагружатьВ1СДП"); |
Скрытый текст |
|---|
| Если КонтрагентЗагружатьВ1С ИЛИ КонтЛицоЗагружатьВ1С Тогда |
Скрытый текст |
|---|
| Результат.Добавить(События.ДобавлениеКонтакта); |
Скрытый текст |
|---|
| Если КонтрагентОбновлятьВ1С ИЛИ КонтЛицоОбновлятьВ1С Тогда |
Скрытый текст |
|---|
| Результат.Добавить(События.ОбновлениеКонтакта); |
|
И проблема в следующем, если в настройках синхронизации включены галки синхронизации контактов, то подписка на оффлайн события отправляются, если синхронизация контактов выключена, то падает ошибка выше
Это происходит по той причине, что в условии для ТипКонфигурации = БП вы забыли объявить переменную КонтЛицоОбновлятьВ1С
И поэтому при выключенных галка у вас фоновое задание падало в этой части кода, т.к переменная не объявлена и там выдает Неопределено:
Скрытый текст |
|---|
Скрытый текст |
|---|
| Если КонтрагентОбновлятьВ1С ИЛИ КонтЛицоОбновлятьВ1С Тогда |
Скрытый текст |
|---|
| Результат.Добавить(События.ОбновлениеКонтакта); | |
Объявил переменную и все заработало:
Скрытый текст |
|---|
Скрытый текст |
|---|
| Если ТипКонфигурации = "БП" или ТипКонфигурации = "ЗУП" Тогда |
Скрытый текст |
|---|
| КонтрагентЗагружатьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Контрагенты", "ЗагружатьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтЛицоЗагружатьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "КонтактныеЛица", "ЗагружатьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтрагентОбновлятьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Контрагенты", "ОбновлятьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтЛицоОбновлятьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "КонтактныеЛица", "ОбновлятьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтрагентЗагружатьВ1СДП = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Контрагенты", "ЗагружатьВ1СДП"); |
Скрытый текст |
|---|
| КонтЛицоЗагружатьВ1СДП = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "КонтактныеЛица", "ЗагружатьВ1СДП"); |
Скрытый текст |
|---|
| ИначеЕсли ТипКонфигурации = "УТ" Тогда |
Скрытый текст |
|---|
| КонтрагентЗагружатьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Партнеры", "ЗагружатьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтЛицоЗагружатьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "КонтактныеЛицаПартнеров", "ЗагружатьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтрагентОбновлятьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Партнеры", "ОбновлятьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтЛицоОбновлятьВ1С = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "КонтактныеЛицаПартнеров", "ОбновлятьВ1С") = Истина; |
Скрытый текст |
|---|
| КонтрагентЗагружатьВ1СДП = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "Партнеры", "ЗагружатьВ1СДП"); |
Скрытый текст |
|---|
| КонтЛицоЗагружатьВ1СДП = Б24_КС_ОбщегоНазначенияВызовСервераПовтИсп.НастройкиСущностей(НастройкаПодключения, "Контакт", "КонтактныеЛицаПартнеров", "ЗагружатьВ1СДП"); | |
Сделаете новый релиз с правкой?