Документ «Изменение графиков амортизации ОС»
Документ массово переводит группу основных средств на новый годовой график амортизации. Это настроечный (регистровый) документ: он не делает бухгалтерских проводок Дт/Кт, а пишет в регистры сведений — привязку ОС к графику (ГрафикиАмортизацииОСБухгалтерскийУчет) и, по желанию, запись о событии ОС (СобытияОСОрганизаций). С даты документа начисление амортизации по выбранным ОС идёт по новому графику.
🎯 Что это и зачем
Годовой график амортизации задаёт, как именно распределяется амортизация ОС по месяцам года (сезонность, ускорение/замедление, изменение нормы). Когда учётная политика или режим эксплуатации меняются — например, с начала года переводим парк оборудования на ускоренный график — нужно изменить график сразу для группы объектов, а не править каждое ОС вручную.
Документ «Изменение графиков амортизации ОС» решает именно эту задачу: вы выбираете организацию, новый график амортизации и список основных средств — а документ при проведении записывает новую привязку «ОС → график» в регистр сведений. С указанной даты подсистема учёта ОС считает амортизацию по новому графику.
Важно понимать характер документа: - Это не операция начисления амортизации и не переоценка. Сумма амортизации здесь не считается и проводки в дебет/кредит не формируются. - Это регламентно-настроечный документ: меняет параметр расчёта (график), хранящийся в регистре сведений. - Применяется нечасто — при смене учётной политики, реорганизации, корректировке учётных данных по группе ОС.
Кто работает: бухгалтер по учёту основных средств. Документ самостоятельный — он не вводится на основании других документов и сам не порождает дочерних документов.
🧭 Где найти в программе
Раздел «ОС и НМА» → пункт «Изменение графиков амортизации ОС» (группа документов по основным средствам). Откроется журнал документов; новый создаём кнопкой «Создать».
navigation-map.json (релиз 3.0.72.1) объекта Документ.ИзменениеГрафиковАмортизацииОС нет — точный ярлык пункта в левом меню Fresh кодом не подтверждён. Раздел «ОС и НМА» определён по подсистеме и по соседним документам ОС (см. «Принятие к учёту ОС», «Изменение состояния ОС»). Если ярлык пункта в вашей сборке отличается — ориентируйтесь на журнал документов по ОС.👤 Часть 1. Для пользователя
Проходим по шагам: от пустого документа до проведённого перевода группы ОС на новый график. Помните — проводок Дт/Кт здесь не будет, результат проверяется не по «Дт/Кт», а по движениям в регистрах сведений.
Урок 1. Перевод группы ОС на новый график
Когда: нужно с определённой даты применить новый годовой график амортизации к нескольким основным средствам сразу.
Шаг 1. Создаём документ
Раздел «ОС и НМА» → «Изменение графиков амортизации ОС» → «Создать». Откроется форма нового документа.
Шаг 2. Задаём дату
Дата — это дата, с которой действует новый график. Заполняйте её аккуратно: при изменении даты документ автоматически пересчитывает инвентарные номера всех ОС в таблице на новую дату.
Шаг 3. Заполняем шапку
- Организация — юрлицо, в учёте которого числятся ОС (обязательно).
- График амортизации — новый годовой график, на который переводим ОС (обязательно). Это элемент справочника «Годовые графики амортизации ОС».
- Структурное подразделение — подразделение/место эксплуатации ОС (необязательно, для фильтрации и аналитики).
- Событие ОС — событие из справочника «События ОС», которым хотите зарегистрировать факт изменения в истории объекта (необязательно).
Шаг 4. Подбираем основные средства
Заполняем табличную часть «ОС». В каждой строке указывается Основное средство; инвентарный номер подтянется автоматически на дату документа (вручную его не вводят).
Способы заполнить таблицу: 1. Подбор — кнопка открывает форму подбора ОС (с отбором по организации и дате); выбранные объекты добавляются в таблицу. 2. Заполнить по наименованию — вводите фрагмент имени (например, «Компьютер»), и в таблицу добавляются все подходящие ОС организации. 3. Добавить строки вручную, выбирая ОС из справочника.
Шаг 5. Проводим документ
«Провести» или «Провести и закрыть». Документ запишет в регистры сведений новую привязку «ОС → график амортизации» (и запись о событии ОС, если оно указано).
Урок 2. Регистрация события ОС
Если нужно, чтобы изменение графика отметилось в истории объекта, заполните в шапке поле Событие ОС. При проведении на каждое ОS из таблицы дополнительно создаётся запись в регистре «События ОС организаций» (дата, организация, ОС, событие, документ-регистратор).
Урок 3. Черновик без проведения (ручная корректировка)
Если нужно подготовить документ, но пока не менять учётные данные — установите флаг «Ручная корректировка» и нажмите «Записать» (не «Провести»).
- Документ сохранится, но движения не сформируются — на регистры он не повлияет.
- Останется в статусе «Не проведён» (черновик).
- Позже снимаете флаг и проводите обычным порядком.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/ИзменениеГрафиковАмортизацииОС/Ext/ObjectModule.bsl и ManagerModule.bsl), плюс разбор objects/ и business-logic/.
Структура объекта
Реквизиты шапки:
| Реквизит | Тип | Обязательность | Назначение |
|---|---|---|---|
Организация |
СправочникСсылка.Организации | обязательный (проверка шапки) | Контур учёта; фильтр доступных ОС |
ГрафикАмортизации |
СправочникСсылка.ГодовыеГрафикиАмортизацииОС | обязательный (проверка шапки) | Новый годовой график для выбранных ОС |
СтруктурноеПодразделение |
СправочникСсылка.ПодразделенияОрганизаций | необязательный | Аналитика/фильтр по месту эксплуатации |
СобытиеОС |
СправочникСсылка.СобытияОС | необязательный | Регистрация события в истории ОС |
РучнаяКорректировка |
Булево | необязательный | Истина → авто-проведение движений пропускается |
Ответственный, Автор |
СправочникСсылка.Пользователи | необязательный | Аудит; заполняются автоматически |
Комментарий |
Строка | необязательный | Пояснение причины изменения |
Табличная часть ОС: одна значимая колонка — ОсновноеСредство (СправочникСсылка.ОсновныеСредства). Инвентарный номер в ТЧ не хранится как редактируемое поле — он подтягивается формой на дату документа.
Формы: ФормаДокумента (основная), ФормаСписка (журнал, групповое изменение выделенных), ФормаВыбора.
Жизненный цикл проведения (обработчики ObjectModule)
| Обработчик | Что делает (по реальному коду) |
|---|---|
ОбработкаЗаполнения |
При заполнении из Структура удаляет ключ Автор (чтобы новый документ зафиксировал текущего пользователя), переносит свойства, затем ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(...) с валютой регл. учёта |
ОбработкаПроверкиЗаполнения |
Проверяет дубли ОС в ТЧ; предупреждает (не блокирует) при «неподходящем» виде события ОС |
ОбработкаПроведения |
Готовит наборы записей; при РучнаяКорректировка — выход; получает ПараметрыПроведения из менеджер-модуля; делегирует формирование движений в УчетОС |
ПередЗаписью |
При ОбменДанными.Загрузка — выход; иной логики нет (служебная заглушка) |
ПриКопировании |
Сбрасывает Дата на начало текущего дня пользователя |
Как формируется проведение — реальный код (3.0.72.1)
Главное: документ не «зашивает» проводки. ОбработкаПроведения собирает параметры через менеджер-модуль и делегирует формирование движений общему модулю УчетОС. Оба вызова УчетОС пишут в регистры сведений (графики амортизации и события ОС), а не бухгалтерские Дт/Кт.
Источник: ObjectModule.bsl, процедура ОбработкаПроведения (полностью):
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат;
КонецЕсли;
ПараметрыПроведения = Документы.ИзменениеГрафиковАмортизацииОС.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
// Если вдруг не удалось получить параметры проведения и не установлен флаг Отказ, то просто выйдем из проведения
Если ПараметрыПроведения = Неопределено Тогда
Возврат;
КонецЕсли;
// ФОРМИРОВАНИЕ ДВИЖЕНИЙ
Если ПараметрыПроведения.ИзменениеГрафиковАмортизацииОСРеквизитыТаблицаОС.Количество() <> 0 Тогда
УчетОС.СформироватьДвиженияИзменениеГрафиковАмортизацииОС(ПараметрыПроведения.ИзменениеГрафиковАмортизацииОСРеквизитыТаблицаОС,
Движения, Отказ);
КонецЕсли;
Если ПараметрыПроведения.ИзменениеГрафиковАмортизацииОСРеквизитыТаблицаОС.Количество() <> 0 Тогда
УчетОС.СформироватьДвиженияРегистрацияСобытияОС(ПараметрыПроведения.ИзменениеГрафиковАмортизацииОСРеквизитыТаблицаОС,
ПараметрыПроведения.Реквизиты,
Движения, Отказ);
КонецЕсли;
КонецПроцедуры
Разбор по шагам:
1. ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект) — инициализирует наборы записей регистров (стандартная инфраструктура проведения).
2. Если РучнаяКорректировка Тогда Возврат — при ручной корректировке движения не формируются (важная развилка). Обратите внимание: наборы записей уже подготовлены строкой выше, поэтому ручная корректировка остаётся управляемой.
3. Документы.ИзменениеГрафиковАмортизацииОС.ПодготовитьПараметрыПроведения(Ссылка, Отказ) — менеджер-модуль выполняет пакет запросов и возвращает структуру с таблицами (Реквизиты и ИзменениеГрафиковАмортизацииОСРеквизитыТаблицаОС).
4. Двойная защита: выход при Отказ и при ПараметрыПроведения = Неопределено.
5. Если в таблице ОС есть строки — два делегированных вызова:
- УчетОС.СформироватьДвиженияИзменениеГрафиковАмортизацииОС(...) — пишет новую привязку «ОС → график» (регистр сведений графиков).
- УчетОС.СформироватьДвиженияРегистрацияСобытияОС(...) — пишет запись о событии ОС (регистр сведений событий). Этот вызов получает дополнительно ПараметрыПроведения.Реквизиты (там лежит, в т.ч., СобытиеОС).
Кто что формирует (вызов → смысл):
| Вызов в коде | Какой учёт пишет |
|---|---|
УчетОС.СформироватьДвиженияИзменениеГрафиковАмортизацииОС |
привязку ОС к новому годовому графику (регистр сведений) |
УчетОС.СформироватьДвиженияРегистрацияСобытияОС |
событие ОС в истории объекта (регистр сведений) |
УчетОС, а не в самом документе. По разбору objects/ это РегистрСведений.ГрафикиАмортизацииОСБухгалтерскийУчет и РегистрСведений.СобытияОСОрганизаций — но точные имена регистров в коде документа не видны (логика в общем модуле). При сверке у клиента смотрите движения проведённого документа и модуль УчетОС.Менеджер-модуль: подготовка параметров (ManagerModule)
ПодготовитьПараметрыПроведения(ДокументСсылка, Отказ) строит пакет запросов через МенеджерВременныхТаблиц и возвращает структуру ПараметрыПроведения. Состав:
- Реквизиты — одна строка с шапкой документа: Регистратор (Ссылка), Период (Дата), Организация, СтруктурноеПодразделение, ГрафикАмортизации, СобытиеОС, Номер, плюс константа ВидДокумента = "ИзменениеГрафиковАмортизацииОС".
- ВременнаяТаблицаОС — строки табличной части ОС (Ссылка, НомерСтроки, ОсновноеСредство), индексированы по Ссылка.
- ИзменениеГрафиковАмортизацииОСРеквизитыТаблицаОС — результат ВНУТРЕННЕЕ СОЕДИНЕНИЕ реквизитов шапки с таблицей ОС «по ИСТИНА» (т.е. реквизиты шапки размножаются на каждую строку ОС), упорядочено по НомерСтроки. Именно эту таблицу ОбработкаПроведения передаёт в УчетОС.
Характерная деталь итогового запроса — поле-заглушка 0 КАК СуммаЗатратБУ: суммовой показатель здесь нулевой, что ещё раз подтверждает — денежных проводок документ не делает, он переносит параметр (график) и регистрирует событие.
Движения по регистрам
| Регистр | Тип | Что пишет | Условие |
|---|---|---|---|
ГрафикиАмортизацииОСБухгалтерскийУчет (по разбору objects/) |
Регистр сведений | Привязка каждого ОС из ТЧ к новому ГрафикАмортизации на дату документа |
Всегда при непустой ТЧ ОС и без ручной корректировки |
СобытияОСОрганизаций (по разбору objects/) |
Регистр сведений | Запись о событии ОС (дата, организация, ОС, событие, регистратор) | Формируется вызовом СформироватьДвиженияРегистрацияСобытияОС; содержательная запись — когда заполнено СобытиеОС |
ОбработкаПроведения нет ни движений по регистру бухгалтерии, ни обращений к счетам учёта. По плану счетов КЗ это означает: счета 2410 (ОС), 2420 (амортизация ОС), 7210/7480/8410 (расходы) здесь не задействованы — их затрагивает отдельный регламентный документ начисления амортизации, который как раз использует график, заданный этим документом. Любые «плоские» Дт/Кт из вспомогательных разборов для данного документа неприменимы.Валидации (ОбработкаПроверкиЗаполнения) — реальный код
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти(ЭтотОбъект, "ОС", Новый Структура("ОсновноеСредство"), Отказ);
Если ЭтотОбъект.СобытиеОС.ВидСобытияОС = Перечисления.ВидыСобытийОС.ПринятиеКУчету
Или ЭтотОбъект.СобытиеОС.ВидСобытияОС = Перечисления.ВидыСобытийОС.Передача
Или ЭтотОбъект.СобытиеОС.ВидСобытияОС = Перечисления.ВидыСобытийОС.Списание
Тогда
ТекстСообщения = НСтр("ru='События с основными средствами с видом <%1> не будут полноценно отражены данным документом (учетное состояние ОС не изменится)!'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения,
ЭтотОбъект.СобытиеОС.ВидСобытияОС);
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения,, "СобытиеОС", "Объект");
КонецЕсли;
КонецПроцедуры
Что важно знать по реальному коду:
- Дубли ОС. УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти(..., "ОС", Новый Структура("ОсновноеСредство"), Отказ) — повтор ОС в ТЧ устанавливает Отказ, запись блокируется.
- Событие ОС — предупреждение, не блокировка. При видах ПринятиеКУчету / Передача / Списание вызывается ОбщегоНазначения.СообщитьПользователю(...) — это сообщение пользователю, оно не устанавливает Отказ. Документ запишется/проведётся, но событие «полноценно не отразится».
- Обязательность Организация/ГрафикАмортизации обеспечивается на уровне свойства реквизита (Заполнять.ВыдаватьОшибку), а не явной строкой в этом обработчике.
objects/ (раздел «Валидации»/«Per-field») утверждает, что событие ОС проверяется через УчетОС.ПроверитьСобытиеОС и что некорректное событие не даёт провести документ. В реальном коде 3.0.72.1 такого вызова нет: проверка события — это необязывающее предупреждение СообщитьПользователю без Отказ. Документацию по «жёсткой» проверке события следует считать неточной.ПроверитьОтсутствиеДублейВТабличнойЧастиОС. В коде имя другое — ПроверитьОтсутствиеДублейВТабличнойЧасти (универсальный метод с параметрами "ОС" и Новый Структура("ОсновноеСредство")).РучнаяКорректировка; (2) непуста ли ТЧ ОС; (3) дату документа относительно периода начисления; (4) движения по регистру ГрафикиАмортизацииОСБухгалтерскийУчет. Вся содержательная логика записи — в общем модуле УчетОС, туда и смотреть.Зависимости (общие модули)
ПроведениеСервер (подготовка/запись наборов записей), УчетОС (формирование движений по графикам и событиям ОС), УправлениеВнеоборотнымиАктивамиСервер (проверка дублей ОС; инвентарные номера и подбор — на форме), ЗаполнениеДокументов + ОбщегоНазначенияБКВызовСервераПовтИсп (заполнение шапки, валюта регл. учёта), ОбщегоНазначения / ОбщегоНазначенияБКВызовСервера (утилиты, разделитель запросов, сообщения), СтроковыеФункцииКлиентСервер (подстановка параметров в текст).
РучнаяКорректировка = Истина→ раннийВозвратвОбработкаПроведения: движения не пишутся, ноПодготовитьНаборыЗаписейКПроведениюуже вызван — набор остаётся под ручным управлением.- Оба
Если ... Количество() <> 0проверяют одну и ту же таблицуИзменениеГрафиковАмортизацииОСРеквизитыТаблицаОС— при пустой ТЧ ОС не выполнится ни запись графиков, ни регистрация события.- Менеджер-модуль строит «реквизиты × строки ОС» соединением «по ИСТИНА»: шапка размножается на каждую строку. Поле
СуммаЗатратБУ = 0— суммы нет by design.ОбработкаЗаполненияудаляетАвториз входнойСтруктура— при создании копированием/из структуры автор переустанавливается, а не наследуется.- Событие-предупреждение для
ПринятиеКУчету/Передача/Списаниене блокирует запись — если по бизнес-правилу нужно блокировать, это доработка (добавитьОтказ = Истина).- Имена регистров в модуле документа не фигурируют — они «спрятаны» в
УчетОС. Для точной сверки движений используйте отчёт по движениям проведённого документа.
🔗 Связанные разделы
- prinyatie-k-uchetu-os — первичный документ ОС; именно при принятии к учёту задаётся стартовый график амортизации
- izmenenie-sostoyaniya-os — смежный настроечный документ по ОС (состояние/начисление амортизации, налоги)
- modernizaciya-os — меняет стоимость/срок ОС, что также влияет на амортизацию
- peremeshchenie-os — перемещение ОС между подразделениями (другой настроечный документ ОС)
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1): подтверждено реальным кодом ObjectModule.bsl / ManagerModule.bsl |
🆕 |
| 3.0.72.1 | Зафиксировано: документ пишет в регистры сведений (графики/события ОС), бухгалтерских проводок не формирует | 🆕 |