Всем приветс) 
в общем такая ситуация, 
 
 у нас не правильно списывается 98 счет по безвозмездно полученным ОС, программа начинает списывать его сразу после ввода в эксплуатацию, не зависимо от того начислялась по объекту первая амортизация или нет. 
У меня появилась мысль чтоб добавить в закрытие месяца в процедуру, отвечающую за списание 98 счета проверку на остаток по 02 счёту по объектам - если есть остаток по 02 счёту - то списывать 98 счёт, если нету, то не списывать, вот только с релизацией этой идеи возникли сложности. Подскажи пожалуйста как это лучше сделать. 

 модуль ниже: 
Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("Период",        ДатаРасчета);
        Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ДатаРасчета));    
        Запрос.УстановитьПараметр("Организация",   СтруктураШапкиДокумента.Организация);
        Запрос.УстановитьПараметр("Счет_ОС1",      ПланыСчетов.Хозрасчетный.ПервоначальнаяСтоимостьБезвозмездныхОС);
        Запрос.УстановитьПараметр("Счет_АМ2",      ПланыСчетов.Хозрасчетный.АмортизацияБезвозмездныхОС);
        Запрос.УстановитьПараметр("СубконтоОС",    ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства);
        Запрос.УстановитьПараметр("Ноль",          0);        
        Запрос.Текст = 
        "ВЫБРАТЬ
        |    ВложенныйЗапрос1.ОС,
        |    ВложенныйЗапрос1.СтатьяПрочихДоходовРасходов,
        |    ВЫБОР
        |        КОГДА ВложенныйЗапрос1.Частное <= ВложенныйЗапрос1.Разность
        |            ТОГДА ВложенныйЗапрос1.Частное
        |        ИНАЧЕ ВложенныйЗапрос1.Разность
        |    КОНЕЦ КАК СуммаСписания
        |ИЗ
        |    (ВЫБРАТЬ
        |        ВложенныйЗапрос1.ОС КАК ОС,
        |        ВложенныйЗапрос1.СПИ КАК СПИ,
        |        ВложенныйЗапрос1.ОС1 КАК ОС1,
        |        ВложенныйЗапрос1.АМ2 КАК АМ2,
        |        ВЫРАЗИТЬ(ВложенныйЗапрос1.ОС1 / ВложенныйЗапрос1.СПИ КАК ЧИСЛО(15, 2)) КАК Частное,
        |        ВложенныйЗапрос1.ОС1 - ВложенныйЗапрос1.АМ2 КАК Разность,
        |        ВложенныйЗапрос1.СтатьяПрочихДоходовРасходов КАК СтатьяПрочихДоходовРасходов
        |    ИЗ
        |        (ВЫБРАТЬ
        |            ХозрасчетныйОстатки_ОС1.Субконто1 КАК ОС,
        |            ЕСТЬNULL(ХозрасчетныйОстатки_ОС1.СуммаОстатокДт, 0) КАК ОС1,
        |            ЕСТЬNULL(ХозрасчетныйОстатки_АМ2.СуммаОстатокКт, 0) КАК АМ2,
        |            ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.СрокИспользованияДляВычисленияАмортизации КАК СПИ,
        |            ОприходованиеТоваровТовары.Ссылка.СтатьяПрочихДоходовРасходов КАК СтатьяПрочихДоходовРасходов
        |        ИЗ
        |            РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет_ОС1, &СубконтоОС, Организация = &Организация) КАК ХозрасчетныйОстатки_ОС1
        |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет_АМ2, &СубконтоОС, Организация = &Организация) КАК ХозрасчетныйОстатки_АМ2
        |                ПО ХозрасчетныйОстатки_ОС1.Субконто1 = ХозрасчетныйОстатки_АМ2.Субконто1
        |                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыАмортизацииОСБухгалтерскийУчет.СрезПоследних(
        |                &Период,
        |                Организация = &Организация
        |                    И СрокИспользованияДляВычисленияАмортизации > 0) КАК ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних
        |                ПО ХозрасчетныйОстатки_ОС1.Субконто1 = ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
        |                ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОприходованиеТоваров.Товары КАК ОприходованиеТоваровТовары
        |                ПО ХозрасчетныйОстатки_ОС1.Субконто1 = ОприходованиеТоваровТовары.ОсновноеСредство
        |        ГДЕ
        |            ЕСТЬNULL(ХозрасчетныйОстатки_ОС1.СуммаОстатокДт, 0) - ЕСТЬNULL(ХозрасчетныйОстатки_АМ2.СуммаОстатокКт, 0) > &Ноль
        |        
        |        СГРУППИРОВАТЬ ПО
        |            ХозрасчетныйОстатки_ОС1.Субконто1,
        |            ОприходованиеТоваровТовары.Ссылка.СтатьяПрочихДоходовРасходов,
        |            ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.СрокИспользованияДляВычисленияАмортизации,
        |            ЕСТЬNULL(ХозрасчетныйОстатки_ОС1.СуммаОстатокДт, 0),
        |            ЕСТЬNULL(ХозрасчетныйОстатки_АМ2.СуммаОстатокКт, 0)) КАК ВложенныйЗапрос1) КАК ВложенныйЗапрос1";        
        РезультатЗапроса = Запрос.Выполнить();        
        Если Не РезультатЗапроса.Пустой() Тогда            
            Выборка = РезультатЗапроса.Выбрать();            
            Пока Выборка.Следующий() Цикл
                // Д98.2-К91.1 исходя из стоимости для вычисление амортизации находящейся на счете ОС1 
                ПроводкаБУ = мПроводкиБУ.Добавить();
                ПроводкаБУ.Период       = СтруктураШапкиДокумента.Дата;
                ПроводкаБУ.Содержание   = "Списание доходов будущих периодов";
                ПроводкаБУ.НомерЖурнала = "ОС";
                ПроводкаБУ.Организация  = СтруктураШапкиДокумента.Организация;
                ПроводкаБУ.Сумма        = Выборка.СуммаСписания;                    
                ПроводкаБУ.СчетДт = ПланыСчетов.Хозрасчетный.БезвозмездныеПоступления;
                УстановитьСубконто(ПроводкаБУ.СчетДт, ПроводкаБУ.СубконтоДт, "ОсновныеСредства", Выборка.ОС);                            
                ПроводкаБУ.СчетКт = ПланыСчетов.Хозрасчетный.ПрочиеДоходы;
                Если НЕ (Выборка.СтатьяПрочихДоходовРасходов = NUll) Тогда
                    УстановитьСубконто(ПроводкаБУ.СчетКт, ПроводкаБУ.СубконтоКт, "ПрочиеДоходыИРасходы", Выборка.СтатьяПрочихДоходовРасходов);
                Иначе
                    УстановитьСубконто(ПроводкаБУ.СчетКт, ПроводкаБУ.СубконтоКт, "ПрочиеДоходыИРасходы", Справочники.ПрочиеДоходыИРасходы.НайтиПоКоду("00019")); //извините, но по-другому ну никак нельзя 
 
                 КонецЕсли;                
                //Проводка К АМ2 
                ПроводкаБУ = мПроводкиБУ.Добавить();
                ПроводкаБУ.Период       = СтруктураШапкиДокумента.Дата;
                ПроводкаБУ.Содержание   = "Списание доходов будущих периодов";
                ПроводкаБУ.НомерЖурнала = "ОС";
                ПроводкаБУ.Организация  = СтруктураШапкиДокумента.Организация;
                ПроводкаБУ.Сумма        = Выборка.СуммаСписания;    
                ПроводкаБУ.СчетКт = ПланыСчетов.Хозрасчетный.АмортизацияБезвозмездныхОС;
                //Если НЕ (Выборка.СтатьяПрочихДоходовРасходов = NUll) Тогда 
                //    УстановитьСубконто(ПроводкаБУ.СчетКт, ПроводкаБУ.СубконтоКт, "ПрочиеДоходыИРасходы", Выборка.СтатьяПрочихДоходовРасходов); 
                //Иначе 
                //    УстановитьСубконто(ПроводкаБУ.СчетКт, ПроводкаБУ.СубконтоКт, "ПрочиеДоходыИРасходы", Справочники.ПрочиеДоходыИРасходы.НайтиПоКоду("00019")); //извините, но по-другому ну никак нельзя 
 
                 //КонецЕсли; 
                УстановитьСубконто(ПроводкаБУ.СчетКт, ПроводкаБУ.СубконтоКт, "ОсновныеСредства", Выборка.ОС);                
                //Проводки по НУ 
                // нужно сделать все как в БУ (это желание Заказчика) 
                ПроводкаНУ = мПроводкиНУ.Добавить();                
                ПроводкаНУ.Период       = СтруктураШапкиДокумента.Дата;
                ПроводкаНУ.Организация  = СтруктураШапкиДокумента.Организация;
                ПроводкаНУ.НомерЖурнала = "ОС";
                ПроводкаНУ.Содержание   = "Списание доходов будущих периодов";
                ПроводкаНУ.Сумма        = Выборка.СуммаСписания;
                ПроводкаНУ.ВидУчетаДт     = Перечисления.ВидыУчетаПоПБУ18.ВР;
                ПроводкаНУ.ВидУчетаКт     = Перечисления.ВидыУчетаПоПБУ18.ВР;                                
                ПроводкаНУ.СчетДт = ПланыСчетов.Налоговый.НайтиПоКоду("98.02");
                УстановитьСубконто(ПроводкаНУ.СчетДт, ПроводкаНУ.СубконтоДт, "ОсновныеСредства", Выборка.ОС);                            
                ПроводкаНУ.СчетКт = ПланыСчетов.Налоговый.ВнереализационныеДоходы;                
                Если НЕ (Выборка.СтатьяПрочихДоходовРасходов = NUll) Тогда
                    УстановитьСубконто(ПроводкаНУ.СчетКт, ПроводкаНУ.СубконтоКт, "ПрочиеДоходыИРасходы", Выборка.СтатьяПрочихДоходовРасходов);
                Иначе
                    УстановитьСубконто(ПроводкаНУ.СчетКт, ПроводкаНУ.СубконтоКт, "ПрочиеДоходыИРасходы", Справочники.ПрочиеДоходыИРасходы.НайтиПоКоду("00019"));  //ну правда ну никак нельзя 

(( 
                КонецЕсли;                
            КонецЦикла; 
            мПроводкиБУ.Записать(Ложь);
            мПроводкиНУ.Записать(Ложь);
        КонецЕсли; 
    КонецЕсли;
Пасибо)))