Занятие № 03. Курс «1С:Конвертация данных 2.1 – Профессиональная настройка правил обмена и типовые сценарии переноса данных»

Синхронизация объектов

Изучите теорию модуля № 1:

  • Глава 4. Синхронизация данных

Выполните практические задания:

Отчеты по домашним заданиям размещайте по ссылкам, указанным выше. Отчеты, опубликованные на этой странице, удаляются без предупреждения.

Ваши вопросы по материалам данного занятия задавайте в комментарии ниже.
Общие вопросы по курсу, не связанные с конкретным занятием, задавайте на странице: http://kursy-po-1c.ru/data-conv/all-hw/convdata-common-qa/

К сожалению, у Вас недостаточно прав для дальнейшего просмотра.

Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.

Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.

Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.

Комментарии / обсуждение (334):

  1. Надежда

    Добрый день! Зациклило меня на начале видео 1.4.8. Ну никак не укладывается у меня в голове, каким образом происходит синхронизация в случае, если есть флаги поиска и текст в обработчике «Поля поиска». Мои мысли:
    1. Если есть галка поиска по UUID, то сначала ищем по нему
    2. Далее при включенной галке «продолжать поиск по полям поиска» и при выставленных галках в ПКС идет поиск по полям поиска.

    Еще я пришла к выводу, что если ПКС отключено, то оно вообще никак не влияет и значение его никуда не передается. В нашем примере в начальных правилах все-таки при отключении ПКС «Артикул» синхронизация идет сначала по UUID, а потом по КОДУ, благодаря чему диван не загрузился в базе, а «нашелся».

    Вопросы:
    1. Что обрабатывается сначала: поиск по полям с галками или обработчик «Поля поиска».
    2. Почему в нашем примере в случае новой номенклатуры без соответствия с каким-либо существующим элементом в Конечной базе при загрузке мне отладчик выдавал, что он заходит в наш обработчик «Поля поиска» 2 раза (оба раза были неудачны в плане поиска). Как сделать так, чтобы не делать повторных заходов в обработчик «Поля поиска»?

    • Ольга Кузнецова

      Посмотрите на этой странице Лучшие вопросы участников курса, вопрос № 11, схема вариантов поиска.
      1. Сначала выполняется обработчик поля поиска.
      2. После каждого неудачного поиска по полям счетчик НомерВариантаПоиска увеличивается на единицу, и снова выполняется алгоритм поля поиска. Если после выполнения этого алгоритма изменилась СтрокаИменСвойствПоиска, то опять будет выполняться поиск по полям, уже другим. А если не изменилась, то будет создаваться новый объект. Поэтому обработчик Поля поиска правильно повторно выполняется, не нужно мешать ему ))
      А чтобы, например, второй раз не выполнялся тот же неудачный запрос, можно внести его под условие
      Если НомерВариантаПоиска = 1 Тогда…

      • Надежда

        Ольга, спасибо. Схему посмотрела, хочу уточнить. Я правильно поняла, что если, например, у нас у 3 ПКС указаны флаги поиска: Код, наименование, Артикул. Тогда поиск будет идти так:
        1. НомерВариантаПоиска будет 1, СтрокаИменСвойствПоиска будет идти первое ПКС с галкой поиска ( нашем примере это «Код»). Сначала выполняется обработчик поля поиска. После неудачного поиска будет идти поиск СтрокаИменСвойствПоиска на которой мы так сказать стоим — в нашем примере это Код? Как мне кажется, поиск по Коду будет идти.
        2. Если поиск по Коду прошел неудачно, то счетчик НомерВариантаПоиска станет равным 2, СтрокаИменСвойствПоиска = «Наименование». Далее будет сначала выполняться обработчик поля поиска (второй раз, результат здесь предсказуем — неудачный, так как мы уже здесь 1 раз были). Если поиск будет неудачен, то будет идти поиск по «Наименованию»?
        3 Если поиск по наименованию пройдет неудачно, то счетчик НомерВариантаПоиска станет равным 3, СтрокаИменСвойствПоиска = «Артикул». Далее будет сначала выполняться обработчик поля поиска (третий раз и все неудачно). Если поиск будет неудачен, то будет идти поиск по «Артикул»?

        Мне как-то так это представляется. Подскажите, я правильно думаю или нет? Это вариант именно тогда, когда в коде обработчика «Поля поиска» для каждого НомерВариантаПоиска не указаны конкретно СтрокаИменСвойствПоиска.

        Ольга, подскажите, в каком момент и каким образом меняется СтрокаИменСвойствПоиска, если она не прописана конкретно в коде обработчика «Поля поиска»?

        • Ольга Кузнецова

          1. Нет, если просто расставить три флага поиска у ПКС, то будет поиск элемента по совокупности значений свойств. Т.е. программа будет искать такой элемент, у которого все три поля такие же, как у загружаемого.
          2. Если Обработчик Поля поиска совсем пустой, там нет ни одного символа, он не выполняется. Если там что-то есть, то он сначала выполнится в начале, перед поиском по полям, потом после поиска — еще раз. Если в нем нет кода, который изменяет параметр СтрокаИменСвойствПоиска, то вторая итерация поиска происходить не будет.
          СтрокаИменСвойствПоиска не изменяется программно, ее может изменить только разработчик правил в алгоритме Поля поиска.

          • Надежда

            Ольга, спасибо!!! То есть порядок работы моих (ну то есть правил из видео 1.4.8) правил ПравилаОбменаДанными_1_4_8.rar при загрузке номенклатуры следующий:
            1. сначала поиск по UUID
            2. затем в случае неудачно поиска выполняется обработчик «поля поиска». В виду того, что ПКС «Артикул» отключено, в обработчик значение артикла не передается и соответственно поиск выполняется неудачно
            3. далее идет поиск по полям — в нашем случае только по Коду, так как у Артикла стоит галка «отключить». Поиск по полям (коду) срабатывает на номенклатуре «Диван-кровать»
            4. если поиск по полям (коду) не удачен (как в случае с другой номенклатурой), то опять выполняется обработчик «поля поиска» (не удачно)
            5. так как обработчике «Поля поиска» нет кода, изменяющего параметрСтрокаИменСвойствПоиска, то поиск закончен
            Ольга, теперь я правильно написала алгоритм для конкретных правил?

  2. Надежда

    Добрый день! Вопрос по видео 1.4.8. «Синхронизация по внешним данным», время 08:40. Релиз конвертации 2.1.8.2. Лично у меня не получилось добиться нужного результата при переносе номенклатуры (сопоставление Диван-кровати в Конечной базе и дивана из Исходной базы) с указанными настройками ПКС «Артикул»: включение флагов «Поиск объекта при загрузке по свойству» и «Отключить обработку правил», так как в этом случае у меня в обработчик «Поля поиска» артикул просто не передавался совсем и сопоставления при загрузке не происходило. Мне помогло снятие флага «Отключить обработку правил» и включение флага «Не замещать значения свойства у существующих объектов в приемнике » у ПКС «Артикул». В результате у меня номенклатура перенеслась корректно. Подскажите, как же все-таки правильно???

    • Надежда

      Увидела одну закономерность: в Конечной базе в спр. «Номенклатура» есть предопределенный элемент «Прочие услуги» с кодом 000000100. При добавлении «Диван-кровати» код присваивается 000000101. И правила из видео не работают. Если изменить код диван-кровати на 000000001, то правила срабатывают. Мое мнение, что правила срабатывают по причине того, что в ПКС «код» стоит галка поиска объект при загрузке по свойству и соответствие идет именно по коду, а не по нужному регистру.
      Попробовала сделать так: код у диван-кровати установила 000000001 (как в соответствующем товаре из Исходной базы), отключила ПКС «Код», включила поиск, например, по наименованию (иначе не было включенных полей для поиска и загрузка не происходила), сделала выгрузку-загрузку правилами из видео — загрузка произошла некорректно, сопоставления диванов не произошло. Правила прилагаю.

      • Ольга Кузнецова

        Здравствуйте!
        Да, в Ваших правилах ПКС Артикул отключено, в этом случае поиск работать не будет. Нужно именно передавать артикул в параметр объекта

        • Надежда

          Ольга, в моих правилах ПКС Артикул отключено, так как это сделано Евгением в видео 1.4.8 на 08:40 минуте (я тестирую пока эти правила и как-то не совсем с ними согласна) и у него вроде как все загружается, но по моим соображениям у него идет синхронизация по коду (так как у ПКС Код указан флаг поиска), а не по указанному коду в обработкчике «Поля поиска». И все-таки, это ошибка в видео или конкретно я что-то делаю не так (а я все методично повторяю из видео)?

          • Ольга Кузнецова

            Не уверена, что это ошибка, возможно, особенность той версии, но текущая версия обработки точно так работать не будет. Параметры объекта созданы именно для этих целей

            • Надежда

              Может тогда все-таки внести изменения или дописать видео, чтобы не вводить в заблуждение людей, так как учимся и работаем мы на текущей версии КД, где с данными настройками как у ПКС Артикул поиск не работает нужным нам образом. Да и про параметры объекта в видео 1.4.8 нет ни слова. Кстати, особенности старой версии КД я тестовым методом исключила: я не поленилась, нашла КД версии 2.1.6.1 (эта версия устанавливается изначально в видео), создала в этой версии КД правила, сделала выгрузку-загрузку с помощью обработок версии 2.1.6.1 — «диван-кровать» с кодом 00000101 не нашел по нашему регистру, сделала код равным 00000001 — диваны сопоставились.

              • Ольга Кузнецова

                Модули будут обновляться, но конкретных дат назвать не могу пока

    • Надежда

      Еще один на мой взгляд минус предложенных в видео правил. Состояние правил, когда в ПКЛ «Артикул» сняли галку «Отключить обработку правил» и включили галку «Не замещать значения свойств у существующих». В ПКС «Код» не стоит галки «Не замещать значения свойств у существующих» и поэтому происходит замещение кода номенклатуры в Конечной базе, что на мой взгялд недопустимо, так как ведет к дублированию кодов в виду того, что согласно постановке задачи добавление товаров возможно как в Исходной, так и в Конечной базе. В связи с этим я считаю, что дальнейшее предложение в видео (было дописано в обработчике «Поля поиска») по поиску по коду тоже не приемлемо в данной ситуации, так как в Конечной базе может быть (да и в видео это есть) несколько элементов с одинаковым кодом, как обработка будет выбирать какой из этих нескольких элементов надо поставить?

      • Ольга Кузнецова

        Насчет синхронизации объектов — единственный корректный способ, который я знаю — это регистр сведений СоответствияОбъектовИнформационныхБаз, все остальные имеют ограничения и могут работать неправильно. Этот регистр есть во всех типовых решениях и в модуле БСП. Там хранятся идентификатор и тип данных объекта из другой базы и ссылка на объект этой базы. Для регулярных обменов данными лучше всего использовать этот регистр или его аналог.
        Если в справочнике несколько элементов с одинаковым кодом, а поиск производится по коду, то будет выбран какой-то из этих элементов. Какой, неизвестно.

        • Надежда

          Спасибо! Посмотрю регистр сведений СоответствияОбъектовИнформационныхБаз.

    • Ольга Кузнецова

      Для этих целей есть ПКС с видом «Передать в параметр». Можно создать такое ПКС для Артикула и отметить его флажком поиска. Тогда этот параметр будет доступен именно в обработчике Поля поиска в соответствии ПараметрыОбъекта

  3. Надежда

    Добрый день!
    Вопрос по видео 1.4.7 «Ключ выгружаемых данных». Повторяю все действия из видео. У меня возникла следующая ситуация: если правилами, получившимися после снятия галки «Не запоминать выгружаемые объекты» в ПКО «КонтактныеЛица_ТребуетсяПередачаВладельца» и указания ключа, выгрузить-загрузить документы «Контакт» в пустую Конечную базу, то у контрагента «Гамма ООО» в Конечной базе не будет заполнен реквизит «Основное контактное лицо» (справочник «Контактные лица» заполняется корректно). Если с помощью этих же правил выгрузить-загрузить в пустую Конечную базу просто справочник контрагентов, то реквизит «Основное контактное лицо» будет заполнен. Скажите, почему так получается и как получилось у Евгения, к сожалению в видео он не заходил в самого контрагента после загрузки? И как надо изменить правила, чтобы выгрузка-загрузка была корректна в любом случае? Свои правила прилагаю.

    • Ольга Кузнецова

      Здравствуйте!
      По всей вероятности, это вариант ошибки, связанной с циклическими ссылками. Попробуйте поменять местами ПКС Контрагент и Контактное лицо в документе, и все должно загрузиться корректно

      • Надежда

        Спасибо! Про поменять местами я как раз и забыла. Пересмотрю видео 1.4.7 еще раз — проверю какой порядок ПКС там.

        • Ольга Кузнецова

          Просто тема урока другая. Там на этом не фокусировались. Про циклические ссылки было в другом уроке

  4. AleksSF

    Здравствуйте.
    Почему ДЗ-1.3.1 и ДЗ-1.3.2 абсолютно одинаковые

    • Ольга Кузнецова

      Здравствуйте!
      Они не одинаковые, в 1.3.1 должен выполняться поиск по совокупности значений полей ИНН и Наименование, а в 1.3.2 должен выполняться поиск либо только по ИНН, либо только по наименованию, если ИНН пустой

  5. nikilin

    Смотрю типовые правила обмена УТ-БП, у многих ПКО в настройках указан только поиск по уникальному идентификатору, при этом еще стоят флажки поиска у некоторых ПКС(обработчик «Поля поиска» пустой), у документов это «Номер», «Дата». Не понятно зачем ставятся эти флажки, если по ним не происходит поиск. При on-line обмене эти поля поиска выгружаются всегда вместе с ссылкой зачем-то?

    • Ольга Кузнецова

      Здравствуйте!
      Я точно не знаю, зачем разработчики правил так установили флажки, возможно, правила работали бы и без этого. Но и эти флажки не мешают их работе.

  6. radian

    Добрый день!
    Есть абстрактная задача синхронизации данных произвольного источника со справочником, имеющим предопределенные значения.
    Для предопределенных элементов справочника перенос работает корректно, т.к. Источник содержит текстовую строку — имя предопределенного объекта. Какие варианты доработки правил я могу произвести, чтобы перенос работал и для непредопределенных элементов справочника с поиском по наименованию. Вижу два варианта:
    1. Использовать обработчик поля поиска, но как в таком случае использовать имя предопределенного?
    2. Добавить ПКС для Наименования, создать правило конвертации, указать флаг поиска по наименованию, но как тогда указать, что сначала поиск осуществляется по имени предопределенного элемента, а уже потом по наименованию, если объект не найден?
    Подскажите, пожалуйста алгоритм настройки правил в такой ситуации.
    Заранее спасибо.

    • Ольга Кузнецова

      Здравствуйте!
      Лучше всего настроить полноценное ПКО, создать ПКС для Наименования, установить поиск по нему. Если Вы при выгрузке знаете, что это должен быть именно предопределенный элемент, то его имя можно передать через параметр объекта (ПКС с видом «передча в параметр», с включенным флагом поиска).
      А в обработчике Поля поиска нужно вручную найти элемент по этому имени:
      Если ТипЗнч(ПараметрыОбъекта) = Тип(«Соответствие») Тогда
      СсылкаНаОбъект = Справочники.ИмяСправочника[ПараметрыОбъекта[«Предопределенный»]];
      ПрекратитьПоиск = Истина;
      КонецЕсли;

  7. arhimed1966

    К вопросу синхронизации строки в составной тип(строка+перечисление).
    В обработчике перед выгрузкой ПКС ПричинаУвольнения делаю что-то не так,т.к. в результате загрузки получаю строку «ЗаПрогул», а не перечисление. Подскажите, где собака порылась. Спасибо. Вот текст обработчика:
    Если Найти(Источник.ПричинаУвольнения,»собствен»)>0 Тогда
    Значение = «ПоСобственномуЖеланию»;
    ТипПриемника = «ПеречислениеСсылка.ПричиныУвольнения»;
    ИначеЕсли Найти(Источник.ПричинаУвольнения,»прогул»)>0 Тогда
    Значение = «ЗаПрогул»;
    ТипПриемника = «ПеречислениеСсылка.ПричиныУвольнения»;
    Сообщить(«»+Значение ); // сообщение вижу
    КонецЕсли;

    • Ольга Кузнецова

      Здравствуйте!
      Видимо, в обработке Универсальный обмен на закладке “Дополнительные настройки” включен флажок “Использовать оптимизированный формат”.
      Об этом рассказано в видео-уроке 2.5.1
      Отключите этот флажок, и все должно получиться

  8. Ruslan Abiev

    Доброго времени суток!
    Подскажите пожалуйста, как можно оптимизировать, точнее избавиться от запроса в цикле, в случае «Синхронизации по внешним данным»? Урок 1.4.8.

    • Ольга Кузнецова

      Здравствуйте!
      Если очень сильно тормозит загрузка, то можно несколько оптимизировать этот момент. Но схема будет сложная, и увеличится файл с данными. Для этого нужно будет выбрать запросом артикулы всех выгружаемых товаров и вручную записать их в файл с данными до выгрузки самих товаров, в начале файла. Потом перед загрузкой эти артикулы получить, выполнить запрос, сформировать таблицу соответствия, записать ее в параметр, и искать объекты уже по этой таблице.
      Но обычно это не оправдано.
      Есть некий стереотип, что запрос в цикле — это некорректно, но в данном случае это самый логичный подход.
      Если Вы установите поиск по полям поиска, то каждый объект тоже будет искаться запросом (а как еще?)

  9. imagik

    Немного запуталась с НомерВариантаПоиска. Когда проверяем на ЭтоГруппа, не пишем условия с НомерВариантаПоиска. Потом пишем…

    • Ольга Кузнецова

      НомерВариантаПоиска имеет смысл использовать, если нужно производить синхронизацию в несколько этапов: «Сначала ищем (1) по полям ИНН и КПП. Если не нашли, то (2) по полю «Наименование», и т.д.
      Группы же мы решили искать только по наименованию, а если не нашли, то сразу создавать новые. Поэтому НомерВариантаПоиска не пригодился

  10. imagik

    1.В занятии 1.4.1 говорится, что для иерархических справочников нужно обязательно ставить флажок поиска по «ЭтоГруппа». В то же время, флажок «продолжить по полям поиска» не ставим. Система корректно будет обрабатывать эту ситуацию?
    2. Типовая конфигурация на поддержке. Для необходимых полей поиска не установлен флаг «Индексировать». Насколько это критично?
    4. Если мы в ПКО поставим флаги поиска у трех элементов (например, у Код, Наименование, ИНН), а в обработчике «Поля поиска» прописан поиск только по двум из них, по третьему реквизиту поиск осуществляться не будет?
    5. Поиск под Дате всегда идет с точностью до секунды? как быть, если нужно, например, искать без времени?
    6. не очень поняла про Ключ выгружаемых данных, принцип его работы. Вопрос №10 посмотрела.
    7. Если идет выгрузка по какому-то алгоритму (запросу) из исходной базы, источника как такового нет. Приемник — документ. Как можно сделать поиск в базе-приемнике, чтобы документы не создавались каждый раз новые, а замещались?
    8. Не замещать значения свойства из вопроса №5. Т.е. будет заменено и значение того свойства, по которому НЕ ведется поиск?

    • Ольга Кузнецова

      Здравствуйте!
      1. Да, корректно. Поиск может происходить только по идентификатору, но все равно нужно отметить флажком поиска поле ЭтоГруппа для того, чтобы корректно создавались новые группы справочника
      2. Не критично. Возможно, поиск объектов по этим полям будет происходить несколько дольше, но не обязательно намного дольше.
      4. Не будет. Поиск осуществляется так, как прописано в обработчике «Поля поиска»
      5. Скорее всего, лучше будет прописать в этом случае поиск вручную, т.е. написать запрос, где указать, что Дата должна быть между началом и концом суток
      6. Ключ выгружаемых данных — это ключ уникальности объекта при выгрузке. Для объектов в базе данных это результат функции ЗначениеВСтрокуВнутр(). Для каких-то произвольных данных мы сами можем определять, что является ключом уникальности.
      7. Нужно ответить на вопрос, по каким критериям система должна решить, что сделать с загружаемым элементом, заместить им какой-то из имеющихся, или создать новый. Т.е. решить, по каким полям должна происходить синхронизация. И проставить этим полям флажки поиска
      8. Речь именно о тех свойствах, по которым не ведется поиск и не установлен флажок поиска.

  11. Renegade

    КлючВыгружаемыхДанных актуален только при переносе подчиненых элементов? При тестах в базе заметил только данное отличие чем в случае если вообще его не использовать.

    • Ольга Кузнецова

      Здравствуйте!
      Нет, КлючВыгружаемыхДанных актуален тогда, когда система не может определить ключ самостоятельно. Обычно ключом объекта служит строка, получаемая методом ЗначениеВСтрокуВнутр(). Но если выгружается, например, выборка из запроса или таблица значений, или произвольные данные, то нужно помочь системе определить ключ уникальности выгружаемого объекта.

  12. leotom

    в течении какого времени рассматриваются домашние задания, и дается правильный ответ от преподавателя ?

    • Ольга Кузнецова

      Здравствуйте!
      Отчеты по ДЗ одобряются обычно в течение суток. Скорость ответа на вопросы сильно зависит от сложности вопросов.

  13. dimonix6

    Не замещать значения свойства-3.
    Настройка «Не замещать значение свойства у существующих объектов в приемнике» не работает, если объект был найден по полям поиска, после того как по идентификатору объект приемник не был найден. Но только в том случае, если у этого поля не установлен флаг поиска, если же флаг поиска установлен, то все работает корректно. Получается, можно просто установить флаг поиска на тех полях, которые не нужно замещать(и флаг «Не замещать значение…»), а в обработчике ПоляПоиска задать нужные поля поиска.

    • Ольга Кузнецова

      Здравствуйте!
      Посмотрела код — да, так должно работать! Спасибо за вариант!

  14. oleg1117

    Здравствуйте!

    Вопрос по видео 1.4.8 (Синхронизация по внешним данным).

    Разве транзакция будет отменена при неудачной записи объекта?
    Не правильнее было бы кроме транзакции использовать конструкцию
    попытка-исключение?

    Если Объект.ЭтоНовый() Тогда
    Попытка // ДОБАВЛЕНО
    НачатьТранзакцию();
    Объект.Записать();
    НаборЗаписей = РегистрыСведений.СоответствиеНоменклатуры.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.АртикулПоставщика.Установить(Объект.Артикул);
    Запись = НаборЗаписей.Добавить();
    Запись.АртикулПоставщика = Объект.Артикул;
    Запись.АртикулСобственный = Объект.Артикул;
    НаборЗаписей.Записать();
    ОбъектМодифицирован = Ложь; // Перемещено
    ЗафиксироватьТранзакцию();
    //ОбъектМодифицирован = Ложь;
    // ДОБАВЛЕНО +++
    Исключение
    ОтменитьТранзакцию();
    Отказ = Истина;
    Сообщить(«Ошибка.» + ОписаниеОшибки());
    КонецПопытки;
    // ДОБАВЛЕНО —
    КонецЕсли;

    Или это было упрощение в методических целях?

    • Ольга Кузнецова

      Здравствуйте!
      Если произойдет ошибка при записи объекта, то вся транзакция не будет зафиксирована. Что касается конструкции «попытка-исключение», то все обработчики событий и так выполняются внутри попытки, так что описание ошибки будет выдано пользователю

  15. D1mD1my4

    Добрый день!
    В чём может быть проблема, я отвечаю на тест, обязательно по одному из вопросов флаг ставится не на тот ответ, который я проставил?

    • Евгений Гилев (Мастер-тренер)

      Добрый день, Дмитрий!

      Пожалуйста, проверьте работу теста на другом браузере.

      • Татьяна Гужавина

        Добрый день!
        Причина данной проблемы не ясна. Возможно ошибка в плагине. Уточните, пожалуйста, проблема в каком-то конкретном вопросе?

  16. bala35am

    Здравствуйте, вопрос по первому вопросу из теста). Почему правильный ответ «Код и ЭтоГруппа», а не просто ЭтоГруппа ? Справочник в приемнике пустой, как понимаю галка не запоминать выгруженные объекты снята и дублирования не будет.

    • Ольга Кузнецова

      Здравствуйте!
      Потому, что, например, при некоторых условиях этот флажок может слететь программно. Есть и другие факторы, мешающие кэшированию. Согласна, что возможна такая ситуация, что и при снятом флаге поиска по полю Код перенос данных может пройти нормально, но корректно будет в любом случае настроить синхронизацию.

  17. Kindman1980

    Здравствуйте. Не очень понял как создать служебное поле. При попытке создания открывается форма создания элемента справочника «Свойства объектов», но имя я при этом указать не могу. Или я должен такой реквизит физически у справочника создать в конечной базе и передавать ему значение Строка(УИД)?

    • Ольга Кузнецова

      Здравствуйте!
      Какой видео-урок и какую задачу Вы имеете в виду?

  18. User12345

    Уникальный идентификатор не может повторяться в рамках одной таблицы одной БД. А может получиться так, что одинаковый уникальный идентификатор сформируется и в источнике, и в приемнике в рамках соответствующих таблиц при создании элементов пользователями? В этом случае будет неверное сопоставление. На практике, при работе с большими объёмами данных, возможен ли такой случай?

    • Ольга Кузнецова

      Здравствуйте!
      Вероятность того, что одинаковые идентификаторы возникнут в базах, совершенно независимых друг от друга, исчезающе мала. Но если они являются потомками одной базы, или если между ними уже происходили обмены данными с переносом уникальных идентификаторов, эта вероятность резко повышается.
      Вообще, по моему мнению, синхронизация по уникальному идентификатору подходит только для случаев однократного одностороннего переноса данных.

  19. strah4

    Чем в схеме поиска из ответов на вопросы «выполнение обработчика по полям поиска» отличается от «выполняется поиск по полям поиска»

    • Ольга Кузнецова

      Здравствуйте!
      «Выполнение обработчика ПоляПоиска» — это значит, что выполняется код, который разработчик правил обмена написал в ПКО в обработчике события «Поля поиска». В этом обработчике может быть выполнен запрос, и ссылка на объект уже найдена или создана. Тогда программа понимает, что больше не нужно выполнять поиск.
      А если в этом обработчике ссылка на объект не заполнена, но переопределен параметр СтрокаИменСвойствПоиска, то для программы это значит, что нужно выполнить поиск по тем полям, которые указаны в этой строке. Это на схеме обозначено как «Выполняется поиск по полям поиска»

  20. bala35am

    Добрый день. Конвертация 2.1.8.1. Делаю пример с урока 1.4.8. В случае если по артикулу отключаю пкс, он просто не передается в поля поиска. Если пкс по артикулу включен, то все нормально. Что я делаю не так ?

    • Ольга Кузнецова

      Здравствуйте!
      Нужно использовать несколько другой прием — создайте ПКС с видом «Передавать в параметр». Если у этого ПКС установить флаг поиска, то его значение будет доступно в обработчике Поля поиска в соответствии ПараметрыОбъекта

  21. Павел Невасилевский (Paul_Nevada)

    Добрый вечер!
    Вопрос по уроку 1.4.3.
    Почему нельзя было отметить флагом поиска реквизит «КодПоКлассификатору»?

    Вопрос снимаю!

  22. mPetrov

    Здравствуйте!
    Правильно ли я понимаю что при переносе Иерархических справочников при использовании среди полей поиска не относящихся к Группам,- для исключения дублирования групп необходимо обязательно задействовать обработку в событии «Поля поиска». (пример с незаполненным ИНН)?

    • Ольга Кузнецова

      Здравствуйте!
      Да, все правильно, в этом случае для групп нужно определить другой набор полей для поиска

  23. bytecoded

    Видеоурок 1.4.4 (про несколько полей поиска). Касаемо обработчика «Поля поиска»: почему в случае, если элемент — группа, мы указываем ЭтаГруппа явно в строке со списком полей, а если нет — пишет строку, игнорируя это поле? Несмотря на то, что оно все равно используется для определения того, создавать группу или элемент.

    • Ольга Кузнецова

      Здравствуйте!
      В этом видео-уроке в строку поиска групп вставили свойство «ЭтоГруппа» чтобы группа искалась среди групп. В случае же поиска элемента использовались те свойства, которые не определены для групп. Таким образом, вместо элемента и так не могла быть найдена группа. Если бы требовался поиск элемента, например, по Наименованию, то свойство ЭтоГруппа нужно было бы вставить в строку имен свойств поиска

  24. Павел Невасилевский (Paul_Nevada)

    Добрый день!
    Кол-во объектов не совсем верно сосчитано в уроке № 1.4.7.

    • Ольга Кузнецова

      Здравствуйте!
      Да, там небольшая ошибка. И это объясняет, почему выгрузилось 7 объектов, а после оптимизации – 5. Просто это Контактное лицо было выгружено три раза – из одного документа, из второго документа, а еще по ссылке из справочника Контрагент, там же тоже есть на него ссылка.

      • Павел Невасилевский (Paul_Nevada)

        Понятно, СПАСИБО!

  25. oda

    Помогите, пожалуйста, разобраться: в уроке 1.4.7 документы перенеслись правильно, но Основаное контактное лицо у контрагента не заполнилось, хотя в подчиненный справочник оно перенеслось. Если же выгружать контрагентов отдельно (только по правилу Контрагенты) — все нормально. Не могу найти, в чем ошибка. Правила в файле.

    • Ольга Кузнецова

      Здравствуйте!
      В Вашем комментарии нет вложения. Чтобы прикрепить к комментарию xml-файл, его нужно запаковать в zip или rar архив

        • Ольга Кузнецова

          Здравствуйте!
          Судя по структуре файла выгрузки, очень похоже, что получилась ситуация как в уроке 1.3.3 про циклические ссылки. Если это все-таки не та ситуация, прикрепите, пожалуйста именно правила, а не данные.

  26. oda

    Скажите, я неправильно понимаю, что поиск по полям, отмеченным флагом, выполняется последовательно (как по условию ИЛИ), а когда поля указываются через запятую в обработчике поиска, то по условию И?
    Пример задание 1.3.1:т.е.,когда надо искать по паре ИНН+ Наименование, то надо прописать условия этого поиска в обработчике и это условие будет исполняться как найти сотрудника с таким ИНН И таким наименованием.Или все же поиск всегда осуществляется сначала по ИНН, а если по ИНН не нашли, то по Наименованию и т.д.?

    • Ольга Кузнецова

      Здравствуйте!
      Нет, поиск производится по совокупности значений полей поиска, т.е. по условию «И». Если обработчик ПоляПоиска не задан, то — по совокупности всех полей, отмеченных флагом поиска. Если в обработчике Поля поиска задана другая строка имен свойств поиска, то по совокупности тех полей, которые указаны в этой строке.

  27. Бажанов Дмитрий

    Добрый день.
    У меня непонятная ситуация. Делал задание и столкнулся с тем что мешают предыдущие решения.
    Есть два ПКО которые конвертируют СотрудникиПредприятия—>Сотрудники.

    ПКО1 — общее для выгрузки всех свойств без должности.
    ПКО2 — зависимое, для ПКС ДолжностьСотрудника ожидается входящий параметр.

    Теперь если я делаю ПВД только для ПКО1, то происходит ошибка. Говорят что не передано свойство ДолжностьСотрудника(для ПКО2), хотя это совсем другое ПКО и никак не связано с ПКО1.

    Долго разбиравшись, оказалось что необходимо у ПКО1 явно указать для свойства Родитель правило — ПКО1 (по умолчанию пусто). Если этого не сделать то, то как ни старайся почему-то цепляется ПКО2.
    Т.е при выгрузке ищет какое-то другое ПКО, а не самого себя.

    Это особенность такая? Или ошибка, или как-то можно эту ситуацию по нормальному решить.

    Хотел бы почитать ваши комментарии на этот счет. Уж очень неприятная особенность получается, о которой надо помнить всегда.

    P/S Надеюсь понятно описал свой вопрос :)

    • Ольга Кузнецова

      Здравствуйте!
      Подбор ПКО происходит по значению поля «Приоритет» среди ПКО, подходящих по типам.
      Ситуация, которую Вы описываете, возникает очень часто. В реальных переносах она дает неочевидные ошибки, которые трудно исправить. Поэтому я рекомендую всегда указывать ПКО в ПКС явно, а когда свойство-приемник ПКС составного типа, писать алгоритм по подбору нужного ПКО. Это подход, который реально сокращает время на создание правил и количество ошибок.

      • Александр Якушко

        Столкнулся с аналогичной проблемой. Задание 1.3.1 сделал. Но если включаю ПВД ПриемНаРаботу, то должности не переносятся! Пробовал разные варианты, результат нулевой. Объясните подробней, как настроить второе ПКС СотрудникиПриемНаРаботу.

        f378bb21f597a662805c24ce6e32ca6e.jpg99910668f69fa27618ee5dcdc30554d7.jpg

        • Ольга Кузнецова

          Здравствуйте!
          На приложенных скриншотах ошибок я не нашла. Прикрепите к комментарию правила в форме zip или rar архива, я посмотрю.

  28. zels

    Написал команды в Обработчике поляПоиска, но они не выполняются, хотя в настройках указан «поиск по УИД» и «продолжить поиск».
    Однако если Поиск по УИД убрать, тогда команды выполняются.

    Разве поиск по УИД не должен выполняться, причем первым?

    • Ольга Кузнецова

      Здравствуйте!
      Посмотрите на этой странице Лучшие вопросы участников курса, вопрос №14, возможно, это Ваш случай

  29. zels

    Если в правилах стоит искать по УИД и потом по реквизитам поиска, то при создании объекта (не нашли) система присвоит УИД из исходной базы или он может быть произвольным?

    • Ольга Кузнецова

      Здравствуйте!
      Присвоит идентификатор из исходной базы, и при последующих загрузках будет находить его по идентификатору

  30. Androsov_R@Runa.ru

    Как вернуть обратно настройку выбора пути сохранения правил, при нажатии кнопки «Сохранить»???
    Не могу найти ))

    • Ольга Кузнецова

      Сервис — Настройки пользователя — снять флажок «Выгружать правила обмена при открытии формы настройки»

      • Androsov_R@Runa.ru

        спасибо ) не совсем логичное название флажка, не подумал на него

  31. Юрий

    Если, поиск по УИД в ПКО отключен, то в обработчике «Поля поиска» итерации нужно начинать с 0 или 1? Т.е. такой код будет правильный:
    Если НомерВариантаПоиска = 0 Тогда
    СтрокаИменСвойствПоиска = «Инн, Наименование»;
    КонецЕсли;

    • Ольга Кузнецова

      Нет, НомерВариантаПоиска никогда не принимает значение «0»; В любом случае он начинается с единицы.

  32. Юрий

    В видео ответе ConvData-Session-04-DisabledText-QA03.avi предлагается создать «некое служебное поле» где будет храниться строкое предстваление УИД. Я не совсем понял, а как создать это служебное поле?

    • Ольга Кузнецова

      Имеется в виду реквизит в базе-Приемнике, где хранился бы уникальный идентификатор соответствующего объекта из базы-Источника

  33. Юрий

    Видео 1.4.7 0:04:26
    И все таки мне кажется, преподаватель не правильно посчитал выгруженные объекты. Был 2 раза посчитан второй документ.

    • Ольга Кузнецова

      Здравствуйте!
      Да, там небольшая ошибка. И это объясняет, почему выгрузилось 7 объектов, а после оптимизации — 5. Просто это Контактное лицо было выгружено три раза — из одного документа, из второго документа, а еще по ссылке из справочника Контрагент, там же тоже есть на него ссылка.

  34. zzux

    Вопрос.
    Если у нас объект найден по полям поиска, то при переносе UUID источника перезаписывает UUID приемника или нет?

    • Ольга Кузнецова

      Нет. UUID нельзя перезаписать

    • zzux

      Такая ситуация. Две базы, в каждой из которых формируются доки. Соответственно УИДы могут совпадать, а остальные поля поиска нет. При переносе из источника ( поиск по УИД включен) встретился уже имеющийся УИД в приемнике. Что произойдет? По идее, если флаг не замещать объекты выключен, объект презапишется. А если включен, то новый не создастся и соответственно объект из источника не будет создан?

      • Ольга Кузнецова

        Да, при условии, что наименования типов объектов с одинаковым УИДом из базы-источника и базы-приемника совпадут, все именно так.

  35. NikolayNN

    Вопрос по видеоуроку 1.4.8: если в обработчике «Поля поиска» написан свой алгоритм поиска (в уроке запрос к рег.свед. СоответствиеНоменклатуры) и он не дал результата (СсылкаНаОбъект не заполнилась), то далее будет выполнен «стандартный» поиск по полям поиска? Или далее надо вручную прописывать поиск используя СтрокаИменСвойствПоиска?

    • Ольга Кузнецова

      Здравствуйте!
      В этом видео-уроке как раз используется такой подход — в обработчике ПоляПоиска выполняется запрос, если с его помощью элемент не найден, то указывается набор полей, по которым происходит поиск. Если не изменять переменную СтрокаИменСвойствПоиска, то поиск пройдет по всем свойствам, которые отмечены флагами поиска.
      Вообще, если интересно, как работает поиск, лучше всего открыть код обработки и посмотреть функцию НайтиОбъектПоСсылке()

      • Pugacheva

        Т.е., если СтрокаИменСвойствПоиска в тексте обработчика ПоляПоиска не используется вообще, то поиск пойдет по полям с «галками»? И чтобы выйти, надо указать хоть какое-то поле поиска, например, Код?

        • Ольга Кузнецова

          Здравствуйте!
          Да, по умолчанию будет попытка найти объект по сумме значений свойств, отмеченных флагами поиска. Про «выйти» не очень поняла. Если попытка поиска объекта по полям поиска не удалась, а параметр СтрокаИменСвойствПоиска так и не изменен, то поиск будет прекращен. Если нужно, чтобы попытки поиска не было, то можно написать
          ПрекратитьПоиск = Истина;

          • Pugacheva

            Я не поняла из ролика, зачем после запроса, если элемент не найден, еще поиск по Коду.

            • Ольга Кузнецова

              В этом видео-уроке выполняется поиск по Коду после того, как поиск по Артикулу не дал результата. Это просто демонстрация еще одного варианта при поиске объектов, который может быть при необходимости реализован.
              Но чтобы поиск по полям не производился, и после неудачного поиска по Артикулу создавался новый элемент, нужно было бы еще в конце написать
              ПрекратитьПоиск = Истина;

  36. Hauliod

    Доброго времени суток.

    Небольшой вопрос по обработке «Универсальный обмен данными в формате XML» для конфигурации КД версии «2.1.8.1»: при обновлении правил обмена (через кнопку, которая рядом с выбором файла правил) — не происходит обновления флагов состава правил выгрузки, как у Евгения в видеоуроках. Где и что надо «подпилить» в обработке, чтобы было аналогичное поведение?

    • Ольга Кузнецова

      Здравствуйте!
      В обычной (не управляемой) форме обработки это делается так: нужно найти процедуру ВыполнитьЗагрузкуПравилОбмена(), в ней есть вызов процедуры ВосстановитьОтборыПостроителя(), эту строку нужно закомментировать

  37. NikolayNN

    Здравствуйте!
    Вопрос по видеоуроку 1.4.7: В ПКО КонтактныеЛица поиск установлен по полям Код,Владелец, при кэшировании КонтактногоЛица кэшируется только UUID, поля поиска не учитываются?

    • Ольга Кузнецова

      Здравствуйте!
      КлючВыгружаемыхДанных формируется с помощью функции ЗначениеВСтрокуВнутр() от Источника. Поля поиска и все остальное при этом не учитывается

  38. Юрий

    В 3 лучшем вопросе предалгается создать служебное поле ПКС. Поясните, как это сделать. Пытаюсь создать, произвольное поле, но система не дает. Получается только пустая строка.

    • Ольга Кузнецова

      Здравствуйте!
      Имеется в виду, что можно создать реквизит в Конечной базе, в котором будет хранится Идентификатор соответствующего элемента из Исходной базы.

  39. Юрий

    Скажите, почему в видеоуроке 1.4.7 при переносе контрагентов с контак.лицами, в спр контактные лица создалось два одинаковых элемента Сидоров с разными владельцами, а код у элементов один??

    • Ольга Кузнецова

      Потому, что было настроено ПКС для свойства Код. Т.е. все данные, включая код, были перенесены из Исходной базы. При загрузке контроль уникальности кодов, как и многие другие проверки, не выполняются

  40. nad_komarova

    В видео сказано, что поля поиска должны быть проиндексированы в конечной ИБ. Но КодПоКлассификации, судя по выгрузке конечной ИБ, не проиндексирован. И в лучших вопросах тоже говорится, что можно осуществлять поиск по непроиндексированным полям, но это будет медленнее. Часто бывает ситуация, что поле не проиндексировано, а конфигурацию изменять нельзя. Можно пояснить эту ситуацию?

    • Ольга Кузнецова

      Здравствуйте!
      Кроме случаев поиска по Идентификатору, поиска по Коду или Наименованию у Справочников и поиска по Номеру и Дате у Документов, остальные варианты поиска элемента в базе-приемнике происходят с помощью выполнения запроса. Т.е., если Вы отмечаете флагом поиска поле КодПоКлассификации, то будет выполнен запрос с условием на реквизит КодПоКлассификации в разделе «ГДЕ». Для выполнения такого запроса индексировать поле не обязательно.
      Вы можете даже отметить флагом поиска поле типа Строка неограниченной длины, но тогда в запросе будет использована конструкция ПОДОБНО, которая существенно замедляет его работу

  41. Alexander Fokin

    К первому вопросу. Не согласен с тем, что с РС в плане полей поиска по-другому нельзя, ведь за исключением того, что УИДа у записей РС нет, ничено не мешает проводить поиск в РС по полям поиска, и выполнять различные фишки вроде 2-в-1. Получается существующее ограничение является искусственным (разработчики 1с упростили себе жизнь)?

    • Ольга Кузнецова

      Записи регистров сведений несколько отличаются от, например, справочников. На них, например, нет ссылок, поэтому «2 в 1» на самом деле может касаться только ресурсов записи. И две записи с одинаковым набором измерений и периодом тоже создать нельзя. Поэтому в большинстве случаев набор измерений -это и есть естественный ключ поиска. А частные случаи можно решить написанием обработчиков

  42. Semyon Litvinov

    Добрый день. Мне кажется, что стоит уточнить задачу поиска элементов. Часто при переносе наименования групп повторяются. Например, есть группы верхнего уровня (филиал А) и внутри этой группы есть группа (например покупатели). С таким же наименованием группа может быть например в другом филиале. Если искать группы только по наименованию, иерархия в базе приемнике будет отличаться. Поэтому возможно уместно включать в критерий поиска еще родителя.

    • Ольга Кузнецова

      Здравствуйте!
      Да, действительно, поиск группы по наименованию и родителю позволяет избежать многих ошибок

  43. Alexander Fokin

    Что за названия у вопросов? Например: ConvData-Session-06-LabelTextColor-QA04.avi — непроработка?

    • Евгений Гилев (Мастер-тренер)

      Добрый день!

      Рекомендуем на названия файлов не обращаться внимание — файлы называются именно таким образом по техническим причинам.

  44. Serg82

    Здравствуйте,
    интересует назначение поля Приоритет закладка Дополнительно ПКО. Столкнулся с такой проблемой: для справочника Сотрудники есть два ПКО, для одного сделано ПВД (указано соотв. ПКО) и еще одно служебное для документа ПриемНаРаботу (перенос реквизита должность, есть входящие параметры). У ПКО для выгрузки приоритет 50, у ПКО служебного приоритет 200. При выгрузке справочника Сотрудники обработкой (вер. 2.1.7) выдаются ошибки (требуются входящие параметры, это не дословно), в общем, почему-то при выгрузке используется служебное ПКО (выгрузка только справочника). Решение: поставить у служебного ПКО приоритет меньше 50. Хотя по идее приоритет по возрастанию должен быть, да и в ПВД указано явно какое ПКО использовать.

    • Serg82

      Более того, при попытке, что-либо написать в обработчике Поля поиска ПКО для выгрузки, код не отрабатывает. Физически удалил служебное правило из КД (2.1.8.1) и только тогда диагностические сообщения при загрузке из обработчика Поля поиска появились!!!! Но это же невыход, служебные ПКО нужны (для выгрузки/загрузки используются обработки V8Exchan82.epf, т.к. V8Exchan83.epf не открывается, т.к. недоступен контекст УправляемойФормы {ЭтотОбъект — ошибка, ЭтаФорма — все нормально}). Использую ваши конфигурации Исходная и Конечная под 8.3.3.721.

      • Ольга Кузнецова

        Здравствуйте!
        Поле приоритет используется, когда не указано конкретное ПКО (например, у ПКС), и системе требуется подобрать ПКО среди тех, у которых указан требуемый тип Приемника. Если выгрузка происходит по ПВД, в котором явно указано ПКО, то должно использоваться именно оно. Может быть, где-то в ПКС не указано ПКО и происходит подбор. Прикрепите, пожалуйста, zip или rar архив правил, где используется не то ПКО. Я посмотрю.
        Про поиск по полям поиска посмотрите на этой странице среди лучших вопросов участников курса вопрос 14, думаю, это Ваш случай

        • Serg82

          Спасибо за подсказку, у ПКС Родитель ПКО справочника Сотрудники (не служебное, указано в ПВД) надо поставить в Правило ссылку на само себя принудительно (на не служебное ПКО, указанное в ПВД).

          • Ольга Кузнецова

            Да, и такие случаи очень часты. Поэтому я рекомендую всегда явно указывать ПКО в ПКС

  45. maxval

    Дико досадная ошибка освещена в «5. Не замещать значение свойства»
    пол ночи на нее потратил в свое время!
    решение вот такое нашел не совсем универсальное.

    править обработку универсального обмена не вариант..

    // переменная из модуля универсального обмена, доступная в обработчике
    // НужноБылоЗаписатьОбъект

    //Если заданы поля поиска, то нужно принудительно
    //указать, что объект найден,чтобы он не заменился
    Если Объект Неопределено Тогда
    Если НЕ НужноБылоЗаписатьОбъект Тогда
    ОбъектНайден = Истина;
    Сообщить(«Старый объект, поля объекта не замещаем!: «+Объект);
    Иначе
    Сообщить(«Новый объект: «+Объект);
    КонецЕсли;
    КонецЕсли;

    может кто предложит вариант поинтереснее?
    самое печальное что и в 2.1.7 не исправлено

    • maxval

      при этом конечно в ПКО должна стоять галочка
      «Не замещать существующие объекты в приемнике при загрузке»

      • Ольга Кузнецова

        Я тут вижу два хороших подхода. Эта ошибка возникает только если стоят флажки «Поиск по уникальному идентификатору» и «Продолжить поиск по полям поиска», причем только если объект был найден именно по полям поиска. Там в этом случае переменная ОбъектНайден остается в значении Ложь, и объект как будто новый заполняется свойствами, поэтому настройка не срабатывает. Можно выполнить поиск вручную — запросом по известным полям поиска, потом записать найденную ссылку в параметр СсылкаНаОбъект и установить ПрекратитьПоиск в Истина. Тогда вроде бы должно работать корректно. Есть второй подход — «в лоб» — можно в ПКО При загрузке, когда свойства объекта еще не перезаписаны, сохранить их значения в Параметры. А потом После загрузки их оттуда извлечь и вернуть на место.

  46. maxval

    Есть такая ситуация: для групп справочников задано правило поиска по наименованию, пользователь создал в группе Группа1 еще одну группу Группа1, получилось зацикливание, обработка подвисла и только отладчиком получилось найти причину зависания. можно ли предусмотреть такую ситуацию в конвертации?

    • Ольга Кузнецова

      Здравствуйте!
      Установите для групп поиск по Наименованию и Родителю.

  47. benony

    Как будет работать синхронизация, если установить флаг «Поле поиска» для реквизита табличной чести?

    • Ольга Кузнецова

      Здравствуйте!
      Синхронизация объектов не изменится никак

  48. aPOSTAL

    В видеоуроке 1.4.7 при переносе с использованием Ключа выгружаемых данных в приемнике получилось два эл-та справочника с разными владельцами, но с одинаковым кодом.
    Можно было бы, конечно, отключить ПКС Код и в ПКО прописать его автоматическую генерацию. Но что, если требуется сделать следующее: при первом переносе — оставить тот код который был, а при последующих — генерировать новый?
    Есть ли возможность в обработчиках понять, в который раз по заданному ключу выгружается объект?

    • Ольга Кузнецова

      Здравствуйте!
      С помощью Ключа выгружаемых данных выгружаемые объекты сохраняются в специальной коллекции и хранятся там до окончания процесса выгрузки. После окончания выгрузки эта информация теряется, и при следующей выгрузке будет формироваться новая коллекция.
      Если Вам нужно знать, который раз объект встретился за одну выгрузку, Вы можете создать параметр с таблицей, где будут Ключи выгружаемых данных объектов и счетчики для них, и в ПКО прописать алгоритм увеличения счетчиков.
      Если Вы хотите знать, сколько раз объект был перенесен из базы-источника в базу-приемник, можно создать регистр сведений с историей загрузок.

  49. Naz1.91

    Здраствуйте! впрос : при переносе справочника сотрудники (код,имя,иин,этогруппа) если выставить поля поиска Имя+ИИН+ЭтоГруппа то дублируются группы справочника а элементы переносятся корректно. ИИН используется только для элементов.
    но ведь у групп совпадают поля Имя+ИИН(неопределено)+ЭтоГруппа(Истина). почему дублируются?
    Поиск по УИД отключен.

    • Ольга Кузнецова

      Здравствуйте!
      Значение ИНН разное. В загружаемом файле данных указано, что тип реквизита ИНН — Строка, а Значение — Пусто, т.е. пустая строка. А значение реквизита ИНН для группы — даже не Неопределено, а Null.

  50. evgeny.s

    В 4-ой главе, которая посвящена поискам объектов в базах, приведен пример переноса документов, с поиском по дате и номеру. реквизит, который позволяет установить точное соответствие по дате документов при переносе доступен только при обмене данными на платформе 8. а как быть если обмен данными между 7 и 8?
    сейчас у меня возникла такая ситуация:
    выгрузка из ТиС 7.7 документов Реализация(розница) и Реализация(купля-продажа, опт вообщем.). выгрузка происходит в УТ 10.3, в которой это только один тип документа – РТУ. понятно, что номера документов у розничной и оптовой реализации могут совпадать. и собственно при загрузке не все документы попадают в УТ, так как поиск по номеру проходит успешно.
    как обыграть такую ситуацию подскажите?…

    • Ольга Кузнецова

      Здравствуйте!
      Можно написать запрос, который будет искать документ по номеру и дате, в обработчике «Поля поиска». (Аналогично тому, как рассказано в видео-уроке 1.4.8).

Комментарии закрыты