Программа учёта основных средств и выдачи имущества показывает из одной записи, где находится каждый актив компании (ноутбук, телефон, станок, мебель, автомобиль, измерительный прибор), у кого он и в каком он состоянии. Она состоит из четырёх частей: карточки на каждый актив, этикетки (QR-код или штрихкод), которая связывает карточку с физическим предметом, истории выдачи, где видно, кто кому передал актив, и регулярной инвентаризации, которая сверяет записи с реальностью. В первый год хватает таблицы; когда растёт число сотрудников и филиалов, ответ на вопрос «у кого был этот ноутбук» теряется. В статье разбираем правильную модель данных, возврат имущества при увольнении, инвентаризацию, связь с бухгалтерией и выбор между готовой программой и заказной разработкой. С этих тем мы начинаем разговор с клиентами, для которых строим систему учёта в рамках корпоративных решений.
Учёт основных средств и складской учёт: одно и то же?
Нет, и путаница между ними встречается чаще всего. Складской запас расходуется или продаётся; его учитывают количеством, и он отвечает на вопрос «сколько штук на складе». Основное средство компания использует годами; его учитывают поштучно, и оно отвечает на вопрос «где устройство с этим серийным номером и у кого оно». Складскую сторону мы описали в статье о программе складского учёта. То же различие касается автомобилей: служебная машина является активом, но у неё есть свои вопросы (обслуживание, штрафы, пробег), поэтому мы разобрали её отдельно в статье об управлении автопарком. График обслуживания оборудования относится к системе управления техобслуживанием; система учёта активов даёт обеим карточку актива.
Что должно быть в карточке актива?
- Идентификация: внутренний инвентарный номер (печатается на этикетке), производитель, модель, серийный номер или IMEI.
- Класс и место: категория (ИТ, мебель, оборудование), филиал, здание и помещение; иерархия мест задаётся с первого дня.
- Финансовые данные: дата покупки, стоимость, поставщик, номер счёта и окончание гарантии.
- Статус: в работе, на складе, в ремонте, утерян, списан. Статусы выбираются из фиксированного списка, а не пишутся свободным текстом.
- Документы: счёт, гарантийный талон и подписанный акт выдачи прикрепляются к карточке.
Главное: выдача привязывается к активу, а не к сотруднику
Чаще всего неправильно строят именно хранение выдачи. Список «выданные устройства» в карточке сотрудника или одно поле «у кого» в карточке актива показывают сегодняшний день, но стирают прошлое: у кого было устройство в марте прошлого года, когда разбили экран, кто из сотрудников ушёл, не вернув технику? Правильная модель хранит каждую передачу отдельной записью: актив, получатель, кто выдал, дата выдачи, а после возврата дата возврата и состояние. Тогда вопрос «у кого он был в этот день» решается одним запросом. Правило простое: у актива одновременно может быть только одна открытая запись о выдаче. Пример ниже обеспечивает это внутри транзакции базы данных.
type Assignment = {
assetId: string;
employeeId: string;
issuedBy: string;
issuedAt: Date;
returnedAt?: Date;
returnCondition?: 'ok' | 'damaged' | 'missing_parts';
};
export async function assignAsset(
assetId: string,
employeeId: string,
issuedBy: string,
) {
return db.transaction(async tx => {
// Блокируем строку: одно устройство нельзя выдать двоим одновременно.
const asset = await tx.assets.findForUpdate(assetId);
if (asset.status !== 'in_stock') throw new Error('ASSET_NOT_AVAILABLE');
const open = await tx.assignments.findOpen(assetId);
if (open) throw new Error('ASSET_ALREADY_ASSIGNED');
await tx.assignments.insert({
assetId,
employeeId,
issuedBy,
issuedAt: new Date(),
});
await tx.assets.update(assetId, { status: 'in_use' });
});
}Запись о выдаче не удаляется, а только закрывается. Лишь система, которая движется вперёд добавлением записей, а не перезаписью истории, через год сможет бесспорно ответить, у кого было это устройство.
Приём на работу, увольнение и возврат
Ценность системы лучше всего видна при увольнении. Если у уходящего сотрудника остались открытые выдачи, система показывает их отделу кадров и руководителю; каждое возвращённое устройство закрывается вместе с состоянием, а недостающее становится шагом процесса увольнения. При приёме на работу ускоряют дело стандартные комплекты: для роли «торговый представитель» задаётся шаблон из ноутбука, телефона и автомобиля, и кладовщик выдаёт его с одного экрана. Если данные о сотрудниках живут в другой системе (зарплата, учёт рабочего времени), программа учёта активов не копирует список, а читает его оттуда; эту связь мы описали в статье о программе учёта персонала. Кто может выдавать, а кто только смотреть, решает модель прав доступа, см. роли пользователей и авторизация.
Инвентаризация: когда записи расходятся с реальностью?
Даже в лучшей системе записи со временем расходятся с реальностью: устройство переносят в другую комнату, оно не возвращается из ремонта, двое коллег меняются техникой. Поэтому инвентаризацию проводят минимум раз в год, а для критичных активов чаще. Она идёт через мобильное приложение: сотрудник заходит в помещение, сканирует этикетки, и система сравнивает, что должно быть в этом месте, с тем, что отсканировано. Получается три списка: на месте, найдено в другом месте и не найдено. Ненайденные активы не удаляются автоматически, а получают статус «утерян» и требуют подтверждения. Итог инвентаризации не отчёт, а список задач.
Связь с бухгалтерией: кто что ведёт?
Финансовая сторона актива (стоимость, амортизация, списание) ведётся в бухгалтерской программе; система учёта выдачи её не заменяет. При правильной настройке обе системы используют один инвентарный номер: когда входящий счёт проведён в бухгалтерии, создаётся карточка актива, а когда в системе учёта принято решение о списании, бухгалтерия получает уведомление. Повторный расчёт амортизации в системе учёта даёт две разные цифры. Как строится интеграция, мы описали в статье об интеграции с бухгалтерской программой; по налоговым правилам и амортизации консультируйтесь с бухгалтером.
Готовая программа или заказная разработка?
Компании с одним офисом, которая учитывает только ИТ-технику, обычно хватает готового инструмента. Заказная разработка имеет смысл, когда перемещения между несколькими филиалами и складами требуют согласования, когда выдача связана с приёмом и увольнением, когда системы обслуживания, автопарка и склада используют одну карточку актива или когда нужно мобильное приложение для сканирования на месте. Какой бы путь вы ни выбрали, перенос существующей таблицы является отдельной задачей; дубли серийных номеров и по-разному записанные места нужно очистить до импорта. Об этом статья о переносе данных; общую рамку решения смотрите в статье заказное ПО или готовое решение.
Итог
Программа учёта основных средств и выдачи имущества не список, а система записей, которая с датами хранит, кто кому передал каждый актив. В хорошо построенной системе у каждого актива есть этикетка и карточка, выдача привязана к активу и не удаляется, открытые выдачи автоматически всплывают при увольнении, а инвентаризация регулярно сверяет записи с реальностью. Если вы хотите связать учёт имущества с процессами филиалов, склада и отдела кадров, посмотрите наши корпоративные решения или сразу запросите смету.