Документ «Выработка ОС»

Документ регистрирует фактическую выработку основных средств за период (моточасы, пробег, объём продукции и т.п.) для тех ОС, у которых амортизация начисляется производственным способом (пропорционально объёму продукции/работ). Это не бухгалтерский документ: он не делает проводок Дт/Кт, а пишет только в регистр накопления ВыработкаОС. Эти данные затем читает расчёт амортизации при «Закрытии месяца».

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

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

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

Чтобы система могла рассчитать такую амортизацию, ей нужно знать сколько единиц выработки дало каждое ОС за месяц. Эту натуральную цифру и вводит документ «Выработка ОС». Он:

Дальше документ «Начисление амортизации ОС» / регламент «Закрытие месяца» берёт накопленную выработку из этого регистра и вычисляет сумму амортизации к списанию.

Кто работает: бухгалтер по учёту ОС (или ответственный за оборудование), как правило раз в месяц, в конце периода. Документ первичный — на основании других документов не вводится.

⚠️ Важно с самого начала. «Выработка ОС» сама не формирует амортизационных проводок (нет Дт 7210/8410 Кт 2420). Она только готовит натуральные показатели. Сами проводки по амортизации делает отдельный регламент. Подробности и реальный код — в Части 2.

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

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

📷 СКРИН 01
СКРИН 01 — раздел «ОС и НМА», открытый журнал «Выработка ОС». (AccountingKZ30 во Fresh; маршрут: ОС и НМА → Выработка ОС)
⚠️ Несостыковка [KZ30-VOS-0003] — маршрут. В карте навигации navigation-map.json объект Документ.ВыработкаОС отсутствует, поэтому точный пункт меню во Fresh по карте подтвердить нельзя. Раздел определён по метаданным: документ входит в подсистему ВнеоборотныеАктивы → ОсновныеСредства (проверено по Subsystems/ВнеоборотныеАктивы/Subsystems/ОсновныеСредства.xml). В интерфейсе BK 3.0 эта подсистема отображается как раздел «ОС и НМА» (синоним подсистемы — «Внеоборотные активы»). Точный путь сверьте в своей базе.

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

Проходим по шагам: от пустого документа до проведённой выработки и проверки, что данные легли в регистр.

Урок 1. Ввод выработки за месяц

Когда: в конце отчётного периода, когда известны фактические показатели работы ОС (часы, пробег, объём).

Шаг 1. Создаём документ

«Создать». Откроется новая «Выработка ОС». У документа нет видов операции — он один на все случаи.

📷 СКРИН 02
СКРИН 02 — пустая форма нового документа «Выработка ОС».

Шаг 2. Заполняем шапку

📷 СКРИН 03
СКРИН 03 — заполненная шапка (Дата, Организация, Подразделение).
⚠️ Важно. Заполните Дату и Организацию ДО заполнения таблицы. Если позже измените день даты — система пересчитает инвентарные номера строк (обработчик ДатаПриИзменении). Менять только время (в пределах одного дня) можно безопасно — пересчёта не будет.

Шаг 3. Заполняем таблицу ОС

Самый быстрый путь — кнопка «Заполнить → По ОС» (ЗаполнитьПоОС). Система подберёт все ОС организации, у которых задан производственный способ начисления амортизации и установлен признак «Начислять амортизацию», и подставит для каждого: - Основное средство; - Параметр выработки (единицу измерения — моточасы, км, шт. и т.п.); - Инвентарный номер (по состоянию на дату документа, только для отображения).

Альтернативы: «Подбор» (Подбор) — выбрать ОС вручную из справочника; «Заполнить по наименованию» (ЗаполнитьПоНаименованию) — найти ОС по названию; или строки добавлять руками кнопкой «Добавить».

📷 СКРИН 04
СКРИН 04 — таблица ОС после «Заполнить → По ОС» (строки с инвентарными номерами и параметрами выработки).
💡 Подсказка. Если по кнопке «Заполнить → По ОС» ничего не подобралось и вышло сообщение «Элементы с производственным способом начисления амортизации… отсутствуют» — значит, ни у одного ОС организации не задан производственный способ амортизации. Сначала настройте способ в карточке ОС (или при принятии к учёту), затем заполняйте выработку.

Шаг 4. Вводим количество выработки

Для каждой строки в колонке Количество укажите фактическую выработку за период (например, 150 моточасов, 2500 км). Строки по ОС, которые в этом месяце не эксплуатировались, удалите (или оставьте с нулём — см. предупреждение ниже).

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

Шаг 5. Записываем и проводим

«Провести» или «Записать и закрыть».

📷 СКРИН 06
СКРИН 06 — проведённый документ (статус «Проведён»).
💡 Подсказка. Если суммарное количество по всем строкам равно нулю, проведение пройдёт, но в регистр ничего не запишется (см. реальный код в Части 2). Это нормально для «пустого» периода, но обычно означает, что вы забыли ввести цифры.

Шаг 6. Проверяем результат

У этого документа нет отчёта «Дт/Кт», потому что он не делает бухгалтерских проводок. Чтобы убедиться, что данные приняты, откройте движения документа по регистру (кнопка «ещё → Движения документа» / «Перейти») и посмотрите регистр накопления «Выработка ОС»: там должны появиться строки с организацией, ОС, параметром выработки и количеством.

📷 СКРИН 07
СКРИН 07 — окно «Движения документа» → регистр накопления «Выработка ОС» с записями.
💡 Что дальше. Сама амортизация считается не здесь. В конце месяца запустите «Закрытие месяца» / «Начисление амортизации ОС» — этот регламент возьмёт накопленную выработку и сформирует проводки по амортизации.

Урок 2. Режим «Ручная корректировка»

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

  1. Откройте документ, установите флаг «Ручная корректировка».
  2. Заполните/исправьте таблицу, запишите документ.
  3. При проведении движения по регистру не сформируются — документ останется «пустым» для учёта.
  4. Когда данные финализированы — снимите флаг «Ручная корректировка» и проведите заново.
⚠️ Важно. Пока флаг «Ручная корректировка» стоит, любое проведение этого документа не пишет в регистр ВыработкаОС. Если выработка «не доходит» до расчёта амортизации — первым делом проверьте этот флаг.

Урок 3. Корректировка ранее введённого периода

  1. Найдите документ в журнале (форма списка) и откройте.
  2. При необходимости снимите проведение.
  3. Исправьте Количество, добавьте/удалите строки. При смене дня даты инвентарные номера пересчитаются автоматически.
  4. Проведите заново. Регистр перепишется новыми значениями.
💡 Подсказка. Групповое редактирование из формы списка (команда «Изменить выделенные») меняет реквизиты шапки (Ответственный, Комментарий, Подразделение), но не трогает таблицу ОС.

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

Источник: реальный код релиза 3.0.72.1 (Documents/ВыработкаОС/Ext/ObjectModule.bsl и …/ManagerModule.bsl), метаданные регистра AccumulationRegisters/ВыработкаОС.xml, плюс разбор objects/ и business-logic/.

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

Реквизиты шапки:

Реквизит Тип Заполнение Назначение
Организация СправочникСсылка.Организации ShowError Контур учёта; фильтр для подбора ОС. Единственный обязательный реквизит шапки.
СтруктурноеПодразделение СправочникСсылка.ПодразделенияОрганизаций DontCheck Подразделение эксплуатации; участвует в фильтре, если включена поддержка структурных подразделений.
РучнаяКорректировка Булево DontCheck Флаг черновика: при Истина проведение не пишет движений.
Ответственный СправочникСсылка.Пользователи DontCheck Заполняется текущим пользователем.
Автор СправочникСсылка.Пользователи DontCheck Служебный; удаляется из структуры заполнения в ОбработкаЗаполнения.
Комментарий Строка DontCheck Произвольный текст.

Табличная часть ОС:

Колонка Тип Назначение
ОсновноеСредство СправочникСсылка.ОсновныеСредства ОС, по которому фиксируется выработка. Уникально в пределах документа (проверка дублей).
ПараметрВыработки СправочникСсылка.ПараметрыВыработкиОС Единица измерения выработки (моточасы, км, т, шт.).
Количество Число Фактическая выработка за период.
ИнвентарныйНомер (реквизит формы / строки) Заполняется автоматически по дате документа; только для отображения.

Регистр-приёмник: РегистрНакопления.ВыработкаОС — тип Обороты (Turnovers), измерения ОсновноеСредство, ПараметрВыработки, ресурс Количество. Документ — единственный регистратор (в RegisterRecords документа только этот регистр).

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

Обработчик Что делает
ОбработкаЗаполнения Удаляет служебный «Автор» из структуры заполнения; заполняет шапку через ЗаполнениеДокументов.ЗаполнитьШапкуДокумента (валюта регл. учёта).
ОбработкаПроверкиЗаполнения Проверяет отсутствие дублей в ТЧ ОС по ОсновноеСредство (УправлениеВнеоборотнымиАктивамиСервер).
ОбработкаПроведения Готовит наборы записей; при РучнаяКорректировка или нулевой выработке — выходит; иначе вызывает УчетОС.СформироватьДвиженияВыработкаОС.
ПередЗаписью Пропускает обработку при ОбменДанными.Загрузка (заглушка).
ПриКопировании Ставит Дата = НачалоДня(ТекущаяДатаПользователя()).

Примечание: ОбработкаУдаленияПроведения в модуле не переопределена — при отмене проведения движения чистятся стандартным механизмом наборов записей.

Как формируется проведение — реальный код (3.0.72.1)

Главное и принципиальное: документ не делает бухгалтерских проводок. ОбработкаПроведения пишет ровно один регистр накопления — ВыработкаОС — и делегирует это общему модулю УчетОС. Источник: ObjectModule.bsl, процедура ОбработкаПроведения (стр. 30), приведена целиком:

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

    // ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
    ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);

    Если РучнаяКорректировка Тогда
        Возврат;                                    // черновик: движений нет
    КонецЕсли;

    ПараметрыПроведения = Документы.ВыработкаОС.ПодготовитьПараметрыПроведения(Ссылка, Отказ);

    Если Отказ Тогда
        Возврат;
    КонецЕсли;

    // Если не удалось получить параметры и Отказ не выставлен — просто выходим
    Если ПараметрыПроведения = Неопределено Тогда
        Возврат;
    КонецЕсли;

    // ФОРМИРОВАНИЕ ДВИЖЕНИЙ
    Если ПараметрыПроведения.ВыработкаОСРеквизитыТаблицаОС.Количество() <> 0 Тогда
        УчетОС.СформироватьДвиженияВыработкаОС(ПараметрыПроведения.ВыработкаОСРеквизитыТаблицаОС,
                                                Движения, Отказ);
    КонецЕсли;

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

Разбор: - РучнаяКорректировка = Истина → Возврат сразу после подготовки наборов. Движения не формируются вообще — документ остаётся черновиком. - ПодготовитьПараметрыПроведения (см. ManagerModule) собирает через менеджер временных таблиц набор ВыработкаОСРеквизитыТаблицаОС — это построчная таблица «реквизиты документа × строки ТЧ ОС» (Период, Регистратор, Организация, ОС, ПараметрВыработки, Количество). - …ВыработкаОСРеквизитыТаблицаОС.Количество() <> 0 — здесь Количество() это число строк таблицы значений, а не сумма выработки. То есть движения пишутся, только если в подготовленной таблице есть хотя бы одна строка. На практике пустая ТЧ → пустая таблица → движений нет. - УчетОС.СформироватьДвиженияВыработкаОС(…, Движения, Отказ) — само формирование записей регистра ВыработкаОС вынесено в общий модуль УчетОС; документ передаёт ему подготовленную таблицу и коллекцию Движения.

Подбор ОС для заполнения (важно для понимания, какие ОС вообще попадают в документ). ManagerModule.ЗаполнитьТабличнуюПоОС строит запрос по двум регистрам сведений и жёстко фильтрует по производственному способу:

// ManagerModule.bsl, фрагмент запроса ЗаполнитьТабличнуюПоОС
//   ИЗ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(...)
//   ,  РегистрСведений.НачислениеАмортизацииОСБухгалтерскийУчет.СрезПоследних(...)
//   ГДЕ ... .НачислятьАмортизацию = &Начислять
//       И  ... .СпособНачисленияАмортизации = &СпособНачисленияАмортизации

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

То есть в документ автоматически подтягиваются только ОС, у которых на дату документа способ = Производственный и НачислятьАмортизацию = Истина. Если таких нет — выводится СообщитьПользователю("…Элементы с производственным способом… отсутствуют.") и таблица не заполняется.

Движения по регистрам

Регистр Тип Что пишет
РегистрНакопления.ВыработкаОС Обороты (приход выработки) По каждой строке ТЧ: Период (= дата документа), Регистратор, измерения ОсновноеСредство, ПараметрВыработки, ресурс Количество. Запись делает УчетОС.СформироватьДвиженияВыработкаОС.
Бухгалтерские проводки (Журнал проводок/типовой) — Не формируются. Документ не пишет Дт/Кт.

Регистр устроен как «оборотный»: он накапливает выработку периода. Запись в него выполняет служебная процедура набора (RecordSetModule.ДобавитьДвижение → ОбщегоНазначенияБК.ВыполнитьДвижениеПоРегистру), проставляя Период и Активность = Истина.

⚠️ Несостыковка [KZ30-VOS-0001] — «выбытие/списание ОС» и «проводки». Разбор business-logic/Документ_ВыработкаОС_ObjectModule.md утверждает, что документ «реализует логику учёта выбытия или списания основных средств» и «проведение с формированием бухгалтерских проводок». Это неверно. Реальный код (ОбработкаПроведения, выше) не списывает ОС и не делает ни одной проводки Дт/Кт — он пишет единственный регистр накопления ВыработкаОС (натуральные показатели выработки). Файл objects/Документ_ВыработкаОС.md описывает назначение корректно (регистрация выработки для амортизации). Достоверным считать код и objects/.
⚠️ Несостыковка [KZ30-VOS-0002] — «плоские» Дт/Кт. Никаких плоских проводок (вида Дт 7210 Кт 2420 и т.п.) у этого документа нет и быть не должно. Амортизационные проводки по плану счетов КЗ формирует другой объект — регламент начисления амортизации ОС / «Закрытие месяца», который читает регистр ВыработкаОС. Для справки, тамошняя типовая проводка по производственной амортизации ОС в КЗ: Дт 8410/7210/7480 — Кт 2420 «Амортизация ОС» (конкретный счёт затрат зависит от параметров учёта ОС и учётной политики; российские 02/20/26 не применяются). Сверять — по отчёту «Дт/Кт» на документе начисления амортизации, а не здесь.

Валидации (ОбработкаПроверкиЗаполнения)

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

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

Модуль Зачем
УчетОС СформироватьДвиженияВыработкаОС — запись регистра ВыработкаОС.
УправлениеВнеоборотнымиАктивамиСервер Проверка дублей в ТЧ; получение инвентарных номеров; подбор ОС.
ПроведениеСервер ПодготовитьНаборыЗаписейКПроведению.
ЗаполнениеДокументов ЗаполнитьШапкуДокумента (валюта регл. учёта).
ОбщегоНазначения / ОбщегоНазначенияБК / ОбщегоНазначенияБКВызовСервера(ПовтИсп) Утилиты, разделители пакетов запросов, движение по регистру.
Документы.ВыработкаОС (ManagerModule) ПодготовитьПараметрыПроведения, ЗаполнитьТабличнуюПоОС.
Регистры сведений ПервоначальныеСведенияОСБухгалтерскийУчет, НачислениеАмортизацииОСБухгалтерскийУчет Источник подбора ОС (срезы последних на дату документа).
НачислениеАмортизацииОСБухгалтерскийУчет (расчёт) Потребитель регистра ВыработкаОС — читает выработку при расчёте амортизации.
💼 Партнёру / внедренцу. Жалоба «амортизация по выработке не считается» почти всегда не про этот документ, а про настройки ОС: (1) в карточке/принятии к учёту ОС не выбран производственный способ начисления амортизации — тогда ОС даже не попадёт в подбор «Заполнить → По ОС»; (2) стоит флаг «Ручная корректировка» — проведение не пишет регистр; (3) выработка введена в одном периоде, а амортизация считается в другом — сверьте даты документа и закрытия месяца. Сама логика «выработка → сумма амортизации» живёт в НачислениеАмортизацииОСБухгалтерскийУчет, туда и смотреть.
🧩 Заметки для разработчика.
  1. Никаких Дт/Кт. Не ищите в этом документе проводки и не добавляйте отчёт «Дт/Кт» — регистратор только для РегистрНакопления.ВыработкаОС (тип «Обороты»).
  2. Количество() <> 0 — это число строк, а не сумма выработки (это Количество() таблицы значений). Не путайте при доработках: документ с пустой ТЧ движений не создаёт, но строка с Количество = 0 в ТЧ — создаст (нулевой оборот).
  3. Подбор завязан на способ = Производственный (Перечисления.СпособыНачисленияАмортизацииОС.Производственный) и НачислятьАмортизацию = Истина на дату документа. Меняете правила подбора — правьте запрос в ManagerModule.ЗаполнитьТабличнуюПоОС.
  4. Дата управляет инвентарными номерами и срезами регистров сведений. Смена дня даты в форме (ДатаПриИзменении) пересчитывает инвентарные номера; время в пределах дня игнорируется.
  5. РучнаяКорректировка — стандартный шорткат: первый Возврат в ОбработкаПроведения. Учитывайте при автотестах проведения.

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

🆕 Что нового

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