|
Перенос дополнительных реквизитов | ☑ | ||
---|---|---|---|---|
0
Lobanov_Dev
27.06.24
✎
12:52
|
Коллеги всем привет! Выполняю перенос конфигурации с УТ 10.3 на УТ 11.5, использую для этого КД 2.1,
Ситуация: В УТ 10.3 у справочника Контрагенты есть реквизит -> ОсновнойВидДеятельности (СправочникСсылка.ВидыДеятельности), в УТ 11.5 такого реквизита нету, поэтому пришлось сделать дополнительный реквизит и назвать его -> ВидДеятельности. Вопрос: Как в КД 2.1 сопоставить этот реквизит, что бы при загрузке выполнялась проверка и проставлялся этот реквизит, и как конкретно указать "Приемник" дополнительный реквизит?
|
|||
1
Инстанс
27.06.24
✎
12:58
|
Привет, друг!
Может, через Параметры объекта. В современной конфигурации это же табличная часть. Выгружаешь реквизит в параметры объекта, а там загружаешь |
|||
2
Лирик
27.06.24
✎
16:03
|
(1) Все проще.
ТаблицуСвойств собери. ПКС значения свойства выбери от типа свойства.
|
|||
3
Инстанс
27.06.24
✎
16:04
|
(2) Чоток. Давно не баловался КД 2.1
|
|||
4
Lobanov_Dev
27.06.24
✎
17:05
|
(2) Постарался сделать всё аналогично, но всё равно что то не выгружается, "ПКС значения свойства выбери от типа свойства." - Это как?
Заранее извиняюсь, с КД2 недавно начал работать, пока всё в тумане
|
|||
5
Лирик
28.06.24
✎
09:23
|
Хорошо, давай подробно. В УТ10 доп. свойства хранятся в регистре "ЗначенияСвойствОбъектов. В УТ11 они хранятся в табличной части самого объекта. При разработке ПКО (в твоем случае это объект "Справочник.Контрагенты") создаешь группу ПКС "ДополнительныеРеквизиты", где приемник табличная часть "ДопРеквизиты". Естественно источника у этой группы нет, так как в УТ10 у контрагента нет ТЧ "ДопРеквизиты". Но источник и не нужен, достаточно в обработчике ГРУППЫ "ПередВыгрузкой" определить КоллекциюОбъектов. В нашем случае это таблица значений у которой имена колонок совпадают с именами реквизитов таб. части приемника. В эту таблицу кладешь все свойства и значения доп.свойств источника (контрагента). А дальше работаешь как будто у тебя есть в источнике такая же табличная часть. То есть нужно ПКО для планов видов характеристик "Свойства". По этому ПКО нужно конвертировать колонку "Свойство". А вот поскольку значения свойств имеют разные типы, то поле ПКС для колонки "Значения" оставляешь пустым, а в Обработчике "ПередВыгрузкой" ПКС "Значение" пишешь примерно такой код:
Если ТипЗнч(ОбъектКоллекции.Значение) = Тип("СправочникСсылка.Организации") Тогда ИмяПКО = "Организации"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Значение) = Тип("СправочникСсылка.ВидДеятельности") Тогда ИмяПКО = "ВидДеятельности"; Иначе ИмяПКО = ""; КонецЕсли; Естественно в УТ10 у тебя нет свойства контрагента с типом значения "СправочникСсылка.ВидДеятельности", но тут можно пойти двумя дорогами: 1. Создать такое свойство и в таблицу добавить строку с этим свойством и значением из Контрагент.ВидДеятельности 2. Оставить "Свойство" пустым, и заполнить его в "ПослеЗагрузки" объекта "Контрагент" ссылкой на нужное свойство в базе приемнике. СвойствоВидДеятельности = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "ххххххххххххх"); Для Каждого СтрокаДопСвойств Из Объект.ДополнительныеРеквизиты Цикл Если ТипЗначения(СтрокаДопСвойств.Значение) = Тип("СправочникСсылка.ВидДеятельности") И Не ЗначениеЗаполнено(СтрокаДопСвойств.Свойство) Тогда СтрокаДопСвойств.Свойство = СвойствоВидДеятельности ; КонецЕсли; КонецЦикла; |
|||
6
banco
28.06.24
✎
09:36
|
(0) Да проще уже выгрузить в ексель и загрузить в ут 11
|
|||
7
Chameleon1980
29.06.24
✎
07:21
|
(6) и в следующий раз опять прийти за помощью по КД2 и опять порадоваться твоему ответу.
|
|||
8
Инстанс
29.06.24
✎
07:29
|
До сих не решили что ли. Выгрузка РС. Проще было бы подключиться и решить на месте.
|
|||
9
Инстанс
29.06.24
✎
08:18
|
(6) Бухаха. Давно не переносил ничего
|
|||
10
Инстанс
29.06.24
✎
08:31
|
В ПГКС есть такая тема как КоллекцияОбъектов. В запросе типа Запрос.УстановитьПараметр("Объект", Источник);
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |