Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
План видов характеристик.doc
Скачиваний:
3
Добавлен:
09.11.2019
Размер:
497.66 Кб
Скачать

Доработка справочника Номенклатура

Прежде всего, в справочнике Номенклатура нам нужно обеспечить возможность редактирования варианта материала. Для этого укажем, что справочник Номенклатура будет редактироваться теперь обоими способами (на закладке Форма) – в списке и в диалоге, и создадим основную форму элемента при помощи конструктора. Немного раздвинем форму по ширине и высоте и добавим в нее панель (Форма  Вставить элемент управления  Панель) – (рис. 4).

Рис. 4. Редактирование формы элемента справочника Номенклатура

После того, как мы слегка изменим положение любой из границ панели, появится вопрос (рис. 5).

Рис. 5. Редактирование формы элемента справочника Номенклатура

На этот вопрос мы ответим утвердительно, и все элементы управления переместятся в добавленную панель (рис.6).

Рис. 6. Редактирование формы элемента справочника Номенклатура

Теперь мы скорректируем размеры панели и добавим в нее новую страницу (рис. 7, добавление страницы: контекстное меню правой кнопки мыши на поле формы – Добавить страницу…).

Рис. 7. Редактирование формы элемента справочника Номенклатура

Зададим имя и заголовок новой страницы – Свойства, а первую страницу также переименуем в Основные и зададим ей такой же заголовок (группа свойств Текущая страница в палитре свойств формы – рис.8).

Рис. 8. Редактирование формы элемента справочника Номенклатура

После этого выделим все элементы управления, расположенные в панели на странице Основные, и выполним команду Форма  Центрирование  Центрировать по вертикали (рис. 9).

Рис. 9. Редактирование формы элемента справочника Номенклатура

Теперь перейдем на страницу Свойства и добавим надпись (Форма → Вставить элемент управления → Надпись), зададим ей имя: НадписьВариантыНоменклатуры с заголовком Варианты номенклатуры:. Укажем для нее начертание шрифта Жирный (рис. 7.10).

Рис. 10. Редактирование формы элемента справочника Номенклатура

Под этой надписью расположим табличное поле с командной панелью с именем Варианты и типом СправочникСписок.ВариантыНоменклатуры. Из табличного поля удалим колонку Код. Для этого табличного поля установим свойство Связь по владельцу – СправочникОбъект.Ссылка (рис. 11).

Рис. 11. Редактирование формы элемента справочника Номенклатура

Установка этого свойства обеспечивает нам следующее: для источника данных этого поля – реквизита формы Варианты, имеющего тип СправочникСписок.ВариантыНоменклатуры, – значение отбора по владельцу всегда будет равно ссылке на редактируемый элемент справочника Номенклатура. Иными словами, список справочника, содержащийся в реквизите формы НаборСвойств, всегда будет содержать только элементы, подчиненные редактируемому элементу справочника Номенклатура. А значит, и табличное поле Варианты, для которого этот реквизит является источником данных, будет отображать только элементы, подчиненные редактируемому элементу справочника Номенклатура.

Ниже поместим аналогичным образом еще одну надпись – НадписьЗначенияСвойств с заголовком Значения свойств: и начертанием шрифта Жирный (рис. 12).

Рис.12. Редактирование формы элемента справочника Номенклатура

Под ней расположим табличное поле с командной панелью с именем Свойства и типом РегистрСведенийСписок.ЗначенияСвойствНоменклатуры. Для колонки НаборСвойств снимем флаг Видимость, а для поля ввода в колонке Значение установим связь по типу – ЭлементыФормы.Свойства.ТекущиеДанные.ВидСвойства (рис.13).

Рис. 13. Редактирование формы элемента справочника Номенклатура

Связь по типу будет обеспечивать нам ограничение типа значений, вводимых в это поле ввода, только типом характеристики, выбранной в поле Вид свойства. Однако этим мы никак не можем повлиять на само значение, хранимое в этом поле. Если не предпринять никаких дополнительных действий, то при введении в поле Значение какого-либо значения поменять его на значение другого вида характеристики не удастся. При выборе другого вида характеристики будет возникать несоответствие между типом хранимого значения и типом, которым ограничен ввод в элементе управления. В этом случае, естественно, система будет предлагать вводить тот тип, который имеет хранимое значение.

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

Поэтому для поля ввода в колонке Вид свойства создадим обработчик события При изменении (листинг 1).

Листинг 1. Процедура СвойстваВидСвойстваПриИзменении()

Процедура СвойстваВидСвойстваПриИзменении(Элемент)

ДанныеВидСвойства = ЭлементыФормы.Свойства.ТекущиеДанные.ВидСвойства;

Если ДанныеВидСвойства.ТипЗначения <> Неопределено Тогда

ЭлементыФормы.Свойства.ТекущиеДанные.Значение = ДанныеВидСвойства.ТипЗначения.ПривестиЗначение(ЭлементыФормы.Свойства.ТекущиеДанные.Значение);

КонецЕсли;

КонецПроцедуры

Теперь нам нужно сделать так, чтобы в табличном поле Свойства отображались записи регистра сведений, относящиеся только к выбранному в верхнем табличном поле элементу справочника ВариантыНоменклатуры.

Поэтому для табличного поля Варианты создадим обработчик события При активизации строки (листинг 2).

Листинг 2. Процедура ВариантыПриАктивизацииСтроки()

Процедура ВариантыПриАктивизацииСтроки(Элемент)

ЭлементыФормы.Свойства.Значение.Отбор.НаборСвойств.Установить(Элемент.ТекущиеДанные.Ссылка, Истина);

КонецПроцедуры

Кроме этого, чтобы не отображать весь регистр при открытии формы, создадим обработчик события формы ПриОткрытии (чтобы открыть свойства формы, два раза мышкой кликните по заголовку справочника «Номенклатура»), содержащий следующий текст (листинг 3).

Листинг 3. Процедура ПриОткрытии()

Процедура ПриОткрытии()

ЭлементыФормы.Свойства.Значение.Отбор.НаборСвойств.Установить( , Истина);

КонецПроцедуры