← Назад к вопросам
Обмен между УТ и БП с нестандартными объектами
2.7 Senior🔥 81 комментариев
#Интеграции и обмены#Конфигурации и типовые#Стандарты разработки
Условие
Настройте обмен данными между конфигурациями "Управление торговлей" (УТ) и "Бухгалтерия предприятия" (БП) с учётом нестандартных доработок.
Требования:
- Синхронизация справочника контрагентов с дополнительными реквизитами
- Передача документов реализации с нетиповыми табличными частями
- Обработка конфликтов при двунаправленном обмене
- Логирование ошибок обмена
Задание
Опишите:
- Какие правила конвертации нужно создать
- Как обрабатывать нестандартные реквизиты
- Стратегию разрешения конфликтов
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Обмен между УТ и БП с нестандартными объектами
1. Правила конвертации
Создайте следующие таблицы:
а) Справочник отображений объектов (Справочник.ОтображениеУтБп):
- УтОбъект (Ссылка на объект УТ)
- БпОбъект (Ссылка на объект БП)
- ХешДанных (для обнаружения изменений)
- ВремяСинхронизации
б) Регистр ошибок обмена:
- Дата
- ТипОшибки
- Описание
- Исток (УТ/БП)
- Получатель
- Разрешено
2. Обработка нестандартных реквизитов
Процедура ОбработатьКонтрагента(УтК, БпК)
БпК.Наименование = УтК.Наименование;
БпК.ИНН = УтК.ИНН;
// Дополнительные реквизиты
Если НайтиДопРеквизит("ЛимитКредита") <> Неопределено Тогда
НовойРеквизит = БпК.ДополнительныеРеквизиты.Добавить();
НовойРеквизит.Свойство = НайтиДопРеквизит("ЛимитКредита");
НовойРеквизит.Значение = УтК.ЛимитКредита;
КонецЕсли;
БпК.Записать();
КонецПроцедуры
Процедура ОбработатьРеализацию(УтД, БпД)
БпД.Партнер = НайтиЭквивалент(УтД.Контрагент);
БпД.Товары.Очистить();
Для каждого СтрокаУт Из УтД.ТоварыУслуги Цикл
СтрокаБп = БпД.Товары.Добавить();
СтрокаБп.Номенклатура = НайтиЭквивалент(СтрокаУт.Номенклатура);
СтрокаБп.Количество = СтрокаУт.Количество;
СтрокаБп.Цена = СтрокаУт.Цена;
// Нестандартные данные
Если БпД.Товары.Колонки.Найти("КомиссияПроцент") <> Неопределено Тогда
СтрокаБп.КомиссияПроцент = СтрокаУт.КомиссияПроцент;
КонецЕсли;
КонецЦикла;
БпД.Записать();
КонецПроцедуры
3. Стратегия разрешения конфликтов
Трёхуровневый подход:
- Автоматическое разрешение — по приоритету (УТ > БП)
- Хеш-сравнение — если хеши совпадают, данные синхронны
- Ручное разрешение — критичные конфликты требуют одобрения
Процедура ОбработатьКонфликт(УтДн, БпДн, Стратегия)
Выбор Стратегия
Случай "УтПриоритет"
БпДн = УтДн;
Случай "БпПриоритет"
УтДн = БпДн;
Случай "ПоследнийВыигрывает"
Если УтДн.ОтметкаВремени > БпДн.ОтметкаВремени Тогда
БпДн = УтДн;
Иначе
УтДн = БпДн;
КонецЕсли;
Случай "МанипуляцияПользователя"
ЗаписатьКонфликт(УтДн, БпДн);
КонецВыбора;
КонецПроцедуры
Логирование ошибок
Все ошибки должны логироваться в регистр сведений с информацией об исходе и способе разрешения.