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

1С:Предприятие ::

Метки:

Не работает налоговый учет

Я
   Favorit
 
13.04.04 - 14:04
Какие то умники изменили у однойконторы документ оприходования основных средств. и теперь налоговый учет не срабатывает!
Он не видит балансовую стоимость ОС(я уже запутался),
вот кусок правильного кода... Можно ли переключить его на запрос балансовой стоимости?
Если кто не устал поглядите на досуге!
Процедура Сформировать()
    
    Если ПроверкаПериода() = 0 Тогда
        Возврат;
    КонецЕсли;

    Состояние("Заполнение выходной таблицы...");
    
    Таб = СоздатьОбъект("Таблица");
    СтрНалогоплательщик = Константа.ОфициальноеНазваниеОрганизации;
    Если ПустаяСтрока(СтрНалогоплательщик) = 1 Тогда
        СтрНалогоплательщик = Константа.НазваниеОрганизации;        
    КонецЕсли;
    ИНН = Константа.ИННОрганизации; 
    НазваниеАмортизационнойГруппы = ?(ПустоеЗначение(АмортизационнаяГруппа) = 1, "по всем", АмортизационнаяГруппа);
    
    Таб.ВывестиСекцию("Шапка1");
    
    Таб.ВывестиСекцию("Шапка2|Общая1");
    НК = 1;
    Если ГруппироватьПоОбъектам = 0 Тогда
        НК = 2;
        Таб.ПрисоединитьСекцию("Шапка2|Объект");
    КонецЕсли;
    Таб.ПрисоединитьСекцию("Шапка2|Общая2");
    
    ТабОС = СоздатьОбъект("ТаблицаЗначений");
    ТабОС.НоваяКолонка("ДатаОперации","Дата");
    ТабОС.НоваяКолонка("Объект","Справочник.ОсновныеСредства");
    ТабОС.НоваяКолонка("ИнвентарныйНомер");
    ТабОС.НоваяКолонка("Производственное","Число");
    ТабОС.НоваяКолонка("МетодНачисленияАмортизации");
    ТабОС.НоваяКолонка("СпециальныйКоэффициент","Число");
    ТабОС.НоваяКолонка("Стоимость","Число");
    ТабОС.НоваяКолонка("ПолезныйСрок","Число");
    ТабОС.НоваяКолонка("СуммаАмортизации","Число");
    
    БИ = СоздатьОбъект("БухгалтерскиеИтоги");
    БИ.ИспользоватьСубконто(ВидыСубконто.ОсновныеСредства,,1,0);
    БИ.ВыполнитьЗапрос(НачДата,КонДата,"Н05.02",,,3,"Месяц","С");

    БИН0501 = СоздатьОбъект("БухгалтерскиеИтоги");
    БИН0501.ИспользоватьСубконто(ВидыСубконто.ОсновныеСредства,,1,0);
    БИН0501.ВыполнитьЗапрос(НачДата, КонДата, "Н05.01",,,, "Месяц", "С");
        
    НачислятьАмортизацию = СоздатьОбъект("Периодический");
    
    СуммаАмортизацииПроизв = 0;
    СуммаАмортизацииНеПроизв = 0;
    БИ.ВыбратьСубконто(ВидыСубконто.ОсновныеСредства);
    Пока БИ.ПолучитьСубконто(ВидыСубконто.ОсновныеСредства) = 1 Цикл
        ОсновноеСредство = БИ.Субконто(ВидыСубконто.ОсновныеСредства);
        
       // фильтр по указанной в диалоге амортизационной группе (если она выбрана).

        Если (ПустоеЗначение(АмортизационнаяГруппа) = 0) и (АмортизационнаяГруппа <> ОсновноеСредство.АмортизационнаяГруппа) Тогда
            Продолжить;
        КонецЕсли;
        
        МетодНачисленияАмортизации = ОсновноеСредство.МетодНачисленияАмортизации;
        НачислятьАмортизацию.ИспользоватьОбъект("НачислятьАмортизацию", ОсновноеСредство);
        ДатаНачисленияАмортизации = Макс(ДобавитьМесяц(ОсновноеСредство.ДатаВводаВЭксплуатацию, 1), '01.01.02');
        КоличествоМесяцевПолезногоИспользования = 0;
        
        БИН0501.ПолучитьСубконто(ВидыСубконто.ОсновныеСредства,,ОсновноеСредство);
        БИ.ВыбратьПериоды(, 2);
        Пока БИ.ПолучитьПериод() = 1 Цикл
            ТабОС.НоваяСтрока();
            ТабОС.ДатаОперации = БИ.НачДата;
            ОсновноеСредство.ИспользоватьДату(БИ.КонДата,1);
            ТабОС.ИнвентарныйНомер = ОсновноеСредство.Код;
            ТабОС.Объект = ОсновноеСредство;
            ТабОС.Производственное = Производственное(ОсновноеСредство);
            ТабОС.СпециальныйКоэффициент = ОсновноеСредство.СпециальныйКоэффициент;
            Стоимость = 0;
            
            Пока ДатаНачисленияАмортизации < БИ.НачДата Цикл
                КоличествоМесяцевПолезногоИспользования = КоличествоМесяцевПолезногоИспользования + НачислятьАмортизацию.ЗначениеНаДату(ДатаНачисленияАмортизации);
                ДатаНачисленияАмортизации = КонМесяца(ДобавитьМесяц(ДатаНачисленияАмортизации, 1));
            КонецЦикла;                               
            КоличествоМесяцевДоКонцаПолезногоСрока = Макс(ОсновноеСредство.СрокПолезногоИспользованияН - КоличествоМесяцевПолезногоИспользования, 0);
            
            Если БИН0501.Субконто(ВидыСубконто.ОсновныеСредства) = ОсновноеСредство Тогда
                Если БИН0501.ПолучитьПериод(,БИ.НачДата) = 1 Тогда
                    ПервоначальнаяСтоимость = БИН0501.СНД() + БИН0501.ДО();
                    Если МетодНачисленияАмортизации = Перечисление.МетодыНачисленияАмортизации.Линейный Тогда
                        Стоимость = ПервоначальнаяСтоимость;// балансовая

                    ИначеЕсли МетодНачисленияАмортизации = Перечисление.МетодыНачисленияАмортизации.Нелинейный Тогда
                        Стоимость = ПервоначальнаяСтоимость - БИ.СНК();//остаточная

                        Если Стоимость < 0.2 * ПервоначальнаяСтоимость Тогда
                            Стоимость = ОсновноеСредство.БазоваяСтоимость.Получить(БИ.КонДата);//базовая

                        КонецЕсли;
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
            ТабОС.МетодНачисленияАмортизации = МетодНачисленияАмортизации;
            ТабОС.Стоимость = Стоимость;
            ТабОС.СуммаАмортизации = БИ.КО();
            Если Производственное(ОсновноеСредство) = 1 Тогда
                СуммаАмортизацииПроизв = СуммаАмортизацииПроизв + ТабОС.СуммаАмортизации;
            Иначе
                СуммаАмортизацииНеПроизв = СуммаАмортизацииНеПроизв + ТабОС.СуммаАмортизации;
            КонецЕсли;

            ТабОС.ПолезныйСрок = КоличествоМесяцевДоКонцаПолезногоСрока; 
            Если ОсновноеСредство.МетодНачисленияАмортизации = Перечисление.МетодыНачисленияАмортизации.Нелинейный Тогда
                Если Стоимость < 0.2 * ПервоначальнаяСтоимость Тогда
                    ДатаВводаВЭксплуатацию = Макс(ОсновноеСредство.ДатаВводаВЭксплуатацию, '31.12.2001');
                    КоличествоПолныхМесяцев = (ДатаГод(КонМесяца(БИ.КонДата)) - ДатаГод(КонМесяца(ДатаВводаВЭксплуатацию)+1)) * 12 
                    + ДатаМесяц(КонМесяца(БИ.КонДата)) - ДатаМесяц(КонМесяца(ДатаВводаВЭксплуатацию) + 1);
                    ТабОС.ПолезныйСрок = ОсновноеСредство.СрокПолезногоИспользованияН - КоличествоПолныхМесяцев;
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
    
    СтрокаСортировки = "";
    Если ГруппироватьПоОбъектам = 1 Тогда
        СтрокаСортировки = "ИнвентарныйНомер";
    КонецЕсли;
    СтрокаСортировки = СтрокаСортировки  + ?(ПустаяСтрока(СтрокаСортировки) = 0, ",","") + "ДатаОперации";
    ТабОС.Сортировать(СтрокаСортировки);

    ИтогПоОбъекту = 0;
    ИтогПоНазначению = 0;
    ТабОС.ВыбратьСтроки();
    ТекОбъект = "";
    Пока ТабОС.ПолучитьСтроку() = 1 Цикл
        
        СформироватьСтрокиПоГруппировкам(ТабОС,Таб,ТекОбъект,ИтогПоОбъекту);
        
        ПризнакПринадлежности = ?(ТабОС.Производственное = 1, "Да", "Нет");
        
        НаименованиеОбъекта = ТабОС.Объект.Наименование + ", Инв. №" + ТабОС.Объект.Код;
        ДатаОперации = Формат(ТабОС.ДатаОперации,"Д ММММГГГГ");
        СпециальныйКоэффициент = ТабОС.СпециальныйКоэффициент;
        МетодНачисленияАмортизации = Сред(Строка(ТабОС.МетодНачисленияАмортизации),1,Найти(Строка(ТабОС.МетодНачисленияАмортизации),"метод")-1);
        Стоимость = ТабОС.Стоимость;
        СуммаАмортизации = ТабОС.СуммаАмортизации;
        ИтогПоОбъекту = ИтогПоОбъекту + СуммаАмортизации;
        ИтогПоНазначению = ИтогПоНазначению + СуммаАмортизации;
        ПолезныйСрок = ТабОС.ПолезныйСрок;
        Таб.ВывестиСекцию("Строка|Общая1");
        Если ГруппироватьПоОбъектам = 0 Тогда
            Таб.ПрисоединитьСекцию("Строка|Объект");
        КонецЕсли;
        Таб.ПрисоединитьСекцию("Строка|Общая2");
        ТекОбъект = ТабОС.Объект;
    КонецЦикла;
    ТекОбъект = 0;
    СформироватьСтрокиПоГруппировкам(ТабОС,Таб,ТекОбъект,ИтогПоОбъекту);
    Таб.Область(Таб.ВысотаТаблицы(),2,Таб.ВысотаТаблицы(), 9 - ГруппироватьПоОбъектам).РамкаСнизу(3);
    
    ОтветственныйЗаСоставление = ФИО(Константа.ОтветственныйЗаСоставлениеРегистровНУ);
    
    Таб.ВывестиСекцию("Подвал");
   
    Таб.ТолькоПросмотр(1);
    Таб.ОбластьПечати(,2,,);
    Таб.Опции(0, 0, 0, 0, "ПечатьРегистрРасчетАмортизацииОС", "ОкноРегистрРасчетАмортизацииОС");
    Таб.Показать("Регистр-расчет амортизации основных средств");
    
КонецПроцедуры// Сформировать
 
  Рекламное место пустует
   427
 
1 - 13.04.04 - 14:05
как же так.... крЮтой специалист и не видит ошибки в .... цатой строке?
   Favorit
 
2 - 13.04.04 - 14:08
Тут нет ошибки!!! Код идеальный!!!
Просто в документе ввод в эксплуатацию отключено определение балансовой стоимости... вообще больше нету такого понятия!
   SiMazx
 
3 - 13.04.04 - 14:09
Ни хрена себе... Ты б еще глобальник сюда зашарашил...
Самому разобраться хотя бы до конкретного участка кода слабо?
Вот ты думаешь прикольно сидеть этот код перебирать?
Я тихо фигею...
   SiMazx
 
4 - 13.04.04 - 14:11
Моп твою йать... Зачем тогда этот код сюда заливал?
Офигеваю еще больше...
   Favorit
 
5 - 13.04.04 - 14:12
так мне и нужен конкретный участок кода найти...
Где формируется переменная ФорматС(Стоимость), а уже потом думать откуда ее получить, и моно ли ее получить вообще!!!
   SiMazx
 
6 - 13.04.04 - 14:23
(очень вежливо, поправив очки на носу, стараясь не сорваться на мат)
Милостивый сударь, вы полагаете, что весь форум начнет искать в Вашей конфигурации где "формируется переменная ФорматС(Стоимость)"?
И почему Вы будете думать только потом? И вообще?
Очень хотелось бы это узнать. Спасибо.
   427
 
7 - 13.04.04 - 14:24
Пилите, Шурочка, пилите.... Они золотые... (с) Остап Бендер.....
   Favorit
 
8 - 13.04.04 - 14:25
SiMazx: Я тоже очки ношу!!! :)) а разбираюсь сам! :)) Это так Вам... на всякий случай чтоб не скучали! :)))


Список тем форума
Рекламное место пустует   Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует