PDA

Просмотр полной версии : ИспользоватьСубконто() - выдает "Ошибка в выражении!"



Zultan
13.07.2014, 16:19
Здравствуйте, при работе с БухгалтерскимиИтогами нужно найти сальдо по двум разным счетам:
1) в первом (75.4, АП, субконто: Контрагенты, Договоры, ВидыРасчетовСПайщиками), нужно найти сальдо по конкретному Контрагенту и ВидуРасчетовСПайщиками
2) во втором (58.7, А, субконто: Контрагенты, Договоры), нужно найти сальдо по конкретному Контрагенту.

Код следующий:



Бит = CreateObject("БухгалтерскиеИтоги");

// расчитываем для 75,4
Бит.ИспользоватьСубконто(В идыСубконто.Контрагенты, Контрагент);
Бит.ИспользоватьСубконто(В идыСубконто._ВидыРасчетовС Пайщиками, Перечисление._ВидыРасчетов СПайщиками.ПроцентыПоПред� �ставленнымЗаймам);
Бит.ИспользоватьСубконто(В идыСубконто.Договоры);
Бит.ВыполнитьЗапрос(НачМес яца(ДатаДок), КонМесяца(ДатаДок), "75.4");
Бит.ВыбратьСубконто(ВидыСу бконто.Контрагенты);
Бит.ПолучитьСубконто(ВидыС убконто.Контрагенты);
Бит.ВыбратьСубконто(ВидыСу бконто._ВидыРасчетовСПайщи ками);
Бит.ПолучитьСубконто(ВидыС убконто._ВидыРасчетовСПайщ иками);
Бит.ВыбратьСубконто(ВидыСу бконто.Договоры);
while Бит.ПолучитьСубконто(ВидыС убконто.Договоры) <> 0 do
НоваяСтрока();
ВидРасчетаСПайщиком = Бит.Субконто(ВидыСубконто._ ВидыРасчетовСПайщиками);
Договор = Бит.Субконто(ВидыСубконто.� �оговоры);
СальдоПо58_7 = 0;
СальдоПо75_4 = Бит.СКД()-Бит.СКК();
Итого = 0;
enddo;

// расчитываем для 58,7
Бит.ИспользоватьСубконто(В идыСубконто.Контрагенты, Контрагент);
Бит.ИспользоватьСубконто(В идыСубконто.Договоры);
Бит.ВыполнитьЗапрос(НачМес яца(ДатаДок), КонМесяца(ДатаДок), "58.7");
Бит.ВыбратьСубконто(ВидыСу бконто.Контрагенты);
Бит.ПолучитьСубконто(ВидыС убконто.Контрагенты);
Бит.ВыбратьСубконто(ВидыСу бконто.Договоры);
while Бит.ПолучитьСубконто(ВидыС убконто.Договоры) <> 0 do
НоваяСтрока();
ВидРасчетаСПайщиком = Бит.Субконто(ВидыСубконто._ ВидыРасчетовСПайщиками);
Договор = Бит.Субконто(ВидыСубконто.� �оговоры);
СальдоПо58_7 = Бит.СКД()-Бит.СКК();
СальдоПо75_4 = 0;
Итого = 0;
enddo;

В первом случае, при Бит.ИспользоватьСубконто - все хорошо. Но вот во втором случае ИспользоватьСубконто почему то не дает ((((
Пишет "Ошибка в выражении!" (если смотреть в конфигураторе).
Помогите пожалуйста, что не так, всю голову уже себе сломал %)
За ранее благодарен, за любой ответ! ;)

---------- Post added at 16:19 ---------- Previous post was at 16:08 ----------

Блин, извините за флуд!
Смутило сообщение про аналитику счета. Решение оказалось простым!
Оказывается, когда используешь несколько раз разный "ВыполнитьЗапрос" и устанавливаешь отбор по субконто, то нужно каждый раз создавать объект заново ;)
Т.е. должно получиться примерно следующее:

Бит = CreateObject("БухгалтерскиеИтоги");

// расчитываем для 75,4
Бит.ИспользоватьСубконто(В идыСубконто.Контрагенты, Контрагент);
Бит.ИспользоватьСубконто(В идыСубконто._ВидыРасчетовС Пайщиками, Перечисление._ВидыРасчетов СПайщиками.ПроцентыПоПред� �ставленнымЗаймам);
Бит.ИспользоватьСубконто(В идыСубконто.Договоры);
Бит.ВыполнитьЗапрос(НачМес яца(ДатаДок), КонМесяца(ДатаДок), "75.4");
Бит.ВыбратьСубконто(ВидыСу бконто.Контрагенты);
Бит.ПолучитьСубконто(ВидыС убконто.Контрагенты);
Бит.ВыбратьСубконто(ВидыСу бконто._ВидыРасчетовСПайщи ками);
Бит.ПолучитьСубконто(ВидыС убконто._ВидыРасчетовСПайщ иками);
Бит.ВыбратьСубконто(ВидыСу бконто.Договоры);
while Бит.ПолучитьСубконто(ВидыС убконто.Договоры) <> 0 do
НоваяСтрока();
ВидРасчетаСПайщиком = Бит.Субконто(ВидыСубконто._ ВидыРасчетовСПайщиками);
Договор = Бит.Субконто(ВидыСубконто.� �оговоры);
СальдоПо58_7 = 0;
СальдоПо75_4 = Бит.СКД()-Бит.СКК();
Итого = 0;
enddo;

Бит = 0;
Бит = CreateObject("БухгалтерскиеИтоги");

// расчитываем для 58,7
Бит.ИспользоватьСубконто(В идыСубконто.Контрагенты, Контрагент);
Бит.ИспользоватьСубконто(В идыСубконто.Договоры);
Бит.ВыполнитьЗапрос(НачМес яца(ДатаДок), КонМесяца(ДатаДок), "58.7");
Бит.ВыбратьСубконто(ВидыСу бконто.Контрагенты);
Бит.ПолучитьСубконто(ВидыС убконто.Контрагенты);
Бит.ВыбратьСубконто(ВидыСу бконто.Договоры);
while Бит.ПолучитьСубконто(ВидыС убконто.Договоры) <> 0 do
НоваяСтрока();
Договор = Бит.Субконто(ВидыСубконто.� �оговоры);
СальдоПо58_7 = Бит.СКД()-Бит.СКК();
СальдоПо75_4 = 0;
Итого = 0;
enddo;


Модераторов, прошу удалить тему, чтоб не засорять форму. Спасибо )))