Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Амортизация основных средств (начисление износа)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
5_kopeek
В релизе 7.70.287 начисление износа по прямолинейному методу в БУ поисходит по формуле:
(ПервСтоимость-ЛиквидСтоимость)/СрокИспользования
, где
ПервСтоимость -- первоначальная стоимость (сальдо по дебету счета учета) ОС без учета начисленного износа;
ЛиквидСтоимость -- ликвидационная стоимость (как задана в карточке ОС);
СрокИспользования -- срок использования (как задан в карточке ОС).
Такой расчет ошибочен в случае, если с 01.04.11 для ОС был изменен метод начисления амортизации с налогового на прямолинейный. Согласно утверждениям моих клиентов (бухгалтеров) и консультациям в бухгалтерских изданиях начисляемая за апрель 2011 (и последующие месяцы) сумма износа в БУ должна быть равной начисляемой сумме износа в НУ. Для изменения алгоритма расчета можно изменить модуль документа НачислениеИзноса следующим образом:

1. Добавить две процедуры в начале модуля:
// Добавлено 5_копеек (начало) 
//*********************************************************************
Функция КонтрольИзмененияМетода(ОС)
    Если ОС.ДатаВвода>Дата("01.04.11") Тогда
        Возврат 0;
    КонецЕсли; // ОС.ДатаВвода
    Попытка
        СтарМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДатаНачНУ));
        НовМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДобавитьМесяц(ДатаНачНУ,1)));
    Исключение  
        Метод=СоздатьОбъект("Периодический");
        Метод.ИспользоватьОбъект("МетодРасчетаИзноса",ОС);
        СтарМетод=Метод.ЗначениеНаДату(НачМесяца(ДатаНачНУ));
        НовМетод=Метод.ЗначениеНаДату(НачМесяца(ДобавитьМесяц(ДатаНачНУ,1)));
    КонецПопытки;
    Если СтарМетод=НовМетод Тогда
        Возврат 0;
    КонецЕсли; // СтарМетод=НовМетод
    Возврат 1;
КонецФункции //ПроверкаИзмененияМетода  

//*********************************************************************
Процедура РассчитатьПервСтоимостьБУ(ОС,ПервСтоимостьБУ,СчИзноса,Сч)
    СписокСчетов = СоздатьОбъект("СписокЗначений");
    СписокСчетов.ДобавитьЗначение(Сч);
    СписокСчетов.ДобавитьЗначение(СчИзноса);
    ИтБУ = СоздатьОбъект("БухгалтерскиеИтоги");
    ИтБУ.ИспользоватьРазделительУчета(Фирма);
    ИтБУ.ИспользоватьСубконто(ВидыСубконто.НеоборотныеАктивы,ОС); // ОС, НМА
    ИтБУ.ВыполнитьЗапрос(НачМесяца(ДатаНачНУ),КонМесяца(ДатаНачНУ),СписокСчетов);
    ИтБУ.ВыбратьСубконто(1);
    Износ = 0;ПервСтоимость = 0;
    Если ИтБУ.ПолучитьСубконто(1) = 1 Тогда
        Износ = 0;ПервСтоимость = 0;
        Если ИтБУ.ПолучитьСчет(,СчИзноса) = 1 Тогда
            Износ = ИтБУ.СКК("С");
        КонецЕсли;
        Если ИтБУ.ПолучитьСчет(,Сч) = 1 Тогда
            ПервСтоимость = ИтБУ.СКД("С");  
        КонецЕсли;
    КонецЕсли;
    ПервСтоимостьБУ = ПервСтоимость - Износ;
КонецПроцедуры //РассчитатьПервСтоимостьБУ
// Добавлено 5_копеек (конец)

2. Изменить процедуру РассчитатьИзносПоЭлементу(...)
...
    Если (ИзношеноПолностью = 0) или (ИзношеноПолностьюНУ = 0) Тогда
        //ПрямолинейноеСписание
        Если Элемент.МетодРасчетаИзноса = Перечисление.МетодыРасчетаИзноса.ПрямолинейноеСписание Тогда
            Если Элемент.СрокИспользования = 0 Тогда
                глКомментарий(Строка(Элемент)+": не задан срок полезного использования. Износ не начислен!",0,,"!");
                Возврат;
            КонецЕсли;
            СуммаИзноса = Макс(Окр((ПервСтоимость - ЛиквидационнаяСтоимость)/Элемент.СрокИспользования,2),0);
            //налоговый учет
            СрокИспользованияНУ = РассчитатьСрокИспользования(Элемент.ДатаВвода,Элемент.СрокИспользования);
            // Добавлено 5_копеек (начало)
            // бухучет при изменении метода
            Если КонтрольИзмененияМетода(Элемент)=1 Тогда
                СуммаИзноса=0;
                Если (СрокИспользованияНУ<>0) Тогда
                    СуммаИзноса = Макс(Окр((ПервСтоимость - ЛиквидационнаяСтоимость)/СрокИспользованияНУ,2),0);
                КонецЕсли;    

            КонецЕсли; // КонтрольИзмененияМетода(Элемент)=1
            // Добавлено 5_копеек (конец)
            СуммаИзносаНУ = 0;
            Если (СрокИспользованияНУ<>0) Тогда
                СуммаИзносаНУ = Макс(Окр((ПервСтоимостьНУ - ЛиквидационнаяСтоимость)/СрокИспользованияНУ,2),0);
            КонецЕсли;    
                        
            //УменьшениеОстатка
...

3. Изменить процедуру РассчитатьИзносПоСчету(...):
...
        ОстСтоимость = ПервСтоимость - Износ;
        ОстСтоимостьНУ = ПервСтоимостьНУ - ИзносНУ;
        Если (Сч = СчетПоКоду("10")) или (Сч = СчетПоКоду("100")) Тогда                                    
            ПервКво = 1;
        КонецЕсли;
        // Добавлено 5_копеек (начало)
        Если КонтрольИзмененияМетода(Ит.Субконто(1))=1 Тогда
            РассчитатьПервСтоимостьБУ(Ит.Субконто(1),ПервСтоимость,СчИзноса,Сч);
        КонецЕсли; // КонтрольИзмененияМетода(Ит.Субконто(1))=1    
        // Добавлено 5_копеек (конец)
        РассчитатьИзносПоЭлементу(Ит.Субконто(1),ПервСтоимость,ПервКво,ОстСтоимость,СчИзноса,Сч,ПервСтоимостьНУ,ОстСтоимость
НУ,СчИзносаНУ,СчНУ);
...

Рассматривался частный случай, поэтому на универсальность решение не претендует. Если есть возражения, дополнения или обнаружены ошибки, прошу комментировать.
____
добавлена проверка на ненулевое значение
alex1c
В принципе правильно, но не слишком рационально...
Я пошел другим путем, взял остаточную стоимость отнял "ЛиквидационнаяСтоимость" и разделил на оставшееся количество месяцев (СрокИспользования - к-во месяцев за которые начислялся износ). Если кого-то затронуло...
//СуммаИзноса = Макс(Окр((ПервСтоимость - ЛиквидационнаяСтоимость)/Элемент.СрокИспользования,2),0);
// Начало(
// определим к-во мес. за которые начислялся износ
ДатаВвода = Элемент.ДатаВвода;
ДатаВвода = ?(ДатаЧисло(ДатаВвода)=1, ДатаВвода, КонМесяца(ДатаВвода)+1);
Годы = ДатаГод(ДатаДок)-ДатаГод(ДатаВвода);
Если Годы < 0 Тогда
    Годы = Годы + 100;
КонецЕсли;
РазницаМес = ДатаМесяц(ДатаДок) - ДатаМесяц(ДатаВвода) + Годы*12;
Если ДатаЧисло(ДатаДок) < ДатаЧисло(ДатаВвода) Тогда
    РазницаМес = РазницаМес-1;
КонецЕсли;
СуммаИзноса = Макс(Окр((ОстСтоимость - ЛиквидационнаяСтоимость)/(Элемент.СрокИспользования-РазницаМес),2),0);
// окончание)

единственное что подправил дату ввода на 1.04.11.
kostyabuh1971
Цитата(alex1c @ 23.07.11, 11:49) необходимо зарегистрироваться для просмотра ссылки
В принципе правильно, но не слишком рационально...
Я пошел другим путем, взял остаточную стоимость отнял "ЛиквидационнаяСтоимость" и разделил на оставшееся количество месяцев (СрокИспользования - к-во месяцев за которые начислялся износ). Если кого-то затронуло...
//СуммаИзноса = Макс(Окр((ПервСтоимость - ЛиквидационнаяСтоимость)/Элемент.СрокИспользования,2),0);
// Начало(
// определим к-во мес. за которые начислялся износ
ДатаВвода = Элемент.ДатаВвода;
ДатаВвода = ?(ДатаЧисло(ДатаВвода)=1, ДатаВвода, КонМесяца(ДатаВвода)+1);
Годы = ДатаГод(ДатаДок)-ДатаГод(ДатаВвода);
Если Годы < 0 Тогда
    Годы = Годы + 100;
КонецЕсли;
РазницаМес = ДатаМесяц(ДатаДок) - ДатаМесяц(ДатаВвода) + Годы*12;
Если ДатаЧисло(ДатаДок) < ДатаЧисло(ДатаВвода) Тогда
    РазницаМес = РазницаМес-1;
КонецЕсли;
СуммаИзноса = Макс(Окр((ОстСтоимость - ЛиквидационнаяСтоимость)/(Элемент.СрокИспользования-РазницаМес),2),0);
// окончание)

единственное что подправил дату ввода на 1.04.11.


Я делал так как в первом случае представлено. И вот что мне выдала программа
СтарМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДатаНачНУ<<?>>));
{Документ.НачислениеИзноса.Модуль Документа(8)}: Переменная не определена (ДатаНачНУ)
СтарМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДатаНачНУ)<<?>>);
{Документ.НачислениеИзноса.Модуль Документа(8)}: Неопознанный оператор
НовМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДобавитьМесяц(ДатаНачНУ<<?>>,1)));
{Документ.НачислениеИзноса.Модуль Документа(9)}: Переменная не определена (ДатаНачНУ)
НовМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДобавитьМесяц(ДатаНачНУ,1)<<?>>));
{Документ.НачислениеИзноса.Модуль Документа(9)}: Неопознанный оператор
НовМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДобавитьМесяц(ДатаНачНУ,1)))<<?>>;
{Документ.НачислениеИзноса.Модуль Документа(9)}: Ожидается ключевое слово 'КонецФункции' ('EndFunction')
Что то упустил?
"единственное что подправил дату ввода на 1.04.11." Это Вы где подправили? Всем объектам поставили 01.04.2011? А если я не хочу автоматом определям срок использования. В процессе инвентаризации просто определили срок полезного использования после 01.04.2011
alex1c
У вас наверное комплексная, а в ней не определен параметр ДатаНачНУ. Ошибка...
Ну а если вы не хотите всем объектам ставить дату ввода 01.04.11, тогда ставьте срок использования, с даты ввода, а не с 1.04...
valeria
Цитата(5_kopeek @ 21.07.11, 18:04) необходимо зарегистрироваться для просмотра ссылки
В релизе 7.70.287 начисление износа по прямолинейному методу в БУ поисходит по формуле:
(ПервСтоимость-ЛиквидСтоимость)/СрокИспользования
, где
ПервСтоимость -- первоначальная стоимость (сальдо по дебету счета учета) ОС без учета начисленного износа;
ЛиквидСтоимость -- ликвидационная стоимость (как задана в карточке ОС);
СрокИспользования -- срок использования (как задан в карточке ОС).
Такой расчет ошибочен в случае, если с 01.04.11 для ОС был изменен метод начисления амортизации с налогового на прямолинейный. Согласно утверждениям моих клиентов (бухгалтеров) и консультациям в бухгалтерских изданиях начисляемая за апрель 2011 (и последующие месяцы) сумма износа в БУ должна быть равной начисляемой сумме износа в НУ. Для изменения алгоритма расчета можно изменить модуль документа НачислениеИзноса следующим образом:


СПАСИБО ОГРОМНОЕ,ВСЕ РАБОТАЕТ!
kostyabuh1971
Цитата(alex1c @ 23.07.11, 13:49) необходимо зарегистрироваться для просмотра ссылки
У вас наверное комплексная, а в ней не определен параметр ДатаНачНУ. Ошибка...
Ну а если вы не хотите всем объектам ставить дату ввода 01.04.11, тогда ставьте срок использования, с даты ввода, а не с 1.04...

А как мне его добавить в мою конфигурацию?
Pepe
Цитата(kostyabuh1971 @ 23.07.11, 15:15) необходимо зарегистрироваться для просмотра ссылки
А как мне его добавить в мою конфигурацию?

Пропишите ее в начале модуля документа как переменную и добавьте строку ДатаНачНУ="31.03.2011" в процедуру ОбработкаПроведения.
kostyabuh1971
Цитата(Pepe @ 23.07.11, 14:46) необходимо зарегистрироваться для просмотра ссылки
Пропишите ее в начале модуля документа как переменную и добавьте строку ДатаНачНУ="31.03.2011" в процедуру ОбработкаПроведения.

У меня все прописано, но ошибку продолжает выдавать. Что еще можно предпринять?
Pepe
Воспользоваться отладчиком и посмотреть значение переменной.
Конфигурация?
kostyabuh1971
Цитата(Pepe @ 23.07.11, 15:53) необходимо зарегистрироваться для просмотра ссылки
Воспользоваться отладчиком и посмотреть значение переменной.
Конфигурация?

Бух учет Проф 287

Цитата(Pepe @ 23.07.11, 15:53) необходимо зарегистрироваться для просмотра ссылки
Воспользоваться отладчиком и посмотреть значение переменной.
Конфигурация?

Вот какая у меня в отладчике процедура

[удалено т.к. пользователю впадлу прочесть правила]

Я правильно смотрю? Может не то смотрю?
Pepe
Чудес не бывает. Возможно была допущена ошибка при внесении изменений. В конфигураторе Конфигурация-полный синтаксический контроль. Листинг в студию.
kostyabuh1971
Цитата(Pepe @ 23.07.11, 16:07) необходимо зарегистрироваться для просмотра ссылки
Чудес не бывает. Возможно была допущена ошибка при внесении изменений. В конфигураторе Конфигурация-полный синтаксический контроль. Листинг в студию.

Вот что выдало, то же самое, что и в программе
СтарМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДатаНачНУ<<?>>));
{Документ.НачислениеИзноса.Модуль Документа(8)}: Переменная не определена (ДатаНачНУ)
СтарМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДатаНачНУ)<<?>>);
{Документ.НачислениеИзноса.Модуль Документа(8)}: Неопознанный оператор
НовМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДобавитьМесяц(ДатаНачНУ<<?>>,1)));
{Документ.НачислениеИзноса.Модуль Документа(9)}: Переменная не определена (ДатаНачНУ)
НовМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДобавитьМесяц(ДатаНачНУ,1)<<?>>));
{Документ.НачислениеИзноса.Модуль Документа(9)}: Неопознанный оператор
НовМетод=ОС.МетодРасчетаИзноса.Получить(НачМесяца(ДобавитьМесяц(ДатаНачНУ,1)))<<?>>;
{Документ.НачислениеИзноса.Модуль Документа(9)}: Ожидается ключевое слово 'КонецФункции' ('EndFunction')
При проверке модуля обнаружены синтаксические ошибки!

А какие ошибки? Как исправить?
Pepe
Начало модуля
Перем СпрНА, ДатаНачНУ;
Перем ОбщаяСуммаИзноса, СуммаИзноса, СуммаИзносаНУ;
.......
kostyabuh1971
Цитата(Pepe @ 23.07.11, 16:22) необходимо зарегистрироваться для просмотра ссылки
Начало модуля
Перем СпрНА, ДатаНачНУ;
Перем ОбщаяСуммаИзноса, СуммаИзноса, СуммаИзносаНУ;
.......

Исправил, теперь считает, но не правильно. По прямолинейному методу считает опять от первоначальной стоимости без учета уже начисленного износа. Выше приведена информация как этого избежать, если я правильно понял, но у меня что то не получается.

А за апрель вообще не начисляется износ, но у меня же основные фонды не новые.
Shahta27
Цитата(5_kopeek @ 21.07.11, 19:04) необходимо зарегистрироваться для просмотра ссылки
В релизе 7.70.287 начисление износа по прямолинейному методу в БУ поисходит по формуле:
(ПервСтоимость-ЛиквидСтоимость)/СрокИспользования
, где
ПервСтоимость -- первоначальная стоимость (сальдо по дебету счета учета) ОС без учета начисленного износа;
ЛиквидСтоимость -- ликвидационная стоимость (как задана в карточке ОС);
СрокИспользования -- срок использования (как задан в карточке ОС).
Такой расчет ошибочен в случае, если с 01.04.11 для ОС был изменен метод начисления амортизации с налогового на прямолинейный.


Этот глюк так и остался и после обновления на релиз 288. После проведения документа "Корректировка.." Налоговая амортизация считается правильно, а вот в бухгалтерском учете заметил, что для определения остаточной стоимости за базу берется первоначальная стоимость (при вводе в эксплуатацию) и делится на весь полезный срок использования, без учета периода эксплуатации. Пришлось воспользоваться кодом, выложенным постом выше 5_Копеек. Теперь начисленная сумма амортизации в налоговом = бухгалтерскому износу.
Спасибо 5_Копеек
Andrij-ko
Цитата(5_kopeek @ 21.07.11, 19:04) необходимо зарегистрироваться для просмотра ссылки
В релизе 7.70.287 начисление износа по прямолинейному методу в БУ поисходит по формуле:
...
Такой расчет ошибочен в случае, если с 01.04.11 для ОС был изменен метод начисления амортизации с налогового на прямолинейный. ...
а у 288 релізі ці помилка виправлена?
5_kopeek
Цитата(Andrij-ko @ 06.08.11, 14:59) необходимо зарегистрироваться для просмотра ссылки
а у 288 релізі ці помилка виправлена?

В 288 релизе алгоритм начисления износа по прямолинейному методу в бухгалтерском учете не изменился.
Andrij-ko
Зробив по методу Alex1c:
Цитата(alex1c @ 23.07.11, 12:49) необходимо зарегистрироваться для просмотра ссылки
Я пошел другим путем, взял остаточную стоимость отнял "ЛиквидационнаяСтоимость" и разделил на оставшееся количество месяцев (СрокИспользования - к-во месяцев за которые начислялся износ).
При проведенні документа видається помилка, і документ не проводиться.
"СуммаИзноса = Макс(Окр((ОстСтоимость - ЛиквидационнаяСтоимость)/(Элемент.СрокИспользования-РазницаМес),2),0);
{Документ.НачислениеИзноса.Модуль Документа(100)}: Деление на 0"

Я так зрозумів, що це у місяці, в якому повинно нарахуватися 100% зносу. Як виправити?
vadim007
Цитата(5_kopeek @ 21.07.11, 19:04) необходимо зарегистрироваться для просмотра ссылки
Рассматривался частный случай, поэтому на универсальность решение не претендует. Если есть возражения, дополнения или обнаружены ошибки, прошу комментировать.

У меня половина ОС по этому алгоритму не проводится. Протрассировал для одного элемента: НА = ARC BACK UPC CS 350 EI НА.ДатаВвода = '25.02.02' НА.СрокИспользования = 12

1. Перед вызовом РассчитатьПервСтоимостьБУ(НА,ПервСтоимость,СчИзноса,Сч): ( из РассчитатьИзносПоСчету() )
ПервСтоимость = 415
ОстСтоимость = 40.63
ПервСтоимостьНУ = 40.63
ОстСтоимостьНУ = 40.63

2. После вызова РассчитатьПервСтоимостьБУ(НА,ПервСтоимость,СчИзноса,Сч): ( из РассчитатьИзносПоСчету() )
ПервСтоимость = 40.63
ОстСтоимость = 40.63
ПервСтоимостьНУ = 40.63
ОстСтоимостьНУ = 40.63

3. Вызов РассчитатьИзносПоЭлементу(НА,ПервСтоимость,ПервКво,ОстСтоимость,СчИзноса,Сч,Перв
СтоимостьНУ,ОстСтоимостьНУ,СчИзносаНУ,СчНУ);
      Если (ИзношеноПолностью = 0) или (ИзношеноПолностьюНУ = 0) Тогда
             // ПрямолинейноеСписание
             Если Элемент.МетодРасчетаИзноса = Перечисление.МетодыРасчетаИзноса.ПрямолинейноеСписание Тогда
                  Если Элемент.СрокИспользования = 0 Тогда
                       глКомментарий(Строка(Элемент)+": не задан срок полезного использования. Износ не начислен!",0,,"!");
                       Возврат;
                  КонецЕсли;
                  СуммаИзноса = Макс(Окр((ПервСтоимость - ЛиквидационнаяСтоимость)/Элемент.СрокИспользования,2),0);
точка1
                  // Налоговый учет
                  СрокИспользованияНУ = РассчитатьСрокИспользования(Элемент.ДатаВвода,Элемент.СрокИспользования);
                  //! Бухучет при изменении метода
                  Если КонтрольИзмененияМетода(Элемент) = 1 Тогда
                      СуммаИзноса=0;
                      Если СрокИспользованияНУ <> 0 Тогда
                          СуммаИзноса = Макс(Окр((ПервСтоимость - ЛиквидационнаяСтоимость)/СрокИспользованияНУ,2),0);
                      КонецЕсли;
точка2
                  КонецЕсли;
                  СуммаИзносаНУ = 0;
                  Если СрокИспользованияНУ <> 0 Тогда
                      СуммаИзносаНУ = Макс(Окр((ПервСтоимостьНУ - ЛиквидационнаяСтоимость)/СрокИспользованияНУ,2),0);
                  КонецЕсли;
точка3

точка1:
СуммаИзноса = 3.39
СрокИспользованияНУ = 0
точка2:
СуммаИзноса = 0
СрокИспользованияНУ = 0
точка3
СуммаИзноса = 0
СрокИспользованияНУ = 0

Т.е. в точке1 износ правильный, а после точки2 = нулевой.
По моему, это не верно, т.к. у этого ОС до 01.04.2011г. метод расчета износа был налоговый, а с 01.04.2011г. - прямолин.списание. И срок использования нужно считать не от даты ввода ОС в эксплуатация, с 01.04.2011г.
Для своей конфы я пока решил проблему след. образом:
                Если Элемент.ДатаВвода < '01.04.2011' Тогда
                    Если СпрНА.МетодРасчетаИзноса.Получить('30.03.2011') = Перечисление.МетодыРасчетаИзноса.ПрямолинейноеСписание Тогда
                        ОставшийсяСрокИспользования = Месяцев(Элемент.ДатаВвода, ДатаДок)-1;
                    Иначе
                        ОставшийсяСрокИспользования = Месяцев('01.04.2011', ДатаДок);
                    КонецЕсли
                Иначе
                    Если ДатаДок < Элемент.ДатаВвода Тогда
                        //! Этого не может быть!
                        Сообщить("Ошибка: попытка расчета амортизации для '"+СокрЛП(Элемент)+"', введенного позже даты текущего документа: "+СокрЛП(Элемент.ДатаВвода));
                        ОставшийсяСрокИспользования = 0;
                    ИначеЕсли ДатаДок > Элемент.ДатаВвода Тогда
                        ОставшийсяСрокИспользования = Месяцев(Элемент.ДатаВвода, ДатаДок);
                    Иначе
                        ОставшийсяСрокИспользования = Элемент.СрокИспользования;
                    КонецЕсли;
                КонецЕсли;
                //! Найдем количество месяцев, оставшихся до конца эксплуатации
                ОставшийсяСрокИспользования = Элемент.СрокИспользования - ОставшийсяСрокИспользования;
                СуммаИзноса = Макс(Окр((ОстСтоимость-ЛиквидационнаяСтоимость)/ОставшийсяСрокИспользования,2),0);
                //налоговый учет
                СрокИспользованияНУ = РассчитатьСрокИспользования(Элемент.ДатаВвода,Элемент.СрокИспользования);
                СуммаИзносаНУ = 0;
                Если (СрокИспользованияНУ<>0) Тогда
                    СуммаИзносаНУ = Макс(Окр((ПервСтоимостьНУ - ЛиквидационнаяСтоимость)/СрокИспользованияНУ,2),0);
                КонецЕсли;

Где функция Месяцев(..) следующая:
Функция Месяцев(ДатаН, ДатаК)
        //! Возвращает количество полных месяцев между датами
    Если ДатаН < ДатаК Тогда
        ТекДата=НачМесяца(ДатаН);
          Значение=0;
          Пока ТекДата<НачМесяца(ДатаК) Цикл
            ТекДата=ДобавитьМесяц(ТекДата,1);
            Значение=Значение+1;
          КонецЦикла;
          Возврат(Значение);
    Иначе
          Возврат(0);
    КонецЕсли;
КонецФункции

Для расчета СуммаИзносаНУ остался старый алгоритм, и СуммаИзносаНУ не совпадает с СуммаИзноса по бух.учету. Наверное вместо СрокИспользованияНУ надо использовать ОставшийсяСрокИспользования.
Andrij-ko
Цитата(Andrij-ko @ 08.08.11, 15:00) необходимо зарегистрироваться для просмотра ссылки
При проведенні документа видається помилка, і документ не проводиться.
"СуммаИзноса = Макс(Окр((ОстСтоимость - ЛиквидационнаяСтоимость)/(Элемент.СрокИспользования-РазницаМес),2),0);
{Документ.НачислениеИзноса.Модуль Документа(100)}: Деление на 0"
завдяки Alex1c ця проблема з нарахуванням зносу в останньому місяці вирішилась таким чином:
Если (ИзношеноПолностью = 0) Тогда
//СуммаИзноса = Макс(Окр((ПервСтоимость - ЛиквидационнаяСтоимость)/Элемент.СрокИспользования,2),0);
// определим к-во мес. за которые начислялся износ
ДатаВвода = Элемент.ДатаВвода;
ДатаВвода = ?(ДатаЧисло(ДатаВвода)=1, ДатаВвода, КонМесяца(ДатаВвода)+1);
Годы = ДатаГод(ДатаДок)-ДатаГод(ДатаВвода);
Если Годы < 0 Тогда
Годы = Годы + 100;
КонецЕсли;
РазницаМес = ДатаМесяц(ДатаДок) - ДатаМесяц(ДатаВвода) + Годы*12;
Если ДатаЧисло(ДатаДок) < ДатаЧисло(ДатаВвода) Тогда
РазницаМес = РазницаМес-1;
КонецЕсли;
СрокИспользования = Элемент.СрокИспользования-РазницаМес;
СуммаИзноса = ?(СрокИспользования=0, 0, Макс(Окр((ОстСтоимость - ЛиквидационнаяСтоимость)/СрокИспользования,2),0));
КонецЕсли;
bob210250
А мне бух. задал вопрос - почему износ относится не на 23 счет (как в справочнике указано), а на 791?
Я "промычал", что написно в коменте:
//Если  счет затрат 23 и суммы износа БУ и НУ отличаются - разницу списываем на 79 счет.

А понять как это исправит и почему не совпадает -этого я не знаю... Кто знает почему и как?
Kutuzov
Цитата(bob210250 @ 04.11.11, 15:53) необходимо зарегистрироваться для просмотра ссылки
А мне бух. задал вопрос - почему износ относится не на 23 счет (как в справочнике указано), а на 791?
Я "промычал", что написно в коменте:
//Если  счет затрат 23 и суммы износа БУ и НУ отличаются - разницу списываем на 79 счет.

А понять как это исправит и почему не совпадает -этого я не знаю... Кто знает почему и как?


Почему... Как утверждает 1с они действуют согласно кодексу.... А в коде документа начисления износа прописано что если есть разница между БУ и НУ то он разницу списывает на 791 при условии что само ОС списывается на 23

    
//Если  счет затрат 23 и суммы износа БУ и НУ отличаются - разницу списываем на 79 счет
        Если (Лев(СчетЗакрытия.Код, 2) = "23") и (Ит.Субконто(1).Производственное = 1) и (Ит.Субконто(1).Группа < 17)  Тогда

            глПроводка(Контекст,СчетЗатрат,СчИзноса,СуммаИзносаНУ,"Начислен износ",, Ит.Субконто(1).ВидДеятельности,ВидЗатрат,,
            Ит.Субконто(1),,, ,,"НА");
            //разница
            глПроводка(Контекст,"791",СчИзноса,СуммаИзноса-СуммаИзносаНУ,"Начислен износ",, Ит.Субконто(1).ВидДеятельности,,,
            Ит.Субконто(1),,, ,,"НА");
        Иначе    
            глПроводка(Контекст,СчетЗатрат,СчИзноса,СуммаИзноса,"Начислен износ",, Ит.Субконто(1).ВидДеятельности,ВидЗатрат,,
            Ит.Субконто(1),,, ,,"НА");
        КонецЕсли;
Kutuzov
х
bob210250
Цитата(Kutuzov @ 04.11.11, 18:09) необходимо зарегистрироваться для просмотра ссылки
Почему... Как утверждает 1с они действуют согласно кодексу.... А в коде документа начисления износа прописано что если есть разница между БУ и НУ то он разницу списывает на 791 при условии что само ОС списывается на 23


Уважаемый Kutuzov, в том и проблема, что я не понимаю ПОЧЕМУ есть разница между БУ и НУ и не могу это обяснить буху! А код я сам видел и комент тоже....
Kutuzov
Цитата(bob210250 @ 04.11.11, 17:44) необходимо зарегистрироваться для просмотра ссылки
Уважаемый Kutuzov, в том и проблема, что я не понимаю ПОЧЕМУ есть разница между БУ и НУ и не могу это обяснить буху! А код я сам видел и комент тоже....


Посмотрите что за цифры стоят в документе корректировка остатка по ОС
если БУ больше НУ тогда вот и результат откуда цифры больше

Цитата(Kutuzov @ 04.11.11, 17:11) необходимо зарегистрироваться для просмотра ссылки
х


С пунктом первым согласен, мог не доглядеть.... а вот с 13 не соглашусь так как система сама разбила мое сообщение на два
bob210250
Цитата(Kutuzov @ 04.11.11, 19:03) необходимо зарегистрироваться для просмотра ссылки
Посмотрите что за цифры стоят в документе корректировка остатка по ОС
если БУ больше НУ тогда вот и результат откуда цифры больше



С пунктом первым согласен, мог не доглядеть.... а вот с 13 не соглашусь так как система сама разбила мое сообщение на два


Вообще не использовался документ Корректировка остатков необ. акт!!!
Kutuzov
Цитата(bob210250 @ 04.11.11, 18:08) необходимо зарегистрироваться для просмотра ссылки
Вообще не использовался документ Корректировка остатков необ. акт!!!


Ага.... Документ корректировки создает проводки по Н10 Счетам на 010411 соответственно, при создании документа по начислению износа он смотрит на то что есть сумма по Н10 счетам и сравнивает и ставит уже размер износа по установленным данным.

А у Вас я так понимаю проводок из документа корОСтОС нет и он пихает все на 791.

Выход:
1) создать документ корректировка остатков
2) перепровести доки по износу

если бух будит вопить что у него нет временной разницы и документ корректировки создавать не будет то стоит ему объяснить, что это документ инвентаризации а размер временной разницы надо поставить в пункте размер временной разницы
bob210250
Цитата(Kutuzov @ 04.11.11, 19:18) необходимо зарегистрироваться для просмотра ссылки
Ага.... Документ корректировки создает проводки по Н10 Счетам на 010411 соответственно, при создании документа по начислению износа он смотрит на то что есть сумма по Н10 счетам и сравнивает и ставит уже размер износа по установленным данным.

А у Вас я так понимаю проводок из документа корОСтОС нет и он пихает все на 791.

Выход:
1) создать документ корректировка остатков
2) перепровести доки по износу

если бух будит вопить что у него нет временной разницы и документ корректировки создавать не будет то стоит ему объяснить, что это документ инвентаризации а размер временной разницы надо поставить в пункте размер временной разницы


1) создать документ корректировка остатков - что корректировать. не понятно?......
alex1c
попробуйте отменить проведение док. нач. износа после 1.04 а потом заполнить корректировку остатков...
Kutuzov
Цитата(bob210250 @ 04.11.11, 22:28) необходимо зарегистрироваться для просмотра ссылки
1) создать документ корректировка остатков - что корректировать. не понятно?......


Ну если не хотите создавать документ корректировка остатков тогда просто создайте ручую операцию по Н10 счетам где укажите остаточную налоговую стоимость.
А вообще документ Корректировка остатков необходим для исправления данных в карточках ОС и создания остаточной стоимости по НУ
bob210250
Цитата(Kutuzov @ 07.11.11, 11:02) необходимо зарегистрироваться для просмотра ссылки
Ну если не хотите создавать документ корректировка остатков тогда просто создайте ручую операцию по Н10 счетам где укажите остаточную налоговую стоимость.
А вообще документ Корректировка остатков необходим для исправления данных в карточках ОС и создания остаточной стоимости по НУ

Попробовал буху это объяснить. Говорить, что она в апреле корректировала в Справочнике необ. акт. Я сказал чтобы пробовала документом корректировать.... Видимо понимания особо нет...
Kutuzov
Цитата(bob210250 @ 08.11.11, 10:27) необходимо зарегистрироваться для просмотра ссылки
Попробовал буху это объяснить. Говорить, что она в апреле корректировала в Справочнике необ. акт. Я сказал чтобы пробовала документом корректировать.... Видимо понимания особо нет...


Вы объясните, если она считает что у нее нет временной разницы то она может в соответствующем поле указать размер временной разницы как 0,00. И скажите что этим документом удобно посчитать остаточную стоимость по НУ
vadim007
Уже вышел 293 релиз - а воз и ныне там. В смысле, расчет суммы износа при прямолинейном методе тот-же, что был полтора года назад: СуммаИзноса=Макс(Окр((ПервСтоимость-ЛиквидационнаяСтоимость)/Элемент.СрокИспользования,2),0); То есть, для ОС, введенных ранее 01.04.2011г. износ считается неверно. Они там что, спят?
mister-x
Цитата(vadim007 @ 29.07.12, 17:49) необходимо зарегистрироваться для просмотра ссылки
Уже вышел 293 релиз - а воз и ныне там. В смысле, расчет суммы износа при прямолинейном методе тот-же, что был полтора года назад: СуммаИзноса=Макс(Окр((ПервСтоимость-ЛиквидационнаяСтоимость)/Элемент.СрокИспользования,2),0); То есть, для ОС, введенных ранее 01.04.2011г. износ считается неверно. Они там что, спят?

вони дають змогу нам заробити rulez.gif
Kutuzov
Цитата(vadim007 @ 29.07.12, 17:49) необходимо зарегистрироваться для просмотра ссылки
Уже вышел 293 релиз - а воз и ныне там. В смысле, расчет суммы износа при прямолинейном методе тот-же, что был полтора года назад: СуммаИзноса=Макс(Окр((ПервСтоимость-ЛиквидационнаяСтоимость)/Элемент.СрокИспользования,2),0); То есть, для ОС, введенных ранее 01.04.2011г. износ считается неверно. Они там что, спят?


Они еще сразу сказала,что они сделали так как написано в законодательстве и переделывать ничего не будут.... Если я не ошибаюсь они сразу и отписались после выхода апрельских обновлений.
vadim007
Цитата(Kutuzov @ 29.07.12, 20:28) необходимо зарегистрироваться для просмотра ссылки
Они еще сразу сказала,что они сделали так как написано в законодательстве и переделывать ничего не будут.... Если я не ошибаюсь они сразу и отписались после выхода апрельских обновлений.

А можно найти эту отписку? А то бухгалтерия давит - что за программа эта 1С, ни хрена не работает!
Kutuzov
Цитата(vadim007 @ 31.07.12, 8:11) необходимо зарегистрироваться для просмотра ссылки
А можно найти эту отписку? А то бухгалтерия давит - что за программа эта 1С, ни хрена не работает!


Можно в ABBYY написать письмо они точно могут отписаться... но это при условии что программа лицензионная (есть код продукта с дисковили с книжки).
У меня точно нет этого письма так как ушло с прошлой работой.
А бухгалтерам я обычно говорю так: "Не нравиться 1с, всегда есть другой выход Excel" 32541510.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.