Основные объекты: Планы видов характеристик. Часть 2. Подготовка конфигурации для использования плана видов характеристик
Если мы перейдем сейчас в пользовательский режим и попытаемся в регистре сведений “ЗначениеСвойствОбъектов” ввести различные цвета для билетов на Провал, то это у нас не получится.
Появится сообщение о существовании записи с данными ключевыми полями:
И это понятно. Если мы еще раз рассмотрим структуру регистра сведений “ЗначениеСвойствОбъектов”, то мы увидим, что в данном регистре определены два измерения (“Объект” и “Свойство”), которым должно соответствовать одно и только одно значение ресурса “Значение свойства”. Поэтому нам не удается ввести несколько различных цветов (измерение “Свойство”) для билетов на Провал (измерение “Объект”).
Чтобы преодолеть это ограничение, нам понадобится еще один дополнительный справочник “ВариантыНоменклатуры”, в котором будут размещаться варианты (модели) номенклатуры, имеющие различные свойства. Эти варианты могут различаться номерами, условными обозначениями и т.д.
Справочник “ВариантыНоменклатуры” должен быть подчинен справочнику “Номенклатура” (вкладка “Владельцы”).
Кроме того, будет изменен справочник “Номенклатура”, на одной из страниц которого будут размещены варианты номенклатуры и их свойства (при подготовке данного раздела были использованы материалы книги М.Г. Радченко “Практическое пособие разработчика”).
Итак, создадим новый справочник с наименованием “ВариантыНоменклатуры”, подчиненный справочнику “Номенклатура” (подчинение указывается на вкладке “Владельцы” справочника “ВариантыНоменклатуры”). Настроим форму списка с обязательным указанием на ней колонки “Владелец”:
Для просмотра свойств товаров необходимо внести некоторые изменения в справочник “Номенклатура”.
Добавим в форму элемента справочника “Номенклатура” новую страницу (это можно сделать с помощью элемента управления “Панель” (эта кнопка находится на панели “Элементы управления” в нижней части экрана), а также с помощью главного меню (Форма – Вставить элемент управления – Панель).
После того, как мы изменим положение любой из границ панели, появится вопрос:
Нажмем кнопку Да, и все элементы управления переместятся в добавленную панель.
Теперь можно скорректировать размеры панели и добавить на нее новую страницу (Контекстное меню правой кнопки мыши на поле формы – Добавить страницу...).
Существовавшую ранее страницу формы элемента назовем “Основная”, а новую страницу – “Свойства” (корректировка заголовка страницы производится так: Щелчок правой кнопкой мыши на заголовке страницы – Выбор опции “Свойства” – Изменение надписи в поле “Имя”):
Теперь перейдем на страницу “Свойства” и добавим надпись “НадписьВариантыНоменклатуры” с заголовком “Варианты номенклатуры:”. Укажем для нее начертание шрифта “Жирный”.
Под этой надписью расположим табличное поле () с именем “Варианты” и типом СправочникСписок.ВариантыНоменклатуры:
Добавим командную панель, пометим в ее свойствах флажок “Автозаполнение” и установим источник действий “Варианты”, тем самым связывая эту командную панель с табличным полем “Варианты”:
Из табличного поля удалим колонку “Код”:
Для табличного поля “Варианты” установим свойство “Связь по владельцу” – СправочникОбъект.Ссылка:
Свойство “Связь по владельцу” позволяет не только отображать в табличном поле соответствующие элементы подчиненного справочника, но и предоставляет возможность управлять этими элементами из табличного поля: удалять, изменять, модифицировать и т.д. В данном примере отбор из списка справочника “Варианты номенклатуры” всегда будет содержать только элементы, подчиненные редактируемому элементу справочника “Номенклатура”. А значит и табличное поле “Варианты” будет отображать только элементы, подчиненные редактируемому элементу справочника “Номенклатура”.
Ниже разместим аналогичным образом еще одну надпись “НадписьЗначенияСвойств” с заголовком “Значения свойств:” и начертанием шрифта “Жирный”.
Под ней расположим табличное поле с командной панелью с именем “Свойства” и типом РегистрСведенийСписок.ЗначенияСвойствНоменклатуры. Для колонки “Объект” снимем флаг “Видимость”:
Для поля ввода в колонке “Значение” установим связь по типу -ЭлементыФормы.Свойства.ТекущиеДанные.Свойство:
Связь по типу будет обеспечивать нам то, что тип значений, вводимых в это поле ввода, будет ограничен только типом характеристики, выбранной в поле “Свойство”.
Добавим командную панель, пометим в ее свойствах флажок “Автозаполнение” и установим источник действий “Свойства”, связав указанную командную панель с табличным полем “Свойства”.
В результате мы получим следующее:
Введем еще несколько изменений. Во-первых, сделаем так, чтобы при смене значения в поле “Свойство” значение поля “Значение” было приведено к типу характеристики, соответствующему выбору в поле “Свойство”.
Для этого создадим обработчик события “При изменении” для поля ввода в колонке “Свойство”:
Процедура СвойстваСвойствоПриИзменении(Элемент)
Во-вторых, необходимо сделать так, чтобы в табличном поле “Свойства” отображались записи регистра сведений, относящиеся только к выбранному в верхнем табличном поле элементу справочника “ВариантыНоменклатуры”. Для этого создадим обработчик события “При активизации строки” для табличного поля “Варианты”:
Процедура ВариантыПриАктивизацииСтроки(Элемент)
Проверим работу созданного механизма в пользовательском режиме 1С.
Сформируем данные плана видов характеристик “Свойства объектов” и подчиненного ему справочника “Значения свойств”:
Введем на вкладку “Свойства” формы элемента “Билет на Провал” несколько типов билетов и укажем их свойства:
Посмотрим регистр сведений “Значение свойств объектов”:
В этом регистре нашли отражение все введенные нами значения свойств.
Теперь создадим в конфигураторе новый справочник “Цвет” (без реквизитов и табличных частей). Добавим этот справочник в составной тип данных плана видов характеристик “Свойства объектов” в поле “Тип значения характеристик”:
Заполним этот справочник соответствующими значениями в пользовательском режиме:
Затем подключим новый справочник “Цвет” к плану видов характеристик “Свойства объектов”, изменив в этом плане видов характеристик тип значения характеристики “Цвет” со “Справочник ссылка: Значения свойств” на “Справочник ссылка: Цвет”:
Снова откроем форму элемента товара “Билет на Провал” в справочнике “Номенклатура” на вкладке “Свойства” и обновим выбор характеристики Цвет. После этого для выбора откроется список цветов из справочника “Цвет”:
Проверим, что в регистре сведений “Значение свойств объектов” нашли отражение все изменения значений свойств.
Упражнения: 1. В свойствах табличного поля “Варианты” очистите поле “Связь по владельцу”, убрав из него запись СправочникОбъект.Ссылка, и проверьте, как это отразилось на работе созданного механизма в пользовательском режиме. Опишите полученный результат.
2. Поочередно сделайте то же самое с полем “Связь по владельцу” табличного поля “Свойства”, а также отключите каждую из процедур “СвойстваСвойствоПриИзменении” и “ВариантыПриАктивизацииСтроки”. Опишите полученный результат.
3. Имеется следующая таблица “модификаций” слонов:
Объект \ Свойство |
Размер |
Цвет |
Пол |
Слон, мод. 01/01/01 |
Большой |
Серый |
Самец |
Слон, мод. 01/01/02 |
Большой |
Серый |
Самка |
Слон, мод. 01/02/01 |
Большой |
Белый |
Самец |
Слон, мод. 01/02/02 |
Большой |
Белый |
Самка |
Слон, мод. 01/03/01 |
Большой |
Розовый |
Самец |
Слон, мод. 01/03/02 |
Большой |
Розовый |
Самка |
Слон, мод. 02/01/01 |
Средний |
Серый |
Самец |
Слон, мод. 02/01/02 |
Средний |
Серый |
Самка |
Слон, мод. 02/02/01 |
Средний |
Белый |
Самец |
Слон, мод. 02/02/02 |
Средний |
Белый |
Самка |
Слон, мод. 02/03/01 |
Средний |
Розовый |
Самец |
Слон, мод. 02/03/02 |
Средний |
Розовый |
Самка |
Слон, мод. 03/01/01 |
Маленький |
Серый |
Самец |
Слон, мод. 03/01/02 |
Маленький |
Серый |
Самка |
Слон, мод. 03/02/01 |
Маленький |
Белый |
Самец |
Слон, мод. 03/02/02 |
Маленький |
Белый |
Самка |
Слон, мод. 03/03/01 |
Маленький |
Розовый |
Самец |
Слон, мод. 03/03/02 |
Маленький |
Розовый |
Самка |
Введите эти данные в информационную базу, используя для добавления свойства “Размер” план видов характеристик “Свойства объектов” и справочник “Значения свойств”.