Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПИС.-All in one =). 1С.doc
Скачиваний:
34
Добавлен:
13.11.2018
Размер:
9.75 Mб
Скачать

3.14.3. Доработка справочника Варианты номенклатуры

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

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

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

Рис. 195. Основная форма элемента справочника ВариантыНоменклатуры

Затем для поля ввода, расположенного в колонке Значение, задайте связь по типу ЭлементыФормы.Свойства.ТекущиеДанные.ВидСвойства.

Для поля ввода, расположенного в колонке ВидСвойства, создайте обработчик события ПриИзменении:

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

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

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

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

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

КонецЕсли;

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

В модуле формы создайте обработчик события ПриИзмененииСсылки, в котором установите требуемый отбор:

Процедура ПриИзмененииСсылки(ПутьКДанным)

Свойства.Отбор.НаборСвойств.Установить(Ссылка, Истина);

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

Затем в тело модуля формы добавьте вызов этого обработчика:

ПодключитьОбработчикИзмененияДанных("СправочникОбъект.Ссылка", "ПриИзмененииСсылки");

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

Поэтому создайте обработчик события табличного поля ПередНачаломДобавления:

Процедура СвойстваПередНачаломДобавления(Элемент, Отказ, Копирование)

Если ЭтоНовый() Тогда

Записать();

КонецЕсли;

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

3.14.4. Доработка регистра накопления ОстаткиМатериалов

Чтобы обеспечить учет материалов по значениям характеристик, необходимо изменить структуру регистра накопления ОстаткиМатериалов и добавить в него новое измерение НаборСвойств с типом СправочникСсылка.ВариантыНоменклатуры (рис. 196).

Рис. 196. Новое измерение НаборСвойств

3.14.5. Доработка документа ПриходнаяНакладная

Для того чтобы при приходовании товаров пользователь мог указывать набор свойств для каждого приходуемого материала, добавьте в табличную часть документа новый реквизит НаборСвойств с типом СправочникСсылка.ВариантыНоменклатуры (рис. 197).

Рис. 197. Новый реквизит НаборСвойств

После этого расположите этот реквизит в табличном поле формы документа (правая кнопка мыши – Размещение данных), после реквизита Материал, рис. 198.

Рис. 198. Редактирование формы документа ПриходнаяНакладная

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

В заключение откройте процедуру обработки проведения в модуле документа и добавьте к формируемым движениям присвоение значения измерению НаборСвойств:

Движение.Материал = ТекСтрокаМатериалы.Материал;

Движение.НаборСвойств = ТекСтрокаМатериалы.НаборСвойств;

Движение.Склад = Склад;