![]() |
КонецПроцедурыDate: 2014-03-11; view: 460. КонецПроцедуры КонецПроцедуры
Тепер нам потрібно зробити так, щоб в табличному полі «Властивості» відображалися записи регістру відомостей, що стосуються тільки вибраного у верхньому табличному полі елемента довідника «ВаріантиНоменклатури». Тому для табличного поля «Варіанти» створимо обробник події «При активації рядка»: Процедура ВаріантиПриАктивизацииСтроки(Элемент) // Вставити вміст обробника. ЭлементыФормы.Властивості.Значение.Отбор.НабірВластивостей. Установить(Элемент.ТекущиеДанные.Ссылка,Истина);
Крім того, щоб не відображати весь регістр при відкритті форми, створимо обробник події форми «При відкритті», який містить такий текст: Процедура ПриОткрытии(Отказ, СтандартнаяОбработка) // Вставити вміст обробника. ЭлементыФормы.Властивості.Значение.Отбор.НабірВластивостей.Установить(,Истина);
Доопрацювання довідника ВаріантиНоменклатури Тепер займемося доопрацюванням довідника «ВаріантиНоменклатури» так, щоб користувач мав змогу створювати нові властивості матеріалів не тільки при редагуванні самого матеріалу, але і в процесі вводу документів, коли в табличну частину підбирається набір властивостей. Тому для довідника «ВластивостіНоменклатури» вкажемо, що він буде редагіватися обома способами – і в списку, і в діалозі, і створимо за допомогою конструктора основну форму елемента (рисунок 19) Рисунок 19 Ддопрацювання форми елемента довідника «ВаріантиНоменклатури» зведеться до більш-менш тих самих дій, що й при доопрацюванні довідника «Номенклатура». В формі нам потрібно буде розмістити табличне поле, яке повинне відображати існуючі в регістрі відомостей записи про значення властивостей для цього елемента довідника. Відкриємо основну форму елемента довідника «ВаріантиНоменклатури» і збільшимо її розміри На звільненому місці помістимо табличне поле з іменем «Властивості», типом РегистрСведенийСписок.ЗначенняВластивостейНоменклатури і з командною панеллю. Для колонки «Набір властивостей» знімемо прапорець видимості (рисунок 20) Рисунок 20 Потім для поля введення, розміщеного в колонці «Значення» задамо зв’язок по типу ЭлементыФормы.Властивості.ТекущиеДанные.ВидВластивості. Для поля введення, розміщеного в колонці «ВидВластивості» створимо обробник події «При зміні». Процедура ВластивостіВидВластивостіПриИзменении(Элемент) // Вставити вміст обробника. ДаніВидВластивості=ЭлементыФормы.Властивості.ТекущиеДанные.ВидВластивості; ЭлементыФормы.Властивості.ТекущиеДанные.Значення=ДаніВидВластивості.ТипЗначения. ПривестиЗначение(ЭлементыФормы.Властивості.ТекущиеДанные.Значення); КонецПроцедуры
Тепер необхідно зробити так, щоб при відкритті форми встановлювався потрібний нам відбір, а також, у випадку, якщо ми додажмо новий елемент довідника, щоб відбір встановлювався і після того, як єлемент буде записаний. Для цього ми скористаємося можливістю призначення обробника події зміни даних, який буде відсліковувати зміну посилання на редагований елемент довідника. Насамперед створимо обробник події «ПриИзмененииСсылки», в якому встановимо потрібний нам відбір (увага: шаблона цієї події у списку властивостей форми немає, процедуру ввести повністю за текстом) Процедура ПриИзмененииСсылки(ПутьКДанным) Властивості.Отбор.НабірВластивостей.Установить(Ссылка,Истина) КонецПроцедуры
Потім в тіло модуля (можна безпосередньо після попередньої процедури) додамо виклик цього обробника. ПодключитьОбработчикИзмененияДанных("СправочникОбъект.Ссылка", "ПриИзмененииСсылки");
І, на завершення, потрібно передбачити можливість того, що користувач може почати задавати нові значення властивостей, не записавши ще сам елемент довідника «НабориВластивостей». Тому створимо обробник події табличного поля «Перед початком додавання». Процедура ВластивостіПередНачаломДобавления(Элемент, Отказ, Копирование) // Вставити вміст обробника. Если ЭтоНовый() Тогда Записать(); КонецЕсли;
|