Имя: Пароль:
1C
1С v8
Неправильные остатки при чтении по COM из 8.2 в 7.7
0 Falex
 
26.12.13
16:48
Здравствуйте. Почему-то при следующем коде появляются неверные остатки (например, по 60 счету) по некоторым контрагентам, причем хоть в 7.7 я формируют по конкретной организации, хоть по всем примерно таких сумм я найти не могу((.
Код:

    Ит = КОМ.CreateObject("БухгалтерскиеИтоги");
    ЮрЛицо = Организация.ЮрЛицо.ТекущийЭлемент();
    Ит.ИспользоватьРазделительУчета(ЮрЛицо);
    СписокЮридическихЛицОбновленный = КОМ.CreateObject("СписокЗначений");
    
    V7Счет  = КОМ.CreateObject("Счет");                    
    V7Счет.НайтиПоКоду("62.1");
    ВидСубконтоКонтрагент = V7Счет.ВидСубконто(1);
    ВидСубконтоДоговор = V7Счет.ВидСубконто(2);
    Ит.ИспользоватьСубконто(ВидСубконтоКонтрагент,СписокКонтрагентов);
    Ит.ИспользоватьСубконто(ВидСубконтоДоговор);
    
    Ит.ВыполнитьЗапрос(ДатаАнализа,КонецДня(ДатаАнализа),"60.1,60.2,62.1,62.2,62.4,76.5","",КОМ.evalExpr("ПустоеЗначение(""Справочник.Валюты"")"), 1,"Период", "С");
    ТабЗнач = КОМ.CreateObject("ТаблицаЗначений");
    ТабЗнач.НоваяКолонка("Счет");
    ТабЗнач.НоваяКолонка("Контрагент");
    ТабЗнач.НоваяКолонка("Договор");
    ТабЗнач.НоваяКолонка("НаименованиеДоговора");
    ТабЗнач.НоваяКолонка("СуммаДебет");
    ТабЗнач.НоваяКолонка("СуммаКредит");
    Ит.ВыбратьСубконто(1);
    Пока Ит.ПолучитьСубконто(ВидСубконтоКонтрагент) = 1 Цикл
        Ит.ВыбратьСубконто(2);
        Пока Ит.ПолучитьСубконто(ВидСубконтоДоговор) = 1 Цикл
            Счет = Лев(Ит.Счет.Код,2);
        Контрагент = Ит.Субконто(ВидСубконтоКонтрагент);
        НаименованиеДоговора = Строка(Ит.Субконто(ВидСубконтоДоговор).Наименование)+"("+Счет+")";
        СКД = Ит.СКД();
        СКК = Ит.СКК();
        Если СКД <> 0 ИЛИ СКК <> 0 Тогда
            ТабЗнач.НоваяСтрока();
            ТабЗнач.Счет = Счет;
            ТабЗнач.Контрагент = Контрагент;
            ТабЗнач.Договор = Ит.Субконто(ВидСубконтоДоговор);
            ТабЗнач.НаименованиеДоговора = НаименованиеДоговора;
            ТабЗнач.СуммаДебет = СКД;
            ТабЗнач.СуммаКредит = СКК;
        КонецЕсли;
        КонецЦикла;
    КонецЦикла;
1 Sasha_1CK
 
26.12.13
17:03
А перебор счетов где?
Если с контрагентом есть взаиморасчеты по 60 и 76 - ваше сальдо может просуммироваться
2 Falex
 
26.12.13
19:34
А разве в цикле обхода по договорам счета не разные будут?
3 Sasha_1CK
 
26.12.13
23:00
нет
4 Falex
 
26.12.13
23:02
А как тогда в моем вышеприведенном коде сделать обход еще и по счетам?
5 hhhh
 
26.12.13
23:08
Ит.ВыбратьСчета();