Документ «Изменение параметров начисления амортизации НМА»
Документ корректирует параметры расчёта амортизации уже принятых к учёту нематериальных активов в бухгалтерском учёте: срок полезного использования, объём продукции/работ и стоимость для вычисления амортизации. Сам документ не делает бухгалтерских проводок Дт/Кт — он перезаписывает регистр сведений ПервоначальныеСведенияНМАБухгалтерскийУчет, по которому потом считается амортизация. Настроечный документ блока «ОС и НМА» по нематериальным активам.
🎯 Что это и зачем
После того как НМА введён в эксплуатацию документом «Принятие к учёту НМА», его параметры амортизации зафиксированы: срок, стоимостная база, при производственном способе — объём продукции. Но жизнь меняется. Изменили оценочный срок службы лицензии, переоценили стоимость, уточнили плановый объём работ для производственного способа, нашли ошибку в исходном вводе — всё это нужно отразить в учёте без перепроведения первичных документов. Для этого и существует «Изменение параметров начисления амортизации НМА».
За одно проведение документ: - задаёт новый срок полезного использования (БУ) в месяцах — меняет норму линейной амортизации; - задаёт новый объём продукции/работ (БУ) — для производственного способа амортизации; - задаёт новую стоимость для вычисления амортизации (БУ) — стоимостную базу начислений; - записывает эти значения в регистр сведений на дату документа, перекрывая прежние параметры; следующее начисление амортизации идёт уже по новым данным.
ПервоначальныеСведенияНМАБухгалтерскийУчет — это «настройки» амортизации актива. Если ожидаете увидеть проводку по переоценке стоимости НМА (Дт/Кт со счетами 2730/2740) — её этот документ не делает; он лишь меняет базу для будущего расчёта. Подробнее — в [Части 2](#-часть-2-для-программиста)....БУ). Налоговую амортизацию фиксированных активов этот документ не трогает.Кто работает: бухгалтеры и специалисты по учёту ОС/НМА. Документ создаётся нерегулярно — по факту переоценки, изменения условий использования актива, по результатам инвентаризации или для исправления ошибки первоначального ввода.
🧭 Где найти в программе
Раздел «ОС и НМА» → пункт «Изменение параметров начисления амортизации НМА» (в некоторых базах — группа «Нематериальные активы» → «Изменение параметров амортизации НМА»). Откроется журнал документов; новый создаём кнопкой «Создать». Документ заводится вручную — он не создаётся на основании других документов и не является основанием для них.
navigation-map.json (agent/knowledge/AccountingKZ30/navigation-map.json) объекта Документ.ИзменениеПараметровНачисленияАмортизацииНМА нет — карта покрывает только блоки «Продажа / Покупка / Банк и касса / ЭСФ». Название раздела и пункта меню в конкретной базе может отличаться («ОС и НМА», «Нематериальные активы», «Внеоборотные активы»). Проверьте по левому меню своей базы и при необходимости поправьте fresh_nav. Пробел в карте навигации зафиксирован в issues.👤 Часть 1. Для пользователя
Проходим по шагам: от пустого документа до проведённой корректировки параметров и проверки записей в регистре.
Урок 1. Изменение параметров для одного НМА (через подбор)
Когда: нужно скорректировать срок, стоимость или объём для конкретного известного актива (например, выявлена ошибка в сроке полезного использования при вводе в эксплуатацию).
Шаг 1. Создаём документ
Раздел «ОС и НМА» → «Создать». Откроется новая форма документа.
Шаг 2. Заполняем шапку
- Организация — подставится основная или выбираем вручную (обязательно).
- Структурное подразделение — необязательно; служит дополнительным отбором активов по месту использования. Если заполняете — оно должно принадлежать выбранной организации.
- Ответственный — заполняется текущим пользователем автоматически.
- Комментарий — можно указать причину изменения («Изменение срока по результатам переоценки», «Корректировка ошибки ввода в эксплуатацию»).
Шаг 3. Подбираем НМА
Переходим в табличную часть «НМА» → «Подбор». В диалоге выбираем нужные активы из справочника «Нематериальные активы» (поддерживается множественный выбор) → переносим в документ.
Шаг 4. Правим параметры
В строках таблицы меняем нужные значения: - Срок полезного использования БУ (в месяцах) — для линейной амортизации; - Объём продукции/работ для вычисления амортизации БУ — для производственного способа; - Стоимость для вычисления амортизации БУ — стоимостная база.
Поля, которые менять не нужно, оставляем с подтянутыми значениями.
Шаг 5. Проводим и проверяем
«Провести» или «Записать и закрыть». После проведения новые параметры записаны в регистр и применятся при следующем начислении амортизации.
ПервоначальныеСведенияНМАБухгалтерскийУчет. Проверять их удобнее через движения документа по регистрам (кнопка «Движения документа» / «Перейти») или через отчёты по НМА.Урок 2. Массовое заполнение по всем НМА организации
Когда: нужно пересмотреть параметры сразу для многих (или всех) НМА организации — например, при смене учётной политики или по итогам инвентаризации.
- Создаём документ, заполняем Организацию (обязательно), при необходимости — подразделение.
- Нажимаем «Заполнить для списка НМА» (команда
ЗаполнитьДляСпискаНМА). - Система автоматически наполнит табличную часть «НМА» активами выбранной организации/подразделения и подтянет их текущие параметры из регистра.
- В таблице правим только то, что нужно изменить.
- Записываем и проводим документ.
Урок 3. Редактирование табличной части через обработку «Изменить НМА»
Когда: удобнее массово править параметры множества строк в отдельном окне с расширенными возможностями.
- Открываем документ с уже заполненной табличной частью «НМА».
- Нажимаем «Изменить НМА» (команда
ИзменитьНМА) — откроется обработка редактирования табличной части в отдельном окне. - Вносим изменения (работа идёт с копией данных через промежуточное хранилище).
- Закрываем обработку — документ автоматически обновит свою табличную часть (по событию
ОбработанаТабличнаяЧасть). - Проверяем изменения и проводим.
Урок 4. Подразделение и его принадлежность организации
Если в шапке указано Структурное подразделение, оно должно относиться к выбранной Организации. Форма контролирует это автоматически (через РаботаСДиалогамиКлиент): при несоответствии — выводит предупреждение и корректирует пару «организация — подразделение». Не блокируйте интерфейс во время этой проверки — дождитесь ответа диалога.
Урок 5. Групповое изменение реквизитов нескольких документов
Когда: нужно массово поменять реквизит шапки (например, Ответственного или Комментарий) у нескольких уже созданных документов.
- Открываем форму списка документов.
- Выделяем нужные документы (Ctrl+Click / Shift+Click).
- Нажимаем «Изменить выделенные» (команда
ИзменитьВыделенные). - В диалоге группового изменения выбираем реквизит и задаём новое значение → применяем.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/ИзменениеПараметровНачисленияАмортизацииНМА/Ext/ObjectModule.bsl, …/ManagerModule.bsl), плюс разбор objects/ и business-logic/.
Структура объекта
Реквизиты шапки:
- Организация (Справочник.Организации) — обязателен (ShowError); контекст учёта, отбор активов, разграничение по юрлицам;
- СтруктурноеПодразделение (Справочник.ПодразделенияОрганизаций) — необязателен; дополнительный отбор по месту использования; контроль принадлежности организации — на форме;
- Ответственный (Справочник.Пользователи) — необязателен; заполняется текущим пользователем;
- Автор (Справочник.Пользователи) — служебный; удаляется из структуры заполнения в ОбработкаЗаполнения;
- РучнаяКорректировка (Булево) — при Истина авто-проведение полностью пропускается;
- Комментарий (Строка) — произвольный текст.
Табличная часть НМА (единственная содержательная) — по строке на корректируемый актив:
- НематериальныйАктив (Справочник.НематериальныеАктивы) — дубли запрещены;
- СрокПолезногоИспользованияБУ (Число) — новый СПИ в месяцах (линейный способ);
- ОбъемПродукцииРаботДляВычисленияАмортизацииБУ (Число) — объём для производственного способа;
- СтоимостьДляВычисленияАмортизацииБУ (Число) — стоимостная база амортизации.
Все три параметра — бухгалтерские (суффикс
БУ). Налоговых параметров (НУ, фиксированные активы) в документе нет.
Формы: ФормаДокумента (основная), ФормаСписка (с групповым изменением и версионированием), ФормаВыбора.
Жизненный цикл проведения (обработчики ObjectModule)
| Обработчик | Что делает |
|---|---|
ОбработкаЗаполнения |
Удаляет ключ Автор из входящей структуры заполнения; ЗаполнитьЗначенияСвойств; затем ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(...) с валютой регл. учёта |
ОбработкаПроверкиЗаполнения |
Одна проверка — отсутствие дублей НМА в ТЧ (УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти) |
ОбработкаПроведения |
Готовит наборы записей; при РучнаяКорректировка — выход; получает параметры из менеджера; делегирует запись регистра сведений модулю УчетНМА |
ПередЗаписью |
Только ранний выход при ОбменДанными.Загрузка — своей прикладной логики нет |
ПриКопировании |
Ставит Дата = НачалоДня(ТекущаяДатаПользователя()) при копировании |
Обратите внимание: в
ObjectModuleнет обработчиковПриЗаписи/ОбработкаУдаленияПроведениясо специальной логикой. Снятие записей при отмене проведения отрабатывает штатно через наборы записей регистров.
Как формируется проведение — реальный код (3.0.72.1)
Главное: проводок Дт/Кт документ не делает, а запись в регистр не «зашита» в документ — ОбработкаПроведения собирает параметры через менеджер документа и делегирует формирование движений общему модулю УчетНМА. В отличие от документов продажи (где вызывается «веер» из 5–7 модулей учёта), здесь один содержательный вызов — запись регистра первоначальных сведений НМА.
Источник: ObjectModule.bsl, процедура ОбработкаПроведения (стр. 30), полностью:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат; // ручное управление движениями
КонецЕсли;
ПараметрыПроведения = Документы.ИзменениеПараметровНачисленияАмортизацииНМА.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
// Если вдруг не удалось получить параметры проведения и не установлен флаг Отказ, то просто выйдем из проведения
Если ПараметрыПроведения = Неопределено Тогда
Возврат;
КонецЕсли;
// ФОРМИРОВАНИЕ ДВИЖЕНИЙ
Если ПараметрыПроведения.ИзменениеПараметровНачисленияАмортизацииНМАТаблицаНМА.Количество() <> 0 Тогда
УчетНМА.СформироватьДвиженияПервоначальныеСведенияНМАБухгалтерскийУчет(ПараметрыПроведения.Реквизиты, ПараметрыПроведения.ИзменениеПараметровНачисленияАмортизацииНМАТаблицаНМА,
Движения, Отказ);
КонецЕсли;
КонецПроцедуры
Кто что формирует (вызов → смысл):
| Вызов в коде | Какой учёт пишет |
|---|---|
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению |
инициализация наборов записей регистров перед проведением |
Документы.…ИзменениеПараметровНачисленияАмортизацииНМА.ПодготовитьПараметрыПроведения |
сбор реквизитов и временных таблиц (менеджер документа) |
УчетНМА.СформироватьДвиженияПервоначальныеСведенияНМАБухгалтерскийУчет |
единственное содержательное движение — запись новых параметров амортизации БУ в регистр сведений |
Важные детали из кода:
- РучнаяКорректировка = Истина → проведение полностью пропускается (Возврат сразу после ПодготовитьНаборыЗаписейКПроведению) — движения заполняет пользователь.
- Тройная защита от пустого результата: после ПодготовитьПараметрыПроведения идут проверки Если Отказ, Если ПараметрыПроведения = Неопределено и Если …ТаблицаНМА.Количество() <> 0 — движение пишется только при непустой подготовленной таблице НМА.
- Состав движения минимален: один регистр сведений, без бухгалтерских/налоговых проводок.
Что собирает менеджер документа
Документы.ИзменениеПараметровНачисленияАмортизацииНМА.ПодготовитьПараметрыПроведения (ManagerModule.bsl, ~31 строка) строит набор временных таблиц через МенеджерВременныхТаблиц и пакетный запрос. По разбору ManagerModule формируются три текста запроса:
- ТекстЗапросаРеквизитыДокумента — реквизиты шапки документа;
- ТекстЗапросаВременныеТаблицыДокумента — временная таблица из ТЧ «НМА»;
- ТекстЗапросаИзменениеПараметровНачисленияАмортизацииНМА — ключевой расчёт изменённых параметров.
Возвращается структура с полями Реквизиты и ИзменениеПараметровНачисленияАмортизацииНМАТаблицаНМА (именно её Количество() проверяется перед записью движений).
Заполнение списка активов — ЗаполнитьТабличнуюДляСпискаНМА (ManagerModule.bsl, ~39 строк): выгружает реквизиты НМА по организации/подразделению и запросом подтягивает их текущие первоначальные сведения (срок, объём, стоимость) из регистра ПервоначальныеСведенияНМАБухгалтерскийУчет. Это и есть сервер под кнопкой «Заполнить для списка НМА».
Движения по регистрам
Документ пишет в один регистр сведений. Регистра бухгалтерии (проводок Дт/Кт) среди движений нет.
| Регистр | Тип | Что фиксирует | Когда |
|---|---|---|---|
ПервоначальныеСведенияНМАБухгалтерскийУчет |
Сведения | Новые параметры амортизации БУ: срок полезного использования, объём продукции/работ, стоимость для вычисления амортизации | при непустой ТЧ «НМА» и снятом флаге РучнаяКорректировка |
Логика записи (по objects/): для каждой строки ТЧ создаётся запись регистра; прежние параметры перекрываются новыми по дате документа. Следующее начисление амортизации читает регистр и работает уже по обновлённым значениям.
business-logic/ObjectModule и objects/ утверждали, что движения формируют два общих модуля — ИзменениеПараметровНачисленияАмортизацииНМА и ИзменениеПараметровНачисленияАмортизацииНМАТаблицаНМА. В реальном коде 3.0.72.1 таких вызовов нет: запись регистра делает один метод УчетНМА.СформироватьДвиженияПервоначальныеСведенияНМАБухгалтерскийУчет(...), а имя ИзменениеПараметровНачисленияАмортизацииНМАТаблицаНМА — это поле структуры параметров проведения (временная таблица), а не общий модуль. При навигации по коду ориентируйтесь на фактический вызов. Зафиксировано в issues.objects/ приводит конкретный состав измерений/ресурсов регистра (измерения «НематериальныйАктив, Организация, Дата»; ресурсы «СрокПолезногоИспользования, ОбъемПродукции, Стоимость»). В ObjectModule.bsl структура записи не видна — она формируется внутри УчетНМА.СформироватьДвиженияПервоначальныеСведенияНМАБухгалтерскийУчет и менеджерских запросов, которые здесь не цитируются. Точный состав измерений/ресурсов сверяйте по метаданным регистра РегистрСведений.ПервоначальныеСведенияНМАБухгалтерскийУчет и коду УчетНМА. Зафиксировано в issues.objects/ встречаются «плоские» упоминания счетов 27xx/28xx как контекста НМА. К данному документу это неприменимо — проводок он не делает вовсе. В плане счетов КЗ НМА — это 2730 «Прочие нематериальные активы» и 2740 «Амортизация прочих нематериальных активов»; российские 04/05 и 28xx — не из плана КЗ. Зафиксировано в issues.РучнаяКорректировка снят (иначе движений нет вовсе); (2) изменения применяются к следующему начислению, задним числом уже посчитанная амортизация не пересчитывается автоматически — нужна перепроводка регламентной операции амортизации за период; (3) актив реально присутствует в регистре ПервоначальныеСведенияНМАБухгалтерскийУчет на дату документа. «Постановочной» или «переоценочной» проводки Дт/Кт у этого документа нет по определению — он настроечный. Прикладная логика — в УчетНМА, УправлениеВнеоборотнымиАктивамиСервер, плюс регламентная операция начисления амортизации (читает этот регистр).Валидации
Из реального кода — одна проверка в ОбработкаПроверкиЗаполнения:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти(ЭтотОбъект, "НМА", Новый Структура("НематериальныйАктив"), Отказ);
КонецПроцедуры
- Дубли НМА — один нематериальный актив не может встречаться в табличной части дважды; при дубле проведение прерывается с ошибкой.
Прочие проверки реализованы не в ObjectModule, а на других уровнях:
- Обязательность Организация — на уровне метаданных реквизита (ЗаполнятьОбязательно / ShowError); платформа блокирует запись без организации.
- Принадлежность подразделения организации — в клиентском модуле ФормаДокумента через РаботаСДиалогамиКлиент: при конфликте предупреждение и корректировка пары организация/подразделение.
- Заполненность Организация перед автозаполнением — команда ЗаполнитьДляСпискаНМА (ФормаДокумента) проверяет ЗначениеЗаполнено(Объект.Организация) и выдаёт сообщение, если пусто.
ПроверитьЗаполнениеТабличнойЧастиПострочно: документ не требует обязательного заполнения срока/способа/стоимости (он перезаписывает то, что введено). Контроль корректности значений (срок > 0, стоимость >= 0) — на совести пользователя и логики начисления, а не блокирующих проверок документа.Зависимости (общие модули)
| Модуль | Роль |
|---|---|
УчетНМА |
формирование движения по регистру сведений (СформироватьДвиженияПервоначальныеСведенияНМАБухгалтерскийУчет); серверная логика учёта НМА |
УправлениеВнеоборотнымиАктивамиСервер |
проверка дублей НМА в ТЧ (ПроверитьОтсутствиеДублейВТабличнойЧасти) |
ПроведениеСервер |
подготовка наборов записей к проведению |
ЗаполнениеДокументов |
заполнение шапки документа при создании |
ОбщегоНазначения / ОбщегоНазначенияБКВызовСервераПовтИсп |
служебные функции, валюта регл. учёта, текущая дата пользователя |
Документы.ИзменениеПараметровНачисленияАмортизацииНМА (менеджер) |
ПодготовитьПараметрыПроведения, ЗаполнитьТабличнуюДляСпискаНМА, версионирование, ограничения доступа |
РегистрСведений.ПервоначальныеСведенияНМАБухгалтерскийУчет |
чтение текущих параметров (при заполнении) и запись новых (при проведении) |
Формы дополнительно используют: ОбщегоНазначенияКлиент (уведомления), РаботаСДиалогамиКлиент (контроль подразделения), ПодключаемыеКоманды / ПодключаемыеКомандыКлиент (динамические команды), ГрупповоеИзменениеОбъектовКлиент (групповое изменение в списке), ВерсионированиеОбъектов.
- Проводок нет. Документ наполняет один регистр сведений по НМА — это «паспорт амортизации» актива, а не бухгалтерская запись. Не ищите
Движения.Типовой/Движения.Хозрасчетный— в коде их нет; есть толькоДвижениядля регистра сведений.РучнаяКорректировка = Истина→Возвратсразу послеПодготовитьНаборыЗаписейКПроведению: движения заполняет пользователь, авто-логика выключается целиком.- Запись условна по объёму данных. Перед вызовом
УчетНМА.СформироватьДвижения...стоитЕсли …ТаблицаНМА.Количество() <> 0— при пустой подготовленной таблице регистр не трогается. Плюс ранние выходы поОтказиПараметрыПроведения = Неопределено.Авторфильтруется при заполнении. ВОбработкаЗаполненияключАвторудаляется из входящей структуры — чтобы при копировании/создании на основании не перезаписать автора чужим значением.- Источник истины по составу регистра —
УчетНМА. Состав измерений/ресурсов записи и порядок перекрытия прежних значений заданы вУчетНМА.СформироватьДвиженияПервоначальныеСведенияНМАБухгалтерскийУчети менеджерских запросах, а не в теле документа — туда и смотреть при разборе.- Заполнение списка — на сервере менеджера. Кнопка «Заполнить для списка НМА» вызывает
ЗаполнитьТабличнуюДляСпискаНМА(ManagerModule), которая подтягивает текущие сведения из регистра; в справочнике НМА эти реквизиты должны быть заполнены, иначе подтянутся пустые значения.
🔗 Связанные разделы
- prinyatie-k-uchetu-nma — задаёт исходные параметры амортизации НМА; этот документ их корректирует
- peredacha-nma — передача (выбытие) НМА
- spisanie-nma — списание НМА
- (плейсхолдер: «Начисление амортизации НМА» — регламентная операция, читает регистр
ПервоначальныеСведенияНМАБухгалтерскийУчет, по которому работает этот документ; отдельной статьи в guide пока нет)
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1) | 🆕 |