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

Преобразования при переносе данных

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

  • Глава 5. Перенос разнотипных данных

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

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

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

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

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

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

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

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

  1. Алексей

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

    • AlexeyDubrovin

      Посмотрите урок 2.2.4. Подключаемые обработки. Там подобное рассматривается

  2. SinO

    Добрый день! Подскажите пожалуйста, решаю такую задачу:
    Есть две базы УТ 11.4, из Источника передается документ “Заказ на перемещение” в Приемник должен заходить как “Перемещение товаров”, но табличная часть перемещения в Приемнике должна заполнятся по существующим остаткам склада отправителя т.е.

    В заказе имеем Т1 5шт;Т2 5шт;Т3 10шт, а на остатках в Приемнике Т1 2шт;Т2 1шт;Т3 0шт соответственно в документе Перемещение товаров табличная часть заполняется вот так Т1 2шт;Т2 1шт как можно реализовать такой перенос?

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

    Правила прилагаю

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


            (текст комментария доступен только участникам Мастер-группы)

            • AlexeyDubrovin

              Добрый день. У меня Ваше правило отработало через универсальный обмен данными в формате xml

              • SinO

                Добрый день! У меня не отрабатывает. Хотелось бы узнать я правильно делаю? Или нет? Сам механизм, можете проверить? Какую последовательность соблюдать, схему можете подсказать? Просто есть сомнения по поводу моих правил. И они все же не отрабатывают, товарный состав переносится один к одному, опишу еще раз ситуацию:
                В базе Источнике в заказе на перемещение присутствуют товары: Т1-5шт;Т2-5шт;Т3-10шт нужно, что бы при загрузке или после выгрузки в базе Приемнике табличная часть документа перемещения товаров корректировалась (пере заполнялась) в соответствии с остатками базы т.е. в базе приемнике на остатке есть:
                Т1-2шт;Т2-1шт;Т3-0шт соответственно в документ перемещения должен попасть вот такой товарный состав: Т1-2шт;Т2-1шт, а у меня ничего не пере заполняется, переносится один к одному товарный состав.

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


                  (текст комментария доступен только участникам Мастер-группы)

  3. armik89

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

    Пытался повторить перенос в реквизит составного типа из урока 1.5.5. Все переносится, но отображается не синоним, а программное имя. В чем может быть причина?

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


      (текст комментария доступен только участникам Мастер-группы)

  4. Тимур

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

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


      (текст комментария доступен только участникам Мастер-группы)

      • Тимур

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

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


          (текст комментария доступен только участникам Мастер-группы)

  5. Алексей

    Добрый день!
    Помогите, пожалуйста, разобраться. Не удается воспроизвести пример (глава 5, урок 6) “Перенос в реквизит составного типа данных”. Повторяю все действия тренера (создаю ПКС ПричинаУвольнения, пишу код обработчика Перед выгрузкой как в видео, где задается значение параметра ТипПриемника). Однако значение переносится как строка – в приемнике в нее записывается идентификатор значения перечисления, а не ссылка. В файле данных для свойства ПричинаУвольнения ни указывается его тип (например, для работника Абрамов).
    Использую версию Конвертации данных 2.1.8.2, платформа 8.3.10.2651. Правила обмена и файл с данными прилагаю.

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


      (текст комментария доступен только участникам Мастер-группы)

  6. Светлана

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

    Возникла ошибка при загрузке правил обмена “{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(724)}: Конструктор не обнаружен
    Возврат Новый(Тип);

    Что делать??

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


      (текст комментария доступен только участникам Мастер-группы)

  7. Grigoriy99

    Добрый день. Переношу справочник “Договоры контрагентов” БП2.0-БП3.0. В БП2.0 добавлен новый реквизит типа перечисление “ПроектДоговора”. В БП 3.0 это реализовано через “Дополнительные реквизиты” с типом значения Дополнительное значение с указанием ограниченного перечня выбираемых значений.
    Создал ПКО для справочника Договора контрагентов, в процедуре “После загрузки” указал следующий код

    ТЗСвойства = Новый ТаблицаЗначений;
    ТЗСвойства.Колонки.Добавить("Свойство");
    ТЗСвойства.Колонки.Добавить("Значение");

    Строка = ТЗСвойства.Добавить();
    //Указываем свойство
    Строка.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ПроектДоговора");
    //Значение свойства
    Строка.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Проект1");
    //Записываем значение свойства в договор
    УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(Объект.Ссылка, ТЗСвойства);

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

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


      (текст комментария доступен только участникам Мастер-группы)

      • Grigoriy99

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

  8. Florio

    Здравствуйте! Прошу помочь с пониманием настроек конвертации на конкретном примере.
    Видео из Модуля 1, главы 5, 1.5.4. Конвертация “справочник – перечисление”, скриншот на 07:21.
    Здесь приведено ПКС, в котором программно устанавливается реквизит «СостояниеДокумента». Вопрос: насколько понимаю, реквизит ПКС Источник заполняется в случае явного сопоставления реквизитов Источника и Приемника. В данном же случае, при обращении из ПКС к реквизиту ПКО через точку: «Источник.СтатусДокумента = …», заполнять поле ПКС Источник не требуется, поле лучше было оставить пустым. Прав ли я?

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


      (текст комментария доступен только участникам Мастер-группы)

  9. vishnyakov

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

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


      (текст комментария доступен только участникам Мастер-группы)

      • vishnyakov

        А как происходит передача значения из ПКС в ПКО? Что передается и в каком виде? Опять же какая разница будет между примитивным типом данных и ссылочным? И как в этом участвует параметр “Значение”, он нужен только для разработчика или значение “Значения” всегда чем-то заполняется?

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


          (текст комментария доступен только участникам Мастер-группы)

  10. Владимир Бычков

    Добрый день. Вопрос по ДЗ 1.4.2, подзадание 2. В решении преподавателя в ПКО РеализацияТоваровУслуг в ПКС для Организация обработчик ПередВыгрузкой получает значение константы

    Значение = Константы.Организация.Получить();

    далее управление передаётся в служебное ПКО Организации, где в ПКС Наименование в обработчике ПередВыгрузкой следующий код:

    Значение = Источник;

    непонятен его смысл, разве это не дублирование стардартного поведения системы?

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


      (текст комментария доступен только участникам Мастер-группы)

      • Владимир Бычков

        да, понял в чем дело. Изначально прописал получение значения константы в 2-х местах, в ПКС Организация ПКО РТУ и в ПКС Наименование ПКО Организация. В таком состоянии выгрузка-загрузка естественно прошла успешно, потом когда убрал дублирование перед загрузкой не удалил данные, в результате показалось, что отработало и так :) Но при выгрузке ошибки нет

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


          (текст комментария доступен только участникам Мастер-группы)

  11. b0nd

    Добрый день.
    Лекция 1.5.2.
    Перенос строки КодаФилиала Работника в Справочник Организации, где код филиала является кодом объекта Организация. Версия КД 2.1.8.2. Версия обработки УОД 2.1.8. Для того, чтобы работало ПКС КодФилиала->Организация не пришлось поставить флаг поиска, иначе ПКС просто не отрабатывалось.
    Лекция 1.5.5
    ТипПриемника не переносится. “Использовать оптимизированный формат…” перед выгрузкой снимаю. В файле выгрузки тип данных указан, в конечной базе требует выбрать тип при попытке редактирования реквизита сотрудника… Или я неверно трактую системное сообщение? Когда открывается окно для выбора типа данных – строка с типом данных, которая подсвечена и является типом данных, который соответствует подставленному в данный момент значению? Или для перечисления должен сразу открываться список значений перечислений?

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


      (текст комментария доступен только участникам Мастер-группы)

  12. Александр

    Мой вопрос не относится напрямую к этому уроку, но в обработке универсального обмена для обычных форм можно устанавливать отборы на выгружаемые данные. В управляемом варианте – только период. С этим нужно мериться или есть какие-то настройки/другие возможности?

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


      (текст комментария доступен только участникам Мастер-группы)

      • Александр

        *мИриться*, ошибся в тексте вопроса.
        Спасибо, Ольга.
        Т.е. без дополнительных настроек правил конвертации отбирать можно только в режиме обычного приложения? Там фильтры доступны по умолчанию.

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


          (текст комментария доступен только участникам Мастер-группы)

  13. Марк

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

    У меня такая задача. Необходимо перенести документ. В источнике нет табличной части, а в приемнике есть. Мне нужно добавить одну строку в табличную часть. Как мне это лучше сделать? Правильно ли будет если я пойду таким способом:
    в ПКО документа в обработчике “После загрузки” написать код

    НоваяСтрока = Объект.ПродажиВНТТ.Добавить();
    НоваяСтрока.Сумма = Объект.СуммаДокумента;

    Или есть какой то более правильный и оптимальный способ?

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


      (текст комментария доступен только участникам Мастер-группы)

  14. lasysh

    1. Тип клиента >> Вид клиента
    Создаем ПКО для данного переноса
    ПКС: в качестве приемника: Наименование, в Обработчике “Передвыгрузкой”:”Значение=Строка(Источник);”
    Создаем ПКС Типклиента >> Видклиента в ПКО Контрагенты
    2. Юридическое лицо >> Юридическое физическое лицо.
    Создаем ПКС Юридическоелицо>> Юридическоефизическоелицо в ПКО Контрагенты
    в Обработчике “Передвыгрузкой”:

    Если Источник.ЮридическоеЛицо=Истина Тогда
        Значение="ЮридическоеЛицо";
    Иначе
        Значение="ФизическоеЛицо";
    КонецЕсли;
    >
    • Татьяна Гужавина

      Доброго дня!
      На текущей странице принимаются только вопросы по занятию.
      Отчет по заданию нужно оставить на странице с самим заданием.

  15. Виталий Тарасов

    В уроках не первый раз используется прием, когда в обработчике ПКО ПослеЗагрузки проверяется объект на модифицированность, или что реквизит действительно изменился. А как быть с константами, если они все разом переносятся в ПКО КонстантыНабор? Пример. Необходимо объединить несколько баз в одну, константы везде идентичны, но значения могут различаться. Допустим, что все константы булево. Как сделать, что если в итоговой базе константа имеет значение Истина, а у очередной передаваемой – Ложь. Как указать, что если уже есть Истина, то на Ложь менять нельзя? Что вообще является Объектом в обработчике ПослеЗагрузки – массив констант?

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


      (текст комментария доступен только участникам Мастер-группы)

  16. JaneSv

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

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

    Если Найти(нрег(Источник.ПричинаУвольнения),"прогул") тогда
        Значение="ЗаПрогул";
         ТипПриемника="ПеречислениеСсылка.ПричиныУвольнения";
         Сообщить(Значение + "_" + ТипПриемника);
    ИначеЕсли Найти(нрег(Источник.ПричинаУвольнения),"собствен") тогда
        Значение="ПоСобственномуЖеланию";
         ТипПриемника="ПеречислениеСсылка.ПричиныУвольнения";
         Сообщить(Значение + "_" + ТипПриемника);
    КонецЕсли;

    Но в файл с данными тип не заполнен, хотя в Сообщить выдает тип правильно.
    Ваш совет снять флажок Использовать оптимизированный формат … на закладке
    Доп. настройки при загрузке результата не дал.
    Что еще надо исправить или проверить?

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


      (текст комментария доступен только участникам Мастер-группы)

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