Документ «Изменение способов отражения расходов по амортизации НМА»
Документ массово меняет способ отражения расходов по амортизации у уже принятых к учёту нематериальных активов: на какой счёт затрат и в какую аналитику будет относиться амортизация этих НМА начиная с даты документа. Сам он не делает бухгалтерских проводок Дт/Кт — при проведении он перезаписывает регистр сведений СпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчет, по которому потом считает амортизацию «Закрытие месяца». Настроечный документ блока «ОС и НМА» по нематериальным активам.
🎯 Что это и зачем
Когда НМА вводится в эксплуатацию документом «Принятие к учёту НМА», ему назначается способ отражения расходов по амортизации — правило, по которому ежемесячная амортизация попадает на конкретный счёт затрат и аналитику (подразделение, статью затрат, номенклатурную группу и т. п.). Этот способ — элемент справочника СпособыОтраженияРасходовПоАмортизации.
Со временем способ может перестать соответствовать реальности: НМА передали в другое подразделение, поменялась учётная политика, расходы по группе активов решили относить на другой счёт. Перепроводить «Принятие к учёту» задним числом нельзя и не нужно — для смены способа есть отдельный документ. За одно проведение он:
- берёт новый способ отражения расходов по амортизации из шапки;
- применяет его сразу ко всем НМА, перечисленным в табличной части;
- записывает новое правило в регистр сведений на дату документа, перекрывая прежнее;
- следующее начисление амортизации (в «Закрытии месяца») идёт уже по новому счёту/аналитике.
СпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчет — это «настройка» того, куда относить будущую амортизацию. Если ожидаете увидеть проводку (например, со счётом амортизации НМА 2740 или счётом расходов 7210/8410) — её этот документ не делает. Проводки появятся позже, при начислении амортизации. Подробнее — в [Части 2](#-часть-2-для-программиста)....БухгалтерскийУчет). Параметры самой амортизации (срок, стоимость, объём) меняются другим документом — «Изменение параметров начисления амортизации НМА».Кто работает: бухгалтер по учёту ОС и НМА, эпизодически — при реорганизации, смене учётной политики или переводе активов между подразделениями.
🧭 Где найти в программе
Раздел «ОС и НМА» → пункт «Изменение способов отражения расходов по амортизации НМА». Откроется журнал документов; новый создаём кнопкой «Создать».
navigation-map.json релиза нет (карта покрывает не все настроечные документы блока «ОС и НМА»). Раздел «ОС и НМА» определён по подсистеме объекта и по соседним однотипным документам (например, «Изменение параметров начисления амортизации НМА»). Точное имя пункта в левом меню Fresh нужно сверить на стенде. Несостыковка вынесена в issues.👤 Часть 1. Для пользователя
Проходим по шагам, как в курсе: от пустого документа до проведённой смены способа и проверки результата в регистре.
Урок 1. Меняем способ отражения расходов для группы НМА
Когда: нужно для одного или нескольких НМА сменить счёт затрат / аналитику, на которые относится амортизация (например, после перевода актива в другое подразделение).
Шаг 1. Создаём документ
В журнале «Изменение способов отражения расходов по амортизации НМА» нажимаем «Создать». Откроется новая форма документа; дата подставится текущая.
Шаг 2. Заполняем шапку
- Организация — подставится основная или выбираем вручную (обязательно).
- Способ отражения расходов по амортизации — новый способ, который применится ко всем НМА из таблицы (обязательно). Это элемент справочника способов: за ним «спрятаны» счёт затрат и аналитика.
- Подразделение (если поле выведено на форму) — структурное подразделение, к которому относятся активы. Необязательное; связано с организацией (см. ⚠️ ниже).
- Ответственный — по умолчанию текущий пользователь.
- Комментарий — произвольное пояснение к операции.
Шаг 3. Подбираем НМА в табличную часть
В табличной части «НМА» нажимаем «Подбор» — откроется справочник НематериальныеАктивы с множественным выбором. Отмечаем нужные активы — они добавятся в таблицу. Каждая строка — один НМА (поле Нематериальный актив).
Шаг 4. Проверяем состав
Убеждаемся, что в таблице все нужные НМА и только они: новый способ применится к каждой строке без исключений. «Лишний» актив получит новый способ ошибочно.
Шаг 5. Проводим
«Провести» или «Записать и закрыть». Документ запишет для каждого НМА новый способ в регистр сведений с датой документа.
СпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчет (через «Главное меню → Все функции → Регистры сведений», если режим включён) либо в карточке НМА / отчётах по амортизации. По состоянию на дату документа у выбранных активов будет новый способ.Урок 2. Корректировка вручную (режим «Ручная корректировка»)
Когда: стандартного формирования записи недостаточно и бухгалтеру нужно вмешаться в учётные данные руками.
- Создаём документ, заполняем обязательные реквизиты и табличную часть НМА.
- Включаем флаг «Ручная корректировка».
- Записываем документ.
Урок 3. Массовое изменение и копирование
- Групповое изменение. В форме списка можно выделить несколько документов (Ctrl/Shift+клик) и применить команду группового изменения реквизитов («Изменить выделенные») — удобно при правке однотипных документов пачкой.
- Копирование под другую организацию. Скопируйте документ (Ctrl+Shift+F9) — при копировании дата автоматически станет текущей. Поменяйте организацию, проверьте, что НМА в таблице относятся к новой организации, затем запишите и проведите.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 — Documents/ИзменениеСпособовОтраженияРасходовПоАмортизацииНМА/Ext/ObjectModule.bsl и .../Ext/ManagerModule.bsl, плюс разбор objects/ и business-logic/. Несостыковки авто-разбора с реальным кодом вынесены в issues.
Структура объекта
Реквизиты шапки. Обязательные (на форме помечены как ShowError): Организация, СпособОтраженияРасходовПоАмортизации. Прочие: Ответственный, Автор (исключается при заполнении на основании — см. ОбработкаЗаполнения), РучнаяКорректировка (Булево; управляет проведением), Комментарий.
Табличная часть НМА — единственная содержательная: одно поле НематериальныйАктив (Справочник.НематериальныеАктивы). Фактически обязательна: без строк проведение бессмысленно (записей регистра не будет).
objects/ относит СтруктурноеПодразделение к реквизитам шапки и к ресурсам регистра. В реальном коде проведения (ManagerModule.ТекстЗапросаРеквизитыДокумента) среди выбираемых реквизитов есть только Организация, СпособОтраженияРасходовПоАмортизации, Период, Номер, Регистратор. Подразделение в параметры проведения и в запись регистра не попадает. Логика связки «организация ↔ подразделение» относится к модулю формы (диалог выбора), а не к движению. Подразделение в этом гайде подаётся как реквизит формы/аналитики, но не как ресурс регистра — точный состав реквизитов сверять по конфигуратору.Формы: ФормаДокумента (основная), ФормаСписка (групповое изменение, фильтр по организации, версионирование), ФормаВыбора (выбор документа в диалогах, отбор по организации).
Жизненный цикл проведения (обработчики ObjectModule)
| Обработчик | Что делает (по реальному коду 3.0.72.1) |
|---|---|
ОбработкаЗаполнения |
Если ДанныеЗаполнения — Структура: удаляет ключ Автор, копирует свойства в объект (ЗаполнитьЗначенияСвойств). Затем ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(...) с валютой регл. учёта. |
ОбработкаПроверкиЗаполнения |
Единственная проверка: УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти(ЭтотОбъект, "НМА", Новый Структура("НематериальныйАктив"), Отказ) — запрет дублей НМА. |
ОбработкаПроведения |
Готовит наборы записей; при РучнаяКорректировка — ранний Возврат; получает параметры проведения из менеджера; формирует движения регистра сведений через УчетНМА. |
ПередЗаписью |
Только guard Если ОбменДанными.Загрузка Тогда Возврат; — иной логики нет. |
ПриКопировании |
Дата = НачалоДня(ОбщегоНазначения.ТекущаяДатаПользователя()) — сброс даты на текущий день при копировании. |
objects/ приписывает обработчику ПередЗаписью (ObjectModule) «регистрацию ключевой операции для мониторинга производительности». В реальном ObjectModule.ПередЗаписью этого нет — там только проверка ОбменДанными.Загрузка. Регистрация ключевой операции живёт в модуле формы (ФормаДокумента.ПередЗаписью, при режиме проведения), а не в объекте.Как формируется проведение — реальный код (3.0.72.1)
Главное: движения не «зашиты» в документ как Дт/Кт. ОбработкаПроведения подготавливает параметры (делегируя сбор данных в ManagerModule) и передаёт их профильному модулю учёта НМА, который и пишет регистр сведений. Никаких бухгалтерских проводок документ не делает.
Источник: ObjectModule.bsl, процедура ОбработкаПроведения (полностью):
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат; // ручной режим — авто-движения не формируются
КонецЕсли;
ПараметрыПроведения = Документы.ИзменениеСпособовОтраженияРасходовПоАмортизацииНМА.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
// Если параметры получить не удалось, но Отказ не взведён — просто выходим
Если ПараметрыПроведения = Неопределено Тогда
Возврат;
КонецЕсли;
// ФОРМИРОВАНИЕ ДВИЖЕНИЙ
Если ПараметрыПроведения.СпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчетТаблицаНМА.Количество() <> 0 Тогда
УчетНМА.СформироватьДвиженияСпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчет(
ПараметрыПроведения.СпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчетТаблицаНМА,
ПараметрыПроведения.Реквизиты,
Движения, Отказ);
КонецЕсли;
КонецПроцедуры
Разбор по строкам:
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект)— инициализирует наборы записей регистров (общий механизм проведения БК).Если РучнаяКорректировка Тогда Возврат;— ключевая развилка: в ручном режиме процедура завершается до формирования любых движений. Автоматических записей регистра не будет — их вводит пользователь.Документы.…ПодготовитьПараметрыПроведения(Ссылка, Отказ)— вызов функции менеджера (ManagerModule), которая запросами собирает реквизиты документа и строки таблицы НМА во временные таблицы и возвращает структуруПараметрыПроведения.- Двойная защита:
Если ОтказиЕсли ПараметрыПроведения = Неопределено— корректный выход без движений, если данные не собрались. Если …ТаблицаНМА.Количество() <> 0— движения формируются только если есть строки: пустой документ записей не создаёт.УчетНМА.СформироватьДвиженияСпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчет(...)— здесь профильный модульУчетНМАпишет набор записей регистра сведений. Конкретный состав записи (счёт затрат, аналитика) раскрывается внутри способа отражения и модуляУчетНМА, а не в документе.
objects/ называет процедуру движений УчетНМА.СформироватьДвиженияИзменениеСпособовОтраженияРасходовПоАмортизацииНМА. В реальном коде имя другое — УчетНМА.СформироватьДвиженияСпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчет. При навигации по конфигурации ориентируйтесь на реальное имя.Что собирает менеджер (ManagerModule.ПодготовитьПараметрыПроведения)
Функция ПодготовитьПараметрыПроведения (ManagerModule.bsl) пакетным запросом наполняет структуру:
ТекстЗапросаРеквизитыДокумента→ временная таблицаРеквизитыи одноимённый ключ структуры; выбираютсяВидДокумента = "ИзменениеСпособовОтраженияРасходовПоАмортизацииНМА",Регистратор (Ссылка),Период (Дата),Организация,СпособОтраженияРасходовПоАмортизации,Номер.ТекстЗапросаВременныеТаблицыДокумента→ временная таблицаТаблицаНМАиз табличной части…НМА(поляСсылка,НомерСтроки,НематериальныйАктив).ТекстЗапросаИзменениеСпособовОтраженияРасходовПоАмортизацииНМА→ итоговая выборка сИмяСписка = "СпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчет", соединяющая реквизиты с каждой строкой НМА (ВНУТРЕННЕЕ СОЕДИНЕНИЕ … ПО (ИСТИНА)), упорядоченная поНомерСтроки. Результат кладётся в ключСпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчетТаблицаНМА— ровно его проверяет и передаётОбработкаПроведения.
Фрагмент целевого запроса (ManagerModule.bsl):
"ВЫБРАТЬ
| ""СпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчет"" КАК ИмяСписка,
| &СинонимНМА КАК СинонимСписка,
| Реквизиты.Период КАК Период,
| Реквизиты.Номер КАК Номер,
| Реквизиты.Регистратор КАК Регистратор,
| Реквизиты.Организация КАК Организация,
| Реквизиты.СпособОтраженияРасходовПоАмортизации КАК СпособОтраженияРасходовПоАмортизации,
| Реквизиты.ВидДокумента КАК НазваниеДокумента,
| ТаблицаНМА.НематериальныйАктив,
| ТаблицаНМА.НомерСтроки
|ИЗ
| Реквизиты КАК Реквизиты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаНМА КАК ТаблицаНМА
| ПО (ИСТИНА)
|УПОРЯДОЧИТЬ ПО
| ТаблицаНМА.НомерСтроки"
Видно, что в данные движения переносятся именно Организация, НематериальныйАктив, СпособОтраженияРасходовПоАмортизации и Период — никаких счетов и подразделения на этом уровне нет.
Движения по регистрам
| Регистр | Тип / движение | Что пишет |
|---|---|---|
СпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчет |
Регистр сведений (периодический, регистратор — документ) | Для каждой строки НМА: на Период = Дата фиксирует действующий способ отражения расходов по активу. Опорные поля: Организация, НематериальныйАктив, СпособОтраженияРасходовПоАмортизации. |
Регистр бухгалтерии (Хозрасчетный/Типовой) |
— | Не пишет. Бухгалтерских проводок Дт/Кт документ не формирует. |
objects/ описывает запись регистра как «измерения Организация, НематериальныйАктив; ресурсы СпособОтраженияРасходовПоАмортизации + дополнительные аналитические реквизиты (подразделение, счета учёта)». Реальный запрос менеджера переносит только Организация, НематериальныйАктив, СпособОтраженияРасходовПоАмортизации и Период. «Счета учёта» и «подразделение» как ресурсы движения кодом не подтверждаются — точную метаструктуру регистра (что измерение, что ресурс) сверять в конфигураторе. В этом гайде они не утверждаются как ресурсы.Сверка с планом счетов КЗ (иллюстрация, не проводки документа)
Сам документ проводок не делает — но смысл способа в том, на какой счёт ляжет будущая амортизация НМА. Для ориентира по плану счетов Казахстана:
| Что | Счёт КЗ |
|---|---|
| НМА (первоначальная стоимость) | 2730 |
| Амортизация НМА | 2740 |
| Расходы (куда относится амортизация через способ) | 7210 (административные), 7110 (по реализации), 8410 (накладные производственные) — зависит от способа |
То есть будущая ежемесячная проводка по амортизации выглядит как Дт 7210/7110/8410 — Кт 2740 (конкретный счёт расходов задаёт выбранный способ отражения). Российские счета (04/05/26 и т. п.) здесь неприменимы. Это пояснение к смыслу способа, а не движение разбираемого документа.
objects/ встречаются формулировки про «счета учёта» в записи регистра без привязки к плану счетов и без подтверждения кодом. «Плоские» счета из objects/ для этого документа считать иллюстрацией: фактическую связку «способ → счёт» смотреть в справочнике СпособыОтраженияРасходовПоАмортизации и модуле УчетНМА, а итоговую проводку — в «Закрытии месяца» по отчёту «Дт/Кт».Валидации
- Дубли НМА в таблице —
ОбработкаПроверкиЗаполнения→УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти(ЭтотОбъект, "НМА", Новый Структура("НематериальныйАктив"), Отказ). При дубле — сообщение об ошибке и отказ в записи. - Обязательные реквизиты —
Организация,СпособОтраженияРасходовПоАмортизации(платформенная проверкаShowErrorпо свойствам реквизитов формы/объекта). - Связка организация ↔ подразделение — на уровне модуля формы: при выборе подразделения, не принадлежащего организации (или пустом значении) пара полей может обнуляться (диалоговый механизм
РаботаСДиалогами…). Это валидация формы, не объекта. - Права доступа — через подсистему
УправлениеДоступом(ограничение вManagerModule.ПриЗаполненииОграниченияДоступа; чтение/запись по организации и ролям).
Зависимости (общие модули)
УчетНМА (формирование набора записей регистра сведений по способам отражения расходов), УправлениеВнеоборотнымиАктивамиСервер (проверка дублей в табличной части), ПроведениеСервер (подготовка наборов записей), ЗаполнениеДокументов (ЗаполнитьШапкуДокумента), ОбщегоНазначения / ОбщегоНазначенияБКВызовСервера (даты, валюта регл. учёта, разделитель пакета запросов), НомераТаблиц (нумерация временных таблиц в менеджере). На формах — ПодключаемыеКоманды, РаботаСДиалогами, УправлениеДоступом, ГрупповоеИзменениеОбъектов, ВерсионированиеОбъектов.
СпособыОтраженияРасходовПоАмортизации) и в дате документа, а не в логике объекта. Документ — лишь оркестратор записи регистра. При настройке у клиента смотрите: (1) что именно «спрятано» за выбранным способом (счёт КЗ из плана — 2740/7210/7110/8410 и аналитика), (2) на какую дату записан новый способ (влияет на первый месяц действия), (3) не включена ли «Ручная корректировка» (тогда автоматической записи регистра нет вообще). Сам пересчёт амортизации делает «Закрытие месяца» — туда и смотреть за проводками.
- Ручная корректировка = ранний выход. При
РучнаяКорректировка = ИстинаОбработкаПроведениязавершается до формирования движений — записи регистра заполняет пользователь. При автоматизации массового проведения держите флагЛожь.- Имена из реального кода. Движения формирует
УчетНМА.СформироватьДвиженияСпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчет(а не…ИзменениеСпособов…, как в авто-разборе). Целевой ключ параметров —СпособыОтраженияРасходовПоАмортизацииНМАБухгалтерскийУчетТаблицаНМА.- Пустая таблица → нет движений. Формирование обёрнуто в
Количество() <> 0; документ без строк проводится «вхолостую».- Состав записи регистра. В параметры проведения переносятся
Организация,НематериальныйАктив,СпособОтраженияРасходовПоАмортизации,Период. Подразделение и счета на этом уровне отсутствуют — не закладывайтесь на них как на ресурсы регистра без проверки метаданных.- Копирование сбрасывает дату.
ПриКопированииставитНачалоДня(ТекущаяДатаПользователя())— учитывайте при копировании под другую организацию (меняется период действия способа).
🔗 Связанные разделы
- prinyatie-k-uchetu-nma — где НМА получает первоначальный способ отражения расходов
- izmenenie-parametrov-amortizacii-nma — смежный настроечный документ: меняет срок/стоимость/объём (тоже только регистр сведений, без проводок)
- izmenenie-sposobov-amortizacii-os — аналог для основных средств
- peredacha-nma — передача НМА (частая причина смены способа отражения расходов)
- spisanie-nma — выбытие НМА
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1) | 🆕 |