Документ «Перемещение ОС»
Документ оформляет внутреннее перемещение основных средств между структурными подразделениями организации и/или смену материально ответственного лица (МОЛ) — без смены собственника. Он не выписывает «классические» проводки Дт/Кт сам по себе: основное, что он делает, — переписывает аналитику ОС в регистрах учёта (местонахождение, графики и параметры амортизации, состояния, счета учёта, объекты налогов) на новые подразделение и МОЛ. Печатает накладную на перемещение и форму ДА-4.
🎯 Что это и зачем
Основное средство «живёт» в учёте с привязкой к подразделению и МОЛ. Когда оборудование физически переезжает в другой цех/офис или когда увольняется (переводится) ответственный сотрудник, эту привязку нужно актуализировать — иначе амортизация будет распределяться не на то подразделение, инвентаризация не сойдётся, а налоговые объекты (земля, имущество, транспорт) окажутся «приписаны» не туда.
Документ «Перемещение ОС» решает ровно это: одним проведением переносит весь аналитический «шлейф» ОС на новое место. Право собственности при этом не меняется (это не реализация и не выбытие).
Кто работает: бухгалтеры по учёту ОС, специалисты по основным средствам. Частота — по факту перемещений: переезд офиса, открытие филиала, реорганизация, смена МОЛ при кадровых изменениях, исправление местоположения по итогам инвентаризации.
based_on пуст — «Перемещение ОС» создаётся вручную, на его основании другие документы тоже не создаются.🧭 Где найти в программе
Раздел учёта основных средств → журнал «Перемещение ОС»; новый документ — кнопкой «Создать».
Документ.ПеремещениеОС отсутствует в navigation-map.json конфигурации — точный пункт левого меню Fresh не зафиксирован в карте маршрутов. По метаданным (подсистема учёта ОС, печатные формы «Накладная на перемещение ОС» и «ДА-4») документ относится к разделу «ОС и НМА» (в некоторых редакциях интерфейса — «ОС» / «Внеоборотные активы»), журнал «Перемещение ОС». Маршрут в фронтматтере (section: "ОС и НМА") — обоснованное предположение; перед публикацией сверить с реальным деревом разделов Fresh и дополнить navigation-map.json.👤 Часть 1. Для пользователя
Проходим по шагам: от пустого документа до проведённого перемещения и проверки результата. Документ не формирует привычных проводок Дт/Кт — поэтому «проверка результата» здесь означает проверку местонахождения ОС и движений по регистрам, а не отчёт «Дт/Кт» в обычном смысле.
Урок 1. Перемещение ОС между подразделениями
Когда: ОС физически переезжает из одного подразделения организации в другое.
Шаг 1. Создаём документ и задаём дату
«Создать» → новый документ перемещения. Дата — это дата фактического перемещения; именно на неё система берёт учётные данные ОС (стоимость, амортизацию, текущее местоположение).
ДатаПриИзменении в форме вызывает ЗаполнитьИнвентарныеНомераОС). Текущие учётные данные тоже берутся уже на новую дату.Шаг 2. Заполняем шапку
- Организация — обязательна. От неё зависит фильтр ОС и проверка «все ОС принадлежат этой организации».
- Подразделение-отправитель (
СтруктурноеПодразделениеОтправитель) — откуда перемещаем. - Подразделение-получатель (
СтруктурноеПодразделениеПолучатель) — куда перемещаем. - Событие ОС — справочная причина перемещения (необязательно, попадёт в историю).
- Комментарий — произвольное пояснение.
Шаг 3. Заполняем табличную часть «ОС»
Три способа набрать список ОС:
- «Подбор» — выбор ОС из справочника с фильтром по организации и подразделению-отправителю;
- «Заполнить для списка» (ЗаполнитьДляСписка) — массовое заполнение по отбору (текущее местоположение = подразделение-отправитель);
- «Заполнить по наименованию» — поиск ОС по названию.
После добавления ОС система сама подтянет на дату документа: текущее Подразделение (тек.), текущее МОЛ (тек.), Стоимость БУ, Амортизацию БУ, Амортизацию за месяц БУ. Новое подразделение скопируется из получателя шапки.
Стоимость БУ − Амортизация БУ − Амортизация за месяц БУ.Шаг 4. Указываем «новые» подразделение и МОЛ
Для каждого ОС (или массово через «Изменить ОС») задаём Новое подразделение и Новое МОЛ. Это и есть целевое местоположение после перемещения.
ПроверитьОтсутствиеДублейВТабличнойЧасти).Шаг 5. Проводим и проверяем
«Провести» или «Записать и закрыть». После проведения проверяем результат не через «Дт/Кт», а через состояние ОС: карточку ОС, отчёт по местонахождению/наличию ОС — там должно отразиться новое подразделение и МОЛ.
ПроверкаОСПоУчетнымДанным). Если кто-то уже переместил ОС другим документом — получите ошибку «Несоответствие … и … указанного в документе». Решение: перезаполнить строки на актуальную дату.Урок 2. Смена МОЛ без смены подразделения
Когда: ОС остаётся в том же подразделении, но меняется ответственное лицо (увольнение, перевод, передача ответственности).
Отличия от Урока 1: 1. Подразделение-отправитель и -получатель делаем одинаковыми (или заполняем только отправителя). 2. В строках: «тек. подразделение» = «новое подразделение» (совпадают), а «Новое МОЛ» ставим другое. 3. Проводим.
ФормироватьПроводкиБУ в Части 2). Аналитика по МОЛ всё равно обновится в регистрах сведений.Урок 3. Массовое перемещение по списку
Когда: переезд офиса, передача имущества в филиал, исправление местоположения по итогам инвентаризации.
- Заполняем шапку: организация, подразделение-отправитель и -получатель.
- «Заполнить для списка» → форма отбора ОС по организации и текущему местоположению → отмечаем нужные ОС → подтверждаем. Табличная часть загрузится с учётными данными, «новые» подразделение/МОЛ проставятся из шапки.
- При необходимости индивидуально правим строки через «Изменить ОС» (открывает отдельную обработку редактирования; после закрытия табличная часть обновляется через механизм оповещения).
- Проводим.
Урок 4. Печать накладной и формы ДА-4
Документ умеет печатать первичку — в любом состоянии (проводить для печати не обязательно):
- «Накладная на перемещение ОС» — краткая форма с реквизитами и списком ОС (макет ПФ_MXL_Накладная);
- «ДА-4 (Накладная на внутреннее перемещение)» — развёрнутая форма по каждому ОС (макет ПФ_MXL_ДА4).
Кнопка «Печать» → выбираем нужную форму → печатаем / сохраняем в PDF / отправляем по почте.
Урок 5. Режим ручной корректировки (для специалистов)
Флаг «Ручная корректировка» (РучнаяКорректировка) переводит документ в режим, когда автоматическое формирование движений полностью отключается — записи регистров правит сам пользователь.
РучнаяКорректировка = Истина контроль соответствия учётным данным на дату не выполняется. Не проводите такие документы «вслепую» — можно нарушить аналитику ОС.🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/ПеремещениеОС/Ext/ObjectModule.bsl и ManagerModule.bsl), плюс разбор objects/ и business-logic/.
Структура объекта
Реквизиты шапки. Обязательный (ShowError) — только Организация. Остальные — DontCheck: Автор, Ответственный, СобытиеОС, Комментарий, РучнаяКорректировка, НачальноеЗаполнениеАналитикиНаСчетахУчетаОС (служебный флаг первичной настройки аналитики; при нём из проверки исключаются «новые» подразделение и МОЛ — см. ОбработкаПроверкиЗаполнения), СтруктурноеПодразделениеОтправитель, СтруктурноеПодразделениеПолучатель, а также служебные «краткие составы» (КраткийСоставМОЛ, КраткийСоставПодразделений, КраткийСоставНовыйМОЛОрганизации, КраткийСоставНовыйПодразделениеОрганизации) — текстовые представления для формы списка, заполняются в ПередЗаписью.
Табличная часть ОС: ОсновноеСредство (ключ, дубли запрещены), «текущие» ПодразделениеОрганизации и МОЛОрганизации, «новые» НовыйПодразделениеОрганизации и НовыйМОЛОрганизации, стоимостные СтоимостьБУ, АмортизацияБУ, АмортизацияЗаМесяцБУ (справочно, в движениях не участвуют — только для отображения остаточной стоимости).
Формы: ФормаДокумента (основная), ФормаСписка, ФормаВыбора.
Жизненный цикл проведения (обработчики ObjectModule)
| Обработчик | Что делает |
|---|---|
ОбработкаЗаполнения |
При заполнении из структуры удаляет служебный Автор; затем ЗаполнениеДокументов.ЗаполнитьШапкуДокумента (валюта регл. учёта) |
ОбработкаПроверкиЗаполнения |
Проверка дублей ОС + ПроверкаОСПоОрганизации + ПроверкаОСПоУчетнымДанным; при НачальноеЗаполнениеАналитики… исключает «новые» реквизиты из проверки |
ПередЗаписью |
Формирует «краткие составы» МОЛ/подразделений (тек. и нов.) для формы списка |
ПриКопировании |
Сбрасывает Дата на начало текущего дня пользователя |
ОбработкаПроведения |
Готовит наборы записей; при РучнаяКорректировка — выходит; иначе собирает параметры и делегирует формирование движений модулям УчетОС / УправлениеВнеоборотнымиАктивамиСервер |
Документов-оснований нет (
based_onпуст), и на основании «Перемещения ОС» ничего не создаётся (inverse_based_onпуст).
Как формируется проведение — реальный код (3.0.72.1)
Главное: документ не «зашивает» проводки. ОбработкаПроведения готовит таблицы (через ПодготовитьПараметрыПроведения менеджера) и по очереди делегирует формирование движений профильному модулю учёта ОС — УчетОС (и УправлениеВнеоборотнымиАктивамиСервер для амортизации по направлениям). Конкретные счета БУ и состав движений определяются этими модулями и учётной политикой, а не телом документа.
Ключевые фрагменты ObjectModule.bsl, процедура ОбработкаПроведения (стр. 43), сокращённо:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат; // движения заполняет пользователь
КонецЕсли;
ПараметрыПроведения = Документы.ПеремещениеОС.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда Возврат; КонецЕсли;
Если ПараметрыПроведения = Неопределено Тогда Возврат; КонецЕсли;
ТаблицаАмортизации = УправлениеВнеоборотнымиАктивамиСервер.ПодготовитьТаблицуРаспределениеАмортизацииПоНаправлениямРегл(
ПараметрыПроведения.ТаблицаОСРаспределениеАмортизацииПоНаправлениямРегл, ПараметрыПроведения.Реквизиты, Отказ);
Если Отказ Тогда Возврат; КонецЕсли;
// ── КЛЮЧЕВОЕ УСЛОВИЕ: нужны ли вообще БУ-движения по стоимости/амортизации ──
ФормироватьПроводкиБУ = Истина;
Реквизиты = ПараметрыПроведения.Реквизиты[0];
Если Реквизиты.СтруктурноеПодразделениеОтправитель = Реквизиты.СтруктурноеПодразделениеПолучатель Тогда
Если Не (Реквизиты.ВедетсяАналитическийУчетОСПоМОЛ
Или Реквизиты.ВедетсяАналитическийУчетОСПоПодразделениям) Тогда
ФормироватьПроводкиБУ = Ложь; // отправитель = получатель и аналитики нет → менять в БУ нечего
КонецЕсли;
КонецЕсли;
// ── ФОРМИРОВАНИЕ ДВИЖЕНИЙ: каждый блок пишет «свой» регистр ──
Если ПараметрыПроведения.ПеремещениеОСГрафикиАмортизацииОСБухгалтерскийУчет.Количество() <> 0 Тогда
УчетОС.СформироватьДвиженияИзменениеГрафиковАмортизацииОС(…, Движения, Отказ);
КонецЕсли;
Если ПараметрыПроведения.ПеремещениеОСМестонахождениеОСБухгалтерскийУчет.Количество() <> 0 Тогда
УчетОС.СформироватьДвиженияМестонахождениеОСБух(…, Движения, Отказ); // ← ядро перемещения
КонецЕсли;
Если …ПеремещениеОСНакопленнаяАмортизацияОСБУ… <> 0 И ФормироватьПроводкиБУ Тогда
УчетОС.СформироватьДвиженияПеремещениеОСНакопленнаяАмортизацияОСБУ(…, Реквизиты, Движения, Отказ);
КонецЕсли;
// … далее аналогично: НачислениеАмортизации, Объекты{Земельного|Имущественного|Транспортного}Налога,
// ОстаткиПереоценокВА, ПараметрыАмортизации, ПервоначальныеСведения, РезервыПоПереоценкеОС(БУ),
// СобытияОСОрганизаций, СостоянияОСОрганизаций, СпособыОтраженияРасходов, СтоимостьОСБУ(БУ), СчетаУчетаОС …
Если ТаблицаАмортизации.Количество() <> 0 И ФормироватьПроводкиБУ Тогда
УправлениеВнеоборотнымиАктивамиСервер.СформироватьДвиженияАмортизацииПоНаправлениямРегл(…, Реквизиты, Движения, Отказ);
КонецЕсли;
КонецПроцедуры
Кто что формирует (вызов → смысл). Все СформироватьДвижения… — методы общего модуля УчетОС, кроме амортизации по направлениям:
| Вызов в коде | Какой учёт пишет |
|---|---|
СформироватьДвиженияМестонахождениеОСБух |
новое местоположение ОС (подразделение + МОЛ) — ядро документа |
СформироватьДвиженияИзменениеГрафиковАмортизацииОС |
синхронизация графиков амортизации БУ |
СформироватьДвиженияПеремещениеОСНакопленнаяАмортизацияОСБУ (БУ) |
перенос накопленной амортизации |
СформироватьДвиженияИзменениеПризнакаНачисленияАмортизацииОС |
параметры/признак начисления амортизации |
СформироватьДвиженияИзменениеЗемельногоНалога / …ОбъектыИмущественногоНалога / …ИзменениеТранспортногоНалога |
объекты земельного / имущественного / транспортного налога |
СформироватьДвиженияПеремещениеОСОстаткиПереоценокВА |
остатки переоценок внеоборотных активов |
СформироватьДвиженияПараметрыАмортизацииОСБухгалтерскийУчет / …ПервоначальныеСведенияОСБух |
параметры и первоначальные сведения ОС |
СформироватьДвиженияПеремещениеОСРезервыПоПереоценкеОС (БУ) |
резервы по переоценке ОС |
СформироватьДвиженияРегистрацияСобытияОС |
запись события перемещения (история) |
СформироватьДвиженияИзменениеСостоянияОС |
состояние ОС |
СформироватьДвиженияСпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет |
способ отражения расходов по амортизации |
СформироватьДвиженияПеремещениеОССтоимостьОСБУ (БУ) |
стоимость ОС в БУ |
СформироватьДвиженияСчетовУчетаОСБух |
счета учёта ОС |
УправлениеВнеоборотнымиАктивамиСервер.СформироватьДвиженияАмортизацииПоНаправлениямРегл (БУ) |
распределение амортизации по направлениям (регл.) |
Важные детали из кода:
- РучнаяКорректировка = Истина → авто-проведение полностью пропускается (Возврат сразу после ПодготовитьНаборыЗаписейКПроведению).
- Флаг ФормироватьПроводкиБУ. Блоки, помеченные выше (БУ) (накопленная амортизация, резервы/переоценка, стоимость БУ, амортизация по направлениям), выполняются только если ФормироватьПроводкиБУ = Истина. Он становится Ложь, когда отправитель = получатель и в учётной политике не ведётся аналитический учёт ОС по МОЛ и по подразделениям — то есть в регламентированном учёте перемещение «ничего не двигает», обновляется лишь аналитика в регистрах сведений.
- Каждый блок защищён проверкой …Количество() <> 0 — пустые таблицы движений не формируются.
ПодготовитьПараметрыПроведения (ManagerModule, стр. 788) явно использует только один счёт плана счетов — ПланыСчетов.Типовой.РезервНаПереоценкуОсновныхСредств (для таблицы резервов). Все прочие счета БУ (стоимость ОС, накопленная амортизация) подставляются внутри УчетОС из регистра сведений СчетаУчетаОС по каждому ОС. Поэтому даже «стоимостные» движения этого документа — это перенос остатков по тем же счетам учёта ОС между аналитикой подразделений, а не привычная корреспонденция «Дт одного счёта — Кт другого».Движения по регистрам
Документ работает прежде всего с регистрами сведений (аналитика ОС) и регистрами накопления (переоценка). Состав таблиц подтверждён пакетным запросом в ПодготовитьПараметрыПроведения (стр. 853–870).
| Регистр | Тип | Что пишет |
|---|---|---|
МестонахождениеОСБухгалтерскийУчет |
РегистрСведений | Новое местоположение: подразделение + МОЛ (ядро) |
СобытияОСОрганизаций |
РегистрСведений | Событие «перемещение» для истории ОС |
ГрафикиАмортизацииОСБухгалтерскийУчет |
РегистрСведений | Графики амортизации БУ |
НачислениеАмортизацииОСБухгалтерскийУчет |
РегистрСведений | Признак/параметры начисления амортизации |
ПараметрыАмортизацииОСБухгалтерскийУчет |
РегистрСведений | Параметры расчёта амортизации |
ПервоначальныеСведенияОСБухгалтерскийУчет |
РегистрСведений | Первоначальные сведения ОС |
СостоянияОСОрганизаций |
РегистрСведений | Состояние ОС |
СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет |
РегистрСведений | Способ отражения расходов по амортизации |
СчетаУчетаОС |
РегистрСведений | Счета учёта ОС |
ОбъектыЗемельногоНалога / ОбъектыИмущественногоНалога / ОбъектыТранспортногоНалога |
РегистрСведений | Аналитика объектов налогов |
ПереоценкаВнеоборотныхАктивов (остатки переоценок ВА) |
РегистрНакопления | Остатки переоценок ВА |
РезервыПоПереоценкеОС, СтоимостьОСБУ, НакопленнаяАмортизацияОСБУ |
регистры учёта (БУ) | Только при ФормироватьПроводкиБУ = Истина |
objects/ и business-logic/ManagerModule.md упоминает РегистрБухгалтерии.Типовой/Налоговый («остатки ОС на счетах учёта»). В реальном ObjectModule.bsl прямых вызовов формирования проводок по РегистрБухгалтерии.Типовой/Налоговый из тела документа нет — всё идёт через УчетОС.СформироватьДвижения…, который сам решает, какие наборы (включая бухгалтерские) заполнить. Поэтому корректная формулировка: документ не выписывает Дт/Кт самостоятельно; если БУ-движения и появляются (перенос стоимости/амортизации по счетам учёта ОС), их формирует УчетОС под условием ФормироватьПроводкиБУ. Точный итог по конкретному ОС сверять отчётом «Движения документа» на проведённом экземпляре.Типовой.РезервНаПереоценкуОсновныхСредств). Это перенос остатка по одному и тому же счёту между аналитикой подразделений (а не корреспонденция между разными счетами). Российские счета 01/02 здесь неприменимы. Конкретные счета берутся из регистра СчетаУчетаОС по каждому ОС.Валидации (ОбработкаПроверкиЗаполнения и служебные процедуры)
- Дубли ОС —
УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти(…, "ОС", Новый Структура("ОсновноеСредство"), Отказ): одно ОС не может встречаться в табличной части дважды. - Соответствие организаций (
ПроверкаОСПоОрганизации, запрос поМестонахождениеОСБухгалтерскийУчет.СрезПоследних): каждое ОС должно принадлежать организации документа. Иначе — сообщение «Несоответствие организаций ОС <…> код <…> и организации указанной в документе» с привязкой к строке. - Соответствие текущих данных учёту (
ПроверкаОСПоУчетнымДанным, временные таблицы + срез на дату,Регистратор <> Ссылка): для каждого ОС сверяется, что указанные в строке тек. подразделение, тек. подразделение организации и тек. МОЛ совпадают с фактическим местоположением на дату. Три отдельные ветки сообщений: по структурному подразделению, по подразделению (тек.) и по МОЛ (тек.). - Исключение при первичном заполнении. Если
НачальноеЗаполнениеАналитикиНаСчетахУчетаОС = Истина, из проверяемых реквизитов исключаютсяОС.НовыйПодразделениеОрганизациииОС.НовыйМОЛОрганизации(их допустимо не заполнять — режим миграции/первичной настройки аналитики).
Зависимости (общие модули)
УчетОС— основной модуль учёта ОС (~16 вызовов): всеСформироватьДвижения…для регистров ОС/амортизации/налогов/состояний/счетов.УправлениеВнеоборотнымиАктивамиСервер— проверки и вспомогательные структуры: дубли, «краткие составы»,ПодготовитьТаблицуРаспределениеАмортизацииПоНаправлениямРегл,СформироватьДвиженияАмортизацииПоНаправлениямРегл, флаги «ведётся ли аналитика по МОЛ/подразделениям».ПроведениеСервер—ПодготовитьНаборыЗаписейКПроведению.ПроцедурыНалоговогоУчета/…ВызовСервераПовтИсп— признак плательщика налога на прибыль, налогоплательщик структурной единицы (местные налоги).УчетнаяПолитикаСервер—ВедетсяУчетВременныхРазницБалансовымМетодом.ЗаполнениеДокументов,ОбщегоНазначения,ОбщегоНазначенияБКВызовСервераПовтИсп— заполнение шапки, валюта регл. учёта, утилиты.УправлениеПечатью(ManagerModule) — печатные формы «Накладная на перемещение ОС» (ПФ_MXL_Накладная) и «ДА-4» (ПФ_MXL_ДА4).
- «Провёл перемещение, а в ОСВ по счёту 2410/2420 ничего не изменилось». Это нормально, если отправитель = получатель или в учётной политике не включена аналитика ОС по подразделениям/МОЛ: при таких настройках
ФормироватьПроводкиБУ = Ложьи обороты по счетам не формируются — обновляется только аналитика ОС в регистрах сведений. Хотите видеть движение в БУ-аналитике по подразделениям — включайте соответствующий аналитический учёт ОС в учётной политике.- «Не проводится: несоответствие подразделения/МОЛ». ОС уже переместили другим документом, и «тек.» данные в строках устарели. Перезаполните табличную часть на актуальную дату (через «Подбор»/«Заполнить для списка»). Всё «текущее» документ берёт из
МестонахождениеОСБухгалтерскийУчетсреза последних на дату.
ФормироватьПроводкиБУ— единственный «выключатель» БУ-блоков; завязан на равенство подразделений и на функцииВедетсяАналитическийУчетОСПо{МОЛ|Подразделениям}изУправлениеВнеоборотнымиАктивамиСервер. При диагностике «почему нет движений по стоимости/амортизации» начинайте отсюда.- Все БУ-движения делегированы
УчетОС. В теле документа нет ни одной строкиДвижения.Типовой.Добавить(). Хотите изменить корреспонденцию/счета — этоУчетОС+ регистрСчетаУчетаОС, а не модуль документа.ПроверкаОСПоУчетнымДаннымиспользует пакетный запрос с временными таблицами и срезомРегистратор <> &Ссылка— это корректно работает и при перепроведении (свой регистратор исключается из «факта»). При доработке проверки сохраняйте это условие, иначе документ начнёт «конфликтовать сам с собой».НачальноеЗаполнениеАналитикиНаСчетахУчетаОСослабляет проверки (можно не заполнять «новые» подразделение/МОЛ) — учитывайте при сценариях миграции/первичного ввода.ПриКопированиижёстко сбрасывает дату на текущую — копия не «наследует» дату оригинала.
🔗 Связанные разделы
- prinyatie-k-uchetu-os — принятие ОС к учёту (первичное определение подразделения/МОЛ)
- spisanie-os — выбытие/списание ОС (обратная по смыслу операция жизненного цикла)
- peremeshchenie-tovarov — аналог для ТМЗ (перемещение товаров между складами)
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1) | 🆕 |