prosdo.ru
добавить свой файл
1
Доработка справочника Варианты номенклатуры


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

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

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

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



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

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

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

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

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

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

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

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


КонецЕсли;

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

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

Прежде всего, в модуле формы создадим обработчик события ПриИзмененииСсылки, в котором установим требуемый нам отбор (листинг 5).

Листинг 5. Процедура ПриИзмененииСсылки()

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

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

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

Затем в тело модуля формы добавим вызов этого обработчика (листинг 6).

Листинг 6. Вызов обработчика ПриИзмененииСсылки

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

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

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

Листинг 7. Процедура СвойстваПередНачаломДобавления()

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

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

Записать();

КонецЕсли;

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



Доработка регистра Остатки материалов

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




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

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

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



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

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



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

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

В заключение откроем процедуру обработки проведения (закладка Прочее → Модель объекта) в модуле документа и добавим к формируемым движениям присвоение значения измерению НаборСвойств (листинг 8).

Листинг 8. Процедура ОбработкаПроведения()

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

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

(вставить эту строку между верхней и нижней)

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

Теперь наконец-то запустим 1С:Предприятие в режиме отладки и создадим несколько наборов свойств для наших материалов. Как создать набор свойств см.ниже.

Создание наборов свойств

Откроем элемент справочника Номенклатура – Кабель электрический. Перейдем на закладку Свойства и создадим набор свойств этого элемента под названием Белый (рис. 18).

Он будет состоять их следующих характеристик (сначала создаем наименование, и в этом же окне добавляем к наименованию виды свойств):


  • Цвет – Белый,

  • Сечение, мм2 – 2,5.



Рис. 18. Элемент справочника Кабель электрический

Затем создадим набор свойств для элемента справочника Номенклатура – Шланг резиновый.

Этот набор свойств будет называться Польша и состоять из следующих характеристик (рис. 19):

• Цвет – Черный;

• Производитель – Fagumit.



Рис. 19. Элемент справочника Шланг резиновый

Теперь откроем документ Приходная накладная №2 и укажем, что был закуплен белый электрический кабель в количестве 2 шт. и польский резиновый шланг.

Затем скопируем первую строку документа и укажем, что был закуплен еще и черный электрический кабель в количестве 3 шт. (в процессе ввода нам придется создать еще один набор свойств для электрического кабеля – Черный, у которого Цвет - Черный и Сечение - 2,5), рис. 20.



Рис. 20. Документ Приходная накладная №2

Проведем документ и посмотрим на движения документа по регистру ОстаткиМатериалов (рис. 21).


Рис.21. Движения документа Приходнаянакладная №2 по регистру

Кроме этого посмотрим на записи, которые содержатся в регистре сведений ЗначенияСвойствНоменклатуры (рис. 22).



Рис. 22. Записи регистра сведений