Что за ошибка?

  • Автор темы Stim
  • Дата начала
S

Stim

#1
Нужно найти оборот между корреспонденциями. Выдается Такая ошибка:
Код:
оборотмеждусчетами=Ит.Об(ВыбСчет,Ит.КорСчет,3);
{D:\1C\BUH_SAMIK\EXTFORMS\КОРРСЧЕТ.ERT(27)}: Слишком много параметров передано при вызове функции/процедуры объекта
вот сама программа
Код:
Процедура Сформировать()
Счет=СоздатьОбъект("Счет");
Cчет.НайтиПоКоду("43");
ВыбСчет=Счет.ТекущийСчет();
ИТ=СоздатьОбъект("БухгалтерскиеИтоги");
Нмк=СоздатьОбъект("Справочник.Номенклатура");
Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура,, 1);
Ит.ВыполнитьЗапрос(НачДата, КонДата,,,,3);
Ит.ВыбратьСубконто(ВидыСубконто.Номенклатура);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Номенклатура) = 1 Цикл
ПрочиеПоступления=0;
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет() = 1 Цикл
Если Ит.Счет=ВыбСчет Тогда
Д*цензура*овыйОборот=Ит.ДО(3);
Ит.ВыбратьКорСчета();
Пока Ит.ПолучитьКорСчет()=1 Цикл
Если (строка(Ит.КорСчет)="40") или (Строка(Ит.КорСЧет)="43") тогда 
оборотмеждусчетами=Ит.Об(ВыбСчет,Ит.КорСчет,3); //тут выдает ошибку
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Идея программы в том, что она находит для каждой позиции номенклатуры коресподенцию счета 43 с 40 или 43 и высчитывает оборот между ними. Подскажите что нетак в этой программе?
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#2
А кто сказал, что Ит.ОБ() работает в режиме запроса? Этот метод работает в режиме временного расчета итогов.
 
S

Stim

#3
Т.е мне нужно использовать
Код:
оборотмеждусчетами=Ит.КорДо(3);
Но в таком случае у меня получается что
Код:
оборотмеждусчетами=Д*цензура*овыйОборот
почему?
 
S

Stim

#5
оборотмеждусчетами=Д*цензура*овыйОборот - почему так получилось?
Ведь д*цензура*овый оборот по счету формируется из сумм оборотов счета с корреспнодирующими счетами. Как правильно найти оборот м-у счетом и корреспондирующим счетом. В моем случае почему то получается, что Ит.КорДО(3)=Д*цензура*овому обороту по счету 43