Имя: Пароль:
1C
 
Перенос дополнительных реквизитов
,
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
В ПГКС есть такая тема как КоллекцияОбъектов. В запросе типа Запрос.УстановитьПараметр("Объект", Источник);
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан