Студопедия
rus | ua | other

Home Random lecture






Теоретична частина


Date: 2014-03-11; view: 685.


Лабораторна робота №12

План видів характеристик

При виконанні цієї задачі ми створимо механізм, який дозволить користувачу довільним чином описувати матеріали і при потребі вести облік в розрізі всіх тих описів, які можуть бути задані користувачем.

Описувати матеріали користувач зможе так: для кожного матеріалу буде можливість створювати деякі довільні характеристики (колір, виробник та ін.). Потім при надходженні матеріалів можна буде задати конкретні значення характеристик, які нас цікавлять.

Оскільки зарані невідомо, якими саме характеристиками користувач захоче описати той чи інший матеріал, ми повинні надати йому деякий механізм, що дозволяє створювати будь-які характеристики і вказувати, який тип значень повинен бути у цих характеристик. Тоді при заданні значень певної характеристики користувач зможе вибирати значення строго у відповідності з вказаним типом.

Таку можливість описання характеристик забезпечує об’єкт конфігурації План видів характеристик.

Цей об’єкт є прикладним об’єктом і призначений для опису структури зберігання інформації про характеристики, створювані користувачем. По суті, План видів характеристик дуже нагадує довідник, однак має більш вузьку спеціалізацію: він зберігає, по суті, лише інформацію про те, якими видами характеристик може описуватися який-небудь об’єкт бази даних. Ця інформація складається з назви виду характеристики і її типу. Розробник і, що найважливіше, користувач, можуть задати в ньому будь-яку необхідну їм кількість видів характеристик.

Для того, щоб розробник міг задати певний «набір» можливих типів значень, які можуть приймати види характеристик, у даного об’єкту конфігурації існує властивість Тип значення характеристик. Ця властивість визначає складений тип даних, в який входять всі типи, що можуть бути потрібні при вказанні типу значень характеристики.

Крім того, може трапитися так, що користувачу буде недостатньо тих типів даних, які існують в конкретній системі (наприклад, він схоче вести облік в розрізі виробників, а довідник виробників в конфігурації відсутній). В цьому випадку він зможе скористатися деяким допоміжним довідником, який розробник створив зарані і вказав у якості властивості об’єкту конфігурації План видів характеристик – додаткові значення характеристик. Тоді користувач, створивши новий вид характеристики «Виробник», зможе створювати необхідні значення цього виду характеристики в довіднику додаткових значень характеристик. Варто відмітити, що цей довідник є підлеглим плану видів характеристик. Таким чином, якщо потім користувач захоче створити новий вид характеристик «Розмір» і його значення, він створюватиме їх в тому ж довіднику додаткових характеристик і вони не змішуватимуться зі значеннями виробника.

План видів характеристик не має внутрішніх напередвизначених механізмів прив’язки до того об’єкту, який повинен описувати цей вид характеристики. Він лише надає можливість розробнику і користувачу описати якийсь набір характеристик і задати їх тип. Як зберігати відповідність конкретного виду характеристик чи значення характеристик конкретному об’єкту бази даних – вирішує сам розробник залежно від створюваного прикладного розв’язку.

З точки зору реалізації приклад, який ми будемо розглядати надалі, є складнішим, ніж попередні, тому спочатку пояснимо логічний зв’язок між об’єктами, які використовуватимуться в ньому

Логічний зв’язок об’єктів

Для реалізації прикладу нам знадобляться три нові об’єкти конфігурації. Насамперед, це план видів характеристик, який зберігатиме види характеристик, якими в принципі можна описувати матеріали. Потім це довідник, підлеглий довіднику «Номенклатура», елементи якого будуть ідентифікувати партії матеріалів з деяким фіксованим набором значень характеристик. І третій об’єкт – це регістр відомостей, в якому і буде зберігатися відповідність конкретних значень характеристик певному варіанту матеріалу.

В результаті використання подібної логічної структури об’єктів ми одержуємо можливість описувати кожну партію матеріалу, що надходить, будь-яким числом видів характеристик, оскільки ця відповідність зберігатиметься в регістрі відомостей. І разом з тим одержимо можливість вести облік в розрізі видів характеристик, додавши в регістри накопичення ще один вимір для зберігання посилання на елемент довідника, підлеглого довіднику Номенклатура.

 


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

 


Реалізація розв’язку

Створення нових об’єктів конфігурації

Створимо об’єкт конфігурації Довідник з іменем ВаріантиНоменклатури і вкажемо, що він буде підлягати довіднику Номенклатура (рисунок 1).

 

Рисунок 1

Створимо ще один об’єкт конфігурації Довідник з іменем «ДодатковіВластивостіНоменклатури»

 

Рисунок 2


Після цього створимо об’єкт конфігурації План видів характеристик з іменем «ВластивостіНоменклатури». Тип значення характеристик встановимо такий:

§ Число, довжина 15, точність 3

§ Строка, довжина 25

§ Дата

§ Булево

§ СправочникСсылка.ДодатковіВластивостіНоменклатури

 

(Рисунок 3)

Рисунок 3

Довіднику «ДодатковіВластивостіНоменклатури» встановимо власника – план видів характеристик «ВластивостіНоменклатури».

Рисунок 4

Після цього визначимо, що додаткові значення характеристик плану виду характеристик будуть розміщуватися в довіднику «ДодатковіВластивостіНоменклатури».

 

Рисунок 5

 

На завершення створимо об’єкт конфігурації Регістр відомостей з іменем «ЗначенняВластивостейНоменклатури».

Виміри регістру:

§ «НабірВластивостей», ведучий, тип СправочникСсылка.ВаріантиНоменклатури;

§ «ВидВластивості», ПланВидовХарактеристикСсылка.ВластивостіНоменклатури

 

Ресурс регістру

§ «Значення», тип Характеристика.ВластивостіНоменклатури

Рисунок 6

Зверніть увагу, що ми маємо можливість визначати тип значення ресурсу регістру як Характеристика.<ім’я>. По суті, це означення являє собою складений тип даних, так, як він заданий в типі значення відповідного плану видів характеристик. Тобто ресурс регістру може мати значення будь-якого типу з тих, які описані в типі значення плану видів характеристик.

 


Доопрацювання довідника Номенклатури

Насамперед у довіднику «Номенклатура» нам треба забезпечити можливість редагування варіанту матеріалу. Для цього вкажемо, що довідник «Номенклатура» буде редагуватися тепер обома способами: в списку і в діалозі, і створимо основну форму елемента за допомогою конструкора.

Рисунок 7

Дещо збільшимо розміри форми і додамо до неї панель (Форма|Вставити елемент управління...|Панель). При цьому може з’явитися питання:

Рисунок 8

Відповімо на це питання ствердно і всі елементи управління перемістяться в додану панель.

Скоректуємо розміри панелі і додамо до неї нову сторінку (за домогою команди контекстного меню форми Додати сторінку…)

 

Задамо ім’я і заголовок нової сторінки – «Властивості», а першу сторінку перейменуємо в «Основні» і задамо їй такий сам заголовок (група властивостей «Поточна сторінка» в палітрі властивостей форми.

 

Рисунок 9

 

Після цього виділимо всі елементи управління, розміщені в панелі, і виконаємо команду Форма|Центрування|Центрувати по вертикалі.

Рисунок 10

В результаті одержимо:

Рисунок 11

Перейдемо на сторінку «Властивості» і додамо напис «НаписВаріантиНоменклатури» з заголовком «Варіанти номенклатури». Вкажемо для неї шрифт – жирний.

Рисунок 12

Під цим написом розмістимо табличне поле з командною панеллю з іменем «Варіанти» і типом СправочникСписок.ВаріантиНоменклатури.

Рисунок 13

 

Для табличного поля встановимо властивість «Зв’язок за власником» - СправочникОбъект.Ссылка.

Рисунок 14

Встановлення цієї властивості забезпечить нам те, що для джерела даних цього поля – реквізиту форми «Варіанти», що має тип СправочникСписок.ВаріантиНоменклатури, - значення відбору за власником завжди буде рівним посиланню на редагований елемент довідника «Номенклатура». Іншими словами, список довідника, що міститься в реквізиті форми «НабірВластивостей» завжди буде містити тільки елементи, підлеглі редагованому елементу довідника «Номенклатура». Отже, і табличне поле «Варіанти», для якого цей реквізит є джерелом даних, буде відображати лише елементи, підлеглі редагованому елементу довідника «Номенклатура».

З табличного поля видалимо колонку «Код».

 

Рисунок 15

Нижче розмістимо аналогічним способом ще один напис «НаписЗначенняВластивостей» з заголовком «Значення властивостей» і шрифтом жирний.

Рисунок 16

Під нею розмістимо табличне поле з командною панеллю з іменем «Властивості» і типом РегистрСведенийСписок.ЗначенняВластивостейНоменклатури.

Рисунок 17

Для колонки «НабірВластивостей» знімемо прапорець Видимість, а для поля введення в колонці «Значення» встановимо зв’язок за типом ЭлементыФормы.Властивості.ТекущиеДанные.ВидВластивості (рис. 18)

Рисунок 18

Зв’язок за типом забезпечуватиме нам те, що тип значень, які вводяться в це поле введення, буде обмежений тільки типом характеристики, вибраної в полі «Вид властивості». Однак цим ми не можемо вплинути на саме значення, яке зберігається в цьому полі. Якщо не виконати деяких додаткових дій, трапиться так, що у випадку, коли в поле «Значення» було введене якесь значення, поміняти його на значення іншого виду характеристики не вдасться. При виборі іншого типу характеристики буде виникати невідповідність між типом збереженого значення і типом, яким обмежений ввід в елементі управління. В цьому випадку система буде пропонувати вводити той тип, який має збережене значення.

Щоб уникнути такої ситуації, нам потрібно буде при зміні значення в полі «Вид властивості» привести значення поля «Значення» до типу характеристики, вибраної в полі «Вид властивості». Тому для поля введення в колонці «Вид властивості» створимо обробник події «При зміні»

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

// Вставити вміст обробника.

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

ЭлементыФормы.Властивості.ТекущиеДанные.Значення=ДаніВидВластивості.ТипЗначения.

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


<== previous lecture | next lecture ==>
Теоретична частина | КонецПроцедуры
lektsiopedia.org - 2013 год. | Page generation: 0.147 s.