Имя: Пароль:
1C
1C 7.7
v7: Копирование элемента справочника
0 payman25
 
09.03.13
21:08
Хочу для всех товаров в номенклатуре брать цены с одной категорией и добавлять такую же цену другой категории.

Есть внешняя обработка. На форме 2 поля ввода (тип Справочник.КатегорииЦен) с идентификаторами КатегорияЦены и КатегорияЦены1.

Есть вот такая процедура:
Процедура Выполнить()
Спр= СоздатьОбъект("Справочник.Номенклатура");
Спр2= СоздатьОбъект("Справочник.Цены");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл
    Состояние(Спр.Наименование);
    Если Спр.ЭтоГруппа() = 1 Тогда
        Продолжить;
    КонецЕсли;
    Спр2.ИспользоватьВладельца(Спр.ТекущийЭлемент());
    Спр2.ВыбратьЭлементы();
    Пока Спр2.ПолучитьЭлемент() = 1 Цикл
    Если КатегорияЦены = Спр2.КатегорияЦены Тогда
     НЦ=Справочники.Цены.СоздатьЭлемент();
     НЦ.Валюта = Спр2.Валюта;
     НЦ.Единица = Спр2.Единица;
     НЦ.КатегорияЦены = КатегорияЦены1;
     НЦ.Наценка = Спр2.Наценка;
         НЦ.Цена = Спр2.Цена.Получить(РабочаяДата()));
     НЦ.Записать();
    КонецЕсли;
    КонецЦикла;
КонецЦикла;
КонецПроцедуры


При попытке открытия этой обработки выдает кучу ошибок:
НЦ.Цена = Спр2.Цена.Получить(РабочаяДата())<<?>>);
{...EXTFORMS\КОПИРОВАТЬ.ERT(22)}: Неопознанный оператор

и про ожидание конца цикла, процедуры

Подскажите, плиз, где ошибки (чувствую, что она не одна :))?
1 Oleg_Kag
 
09.03.13
21:12
Она одна... количество скобок после РабочаяДата
2 payman25
 
09.03.13
21:17
(1) Убрал лишнюю скобку

Выдает ошибку
НЦ=Справочники<<?>>.Цены.СоздатьЭлемент();
{...\КОПИРОВАТЬ.ERT(15)}: Переменная не определена (Справочники)
3 Oleg_Kag
 
09.03.13
21:21
Новый()
4 Oleg_Kag
 
09.03.13
21:22
5 payman25
 
09.03.13
22:12
(4) Это помогло
Но скопировалась только цена
Не скопировались Валюта и Единица
Насчет Наценки не знаю, т.к. она не заполнена ни для одного товара.

Процедура Выполнить()
Спр= СоздатьОбъект("Справочник.Номенклатура");
Спр2= СоздатьОбъект("Справочник.Цены");
Спр3= СоздатьОбъект("Справочник.Цены");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл
    Состояние(Спр.Наименование);
    Если Спр.ЭтоГруппа() = 1 Тогда
        Продолжить;
    КонецЕсли;
    Спр2.ИспользоватьВладельца(Спр.ТекущийЭлемент());
    Спр3.ИспользоватьВладельца(Спр.ТекущийЭлемент());
    Спр2.ВыбратьЭлементы();
    Пока Спр2.ПолучитьЭлемент() = 1 Цикл
    Если КатегорияЦены = Спр2.КатегорияЦены Тогда
    // НЦ=Справочники.Цены.СоздатьЭлемент();
    // НЦ.Валюта = Спр2.Валюта;
    // НЦ.Единица = Спр2.Единица;
    // НЦ.КатегорияЦены = КатегорияЦены1;
    // НЦ.Наценка = Спр2.Наценка;
    // НЦ.Цена = Спр2.Цена.Получить(РабочаяДата());
    // НЦ.Записать();
    Спр3.ИспользоватьДату(РабочаяДата());
    Спр3.Новый();
    Спр3.Валюта = Спр2.Валюта;
    Спр3.Единица = Спр2.Единица;
    Спр3.КатегорияЦены = КатегорияЦены1;
    Спр3.Наценка = Спр2.Наценка;
    Спр3.Цена = Спр2.Цена.Получить(РабочаяДата());
    Спр3.Записать();
    КонецЕсли;
    КонецЦикла;
КонецЦикла;
КонецПроцедуры
6 payman25
 
09.03.13
22:23
Добавил Получить(РабочаяДата()) для Валюты и Единицы и все скопировалось

Всем спасибо!