Имя: Пароль:
1C
1C 7.7
v7: Установка периодического реквизита справочника
0 Patrio_
O_Muerte
 
28.11.14
10:10
Добрый день.
Други выручайте.
Есть модуль по переносу реквизита НДС из одной базы в другую.

    СпрОб = СоздатьОбъект("Справочник.Номенклатура");
    Спр = СоздатьОбъект("Справочник.Номенклатура");
    СпрОЛЕ = БазаОле.CreateObject("Справочник.Номенклатура");
    СпрНДС = СоздатьОбъект("Справочник.СтавкиНДС");
    
    СпрНДС.НайтиПоКоду(1);
    НДС18 = СпрНДС.ТекущийЭлемент();
    СпрНДС.НайтиПоКоду(2);
    НДС10 = СпрНДС.ТекущийЭлемент();                
    СпрНДС.НайтиПоКоду(0);
    НДС0 = СпрНДС.ТекущийЭлемент();
    
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
        Если Спр.ЭтоГруппа() = 0 Тогда
            
            СпрОЛЕ.НайтиПоКоду(Спр.Код);
            СпрОб.НайтиЭлемент(Спр.ТекущийЭлемент());
            Если СпрОЛЕ.СтавкаНДС.Получить(ТекущаяДата()).Ставка = 18 Тогда
                СпрОб.СтавкаНДС.Установить(Дата(2014,01,01),НДС18);
            ИначеЕсли СпрОЛЕ.СтавкаНДС.Получить(ТекущаяДата()).Ставка = 10 Тогда
                СпрОб.СтавкаНДС.Установить(Дата(2014,01,01),НДС10);
            ИначеЕсли СпрОЛЕ.СтавкаНДС.Получить(ТекущаяДата()).Ставка = 0 Тогда
                СпрОб.СтавкаНДС.Установить(Дата(2014,01,01),НДС0);
            КонецЕсли;
            
            СпрОб.Записать();
            
        КонецЕсли;
    КонецЦикла;

Не присваивает и все тут. Все перепробовал. Не робит. Подскажите в чем я неправ?
Заранее благодарен.
1 Злопчинский
 
28.11.14
13:21
Ну для начала убираем грязный код
Гле гарантия что найтипокоду отработало успешно
2 olegves
 
28.11.14
13:36
замени
СпрОб.НайтиЭлемент(Спр.ТекущийЭлемент());

на

СпрОб.НайтиЭлемент(Спр);
3 Злопчинский
 
28.11.14
15:39
(2) а смысл?
4 Ёпрст
 
28.11.14
15:44
очень забавный код..
Всё в топку.
Зачем там оле и код от него - вообще не ясно.
Установка периодики тоже странная, запись не нужна.
5 Злопчинский
 
28.11.14
15:48
(4) ну так вроде получается оля нужна только для того, чтобы прочитать оттуда ставку НДС
6 Ёпрст
 
28.11.14
15:58
возможно, но сделано усё через одно место
Закон Брукера: Даже маленькая практика стоит большой теории.