Страница 50
Модуль 1. Разработка
правил конвертации
  Глава 3. Конвертация иерархических и подчиненных справочников
    Здесь же мы познакомимся с обработчиками событий
    Изменение вида иерархии
      Справочник Подразделения
        В исходной
          Иерархия элементов
        В конечной
          Иерархия групп и элементов
          Очищаем данные в конечной, меняем вид иерархии
          Загружаем новые метаданные
      1-ый сценарий
        Перенос "в лоб"
          Неожиданное поведение платформы
          Тоже самое, что было с переносом групп в иерархических справочниках
      2-ой сценарий
        Упрощение задачи
          Этот прием часто используют
            Особенно актуально для разовых переносов
          Допустим, что групповые элементы в данных не используются
            В документах, элементах справочников
          При этом все группы находится на верхнем уровне
        Создание ПКС для ЭтоГруппа
          Создание обработчика ПередВыгрузкой
            1. Перенести все подразделения в группы
            2. Элементы корня перенести в группы
            3. Нужно ли делать универсальное решение?
              Это очень опасно
              Запрос в цикле
          Сделать синхронизацию по этому полю
          Показать справку по обработчикам
        Удаление данных на стороне Конечной конфигурации
        Совет - возможность просмотра
алгоритма непосредственно в форме списка
      3-ий сценарий
        Что делать, если все элементы используются?
          Встречаются в документах, справочниках
          Указание групп - это не стандартное поведение для типовых решений
          Решение
            Переносить все в элементы
        Перенести все в элементы
          Отключить ПКО ЭтоГруппа и Родитель
        Проверка
          Создать в конечной ИБ группы в подразделении
          Перенести туда некоторые подразделения
          В исходной ИБ изменить параметры подразделения
          Выполнить перенос
    Независимый - > Подчиненный
      Задача
        Исходная
          Контрагенты - Контактные лица
          Нет подчинения
          Для контрагента указывается контактное лицо
        Конечная
          Контрагенты - Контактные лица
          Настроено подчинение
        Схема
      Настройка ПКО для Контактных лиц
        ПВД нельзя делать для этого ПКО
        Настройка Владельца
          Обработчик ПКС ПередВыгрузкой
            Входящие данные
      Настройка ПКО для Контрагентов
        Синхронизация свойств
          Если первым создавать ПКО для контрагентов
          Система автоматом создаст ПКО для всех ссылочных данных
          Благодаря флагу "Рекурсивно создавать правила конвертации"
          Но если идти по принципу "Подчиненный - Главный",
то система не будет генерировать новые правила
        Настройка ПКС Контрактные лица
          Обработчик ПередВыгрузкой
          Передать ИсходящиеДанные
      Создать ПВД
        Только для контрагентов!
        Если поставить для контактных лиц - будут проблемы
      Схема выгрузки
        Начиная от ПВД Контрагентов
          Запоминаются Исходящие данные
          Получаются ВходящиеДанные
          При этом данные не передаются в последующие ПКО
      Разбор ошибок
        Почему контактное лицо не задублировалось?
          Если оно было выбрано в двух контрагентах
        1. Отключить синхронизацию по УУИД
          Сделать синхронизацию по реквизитам
            Владелец + Код
          Обратить внимание не визуальное предоставление
            "Лупа"
            "Минус"
          Синхронизация по произвольным реквизитам
            Проблема - поиск по неиндексируемым полям
            Нужно настраивать индексы
        2. Не запоминать выгруженные объекты
          Оптимизационный механизм
          Схема
        3. Более правильно решение
          Рассмотрим в следующей главе
      Попробовать сделать ПВД для Контактных лиц
        Схема
        Можно изменить наименование ПКО
          ...НужныВходящиеДанные
        Отключить ПВД для контактных лиц
    Проблема циклических ссылок
      Задача
        Исходная
          Номенклатура, реквизит Единица измерения
          Справочник Единиц измерения подчинен Номенклатуре
          Документ, реквизиты - Номенклатура, Единица измерения
        Конечная
          Аналогичная структура
        Проблема
          Не будет заполняться единица измерения для номенклатуры, если такое же значение указано в документе
          Это возникает из-за кэширования выгруженных данных
          Данные которые уже были выгружены повторно не выгружаются
          Показать xml файл с данными
      Варианты решения
        1. Сделать выгрузку Номенклатуры раньше в ПКО документа
          Важен порядок ПКС
        2. Не запоминать выгруженные объекты
          Это самое простое и самое худшее решение
        3. Сделать ПВД для Единиц измерения
        4. Создать еще одно ПКО для Единиц измерения
          Указать его при выгрузке реквизита Единица в ПКО Номенклатура
    Домашнее задание 1.3
      Из Фамилии Имени и Отчества
собрать Фамилия и инициалы
      Доп. задача
        В комментарий записать доп. текст - "Загружено из внешней базы"