|
Конвертация данных, редакция 3.1 (3.1.4.7) | ☑ | ||
---|---|---|---|---|
0
Sevish
16.05.24
✎
05:32
|
Добрый день всем!
Прошу помочь. Есть КА две базы, конфигурации типовые, одинаковые по релизу. Возникла потребность с одной в другую просто перенести план видов характеристик "Статьи доходов". Скачал сабж. Создал правило и возникли вопросы: 1. Почему не переносятся объекты свойств например, "Группа финансового учета" (флажок не стоит). Я когда-то делал правила еще на 2.х версии. Там не было такой проблемы. А тут что самому нужно правило добавить, просто при выгрузке не ставить флажок? 2. У ПВХ есть реквизит "ТипЗначения", в правиле он есть, но не переносится. Выглядит в файле так: <Свойство Имя="ТипЗначения" Тип="ОпределениеТипа"> <Пусто/> </Свойство> И при этом ещё ругается на "ОпределениеТипа" (не верный тип) и вылетает с ошибкой. 3. Группа создается как элемент, хотя <Свойство Имя="ЭтоГруппа" Тип="Булево"> <Значение>true</Значение> </Свойство> Прошу помочь. |
|||
1
Sevish
16.05.24
✎
05:53
|
Да, для выгрузки по ссылкам надо было добавить ПКО, получилось.
Проблемы остались с (2) и (3). Для (2) сделал ПКО с флажком "для группы", но не помогло. |
|||
2
rphosts
16.05.24
✎
06:12
|
(0)3.принято делать 2 ПКО - одно для элементов, другое для групп.
2.Может проблема в том, что тип значения которые ты пытаешься выгрузить не имеет ПКО в КД? |
|||
3
Sevish
16.05.24
✎
06:20
|
(2) сделал два правила, нашел статью https://infostart.ru/1c/articles/1154176/?ysclid=lw8nwomefh626049114 где есть код, который указывает какое ПКО выбрать, но у меня нет такого обработчика в текущей версии конвертации "ПриОбработке". Точнее вообще нет "Правило обработки данных". Есть "Правило выгрузки данных", видимо потому что я через формат XML делаю, а не через XDTO.
|
|||
4
Sevish
16.05.24
✎
06:41
|
(2) решил в ПВД "ПередВыгрузкой" написал:
Если Объект.ЭтоГруппа Тогда ИмяПКО = "ПланВидовХарактеристик_СтатьиДоходов_Группа" Иначе ИмяПКО = "ПланВидовХарактеристик_СтатьиДоходов" КонецЕсли; НО! При загрузке XML в ИБ приемника все равно создается не группа, а элемент :( |
|||
5
rphosts
16.05.24
✎
06:54
|
(4) объекты для этих ПКО в ЕД разные?
|
|||
6
Sevish
16.05.24
✎
07:19
|
В обработке загрузки XML (которая идет в составе КД) нашел:
ЭтоГруппа = СвойстваПоиска["ЭтоГруппа"]; НО, "СвойстваПоиска" не содержит такого праметра, а где и как в ПКО добавить не могу найти :( |
|||
7
Sevish
16.05.24
✎
07:20
|
(5) не знаю что такое ЕД, но всё одинаково: просто сохранил в XML в первой ИБ, надо загрузить во вторую ИБ.
|
|||
8
Sevish
16.05.24
✎
07:23
|
В выгруженной XML есть
<Правило> <Код>ПланВидовХарактеристик_СтатьиДоходов</Код> <СинхронизироватьПоИдентификатору>true</СинхронизироватьПоИдентификатору> <ПродолжитьПоискПоПолямПоискаЕслиПоИдентификаторуНеНашли>true</ПродолжитьПоискПоПолямПоискаЕслиПоИдентификаторуНеНашли> <Источник>ПланВидовХарактеристикСсылка.СтатьиДоходов</Источник> <Приемник>ПланВидовХарактеристикСсылка.СтатьиДоходов</Приемник> </Правило> Но секции этих полей поиска в XML не нашел. |
|||
9
Sevish
16.05.24
✎
07:26
|
У выгруженного объекта вот так:
<Объект Нпп="3" Тип="ПланВидовХарактеристикСсылка.СтатьиДоходов" ИмяПравила="ПланВидовХарактеристик_СтатьиДоходов"><Ссылка> <Свойство Имя="{УникальныйИдентификатор}" Тип="Строка"> <Значение>62e87dc6-5f67-11e9-80be-2cfda120f42b</Значение> </Свойство> </Ссылка> То есть вот тут должно быть что-то типа "ЭтоГруппа"... |
|||
10
Sevish
16.05.24
✎
09:12
|
Все, победил каталоги. Просто в ПКС зашел в "ЭтоГруппа", "Наименование" и поставил флажок "Поиск при загрузке".
Осталось (2): как передать "ТипЗначения"? |
|||
11
Sevish
16.05.24
✎
10:19
|
Удалось победить, но только с доработкой типовой обработки:
В ПКС добавил: СписокТиповЗначений = Новый СписокЗначений; СписокТиповЗначений.Добавить("СправочникСсылка.Организации"); СписокТиповЗначений.Добавить("СправочникСсылка.СтруктураПредприятия"); СписокТиповЗначений.Добавить("СправочникСсылка.НаправленияДеятельности"); СписокТиповЗначений.Добавить("СправочникСсылка.Партнеры"); СписокТиповЗначений.Добавить("ДокументСсылка.ЗаказПоставщику"); СписокТиповЗначений.Добавить("СправочникСсылка.ДоговорыКредитовИДепозитов"); СписокТиповЗначений.Добавить("ПеречислениеСсылка.АналитикаКурсовыхРазниц"); СписокТиповЗначений.Добавить("СправочникСсылка.ОбъектыЭксплуатации"); СписокТиповЗначений.Добавить("СправочникСсылка.НематериальныеАктивы"); СписокТиповЗначений.Добавить("СправочникСсылка.Номенклатура"); Для Каждого ЭлементСписка Из СписокТиповЗначений Цикл Если Источник.ТипЗначения.СодержитТип(Тип(ЭлементСписка.Значение)) Тогда Значение = ЭлементСписка.Значение; Прервать; КонецЕсли; КонецЦикла; А в обработке: Функция ПолучитьТипСвойства() СтроковыйТипСвойства = одАтрибут(ФайлОбмена, одТипСтрока, "Тип"); Если ПустаяСтрока(СтроковыйТипСвойства) Тогда Возврат Неопределено; КонецЕсли; //ПВЕ Попытка Возврат Тип(СтроковыйТипСвойства); Исключение Если (СтроковыйТипСвойства = "ОпределениеТипа") Тогда Возврат Новый ОписаниеТипов; Иначе Возврат Неопределено; КонецЕсли; КонецПопытки; КонецФункции И в "Функция ПрочитатьОбъект()" вот тут: // читаем и устанавливаем значение свойства ТипСвойства = ПолучитьТипСвойстваПоДополнительнымДанным(ИнформацияОТипах, Имя); Значение = ПрочитатьСвойство(ТипСвойства, ИмяПКО); //ПВЕ Если (ТипСвойства = Новый ОписаниеТипов) Тогда Значение = Новый ОписаниеТипов(Значение); КонецЕсли; Если ЭтоПараметрДляОбъекта Тогда |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |