Здравствуйте!
Сообщаю о двух ошибках в коннекторе «Битрикс24 — 1С:УНФ» при загрузке Счетов (версия счетов v.2). Первая — новая, появилась после последнего обновления коннектора и полностью блокирует загрузку счетов. Вторая — ранее уже сообщённая, в текущем релизе не исправлена.
Окружение:
— конфигурация: 1С:Управление нашей фирмой, редакция 3.0, релиз 3.0.14.159;
— версия коннектора: 5.0.0.14;
— платформа: 8.5.1.1150.
[B]ОШИБКА 1 (критическая): в УНФ не загружается ни один Счёт v.2[/B]
[B]Симптомы[/B]:
После обновления коннектора Счета из Битрикс24 перестали загружаться в 1С полностью. Сделки и Контакты синхронизируются нормально. В логе синхронизации по Счетам только две строки:
— Начало обработки данных в 1С, пришедших с портала с типом: Счета
— Завершена обработка данных в 1С, пришедших с портала с типом: Счета
Ни сообщений «Проведен документ», ни ошибок нет. Документы «Счёт на оплату» в 1С не создаются и не обновляются.
[B]Диагностика[/B]:
Мы добавили временную запись в журнал регистрации по цепочке ОбработатьДанныеСПортала → ДанныеПоСчетам → Б24_КС_ЗагрузкаСервер.ЗагрузитьОбновитьСчета2. Результат: изменения с портала приходят (мДанных = 4), функция ДанныеПоСчетам получает по всем счетам шапку (crm.item.get) и товары (crm.item.productrow.list: 4, 2 и 4 строки) и возвращает 3 счёта. То есть данные с портала в 1С поступают полностью, а теряются внутри ЗагрузитьОбновитьСчета2.
[B]Локализация[/B]:
Общий модуль Б24_КС_ЗагрузкаСервер, функция ЗагрузитьОбновитьСчета2, начало функции:
ТипКонфигурации = Б24_К_ОбщегоНазначенияВызовСервера.ПолучитьТипКонфигурации();
Если НЕ ТипКонфигурации = "БП" Тогда
Возврат Результат;
КонецЕсли;
[B]Причина[/B]:
Условие завершает функцию с пустым результатом для любой конфигурации, кроме «БП». В УНФ функция выходит до обработки первого счёта, без записи в лог. При этом весь остальной код функции рассчитан именно на УНФ (Документы["СчетНаОплату"], НалогиУНФ.НалогообложениеНДС, НоменклатураДоставки, ТЧ Запасы). По всей видимости, условие инвертировано по ошибке.
Временное исправление на нашей стороне:
Если ТипКонфигурации = "БП" Тогда
Возврат Результат;
КонецЕсли;
После исправления Счета v.2 в УНФ загружаются и проводятся корректно.
[B]ОШИБКА 2 (повторно): при пакетной синхронизации теряется один Счёт[/B]
[B]Симптомы[/B]:
При одновременном изменении в Битрикс24 нескольких Счетов один из них (как правило, первый по времени изменения) не загружается в 1С. Повторная синхронизация без изменений его не подхватывает. Если изменить этот Счёт отдельно, он загружается без проблем — проблема именно в пакетной обработке.
[B]Локализация[/B]:
Функция ДанныеПоСчетам, третий цикл (по ДополнительныеДанные):
Для каждого ТекЭлемент Из ДополнительныеДанные Цикл
ИдЭлемента = Формат(ТекЭлемент.Ключ, "ЧГ=0");
...
ЗначениеПоИд = ОписаниеСделкиПоИд(ДополнительныеДанные, ИдЭлемента);
...
ДополнительныеДанные.Вставить(Ид, ЗначениеПоИд); // ← ошибка
КонецЦикла;
[B]Причина[/B]:
В строке вставки используется переменная Ид, оставшаяся от предыдущего цикла обработки ответа batch, вместо ИдЭлемента. В результате данные с товарами всех счетов пакета последовательно записываются под одним и тем же ключом и перетирают друг друга. Счёт, оставшийся без товаров, затем пропускается при загрузке.
[B]Исправление[/B]:
ДополнительныеДанные.Вставить(ИдЭлемента, ЗначениеПоИд);
Эту ошибку мы сообщали ранее. После обновления коннектора наша правка была перезаписана, а в новом релизе исправление не вошло.
Просьба:
1. Исправить обе ошибки в ближайшем обновлении коннектора.
2. Сообщить номер релиза, в который войдут исправления: до его выхода мы будем вручную переносить правки после каждого обновления.
Готовы предоставить дополнительные данные (логи синхронизации, записи журнала регистрации) при необходимости.
С уважением,
Андрей Сараин
Сообщаю о двух ошибках в коннекторе «Битрикс24 — 1С:УНФ» при загрузке Счетов (версия счетов v.2). Первая — новая, появилась после последнего обновления коннектора и полностью блокирует загрузку счетов. Вторая — ранее уже сообщённая, в текущем релизе не исправлена.
Окружение:
— конфигурация: 1С:Управление нашей фирмой, редакция 3.0, релиз 3.0.14.159;
— версия коннектора: 5.0.0.14;
— платформа: 8.5.1.1150.
[B]ОШИБКА 1 (критическая): в УНФ не загружается ни один Счёт v.2[/B]
[B]Симптомы[/B]:
После обновления коннектора Счета из Битрикс24 перестали загружаться в 1С полностью. Сделки и Контакты синхронизируются нормально. В логе синхронизации по Счетам только две строки:
— Начало обработки данных в 1С, пришедших с портала с типом: Счета
— Завершена обработка данных в 1С, пришедших с портала с типом: Счета
Ни сообщений «Проведен документ», ни ошибок нет. Документы «Счёт на оплату» в 1С не создаются и не обновляются.
[B]Диагностика[/B]:
Мы добавили временную запись в журнал регистрации по цепочке ОбработатьДанныеСПортала → ДанныеПоСчетам → Б24_КС_ЗагрузкаСервер.ЗагрузитьОбновитьСчета2. Результат: изменения с портала приходят (мДанных = 4), функция ДанныеПоСчетам получает по всем счетам шапку (crm.item.get) и товары (crm.item.productrow.list: 4, 2 и 4 строки) и возвращает 3 счёта. То есть данные с портала в 1С поступают полностью, а теряются внутри ЗагрузитьОбновитьСчета2.
[B]Локализация[/B]:
Общий модуль Б24_КС_ЗагрузкаСервер, функция ЗагрузитьОбновитьСчета2, начало функции:
ТипКонфигурации = Б24_К_ОбщегоНазначенияВызовСервера.ПолучитьТипКонфигурации();
Если НЕ ТипКонфигурации = "БП" Тогда
Возврат Результат;
КонецЕсли;
[B]Причина[/B]:
Условие завершает функцию с пустым результатом для любой конфигурации, кроме «БП». В УНФ функция выходит до обработки первого счёта, без записи в лог. При этом весь остальной код функции рассчитан именно на УНФ (Документы["СчетНаОплату"], НалогиУНФ.НалогообложениеНДС, НоменклатураДоставки, ТЧ Запасы). По всей видимости, условие инвертировано по ошибке.
Временное исправление на нашей стороне:
Если ТипКонфигурации = "БП" Тогда
Возврат Результат;
КонецЕсли;
После исправления Счета v.2 в УНФ загружаются и проводятся корректно.
[B]ОШИБКА 2 (повторно): при пакетной синхронизации теряется один Счёт[/B]
[B]Симптомы[/B]:
При одновременном изменении в Битрикс24 нескольких Счетов один из них (как правило, первый по времени изменения) не загружается в 1С. Повторная синхронизация без изменений его не подхватывает. Если изменить этот Счёт отдельно, он загружается без проблем — проблема именно в пакетной обработке.
[B]Локализация[/B]:
Функция ДанныеПоСчетам, третий цикл (по ДополнительныеДанные):
Для каждого ТекЭлемент Из ДополнительныеДанные Цикл
ИдЭлемента = Формат(ТекЭлемент.Ключ, "ЧГ=0");
...
ЗначениеПоИд = ОписаниеСделкиПоИд(ДополнительныеДанные, ИдЭлемента);
...
ДополнительныеДанные.Вставить(Ид, ЗначениеПоИд); // ← ошибка
КонецЦикла;
[B]Причина[/B]:
В строке вставки используется переменная Ид, оставшаяся от предыдущего цикла обработки ответа batch, вместо ИдЭлемента. В результате данные с товарами всех счетов пакета последовательно записываются под одним и тем же ключом и перетирают друг друга. Счёт, оставшийся без товаров, затем пропускается при загрузке.
[B]Исправление[/B]:
ДополнительныеДанные.Вставить(ИдЭлемента, ЗначениеПоИд);
Эту ошибку мы сообщали ранее. После обновления коннектора наша правка была перезаписана, а в новом релизе исправление не вошло.
Просьба:
1. Исправить обе ошибки в ближайшем обновлении коннектора.
2. Сообщить номер релиза, в который войдут исправления: до его выхода мы будем вручную переносить правки после каждого обновления.
Готовы предоставить дополнительные данные (логи синхронизации, записи журнала регистрации) при необходимости.
С уважением,
Андрей Сараин