Почему такое может происходить?
При этом все типы покупателей ЮЛ / ИП / Физ. лица выгружаются в Б24 из 1С, как компании (не контакты).
Telegram:
WhatsApp:
Эл. почта: sale@abm-it.ru
--
Сайт:
ВК:
Дзен:
|
Роман Бузин, добрый день! Такой вопрос, синхронизируется 1С УНФ с Б24, при синхронизации контактов с пользовательскими полями почем-то в контакты Б24 из 1С выгружаются пользовательские поля не только контактов, но и компаний.
Почему такое может происходить? При этом все типы покупателей ЮЛ / ИП / Физ. лица выгружаются в Б24 из 1С, как компании (не контакты).
Директор и руководитель проектов в «АБМ» ИТ-интегратор
Telegram: WhatsApp: Эл. почта: sale@abm-it.ru -- Сайт: ВК: Дзен: |
|
|
|
|
Похоже что все типы источников компаний/контактов настроены как компании. Нужно смотреть настройку настройкой "Источники компаний/контактов от типов контрагентов". Различие «физлицо = контакт» задаётся только через настройкой "Источники компаний/контактов от типов контрагентов". Если настройка не корректная (всё = «Компания»), то: 1. физлица + ЮЛ + ИП уходят как компании; 2. в контактную выгрузку подмешиваются пользовательские поля контрагентов-компаний → UF компаний в контактах. |
|||
|
|
|
|
|||||||||||
|
|
|
Это ведь единственная верная настройка, т.к. в Б24 в компаниях тип реквизита: Физ. лицо — именно туда и должны выгружаться физ. лица из 1С. А контакты из 1С уже должны выгружаться в контакты Б24. Почему в этой единственно верной схеме* в контакты выгружаются поля компаний? *Именно эта схема используется при реализации проекта Интернет-магазина + CRM на коробочном Б24, других вариантов там нет. Опять же при использовании системы лояльности, бонусы должны прописываться именно к компании (контрагенту), а не к контакту. Всё-таки как отключить передачу полей из компаний в контакты? Может есть какой-то хитрый код для поле своего алгоритма для контактов? Или хитрая настройка?
Директор и руководитель проектов в «АБМ» ИТ-интегратор
Telegram: WhatsApp: Эл. почта: sale@abm-it.ru -- Сайт: ВК: Дзен: |
|||
|
|
|
Решили на стороне коробочного Б24 обработчиком через удаление пробелов из числовых значений — это явно баг, а не фича. Ещё вопрос, как можно на стороне коробочного Б24 запускать обработчик на API не через агента, а в момент окончания синхронизации Коннектора?
Директор и руководитель проектов в «АБМ» ИТ-интегратор
Telegram: WhatsApp: Эл. почта: sale@abm-it.ru -- Сайт: ВК: Дзен: |
|||||||||||||||
|
|
|
|
|||
|
|
|
|
Добрый день!
Настроена синхронизация 1С УТ и Битрикс24 через штатный коннектор. Складской учет отключен. Первый вопрос. Непонятно как работает предопределенный алгоритм "Склад" в заказе клиента при синхронизации? Есть значение склада в типовом соглашении. При изменении на стороне 1С пользователем склада в заказе, и последующем изменении данных в сделке на стороне Б24 (например, в таймлайне появляется телефонный звонок), склад опять меняется на предыдущее значение. Второй вопрос, как подставляется банковский счет организации. В УТ несколько счетов. При создании Заказа в 1С из Сделки Б24 при синхронизации и последующей попытке его перепровести, пишет ошибку "Банковский счет не указан". Решается перевыбором организации. Как работает этот предопределенный алгоритм "Банковский счет компании" Спасибо! |
|
|
|
|
По складу: обновление сделки в Битрикс24 (в т.ч. добавление активности в таймлайн) перезаписывает Заказ клиента целиком, восстанавливая склад из соглашения — ручное значение на стороне 1С сбрасывается. Поле «Склад» заполняется так:
Что делать: в настройке синхронизации по сущности «Сделка/Заказ» поменять заполнение реквизита «Склад» с предопределённого алгоритма на «Свой алгоритм» (или, если нужен склад строго из соглашения, закрепить в своём алгоритме правило «не трогать склад, если он уже заполнен в 1С»). Это делается 1С-программистом в расширении. По банковскому счёту: заказ из сделки заполняется основным счётом организации; ошибка возникает из-за того, что основной счёт не выделен однозначно / не настроен маппинг счетов.Предопределённый алгоритм «Банковский счет» для УТ: коннектор сам счёт не выбирает — он просто просит типовой механизм УТ «дай основной счёт по умолчанию».
|
|||
|
|
|
По банковскому счету, в УТ нет основного счета по умолчанию как настраиваемой опции, поэтому, видимо, и есть проблема. Мне как раз интересно, как в этом случае работает предопределенный алгоритм. Потому что ошибка возникает не с каждым заказом. |
|||||
|
|
|
|
|||||||
|
|
|
Счёт подберётся, если подходящих под организацию+валюту+направление ровно один, либо у организации заполнен «Основной банковский счет». Счёт не подберётся (→ пусто → при проведении «Банковский счет не указан»), когда подходящих счетов несколько и основной не задан, либо форма оплаты/направление отсекает все счета.
При обмене коннектор читает существующий «Заказ клиента», заново заполняет его по алгоритму и перезаписывает. Если в этот момент пользователь 1С открыл тот же заказ и набивает товары — возникает конфликт: либо платформа выдаёт «объект изменён», либо коннектор своей записью перезатирает то, что пользователь ещё не сохранил. Это встроенное поведение штатного коннектора. Бороться можно несколькими способами: А. Настройками коннектора (без доработок):В настройках синхронизации сделок/заказов включить «не обновлять» для уже существующих заказов, Б. Организационно/процессно. Не давать пользователям 1С править заказы, которые синхронизируются с Битрикс24, «вживую» в моменты активного обмена — либо согласовать, что «владельцем» заказа является портал, а правки в 1С делаются в те периоды, когда обмен приостановлен. В. Доработать модуль. Над проверкой «объект изменён» мы тоже думаем, может в дальнейшем оптимизируем этот процесс, пока думаем как лучше. |
|||||
|
|
|
Спасибо за развернутый ответ! Подскажите пожалуйста. Верным решением ли будет в этом случае. Поставить "н.з." на некоторых стадиях для запрета обмена в окне сопоставления статусов? Или же второй вариант. Не синхронизировать сделку в сторону 1С, поставив в отборе значение какого-нибудь поля (тригера), который будет отбрасывать на время эту сделку при обмене пока это значение присвоено? И как в этом случае произойдет объединение данных после снятия этого запретного флага, если что-то будет изменено на обеих сторонах? |
|||||
|
|
|
|
|||
|
|
|
В итоге вариант с не обновлением заказа из сделки Б24 подходит, но Заказ в 1С создается только в том случае, если на первой стадии не стоит "н.з.")) |
|||||
|
|
|
Разобрал ваш феномен — подозрение верное: дело именно в незавершённой двусторонней связке, и причинный механизм такой. По связке заказа и «http-ссылки Дела в таймлайне каждый раз заново». Связка «сделка ↔ заказ» держится на идентификаторе: в заказ 1С пишется внешний код сделки, а в сделку — ссылка на заказ (Дело). Кнопка «создать заказ в сделке» (интеграция сервисов) создаёт заказ в 1С напрямую, минуя обмен по стадиям — поэтому заказ появляется даже при «н.з.». Но поскольку для этой сделки обмен по стадиям у вас запрещён, обратная часть привязки (запись ID заказа в сделку и постановка заказа к обратной выгрузке из 1С) не завершается. Отсюда два симптома, которые вы видите:
Чтобы двусторонняя связка была полноценной, сделку нужно один раз прогнать штатным обменом без «н.з.» на её текущей стадии — тогда связка зафиксируется и дальше обновления пойдут штатно. Либо, если ручное создание принципиально, оформить так, чтобы на стадиях, где заказ уже создан, «н.з.» не стояло (только «не обновлять» для существующих), иначе обратная выгрузка закрыта. По парадоксу «не обновлять + н.з. на 1-й стадии → заказ не создаётся». Это не ошибка, а особенности трактовки: «н.з.» на стадии означает не только «не обновлять», но и «не создавать» заказ для сделок этой стадии. Поэтому, чтобы заказ создавался на 1-й стадии, на ней «н.з.» ставить нельзя. А защиту от перезаписи уже существующих заказов даёт отдельная настройка «не обновлять для существующих заказов» — она с созданием на 1-й стадии не конфликтует. Итого по вашим трём инструментам:
Под каждую задачу лучше подходит свой инструмент, и «н.з.» на 1-й стадии одновременно с целью «создавать заказ на 1-й стадии» несовместим — их нужно развести. |
|||||||
|
|
|
|
||||
|
|
|
|||