Обработчики событий формы документа
ЛАБОРАТОРНАЯ РАБОТА 10
ДОКУМЕНТЫ
Документ – одно из основных понятий системы «1С:Предприятие». При помощи документов организуется ввод в систему информации о совершаемых хозяйственных операциях.
В большинстве своем документы, которые создаются в процессе настройки конфигурации, являются электронными аналогами стандартных бумажных документов, однако, использование этого типа данных может выходить далеко за рамки простой фиксации информации о хозяйственных операциях.
Дата и время – наиболее важные характеристики документов, так как позволяют устанавливать временную последовательность совершения операций. У документа может быть любое количество табличных частей.
Общий порядок работы при определении к конфигурации новых документов имеет много общего с определением справочников.
Разве что у конструктора документов несколько иной состав страниц. Сразу же оговоримся, на данном этапе (назовем это «знакомство с документом») рассматривать назначение свойств, определенных на странице «Движения» не будем. К ним вернемся при изучении регистров сведений.
Документ ПоступлениеТоваров
Перед созданием документа осуществите добавление в справочник Номенклатура реквизитов:
- ЦенаПокупки, тип – Число, длина 15, точность 2, неотрицательное
- ЦенаПродажи, тип – Число, длина 15, точность 2, неотрицательное
Разместите реквизиты на форму элемента справочника Номенклатура.
В рамках нашей задачи создадим документ ПоступлениеТоваров. Он будет являться электронным аналогом расходной накладной поставщика.
Реквизиты (определяются на странице «Данные» конструктора)
· «ВидОперации» (тип «ПеречислениеСсылка.ВидыПоступления»)
· «Контрагент» (тип «СправочникСсылка.Контрагенты»)
· «Договор» (тип «СправочникСсылка.ДоговораВзаиморасчетов»)
· «Сотрудник» ((тип «СправочникСсылка.Сотрудники»)
· «СуммаДокумента» (тип «Число» длина 15, точность 2, неотрицательное)
Табличная часть
Товары
· Номенклатура (тип «СправочникСсылка.Номенклатура»)
· ЕдиницаИзмерения (тип «СправочникСсылка.ЕдиницыИзмерения»)
· Цена (тип «Число» длина 15, точность 2, неотрицательное)
· Количество (тип «Число» длина 15, точность 3, неотрицательное)
· Сумма (тип «Число» длина 15, точность 2, неотрицательное)
На закладке движения в свойство «Проведение» оставим значение «Разрешить» (хотя проведение документов будем рассматривать позже).
Перейдем к закладке «Формы». Определите форму документа.
Форма документа
Создайте форму документа с помощью конструктора.
Обратите внимание, что для командной панели, размещенной над табличной частью в свойствах размещенной панели управления указано следующее:
Установка свойства «Источник действий» в «Товары» определяет то, что данная командная панель будет управлять элементом управления «Товары» (это табличное поле связанное с табличной частью документа «Товары»). После этого необходимо отметить флаг «Автозаполнение». По выполнению данного действия панель управления заполниться кнопками, определяемые программным комплексом по умолчанию для работы с табличными частями.
3. В документе есть два реквизита: «Контрагент» (тип «СправочникСсылка .Контрагенты») и «Договор» (тип «СправочникСсылка.Договора»). При этом справочник «Договора» подчинен справочнику «Контрагенты». В связи с этим было бы неплохо, чтобы после выбора контрагента, при выборе договоров были доступны только договора этого контрагента. На данном этапе не будем рассматривать все последовательности выбора (первоначально договор, а потом контрагент и т.д), ограничимся этим простым случаем.
Необходимо в свойствах элемента управления (поля ввода), связанного с договорами в свойство «Связь по владельцу» установить значение «Контрагент».
Обратите внимание на то, что в форме выбора связи была выбрана страничка «Данные» (владелец будет меняться при смене значения в указанных данных). Страничка «События» используется тогда, когда необходимо привязаться именно к какому-то событию, например «переход на другую строку» (При активизации строки) и т.д.
Обработчики событий формы документа
При выборе из справочника номенклатурной позиции необходимо чтобы автоматически в документ пеерносилась цена, а после заполнения количества рассчитывалась общая сумма. За позицию. Для этого в модуле формы для ячеек Номенклатура и Количество заполнения табличной части создадим следующие процедуры:
Рассмотрим некоторые особенности работы указанных процедур.
В строке
СтрокаТЧ=ЭлементыФормы.Товары.ТекущиеДанные
идет обращение к свойству «ТекущиеДанные» элемента управления «Товары» (то что это обращение именно к табличному полю, а не к табличной части видно из того, что доступ производится через свойство формы «ЭлементыФормы», содержащее коллекцию элементов управления).
Полученные данные строки табличной части записываются в переменную «СтрокаТЧ».
Проверьте работоспособность кода.
5. Для расчета общей суммы документа введите следующий код:.
.
6. Проверьте работоспособность (поле СуммаДокумента заполняется при нажатии на кнопку Записать).
7. Документ «РеализацияТоваров»
Создайте самостоятельно документ «РеализацияТоваров».
Реквизиты (определяются на странице «Данные» конструктора)
· «ВидОперации» (тип «ПеречислениеСсылка.ВидыРеализации»)
· «Контрагент» (тип «СправочникСсылка.Контрагенты»)
· «Договор» (тип «СправочникСсылка.ДоговораВзаиморасчетов»)
· «Сотрудник» ((тип «СправочникСсылка.Сотрудники»)
· «СуммаДокумента» (тип «Число» длина 16, точность 2, неотрицательное)
Табличные части
Товары
· Номенклатура (тип «СправочникСсылка.Номенклатура»)
· ЕдиницаИзмерения (тип «СправочникСсылка.ЕдиницыИзмерения»)
· Цена (тип «Число» длина 15, точность 2, неотрицательное)
· Количество (тип «Число» длина 15, точность 3, неотрицательное)
· Сумма (тип «Число» длина 15, точность 2, неотрицательное)
9. Документ «РеализацияТоваров»должен иметь печатную форму.