Имя: Пароль:
1C
1С v8
Проблема с загрузкой дополнительных реквизитов через Com-соединение
0 Tumakota
 
10.08.15
14:12
При загрузке из УТ 10 в УТ 11, возникла проблема загрузке дополнительных свойств и реквизитов.

При выгрузке из УТ 10.3 получаю структуру НабораСвойств, но там все Com объекты. Создаю новый ВидНоменклатуры, и в нех хочу указать  данные доп реквизиты, которые находятся в структуре полученной при Com выгрузке, но не могу понять как это сделать

Если просто пишу

НовыйВидНоменклатуры.НаборСвойств.ДополнительныеРеквизиты.Загрузить(НаборСвойств.ДополнительныеРеквизиты);

то не выдает ошибки и не чего не загружает, ну и это вроде понятно так как там Com - объекты, помогите, как загрузить доп реквизиты через com
1 alexei366
 
10.08.15
14:26
(0) Так надо поподробней.
Как я помню в УТ 10 только доп свойства, а в УТ 11 и доп. свойства и доп. реквизиты.

Мне кажеться тебе ручками надо создать доп реквизиты или свойства в УТ 11 которые будут соотвествовать данным по свойствам в УТ 10 и прописать жество что если Код свойства из УТ 10 такой то то обрабатываем как доп реквизит и берем определенную ссылку на план видов характеристик.

Как то так
2 Tumakota
 
10.08.15
17:06
Если ЕстьНаборСвойств Тогда
                Для каждого СтрокаНаборСв из НаборСвойств.ДополнительныеРеквизиты цикл
                    СоздатьСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.СоздатьЭлемент();
                    СоздатьСвойство.Заголовок = СтрокаНаборСв.Свойство.Description;
                    СоздатьСвойство.Наименование = СтрокаНаборСв.Свойство.Description;
                    СоздатьСвойство.Записать();
                    
                        ЕстьВНаличии = НовыйВидНоменклатуры.НаборСвойств.ДополнительныеРеквизиты.Найти(ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(СтрокаНаборСв.Свойство.Description), "Свойство");
                    СвойствоРеквизита = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(СтрокаНаборСв.Свойство.Description);
                    Если ЕстьВНаличии = Неопределено Тогда
                        НовРек            = НовыйВидНоменклатуры.НаборСвойств.ДополнительныеРеквизиты.Добавить();
                        НовРек.Свойство     = СвойствоРеквизита;
                    КонецЕсли;                     
                КонецЦикла;

Ошибки не выдает но и не добавляет реквизит в ВидНоменклатуры
3 alexei366
 
10.08.15
17:51
(2) Что такое "НовыйВидНоменклатуры"
4 mehfk
 
10.08.15
17:59
(0) Кривой код, COM-соединение ни при чем.
5 Tumakota
 
10.08.15
18:11
(3) Это Справочник "Вид номенклатуры"
6 Tumakota
 
12.08.15
16:57
У меня есть два вида номенклатуры, у них создаю доп реквизиты, как мне сделать проверку доп реквизита существует он или нет

                    ссылка=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(Заголовок);

стоит такая проверка, но она не подходит, так как если у первого Вида создался реквизит, то у второго уже не создаст, так он найдет по наименованию первый! Как то более точно, выбрать можно
7 Serginio1
 
12.08.15
17:16
(0) Отладь код во внешней обработке, а затем используй её же через COM
COM-соединение 1С 8.3 - 1С 8.3 Есть ли возможность зайти в отладчик в соединении
8 Tumakota
 
12.08.15
17:19
(7) не понял к чему, у меня уже вроде все отлажено я получаю, нужный список доп свойств, создаю нужный список доп реквизитов, но когда создаются доп реквизиты для второго вида номенклатуры, то я не могу понять как мне делать поиск в базе приемника, точное соответствия свойства и объекта к которому принадлежит