Бухгалтерский запрос по документу

Новая тема
Показывать по 10 20 40 сообщений
"Необходимо сделать  бухгалтерские итоги по конкретному документу, а не по всем проводкам.
Пример приведен ниже, но он не работает

Итог = 0;
БИ = СоздатьОбъект("БухгалтерскиеИтоги");  
БИ.ИспользоватьСубконто();  
БИ.ВключатьСубсчета(,1);
БИ.ВыполнитьЗапрос(НачДата,КонДата,"25,26","10.11.1", ,2,"Проводка","С");
БИ.ВыбратьСчета();
Пока БИ.ПолучитьСчет()=1 Цикл
БИ.ВыбратьСубконто();
Пока БИ.ПолучитьСубконто() = 1 Цикл
Опер = БИ.Операция;
Док = Опер.Документ.ТекущийДокумент();
Если (Док.Вид()="НачислениеАмортизации") Тогда  
Если Док.СпецодеждаСпецоснастка = 1 Тогда
Сумм = Опер.Сумма;
Итог = Итог + Сумм;
Таб.ВывестиСекцию("Строка");
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;

Что делать? Подскажите, пожалуйста. "
Бухгалтерские итоги под собой понимают такое, тем более
переодичность вы указали "Проводка". И им всё равно каким документом было
сформирована данная проводка.

Если необходимо конкретно по какому-то одномк документу, то используйте
запрос, в котором ставьте условия:
док = "НачислениеАмортизации"
Док.СпецодеждаСпецоснастка = 1

только потом придётся строки документа перебрать
А у этого документа нет строк, зайдите и посмотрите этот документ, тогда что?
Блин, ну не строки...проводки, только не говорите, что этот документ не формирует проводок!
А вообще, если уж на то пошло и вам нужно только данный вид документа, то тут даже запрос
делать не уместно. просто выбрать документы за период и обработать.
То есть вы предлагаете сделать сначала цикл по перебору документов "Начисление амортизации", а внутри этого цикла сделать бухгалтерский запрос?
Зачем бухгалтерский запрос делать? выбираем документы за нужный период в
которых стоит голочка СпецодеждаСпецоснастка и смотрим проводки, которые
данный документ делает(простым перебором). По-моему это проще.
Если на то пошло, то для того чтобы посмотреть проводки по конткретному документу достаточно по кнопке "Действия" в журнале выбрать "Отчет о движении" и получим все проводки контретного документа.

Я правда, не совсем поняла вопрос, какие бухитоги по документу хотели увидеть?
Да нет, не все проводки нужны. Просто перебираем все и выбираем только те, которые нужны
"Ну, люди мне нужен бухгалтерский запрос для того, чтобы работать дальше с  его итогами, а непросто посмотреть. Дело в том, что данный блок работает:

Опер = СоздатьОбъект("Операция");
Опер.ВыбратьОперацииСПроводками(НачДата,КонДата,"25,26, 10.11");
Пока Опер.ПолучитьПроводку()=1 Цикл  
Если Опер.Документ.Вид() = "НачислениеАмортизации" Тогда  
п = п + 1;
Сотр = Опер.Кредит.Сотрудники;
Материал = Опер.Кредит.Материалы;  
Счет = Опер.Дебет.Счет;
СПИ = Опер.Кредит.НазначенияИспользования.СрокПолезногоИспользования;
СПС = Опер.Кредит.НазначенияИспользования.СпособПогашенияСтоимости;  
НомДокПерВПроизводство = Опер.Кредит.НазначенияИспользования.ДокументПередачаВПроизводство.НомерДок;
ДатДокПерВПроизводство = Опер.Кредит.НазначенияИспользования.ДокументПередачаВПроизводство.ДатаДок;
Всего = Опер.Сумма;
Итог = Итог + Всего;
Таб.ВывестиСекцию("Строка");
КонецЕсли;
КонецЦикла;

Но долго!!! Бухитоги быстрее!!! Но в бухитогах не выполняется условие
Если Опер.Док.Вид() = "НачилениеАмортизации" Тогда
///
Поэтому я сделала через проводки!!!"
"Извини, но я все таки не совсем поняла что надо
Но
1.если нужно просто проводки сделанные документами , возможно если идти от документа, а нет от проводок то будет быстрее

Док1=СоздатьОбъект("Документ.НачислениеАмортизации");
Док1.ВыбратьДокументы(Начдата,Кондата);
пока док1.ПолучитьДокумент()=1 цикл
Док = док1.ТекущийДокумент();
Если Док.СуществуетОперация()=1 Тогда
 Опер=Док.Операция;
 Опер.ВыбратьПроводки();
  Пока Опер.ПолучитьПроводку()=1 Цикл
   .....
  КонецЦикла;
КонецЕсли;
конеццикла;

2 Бухгалтериские итоги - это  остатки и обороты по счетам и объектам аналитическгого учета и т п. ПОэтому если нужны именно итоги то - использовать запрос с периодичностью операция например

БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ВыполнитьЗапрос(НачДата,Кондата,"25,26,10.1",,,1,"Операция",1);
БИ.ВыбратьПериоды();
пока БИ.ПолучитьПериод()=1 цикл
 если БИ.Операция.Документ.Вид()="НачислениеАмортизации" тогда
  .......
 конецесли;
конеццикла;
"
Читают тему
(гостей: 1)

Быстрый переход