Имя: Пароль:
1C
1С v8
КД и синхронизация кодов
0 newphoenix
 
29.02.16
11:32
Добрый день, есть источник ут10 и приемник ут11 (пустой). Хочу из источника в приемник выгрузить справочник "номенклатура", но не весь, только интересующие меня группы, причем, код элемента должен совпадать в обеих базах.
Для этого создаю пко для справочника номенклатура, источник пустой, получить из входящих данных (код, наименование, этогруппа).
Если я ставлю галочку "поиск объекта при загрузке по свойству" в пко для кода, то при выгрузке из источника ошибка, если галочку не ставить, то записи дублируются
СвойствоПриемника      =  Код  (Строка)
ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
пвд вот такое
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|    Номенклатура.Код,
|    Номенклатура.Наименование,
|    Номенклатура.ЭтоГруппа
|ИЗ
|    Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|    Номенклатура.Ссылка В ИЕРАРХИИ(&ГруппаНоменклатур)";
Запрос.УстановитьПараметр("ГруппаНоменклатур",    Параметры.ГруппаНоменклатур);

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    ИсходящиеДанные = Новый Структура;
    ИсходящиеДанные.Вставить("Код", Строка(Выборка.Код));
    ИсходящиеДанные.Вставить("Наименование", Выборка.Наименование);
    ИсходящиеДанные.Вставить("ЭтоГруппа", Выборка.ЭтоГруппа);
    ВыгрузитьПоПравилу(, , ИсходящиеДанные, , "Номенклатура");    
КонецЦикла;
Куда копать?
1 Defender aka LINN
 
29.02.16
11:37
Убери нахрен "получить из входящих данных". Оно не для того.
2 newphoenix
 
29.02.16
11:42
Убрал со всех свойств в пко, выгрузилось без ошибок, но в файле выгрузки нет ни кодов ни уидов, ни наименований

<Объект Нпп="3" Тип="СправочникСсылка.Номенклатура" ИмяПравила="Номенклатура" НеЗамещать="true">
<Ссылка/>
<Свойство Имя="Код" Тип="Строка">
<Пусто/>
</Свойство>
</Объект>
3 Wern
 
29.02.16
11:48
Зачем ты выгружаешь прямо в ПВД? В ПВД должен собираться список объектов. остальное там лишнее.

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|    Номенклатура.Ссылка
|ИЗ
|    Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|    Номенклатура.Ссылка В ИЕРАРХИИ(&ГруппаНоменклатур)";
Запрос.УстановитьПараметр("ГруппаНоменклатур",    Параметры.ГруппаНоменклатур);

ВыборкаДанных = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
4 crocop
 
29.02.16
11:50
попробуйте в ПКС например Наименования добавить в ПередВыгрузкой что то типа этого
Значение = Источник.Наименование;
5 crocop
 
29.02.16
11:52
ВыгрузитьПоПравилу(Выборка,,,ИсходящиеДанные, "Номенклатура");
6 newphoenix
 
29.02.16
12:07
Спасибо всем, новичок в кд, разобрался, помог ответ Wern. В пвд убрал цикл и строку "выгрузить по правилу" - все сразу заработало без проблем.