Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[1С:Предприятие 7.7]

Некорректный вывод сумм амортизации ОС

redmuz
читатель
офлайн
Дата регистрации: 19.06.2018
Сообщений: 16
Пост №1
 
10.07.2020 14:05

Добрый день.
1С 7.7. Отчёт "Регистр-расчет амортизации основных средств".
В отчете выводятся первоначальная стоимость по НУ, амортизационная премия по каждому ОС. Обычно всё нормально, но за январь 2020, почему-то с сортировкой по коду до 22 позиции суммы выводится правильно сальдо как в оборотке, а после 22ой позиции выводятся итоговые суммы сальдо по счетам. А с сортировкой по наименованию до 288 позиции суммы корректные, после итоговые суммы.

Код
Функция ОпределитьПервоначальную(ОС)
    Спис=СоздатьОбъект("СписокЗначений");
    БИ.ПолучитьСубконто(,,ОС);
    БИ.ВыбратьСчета();
    БИ.ПолучитьСчет(,СчетПоКоду("Н05.01"));
    Перв=БИ.СКД();
    Спис.ДобавитьЗначение(Перв,"Перв");
    БИ.ПолучитьСчет(,СчетПоКоду("Н05.02.1"));
    Прем=БИ.СКК();
    Спис.ДобавитьЗначение(Прем,"Прем");
    Спис.ДобавитьЗначение((Перв-Прем),"ПервБА");
    Возврат Спис ;
    
КонецФункции         

//*******************************************
Процедура Сформировать()
    Если (Дата1<>НачМесяца(Дата1)) ИЛИ (Дата2<>КонМесяца(Дата2)) Тогда
        Предупреждение("Этот отчет формируется только за календарный период!",2);
        Возврат ;
    КонецЕсли;
    
    Таб=СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("");
    Таб.ВывестиСекцию("Отчет|Основная");        
    
    Если ПустоеЗначение(ВР)=0 Тогда
        ИмяОтбора="Вид расходов:" ;
        Отбор=""+ВР ;
        Таб.ВывестиСекцию("Отбор|Основная") ;
    КонецЕсли;
    Если ПустоеЗначение(АГ)=0 Тогда
        ИмяОтбора="Амортизационная группа:" ;
        Отбор=""+АГ ;
        Таб.ВывестиСекцию("Отбор|Основная") ;
    КонецЕсли;
    Если ПустоеЗначение(БСч)=0 Тогда
        ИмяОтбора="Балансовый счет:" ;
        Отбор=""+БСч ;
        Таб.ВывестиСекцию("Отбор|Основная") ;
    КонецЕсли;
    Если ПустоеЗначение(Подр)=0 Тогда
        ИмяОтбора="Подразделение:" ;
        Отбор=""+Подр.Наименование ;
        Таб.ВывестиСекцию("Отбор|Основная") ;
    КонецЕсли;
    Если ПустоеЗначение(ИФ)=0 Тогда
        ИмяОтбора="Источник финансирования:" ;
        Отбор=""+ИФ.Наименование ;
        Таб.ВывестиСекцию("Отбор|Основная") ;
    КонецЕсли;
    Если СК=1 Тогда
        ИмяОтбора="Специальный коэффициент <1" ;
        Отбор="" ;
        Таб.ВывестиСекцию("Отбор|Основная") ;
    КонецЕсли;
    Если ПринНалог=1 Тогда
        ИмяОтбора="Учитываются при налогообложении прибыли" ;
        Отбор="" ;
        Таб.ВывестиСекцию("Отбор|Основная") ;
    КонецЕсли;
    Таб.ВывестиСекцию("Шапка|Основная");
    Если ДопРек=1 Тогда
        Таб.ПрисоединитьСекцию("Шапка|Доп");
    КонецЕсли;
    
    СчетАморт=СчетПоКоду("Н05.02.0");
    НеПринимаемые=Перечисление.ВидыРасходов.ЗначениеПоИдентификатору("НеПринимаемые");
    
    Запрос=СоздатьОбъект("Запрос");
    ТекстЗапроса="//{{ЗАПРОС(Запрос)
    |Период с Дата1 по Дата2;
    |Счет = Операция.Кредит.Счет;
    |ОсновныеСредства = Операция.Кредит.ОсновныеСредства;
    |Код = Операция.Кредит.ОсновныеСредства.Код;
    |Наименование = Операция.Кредит.ОсновныеСредства.Наименование;
    |АмортизационнаяГруппа = Операция.Кредит.ОсновныеСредства.АмортизационнаяГруппа;
    |ВидРасхода = Операция.Кредит.ОсновныеСредства.ВидРасхода;
    |ИсточникФинансирования = Операция.Кредит.ОсновныеСредства.ИсточникФинансирования;
    |Подразделение = Операция.Кредит.ОсновныеСредства.Подразделение;
    |СчетЗатрат = Операция.Кредит.ОсновныеСредства.СчетЗатрат;
    |СпециальныйКоэффициент = Операция.Кредит.ОсновныеСредства.СпециальныйКоэффициент;
    |Срок = Операция.Кредит.ОсновныеСредства.СрокПолезногоИспользованияН;
    |Сумма = Операция.Сумма;
    |Функция СуммаКО = КО(Сумма) ;
    |Условие(Счет = СчетАморт);
    |" ;//}}ЗАПРОС

    
    ЕстьОтбор=0 ;
    Если ПустоеЗначение(ВР)=0 Тогда
        Текстзапроса=ТекстЗапроса+"
        |Условие (ВидРасхода=ВР);
        |" ;
        ЕстьОтбор=1 ;
    КонецЕсли;
    Если ПустоеЗначение(АГ)=0 Тогда
        Текстзапроса=ТекстЗапроса+"
        |Условие (АмортизационнаяГруппа=АГ);
        |" ;
        ЕстьОтбор=1 ;
    КонецЕсли;
    Если ПустоеЗначение(БСч)=0 Тогда
        Текстзапроса=ТекстЗапроса+"
        |Условие (СчетЗатрат=БСч);
        |" ;
        ЕстьОтбор=1 ;
    КонецЕсли;
    Если ПустоеЗначение(Подр)=0 Тогда
        Текстзапроса=ТекстЗапроса+"
        |Условие (Подразделение=Подр);
        |" ;
        ЕстьОтбор=1 ;
    КонецЕсли;
    Если ПустоеЗначение(ИФ)=0 Тогда
        Текстзапроса=ТекстЗапроса+"
        |Условие (ИсточникФинансирования=ИФ);
        |" ;
        ЕстьОтбор=1 ;
    КонецЕсли;
    Если СК=1 Тогда
        Текстзапроса=ТекстЗапроса+"
        |Условие (СпециальныйКоэффициент<1);
        |" ;
        ЕстьОтбор=1 ;
    КонецЕсли;
    Если ПринНалог=1 Тогда
        Текстзапроса=ТекстЗапроса+"
        |Условие (ВидРасхода<>НеПринимаемые);
        |" ;
        ЕстьОтбор=1 ;
    КонецЕсли;
    
    Если Группировка=2 Тогда
        Текстзапроса=ТекстЗапроса+"
        |Группировка ВидРасхода;
        |" ;
    ИначеЕсли Группировка=3 Тогда
        Текстзапроса=ТекстЗапроса+"
        |Группировка АмортизационнаяГруппа;
        |" ;
    ИначеЕсли Группировка=4 Тогда
        Текстзапроса=ТекстЗапроса+"
        |Группировка СчетЗатрат;
        |" ;
    КонецЕсли;
    
    Если Сортировка=1 Тогда
        Текстзапроса=ТекстЗапроса+"
        |Группировка ОсновныеСредства Упорядочить по ОсновныеСредства.Код;
        |" ;
    Иначе
        Текстзапроса=ТекстЗапроса+"
        |Группировка ОсновныеСредства Упорядочить по ОсновныеСредства.Наименование;
        |" ;
    КонецЕсли;
    
    Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
        Сообщить("Ошибочка");
        Возврат ;
    КонецЕсли; 
    
    БИ=СоздатьОбъект("БухгалтерскиеИтоги");
    БИ.ИспользоватьСубконто("ОсновныеСредства");
    БИ.ВыполнитьЗапрос(Дата1,Дата2,"Н05.01,Н05.02.1");
    Состояние("Запрос сделан. Обрабатываю...");
    БИ.ВыбратьСубконто();
    
    
    Счетчик=0 ;
    СчетчикГр=0 ;
    Если Группировка=1 Тогда
        Пока Запрос.Группировка(1)=1 Цикл
            Счетчик=Счетчик+1 ;
            Состояние(Счетчик);
            Спис=ОпределитьПервоначальную(Запрос.ОсновныеСредства) ;
            П=Спис.Получить("Перв");
            А=Спис.Получить("Прем");
            ПБА=Спис.Получить("ПервБА");
            Таб.ВывестиСекцию("Строка|Основная");
            Если ДопРек=1 Тогда
                Таб.ПрисоединитьСекцию("Строка|Доп");
            КонецЕсли;
        КонецЦикла;
    Иначе                       
        Пока Запрос.Группировка(1)=1 Цикл
            СчетчикГр=СчетчикГр+1 ;
            Состояние(СчетчикГр);
            Счетчик=0 ;
            Если Группировка=2 Тогда
                ИмяГруппы=""+Запрос.ВидРасхода ;
            ИначеЕсли Группировка=3 Тогда
                ИмяГруппы=""+Запрос.АмортизационнаяГруппа ;
            ИначеЕсли Группировка=4 Тогда
                ИмяГруппы=Запрос.СчетЗатрат.Код+"  "+СокрП(Запрос.СчетЗатрат.Наименование) ;
            КонецЕсли;
            Таб.ВывестиСекцию("Группа|Основная");
            Если ДопРек=1 Тогда
                Таб.ПрисоединитьСекцию("Группа|Доп");
            КонецЕсли;
            Если ТолькоИтоги=0 Тогда
                Пока Запрос.Группировка(2)=1 Цикл
                    Счетчик=Счетчик+1 ;
                    Состояние(""+СчетчикГр+"  "+Счетчик);
                    Спис=ОпределитьПервоначальную(Запрос.ОсновныеСредства) ;
                    П=Спис.Получить("Перв");
                    А=Спис.Получить("Прем");
                    ПБА=Спис.Получить("ПервБА");
                    Таб.ВывестиСекцию("Строка|Основная");
                    Если ДопРек=1 Тогда
                        Таб.ПрисоединитьСекцию("Строка|Доп");
                    КонецЕсли;
                КонецЦикла;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    Итог=Запрос.СуммаКО ;
    Таб.ВывестиСекцию("Итог|Основная");
    
    Если ЕстьОтбор=0 Тогда
        БИ.ОсновныеИтоги();
        БИ.ПериодД(НачГода(Дата1),Дата2);
        НарИтог=БИ.КО("Н05.02.0");
        Таб.ВывестиСекцию("НарИтог|Основная");
    КонецЕсли;
    
    ОтветственныйЗаСоставление = ФИО(?(ПустоеЗначение(Константа.ОтветственныйЗаСоставлениеРегистровНУ)=0,Константа.ОтветственныйЗаСоставлениеРегистровНУ,ТекПользователь.ПолноеИмя));
     НижнийКолонтитул=("Регистр сформирован "+ ТекущаяДата()+"  "+ ТекущееВремя());
    
    Таб.ВывестиСекцию("Подвал|Основная");
    Таб.ТолькоПросмотр(1);
    Таб.Опции(0,0,0,0);
    Таб.Показать("");

КонецПроцедуры

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация