Документ «Комплектация ОС»
Документ фиксирует состав сложного основного средства — какие ОС входят в комплект родительского ОС и в каком они состоянии (включено / исключено из состава). Это регистрационный документ: он не делает бухгалтерских проводок (нет Дт/Кт), а пишет в регистры сведений СоставОС и СобытияОСОрганизаций. Применяется в разделе учёта ОС и НМА при сборке, разукомплектации и инвентаризации составных активов.
🎯 Что это и зачем
Многие основные средства — составные: компьютер с монитором и ИБП, автомобиль с допоборудованием, станок с оснасткой. Чтобы система знала, что из чего собрано, состав нужно где-то хранить. Этим и занимается документ «Комплектация ОС»: он регистрирует, какие объекты ОС включены в состав родительского ОС, а какие исключены из него, на дату документа.
Важно с самого начала: этот документ не формирует проводок по счетам бухгалтерского учёта. Он не меняет балансовую стоимость, не начисляет амортизацию, не переносит суммы между счетами 2410 / 2420. Вся его работа — запись справочной информации о составе в регистры сведений. Денежные последствия комплектации (например, изменение первоначальной стоимости при дооборудовании) оформляются другими документами учёта ОС.
Кто работает: бухгалтеры по учёту ОС и специалисты по внеоборотным активам, эпизодически — при изменении комплектации, инвентаризации, оформлении событий в жизненном цикле ОС.
🧭 Где найти в программе
Раздел «ОС и НМА» → пункт «Комплектация ОС». Откроется журнал документов; новый создаём кнопкой «Создать».
navigation-map.json, 26 объектов) документа Документ.КомплектацияОС нет — там описаны в основном разделы «Продажа» и «Покупка». Точные название пункта меню и раздела в левом сайдбаре Fresh не подтверждены источником; маршрут «ОС и НМА → Комплектация ОС» выведен по принадлежности объекта к подсистеме учёта основных средств. Перед публикацией сверить с реальным интерфейсом релиза 3.0.72.1.👤 Часть 1. Для пользователя
Проходим по шагам: от пустого документа до зарегистрированного состава комплекта и проверки результата в регистре.
Урок 1. Регистрация состава комплекта
Когда: вводите в эксплуатацию сложное ОС и хотите зафиксировать его первоначальный состав (например, системный блок + монитор + ИБП в составе «Рабочее место»).
Шаг 1. Создаём документ
«Создать» в журнале «Комплектация ОС». Откроется пустая форма документа. Дата по умолчанию — текущая (при копировании дата сбрасывается на начало текущего дня).
Шаг 2. Заполняем шапку
- Организация — организация, в которой учитывается родительское ОС (обязательно).
- Родительское основное средство — то самое «головное» ОС, состав которого описываем (обязательно).
- Структурное подразделение — где находится ОС (необязательно; очищается, если очистить организацию).
- Ответственный — материально-ответственное лицо или бухгалтер (необязательно, выводится в печатной форме).
- Событие ОС — событие жизненного цикла, к которому привязана комплектация: инвентаризация, модернизация и т.п. (необязательно).
Шаг 3. Заполняем состав
Два способа набрать табличную часть «ОС»:
- «Заполнить» — система запросит текущий состав родительского ОС из регистра СоставОС на дату документа и подставит строки автоматически. Удобно, когда комплект уже существует и его надо лишь скорректировать.
- «Подбор» — открывает форму подбора справочника «Основные средства» (с фильтром по дате и организации); отмечаете нужные ОС, они добавляются в таблицу.
Для каждой строки в колонке «Состояние в составе ОС» указываем статус: «Включено в состав» (добавляем в комплект) или «Исключено из состава» (выводим из комплекта). При выборе ОС в строке система сама подставляет корректное состояние, исходя из текущих данных регистра.
СоставОС перезапишет состояние именно на этот момент.Шаг 4. Проверяем уникальность
Одно и то же ОС нельзя указать в таблице дважды — при записи сработает проверка дублей. Если случайно добавили объект повторно, удалите лишнюю строку.
Шаг 5. Проводим и проверяем
«Провести» или «Записать и закрыть». Результат документа — это записи в регистрах сведений, а не проводки. Чтобы убедиться, что состав зафиксирован, откройте «Движения документа» и посмотрите регистр «Состав ОС» (и «События ОС организаций», если заполняли «Событие ОС»).
Урок 2. Изменение состава: исключение из комплекта
Когда: выводите комплектующее из состава ОС (замена монитора, демонтаж оснастки).
- Создайте новый документ «Комплектация ОС» с датой операции (или откройте подходящий).
- Заполните Родительское основное средство, нажмите «Заполнить» — подтянется текущий состав.
- В строке нужного ОС смените «Состояние в составе ОС» на «Исключено из состава».
- Проведите документ.
Урок 3. Печать документа
Для передачи МОЛ, аудиторам или в архив документ можно распечатать.
- Откройте документ (или выделите в списке).
- Кнопка «Печать» → команда «Комплектация ОС».
- Сформируется табличный документ: номер, дата, организация, родительское ОС, ответственный и таблица состава со статусами.
ПечатьКомплектацияОС в модуле менеджера.🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/КомплектацияОС/Ext/ObjectModule.bsl), плюс разбор objects/Документ_КомплектацияОС.md и business-logic/. ManagerModule — по разбору business-logic/Документ_КомплектацияОС_ManagerModule.md.
Структура объекта
Реквизиты шапки:
| Реквизит | Тип | Обязательность | Назначение |
|---|---|---|---|
Организация |
СправочникСсылка.Организации | Обязательный (ShowError) | Контур учёта родительского ОС, ограничение доступа |
РодительскоеОсновноеСредство |
СправочникСсылка.ОсновныеСредства | Обязательный (ShowError) | «Головное» ОС, состав которого описывается |
СтруктурноеПодразделение |
СправочникСсылка.ПодразделенияОрганизаций | Необязательный | Местонахождение ОС |
Ответственный |
СправочникСсылка.Пользователи | Необязательный | МОЛ / ответственный, выводится в печать |
СобытиеОС |
СправочникСсылка.СобытияОС | Необязательный | Событие жизненного цикла ОС |
РучнаяКорректировка |
Булево | Необязательный | Признак ручного управления движениями (см. ниже) |
Автор |
СправочникСсылка.Пользователи | Служебный | Заполняется автоматически; удаляется из данных заполнения |
Комментарий |
Строка | Необязательный | Свободный комментарий |
Табличная часть ОС: ОсновноеСредство (СправочникСсылка.ОсновныеСредства — уникально в пределах документа) и СостояниеВСоставеОС (ПеречислениеСсылка.ВидыСостоянийВСоставеОС — значения ВключеноВСостав / ИсключеноИзСостава).
Формы: ФормаДокумента (ключевая), ФормаСписка, ФормаВыбора.
Жизненный цикл проведения (обработчики ObjectModule)
| Обработчик | Что делает (по реальному коду) |
|---|---|
ОбработкаЗаполнения |
Удаляет Автор из структуры данных заполнения; вызывает ЗаполнениеДокументов.ЗаполнитьШапкуДокумента с валютой регл. учёта |
ОбработкаПроверкиЗаполнения |
Проверка дублей ОС (УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти) + построчная валидация ПроверитьПострочноТаблицуОС |
ОбработкаПроведения |
Готовит наборы записей; при РучнаяКорректировка — выход; иначе делегирует движения модулю УчетОС (события ОС и состав ОС) |
ПередЗаписью |
Только ранний выход при ОбменДанными.Загрузка (прочей логики нет) |
ПриКопировании |
Сбрасывает Дата на начало текущего дня пользователя |
Как формируется проведение — реальный код (3.0.72.1)
Главное: документ не делает бухгалтерских проводок. ОбработкаПроведения подготавливает наборы записей и делегирует формирование движений общему модулю УчетОС, который пишет в регистры сведений СоставОС и СобытияОСОрганизаций. Никаких счетов плана счётов (2410/2420/...) здесь не затрагивается.
Источник: ObjectModule.bsl, процедура ОбработкаПроведения (стр. 32), приведена полностью:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат; // движения заполняет пользователь
КонецЕсли;
ПараметрыПроведения = Документы.КомплектацияОС.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
// Если не удалось получить параметры и Отказ не взведён — просто выходим
Если ПараметрыПроведения = Неопределено Тогда
Возврат;
КонецЕсли;
Если ПараметрыПроведения.СобытияОСОрганизацийТаблицаОС.Количество() <> 0 Тогда
УчетОС.СформироватьДвиженияРегистрацияСобытияОС(ПараметрыПроведения.СобытияОСОрганизацийТаблицаОС,
ПараметрыПроведения.Реквизиты,
Движения, Отказ);
КонецЕсли;
Если ПараметрыПроведения.СоставОСТаблицаОС.Количество() <> 0 Тогда
УчетОС.СформироватьДвиженияСоставОС(ПараметрыПроведения.СоставОСТаблицаОС,
ПараметрыПроведения.Реквизиты,
Движения, Отказ);
КонецЕсли;
КонецПроцедуры
Разбор:
| Шаг в коде | Смысл |
|---|---|
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект) |
Создаёт наборы записей регистров, по которым может двигаться документ |
Если РучнаяКорректировка Тогда Возврат |
Полностью пропускает авто-проведение — движения заполняет пользователь вручную |
Документы.КомплектацияОС.ПодготовитьПараметрыПроведения(...) |
Менеджерская функция (31 строка): через временные таблицы собирает реквизиты документа и две таблицы движений |
УчетОС.СформироватьДвиженияРегистрацияСобытияОС(...) |
Пишет запись о событии ОС → регистр СобытияОСОрганизаций (только если таблица непуста) |
УчетОС.СформироватьДвиженияСоставОС(...) |
Пишет состав комплекта → регистр сведений СоставОС (только если таблица непуста) |
Ключевые детали:
- РучнаяКорректировка = Истина → ранний Возврат: документ записывается, но движений нет. Это режим администратора/миграции.
- Движения формируются условно: каждый блок выполняется, только если соответствующая таблица параметров проведения непуста. Документ без подходящих данных проводится «вхолостую».
- Счета не вычисляются вообще — здесь нет ни одного обращения к плану счетов. Это принципиальное отличие от документов реализации/поступления.
Движения по регистрам
Документ пишет только в регистры сведений (срез последних) — бухгалтерских и накопительных регистров он не затрагивает.
| Регистр | Тип | Что пишет |
|---|---|---|
СоставОС |
Регистр сведений (срез последних) | Состав комплекта: измерения РодительскоеОС + ОсновноеСредство, ресурс СостояниеВСоставеОС. Запись на дату документа вытесняет прежнее состояние тех же измерений |
СобытияОСОрганизаций |
Регистр сведений | Регистрация события ОС (когда заполнено СобытиеОС и таблица событий непуста) |
objects/ раздел назван «Проводки», но по факту это движения по регистрам сведений, а не бухгалтерские проводки. Реальный код (УчетОС.СформироватьДвиженияСоставОС / ...РегистрацияСобытияОС) подтверждает: счета плана счётов КЗ (2410, 2420, 2730, 2740, 7210/7480/8410, 1330) не задействованы. Никаких «плоских» Дт/Кт по этому документу нет и не должно быть. В отчёте «Движения документа» вкладки с проводками не ожидается — только регистры сведений.УчетОС; туда смотреть при нестандартном поведении.Валидации (ОбработкаПроверкиЗаполнения + ПроверитьПострочноТаблицуОС)
ОбработкаПроверкиЗаполнения (реальный код, стр. 24) делает ровно два вызова:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
УправлениеВнеоборотнымиАктивамиСервер.ПроверитьОтсутствиеДублейВТабличнойЧасти(
ЭтотОбъект, "ОС", Новый Структура("ОсновноеСредство"), Отказ);
ПроверитьПострочноТаблицуОС(Отказ);
КонецПроцедуры
- Дубли ОС.
ПроверитьОтсутствиеДублейВТабличнойЧастипо табличной частиОСи ключуОсновноеСредство— одно ОС нельзя указать дважды. - Построчная проверка состояния (
ПроверитьПострочноТаблицуОС). Сворачивает таблицу поОсновноеСредство, запрашиваетРегистрСведений.СоставОС.СрезПоследнихна дату документа (по чужим регистраторам) и сверяет намерение с текущим состоянием. Блокирует логически некорректные операции, в частности: - включение ОС, которое уже включено в состав другого комплекта → «… уже содержится в составе ОС: …»;
- исключение ОС, которое уже было исключено из данного родительского ОС → «… уже было исключено из состава ОС: …»;
- исключение ОС, которого нет в составе данного родительского ОС → «… не содержится в составе ОС: … Чтобы исключить из комплекта, необходимо сначала включить его в состав комплекта.».
Дата). Изменение даты может изменить результат валидации.Зависимости (общие модули)
УчетОС (формирование движений СоставОС и СобытияОСОрганизаций), УправлениеВнеоборотнымиАктивамиСервер (проверка дублей в ТЧ), ПроведениеСервер (подготовка наборов записей), ЗаполнениеДокументов (заполнение шапки), ОбщегоНазначения / ОбщегоНазначенияБКВызовСервераПовтИсп (служебные функции, валюта регл. учёта, сообщения пользователю), СтроковыеФункцииКлиентСервер (тексты сообщений). Печать — УправлениеПечатью (в ManagerModule).
- Документ не делает проводок. При генерации тест-кейсов/ожиданий не ищите вкладку Дт/Кт — проверяйте регистры сведений
СоставОСиСобытияОСОрганизаций.РучнаяКорректировка = Истина→ движений нет. Перед авто-проведением в сценариях проверяйте флаг; иначе документ запишется «пустым».- Условность движений. Блоки формирования движений выполняются только при непустых таблицах
СоставОСТаблицаОС/СобытияОСОрганизацийТаблицаОСизПодготовитьПараметрыПроведения.- Дата — критичный параметр. И «Заполнить», и построчная валидация работают через срез последних
СоставОСна дату документа.СобытияОСОрганизацийпишется только при заполненномСобытиеОС— если событие не указано, таблица событий пуста и движения по этому регистру не формируются.
🔗 Связанные разделы
- sostav-os — регистр сведений «Состав ОС», куда пишет документ
- sobytiya-os — справочник/регистр событий ОС (второй приёмник движений)
- osnovnye-sredstva — справочник ОС (родительское ОС и комплектующие)
- prinyatie-k-uchetu-os — принятие ОС к учёту (финансовые операции по ОС — отдельно от комплектации)
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1) | 🆕 |