Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
457
Добавлен:
19.03.2016
Размер:
3.91 Mб
Скачать

6.4. Ввод на основании

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

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

6.5. Типы данных. Типообразующие объекты конфигурации

В предыдущей лабораторной работе когда мы создавали реквизиты справочников или табличных частей мы всегда указывали тип значения, которое может принимать этот реквизит. Это были примитивные типы данных: Число, Строка, Дата и Булево. Примитивные типы данных изначально определены в системе, и их набор ограничен.

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

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

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

Например, после создания нового справочника Номенклатура становятся доступны следующие типы данных:

  • СправочникМенеджер.Номенклатура,

  • СправочникСсылка.Номенклатура,

  • СправочникОбъект.Номенклатура.

  • СправочникВыборка. Номенклатура.

6.6. Заполнение реквизитов

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

Рис.6.3

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

Рис.6.4

6.7. Расчет суммы в строках документа

Можно создавать собственные формы объектов, списков и т. д. Для этого в окне редактирования объекта (например, документа ПриходнаяНакладная) на закладке Формы надо добавить новую форму, например Форму документа. В появившемся окне конструктора формы нажать кнопку Готово, если мы соглашаемся с тем, что нам предложила система (рис. 6.5).

Рис.6.5

На экране откроется окно редактора форм документа (рис. 6.6).

Рис.6.6

У каждого элемента формы, например у элемента МатериалыКоличество можно открыть палитру свойств и в нижней её части увидеть перечень событий. Нам нужно событие ПриИзменении, которое возникает после изменения значения поля. Найдем его в списке событий и нажмем кнопку открытия (рис.6.6).

Рис.6.6

Согласимся с созданием обработчика событий на клиенте.

Система создаст шаблон процедуры обработчика этого события в модуле формы документа. В эту процедуру добавим строки, как показано на рис. 6.7.

Рис. 6.7

В первой строке создается переменная СТЧ (строка табличной части), в которую будет помещен объект, содержащий данные строки. В модуле формы доступны все свойства и методы объекта УправляемаяФорма. Одним из этих свойств является свойство Элементы, которое содержит коллекцию всех элементов управляемой формы для прямого доступа. Одним из элементов формы является табличная часть Материалы. Свойство табличной части ТекущиеДанные предоставляет доступ к данным текущей строки. Во второй строке вычисляется значение колонки Сумма как произведение значений колонок Количество и Цена.

Такой пересчет суммы необходимо делать не только в этом документе, но и других документах, причем сумма должна пересчитываться не только при изменении количества, но и при изменении цены. Для этой цели можно создать Общий модуль РаботаСДокументами (рис. 6.8). Флажок Клиент (управляемое приложение) должен быть установлен, а флажок Сервер – снят.

Рис. 6.8

В этом модуле создать процедуру (рис.6.9)

Рис. 6.9

Здесь ПАРАМ является входным и выходным параметром этой процедуры. Ключевое слово Экспорт указывает на то, что эта процедура доступна в других модулях. В частности, она может быть вызвана в модуле формы (рис. 6.10).

Рис.6.10