Имя: Пароль:
1C
1C 7.7
v7: БУ 4.5 - Назначение типа субконто в бух справке
0 YurAnt
 
23.12.13
15:03
Доброго времени суток, господа-форумчане. Проблема такого характера, в цикле перебираю XMLку, выбираю оттуд данные (не суть конечно, но строка такого вида (без кавычек): "2;0;22.12.2013;0;БН;0;571,80", оттуд беру только дату и сумму (далее ТЗ.ДатаДок, ТЗ.Сумма)

Проблема начинается при выдаче типа субконто...
Для А = 1 По 3 Цикл
     ДокБСп.НазначитьТип("Субконто" + А, Счет9021.ВидСубконто(А));
КонецЦикла;    
ругается на строку в цикле.
попробовал даже так, напрямую...

ДокБСп.НазначитьТип("Субконто1", Счет9021.ВидСубконто(1));
ДокБСп.НазначитьТип("Субконто2", Счет9021.ВидСубконто(2));

ругается от так:
ДокБСп.НазначитьТип("Субконто1", Счет9021.ВидСубконто(1));
{C:\DOCUMENTS AND SETTINGS\YURANT\РАБОЧИЙ СТОЛ\ЗАГРУЗКАПОСТУПЛЕНИЙИЗIIKO.ERT(134)}: Реквизит с данным идентификатором не найден!

Сами значения Вида субконто - корректны (ниже то что отловил по шифт+Ф9
Счет9021.ВидСубконто(1) = Виды номенклатуры
Счет9021.ВидСубконто(2) = Места хранения
в общем меня терзают смутные сомнения...
Благодарен за любые советы, с ув. YurAnt

(полный код процедуры)
//*****************************************************************
Процедура СоздатьБухгалтерскуюСправку(ТЗ)

    СпрСубконто = СоздатьОбъект("Справочник.МестаХранения");
    Если СпрСубконто.НайтиПоНаименованию("Закусочная", 0, 1) = 1 Тогда
        ТекСубконто = СпрСубконто.ТекущийЭлемент();
    Иначе
        ТекСубконто = ПолучитьПустоеЗначение("Справочник.МестаХранения");
    КонецЕсли;      
    
    Счет9021                         = СчетПоКоду("90.2.1");
    Счет412                         = СчетПоКоду("41.2");
    Счет571                         = СчетПоКоду("57.1");
    Счет9012                         = СчетПоКоду("90.1.2");
    
    СпрВидПрод = СоздатьОбъект("Справочник.ВидыНоменклатуры");
    Если СпрВидПрод.НайтиПоНаименованию("Торговля в розницу", 0, 1) = 1 Тогда
        ВидПрод = СпрВидПрод.ТекущийЭлемент();
    Иначе
        ВидПрод = ПолучитьПустоеЗначение("Справочник.ВидыНоменклатуры");
    КонецЕсли;
    
    СпрСкл = СоздатьОбъект("Справочник.МестаХранения");
    Если СпрСкл.НайтиПоНаименованию("Закусочная", 0, 1) = 1 Тогда
        Склад = СпрСкл.ТекущийЭлемент();
    Иначе
        Склад = ПолучитьПустоеЗначение("Справочник.МестаХранения");
    КонецЕсли;
    
    СпрДвижДСр = СоздатьОбъект("Справочник.ДвиженияДенежныхСредств");
    Если СпрДвижДСр.НайтиПоНаименованию("Пластиковые карты", 0, 1) = 1 Тогда
        ВидДвижДСр = СпрДвижДСр.ТекущийЭлемент();
    Иначе
        ВидДвижДСр = ПолучитьПустоеЗначение("Справочник.ДвиженияДенежныхСредств");
    КонецЕсли;
    
    ДокБСп                             = СоздатьОбъект("Документ.БухгалтерскаяСправка");
    ДокБСп.Новый();
    ДокБСп.ДатаДок                       = ТЗ.ДатаДок;
    
    //НоваяСтрока1_____________________________________________________
    ДокБСп.НоваяСтрока();
    ДокБСп.СчетДт                        = Счет9021;
    
    Для А = 1 По 3 Цикл
        ДокБСп.НазначитьТип("Субконто" + А, Счет9021.ВидСубконто(А));
    КонецЦикла;

    ДокБСп.Субконто1                 = ВидПрод;
    ДокБСп.Субконто2                 = Склад;
    //ДокБСп.Субконто3                 = МестоХранения;    
    ДокБСп.СчетКт                        = Счет412;
    
    Для А = 1 По 3 Цикл
        ДокБСп.НазначитьТип("Субконто" + А, Счет412.ВидСубконто(А));
    КонецЦикла;

    ДокБСп.Субконто1                 = Склад;
    ДокБСп.Сумма                    = ТЗ.Сумма;    
    //НоваяСтрока1_____________________________________________________
    
    //НоваяСтрока2_____________________________________________________
    ДокБСп.НоваяСтрока();
    ДокБСп.СчетДт                        = Счет571;
    
    Для А = 1 По 3 Цикл
        ДокБСп.НазначитьТип("Субконто" + А, Счет571.ВидСубконто(А));
    КонецЦикла;

    ДокБСп.Субконто1                 = ВидДвижДСр;
    //ДокБСп.Субконто2                 = Склад;
    //ДокБСп.Субконто3                 = МестоХранения;    
    ДокБСп.СчетКт                        = Счет9012;
    
    Для А = 1 По 3 Цикл
        ДокБСп.НазначитьТип("Субконто" + А, Счет412.ВидСубконто(А));
    КонецЦикла;

    ДокБСп.Субконто1                 = ВидПрод;
    ДокБСп.Субконто2                 = Склад;
    ДокБСп.Сумма                    = ТЗ.Сумма;    
    //НоваяСтрока2_____________________________________________________
    ДокБСп.Записать();
    ДокБСп.Провести();
КонецПроцедуры
//*****************************************************************
1 YurAnt
 
23.12.13
15:55
тема закрыта.