На склад нашего предприятия поступают разные товары и каждая группа товаров, имеет различные характеристики, например телевизоры характеризуются диагональю, разрешением экрана, а чайники мощностью и материалом колбы. Все товары хранятся в справочнике Номенклатура. На этапе разработки невозможно предусмотреть все характеристики, которые могу понадобится пользователю. Для реализации возможности добавления нужной характеристики понадобится план видов характеристик (ПВХ).
План видов характеристик можно представить как справочник с элементами разного типа. Осталось лишь правильно сконфигурировать этот объект.
Для решения поставленной задачи создадим объект справочник «Номенклатура», план видов характеристик «ДополнительныеСвойстваНоменклатуры».
В справочнике «Номенклатура» будет хранится сама номенклатура, например, чайник или телевизор. В плане видов характеристик хранятся сами характеристики, например, диагональ, материал или мощность.
На первый взгляд все понятно. Интуективно хочется в свойства ПВХ «Тип значения характеристик» или в «Дополнительные значения характеристик» добавить справочник «Номенклатура», но не все так просто. Вернемся к определению ПВХ – хранить характеристики, они могут быть разного типа, например, диагональ и мощность – число, а материал – это строка (почему это не строка разберем дальше).
Раскроем «Тип значения характеристик». Укажем что наши характеристики могут иметь тип «Число», «Строка», «Дата» и «Булево». Вернемся к нашему свойству «Материал». Да, данное свойство может быть строкой, то тогда в базе возникает вероятность дублирования. Один пользователь напишет «Материал», другой «материал», но это не главное. Главное это то, что это будут совершенно разные элементы. Поэтому необходимо ввести объект, который будет являться отдельным типом. Таким объектом будет справочник «СвойстваНомеклатуры», который будет содержать все значения свойств материала (пластик, металл, стекло).
Создадим такой справочник, теперь состав типа значения характеристик выглядит следующим образом
Продолжим развитие нашего учета и ПВХ. Пусть необходимо хранить не только значения свойства «Материал» но и свойства «Цвет». Делая вывод из ранее сказанного необходимо создать еще один справочник и назвать его «СвойстваНомеклатурыЦвет», но это решение не подходит, так как разработчик не может знать заранее всех свойств номеклатуры. Для решения этой задачи воспользуемся свойством ПВХ «Дополнительные значения характеристик». Это свойство позволит через владельца элемента справочника «СвойстваНомеклатуры» указать какие значения есть у данного свойства.
Перейдем в справочник «СвойстваНомеклатуры» и укажем владельца – ПВХ «ДополнительныеСвойстваНоменклатуры». После этого в свойстве ПВХ «Дополнительные значения характеристик» для выбора будет доступен справочник «СвойстваНомеклатуры», выберем его.
Обновим конфигурацию и запустимся в режиме отладки. Заполним справочник «Номенклатура» значениями Чайник и Телевизор.
Перейдем в ПВХ «ДополнительныеСвойстваНоменклатуры» и создадим свойство Материал с типом значений «Свойства номенклатуры», Цвет с типом значений «Свойства номенклатуры», Мощность с типом значений «Число», Диагональ с типом значений «Число».
Структура ПВХ позволяет пользователю создавать «реквизиты справочника», самостоятельно определяя как реквизит называется и какой у реквизита тип.
На данном этапе в нашей конфигурации можно создавать различные свойства номенклатуры, а так же значения этих свойств. Далее определим принадлежность свойств и значений свойств к номенклатуре.
Для выполнения этой задачи потребуется регистр сведений. Создадим регистр сведений «ЗначенияСвойствНомеклатуры». Установим свойства Периодичность: «Непереодический», Режим записи «Независымый». Такие свойства исключают дублирование свойств номеклатуры и позволяют вносить изменения без регистратора.
В регистре будем вести учет по 2 измерениям:
«Номенклатура» с типом СправочникСсылка.Номенклатура
«Свойство» с типом ПланВидовХарактеристикСсылка.ДополнительныеСвойстваНомеклатуры
по значению:
«Значение» с типом Характеристика.ДополнительныеСвойстваНомеклатуры
Рисунок 6.7
В палитре свойств измерения «Номеклатура» установим свойство «Ведущее». Установка данного свойства означает «бессмысленность» записи если данное измерение не заполнено, такая запись будет удалена. Также данное свойство повлияет на внешний вид формы элемента справочника «Номеклатура». Обновим конфигурацию, запустим отладку, перейдем в справочник «Номеклатура». Откроем элемент «Чайник».
В форме элемента появилась команда «Значения свойств номенклатуры». Если такой команды не появилось выполните слудующее:
- Проверте установку свойства «Ведущее» в измерении «Номеклатура» регистра сведений «ЗначенияСвойствНомеклатуры»
- Откройте палитру свойств регистра сведений и переустановите свойство «Использовать стандартные команды»
- Перейдите в форму элемента справочника «Номеклатура» и установите видимость команды «Значения свойств номенклатуры»
Вернемся в пользователький режим и перейдем по команде «Значения свойств номенклатуры». Теперь можем добавить свойства для чайника.
При попытке задать значение для свойства «Материал» откроется диалоговое окно выбора типа данных. Ранее при заполнении ПВХ «ДополнительныеСвойстваНомеклатуры» было явно указано, что свойство «Материал» имеет тип «Свойство номеклатуры», так почему платформа вновь требует указать тип? Дело в том, что сейчас используется регистром сведений «ЗначенияСвойствНомеклатуры», а настроен он не до конца. Перейдем в режим конфигуратора, откроем палитру свойств ресурса «Значение», изменим свойство «Связи параметра выбора». Так же устанавливаем свойство «Связь по типу» в значение «Свойство».
Перейдем в режим пользователя, вновь попробуем добавить свойства номеклатуре.
Теперь без проблем можем добавить любые свойства для номеклатуры.
Конечно, это упрощенный вариант работы с планом видов характеристик, однако, данный пример показывает механизм работы с объектом конфигурации.
#Программирование 1с #1c предприятие #r71 #1с разработчик #worldskills russia #ДЭ 1С #программирование с нуля #демонстрационный экзамен 1с