Занятие № 02. Курс «1С:Конвертация данных 2.1 – Профессиональная настройка правил обмена и типовые сценарии переноса данных»
Простые переносы данных
Изучите теорию модуля № 1:
- Глава 3. Конвертация иерархических и подчиненных справочников
Выполните практические задания:
Отчеты по домашним заданиям размещайте по ссылкам, указанным выше. Отчеты, опубликованные на этой странице, удаляются без предупреждения.
Ваши вопросы по материалам данного занятия задавайте в комментарии ниже.
Общие вопросы по курсу, не связанные с конкретным занятием, задавайте на странице: http://kursy-po-1c.ru/data-conv/all-hw/convdata-common-qa/
Общие вопросы по курсу, не связанные с конкретным занятием, задавайте на странице: http://kursy-po-1c.ru/data-conv/all-hw/convdata-common-qa/
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии / обсуждение (273):
Комментарии закрыты

Почему при выгрузке в порядке ПКС «Товар», «СвойствоТовара» реквизит «Владелец» (спр-к «СвойстваНоменклатуры») переносится. Хотя по логике товар уже был выгружен, значит поле «Владелец» должно было остаться пустым по аналогии с реквизитом «ОсновноеСвойство»
Здравствуйте!
Действительно, ситуация со Свойствами и Номенклатурой в данном случае симметричная, за исключением одного флажка поиска. Если поставить флажки поиска у ПКС Владелец (ПКО Свойства номенклатуры) и у ПКС Свойство (ПКО Номенклатура), то не зависимо от порядка ПКС в ПКО для документа, загрузка будет идти не корректно. И если эти флажки снять, то все будет загружаться нормально.
Выгрузка всегда идет рекурсивно, до последнего уровня вложенности. Если по ссылке из документа первой встретилась номенклатура, то потом идет выгрузка всех ее свойств, среди них – основное свойство, значит, начнет выгружаться именно оно, и если среди реквизитов этого основного свойства есть еще ссылочные данные, то будут выгружаться они. Но когда встречается Владелец, то программа “знает”, что этот объект уже висит в стеке объектов, которые будут выгружены. И пришивает свойству узел ссылки на него. Но тут есть разница: готов ли этот узел ссылки? Если, например, Основное свойство помечено флагом поиска, то оно должно войти в узел ссылки, но после того, как будет выгружено. А выгрузка его еще не закончена. Поэтому узел ссылки пришивается пустой. Потом в файл данных пришивается объект Свойство Номенклатуры, потом Номенклатура, а потом сам Документ.
Добрый день!
Я заметил ошибку в «Видео-решение ДЗ. Часть 2».
Время 00:53. Преподаватель указывает на неправильное расположение ПКС, которое приводит к проблеме циклических ссылок. Сначала идет ПКС «СвойствоТовара», затем ПКС «Товар». Здесь все правильно. Такой порядок ПКС действительно приводит к появлению проблемы.
Время 04:50. Преподаватель предлагает еще одно решение проблемы. При этом делает акцент на порядок расположения ПКС. Сначала «Товар», затем «СвойствоТовара». Но это не начальное расположение ПКС, при котором проявляется ошибка циклических ссылок. При таком положении ПКС проблема циклических ссылок не проявляется.
Здравствуйте!
Да, имеет место небольшая ошибка в ходе выполнения решения, однако подход этот работает, и если бы «Свойство товара» стояло выше «Товара», объекты бы загрузились корректно все равно
Да, все загружается корректно.
Спасибо!
Доброго времени суток всем!
В видеоуроке 1.3.2 «Независимый -> Подчиненный» описывается ситуация
связанная с тем, что при переносе контактных лиц для некоторых контрагентов
они не перенеслись.
Тем не менее у при повторении материала перенос данных по контактным
лицам прошел корректно при установленном признаке «Искать объект приемника по
внутреннему идентификатору объекта источника» и снятым признаком «Не запоминать
выгруженные объекты».
В чем может быть расхождение между теорией и практикой?
Конвертация: Конвертация данных, редакция 2.1 (2.1.8.2)
Обработка: Универсальный обмен данными в формате XML (2.1.8)
Здравствуйте!
Проблема возникает только в том случае, когда одно и то же контактное лицо указано у двух контрагентов. Если такой ситуации нет, то можно выполнять поиск и по идентификатору.
Здравствуйте,
Смотрите в главе 3 рассматривается проблема циклических ссылок. Мне интересен тот вариант, в котором используется 2 ПКО для Единиц измерения. В видео сказано что «таким образом мы должны точечно отключить механизм кэширования» когда используем эти 2 ПКО. Но ведь по сути никакой механизм кэширования мы не отключали (будь в этом ПКО еще какой-нибудь ссылочный объект в котором встречается также единица измерения — у нас появилась бы та же самая проблема). Но раз этот вариант с 2 ПКО для единиц измерения отработал, то получается что в этом кэшировании есть какой-то еще ключ — имя ПКО допустим или еще что-то. И на этапе загрузки идет проверка загруженных объектов с учетом этого ключа. Или я что-то не так понимаю?
Здравствуйте!
Кэширование объектов производится только в рамках одного ПКО. Разделение происходит не на уровне ключей. Сохранение объектов производится в различные таблицы значений для различных ПКО,
Здравствуйте!
При переносе элементов справочника «Номенклатура» в ДЗ 1.2.3, можно ли организовать так что бы элементы из источника загружались в приемник в нужную мне группу с нужным названием?
Здравствуйте!
Похожая задача есть в домашнем задании 1.6.1
Добрый вечер. У меня вопрос по задаче «Домашнее задание №1.2.1». Как тут выгружать Сотрудников? По ссылкам или целиком справочник?. Просто по ссылке выгружается только два сотрудника Поставщиков.
Здравствуйте!
В задании написано, что нужно перенести эти два связанных справочника, значит, нужно перенести их оба целиком.
Формулировка в тексте иная: «Необходимо настроить перенос этих данных из Исходной в Конечную базу.»
И хотя я сделал перенос обоих справочников — сейчас перечитав формулировку я бы сделал перенос контрагентов с связанными контактными лицами (а не всех контактных лиц).
Здравствуйте!
Возможно вопрос не к этому занятию, но он имеет отношение к переносу подчиненного справочника.
Есть справочник контрагенты и подчиненный ему — договоры контрагентов. Контрагентов нужно переносить не всех, а только из определенных групп, соответственно, и договора нужно брать, только тех контрагентов, которые переносим. Если настраивать 2 ПВД для контрагентов и для договоров, то придется 2 раза настраивать одно и то же условие для отбора контрагентов. Есть ли какой-нибудь способ — настроить одно ПВД для контрагентов, а данные подчиненного справочника договоры выгружать только имеющие отношение к выгружаемым контрагентам. Это актуально для всей связанной с контрагентами информации, хранящейся в отдельных объектах (подчиненные справочники, регистры сведений)
Ответ на лучший вопрос №1 к занятию №5 оказывается полезен и в этом случае — выбирать связанную информацию и вызывать для них процедуру «Выгрузить по правилу».
Ответила на предыдущий комментарий
Здравствуйте!
У этой задачи есть несколько вариантов решения, но в любом случае, выборку связанной информации придется выполнять «вручную». Самый лучший, наверное — это в ПКО для Контрагента в событии «После выгрузки в файл» написать алгоритм выборки и выгрузки всей связанной информации. В информации по обработчикам для этого события есть небольшой пример. Если контрагентов мало, можно выгружая их, записывать в список в Параметры, а в ПКО для договоров установить фильтр по владельцу, т.е. не выгружать объект, если его владелец не в списке. Можно в ПВД для Контрагентов сформировать общую большую выборку данных, где договоры и вся прочая связанная информация будет находиться во вложенных запросах. Тогда при обходе этой выборки можно выгружать параллельно другие связанные объекты (также с помощью функции ВыгрузитьПоПравилу()).
плиз помогите мне с д/з при конвертации должности сотрудника. Несколько дней ответа нет ;(
Домашнее задание №1.2.2
Здравствуйте!
Посмотрите, пожалуйста, еще раз: я Вам ответила на предыдущий комментарий на странице вопросов по домашним заданиям. Если ответ не виден, напишите.
да не вижу ответ. после того как задал вопрос, все ответы и вопросы пропали.
Добрый день!
Проверьте, пожалуйста, Вашу почту. Мы отправили Вам письмо с support@nasf.ru .
Запишите более подробный урок про циклические ссылки. Посмотрел два раза, но все равно не понял. Принял на веру. После прочтения комментариев стало понятно «о чем товарищ говорит».
Здравствуйте!
Причины проблемы циклических ссылок можно понять, только изучив довольно подробно механизмы выгрузки. Разобраться в них можно, но в рамках обучения лучше просто иметь в виду, что такая ситуация возможна.
Здравствуйте.
Переношу справочник Организации. В дополнение надо сделать запись в регистре сведений. В ПКО Организации в обработчике После загрузки пишу код:
НаборЗаписей = РегистрыСведений.НастройкиУчетаЗарплаты.СоздатьМенеджерЗаписи();
НаборЗаписей.Организация = Объект;
НаборЗаписей.Прочитать();
Если Не НаборЗаписей.Выбран() Тогда
НаборЗаписей.Организация = Объект;
НаборЗаписей.Активность = Истина;
НаборЗаписей.Записать(Истина);
КонецЕсли;
У реквизита НаборЗаписей.Организация тип СправочникСсылка.Организации. При загрузке Выскакивает ошибка Значение поля Организация не может быть пустым.
Не понимаю, в чем ошибка. Объект.Ссылка тоже не проходит.
Здравствуйте!
Скорее всего, дело в том, что в обработчике После загрузки ПКО Объект еще не записан, и ссылка еще пустая. Нужно принудительно получить ссылку или предварительно записать элемент справочника Организации. В запись вставлять нужно, конечно, ссылку, а не объект.
Потрясающе! Спасибо! Перед началом выполнения кода я поставил Объект.Записать(); и все заработало! Жалко что в лекциях эта тема не затронута. Она даже заполнила то, что я ей не прописывал, но что было тоже нужно!
А что это за способ «принудительно получить ссылку» ?
НаборЗаписей.Организация = Объект.УстановитьСсылкуНового( Справочники.Организации.ПолучитьСсылку());
А если синхронизация организаций по уникальному идентификатору, то его нужно передать через параметры объекта и указать как параметр метода ПолучитьСсылку()
Отчасти эта тема затронута в видео-уроке про отложенное проведение документов
Добрый день.
Правильно ли я поняла, что если для ПКС не указано явно ПКО, то правило будет подбираться по типу? По типу источника?
Здравствуйте!
Да, правило подбирается по типу объекта-источника
Подскажите по вопросу отключения механизма кэширования (проблема циклических ссылок) объект выгрузки справ.номенклатура с подчиненным справочником единицы измерения , было рассмотрено 3 варианта решения этой проблемы, все варианты были протестированы, помогает только вариант — не запоминать выгруженные объекты.. в реальной базе имеем 5% пустых ссылок в базе приемнике , .. что посоветуете посмотреть ? проявляется только при больших объемах выгрузки ~1000 объектов
Здравствуйте!
Если возникла проблема циклических ссылок, то создание второго ПКО для единиц (одно для указания в Номенклатуре, второе — для всех остальных случаев) должно решить эту проблему.
Пустая ссылка — это битая ссылка вида «Объект не найден»? Возможно, это связано с нехваткой памяти. Эти ссылки появляются только после загрузки по правилу с отключенным запоминанием объектов? Или при каждом переносе большого количества объектов?
Добрый день!
нет пустая ссылка именно пустая ссылка , появляются без воздействия на механизм кеширования,
работаем в этот момент только с номенклатурой и всем что рекурсивно в ней,
ПКО для единиц сделано ,
если отключлючаем запоминание то все ок (на любых объемах),
причем именно на объемах > 1000 объектов
платформа 8.1 — может в ней дело?
Здравствуйте!
То есть создавали два отдельных правила для единиц, и все равно проблема циклических ссылок оставалась?
Если проблема появляется только на больших объемах, лучше по возможности производить выгрузку с разбивкой. Даже не могу сказать, в платформе дело или нет.
Я бы посоветовала открыть файл данных и посмотреть, как выглядят там пустые ссылки, возможно, стало бы понятнее. Но такие большие файлы либо вообще не откроются, либо там будет долго производиться поиск.
КД 2.1.8.2. Как получить заготовку программного кода для «Входящих данных» как Евгений это делает в уроке 1.3.2? В ПКО нет таких закладок, или смотрю не туда?
Здравствуйте!
Нужно вверху окошка установить флажок «Не использовать мастер настроек», закрыть и открыть снова, и окно будет похоже на то, что на видео
Ольга подскажите, может что пропустил, в рамках выполнения ДЗ 1.2.1 вставлял комментарий в обработчике ПередВыгрузкой чтоб комментарий появился в конечной базе, поясните какая разница, вставлять его ПередВыгрузкой, ПриВыгрузке, ПослеВыгрузки
Здравствуйте!
Событие ПКС Перед выгрузкой происходит до того, как произойдет попытка получения значения стандартными средствами, то есть в этом случае — значение комментария из Источника.
А При выгрузке — уже после этой попытки. Если эта попытка была успешна, то полученной значение комментария из источника будет в переменной Значение.
После выгрузки уже нельзя указать комментарий, потому что свойство уже выгружено.
Посмотрите на странице занятия 9 лучшие вопросы участников курса, вопрос № 2 «Обработчики событий правил конвертации»
Добрый день.
Домашнее задание 1.2.3
В решении преподавателя говорится, что в ПКО Номенклатура(Продукция->Номенклатура) нужно в ПКС указать поиск по ЭтоГруппа.
Непонятно зачем? В исходной Конфигурации справочник Продукция не иерархический. ТО есть из исходной мы будем переносить _только_ элементы, и в конечной будут создаваться только Элементы (не группы).
Я вообще не включала это ПКС в список свойств.
Здравствуйте!
Не нашла то место в решении, где говорится о том, что поиск по ЭтоГруппа обязательно нужно включать. Оно может быть полезно в некоторых случаях. Например, если предполагается поиск по полям поиска, а не только по идентификатору. Например, установлен поиск по Наименованию, и при загрузке может быть найден элемент или группа с таким наименованием.
Здравствуйте.
Не совсем корректная постановка задачи в ДЗ 1.2.3
В решение разобран перенос Номенклатуры для которой определена Цена. А в задании об этом ни слова. Я понял что нужно переносить всю номенклатуру. И соответственно у меня другое решение.
Хотелось бы более четкие постановки задач.
С Уважением.
Здравствуйте!
Ничего страшного, Вы главную задачу выполнили, информацию о ценах перенесли. Все остальное, если не оговорено в задании, на усмотрение разработчика
Добрый день. Не поняла как сделать, чтобы должность из документа «Прием на работу» грузилась в справочник «Сотрудник» должность.
Здравствуйте!
Ответила на странице вопросов по домашним заданиям
Добрый день. При выгрузке регистра сведений «Контактная информация» по настроенным правилам , уод ругаеться (не получается преобразовать строку), что делаю не так, хотя настройка правил легкие.
Здравствуйте!
Не знаю, слишком мало информации. Лучше всего запакуйте правила в zip или rar архив и прикрепите к комментарию
Прикрепить не получается, есть поле только добавить комментария.
Добрый день!
Страница обновлена. Сейчас Вы сможете прикрепить архив.
видео — 1.3.1 Изменение вида иерархии
вопрос относится к иерархии
в ПКС «ЭтоГруппа» выключаем поиск
делаем обмен
далее включаем поиск
делаем обмен и ожидаем что иерархия появится
(и даже если принудительно указать в ПКС «ЭтоГруппа» Значение = Истина;)
иерархия так и не появилась
но если очистить справочник и загрузить повторно, то все ок
с чем связано такое поведение системы?
Здравствуйте!
Это связано с тем, что синхронизация элементов выполняется по уникальному идентификатору. Когда объекты загружаются второй раз, то каждому из них уже соответствует объект в базе-приемнике. Поэтому даже если загружается группа, то по идентификатору все равно будет найден элемент. А свойство ЭтоГруппа у существующих в базе объектов изменить нельзя, поэтому после загрузки он и останется элементом
Когда же загрузка идет в пустой справочник, а ПКС ЭтоГруппа отмечено флагом поиска, то программа создает группу или элемент в зависимости от значения поля ЭтоГруппа
Здравствуйте!
Не понял, почему нельзя задействовать механизм кэширования для ПКО без указанного источника? Пробовал использовать параметр КлючВыгружаемыхДанных, однако это не помогло.
Хочу уточнить, или я чего не понял или действительно так в КД заложено, что ПКО без источника не кэшируются?
Здравствуйте!
Нет, можно включить кэширование. Но если источника нет в ПКО, то кэширование автоматически отключается, и чтобы оно производилось нужно не только указать КлючВыгружаемыхДанных, но и написать строчку
ЗапоминатьВыгруженные = Истина;
Циклические ссылки.
А нельзя как-то для ПКС табл.части ПТУ указать, что Владелец реквизита ЕдиницаИзмерения из ОбъектаКоллекции – это Товар из той же самой коллекции?
Извините, Единица «знает» своего владельца Еще почитаю ответ от 25.03.
Ок
Если мы укажем ИсходящиеДанные (код, наименование) в ПКС, например, Должности, будут ли они доступны везде, в смысле, во всх других ПКО? Поясню, например, будет выгрузка по ссылке двух справочников с одинаковой (пересекающейся) информацией. Если мы передаем код и наименование (для поиска потом по ним), ВходящиеДанные сможем использовать и там и там?
Здравствуйте!
ИсходящиеДанные существуют внутри одного ПКО и всех его ПКС. Из этих ПКС они передаются в другие ПКО (указанные в этих ПКС) в качестве Входящих данных, а дальше по цепочке уже не передаются.
1. В каких случаях используется флажок «получить из входящих данных», а в каких используется обработчики Значение = ВходящиеДанные.Свойство ?
2. Почему в главе 1.3.3, когда меняем местами Товар и ЕдиницуИзмерения, выгружается все хорошо. Но выгружается 12 объектов. А когда создаем новое правило выгрузки единиц измерения, выгружается 13 объектов?
Здравствуйте!
1. Если дополнительных условий для получения свойства нет, то проще поставить флажок. А если нужно, например, проверить, содержат ли ВходящиеДанные указанное свойство, то можно вручную прописать эту проверку и получение свойства тоже.
2. Когда для выгрузки единиц из документа было создано новое правило, то Единица измерения, указанная в документе, стала выгружатся два раза — один раз по старому правилу (по ссылке из номенклатуры), и один раз по новому (по ссылке из документа).
Когда я создаю ПКО и на предложение создать автоматически ПВД отвечаю согласием, они не создаются. Подскажите, что я не так делаю?
Здравствуйте!
Это ошибка в текущей версии КД. Можете исправить: Общая форма “ПравилаОбмена”, в Процедуре СозданиеПравилВыгрузкиДанных() нужно “ИЛИ” заменить на “И”.
Здравствуйте!
Для лучших вопросы участников курса предусмотрены видеоответы, но скачать невозможно: Ссылка устарела.
1. Заполнение значений для групп
ConvData-Session-02-SystemSettingsStorage-QA03.avi
2. Указание правила конвертации
ConvData-Session-02-SystemSettingsStorage-QA05.avi
Добрый день!
Откройте данную страницу в другом браузере. Если проблема не исчезнет, пожалуйста, напишите нам на support@kursy-po-1c.ruи приложите скриншот с ошибкой.
Спасибо, все скачал!
В видео-уроке 1.3.1 при настройке ПКО справочника подразделения, ставится флаг поиска у ПКС Родитель, для чего? Хоть с ним и хоть без него не переносятся элементы справочников
Здравствуйте!
В видео-уроке 1.3.1 не ставится флаг поиска у ПКС Родитель. В первой части ставится флаг поиска у ПКС ЭтоГруппа, а во второй — ПКС ЭтоГруппа и Родитель отключаются.
Здравствуйте!
Тест для самопроверки штука полезная, но будет гораздо лучше, если в самом тесте не будет ошибок:
Во втором вопросе из серии картинок неверная картинка номер 2 — редактируется не тот ПКС — На картинке — ПКС ТипЦенРозничнойТорговли, а надо ПКС ТипЦенНоменклатуры,
тогда эталонный результат будет правильным.
Лучше исправить, что бы не вводить людей в заблуждение.
Здравствуйте!
Согласна, исправим :) Спасибо за внимательность!
А почему в тесте самопроверки для этого урока (на этой странице) в третьем вопросе два правильных ответа из трех? Разве это корректно? И суть вопроса трудно понять, но это наверное потому что просто не хватает пока понимания в предметной области.
ПС
Разобралась. Потому что в третьем не переключатели а флажки.
Здравствуйте!
Да, в некоторых вопросах тестов бывает больше одного правильного ответа
Добрый день. В видеоуроке по циклическим ссылкам, один из методов решения создать пвд для единиц измерения. Мб я что-то не понимаю, но разве это решит проблему ?
Здравствуйте!
Решит, только ПВД нужно создавать не для Единиц, а для Номенклатуры, и выполняться оно должно раньше, чем ПВД для документа. Тогда связки товаров с единицами уже будут выгружены к моменту выгрузки документов.
Так как со временем жуть и с курсом и так отстаю не буду ставить экспериментов, а внаглую задам вопрос. По циклическим ссылкам. Хорошо в примере выгрузка идет второй раз явно. А если у нас 2 реквизита ссылающиеся на один объект. В одном из них реквизит данным объектом не заполнится? А если это объект много где фигурирует (точнее на него ссылаются много реквизитов разных объектов и в них он только через по ссылке выгружается)? Или опять же, выгружается объект до некоторого другого объекта, а у реквизита реквизита реквизита этого другого есть ссылка на тот же объект. Он тоже не заполнится? Надо для каждого случая отдельное одинаковое ПКО копировать? Как-то странно и загадочно это. Ну закеширован объект, так почему хотя бы ссылку не выгружают, для дальнейшей подстановки? Что она прорву места займет? Или я чего-то неправильно понял?
Здравствуйте!
Большинство описанных Вами ситуаций кэширование обрабатывает правильно. А проблема циклических ссылок появляется, когда объекты взаимно ссылаются друг на друга, причем эти ПКС отмечены флагами поиска. На примере из видео-урока:
Если поставить флажки поиска у ПКС Владелец для ПКО Свойства номенклатуры и у ПКС Свойство у ПКО Номенклатура, то не зависимо от порядка ПКС в ПКО для документа, загрузка будет идти не корректно. И если эти флажки снять, то все будет загружаться нормально.
Выгрузка всегда идет рекурсивно, до последнего уровня вложенности. Если по ссылке из документа первой встретилась номенклатура, то потом идет выгрузка всех ее свойств, среди них – основное свойство, значит, начнет выгружаться именно оно, и если среди реквизитов этого основного свойства есть еще ссылочные данные, то будут выгружаться они. Но когда встречается Владелец, то программа “знает”, что этот объект уже висит в стеке объектов, которые будут выгружены. И пришивает свойству узел ссылки на него. Но тут есть разница: готов ли этот узел ссылки? Если, например, Основное свойство помечено флагом поиска, то оно должно войти в узел ссылки, но после того, как будет выгружено. А выгрузка его еще не закончена. Поэтому узел ссылки пришивается пустой. Потом в файл данных пришивается объект Свойство Номенклатуры, потом Номенклатура, а потом сам Документ.
Вопрос по переносу единиц измерения. Не пойму в чем разница между тем ПКО, что было изначально, и тем что мы создаем для документа? почему при явном указании ПКС не прописать первое ПКО Единиц?
на моем примере создание этого правила не помогло, единицы так и не выгружались
Здравствуйте!
Эти ПКО одинаковые. Просто при кэшировании запоминаются объекты, выгруженные в рамках одного ПКО. Если одно и то же ПКО указать и для документа, и для Номенклатуры, то получается, что Единица запоминается при выгрузке по этому ПКО из документа, и в номенклатуру не попадает. А если указать разные ПКО, то кэширование будет происходить отдельно при выгрузке из документа и при выгрузке из Номенклатуры.
Добрый вечер!
В видео-уроке № 1.3.3 количество объектов — 12 — выгружаются и загружаются до и после изменения приоритета обработки ПКС для документа «ПоступлениеТовара» — т.е. их число не меняется. Я к тому, что, получается, что «механизм кэширования» как-то странно работает)
Здравствуйте!
Механизм кэширования не зависит от порядка следования ПКС. Данные кэшируются так же, и каждый объект по-прежнему выгружается 1 раз. Посмотрите, пожалуйста, на этой странице уже задавали вопрос про урок 1.3.3, я вкратце описала в ответе механизм возникновения этой ошибки.
Изменение порядка реквизитов Товар и Единица работает потому, что есть разница в настройках ПКО для этих реквизитов. В ПКО для Единиц ПКС Владелец (Товар) отмечен флагом поиска, а в ПКО для Товаров — ПКС Единица этим флагом не отмечена. Есть у нее тоже включить поиск, то ошибка будет возникать при любом порядке. Если снять оба этих флага поиска, то ошибка при любом порядке возникать не будет
Здравствуйте!
Вопрос по видео 1.3.2 (перенос независимый->подчиненный).
В видео переносятся один элемента справочника «КонтактныеЛица» в два элемента с одинаковым кодом такого же справочника конечной базы. А в конечной базе для этого справочника включен контроль уникальности кодов по всему справочнику. Мне кажется, что надо было дополнительно отключить выгрузку свойства «код» в
пко «Контактные лица», поставить флаг поиска по наименованию и владельцу и поставить флаг «Автоматически генерировать номер или код, если он не задан». Это так?
Здравствуйте!
Да, все верно. Лучше включить автогенерацию.
Добрый день. Проблема понимания механизмов кэширования.
1)Правильно ли я понимаю, что если у нас стоит поиск по полю, то вначале выгружается это поле, а потом уже сам объект ?
2)Если поиска не стоит то выгружается сам объект, а потом уже его поля ?
Здравствуйте!
Все свойства выгружаются в процессе выгрузки объекта. Но те, которые отмечены флагами поиска, выгружаются раньше остальных и попадают в узел ссылки. Т.е сначала создается узел Объект. Потом создается узел Ссылка. Потом выгружаются свойства поиска, записываются в узел Ссылка, а он — в узел Объект. Потом выгружаются остальные свойства, для которых настроены ПКС, и записываются непосредственно в узел Объект. Они стоят после узла Ссылка. Можете открыть файл с данными, и Вы увидите, как расположены все эти узлы
Ольга, добрый день. Дико извиняюсь, но все равно еще не дошло.
В качестве эксперимента в тч сначала поставил выгружаться товар, потом единицу измерения. У товара добавил поиск по основной единице измерения, у единицы измерения оставил поиск по владельцу.
Тут цепочка вроде понятна : выгружается номенклатура, т.к. у ней поиск стоит по единице измерения, то начинает выгружаться она, у нее стоит поиск по владельцу, а т.к. он еще не сформировался, то прикрепляется пустая ссылка и владелец у единицы измерения оказывается незаполненным.
Почему когда я ставлю не запоминать выгруженные объекты (для пко единиц измерения), все формируется нормально ?
Почему для свойства единицы измерения (реквизит основная единица измерения, реквизит тч) в узле Ссылка, для правила в котором не проставлено свойство «Не запоминать выгруженные объекты» стоит например » Ссылка Нпп=»6″ «, а в правиле где я включил это свойство, узлу Ссылка принадлежат узлы поиска ?
Спасибо.
Здравствуйте!
Потому что в первый раз будет абсолютно так же выгружена единица с пустым владельцем. Но когда она по ссылке из ТЧ будет выгружаться второй раз, то номенклатура-то уже выгружена, и ссылка на нее может быть присвоена. Таким образом, в процессе загрузки сначала запишется единица с пустым владельцем, а потом она перезапишется, и владелец заполнится.
Там будут разные комбинации узлов в зависимости от того, в каком именно ПКО поставить флажок «Не запоминать выгруженные»
Ольга, спасибо большое. Теперь дошло)
:)
Здравствуйте!
Не знал в какой раздел написать.
Версия обработки универсальный обмен 2.0.17 для 8.0
Сегодня писал правила конвертации для переноса данных между конфигурациями на платформе 8.0. Возникли следующие проблемы проблемы:
1)Почему-то не работает функция ЗначениеНеЗаполнено в любом обработчике ПКО Документа. В данном случае проверял дату на заполнение.Пишет ошибка компиляции кода. в чем может быть проблема?
2)Флажок автоматически генерировать код или номер при загрузке не играет никакой роли. Вероятнее всего из-за старой версии. Есть какой-нибудь способ решения проблемы?
Здравствуйте!
Версия, действительно, очень старая. Лучше бы, конечно, учиться на новой. Они довольно сильно отличаются, и придется переучиваться
Для 8.0 в релизе конвертации 2.1.6.5 была только эта версия. В шаблонах релиза 2.1.8.1 обработки универсальной обмен данными для 8.0 вообще нет.
Курс был записан на платформе 8.2, и домашние задания мы рекомендуем выполнять на платформе 8.2. Я, к сожалению, не могу предсказать поведение обработки такой старой версии. В ней другие особенности и другие ошибки. Лучше учиться на новой версии
Здравствуйте, вопрос связан с оптимизацией в обработчике полей поиска. Можно ли в нем (и вообще в обработчиках) выносить общие куски кода в процедуры и функции? было бы удобно повторяющиеся куски кода вынести в функции, которые бы возвращали строковое значение, в нашем примере, список полей поиска.
Здравствуйте!
Большие куски кода можно выносить в Алгоритмы и Запросы. Они не возвращают значений, но могут изменять значения параметров того контекста, в котором выполняются
Спасибо, направление я понял, однако знания по работе с тем, что вы назвали, видимо, получу позднее :)
Да, в курсе есть информация об использовании Алгоритмов и Запросов.
Вопрос, не вполне относящийся к заданиям, скорее относится к тонкостям работы с конфигурацией ко КД.
Однажды перед выгрузкой правил обмена мы поставили флажок, который отвечает за то, что правила выгружаются, минуя открытие окна настроек (чтобы не задавать путь для выгрузки итп).
Как теперь снова добиться открытия окна, если захочу поменять, например, путь для выгрузки?
Здравствуйте!
Меню Сервис — Настройки пользователя — снять флажок «Выгружать правила обмена при открытии формы настройки»
Благодарю, это и искал.
Домашнее задание 1.2.1 кажется подозрительно простым. Если в теории был перенос независимого справочника в подчиненный, то здесь наоборот. При этом никаких дополнительных настроек и кода добавлять не пришлось. Даже ответственные лица разные у всех контрагентов (если было бы одно у разных контрагентов, то пришлось бы решить задачу переноса нескольких элементов в один). Возникает вопрос: может я что то упустил или не так понял? Уж очень все просто. Или смысл данного задания в использовании обработчика события ПередВыгрузкой в ПКС для комментария?
Здравствуйте!
Нет, оно действительно несложное, без подвоха. Первые задания нацелены на закрепление базового материала. Дальше будут задачи поинтереснее ))
Свободный график к сожалению приводит к рассинхронизации просматриваемого видео с решаемыми дз. Я первые дз кинулся решать просмотрев только первую главу и только дойдя главы до четвёртой, пятой в просмотре стал понимать примерно какие ответы требуется давать на ДЗ, стал владеть терминологией.
Здравствуйте!
Лучше решать задания после просмотра соответствующих глав. Обычно ДЗ дано для закрепления приемов, данных в этой главе
Я только-только разобрался что надо работать именно через конфигурацию по работе с курсами. Она производила вариант нерабочего продукта изначально из-за того что ругалась на отсутствие файлов у меня. И вроде бы модули скачал, а ругалась. Сейчас то я уже в теме что надо скачать в соответствующие папки pdf с заданиями. Жаль время упущено.
Добрый День, вопрос по видео-решению задания 1.2.1, т.е. «1C-ConvData-Module1-HomeWork02.1-Solution-Part01». Подскажите почему у Евгения переносится 8 объектов, а у меня 9 (конкретно, в видео не переносится элемент ООО «Тест», группы «Старые поставщики» )?
Здравствуйте!
По всей вероятности, этот элемент был добавлен уже после того, как было записано видео-решение
Подскажите плиз.Как в структуру Исходящие данные передать пустую ссылку, ну или другими словами. необходимо чтобы при выгрузке по ПКО в которое передаются данные была выгружена пустая ссылка справочника приемника. Спасибо
Здравствуйте!
Пустая ссылка обычно выгружается как узел свойства, где указан тип данных и значение «Пусто». Так выгружаются незаполненные реквизиты, и при этом пустое значение выгружается без использования ПКО. Т.е. если выгружаемый реквизит пустой, то выполнения ПКО не происходит вообще, а в узел свойства выгружается значение «Пусто».
Вопрос по видео 1.3.3 Проблема циклических ссылок.
Не понял, всё-таки почему не перенеслась основная единица товары в строке тч, если колонка тч «Единица измерения» выгружается раньше. Происходит, как говорится в видео, кэширования «Единиц измерения» , но кэширования — выгруженных объектов (т.е. описание всего объекта). Но причем здесь реквизит «Основная единица» карточки товара? При выгрузке основной единицы из карточки товара, натыкаемся на кэш, что такая единица уже выгружалась, поэтому сам объект единицы измерения не выгружается повторно, но должна выгрузится просто ссылка на основную единицу? Или здесь какая-то «загагулина» именно с циклическими ссылками?
Здравствуйте!
Дело в том, что при выгрузке каждого объекта происходит обход и выгрузка всех его свойств, и если среди свойств встретились ссылочные, то происходит выгрузка объекта свойства по ссылке. Т.е. рекурсивно происходит выгрузка объектов до самого последнего уровня вложенности, где уже нет среди свойств ссылочных данных. Причем при обходе свойств сначала выгружаются те, у ПКС для которых установлен флаг поиска, эти свойства должны быть выгружены в узел «Ссылка», который указывает на данный объект и идентифицирует его. Этот узел вставляется в то свойство другого объекта, где нужна ссылка на этот объект.
В данном случае по ссылке из документа выгружается сначала Единица. У Единицы есть ПКС Владелец которое помечено флагом поиска, т.е. он должен войти в узел ссылки. Но это свойство ссылочного типа, поэтому программа запоминает, что Единица находится в памяти и еще не выгружена, и начинает выгружать Товар. Но у товара тоже есть ссылка на эту Единицу, и чтобы выгрузить товар, нужно ему в узел свойства прикрепить узел ссылки на Единицу. А этот узел еще не сформирован, поэтому прикрепляется пустой узел ссылки. Поэтому в конечной базе Единица получается в товаре не указана.
Ольга, здравствуйте.
Подскажите, пожалуйста, а почему Вашем описании примера не происходит дальнейшего зацикливания, то есть почему когда система понимает что необходимо выгрузить товар, чтобы поставить ссылку в единицу измерения, и при этом нужно выгрузить саму единицу измерения чтобы подставить в товар — не идет дальше так — а в единицу измерения надо подставить товар, в товар — единицу измерения и так до бесконечности. Как система понимает, что на этом уровне надо сделать стоп и в товар записать пустую ссылку? Ведь раньше Вы говорили, что система идет до упора до того объекта в котором уже не будет свойств ссылочного типа.
Спасибо!
Здравствуйте, Владимир!
Потому, что каждый раз, находя новое ссылочное свойство, которое надо выгружать, система проверяет, не висит ли та же самая ссылка в стеке выгружаемых объектов. А если она там висит, т.е. этот объект уже находится в процессе выгрузки, то в это свойство добавляется узел ссылки этого объекта (если он уже сформирован. А вот если нет, то возникает проблема «циклических ссылок»).
Ольга, спасибо. Извиняюсь за дотошность, появилась еще пара вопросов: 1) то есть проверяет на наличие в стеке система только по GUID? Просто предположил, что в качестве сравнения вместо ссылки может использоваться узел ссылки, а туда может включаться не только GUID, и тогда возникает еще больше вопросов..
2). И на то что система ищет в стеке не висит ли та самая ссылка — влияет галочка в ПКО не запоминать выгруженные объекты? То есть если поставить эту галочку в ПКО товары и в ПКО единицы измерения будет ли система до бесконечности ставить к выгрузке номенклатуру и единицы измерения, не учитывая то что находится в стеке?
Здравствуйте!
1. Система проверяет объект в стеке тоже по Ключу выгружаемых данных.
2. Да, если в обоих правилах стоят флажки «Не запоминать выгруженные», то выгрузка входит в бесконечный цикл
а куда можно задавать вопросы возникшие может не по этой теме?
например
в правилах в обработчике «перед выгрузкой объекта» пишу
НеЗамещатьОбъектПриЗагрузке = НЕ Параметры.ЗамещатьОбъектПриЗагрузке;
и не работает!!!!
а прописываешь в конкретном объекте в том же обработчике и все нормально
вопрос:
1) что раньше общий обработчки или частный?
2) почему не сработало в общем?
3) как такую задачу решить для всех выгружаемых объектов или только документов например?
Здравствуйте!
Обработчик события Конвертации «Перед выгрузкой объекта» дублирует не событие ПКО, а событие ПВД. Если Вам нужно событие, дублирующее «Перед выгрузкой» ПКО, используйте обработчик Конвертации «Перед конвертацией объекта»
Урок 1.2.10
Почему при переносе подчиненных справочников в пкс «владелец»мы не указываем пко.
Как программа понимает что нужно перенести по правилу «Номенклатура»?
И если у меня владелец составной тип данных, то я должен в обработчике при выгрузке написать «условие истина тогда ИмяПКО = «Номенклатура» иначе «номенклатурная группа» » ?
Здравствуйте!
Если в ПКС для ссылочных типов не указано ПКО, то происходит попытка найти подходящее по типам источника и приемника ПКО среди настроенных. В таких простых правилах и в учебной задаче можно было не указывать ПКО в ПКС, но в реальной работе рекомендуется указывать его явно.
Да, если переносится составной тип данных, то перед выгрузкой или при выгрузке ПКС нужно определить параметр ИмяПКО, и для конвертации свойства будет использовано указанное ПКО
ДОбрый день! Вопрос по видео к заданию 1.2.3. Решение для циклических ссылок. Если мы сняли флаг поиска по Владельцу и Коду для спр.Свойства номенклатуры. Непонятно было , перенесся ли этот элемент как подчиненный для Номенклатуры (Евгений не показал это в видео-решении). И в файле данных не видно тега по которому ищется владелец для элемента справочника Свойства номенклатур…
Здравствуйте!
Если мы сняли поиск по этому свойству, это не значит, что значение этого свойства не переносится. В данном примере поиск выполнялся только по Уникальному идентификатору, поэтому поиск по Владельцу был не нужен. Но значение Владельца переносилось, и элементы создавались с подчинением Номенклатуре.
Заступорился на задании 1.2.2. Второй день бьюсь. можно отчитаться о не успешном результате?
Здравствуйте!
Лучше написать, что не получается, на странице с вопросами по домашним заданиям. Можно прикрепить zip или rar архив с правилами. И добиться успешного результата )
В домашнем задании 1.2.2 требуется перенести должность сотрудника из строки документа ПриемСотрудника в справочник Сотрудники.
Я пробовал написать ПКО Документ.ПриемСотрудника -> Справочник.Сотрудники. Не сработало.
Ну, хорошо, в решении переносится документ.ПриемСотрудника и при переносе табличной части мы передаём ИсходящееЗначение, а если в конечной базе нет документа ПриемСотрудника? Как переносить должность в таком случае?
Здравствуйте!
Тогда будет несколько другая задача. Можно, например, при выгрузке подбирать должность для каждого сотрудника запросом. А можно сформировать запросом саму выборку сотрудников так, чтобы у них уже была заполнена должность. Все эти приемы будут рассмотрены дальше
Что мешает программе сопоставить эти 2 товара и не создавать новый. ( если сопоставлять по наименованию). Наименования кажутся полностью совпадающими ?
Здравствуйте!
Мы решаем задачу переноса данных последовательно. Если в задании ничего не сказано про синхронизацию, значит, либо нужно оставить поиск по умолчанию, либо мы будем решать эту проблему позже.
Вопрос по видео 1.3.3 Проблема циклических ссылок. время 08:30
Не понял каком порядке действует кеширование..
Если товар выгружается раньше, сначала выгружается его реквизит основная единица измерения, кешируется, а потом единица измерения из тч берется из кэша?
А если наоборот порядок.. по идее то же самое.. все равно значение должно браться из кэша, только для основной единицы измерения..
Вы правы, ситуация с Товаром и Единицей симметричная, за исключением одного: в ПКО для Единиц ПКС Владелец отмечено флагом поиска, а в ПКО Номенклатура ПКС Единицы не отмечено.
Если флаг поиска по Владельцу снять, (и флаг поиска для ПКС Единицы в ПКО Номенклатуры тоже снят) то каков бы порядок ПКС ни был, все выгрузиться нормально. Если, наоборот, оба флага поиска установлены, то будут ошибки, тоже не зависимо от порядка ПКС.
Порядок, в котором происходит кэширование и причину, почему флажок поиска влияет на результат, можно объяснить, только очень подробно рассказав о процессе выгрузки.
Скажите, пожалуйста, вот этот момент
«Порядок, в котором происходит кэширование и причину, почему флажок поиска влияет на результат, можно объяснить, только очень подробно рассказав о процессе выгрузки» будет где-то в последующих уроках подробно разъяснен? Все-таки не до конца еще понятен механизм и как влияет на выгрузку флаг поиска.
Здравствуйте!
Там выше есть ответ на подобный вопрос, я постаралась там объяснить механизм выгрузки и почему так происходит. Более полное понимание процесса будет приходить по мере выполнения домашних заданий
День добрый!
Домашнее задание №1.2.2
В видео 1C-ConvData-Module1-HomeWork02.3-Solution-Part02.avi, в самом конце не совсем понятно, чего хотели добиться отключением полей поиска, т.к. порядок обработки ПКС остался тот при котором и так все выгружается (сначала «Товар» потом «Свойства товара»). Неплохо бы для чистоты эксперимента «Свойства товара» было поставить перед «Товар».
Здравствуйте!
Да, имеет место небольшая ошибка в ходе выполнения решения, однако подход этот работает, и если бы «Свойства товара» стояли выше «Товара», объекты бы загрузились корректно все равно
Не уловил, чем нам в 3-м уроке помогло создание еще одного ПКО для единиц измерения. Тем, что кэширование данных происходит в рамках конкретного ПКО. Данные выгруженные одним ПКО не могут использоваться другим?
Здравствуйте!
Да, именно так. Объекты кэшируются только в рамках одного ПКО