Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 08:19

Бухгалтерские итоги по амортизации основных средств.

Автор sail, 16 мая 2023, 16:23

0 Пользователей и 1 гость просматривают эту тему.

sail

Добрый день. Амортизация проходит по счету 02.1 (через документ "Амортизация ОС") и 02.2 (операции введенные вручную, это амортизация по лизингу).
У меня выдает результат в таблицу только по счету 02.1. Что не так?
БИ.ВыбратьСчета(-1,0,1,0);
         Если БИ.ПолучитьСчет(1,Сч01_1) = 1 Тогда
            СчетУчета = Сч01_1;
            нБаланс = БИ.СНД();
            кБаланс = БИ.СКД();
            оБаланс = БИ.ДО() - БИ.КО();
         Иначе   
            СчетУчета = ПолучитьПустоеЗначение("Счет");
            Если БИ.ПолучитьСчет(1,Сч03_1) = 1 Тогда
               СчетУчета = Сч03_1;                 
               нБаланс = нБаланс + БИ.СНД();
               кБаланс = кБаланс + БИ.СКД();
               оБаланс = оБаланс + БИ.ДО() - БИ.КО();
            КонецЕсли;   
            Если БИ.ПолучитьСчет(1,Сч03_2) = 1 Тогда
               СчетУчета = Сч03_2;                   
               нБаланс = нБаланс + БИ.СНД();
               кБаланс = кБаланс + БИ.СКД();
               оБаланс = оБаланс + БИ.ДО() - БИ.КО();
            КонецЕсли;   
            Если БИ.ПолучитьСчет(1,Сч03_3) = 1 Тогда
               СчетУчета = Сч03_3;                   
               нБаланс = нБаланс + БИ.СНД();
               кБаланс = кБаланс + БИ.СКД();
               оБаланс = оБаланс + БИ.ДО() - БИ.КО();
            КонецЕсли;
            Если БИ.ПолучитьСчет(1,Сч03_4) = 1 Тогда
               СчетУчета = Сч03_4;                   
               нБаланс = нБаланс + БИ.СНД();
               кБаланс = кБаланс + БИ.СКД();
               оБаланс = оБаланс + БИ.ДО() - БИ.КО();
            КонецЕсли;
         КонецЕсли;
            
         Если СчетУчета = Сч01_1 Тогда
            Если БИ.ПолучитьСчет(1,Сч02_1) = 1 Тогда
                      КорСчет = "";
                      нАмортизация = БИ.СНК();
                     кАмортизация = БИ.СКК();
                     оАмортизация = БИ.КО()-БИ.ДО();
                     БИ.ВыбратьКорСчета();
                     Пока БИ.ПолучитьКорСчет()=1 цикл
                         КорСчет =БИ.КорСчет.Код;
                     конеццикла;
            иначеесли  БИ.ПолучитьСчет(1,Сч02_2) = 1 Тогда
                      КорСчет = "";
                      нАмортизация = БИ.СНК();
                     кАмортизация = БИ.СКК();
                     оАмортизация = БИ.КО()-БИ.ДО();
                     БИ.ВыбратьКорСчета();
                     Пока БИ.ПолучитьКорСчет()=1 цикл
                         КорСчет =БИ.КорСчет.Код;
                     конеццикла;
            конецесли;
         
         Иначе   
            Если БИ.ПолучитьСчет(1,Сч02_2) = 1 Тогда
                     КорСчет = "";
                       нАмортизация = БИ.СНК();
                     кАмортизация = БИ.СКК();
                     оАмортизация = БИ.КО()-БИ.ДО();
                     БИ.ВыбратьКорСчета();
                     Пока БИ.ПолучитьКорСчет()=1 цикл
                         КорСчет = БИ.КорСчет.Код;
                     конеццикла;
                  
            КонецЕсли;
         КонецЕсли;

alexandr_ll


sail

alexandr_ll, при открытии задается
Сч02_1 = СчетПоКоду("02.1");
Сч02_2 = СчетПоКоду("02.2");

alexandr_ll

sail, Какой счет учета у ОС по лизингу? Что указано в "БИ.ВыполнитьЗапрос"?

sail

alexandr_ll,
Все ОС учитываются на 01.1, но амортизация начисляется по 02.1 по нашим ОС, по 02.2 по ОС взятым в лизинг.
БИ.ВыполнитьЗапрос(НачДата,КонДата,"01.1,01.2,02.1,02.2,03.1,03.2,03.3,03.4,010",,,3,"Месяц")

sail

Получается если отбираю по конкретному ОС, то все работает и отбирает все правильно. Если же отбираю по всем субконто ОС, то
Если СчетУчета = Сч01_1 Тогда
            Если БИ.ПолучитьСчет(1,Сч02_1) = 1 Тогда
                      КорСчет = "";
                      нАмортизация = БИ.СНК();
                     кАмортизация = БИ.СКК();
                     оАмортизация = БИ.КО()-БИ.ДО();
                     БИ.ВыбратьКорСчета();
                     Пока БИ.ПолучитьКорСчет()=1 цикл
                         КорСчет =БИ.КорСчет.Код;
                     конеццикла;
            иначеесли  БИ.ПолучитьСчет(1,Сч02_2) = 1 Тогда
                      КорСчет = "";
                      нАмортизация = БИ.СНК();
                     кАмортизация = БИ.СКК();
                     оАмортизация = БИ.КО()-БИ.ДО();
                     БИ.ВыбратьКорСчета();
                     Пока БИ.ПолучитьКорСчет()=1 цикл
                         КорСчет =БИ.КорСчет.Код;
                     конеццикла;
            конецесли;

выполняется и БИ.ПолучитьСчет(1,Сч02_1) = 1 и БИ.ПолучитьСчет(1,Сч02_2) = 1, поэтому оно запоминает что по Сч02_2 и выдает в таблицу.
Т.е. если амортизация по 02.2, то отображает верно, а если по 02.1, то выдает нули, даже если там есть сумма.
Может какой-то параметр в методах я упускаю?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск