|
v7: БИ, субконто, выбратьсубконто, получитьсубконто, число фильтров |
☑ |
0
Eeakie
09.01.16
✎
18:24
|
Нужны сальдо по суммами и количеству по ВСЕМ счетам/субсчетам на определенную дату.
Делаю:
БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьРазделительУчета(ВыбраннаяФирма);
БИ.ИспользоватьПланСчетов(ОсновнойПланСчетов());
БИ.ВключатьСубсчета(1);
БИ.ВыполнитьЗапрос(ВыбраннаяДата, ВыбраннаяДата);
БИ.ВыбратьСчета();
Пока БИ.ПолучитьСчет() = 1 Цикл
БИ1 = СоздатьОбъект("БухгалтерскиеИтоги");
БИ1.ИспользоватьРазделительУчета(ВыбраннаяФирма);
БИ1.ИспользоватьПланСчетов(ОсновнойПланСчетов());
БИ1.ВключатьСубсчета(1);
Для Х = 1 По ПечСчет.КоличествоСубконто() Цикл
БИ1.ИспользоватьСубконто(ПечСчет.ВидСубконто(Х));
КонецЦикла;
БИ1.ВыполнитьЗапрос(ВыбраннаяДата, ВыбраннаяДата, БИ.Счет);
Если БИ1.ВыбратьСубконто(1) = 1 Тогда
Пока БИ1.ПолучитьСубконто(1) = 1 Цикл
...
Если БИ1.ВыбратьСубконто(2) = 1 Тогда
Пока БИ1.ПолучитьСубконто(2) = 1 Цикл // Число фильтров субконто превысило допустимое значение!
...
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Что за ерунда? Почему на проверке "Если БИ1.ВыбратьСубконто(2) = 1 Тогда" вылазит ошибка?
|
|
1
Eeakie
09.01.16
✎
18:25
|
Как-то странно код переносится :) Его вообще нельзя править вручную чтоль..
|
|
2
Джордж1
09.01.16
✎
18:27
|
Ну может у счета вообще субконто нет
|
|
3
Джордж1
09.01.16
✎
18:28
|
Обход субконто тоже лучше делать так
Для Х = 1 По ПечСчет.КоличествоСубконто() Цикл
КонецЦикла;
|
|
4
Eeakie
09.01.16
✎
18:29
|
(3) У меня вроде бы так и сделано..
|
|
5
Джордж1
09.01.16
✎
18:30
|
(4)ты и результаты так выбирай а не сразу
Если БИ1.ВыбратьСубконто(1) = 1 Тогда
|
|
6
Builder
09.01.16
✎
18:31
|
Одним запросом никак что ли?
Зачем 2 запроса городить?
|
|
7
Eeakie
09.01.16
✎
18:31
|
(6) Можно поподробнее про один запрос?
|
|
8
Eeakie
09.01.16
✎
18:31
|
(5) Как вариант. Попробую.
|
|
9
Builder
09.01.16
✎
19:07
|
(7) Что подробнее?
Конструкторы - Бухгалтерский запрос.
Он предлагает такую конструкцию, попробуй.
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(,, 1);
Ит.ИспользоватьСубконто(,, 1);
Ит.ИспользоватьСубконто(,, 1);
Ит.ВключатьСубсчета(1);
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,,,, 1,, "С");
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет() = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Счет");
Ит.ВыбратьСубконто(1);
Пока Ит.ПолучитьСубконто(1) = 1 Цикл
....
ну и т.д.
|
|
10
HawkEye
09.01.16
✎
20:47
|
(0) бред какой-то...
зачем тебе нужны БИ1 еще и создающиеся в цикле?
что за ПечСчет, если в сабже аж выделено "по ВСЕМ"?
или как обычно, ты сюда запостил совсем не то, что у тебя в отчете, причем строки выбирал по своему разумению?
|
|