В обработке выбираем дату отчета (например отчет за полугодие, дата 30.06.2018), обработка отбирает все движимое имущество старше 2013 года, и проверяет дату выпуска, указанную в справочнике ОС. Если на момент с 01.01.2018 по Дату отчета, имуществу исполнилось более 3-х лет, то оно заносится в регистр сведений СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствам
Программный код
Функция ПроверитьОС(Ос,Орг)
ЕстьЗапись=Ложь;
запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних.Период,
| СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних.СниженнаяНалоговаяСтавка,
| СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних.НалоговаяСтавка,
| СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних.ОсновноеСредство
|ИЗ
| РегистрСведений.СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствам.СрезПоследних(&ДатаО, ) КАК СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних
|ГДЕ
| СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних.Организация = &Организация
| И СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних.ОсновноеСредство = &ОсновноеСредство";
запрос.УстановитьПараметр("ДатаО",ДатаО);
запрос.УстановитьПараметр("Организация",Орг);
запрос.УстановитьПараметр("ОсновноеСредство",Ос);
Выборка=Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ЕстьЗапись=Истина;
КонецЦикла;
Возврат ЕстьЗапись;
КонецФункции
Функция ДатаПринятияНаУчет(ОС)
Запрос=Новый запрос;
Запрос.Текст="ВЫБРАТЬ
| ПринятиеКУчетуОСОсновныеСредства.Ссылка.Дата
|ИЗ
| Документ.ПринятиеКУчетуОС.ОсновныеСредства КАК ПринятиеКУчетуОСОсновныеСредства
|ГДЕ
| ПринятиеКУчетуОСОсновныеСредства.ОсновноеСредство = &ОсновноеСредство
| И ПринятиеКУчетуОСОсновныеСредства.Ссылка.Проведен
| И ПринятиеКУчетуОСОсновныеСредства.Ссылка.ОтражатьВБухгалтерскомУчете
| И ПринятиеКУчетуОСОсновныеСредства.Ссылка.Организация = &Организация";
Запрос.УстановитьПараметр("Организация", Орг);
Запрос.УстановитьПараметр("ОсновноеСредство", ОС);
ВыборкаОС=Запрос.Выполнить().Выбрать();
Пока ВыборкаОС.Следующий() Цикл
ДатаПриема=ВыборкаОс.Дата;
КонецЦикла;
Возврат ДатаПриема;
КонецФункции
Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос=Новый запрос;
Запрос.УстановитьПараметр("Организация", Орг);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СостоянияОСОрганизаций.ОсновноеСредство КАК ОС
|ИЗ
| РегистрСведений.СостоянияОСОрганизаций КАК СостоянияОСОрганизаций
|ГДЕ
| СостоянияОСОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОС.ПринятоКУчету)
| И СостоянияОСОрганизаций.Организация = &Организация
| И СостоянияОСОрганизаций.ДатаСостояния >= ДАТАВРЕМЯ(2013, 1, 1)
| И НЕ (СостоянияОСОрганизаций.ОсновноеСредство.ГруппаОС В (ЗНАЧЕНИЕ(Перечисление.ГруппыОС.Здания),
| ЗНАЧЕНИЕ(Перечисление.ГруппыОС.Сооружения),
| ЗНАЧЕНИЕ(Перечисление.ГруппыОС.МноголетниеНасаждения),
| ЗНАЧЕНИЕ(Перечисление.ГруппыОС.ЗемельныеУчастки),
| ЗНАЧЕНИЕ(Перечисление.ГруппыОС.ПрочееИмуществоТребующееГосударственнойРегистрации),
| ЗНАЧЕНИЕ(Перечисление.ГруппыОС.ОбъектыПриродопользования)))";
Выборка=Запрос.Выполнить().Выбрать();
Пока выборка.Следующий() Цикл
//выбрали все движемое имуществао
Сообщить(выборка.ос);
//ищем дату выпуска
ДатаВыпуска=выборка.ос.датавыпуска;
//ищем дату принятия на учет
ДатаПринятия=ДатаПринятияНаУчет(выборка.ос);
Сообщить(ДатаВыпуска);
//Проверим есть или нет уже это ОС в регисчтре если есть то и не надо
ЕстьЗапись=ПроверитьОС(Выборка.Ос,Орг);
Если ЕстьЗапись Тогда
Сообщить("Уже есть запись не пишем!!!");
Продолжить;
КонецЕсли;
Если ДатаВыпуска=Дата('00010101000000') Тогда
//не проставлены даты ищем по дате постановки на учет
Если ДатаПринятия>=Дата('20130101000000') и ДатаПринятия<=Дата('20151231235959') Тогда
//заполняем регистр
НоваяЗапись = РегистрыСведений.СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствам.СоздатьМенеджерЗаписи();
НоваяЗапись.Организация=Орг;
НоваяЗапись.Период=Дата('20180101000000');
НоваяЗапись.Активность=Истина;
НоваяЗапись.ОсновноеСредство=выборка.ос;
НоваяЗапись.ПостановкаНаУчетВНалоговомОргане=Перечисления.ПостановкаНаУчетВНалоговомОргане.ПоМестуНахожденияОрганизации;
НоваяЗапись.КодВидаИмущества="03";
НоваяЗапись.НалоговаяБаза=Перечисления.НалоговаяБазаПоНалогуНаИмущество.СреднегодоваяСтоимость;
НоваяЗапись.ПорядокНалогообложения=Перечисления.ПорядокНалогообложенияИмущества.ОблагаетсяПоСниженнойСтавке;
НоваяЗапись.СниженнаяНалоговаяСтавка=1.1;
НоваяЗапись.Записать();
Сообщить("ОС внесено");
КонецЕсли;
иначе
//смотрим дату выпуска если она меньше 15 года, т.е ОС на момент 18 года больше 3 лет
Если ДатаВыпуска<Дата('20150101') Тогда
НоваяЗапись = РегистрыСведений.СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствам.СоздатьМенеджерЗаписи();
НоваяЗапись.Организация=Орг;
НоваяЗапись.Период=Дата('20180101000000');
НоваяЗапись.Активность=Истина;
НоваяЗапись.ОсновноеСредство=выборка.ос;
НоваяЗапись.ПостановкаНаУчетВНалоговомОргане=Перечисления.ПостановкаНаУчетВНалоговомОргане.ПоМестуНахожденияОрганизации;
НоваяЗапись.КодВидаИмущества="03";
НоваяЗапись.НалоговаяБаза=Перечисления.НалоговаяБазаПоНалогуНаИмущество.СреднегодоваяСтоимость;
НоваяЗапись.ПорядокНалогообложения=Перечисления.ПорядокНалогообложенияИмущества.ОблагаетсяПоСниженнойСтавке;
НоваяЗапись.СниженнаяНалоговаяСтавка=1.1;
НоваяЗапись.Записать();
Сообщить("ОС внесено");
//дата выпуска больше 15 года значит нужно распределять по месяцам
иначе
Если ДобавитьМесяц(ДатаВыпуска,36)<КонецДня(ДатаО) Тогда
ДатаНачалоУчета= ДобавитьМесяц(ДатаВыпуска,36);
Если ДатаНачалоУчета=НачалоМесяца(ДатаНачалоУчета) Тогда
ДатаНачалоУчета=НачалоМесяца(ДатаНачалоУчета);
Иначе
ДатаНачалоУчета=НачалоМесяца(ДобавитьМесяц(ДатаНачалоУчета,1));
КонецЕсли;
НоваяЗапись = РегистрыСведений.СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствам.СоздатьМенеджерЗаписи();
НоваяЗапись.Организация=Орг;
НоваяЗапись.Период=ДатаНачалоУчета;
НоваяЗапись.Активность=Истина;
НоваяЗапись.ОсновноеСредство=выборка.ос;
НоваяЗапись.ПостановкаНаУчетВНалоговомОргане=Перечисления.ПостановкаНаУчетВНалоговомОргане.ПоМестуНахожденияОрганизации;
НоваяЗапись.КодВидаИмущества="03";
НоваяЗапись.НалоговаяБаза=Перечисления.НалоговаяБазаПоНалогуНаИмущество.СреднегодоваяСтоимость;
НоваяЗапись.ПорядокНалогообложения=Перечисления.ПорядокНалогообложенияИмущества.ОблагаетсяПоСниженнойСтавке;
НоваяЗапись.СниженнаяНалоговаяСтавка=1.1;
НоваяЗапись.Записать();
Сообщить("ОС внесено");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры