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

Простые переносы данных

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

  • Глава 3. Конвертация иерархических и подчиненных справочников

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

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

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

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.

Если не активировали токен — посмотрите видео-инструкцию (видео N5)

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

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

  1. Sold

    Почему при выгрузке в порядке ПКС «Товар», «СвойствоТовара» реквизит «Владелец» (спр-к «СвойстваНоменклатуры») переносится. Хотя по логике товар уже был выгружен, значит поле «Владелец» должно было остаться пустым по аналогии с реквизитом «ОсновноеСвойство»

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

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

  2. Леонид

    Добрый день!
    Я заметил ошибку в «Видео-решение ДЗ. Часть 2».
    Время 00:53. Преподаватель указывает на неправильное расположение ПКС, которое приводит к проблеме циклических ссылок. Сначала идет ПКС «СвойствоТовара», затем ПКС «Товар». Здесь все правильно. Такой порядок ПКС действительно приводит к появлению проблемы.
    Время 04:50. Преподаватель предлагает еще одно решение проблемы. При этом делает акцент на порядок расположения ПКС. Сначала «Товар», затем «СвойствоТовара». Но это не начальное расположение ПКС, при котором проявляется ошибка циклических ссылок. При таком положении ПКС проблема циклических ссылок не проявляется.

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

      Здравствуйте!
      Да, имеет место небольшая ошибка в ходе выполнения решения, однако подход этот работает, и если бы «Свойство товара» стояло выше «Товара», объекты бы загрузились корректно все равно

      • Леонид

        Да, все загружается корректно.
        Спасибо!

  3. Валерий Швабинский

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

    В видеоуроке 1.3.2 «Независимый -> Подчиненный» описывается ситуация
    связанная с тем, что при переносе контактных лиц для некоторых контрагентов
    они не перенеслись.

    Тем не менее у при повторении материала перенос данных по контактным
    лицам прошел корректно при установленном признаке «Искать объект приемника по
    внутреннему идентификатору объекта источника» и снятым признаком «Не запоминать
    выгруженные объекты».

    В чем может быть расхождение между теорией и практикой?
    Конвертация: Конвертация данных, редакция 2.1 (2.1.8.2)
    Обработка: Универсальный обмен данными в формате XML (2.1.8)

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

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

  4. 87konstantin@mail.ru

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

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

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

  5. Сергей

    Здравствуйте!
    При переносе элементов справочника «Номенклатура» в ДЗ 1.2.3, можно ли организовать так что бы элементы из источника загружались в приемник в нужную мне группу с нужным названием?

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

      Здравствуйте!
      Похожая задача есть в домашнем задании 1.6.1

  6. RBEvgeny

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

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

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

      • Дмитрий

        Формулировка в тексте иная: «Необходимо настроить перенос этих данных из Исходной в Конечную базу.»
        И хотя я сделал перенос обоих справочников — сейчас перечитав формулировку я бы сделал перенос контрагентов с связанными контактными лицами (а не всех контактных лиц).

  7. Natally

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

    • Natally

      Ответ на лучший вопрос №1 к занятию №5 оказывается полезен и в этом случае — выбирать связанную информацию и вызывать для них процедуру «Выгрузить по правилу».

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

        Ответила на предыдущий комментарий

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

      Здравствуйте!
      У этой задачи есть несколько вариантов решения, но в любом случае, выборку связанной информации придется выполнять «вручную». Самый лучший, наверное — это в ПКО для Контрагента в событии «После выгрузки в файл» написать алгоритм выборки и выгрузки всей связанной информации. В информации по обработчикам для этого события есть небольшой пример. Если контрагентов мало, можно выгружая их, записывать в список в Параметры, а в ПКО для договоров установить фильтр по владельцу, т.е. не выгружать объект, если его владелец не в списке. Можно в ПВД для Контрагентов сформировать общую большую выборку данных, где договоры и вся прочая связанная информация будет находиться во вложенных запросах. Тогда при обходе этой выборки можно выгружать параллельно другие связанные объекты (также с помощью функции ВыгрузитьПоПравилу()).

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

      Здравствуйте!
      Посмотрите, пожалуйста, еще раз: я Вам ответила на предыдущий комментарий на странице вопросов по домашним заданиям. Если ответ не виден, напишите.

      • Templ

        да не вижу ответ. после того как задал вопрос, все ответы и вопросы пропали.

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

          Добрый день!
          Проверьте, пожалуйста, Вашу почту. Мы отправили Вам письмо с support@nasf.ru .

  8. Ken1c

    Запишите более подробный урок про циклические ссылки. Посмотрел два раза, но все равно не понял. Принял на веру. После прочтения комментариев стало понятно «о чем товарищ говорит».

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

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

  9. aret

    Здравствуйте.
    Переношу справочник Организации. В дополнение надо сделать запись в регистре сведений. В ПКО Организации в обработчике После загрузки пишу код:
    НаборЗаписей = РегистрыСведений.НастройкиУчетаЗарплаты.СоздатьМенеджерЗаписи();
    НаборЗаписей.Организация = Объект;
    НаборЗаписей.Прочитать();
    Если Не НаборЗаписей.Выбран() Тогда
    НаборЗаписей.Организация = Объект;
    НаборЗаписей.Активность = Истина;
    НаборЗаписей.Записать(Истина);
    КонецЕсли;

    У реквизита НаборЗаписей.Организация тип СправочникСсылка.Организации. При загрузке Выскакивает ошибка Значение поля Организация не может быть пустым.

    Не понимаю, в чем ошибка. Объект.Ссылка тоже не проходит.

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

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

      • aret

        Потрясающе! Спасибо! Перед началом выполнения кода я поставил Объект.Записать(); и все заработало! Жалко что в лекциях эта тема не затронута. Она даже заполнила то, что я ей не прописывал, но что было тоже нужно!

        • aret

          А что это за способ «принудительно получить ссылку» ?

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

            НаборЗаписей.Организация = Объект.УстановитьСсылкуНового( Справочники.Организации.ПолучитьСсылку());
            А если синхронизация организаций по уникальному идентификатору, то его нужно передать через параметры объекта и указать как параметр метода ПолучитьСсылку()

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

          Отчасти эта тема затронута в видео-уроке про отложенное проведение документов

  10. Валентина Галанова

    Добрый день.

    Правильно ли я поняла, что если для ПКС не указано явно ПКО, то правило будет подбираться по типу? По типу источника?

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

      Здравствуйте!
      Да, правило подбирается по типу объекта-источника

  11. Denis

    Подскажите по вопросу отключения механизма кэширования (проблема циклических ссылок) объект выгрузки справ.номенклатура с подчиненным справочником единицы измерения , было рассмотрено 3 варианта решения этой проблемы, все варианты были протестированы, помогает только вариант — не запоминать выгруженные объекты.. в реальной базе имеем 5% пустых ссылок в базе приемнике , .. что посоветуете посмотреть ? проявляется только при больших объемах выгрузки ~1000 объектов

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

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

      • Denis

        Добрый день!
        нет пустая ссылка именно пустая ссылка , появляются без воздействия на механизм кеширования,
        работаем в этот момент только с номенклатурой и всем что рекурсивно в ней,
        ПКО для единиц сделано ,
        если отключлючаем запоминание то все ок (на любых объемах),
        причем именно на объемах > 1000 объектов
        платформа 8.1 — может в ней дело?

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

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

  12. m-jedi

    КД 2.1.8.2. Как получить заготовку программного кода для «Входящих данных» как Евгений это делает в уроке 1.3.2? В ПКО нет таких закладок, или смотрю не туда?

    4a281e257fa1e448b03cd2e074a5bef7.PNG

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

      Здравствуйте!
      Нужно вверху окошка установить флажок «Не использовать мастер настроек», закрыть и открыть снова, и окно будет похоже на то, что на видео

  13. classic891

    Ольга подскажите, может что пропустил, в рамках выполнения ДЗ 1.2.1 вставлял комментарий в обработчике ПередВыгрузкой чтоб комментарий появился в конечной базе, поясните какая разница, вставлять его ПередВыгрузкой, ПриВыгрузке, ПослеВыгрузки

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

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

  14. Людмила

    Добрый день.
    Домашнее задание 1.2.3
    В решении преподавателя говорится, что в ПКО Номенклатура(Продукция->Номенклатура) нужно в ПКС указать поиск по ЭтоГруппа.
    Непонятно зачем? В исходной Конфигурации справочник Продукция не иерархический. ТО есть из исходной мы будем переносить _только_ элементы, и в конечной будут создаваться только Элементы (не группы).
    Я вообще не включала это ПКС в список свойств.

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

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

  15. AleksSF

    Здравствуйте.
    Не совсем корректная постановка задачи в ДЗ 1.2.3
    В решение разобран перенос Номенклатуры для которой определена Цена. А в задании об этом ни слова. Я понял что нужно переносить всю номенклатуру. И соответственно у меня другое решение.
    Хотелось бы более четкие постановки задач.

    С Уважением.

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

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

  16. Katra

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

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

      Здравствуйте!
      Ответила на странице вопросов по домашним заданиям

  17. Katra

    Добрый день. При выгрузке регистра сведений «Контактная информация» по настроенным правилам , уод ругаеться (не получается преобразовать строку), что делаю не так, хотя настройка правил легкие.

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

      Здравствуйте!
      Не знаю, слишком мало информации. Лучше всего запакуйте правила в zip или rar архив и прикрепите к комментарию

      • Katra

        Прикрепить не получается, есть поле только добавить комментария.

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

          Добрый день!
          Страница обновлена. Сейчас Вы сможете прикрепить архив.

  18. Vitaliy Pidopryhora

    видео — 1.3.1 Изменение вида иерархии
    вопрос относится к иерархии

    в ПКС «ЭтоГруппа» выключаем поиск
    делаем обмен
    далее включаем поиск
    делаем обмен и ожидаем что иерархия появится
    (и даже если принудительно указать в ПКС «ЭтоГруппа» Значение = Истина;)
    иерархия так и не появилась
    но если очистить справочник и загрузить повторно, то все ок

    с чем связано такое поведение системы?

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

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

  19. KalyakinAG

    Здравствуйте!
    Не понял, почему нельзя задействовать механизм кэширования для ПКО без указанного источника? Пробовал использовать параметр КлючВыгружаемыхДанных, однако это не помогло.
    Хочу уточнить, или я чего не понял или действительно так в КД заложено, что ПКО без источника не кэшируются?

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

      Здравствуйте!
      Нет, можно включить кэширование. Но если источника нет в ПКО, то кэширование автоматически отключается, и чтобы оно производилось нужно не только указать КлючВыгружаемыхДанных, но и написать строчку
      ЗапоминатьВыгруженные = Истина;

  20. Pugacheva

    Циклические ссылки.
    А нельзя как-то для ПКС табл.части ПТУ указать, что Владелец реквизита ЕдиницаИзмерения из ОбъектаКоллекции – это Товар из той же самой коллекции?

    • Pugacheva

      Извините, Единица «знает» своего владельца Еще почитаю ответ от 25.03.

  21. imagik

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

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

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

  22. imagik

    1. В каких случаях используется флажок «получить из входящих данных», а в каких используется обработчики Значение = ВходящиеДанные.Свойство ?
    2. Почему в главе 1.3.3, когда меняем местами Товар и ЕдиницуИзмерения, выгружается все хорошо. Но выгружается 12 объектов. А когда создаем новое правило выгрузки единиц измерения, выгружается 13 объектов?

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

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

  23. Ирина Борисова

    Когда я создаю ПКО и на предложение создать автоматически ПВД отвечаю согласием, они не создаются. Подскажите, что я не так делаю?

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

      Здравствуйте!
      Это ошибка в текущей версии КД. Можете исправить: Общая форма “ПравилаОбмена”, в Процедуре СозданиеПравилВыгрузкиДанных() нужно “ИЛИ” заменить на “И”.

  24. SoftMaker.kz

    Здравствуйте!
    Для лучших вопросы участников курса предусмотрены видеоответы, но скачать невозможно: Ссылка устарела.

    1. Заполнение значений для групп
    ConvData-Session-02-SystemSettingsStorage-QA03.avi

    2. Указание правила конвертации
    ConvData-Session-02-SystemSettingsStorage-QA05.avi

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

      Добрый день!
      Откройте данную страницу в другом браузере. Если проблема не исчезнет, пожалуйста, напишите нам на support@kursy-po-1c.ruи приложите скриншот с ошибкой.

  25. Renegade

    В видео-уроке 1.3.1 при настройке ПКО справочника подразделения, ставится флаг поиска у ПКС Родитель, для чего? Хоть с ним и хоть без него не переносятся элементы справочников

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

      Здравствуйте!
      В видео-уроке 1.3.1 не ставится флаг поиска у ПКС Родитель. В первой части ставится флаг поиска у ПКС ЭтоГруппа, а во второй — ПКС ЭтоГруппа и Родитель отключаются.

  26. Loy

    Здравствуйте!
    Тест для самопроверки штука полезная, но будет гораздо лучше, если в самом тесте не будет ошибок:
    Во втором вопросе из серии картинок неверная картинка номер 2 — редактируется не тот ПКС — На картинке — ПКС ТипЦенРозничнойТорговли, а надо ПКС ТипЦенНоменклатуры,
    тогда эталонный результат будет правильным.
    Лучше исправить, что бы не вводить людей в заблуждение.

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

      Здравствуйте!
      Согласна, исправим :) Спасибо за внимательность!

  27. Re

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

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

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

  28. bala35am

    Добрый день. В видеоуроке по циклическим ссылкам, один из методов решения создать пвд для единиц измерения. Мб я что-то не понимаю, но разве это решит проблему ?

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

      Здравствуйте!
      Решит, только ПВД нужно создавать не для Единиц, а для Номенклатуры, и выполняться оно должно раньше, чем ПВД для документа. Тогда связки товаров с единицами уже будут выгружены к моменту выгрузки документов.

  29. strah4

    Так как со временем жуть и с курсом и так отстаю не буду ставить экспериментов, а внаглую задам вопрос. По циклическим ссылкам. Хорошо в примере выгрузка идет второй раз явно. А если у нас 2 реквизита ссылающиеся на один объект. В одном из них реквизит данным объектом не заполнится? А если это объект много где фигурирует (точнее на него ссылаются много реквизитов разных объектов и в них он только через по ссылке выгружается)? Или опять же, выгружается объект до некоторого другого объекта, а у реквизита реквизита реквизита этого другого есть ссылка на тот же объект. Он тоже не заполнится? Надо для каждого случая отдельное одинаковое ПКО копировать? Как-то странно и загадочно это. Ну закеширован объект, так почему хотя бы ссылку не выгружают, для дальнейшей подстановки? Что она прорву места займет? Или я чего-то неправильно понял?

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

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

  30. Мирыч

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

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

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

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

    Добрый вечер!
    В видео-уроке № 1.3.3 количество объектов — 12 — выгружаются и загружаются до и после изменения приоритета обработки ПКС для документа «ПоступлениеТовара» — т.е. их число не меняется. Я к тому, что, получается, что «механизм кэширования» как-то странно работает)

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

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

  32. Igor55

    Здравствуйте!
    Вопрос по видео 1.3.2 (перенос независимый->подчиненный).
    В видео переносятся один элемента справочника «КонтактныеЛица» в два элемента с одинаковым кодом такого же справочника конечной базы. А в конечной базе для этого справочника включен контроль уникальности кодов по всему справочнику. Мне кажется, что надо было дополнительно отключить выгрузку свойства «код» в
    пко «Контактные лица», поставить флаг поиска по наименованию и владельцу и поставить флаг «Автоматически генерировать номер или код, если он не задан». Это так?

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

      Здравствуйте!
      Да, все верно. Лучше включить автогенерацию.

  33. bala35am

    Добрый день. Проблема понимания механизмов кэширования.

    1)Правильно ли я понимаю, что если у нас стоит поиск по полю, то вначале выгружается это поле, а потом уже сам объект ?

    2)Если поиска не стоит то выгружается сам объект, а потом уже его поля ?

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

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

      • bala35am

        Ольга, добрый день. Дико извиняюсь, но все равно еще не дошло.

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

        Тут цепочка вроде понятна : выгружается номенклатура, т.к. у ней поиск стоит по единице измерения, то начинает выгружаться она, у нее стоит поиск по владельцу, а т.к. он еще не сформировался, то прикрепляется пустая ссылка и владелец у единицы измерения оказывается незаполненным.

        Почему когда я ставлю не запоминать выгруженные объекты (для пко единиц измерения), все формируется нормально ?

        Почему для свойства единицы измерения (реквизит основная единица измерения, реквизит тч) в узле Ссылка, для правила в котором не проставлено свойство «Не запоминать выгруженные объекты» стоит например » Ссылка Нпп=»6″ «, а в правиле где я включил это свойство, узлу Ссылка принадлежат узлы поиска ?

        Спасибо.

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

          Здравствуйте!
          Потому что в первый раз будет абсолютно так же выгружена единица с пустым владельцем. Но когда она по ссылке из ТЧ будет выгружаться второй раз, то номенклатура-то уже выгружена, и ссылка на нее может быть присвоена. Таким образом, в процессе загрузки сначала запишется единица с пустым владельцем, а потом она перезапишется, и владелец заполнится.
          Там будут разные комбинации узлов в зависимости от того, в каком именно ПКО поставить флажок «Не запоминать выгруженные»

  34. Velmir1988

    Здравствуйте!
    Не знал в какой раздел написать.
    Версия обработки универсальный обмен 2.0.17 для 8.0
    Сегодня писал правила конвертации для переноса данных между конфигурациями на платформе 8.0. Возникли следующие проблемы проблемы:
    1)Почему-то не работает функция ЗначениеНеЗаполнено в любом обработчике ПКО Документа. В данном случае проверял дату на заполнение.Пишет ошибка компиляции кода. в чем может быть проблема?
    2)Флажок автоматически генерировать код или номер при загрузке не играет никакой роли. Вероятнее всего из-за старой версии. Есть какой-нибудь способ решения проблемы?

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

      Здравствуйте!
      Версия, действительно, очень старая. Лучше бы, конечно, учиться на новой. Они довольно сильно отличаются, и придется переучиваться

      • Velmir1988

        Для 8.0 в релизе конвертации 2.1.6.5 была только эта версия. В шаблонах релиза 2.1.8.1 обработки универсальной обмен данными для 8.0 вообще нет.

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

          Курс был записан на платформе 8.2, и домашние задания мы рекомендуем выполнять на платформе 8.2. Я, к сожалению, не могу предсказать поведение обработки такой старой версии. В ней другие особенности и другие ошибки. Лучше учиться на новой версии

  35. Владимир Выдрыч

    Здравствуйте, вопрос связан с оптимизацией в обработчике полей поиска. Можно ли в нем (и вообще в обработчиках) выносить общие куски кода в процедуры и функции? было бы удобно повторяющиеся куски кода вынести в функции, которые бы возвращали строковое значение, в нашем примере, список полей поиска.

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

      Здравствуйте!
      Большие куски кода можно выносить в Алгоритмы и Запросы. Они не возвращают значений, но могут изменять значения параметров того контекста, в котором выполняются

      • Владимир Выдрыч

        Спасибо, направление я понял, однако знания по работе с тем, что вы назвали, видимо, получу позднее :)

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

          Да, в курсе есть информация об использовании Алгоритмов и Запросов.

  36. Владимир Выдрыч

    Вопрос, не вполне относящийся к заданиям, скорее относится к тонкостям работы с конфигурацией ко КД.

    Однажды перед выгрузкой правил обмена мы поставили флажок, который отвечает за то, что правила выгружаются, минуя открытие окна настроек (чтобы не задавать путь для выгрузки итп).

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

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

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

  37. Klukva

    Домашнее задание 1.2.1 кажется подозрительно простым. Если в теории был перенос независимого справочника в подчиненный, то здесь наоборот. При этом никаких дополнительных настроек и кода добавлять не пришлось. Даже ответственные лица разные у всех контрагентов (если было бы одно у разных контрагентов, то пришлось бы решить задачу переноса нескольких элементов в один). Возникает вопрос: может я что то упустил или не так понял? Уж очень все просто. Или смысл данного задания в использовании обработчика события ПередВыгрузкой в ПКС для комментария?

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

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

      • Бертыш Андрей

        Свободный график к сожалению приводит к рассинхронизации просматриваемого видео с решаемыми дз. Я первые дз кинулся решать просмотрев только первую главу и только дойдя главы до четвёртой, пятой в просмотре стал понимать примерно какие ответы требуется давать на ДЗ, стал владеть терминологией.

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

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

          • Бертыш Андрей

            Я только-только разобрался что надо работать именно через конфигурацию по работе с курсами. Она производила вариант нерабочего продукта изначально из-за того что ругалась на отсутствие файлов у меня. И вроде бы модули скачал, а ругалась. Сейчас то я уже в теме что надо скачать в соответствующие папки pdf с заданиями. Жаль время упущено.

  38. Виктор

    Добрый День, вопрос по видео-решению задания 1.2.1, т.е. «1C-ConvData-Module1-HomeWork02.1-Solution-Part01». Подскажите почему у Евгения переносится 8 объектов, а у меня 9 (конкретно, в видео не переносится элемент ООО «Тест», группы «Старые поставщики» )?

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

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

  39. Шерстянников Вячеслав

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

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

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

  40. Maxim_Goncharov

    Вопрос по видео 1.3.3 Проблема циклических ссылок.

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

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

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

      • Владимир Качковский

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

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

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

          • Владимир Качковский

            Ольга, спасибо. Извиняюсь за дотошность, появилась еще пара вопросов: 1) то есть проверяет на наличие в стеке система только по GUID? Просто предположил, что в качестве сравнения вместо ссылки может использоваться узел ссылки, а туда может включаться не только GUID, и тогда возникает еще больше вопросов..
            2). И на то что система ищет в стеке не висит ли та самая ссылка — влияет галочка в ПКО не запоминать выгруженные объекты? То есть если поставить эту галочку в ПКО товары и в ПКО единицы измерения будет ли система до бесконечности ставить к выгрузке номенклатуру и единицы измерения, не учитывая то что находится в стеке?

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

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

  41. smirnov.amber

    а куда можно задавать вопросы возникшие может не по этой теме?

    например

    в правилах в обработчике «перед выгрузкой объекта» пишу
    НеЗамещатьОбъектПриЗагрузке = НЕ Параметры.ЗамещатьОбъектПриЗагрузке;

    и не работает!!!!

    а прописываешь в конкретном объекте в том же обработчике и все нормально

    вопрос:
    1) что раньше общий обработчки или частный?
    2) почему не сработало в общем?
    3) как такую задачу решить для всех выгружаемых объектов или только документов например?

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

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

  42. smirnov.amber

    Урок 1.2.10
    Почему при переносе подчиненных справочников в пкс «владелец»мы не указываем пко.
    Как программа понимает что нужно перенести по правилу «Номенклатура»?

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

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

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

  43. ValentinaNB

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

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

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

  44. Rustam

    Заступорился на задании 1.2.2. Второй день бьюсь. можно отчитаться о не успешном результате?

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

      Здравствуйте!
      Лучше написать, что не получается, на странице с вопросами по домашним заданиям. Можно прикрепить zip или rar архив с правилами. И добиться успешного результата )

  45. Sure

    В домашнем задании 1.2.2 требуется перенести должность сотрудника из строки документа ПриемСотрудника в справочник Сотрудники.
    Я пробовал написать ПКО Документ.ПриемСотрудника -> Справочник.Сотрудники. Не сработало.
    Ну, хорошо, в решении переносится документ.ПриемСотрудника и при переносе табличной части мы передаём ИсходящееЗначение, а если в конечной базе нет документа ПриемСотрудника? Как переносить должность в таком случае?

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

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

  46. nessy-777

    Что мешает программе сопоставить эти 2 товара и не создавать новый. ( если сопоставлять по наименованию). Наименования кажутся полностью совпадающими ?

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

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

  47. maxval

    Вопрос по видео 1.3.3 Проблема циклических ссылок. время 08:30
    Не понял каком порядке действует кеширование..
    Если товар выгружается раньше, сначала выгружается его реквизит основная единица измерения, кешируется, а потом единица измерения из тч берется из кэша?
    А если наоборот порядок.. по идее то же самое.. все равно значение должно браться из кэша, только для основной единицы измерения..

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

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

      • oda

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

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

          Здравствуйте!
          Там выше есть ответ на подобный вопрос, я постаралась там объяснить механизм выгрузки и почему так происходит. Более полное понимание процесса будет приходить по мере выполнения домашних заданий

  48. Mishell

    День добрый!

    Домашнее задание №1.2.2

    В видео 1C-ConvData-Module1-HomeWork02.3-Solution-Part02.avi, в самом конце не совсем понятно, чего хотели добиться отключением полей поиска, т.к. порядок обработки ПКС остался тот при котором и так все выгружается (сначала «Товар» потом «Свойства товара»). Неплохо бы для чистоты эксперимента «Свойства товара» было поставить перед «Товар».

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

      Здравствуйте!
      Да, имеет место небольшая ошибка в ходе выполнения решения, однако подход этот работает, и если бы «Свойства товара» стояли выше «Товара», объекты бы загрузились корректно все равно

  49. PetrIvanenko

    Не уловил, чем нам в 3-м уроке помогло создание еще одного ПКО для единиц измерения. Тем, что кэширование данных происходит в рамках конкретного ПКО. Данные выгруженные одним ПКО не могут использоваться другим?

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

      Здравствуйте!
      Да, именно так. Объекты кэшируются только в рамках одного ПКО

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