В процессе эксплуатации собственного оборудования, например, эквайринговых терминалов, компании часто сталкиваются с необходимостью отслеживать не только наличие устройства на складе, но и его текущее «здоровье». Терминал может быть новым, находиться на диагностике, в ремонте или ожидать утилизации. В типовой конфигурации «1С:Управление торговлей 11» (УТ 11) нет прямой кнопки «Состояние оборудования», однако архитектура системы позволяет реализовать этот учет несколькими эффективными способами. Разберем подробно, как настроить систему для решения этой задачи.
Прежде чем переходить к состояниям, проанализируем базовое требование — учет в разрезе серийных номеров. Чтобы система понимала, что каждый терминал — это уникальный объект, а не просто «одна штука из тысячи», необходимо правильно настроить Политику учета серий.
Выясним причину, по которой обычное указание серий при отгрузке нам не подходит. Если мы выберем политику «Справочное указание серий», программа просто запишет номер в документ, но не будет хранить остаток по этому номеру. Для полноценного учета состояний нам нужно использовать один из двух вариантов:
Рассмотрим порядок действий для настройки: перейдем в раздел НСИ и администрирование — Классификаторы номенклатуры — Политики учета серий. Создадим новую политику, где укажем тип «Учет остатков по сериям» и отметим все операции (приемка, отгрузка, внутреннее товародвижение).
В УТ 11 существует типовой разрез учета — Качество. По умолчанию он имеет три значения: Новый, Ограниченно годен и Негоден. Это самый «чистый» способ с точки зрения методологии 1С.
Проанализируем ситуацию: если ваших состояний (Ремонт, Диагностика) немного, можно использовать расширение конфигурации, чтобы добавить новые значения в перечисление ГрадацииКачества. Перевод терминала из одного состояния в другое (например, из «Новый» в «На диагностике») осуществляется документом «Порча товаров». Несмотря на пугающее название, этот документ просто фиксирует изменение качества товара на складе.
Преимущества метода:
Если мы хотим избежать доработок кода, рассмотрим вариант с разделением состояний по физическому или логическому местоположению. Создадим в справочнике Склады и магазины иерархию:
Перемещение между состояниями в данном случае — это обычный документ Перемещение товаров. Если же все оборудование находится в одном помещении, удобнее использовать Адресное хранение. В этом случае состояниями будут выступать Складские ячейки или Области хранения. Мы можем создать зону «РЕМОНТ» и зону «ГОТОВО». При сканировании серийного номера кладовщик просто перемещает товар из одной ячейки в другую документом Отбор (размещение) товаров.
Как справедливо отмечено в обсуждении, лучшая доработка — это отсутствие доработки. Посмотрим на объект Серии номенклатуры. Мы можем добавить к нему Дополнительный реквизит (через НСИ и администрирование — Дополнительные реквизиты и сведения). Назовем его «Текущее состояние» и сделаем его типом «Дополнительное значение» со списком: В ремонте, Новый, Утилизировать.
Это решение идеально подходит, если вам нужно передавать состояние терминала во внешнюю систему через API. Внешняя система запрашивает данные о серии и сразу видит значение доп. реквизита.
Однако помните: доп. реквизит в справочнике — это «статичное» поле. Оно не хранит историю. Если вам важно знать, когда именно терминал ушел в ремонт, этот метод нужно дополнить регистрацией событий. Для программистов это может выглядеть как запись в нетиповой регистр сведений:
// Пример фиксации смены состояния в кастомном регистре
Процедура ЗафиксироватьИзменениеСостояния(Серия, НовоеСостояние)
Запись = РегистрыСведений.ИсторияСостоянийОборудования.СоздатьМенеджерЗаписи();
Запись.Период = ТекущаяДата();
Запись.Серия = Серия;
Запись.Состояние = НовоеСостояние;
Запись.Записать();
КонецПроцедуры
Поскольку терминалы передаются клиентам, важно правильно оформить этот этап. В УТ 11 для этого лучше всего подходит механизм «Передача в эксплуатацию» или «Передача на комиссию» (если юридически это подходит под ваш договор).
Разберем типичный цикл жизни терминала в системе:
Серию с номером производителя.Возврат товаров от клиента. В этот момент мы можем сразу указать склад «Диагностика» или качество «Ограниченно годен», чтобы терминал не попал в свободную продажу как новый.Порча товаров (если используем механизм качества) или Перемещение (если используем склады).Для передачи данных во внешнюю систему (например, в личный кабинет клиента или систему мониторинга) наиболее стабильно использовать OData (Типовой интерфейс 1С). Если состояние реализовано через доп. реквизит серии, запрос будет выглядеть максимально просто. Система будет отдавать JSON с уникальным GUID серии и значением её реквизита «Состояние».
Рассмотрим преимущества каждого подхода еще раз. Если ваша приоритетная задача — складской порядок, выбирайте разделение по складам/ячейкам. Если же вам нужна детальная аналитика в отчетах по продажам и остаткам без изменения структуры складов — используйте механизм качества. Комбинация этих методов с использованием серий позволит вам построить прозрачную систему учета дорогостоящего оборудования.