Справочник «ФизическиеЛица»
Возвращаемся в конфигуратор – создадим еще один справочник: «ФизическиеЛица», подсистема «ЗарплатаИКадры». Справочник будет без иерархии. Содержит реквизиты (Закладка данные): • «Фамилия» - тип «Строка» длина 30; • «Имя» - тип «Строка» длина 30; • «Отчество» - тип «Строка» длина 30; • «ДатаРождения» - тип «Дата» состав даты: «Дата». Кроме этого у справочника есть табличная часть: • «НачалоРаботы» - тип «Дата» состав: «Дата»; • «ОкончаниеРаботы» - тип «Дата» состав: «Дата»; • «Организация» - тип «Строка» длина 40; • «Должность» - тип «Строка» длина 40. Требуется настроить форму списка и форму элемента. При настройке формы списка в ней необходимо определить только колонки «Код», «Наименование», «ДатаРождения»(Рисунок 2.24). Рисунок 2.24. Настройка формы списка Редактирование формы списка (Рисунок 1.25). Рисунок 2.25. Способ редактирования При настройке формы элемента справочника разместим реквизиты и табличную часть на разных страницах. Для создания страниц жмем Добавить – «Группа – Страницы», затем добавить «Группа – страница». Страница (закладка) «Общие» содержит: Код, Фамилия, Имя, Отчество, ДатаРождения. Страница «ТрудоваяДеятельность» будет содержать таблицу «Таблица» Для поля «Наименование» (оно будет расположено вне всех закладок), с заголовком «ФИО», пропишем в модуле объекта процедуру: Процедура ПередЗаписью(Отказ) Наименование=СокрЛП(Фамилия)+" " +Сред(СокрЛП(Имя),1,1)+"." +Сред(СокрЛП(Отчество),1,1) +"."; КонецПроцедуры В свойствах формы уберем галочку «ПроверятьЗаполнениеАвтоматически». При настройке табличной части закладки «Трудовая деятельность» сделаем так, чтобы реквизиты табличной части «НачалоРаботы», «ОкончаниеРаботы», «Должность» находились на одной строке, а «Организация» на следующей. Для этого добавим в нашу таблицу новую группу – «Группу колонок», а в созданную только что группу еще 1 группу колонок. В результате должны получить тоже самое что и на Рисунке 2.26.
Рисунок 2.26. Настройка табличной части.
В результате форма элемента должна принять вид близкий к следующему (Рисунок 2.27). Рисунок 2.27. Форма элемента. Замечание. В программах, для обращения (из модуля соответствующей формы) к элементу управления необходимо использовать свойство формы «ЭлементыФормы». ЭлементУправления=ЭлементыФормы.Наименование; В общем случае несколько элементов управления могут быть связаны (через свойство «Данные») с одним «элементом данных» формы. Основной реквизит формы
Продолжаем работать с формой элемента справочника «ФизическиеЛица». У большинства форм существует такое понятие, как «основной реквизит формы». Он выделен полужирным на закладке «Реквизиты» формы (Рисунок 2.28). Рисунок 2.28. Основной реквизит формы.
Основной реквизит формы определяет основную функциональность формы (так сказать ее основное предназначение). Функциональность формы можно неограниченно расширять (ограничением является здравый смысл). Расширять функциональность формы можно за счет добавления реквизитов, расширяя этим понятие «данные формы». Добавим (используя правую верхнюю область окна настройки формы) новый реквизит «СписокНоменклатуры», определим у него тип «ДинамическийСписок». В качестве основной таблицы выберем «Справочник.Номенклатура» (Рисунок 2.29). Рисунок 2.29. Реквизит «СписокНоменклатуры». Создайте в элементе управления «Страницы» (в диалоге формы) новую страницу «СписокНоменклатуры». Добавьте в диалог элемент управления «Таблица1» и через свойство «ПутьКДанным» свяжите с реквизитом «СписокНоменклатуры» (Рисунок 2.30).
Рисунок 2.30. Создание навой страницы Итог: в результате на одной из страниц формы элемента справочника «Физические лица» мы можем работать со списком элементов справочника «Номенклатура» (Рисунок 2.31): Рисунок 2.31. Справочник «Физические лица» Следует особо отметить, что при работе с формой необходимо четко понимать различия между данными и элементами управления на форме. В данной форме списка есть основной реквизит формы «Объект», который имеет тип <СправочникОбъект.ФизическиеЛица>, и в диалоге формы есть элемент управления «Таблица1», который имеет тип «Таблица». Элементы формы через свойство «ПутьКДанным» могут быть связаны с данными (к примеру с реквизитами, свойствами справочника, реквизитами форм). При обращении через свойство формы «Элементы» обращение идет именно к элементу диалога.
Печатные формы
При создании печатных форм придется работать с такими объектами как макет и табличный документ. Суть алгоритма печати: · Макет содержит набор именованных областей. · В каждой именованной области определены элементы оформления и набор параметров, параметров расшифровки. · В процедуре, реализующей печать, первоначально создается «ТабличныйДокумент». · Из макета получается очередная именованная область. · Выбранные данные (которые хотим вывести на печать) записываются в параметры, параметры расшифровки области. · Заполненная данными область включается в табличный документ. · В конце алгоритма табличный документ открывается. Для создания печатной формы воспользуемся соответствующим конструктором. В окне объекта справочника «Номенклатура» на закладке «Макеты» по кнопке «Конструктор печати» откроем одноименный конструктор (Рисунок 2.32). Рисунок 2.32. Конструктор печати.
В открывшейся форме указываем, что создается новая команда. На этом же этапе можно переопределить имя создаваемой команды (Рисунок 2.33). Рисунок 2.33. Команда «Печать».
На следующем этапе из реквизитов справочника выбирает те, которые хотим видеть в печатной форме (Рисунок 2.34).
Рисунок 2.34. Шапка документа
В левой части диалоговой формы приведены все доступные нам реквизиты справочника, в правой выбранные для печати.
На последнем этапе указываем, что создаваемая конструктором команда будет входить в «Командную панель формы. Важное». В результате работы конструктора у объекта конфигурации была создана команда «Печать». Ее свойства приведены на рисунке ниже (Рисунок 2.35): Рисунок 2.35. Созданная команда «Печать».
В модуле команды получили следующий код:
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать) ТабДок = Новый ТабличныйДокумент; Печать(ТабДок, ПараметрКоманды);
ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.Показать(); //}} КонецПроцедуры
&НаСервере Процедура Печать(ТабДок, ПараметрКоманды) Справочники.Номенклатура.Печать(ТабДок, ПараметрКоманды); КонецПроцедуры
Более того, был создан макет «Печать». В модуле менеджера определен следующий код (изучите его, в нем используется табличная модель данных (см. запрос)):
Процедура Печать(ТабДок, Ссылка) Экспорт //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать) Макет = Справочники.Номенклатура.ПолучитьМакет("Печать"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Код, | Номенклатура.Наименование, | Номенклатура.ОснЕдиницаИзмерения, | Номенклатура.ЦенаПродажи |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В (&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли;
ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень());
ВставлятьРазделительСтраниц = Истина; КонецЦикла; //}} КонецПроцедуры
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|