Конвертация данных 1C, правила конвертации группы свойств (ПКГС)

Реквизит «СтавкаНДС» в дереве метаданных конфигурации 1С

Доброго времени суток, уважаемые читатели блога SoftMaker.kz. Раньше на этом сайте уже была опубликована статья о конвертации

«Как в 1С сделать выгрузку и загрузку данных с помощью конфигурации Конвертация данных из 7.7 в 8.2?»
, в этой статье было показано,
как можно настроить обмен, используя конструкторы, с помощью которых создаются правила обмена.
Этот способ можно используется при конвертации баз из 1С версии 7.7 в 8.2.
Сейчас мы поговорим, как переносить данные между конфигурациями 1С 8.2, которые несколько отличаются друг от друга.

Основное внимание в этой статье будет уделено конвертации табличной части документа, а это значит, что
мы будем работать с правилами конвертации группы свойств – ПКГС.

Подготовка к настройке ПКГС – правил конвертации группы свойств

Мы будем переносить документ «ПоступлениеТоваровУслуг», который имеет отличия в реквизите СтавкаНДС табличной части «Товары»
в базе источнике и приёмнике. В базе источнике этот реквизит имеет тип «СправочникСсылка.СтавкиНДС»,
а в базе приёмнике – тип «ПеречислениеСсылка.СтавкиНДС».

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

Реквизит «СтавкаНДС» в дереве метаданных конфигурации 1С

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

Реквизит «СчетУчетаБУ» в дереве метаданных конфигурации 1С

Ситуация осложняется тем, что мы будем работать с табличной частью, поэтому нужно настраивать
правила конвертации группы свойств – ПКГС.
Нам нужно будет обращаться к текущей строке табличной части.

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

«Как в 1С сделать выгрузку и загрузку данных с помощью конфигурации Конвертация данных?»

Создание правил конвертации группы свойств 1С

У нас уже разработаны правила конвертации для документа «ПоступлениеТоваровУслуг».

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

Правила конвертации группы свойств табличной части «Товары» документа «ПоступлениеТоваровУслуг»

Появится диалог «Настройка правил конвертации свойств (ПоступлениеТоваровУслуг)».

Правило конвертации для группы свойств «Товары» - «СтавкиНДС»

Нужно повторить то, что сделано на изображении и нажать кнопку «ОК».

Хотя мы создали правило конвертации для группы свойств, но пока оно не готово.
Помните, что реквизиты табличной части «СтавкиНДС» отличаются типами значений.
В базе источнике этот реквизит имеет тип «СправочникСсылка.СтавкиНДС»,
а в базе приёмнике – тип «ПеречислениеСсылка.СтавкиНДС». Здесь нам не хватает правила
конвертации из справочника в перечисление.

Обработчики событий для правил конвертации группы свойств

Чтобы настроить конвертацию свойства правильно, нужно создать новое правило конвертации объектов.

Правило конвертации объекта для группы свойств

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

Создание правила конвертации объекта

Никаких правил конвертаций свойств для этого правила не будет.
Поэтому при сохранении этого правила, в появившемся диалоге выберем «Нет».

Автоматическое создание правил конвертаций свойств

В диалоге с вопросом «Создать правила выгрузки данных?» тоже выберем «Нет».

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

Если Источник.Ставка = 0 Тогда
УзелСсылки = “Ставка0”;
ИначеЕсли Источник.Ставка = 12 Тогда
УзелСсылки = “Ставка12”;
ИначеЕсли Источник.Наименование = “без НДС” Тогда
УзелСсылки = “БезНДС”;
КонецЕсли;

После написания обработчика нажимаем кнопку «ОК».

В информации по обработчикам:

Источник – Произвольный – выгружаемый объект источник (ссылка или произвольные данные).
УзелСсылки – инициализированный xml-узел ссылки. Может использоваться,
например, для инициализации свойств других объектов.

Теперь явно укажем использование этого правила конвертации объекта при выгрузке реквизита «СтавкаНДС».
Преходим на закладку «Конвертация свойств (*)» документа «ПоступлениеТоваровУслуг» и открываем конвертацию
группы свойств «Товары», два раза щёлкаем на свойстве «СтавкиНДС» и в открывшемся диалоге, в поле «Правило»
выбираем правило конвертации объекта «СтавкаНДС».

Правило конвертации свойств (ПКС) реквизита «СтавкаНДС»

Нажимаем кнопку «ОК».

Теперь нам осталось установить счета учёта в соответствии с теми значениями, которые определены для номенклатуры.
Перейдём на закладку «Правила конвертации объектов», найдём объект «ПоступлениеТоваровУслуг» и
двойным нажатием на нём откроем диалог правил конвертации объектов (ПКО).
Перейдём на закладку «Обработчики событий» на событие «После загрузки» и напишем следующее:

Для каждого СтрокаТЧ Из Объект.Товары Цикл
СтрокаТЧ.СчетУчетаБУ = СтрокаТЧ.Номенклатура.СчетУчетаБУ;
КонецЦикла;

Сохраним правила, нажимаем кнопку «Сохранить правила». Конвертация объектов завершена!

Теперь загрузим эти правила в источнике, используя внешнюю обработку «Универсальный обмен данными в формате XML» – «V8Exchan82.epf».
Выгрузим данные в xml-файл. Затем, откроем эту же обработку в базе приёмнике и выберем xml-файл выгрузки и загрузим данные.

Кстати, обработку «Универсальный обмен данными в формате XML» можно открыть через пункт меню
«Сервис» | «Прочие обмены данными» | «Универсальный обмен данными в формате XML». Об этом было немного написано в
заметке о
выгрузке данных в идентичную конфигурацию 1С
.

В заключении поста хочу порекомендовать вам бесплатные видеоуроки от Вадима Сайфутдинова «Конфигурация "Конвертация данных": обмен данными между базами "1С:Предприятие"». Уроки от опытного преподователя. Он на детальном практическом примере покажет вам, как переносить данные с помощью Конфигурации "Конвертация данных" и не ломать голову над созданием своего "велосипеда".
  • Как решаются подзадачи обмена в «Конвертации данных»?
  • Какие существуют подготовительные операции?
  • Как правильно выгрузить метаданные конфигурации?
  • Как правильно загрузить метаданные в «Конвертацию данных»?
  • Как перенести данных простого справочника?
  • Как сделать синхронизациию значений перечислений?
  • Как переносить многоуровневый справочник в двухуровневый?
  • Многое другое...
Конечно, вы можете сами найти по этой теме материал и изучать его самостоятельно. Но зачем? Вот для вас уже всë подготовлено на блюдечке с голубой каëмочкой. Только изучайте! Все подробности о том, что есть в бесплатных видеоуроках на странице автора.

Вот один из уроков по переносу справочника номенклатура:


Конвертация данных бесплатные видеоуроки

Этот блог читают уже более 3000 человек
- читай и ТЫ!
6 ответы
  1. Gilson says:

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

    Ответить
  2. Softmaker
    Softmaker says:

    Пожалуйста, Gilson! Здорово, что вам помог этот пример по конвертации данных.

    Ответить
  3. Avdeev says:

    Конвертация данных до сего момента мне вообще не встречалась и я в этом ничего не понимаю. Скажите, база источник и база приемник обязательно должны быть из одной версии 1C? или допускается такое, что версии разные?

    Ответить
  4. Softmaker
    Softmaker says:

    Avdeev, конвертация данных тем и хороша, что вы можете переносить данные из разных конфигураций, гибко настрагивать этот обмен. Даже можно переносить данные из 7.7 в 8.х и обратно. То есть база источник и база приемник не обязательно должны быть из одной версии 1C.

    Ответить
  5. DimDim says:

    Очень доходчиво и конкретно. Большое спасибо за то, что щедро делитесь своими знаниями!

    Ответить

Ответить

Want to join the discussion?
Feel free to contribute!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *