При проектировании новых подсистем в 1С разработчики часто сталкиваются с проблемой выбора наименований для объектов метаданных. Некорректно выбранное имя может запутать пользователей или привести к понятийным конфликтам при дальнейшем развитии конфигурации. Рассмотрим, как правильно назвать справочник или сущность, хранящую физические места размещения оборудования у клиентов (магазины, офисы, цеха, сервисные площадки), и какие архитектурные варианты реализации существующего функционала наиболее предпочтительны.
На первый взгляд название СкладыКонтрагентов кажется логичным, но на практике оно вызывает ряд существенных проблем:
Проанализируем варианты наименований, которые будут понятны пользователям и соответствуют предметной области сервисного обслуживания и учета оборудования:
ТочкиОбслуживания — лаконичный и универсальный вариант. Отлично подходит для конфигураций, ориентированных на ремонтные службы, выездной сервис и регулярное техническое обслуживание.ОбъектыОбслуживания / ОбъектыЭксплуатации — стандартный термин, принятый в ERP-системах и решениях класса ТОИР (управление ремонтами). Четко отражает суть физического объекта или площадки, где эксплуатируется техника.МестаРазмещенияОборудования / МестонахождениеОборудования — наглядное наименование, прямо указывающее на физическую дислокацию техники на объекте клиента.ПлощадкиКонтрагентов — удачный бизнес-термин для обозначения территорий, филиалов или подразделений заказчика.Помимо выбора наименования, важно определиться с архитектурой хранения данных в конфигурации. Разберем три основных способа реализации этой задачи.
В типовых конфигурациях 1С (ERP, КА, УТ) принята практика разделения партнеров и контрагентов. В такой архитектуре каждую физическую точку клиента (магазин, филиал, сервисный центр) можно заводить как подчиненный элемент справочника Партнеры, а юридические лица хранить в справочнике Контрагенты. Это позволяет привязывать оборудование напрямую к конкретному филиалу партнера.
Если место установки оборудования — это просто физический адрес, не требующий сложной иерархии и собственных реквизитов, не обязательно создавать отдельный справочник. Можно воспользоваться механизмами Библиотеки Стандартных Подсистем (БСП) и добавить к справочнику клиентов новый вид контактной информации с типом «Адрес». Это позволит использовать адресную систему ФИАС/ГАР и геокоординаты.
Если оборудование в процессе эксплуатации может перемещаться между объектами одного клиента или передаваться от одного контрагента другому, жесткая привязка точки размещения в карточке оборудования приведет к утере истории. В этом случае создадим периодический регистр сведений (например, ДислокацияОборудования или ИсторияРазмещенияОборудования).
Рассмотрим структуру такого регистра:
Оборудование (Ссылка на справочник оборудования).Контрагент, ТочкаОбслуживания (или ОбъектОбслуживания), ОтветственноеЛицо.Посмотрим на пример кода, фиксирующего перемещение оборудования на новую точку обслуживания:
ЗаписьРегистра = РегистрыСведений.ДислокацияОборудования.СоздатьМенеджерЗаписи();
ЗаписьРегистра.Период = ТекущаяДата();
ЗаписьРегистра.Оборудование = ВыбранноеОборудование;
ЗаписьРегистра.Контрагент = ВыбранныйКлиент;
ЗаписьРегистра.ТочкаОбслуживания = ВыбраннаяТочка;
ЗаписьРегистра.ОтветственноеЛицо = ОтветственныйМенеджер;
ЗаписьРегистра.Записать();
Для получения актуального места нахождения оборудования на любую дату выполним срез последних регистра сведений:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДислокацияСрезПоследних.Контрагент КАК Контрагент,
| ДислокацияСрезПоследних.ТочкаОбслуживания КАК ТочкаОбслуживания
|ИЗ
| РегистрСведений.ДислокацияОборудования.СрезПоследних(&Период, Оборудование = &Оборудование) КАК ДислокацияСрезПоследних";
Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("Оборудование", СсылкаНаОборудование);
Результат = Запрос.Выполнить();
При окончательном выборе названия объекта в конфигураторе соблюдаем стандарты разработки фирмы «1С»:
ТочкиОбслуживания, ОбъектыОбслуживания, ПлощадкиКонтрагентов.Точки обслуживания клиентов.ТочкаОбслуживания.Таким образом, для задачи учета оборудования наиболее удачным решением будет использование имени метаданных ТочкиОбслуживания или ОбъектыОбслуживания в сочетании с периодическим регистром сведений для хранения истории перемещений.