Документ «Выработка НМА»
Документ фиксирует объём выработки (количество произведённой продукции / выполненных работ) по нематериальным активам, амортизация которых начисляется способом «по объёму продукции (работ)». Сам он не делает бухгалтерских проводок и не считает сумму амортизации — он лишь записывает количество в регистр накопления ВыработкаНМА. Эту накопленную выработку потом подхватывает «Закрытие месяца» и уже там начисляет амортизацию (Кт счёта амортизации НМА 2740) пропорционально фактическому объёму. Раздел «ОС и НМА», периодичность — обычно ежемесячно.
🎯 Что это и зачем
Для большинства НМА амортизация начисляется по времени (линейно, по сроку полезного использования). Но для некоторых активов правильнее списывать стоимость пропорционально тому, сколько ими реально «наработали» — например, лицензия на тираж, право на добычу с привязкой к объёму, технология с лимитом выпуска. Это способ начисления амортизации «по объёму продукции (работ)».
При таком способе система не может сама знать, сколько вы произвели за месяц, — это внешний факт. Документ «Выработка НМА» и нужен, чтобы ввести фактический объём выработки по каждому такому активу за период. На основании этих данных «Закрытие месяца» рассчитает амортизацию: грубо — доля выработки за период × амортизируемая стоимость.
Важно с самого начала понимать роль документа: «Выработка НМА» — это документ-регистратор данных, а не документ-проводка. Он не формирует записи Дт/Кт и даже не считает сумму амортизации внутри себя. Его единственный результат проведения — строки в регистре накопления ВыработкаНМА (актив + количество + период). Всё остальное — работа регламента закрытия месяца.
Кто работает: бухгалтер по учёту внеоборотных активов. Периодичность — как правило, ежемесячно (перед закрытием месяца), реже — ежеквартально или по факту.
🧭 Где найти в программе
Раздел «ОС и НМА» → пункт «Выработка НМА» (подсистема «Нематериальные активы»). Откроется журнал документов; новый создаём кнопкой «Создать».
ВнеоборотныеАктивы → НематериальныеАктивы (вместе с журналом ДокументыПоНМА и регистром ВыработкаНМА). В файле agent/knowledge/AccountingKZ30/navigation-map.json объекта Документ.ВыработкаНМА нет — карта навигации охватывает только блоки «Продажа / Покупка / Банк и касса / Зарплата / ЭСФ». Название раздела и пункта в конкретной базе может звучать как «ОС и НМА», «Нематериальные активы» или «Внеоборотные активы» — проверьте по левому меню своей базы. Пробел в карте зафиксирован в issues.👤 Часть 1. Для пользователя
Проходим по шагам: от пустого документа до проведённой выработки и проверки, что данные легли в учёт. Помним: «проводок» (Дт/Кт) у этого документа нет — проверяем не отчёт «Дт/Кт», а движения по регистру ВыработкаНМА.
Урок 1. Ввод выработки за месяц
Когда: в конце учётного периода, перед «Закрытием месяца», по тем НМА, у которых амортизация считается «по объёму продукции (работ)».
Шаг 1. Создаём документ
Раздел «ОС и НМА» → «Выработка НМА» → «Создать». Документ простой: шапка и одна табличная часть. На основании других документов он не вводится — создаётся вручную.
Шаг 2. Заполняем шапку
- Организация — основная подставится автоматически или выбираем вручную (обязательное поле).
- Структурное подразделение — где используется НМА; нужно для аналитики затрат. Можно оставить пустым.
Шаг 3. Заполняем табличную часть «НМА»
Кнопка «Подбор» → отмечаем в справочнике несколько нематериальных активов сразу → «Выбрать». Строки добавятся в таблицу; уже добавленные активы при подборе пропускаются (дубли не создаются).
Для каждой строки вручную вводим Количество — это и есть объём выработки за период в единицах измерения данного НМА (часы, единицы продукции, тираж и т.п.).
Шаг 4. Проводим
«Провести» или «Записать и закрыть».
ВыработкаНМА. Сумма амортизации (и сами проводки по счёту амортизации НМА 2740) появятся позже — при «Закрытии месяца».Шаг 5. Проверяем, что выработка учтена
Чтобы убедиться, что данные легли в учёт, откройте движения документа по регистру ВыработкаНМА (кнопка движений документа → регистр «Выработка НМА») — там должны быть строки с активами и количеством. После закрытия месяца сумму начисленной амортизации смотрите в стандартных отчётах по НМА / по амортизации.
Урок 2. Корректировка ранее введённой выработки
Когда: ошиблись в объёме или нужно изменить количество за уже введённый период.
- Открываем нужный документ из журнала «Выработка НМА».
- Меняем Количество в строках (или добавляем/удаляем строки через «Подбор»).
- «Записать и закрыть» / «Провести».
- Перепроводим «Закрытие месяца» за этот период — иначе сумма амортизации не пересчитается.
Урок 3. Режим ручной корректировки
Когда: нужно записать документ, но не формировать автоматические движения (миграция данных, исправление прошлых периодов «руками»).
Поставьте флаг «Ручная корректировка» в шапке. После этого:
- документ записывается без проведения — строки в регистр ВыработкаНМА автоматически не пишутся;
- движения по регистру вы заполняете/правите самостоятельно.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/ВыработкаНМА/Ext/ObjectModule.bsl и Ext/ManagerModule.bsl), плюс разбор objects/Документ_ВыработкаНМА.md и business-logic/. Полный модуль документа короткий (~80 строк) — ниже разобраны все его обработчики.
Структура объекта
Реквизиты шапки:
| Реквизит | Тип | Обяз. | Назначение |
|---|---|---|---|
Организация |
СправочникСсылка.Организации |
Да (ShowError) |
Юрлицо, в учёте которого регистрируется выработка |
СтруктурноеПодразделение |
СправочникСсылка.ПодразделенияОрганизаций |
Нет | Аналитика подразделения; в форме двусторонне связан с Организация |
РучнаяКорректировка |
Булево |
Нет | При Истина авто-проведение полностью пропускается |
Ответственный |
СправочникСсылка.Пользователи |
Нет | Ответственный пользователь |
Автор |
СправочникСсылка.Пользователи |
Нет | Намеренно НЕ заполняется автоматически (удаляется в ОбработкаЗаполнения) |
Комментарий |
Строка |
Нет | Произвольная пометка |
Табличная часть НМА:
| Реквизит | Тип | Назначение |
|---|---|---|
НематериальныйАктив |
СправочникСсылка.НематериальныеАктивы |
Актив, по которому учитывается выработка. Дубли запрещены валидацией |
Количество |
Число |
Объём выработки за период (в ЕИ данного НМА) |
objects/Документ_ВыработкаНМА.md (раздел «Per-field reference») приписывает документу расчёт суммы списания по формуле Количество / НормативнаяВыработка × ПервоначальнаяСтоимость и движение «приход на затраты / счета амортизации». В реальном коде 3.0.72.1 этого нет: документ не считает суммы и не формирует проводок — он пишет только Количество в регистр ВыработкаНМА (см. ниже запрос ТекстЗапросаВыработкаНМА — там выгружаются лишь НематериальныйАктив, Количество, Период, Регистратор, никакой стоимости и норматива). Сумма амортизации считается позже, в «Закрытии месяца». Несостыковку отразил в issues.Жизненный цикл проведения (обработчики ObjectModule)
| Обработчик | Что делает |
|---|---|
ОбработкаЗаполнения |
Удаляет ключ Автор из структуры данных заполнения; заполняет шапку (ЗаполнениеДокументов.ЗаполнитьШапкуДокумента) с валютой регл. учёта |
ОбработкаПроверкиЗаполнения |
Проверяет отсутствие дублей НематериальныйАктив в ТЧ НМА |
ПередЗаписью |
На загрузке из обмена (ОбменДанными.Загрузка) — выход; иной логики нет |
ОбработкаПроведения |
При РучнаяКорректировка — выход; иначе готовит параметры и формирует движения регистра ВыработкаНМА через УчетНМА |
ПриКопировании |
Сбрасывает Дата на начало текущего дня пользователя |
Обработчиков
ПриЗаписи/ОбработкаУдаленияПроведенияв модуле документа нет — снятие проведения отрабатывает платформенно (наборы записей регистра очищаются стандартно).
Как формируется проведение — реальный код (3.0.72.1)
Главное и определяющее: проводок документ не делает, а формирует движения ровно по одному регистру накопления — ВыработкаНМА. И даже это делегировано общему модулю УчетНМА. Источник: ObjectModule.bsl, процедура ОбработкаПроведения (полностью):
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат; // ручной режим — движения не формируем
КонецЕсли;
ПараметрыПроведения = Документы.ВыработкаНМА.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
// если параметры не получены, но Отказ не взведён — просто выходим
Если ПараметрыПроведения = Неопределено Тогда
Возврат;
КонецЕсли;
// ФОРМИРОВАНИЕ ДВИЖЕНИЙ
Если ПараметрыПроведения.ВыработкаНМАРеквизитыТаблицаНМА.Количество() <> 0 Тогда
УчетНМА.СформироватьДвиженияВыработкаНМА(ПараметрыПроведения.ВыработкаНМАРеквизитыТаблицаНМА,
Движения, Отказ);
КонецЕсли;
КонецПроцедуры
Разбор по строкам:
- ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект) — служебная инициализация наборов записей (общий механизм проведения конфигурации). Вызывается всегда, даже в ручном режиме.
- Если РучнаяКорректировка Тогда Возврат — при ручной корректировке авто-проведение полностью пропускается: движения регистра пользователь заполняет сам.
- Документы.ВыработкаНМА.ПодготовитьПараметрыПроведения(Ссылка, Отказ) — сбор данных через временные таблицы в ManagerModule (см. ниже). Возвращает структуру с таблицей ВыработкаНМАРеквизитыТаблицаНМА.
- Количество() <> 0 — здесь это число строк таблицы (метод Количество() у таблицы значений), а не реквизит «Количество». То есть: если строк нет — движения не формируем (пустой документ).
- УчетНМА.СформироватьДвиженияВыработкаНМА(..., Движения, Отказ) — единственное формирование движений. Конкретный состав записей регистра ВыработкаНМА инкапсулирован в общем модуле УчетНМА (в модуле документа его нет).
А вот как ManagerModule.ПодготовитьПараметрыПроведения собирает данные — итоговый запрос показывает, что в документ закладывается только количество выработки, без сумм:
Функция ТекстЗапросаВыработкаНМА(НомераТаблиц)
НомераТаблиц.Вставить("ВыработкаНМАРеквизитыТаблицаНМА", НомераТаблиц.Количество());
ТекстЗапроса =
"ВЫБРАТЬ
| ""НМА"" КАК ИмяСписка,
| &СинонимНМА КАК СинонимСписка,
| Реквизиты.Период КАК Период,
| Реквизиты.Регистратор КАК Регистратор,
| ТаблицаНМА.НомерСтроки,
| ТаблицаНМА.НематериальныйАктив КАК НематериальныйАктив,
| ТаблицаНМА.Количество
|ИЗ
| Реквизиты КАК Реквизиты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаНМА КАК ТаблицаНМА
| ПО (ИСТИНА)
|
|УПОРЯДОЧИТЬ ПО
| ТаблицаНМА.НомерСтроки";
Возврат ТекстЗапроса + ОбщегоНазначенияБКВызовСервера.ТекстРазделителяЗапросовПакета();
КонецФункции
Здесь видно: соединяются реквизиты документа (Период, Регистратор) со строками ТЧ (НематериальныйАктив, Количество). Ни первоначальной стоимости, ни норматива выработки, ни суммы амортизации в выборке нет — значит документ их и не считает. Это подтверждает, что расчёт суммы амортизации выполняется не здесь, а в регламенте закрытия месяца на основании накопленной выработки.
Движения по регистрам
| Регистр | Тип / движение | Что пишет |
|---|---|---|
ВыработкаНМА |
Регистр накопления (остатки) / приход | Период, Регистратор, НематериальныйАктив, Количество (объём выработки за период) |
Бухгалтерских проводок (Типовой / Налоговый — Дт/Кт) документ НЕ формирует. Это документ-регистратор данных для последующего расчёта амортизации.
📌 Иллюстрация со сверкой по плану счетов КЗ (не движения этого документа!). Чтобы было понятно, куда в итоге приведёт накопленная выработка, — амортизацию НМА по способу «по объёму продукции» начисляет «Закрытие месяца» примерно такой проводкой: - Дт счёта затрат/расходов (
7210административные,8410накладные производственные, либо иной по способу отражения расходов НМА) — Кт2740«Амортизация нематериальных активов».Конкретные счёт затрат и аналитика берутся из способа отражения расходов по амортизации, заданного у НМА, и из учётной политики. Сам документ «Выработка НМА» в формировании этих проводок не участвует — он лишь поставляет в регистр
ВыработкаНМАобъём, от которого считается доля. Российские счета (04/05) к плану счетов КЗ отношения не имеют и здесь не применяются.
Валидации (ОбработкаПроверкиЗаполнения)
Единственная явная проверка в модуле — уникальность актива в табличной части:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти(
ЭтотОбъект, "НМА", Новый Структура("НематериальныйАктив"), Отказ);
КонецПроцедуры
- Дубли
НематериальныйАктивв ТЧНМАзапрещены (УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти). - Обязательность
Организация— на уровне метаданных (ShowError), не в коде. - Даты запрета изменения и права доступа — проверяются в форме документа (
ПриЧтенииНаСервере→МодульУправлениеДоступом.ПриЧтенииНаСервере), а не вObjectModule. Количество > 0по строке в коде не проверяется — формально можно провести нулевой/отрицательный объём (он просто уйдёт в регистр). Контроль значения — на совести пользователя.
Особенность заполнения — ОбработкаЗаполнения
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
Если ТипДанныхЗаполнения = Тип("Структура") Тогда
Если ДанныеЗаполнения.Свойство("Автор") Тогда
ДанныеЗаполнения.Удалить("Автор");
КонецЕсли;
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);
КонецЕсли;
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект,
ОбщегоНазначенияБКВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета());
КонецПроцедуры
Если ДанныеЗаполнения — структура, ключ Автор удаляется перед заполнением (намеренно: автор не должен подтягиваться из данных заполнения). Затем ЗаполнениеДокументов.ЗаполнитьШапкуДокумента инициализирует шапку с валютой регламентированного учёта.
Зависимости (общие модули)
УчетНМА— формирование движений регистраВыработкаНМА(СформироватьДвиженияВыработкаНМА); основной модуль учёта НМА (включая последующий расчёт амортизации в закрытии месяца).УправлениеВнеоборотнымиАктивамиСервер— валидация ТЧ (проверка дублей).ПроведениеСервер— общий механизм подготовки/записи наборов записей.ЗаполнениеДокументов— заполнение шапки документа.ОбщегоНазначенияБКВызовСервера/ОбщегоНазначенияБКВызовСервераПовтИсп— сервисные функции БК (разделитель запросов пакета, валюта регл. учёта).ОбщегоНазначения—ТекущаяДатаПользователя,СтрокаТаблицыЗначенийВСтруктуру.НомераТаблиц(вManagerModule) — нумерация временных таблиц пакета запросов.
- «Документ провёл, а амортизации нет / проводок нет». Это норма: «Выработка НМА» проводок не делает. Амортизация по способу «по объёму продукции» начисляется «Закрытием месяца» по накопленной выработке. Проверьте: (а) у НМА действительно выбран способ амортизации «по объёму продукции (работ)»; (б) выработка введена и проведена до закрытия месяца за тот же период; (в) закрытие месяца перепроведено после правок выработки.
- «Сумма амортизации не та». Документ суммы не считает — ищите причину в способе отражения расходов и параметрах НМА (амортизируемая стоимость, плановый объём), а также в
УчетНМА/ учётной политике, а не в этом документе.- «Не даёт записать — дубль НМА». В ТЧ один и тот же актив дважды — сложите объёмы в одну строку.
РучнаяКорректировка = Истина→ проведение пропускается (Возвратсразу послеПодготовитьНаборыЗаписейКПроведению). Движения регистра в этом режиме заполняет пользователь/код вручную.Количество() <> 0— это число строк таблицы, а не значение реквизита «Количество». Пустой документ просто не формирует движений.- Документ не считает суммы. Запросы
ManagerModule(ТекстЗапросаРеквизитыДокумента,ТекстЗапросаВременныеТаблицыДокумента,ТекстЗапросаВыработкаНМА) выгружают только актив + количество + период/регистратор. Расчёт амортизации искать вУчетНМА(закрытие месяца), а не здесь.Авторнамеренно вычищается изДанныеЗаполнения— при программном создании не рассчитывайте на его автозаполнение.- Создание «на основании» не предусмотрено — у объекта пусты
based_onиinverse_based_on. Документ вводится только вручную.- Объект входит в подсистему
ВнеоборотныеАктивы → НематериальныеАктивывместе с журналомДокументыПоНМАи регистромВыработкаНМА.
🔗 Связанные разделы
- vyrabotka-os — зеркальный документ для основных средств (выработка ОС при амортизации по объёму продукции; счёт амортизации ОС 2420)
- prinyatie-k-uchetu-nma — постановка НМА на учёт; там задаётся способ амортизации «по объёму продукции»
- spisanie-nma — выбытие НМА (списание, остаточная стоимость, счёт 2740)
- peredacha-nma — выбытие НМА с реализацией контрагенту
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1) | 🆕 |