Документ «Инвентаризация НМА»

Документ фиксирует результаты инвентаризации (сверки) нематериальных активов: подгружает перечень НМА по данным учёта на дату документа, позволяет отметить фактическое наличие и стоимость, считает излишки и недостачи по каждому активу и печатает описи Инв-8 и Инв-16 с составом комиссии. Это информационный документ — он НЕ формирует бухгалтерских проводок и не делает движений по регистрам; выявленные недостачи вы затем оформляете отдельным документом «Списание НМА» (создаётся прямо из инвентаризации). Раздел «ОС и НМА».

Бухгалтерия для Казахстана, ред. 3.0 · v3.0.72.1 · обновлено 2026-06-04

🎯 Что это и зачем

Нематериальные активы (лицензии на ПО, патенты, товарные знаки, исключительные права) тоже подлежат инвентаризации — обычно перед годовой отчётностью, при смене ответственного лица или по требованию ревизии. По НМА «физическая» проверка означает: подтвердить, что права/лицензии действуют, документы на месте, актив по-прежнему используется и не утратил силу. Документ «Инвентаризация НМА» автоматизирует эту сверку:

Кто работает: бухгалтер по ОС и НМА и члены инвентаризационной комиссии. Периодичность — по графику инвентаризаций организации (как правило, раз в год).

💡 Главное, что нужно понять про этот документ: он ничего не проводит в учёте. Его задача — зафиксировать и оформить результат сверки НМА. Само исправление баланса (списать недостающий актив) делается потом отдельным документом «Списание НМА», который удобно создать прямо из инвентаризации — кнопкой. Подробности — в [Части 2](#-часть-2-для-программиста).

🧭 Где найти в программе

Раздел «ОС и НМА» → пункт «Инвентаризация НМА». Откроется журнал документов; новый создаём кнопкой «Создать».

📷 СКРИН 01
СКРИН 01 — раздел «ОС и НМА», открытый журнал «Инвентаризация НМА». (AccountingKZ30 во Fresh; маршрут уточняется — см. пробел [KZ30-NMA-INV-001] ниже.)
⚠️ Пробел [KZ30-NMA-INV-001]. В navigation-map.json (релиз 3.0.72.1) объект Документ.ИнвентаризацияНМА отсутствует — карта маршрутов содержит только блоки «Продажа / Покупка / Банк и касса / Зарплата / Операции / Отчеты / ЭСФ-ЭАВР». Раздел «ОС и НМА» определён по подсистеме объекта, по печатным формам Инв-8/Инв-16 и по парному документу «Инвентаризация ОС», который живёт в этом же разделе. Точная подпись пункта в левом меню Fresh может отличаться («Инвентаризация НМА», «Инвентаризация нематериальных активов» и т. п.). Сверьте по своей базе и при необходимости поправьте fresh_nav. Несостыковка занесена в issues.

👤 Часть 1. Для пользователя

Проходим по шагам, как в курсе: от пустого документа до оформленной описи с подсчитанными излишками и недостачами и до списания недостающих НМА.

Урок 1. Инвентаризация по данным учёта (основной сценарий)

Когда: плановая инвентаризация НМА по организации (или по структурному подразделению, если ведёте учёт по подразделениям).

Шаг 1. Создаём документ и заполняем шапку

«Создать». Заполняем шапку:

📷 СКРИН 02
СКРИН 02 — заполненная шапка документа «Инвентаризация НМА».
⚠️ Важно. Поле Организация обязательно. Если нажать «Заполнить по остаткам» или «Заполнить данные учёта» с пустой организацией — программа выдаст сообщение «Не выбрана организация» и ничего не заполнит.

Шаг 2. Заполняем перечень НМА по данным учёта

На закладке с табличной частью НМА нажмите «Заполнить по остаткам». Программа:

📷 СКРИН 03
СКРИН 03 — табличная часть «НМА» после «Заполнить по остаткам» — заполнены НМА и стоимость по учёту.
💡 Подсказка. Если вы уже вручную набрали список НМА в таблице и хотите только дотянуть к ним учётные данные (не пересоздавая строки) — используйте «Заполнить данные учёта». Эта команда не очищает таблицу: по каждой имеющейся строке она подставит стоимость и наличие по учёту, а если актива нет в остатках — поставит стоимость 0 и «Наличие по данным учёта = Нет».

Шаг 3. Вносим фактические данные

Комиссия проверяет каждый НМА и фиксирует результат:

Если расхождений нет вообще — нажмите «Заполнить фактические данные»: команда массово скопирует учётные данные в фактические (наличие и стоимость) и обнулит недостачи по всем строкам. Дальше правите только те строки, где факт реально отличается.

📷 СКРИН 04
СКРИН 04 — заполненные фактические данные; по совпавшим строкам недостача = 0.
💡 Колонки Излишек / Недостача (по количеству и по сумме) программа ведёт сама на основании сравнения «учёт ↔ факт». Их не надо считать руками.

Шаг 4. Заполняем инвентаризационную комиссию

На закладке «Инвентаризационная комиссия» добавьте членов комиссии (из справочника физлиц) и одного отметьте как Председателя. Программа следит, чтобы председатель был только один: при установке отметки у одной строки она снимается у остальных.

📷 СКРИН 05
СКРИН 05 — закладка «Инвентаризационная комиссия», отмечен председатель.
⚠️ Состав комиссии и председатель нужны для корректной печати Инв-8/Инв-16. Технической блокировки записи без комиссии нет, но опись без подписантов смысла не имеет.

Шаг 5. Записываем и печатаем

Нажмите «Записать». Затем «Печать» → выберите «Инв-8» (инвентаризационная опись) или «Инв-16» (детальный реестр НМА). В описи будут шапка с организацией и датами, перечень НМА со стоимостью по учёту и фактической, разницы (излишки/недостачи) и блок комиссии с председателем.

📷 СКРИН 06
СКРИН 06 — окно «Печать» с выбором Инв-8 / Инв-16 и предпросмотр описи.
💡 Проведения у документа нет. Кнопки «Дт/Кт» здесь не будет — документ не формирует проводок. Это нормально: инвентаризация только фиксирует факт. Исправление учёта — следующий урок.

Урок 2. Оформление недостач — «Списание НМА» на основании

Когда: по итогам сверки есть активы, которые числятся в учёте, но фактически отсутствуют (право прекращено, лицензия не продлена и т. п.).

Шаг 1. Убедитесь, что недостача отмечена

Недостающим считается актив, у которого «Наличие по данным учёта» = Да, а «Наличие фактическое» = Нет. Именно такие строки программа отбирает для списания.

Шаг 2. Создаём списание

Нажмите «Создать на основании» → «Списание НМА» (или одноимённую кнопку в форме).

📷 СКРИН 07
СКРИН 07 — окно выбора НМА к списанию (только недостачи) и созданный документ «Списание НМА».

Шаг 3. Дозаполняем и проводим списание

В документе «Списание НМА» укажите причину, счета учёта и проведите его — вот он и сформирует бухгалтерские проводки по списанию НМА и накопленной амортизации. Подробнее — в разделе spisanie-nma.

💡 Подсказка. Излишки (актив есть фактически, но не числится) этим документом не приходуются. По НМА излишек оформляется отдельно — документом принятия НМА к учёту (prinyatie-k-uchetu-nma). Инвентаризация лишь фиксирует факт излишка в описи.

Урок 3. Повторная (контрольная) инвентаризация копированием

Чтобы не вводить шапку заново, откройте прошлую инвентаризацию и «Скопировать». Дата нового документа автоматически встанет на сегодня (начало дня). После копирования обязательно нажмите «Заполнить по остаткам» заново — иначе в таблице останутся старые учётные данные с прошлой даты.

💡 При копировании реквизит Автор очищается и заполнится тем, кто создаёт копию.

🛠 Часть 2. Для программиста

Источник: реальный код релиза 3.0.72.1 (Documents/ИнвентаризацияНМА/Ext/ObjectModule.bsl и …/Ext/ManagerModule.bsl, плюс модуль формы документа), сверено с разбором objects/ и business-logic/.

Структура объекта

Реквизиты шапки. Обязателен (на уровне метаданных, ShowError) только Организация. Остальное — DontCheck: СтруктурноеПодразделение (CatalogRef.ПодразделенияОрганизаций), Ответственный, Автор (служебный), ДатаНачалаИнвентаризации, ДатаОкончанияИнвентаризации, ПричинаПроведенияИнвентаризации, ДокументОснованиеВид/Номер/Дата, Комментарий. Плюс стандартный реквизит документа Дата — он определяет дату среза остатков.

Табличные части:

Часть Ключевые колонки Назначение
НМА НематериальныйАктив (CatalogRef.НематериальныеАктивы), НаличиеПоДаннымУчета, СтоимостьПоДаннымУчета, НаличиеФактическое, СтоимостьФактическая, ИзлишекКоличество, ИзлишекСумма, НедостачаКоличество, НедостачаСумма строки сверки «учёт ↔ факт» по каждому активу
ИнвентаризационнаяКомиссия ФизЛицо (CatalogRef.ФизическиеЛица), Председатель (булево) состав комиссии для печатных форм
🧩 Уточнение по objects/. Разбор objects/ называет колонки Излишек/Недостача «вычисляемыми в форме». Реальный код показывает, что это полноценные реквизиты табличной части НМА — их пишут серверные/клиентские процедуры (ЗаполнитьТабличнуюЧастьНМА, ЗаполнитьФактическиеДанные, расчёт по строке в форме) и сохраняют в документе; печать Инв-8/Инв-16 берёт суммы излишков/недостач из них.

Формы: ФормаДокумента (основная), ФормаСписка, ФормаВыбора, ФормаВыбораНМА (модальный выбор НМА к списанию). Макеты: ПФ_MXL_ИНВ8, ПФ_MXL_ИНВ16.

Жизненный цикл — обработчики ObjectModule

Модуль объекта намеренно «тонкий». Полный перечень обработчиков:

Обработчик Что делает (реально)
ОбработкаЗаполнения удаляет ключ Автор из структуры ДанныеЗаполнения, копирует свойства, вызывает ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(…, ПолучитьВалютуРегламентированногоУчета())
ОбработкаПроверкиЗаполнения единственная валидация — отсутствие дублей по НематериальныйАктив в ТЧ НМА
ПередЗаписью при ОбменДанными.Загрузка — ранний Возврат; иной логики нет
ПриКопировании ставит Дата = НачалоДня(ОбщегоНазначения.ТекущаяДатаПользователя())
ОбработкаПроведения ОТСУТСТВУЕТ — документ не проводится

⚠️ Проводок нет — это ключевой факт

В ObjectModule.bsl нет процедуры ОбработкаПроведения, и во всём объекте (объектный + менеджерский модули) подстроки ОбработкаПроведения нет ни разу. Значит:

💼 Партнёру / внедренцу. Частый вопрос клиента: «провёл инвентаризацию НМА, а в оборотке ничего не изменилось». Это штатно: документ не меняет учёт. Он только готовит опись и список к списанию. Хотите автоматизировать исправление — ведите цепочку: «Инвентаризация НМА» → «Списание НМА» (недостачи) / «Принятие к учёту НМА» (излишки). Все реальные Дт/Кт формируются уже там, по учётной политике и счетам НМА.

Сердце документа — заполнение по учёту (реальный код)

Вся «вычислительная» нагрузка не в проведении, а в ManagerModule.ЗаполнитьТабличнуюЧастьНМА — она работает в двух режимах и собирает учётные данные из трёх источников. Источник: ManagerModule.bsl, стр. 37, сокращённо:

Процедура ЗаполнитьТабличнуюЧастьНМА(Объект, ПоддержкаРаботыСоСтруктурнымиПодразделениями, РежимЗаполнения) Экспорт

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

    Запрос.УстановитьПараметр("ДатаОстатков", Новый Граница(Объект.Дата, ВидГраницы.Включая));
    Запрос.УстановитьПараметр("Организация",  Объект.Организация);
    Запрос.УстановитьПараметр("СубконтоНМА",  ПланыВидовХарактеристик.ВидыСубконтоТиповые.НематериальныеАктивы);
    Запрос.УстановитьПараметр("Состояние",    Перечисления.ВидыСостоянийНМА.Списан);   // исключаем списанные

    // ВТ_НМА   : РегистрСведений.СостоянияНМАОрганизаций.СрезПоследних, где Состояние <> Списан
    // ВТ_Счета : РегистрСведений.СчетаУчетаНМА.СрезПоследних — СчетУчетаБУ и СчетНачисленияАмортизацииБУ
    // финал    : ЛЕВОЕ СОЕДИНЕНИЕ с РегистрБухгалтерии.Типовой.Остатки по СчетУчетаБУ
    //            и субконто НематериальныеАктивы → ВосстановительнаяСтоимость (СуммаОстаток)
    Результат = Запрос.Выполнить().Выгрузить();

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

КонецПроцедуры

Разбор.

🧩 Сверка счетов по плану счетов КЗ. Документ проводок не делает, поэтому «плоских» Дт/Кт у него нет. Но счета, которые он читает, — это счета НМА из СчетаУчетаНМА: для Казахстана это НМА 2730 (СчетУчетаБУ) и амортизация НМА 2740 (СчетНачисленияАмортизацииБУ). Российские 04/05 здесь неприменимы. Дальнейшее списание недостачи в СписаниеНМА уйдёт в расходы (по плану КЗ — 7210/7480, остаточная стоимость) с одновременным закрытием 2740 и 2730 — но это уже логика документа списания, см. spisanie-nma.

Команды формы (клиент) — что реально вызывается

Источник: ФормаДокумента/Ext/Form/Module.bsl.

Команда формы Поведение
ЗаполнитьПоОстаткам проверяет Организация (иначе «Не выбрана организация»), предупреждает «существующие данные были пересчитаны!», Объект.НМА.Очистить(), замер производительности, затем серверный вызов ЗаполнитьТабличнуюЧастьНМА(…, "ПоОстаткам")
ЗаполнитьДанныеУчета то же требование к организации; серверный вызов с режимом "ПоДаннымУчета" (ТЧ не очищается)
ЗаполнитьФактическиеДанные по всем строкам СтоимостьФактическая = СтоимостьПоДаннымУчета, НаличиеФактическое = НаличиеПоДаннымУчета, обнуляет Недостача*, затем ОбновитьСписокНМАКСписанию()
СоздатьНаОснованииСписаниеНМА если СписокНМАКСписанию.Количество() = 0 → «В документе нет НМА, подлежащих списанию.»; если документ не записан — вопрос с записью (ПослеВопросаОЗаписиПередСписаниеНМА), иначе сразу ОткрытьФормуВыбораНМА()
НМАПриИзменении сбрасывает учётные данные строки при смене актива (требуется повторное «Заполнить данные учёта»)
ПроверитьФлагиПредседателя поддерживает единственность председателя в ТЧ ИнвентаризационнаяКомиссия

Печать (Инв-8 / Инв-16) — ManagerModule

Валидации

Единственная программная проверка записи — в ОбработкаПроверкиЗаполнения:

УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти(
    ЭтотОбъект, "НМА", Новый Структура("НематериальныйАктив"), Отказ);

То есть один и тот же НМА нельзя добавить в таблицу дважды. Плюс обязательность Организация на уровне метаданных. Прочие «проверки» — это контекстные сообщения команд формы (нет организации; нет НМА к списанию; данные не записаны перед списанием), а не блокировки записи документа. Контроль логичности дат начала/окончания, единственности председателя сверх формы, наличия комиссии — отсутствует.

Зависимости (общие модули)

УправлениеВнеоборотнымиАктивамиСервер (проверка дублей ТЧ), ЗаполнениеДокументов + ОбщегоНазначенияБКВызовСервераПовтИсп (заполнение шапки, валюта регл. учёта), ОбщегоНазначения (текущая дата при копировании), РаботаСДиалогами* (структурное подразделение), ПроцедурыУправленияПерсоналомВызовСервера (данные физлиц для печати), УправлениеПечатью, стандартные подсистемы ВерсионированиеОбъектов и УправлениеДоступом (заглушки ПриОпределенииНастроекВерсионированияОбъектов, ПриЗаполненииОграниченияДоступа в ManagerModule).

🧩 Заметки для разработчика.
  1. Нет проведения — нет движений. Не ищите ОбработкаПроведения: её нет. Любые «движения по регистрам НМА» из старых заметок objects/ (поля register_records: []) подтверждаются как пустые.
  2. Состояние <> Списан — фильтр зашит в запрос: списанные НМА в инвентаризацию не попадают. Если клиенту «не хватает» актива в списке — проверьте регистр СостоянияНМАОрганизаций на дату документа.
  3. Дата = граница среза. Все три источника читаются на Граница(Объект.Дата, Включая). Сменили дату после заполнения — данные устарели, нужно повторить «Заполнить по остаткам».
  4. Стоимость — ВосстановительнаяСтоимость из РегистрБухгалтерии.Типовой.Остатки по СчетУчетаБУ и субконто НематериальныеАктивы. Это балансовая стоимость по счёту НМА (КЗ: 2730), не остаточная за вычетом амортизации.
  5. Списание — только записанного документа и только по строкам-недостачам (НаличиеПоДаннымУчета = Истина И НаличиеФактическое = Ложь), накопленным в СписокНМАКСписанию; выбор уточняется во ФормаВыбораНМА.

🔗 Связанные разделы

🆕 Что нового

Версия Изменение Тип
3.0.72.1 Первичное описание (на релизе 3.0.72.1) 🆕