Бухгалтерский запрос в разрезе субконто и дат
Нужно сделать выборку задолженности по подотчету по сотрудникам в разрезе дней за период. Написал такой код:
БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);
БИ.ВыполнитьЗапрос(ДатаНач, ДатаНач, "71.1", , , 1, "День");
БИ.ВыбратьСубконто(ВидыСубконто.Сотрудники);
Пока БИ.ПолучитьСубконто(ВидыСубконто.Сотрудники) = 1 Цикл
ТекДата = ДатаНач;
Пока ТекДата <= ДатаКон Цикл
Если БИ.ПолучитьПериод(, ТекДата) = 1 Тогда
ТекСумма = БИ.СКД("С") - БИ.СКК("С");
КонецЕсли;
КонецЦикла;
КонецЦикла;
Показать
Ну так эта гадина семерка ни разу не смогла получить период с ТекДатой. А обороты есть. Убираешь БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники) - нет проблем, всё как положено - сальдо меняется. Но мне то надо с аналитикой! Где я не прав, люди?!
БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);
БИ.ВыполнитьЗапрос(ДатаНач, ДатаНач, "71.1", , , 1, "День");
БИ.ВыбратьСубконто(ВидыСубконто.Сотрудники);
Пока БИ.ПолучитьСубконто(ВидыСубконто.Сотрудники) = 1 Цикл
ТекДата = ДатаНач;
Пока ТекДата <= ДатаКон Цикл
Если БИ.ПолучитьПериод(, ТекДата) = 1 Тогда
ТекСумма = БИ.СКД("С") - БИ.СКК("С");
КонецЕсли;
КонецЦикла;
КонецЦикла;
Ну так эта гадина семерка ни разу не смогла получить период с ТекДатой. А обороты есть. Убираешь БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники) - нет проблем, всё как положено - сальдо меняется. Но мне то надо с аналитикой! Где я не прав, люди?!
По теме из базы знаний
Найденные решения
Какой-то код у Вас сомнительный.
БИ.ВыполнитьЗапрос(ДатаНач, ДатаНач, "71.1", , , 1, "День"); - даты начала и конца такие и должны быть?
Пока ТекДата <= ДатаКон Цикл - нигде в тексте не видно, чтобы ТекДата или КонДата менялись, значит цикл будет бесконечный.
Попробуйте вот такой код:
И да, действительно, метод даст результат только для тех сотрудников, у которых были обороты в заданном периоде.
БИ.ВыполнитьЗапрос(ДатаНач, ДатаНач, "71.1", , , 1, "День"); - даты начала и конца такие и должны быть?
Пока ТекДата <= ДатаКон Цикл - нигде в тексте не видно, чтобы ТекДата или КонДата менялись, значит цикл будет бесконечный.
Попробуйте вот такой код:
БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);
БИ.ВыполнитьЗапрос(ДатаНач, ДатаКон, "71.1", , , 1, "День");
БИ.ВыбратьСубконто(ВидыСубконто.Сотрудники);
Пока БИ.ПолучитьСубконто(ВидыСубконто.Сотрудники) = 1 Цикл
Если БИ.ВыбратьПериоды()=1 Тогда
Пока БИ.ПолучитьПериод()=1 Цикл
ТекДата = БИ.НачДата;
ТекСумма = БИ.СКД("С") - БИ.СКК("С");
Сообщить(""+ТекДата+" "+ТекСумма+" "+БИ.Субконто(1));
КонецЦикла;
КонецЕсли;
КонецЦикла;
ПоказатьИ да, действительно, метод даст результат только для тех сотрудников, у которых были обороты в заданном периоде.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Какой-то код у Вас сомнительный.
БИ.ВыполнитьЗапрос(ДатаНач, ДатаНач, "71.1", , , 1, "День"); - даты начала и конца такие и должны быть?
Пока ТекДата <= ДатаКон Цикл - нигде в тексте не видно, чтобы ТекДата или КонДата менялись, значит цикл будет бесконечный.
Попробуйте вот такой код:
И да, действительно, метод даст результат только для тех сотрудников, у которых были обороты в заданном периоде.
БИ.ВыполнитьЗапрос(ДатаНач, ДатаНач, "71.1", , , 1, "День"); - даты начала и конца такие и должны быть?
Пока ТекДата <= ДатаКон Цикл - нигде в тексте не видно, чтобы ТекДата или КонДата менялись, значит цикл будет бесконечный.
Попробуйте вот такой код:
БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);
БИ.ВыполнитьЗапрос(ДатаНач, ДатаКон, "71.1", , , 1, "День");
БИ.ВыбратьСубконто(ВидыСубконто.Сотрудники);
Пока БИ.ПолучитьСубконто(ВидыСубконто.Сотрудники) = 1 Цикл
Если БИ.ВыбратьПериоды()=1 Тогда
Пока БИ.ПолучитьПериод()=1 Цикл
ТекДата = БИ.НачДата;
ТекСумма = БИ.СКД("С") - БИ.СКК("С");
Сообщить(""+ТекДата+" "+ТекСумма+" "+БИ.Субконто(1));
КонецЦикла;
КонецЕсли;
КонецЦикла;
ПоказатьИ да, действительно, метод даст результат только для тех сотрудников, у которых были обороты в заданном периоде.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот