Документ «Изменение состояния ОС»

Документ переключает налоговые и амортизационные признаки основных средств: начислять ли амортизацию, является ли ОС объектом имущественного, транспортного и земельного налога. Он не делает бухгалтерских проводок — только записывает новое состояние ОС в информационные регистры на дату документа. Работает пачкой: одним документом меняем состояние сразу для группы ОС.

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

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

У каждого основного средства есть набор «переключателей», от которых зависит дальнейший учёт:

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

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

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

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

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

Второй путь — из карточки самого ОС: открыть элемент справочника «Основные средства» и выбрать «Ввести на основании» → «Изменение состояния ОС».

📷 СКРИН 01
СКРИН 01 — раздел «ОС и НМА», открытый журнал «Изменение состояния ОС». (AccountingKZ30 во Fresh; маршрут: ОС и НМА → Изменение состояния ОС)
⚠️ Пробел в данных. Объект Документ.ИзменениеСостоянияОС отсутствует в карте навигации Fresh (navigation-map.json) — точная подпись пункта меню и команды в текущей сборке знаний не подтверждена. Раздел «ОС и НМА» и расположение пункта определены по метаданным и описанию объекта (objects/Документ_ИзменениеСостоянияОС.md: «доступен через журнал документов по учёту основных средств»). При проверке во Fresh уточните фактическую подпись раздела/пункта. См. поле issues.

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

Проходим по шагам: от выбора типа изменения до проведённого документа и проверки результата в регистрах. Документ устроен непривычно — сначала в отдельной форме настройки выбираем, что меняем, и только потом в таблице указываем новые значения.

Урок 1. Снятие ОС с начисления амортизации

Когда: ОС вывели из эксплуатации (законсервировали, готовят к выбытию) и амортизацию надо прекратить.

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

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

📷 СКРИН 02
СКРИН 02 — пустая форма документа «Изменение состояния ОС».

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

📷 СКРИН 03
СКРИН 03 — заполненная шапка документа.

Шаг 3. Открываем форму настройки и выбираем тип изменения

Это ключевой и не самый очевидный шаг. Нажимаем кнопку «Настройка» — откроется форма, где галочками отмечаем, какие именно признаки будет менять документ: - ☐ Изменение начисления амортизации - ☐ Изменение имущественного налога - ☐ Изменение транспортного налога - ☐ Изменение земельного налога

Для нашего урока ставим галочку «Изменение начисления амортизации» и нажимаем «Записать и закрыть».

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

Шаг 4. Подбираем основные средства

В таблицу «ОС» добавляем строки кнопкой «Подбор» и выбираем нужные основные средства. Инвентарный номер подставится автоматически.

📷 СКРИН 05
СКРИН 05 — таблица ОС с подобранными основными средствами.

Шаг 5. Заполняем текущие данные и переключаем признак

Нажимаем «Заполнить текущими данными» — система проставит в строках текущие значения всех признаков (как ОС учитывается прямо сейчас). После этого в колонке «Начислять амортизацию» снимаем галочку у тех ОС, по которым останавливаем амортизацию.

📷 СКРИН 06
СКРИН 06 — колонка «Начислять амортизацию» со снятыми флагами.
💡 Подсказка. «Заполнить текущими данными» — почти обязательный шаг. Он подтягивает текущее состояние каждого ОС из регистров, и вам остаётся изменить только то, что нужно. Без него пришлось бы вручную помнить и проставлять все признаки.

Шаг 6. Проводим и проверяем

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

📷 СКРИН 07
СКРИН 07 — движения документа по регистрам сведений.
⚠️ Важно. Организация обязательна. Таблица ОС не должна быть пустой, одно ОС нельзя указывать дважды, и все ОС должны быть уже приняты к учёту в этой организации на дату документа — иначе документ не проведётся.

Урок 2. Снятие/постановка ОС на учёт по налогам

Отличия от Урока 1 — только в том, какую галочку ставим в форме настройки: 1. В «Настройке» отмечаем нужный налог: «Изменение имущественного налога», «…транспортного» или «…земельного» (можно несколько сразу). 2. В таблице ОС появятся соответствующие колонки: «Объект имущественного налога», «…транспортного», «…земельного». 3. «Заполнить текущими данными» → переключаем нужный флаг (ставим — чтобы поставить ОС на учёт по налогу; снимаем — чтобы снять).

⚠️ Важно. Нельзя «снять» ОС с налога, по которому оно и так не числилось. Если в строке стоит «не объект налога» и в текущих данных тоже «не объект» — документ выдаст ошибку вида «Основное средство <…> не является объектом обложения … налогом в данной организации». Снимать можно только то, что было поставлено.
💡 За один документ можно менять несколько типов признаков сразу: например, и амортизацию, и имущественный налог — достаточно отметить обе галочки в настройке.

Урок 3. Создание на основании карточки ОС

Чтобы не искать ОС вручную, документ удобно вводить прямо из карточки: 1. Открыть элемент справочника «Основные средства». 2. «Ввести на основании» → «Изменение состояния ОС». 3. Система создаст документ, заполнит Организацию, подставит Событие ОС «Принятие к учёту» и добавит одну строку в таблицу ОС с выбранным основным средством. 4. Дальше — как в Уроках 1–2: открыть «Настройку», отметить тип изменения, заполнить текущие данные, переключить признаки.

⚠️ Создать документ на основании группы справочника ОС нельзя — только на основании конкретного элемента. По группе система выдаст ошибку «Нельзя изменять состояние по группе основных средств».
💡 Подсказка. Сменили дату уже созданного документа — система спросит, обновить ли инвентарные номера ОС на новую дату. Отвечайте «Да», чтобы данные были актуальны.

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

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

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

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

Управляющие флаги шапки (определяют видимость колонок таблицы и состав движений): ИзменениеНачисленияАмортизации, ИзменениеИмущественногоНалога, ИзменениеТранспортногоНалога, ИзменениеЗемельногоНалога — все Булево. Задаются через отдельную форму ФормаНастройкиДокумента.

Флаг режима: РучнаяКорректировка (Булево) — при Истина авто-движения не формируются.

Табличная часть ОС: ОсновноеСредство (Справочник.ОсновныеСредства, ключевое поле), НачислятьАмортизацию, ОбъектИмущественногоНалога, ОбъектТранспортногоНалога, ОбъектЗемельногоНалога — все Булево, хранят новое значение признака. Колонка видна, только если в шапке поднят соответствующий флаг Изменение….

Формы: ФормаДокумента (основная), ФормаСписка, ФормаВыбора, ФормаНастройкиДокумента (выбор типов изменений; передаёт структуру четырёх флагов в документ через ОповеститьОВыборе).

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

Обработчик Что делает
ОбработкаЗаполнения Заполняет реквизиты при вводе на основании (ЗаполнитьПоДокументуОснования) или из структуры; вызывает ЗаполнениеДокументов.ЗаполнитьШапкуДокумента
ОбработкаПроверкиЗаполнения Проверяет дубли ОС, отражение ОС в учёте на дату, корректность снятия налоговых/амортизационных признаков
ПередЗаписью Только проверка ОбменДанными.Загрузка — при загрузке выходит сразу; своей логики нет
ОбработкаПроведения Готовит наборы записей, при РучнаяКорректировка выходит; иначе делегирует формирование движений модулю УчетОС
⚠️ В ObjectModule нет обработчиков ПриЗаписи / ОбработкаУдаленияПроведения — они не требуются: документ не синхронизирует связанные документы (в отличие, например, от реализации со счётом-фактурой).

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

Главное по аналогии с другими документами конфигурации: движения не «зашиты» в документ напрямую. ОбработкаПроведения собирает параметры и делегирует формирование наборов записей профильному модулю УчетОС — по одному вызову на каждый регистр, и только если соответствующая таблица непуста.

Источник: ObjectModule.bsl, процедура ОбработкаПроведения (стр. 119), реальный код целиком:

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

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

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

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

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

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

    // ФОРМИРОВАНИЕ ДВИЖЕНИЙ — каждый вызов пишет «свой» регистр, только если таблица непуста:

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

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

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

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

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

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

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

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

Кто что формирует (вызов → смысл):

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

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

Регистр Тип Что пишет
СостоянияОСОрганизаций РегистрСведений Новое состояние (статус) ОС на дату документа
СобытияОСОрганизаций РегистрСведений Событие изменения (по СобытиеОС)
НачислениеАмортизацииОСБухгалтерскийУчет РегистрСведений Признак начисления амортизации (при флаге ИзменениеНачисленияАмортизации)
ОбъектыИмущественногоНалога РегистрСведений Признак объекта имущественного налога
ОбъектыТранспортногоНалога РегистрСведений Признак объекта транспортного налога
ОбъектыЗемельногоНалога РегистрСведений Признак объекта земельного налога
⚠️ Документ НЕ формирует бухгалтерских и налоговых проводок (Дт/Кт). В ОбработкаПроведения нет ни одного движения по регистру бухгалтерии (Типовой) или по налоговому учёту — только перечисленные регистры сведений. Это принципиально отличает документ от, например, «Реализации» или «Принятия к учёту ОС». Сами проводки по амортизации (Дт 7210/7480 расходы — Кт 2420 амортизация ОС) и расчёт налогов делают другие, регламентные документы, которые читают записанное здесь состояние. Любые «плоские» Дт/Кт, приписанные этому документу, — ошибка: сверяйте по фактическим движениям проведённого документа. План счетов КЗ (для справки по смежным документам ОС): ОС — 2410, амортизация ОС — 2420, расходы — 7210/7480.
💼 Партнёру / внедренцу. Жалоба «провёл документ, а проводок нет» — это штатное поведение, а не ошибка: документ управляет регистрами сведений, а не счетами. Жалоба «амортизация не остановилась / налог не пересчитался» решается так: (1) проверить, поднята ли нужная галочка в форме настройки и есть ли строки в таблице ОС; (2) проверить, что не включена РучнаяКорректировка; (3) убедиться, что регламентный документ-расчёт (амортизации/налога) проведён после даты изменения состояния. Логика признаков — в общем модуле УчетОС, туда и смотреть.

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

Порядок и смысл (реальный код, стр. 28):

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

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

Обязательность Организация обеспечивается платформенно (Заполнить.ВыдаватьОшибку), отдельной проверки в коде нет.

Заполнение (ManagerModule)

Две процедуры, на которые опирается UI:

ЗаполнитьДокументПоСправочникуОсновныеСредства(Объект, Основание) (стр. 115) — ввод на основании карточки ОС:

Процедура ЗаполнитьДокументПоСправочникуОсновныеСредства(Объект, Основание) Экспорт

    Если Основание.ЭтоГруппа Тогда
        ТекстСообщения = НСтр("ru = 'Нельзя изменять состояние по группе основных средств.'");
        ВызватьИсключение(ТекстСообщения);
    КонецЕсли;

    Объект.СобытиеОС = УправлениеВнеоборотнымиАктивамиСервер.ПолучитьСобытиеПоОСИзСправочника(Перечисления.ВидыСобытийОС.ПринятиеКУчету);

    СтрокаТабличнойЧасти = Объект.ОС.Добавить();
    СтрокаТабличнойЧасти.ОсновноеСредство = Основание.Ссылка;

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

ЗаполнитьТабличнуюЧастьТекущимиДанными(Объект) (стр. 37) — кнопка «Заполнить текущими данными». Запросом по срезам последних на КонецДня(Дата) для организации подтягивает текущие значения четырёх признаков (ОбъектЗемельногоНалога, ОбъектИмущественногоНалога, ОбъектТранспортногоНалога, НачислятьАмортизацию — все с ЕСТЬNULL(…, ЛОЖЬ)) и проставляет их в каждую строку таблицы ОС. Это и есть «снимок текущего состояния», поверх которого пользователь меняет нужный флаг.

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

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

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

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

🆕 Что нового

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