Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Списание 98 счёта  (Прочитано 8417 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Aleksey_86
Гость
« : 23-07-2009 06:29 » 

Всем приветс)

в общем такая ситуация, Не понял

у нас не правильно списывается 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"));  //ну правда ну никак нельзя Жаль((
 
                КонецЕсли;
               
            КонецЦикла;
            мПроводкиБУ.Записать(Ложь);
            мПроводкиНУ.Записать(Ложь);
        КонецЕсли;
    КонецЕсли;


Пасибо)))
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #1 : 30-07-2009 22:46 » 

Мама р'одная   Быть такого не может
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 31-07-2009 02:58 » new

Dest, думаю, этот ответ его не устроит  )))
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines