Как организовать учет установки и снятия картриджей в 1С и отобразить текущее состояние техники?

Программист 1С v8.3 (Управляемые формы) Управленческий учет IT и автоматизация бизнеса
← На главную

При автоматизации складского учета или учета внутреннего оборудования часто возникает задача отслеживания текущего состояния объектов, например, установленных в принтеры картриджей. Рассмотрим, как правильно спроектировать архитектуру такой системы и вывести для пользователей актуальный список установленных комплектующих.

Выбор регистра для учета состояния

Первый шаг к решению задачи — выбор правильного объекта Регистр. Хотя на первый взгляд кажется, что Регистр накопления (остатки) подходит идеально, на практике для отслеживания состояния «что установлено прямо сейчас» лучше использовать Регистр сведений. Рассмотрим почему:

Такой подход автоматически решает проблему дублирования данных. Если принтер может содержать только один картридж, использование Регистра сведений позволяет легко ограничить повторную установку на программном уровне.

Реализация контроля установки картриджей

Чтобы избежать ситуации, когда на один принтер устанавливается несколько картриджей одновременно, мы можем реализовать проверку в модуле набора записей регистра. Это гарантирует целостность данных:


Процедура ПередЗаписью(Отказ, Замещение)
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |    Регистр.Принтер
    |ИЗ
    |    РегистрСведений.УстановленныеКартриджи КАК Регистр
    |ГДЕ
    |    Регистр.Принтер = &Принтер";
    Запрос.УстановитьПараметр("Принтер", Принтер);
    Результат = Запрос.Выполнить();
    Если НЕ Результат.Пустой() Тогда
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю("На данном принтере уже установлен картридж!");
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры

Как вывести актуальный список установленных картриджей

Для создания формы, в которой отображаются только установленные на данный момент картриджи, мы можем воспользоваться механизмом Динамический список. Вместо обращения к основной таблице, используйте произвольный запрос:

  1. Откройте форму списка и перейдите в свойства Динамического списка.
  2. Установите свойство Произвольный запрос в значение Истина.
  3. В тексте запроса обращайтесь к вашему регистру, выбирая актуальные записи.

Если вы все же решили использовать Регистр накопления, запрос к виртуальной таблице Остатки будет выглядеть следующим образом:


ВЫБРАТЬ
    Остатки.Принтер КАК Принтер,
    Остатки.Картридж КАК Картридж
ИЗ
    РегистрНакопления.УчетКартриджей.Остатки(&Период, ) КАК Остатки
ГДЕ
    Остатки.КоличествоОстаток > 0

Это позволит пользователю видеть только те строки, которые имеют положительный остаток, то есть физически установленные на технике картриджи.

Удобство работы пользователей: АРМ или Отчет

Часто пользователи хотят не просто видеть список, но и совершать действия (например, снять картридж). Вместо поиска документов в общем журнале, рекомендуем следующие решения:

Таким образом, мы объединяем строгую структуру данных в регистре с удобным пользовательским интерфейсом, что минимизирует ошибки и упрощает ежедневную работу сотрудников.

← На главную