Новая подстава от 1С-трекера: контрагентов-индивидуальных предпринимателей он выгружает некорректно - они попадают в Контакты, а должны - в Компании. (Воспроизводится во всех версиях 1С-трекера, включая текущую
2.2.)Ок, про этот случай, хоть и с натяжкой, но можно было бы сказать, что он частный и не всегда восстребованый, если бы не одно: если у этого ИП есть сотрудники и мы указываем их в УТ в качестве контактных лиц, то 1С-трекер при выгрузке упадет с ошибкой вида:
Ошибки: Batch row 0:Company not found. Field COMPANY_ORIGIN_ID - \u0027ad9987ac-00ea-11e8-96f6-70e28412689c\u0027 is invalid
При этом не выгрузится ни текущий пакет, ни последующие. Из текста ошибки рядовой пользователь ничего понять не сможет (вообще, с обработкой ошибок в 1С-трекере беда: если с точки зрения Б24 данные невалидны, например, пользователь ввел некорректный email, то не будет загружен весь пакет и сообщение об ошибке не блещет понятностью; логично делать валидацию на стороне 1С, но нет, почему-то не сделали).
Причина ошибки вот в чем. В УТ11 в справочнике Контрагенты есть два одинаковых по смыслу реквизита:
ЮрФизЛицо (тип ПеречислениеСсылка.ЮрФизЛицо) и ЮридическоеФизическоеЛицо (ПеречислениеСсылка.ЮридическоеФизическоеЛицо). Такая ситуация, честно говоря, выглядит нелепо, но она объяснимая: второй реквизит - служебный, в конфигурации присутствует для совместимости с Библиотекой типов и никак явно в УТ не используется (заполняется автоматически по данным реквзита ЮрФизЛицо). У ЮрФизЛица диапазон значений больше, и когда ЮрФизЛицо = ИндивидуальныйПредприниматель, то реквизит ЮридическоеФизическоеЛицо становится равным ФизическоеЛицо (т.к. там всего два допустимых значений - ФизическоеЛицо и ЮридическоеЛицо).В 1С-трекере отбор контрагентов, которых надо выгрузить в качестве Контактов осуществляется как раз по реквизиту ЮридическоеФизическоеЛицо, в результате сам контрагент выгружается в Контакты, а не в Компании. В то же время его контактные лица выгружаются в Б24 в Контакты с указанием ссылки на компанию-владельца (тот самый
COMPANY_ORIGIN_ID в сообщении с ошибкой), а компании с такой ссылкой в Б24 не существует.Для решения проблемы нужно в СКД
СхемаВыгрузкиКомпаний в запросе изменить условие запроса с Контрагенты.ЮридическоеФизическоеЛицо = ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо)на
Контрагенты.ЮрФизЛицо <> ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)