Самостоятельная работа №5

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

3.6.3. Модуль объекта

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

В модуле объекта можно определить ряд обработчиков событий, исполняемых на сервере (контекст модуля объекта не доступен на клиенте).

Определим в данном модуле обработчик события «ПередЗаписью». Текст обработчика следующий:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

СуммаДокумента=Товары.Итог("Сумма");

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

3.6.4. Создание объектов копированием

Бывают ситуации, когда создать объект проще копированием, т.е. скопировать объект и «доработать» копию. Копировать объект можно используя кнопки работы с буфером обмена, используя команды контекстного меню или просто перетаскиванием объекта.

Создайте документ «ПродажаТоваров» путем копирования и изменения «ПоступленияТоваров». У создаваемого документа состав реквизитов шапки такой же, как и у исходного, но на одну табличную часть больше. Состав реквизитов табличной части «Услуги»:

· Номенклатура (тип <СправочникСсылка.Номенклатура>)

· Количество (тип <Число> длина 10, точность 0)

· Цена (тип < Число > длина 10, точность 2)

· Сумма (тип < Число > длина 10, точность 2)

Измените необходимые обработчики событий. Для реквизита «Номенклатура» табличной части «Услуги» настройте свойство «Параметры выбора».

Реализуйте возможность получения печатной формы документа.

3.7. Журналы документов

До этого момента для работы с уже выписанными документами использовались их формы списка. Эти формы списка не позволяли просматривать (в одном списке) документы разных видов. Если же в этом есть необходимость, то здесь могут помочь журналы.

Создайте журнал «СкладскиеДокументы». В нем должны регистрироваться документы «Поступление товаров» и «Продажа товаров»:

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

Создайте три графы:

· «Контрагент»,

· «Склад»,

· «СуммаДокумента».

Проверьте работу объекта на практике.

3.8. Регистры сведений

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

Регистры сведений, информация в которых развернута во времени, называют периодическими.

Регистр может характеризоваться выбранным режимом записи:

· Независимый

· Подчинение регистратору

При выборе режима «Подчинение регистратору» запись жестко подчиняется документу-регистратору. При другом режиме («Независимый») записи «подчиняются» так называемым «ведущим» измерениям. При проектировании регистра необходимо обращать внимание на порядок следования измерений.

3.8.1. Создание регистра сведений

Создайте справочник «Валюты», определите реквизит «НаименованиеПолное».

После этого создайте регистр сведений «КурсыВалют».

· У него определите одно измерение «Валюта» (ведущее, тип <СправочникСсылка.Валюта>)

· Ресурс «Курс» (тип <Число>), ресурс «Кратность» (тип <Число>).

После создания регистра в режиме «1С:Предприятие» попробуйте ввести записи с одинаковым периодом и валютой.

3.8.2. Форма списка регистра

Создадим форму списка регистра, она не будет основной формой. В свойствах основного реквизита формы изменим основную таблицу (на «РегистрСведений.КурсыВалют.СрезПоследних»).

Не забудьте эту форму отразить в интерфейсе.

3.8.3. Режим записи «Подчинение регистратору»

Создадим регистр сведений «ЦеныПоставщиков» (как на рисунке):

Измерения регистра:

· Контрагент (тип <СправочникСсылка.Контрагенты>)

· Номенклатура (тип <СправочникСсылка.Номенклатура>)

Ресурс:

· Цена (тип <число>)

Документ имеет режим записи «Подчинение регистратору», в соответствии с этим стала доступной закладке «Регистраторы». В качестве регистратора нужно отметить документ «Поступление товаров».

Штатные режимом записи данных в такой регистр является запись при проведении документа (настраивается в обработчике события документа «Обработка проведения»). Воспользуемся возможность создания этого обработчика с помощью конструктора.

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

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

В результате работы конструктора получится код следующего вида:

Процедура ОбработкаПроведения(Отказ, Режим)

Движения. ЦеныПоставщиков.Записывать = Истина;

Для Каждого ТекСтрокаТовары Из Товары Цикл

// регистр ЦеныПоставщиков

Движение = Движения.ЦеныПоставщиков.Добавить();

Движение.Период = Дата;

Движение.Контрагент = Контрагент;

Движение.Номенклатура = ТекСтрокаТовары.Номенклатура; Движение.Цена = ТекСтрокаТовары.Цена;

КонецЦикла;

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

3.9. Планы видов характеристик

Данный вид объекта имеет много схожих характеристик со справочником. Самое существенное его отличие (от справочника) в том, что для каждого элемента существует такое свойство как «Тип».

С помощью данного объекта попробуем для справочника «Номенклатура» реализовать механизм внесения любого количества свойств различных типов.

Следует отметить, что подобный механизм можно реализовать и через справочник, но в том случае если нужно контролировать типы свойств, наиболее просто его реализовать через план видов характеристик (в записи плана видов характеристик будет находиться, не только «наименование» свойства, но и его тип). Используя возможность хранения «типа свойства» можно реализовывать всевозможные механизмы контроля. Например, если указан для свойства «Фасовка» (элемент плана видов характеристик) тип «СправочникСсылка.ЕдиницыИзмерения», то в качестве значений для данного свойства можно выбрать только ссылку на элемент справочника «ЕдиницыИзмерения».

Начнем с того, что необходимо создать объект «СвойстваОбъектов» в ветви «Планы видов характеристик» дерева метаданных.

В типе значения характеристик выбираем типы, которые будут использоваться при определении вида характеристики (назовем свойство - характеристикой, свойство товара плюс проверочная информация о типе значения свойства - видом характеристики).

После создания плана видов характеристик необходимо определить справочник «ЗначенияСвойств» и подчинить его объекту «СвойстваОбъектов». Этот справочник также нужно отнести в перечень разрешенных для использования типов. После этого его нужно выбрать в свойство «Дополительные значения характеристик».

На закладке «Прочие» можно определить перечень предопределенных видов характеристик.

Для хранения информации о том: у какой номенклатуры, какое свойство есть, и в каком оно значении лучше использовать регистр сведений.

Создадим регистр сведений «СвойстваНоменклатуры» (независимый, не периодический, редактируется в диалоге)

Состав измерений:

· Объект (тип <СправочникСсылка.Номенклатура>)

· Свойство (тип <ПланВидовХарактеристикСсылка.СвойстваОбъектов>)

Ресурс:

· ЗначениеСвойства (тип <Характеристика.СвойстваОбъектов>)

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

Для решения этой части задачи необходимо у ресурса настроить свойство «Связи параметров выбора» (в соответствии с приведенным рисунком).

Проверьте созданный механизм на практике.

3.10. Функциональные опции

Функциональные опции позволяют разработчику описать возможности конфигурации, которые можно оперативно включать или выключать на этапе внедрения и/или в процессе работы системы.

Функциональные опции могут влиять как на пользовательский интерфейс, так и на алгоритмы обработки данных.

Проверим данную возможность на практике. Необходимо иметь возможность включения/отключения учета товаров в разрезе серий.

Свое значение функциональная опция будет хранить в константе «УчетПоСериям».

Создадим функциональную опцию как показано на рисунке (ветвь «Общие» дерева объектов конфигурации):


Следующим действием необходимо указать, какие объекты конфигурации относятся к созданной функциональной опции. Сделает это так как показано на рисунке:

Проверьте механизм на практике.

Следует отметить, что функциональные опции могут хранить свои значения не только в константах, но и в справочниках и регистрах сведений. Тогда для определения значения функциональной опции используются «Параметры функциональных опций».


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: