- •Лабораторная работа 8.2 справочники. Работа со справочником из встроенного языка
- •Формирование печатных форм
- •4. В результате у Вас в пользовательском режиме (при заполненном справочнике «номенклатура») при нажатии на кнопку «Печать» будет формироваться печатная форма справочника.
- •5. Рассмотрим текст, сформированной конструктором, процедуры.
4. В результате у Вас в пользовательском режиме (при заполненном справочнике «номенклатура») при нажатии на кнопку «Печать» будет формироваться печатная форма справочника.
Рассмотрим теперь, как созданный нами механизм печати работает. Начнем с макета. Если открыть страничку «Макеты» конструктора справочника «Номенклатура», то с нее можно открыть созданный конструктором печати макет (он называется «Печать»). Выглядит он следующим образом:
В общем случае макет представляет собой таблицу, в которой определена коллекция именованных областей. Под именованной областью понимается прямоугольная область, которой в свойствах (этой области) было задано какое–либо имя.
Одним из других важных свойств у ячейки макета является свойство «Заполнение». Возможными значениями является:
Текст – в этом случае считается, что ячейка содержит текст, не подлежащий ни какой обработке
Параметр – в этом случае в ячейку записывается имя параметра (потом при получении именованной области этому параметру должно быть явно присвоено значение).
Шаблон – содержит конструкцию : текст [Имяпараметра1] текст [ИмяПараметра2]...
Кроме этого в ячейке (строке) можно определять так называемый «параметр расшифровки».
Если при «заполнении» именованной области в параметр расшифровки записать значение, имеющее тип «СправочникСсылка.Номенклатура», то если в сформированной в пользовательском режиме печатной форме выполнить двойной щелчок над данной ячейкой, то будет открыта форма соответствующего элемента (группы). Следует помнить, что в этом случае при формировании табличного документа свойства «Защита» должно быть выставлено в значение «Истина».
5. Рассмотрим текст, сформированной конструктором, процедуры.
Процедура Печать(Элемент)
ТабДок = Новый ТабличныйДокумент; //1
Макет = Справочники.Номенклатура.ПолучитьМакет("Печать"); //2
Секция = Макет.ПолучитьОбласть("Заголовок"); //3
ТабДок.Вывести(Секция); //4
Секция = Макет.ПолучитьОбласть("Шапка"); //5
ТабДок.Вывести(Секция); //6
Выборка = Справочники.Номенклатура.ВыбратьИерархически(); //7
Пока Выборка.Следующий() = Истина Цикл //8
Объект = Выборка.ПолучитьОбъект(); //9
Если Объект.ЭтоГруппа = Истина Тогда //10
Секция = Макет.ПолучитьОбласть("Группа"); //11
Секция.Параметры.Код = Объект.Код; //12
Секция.Параметры.Наименование =Объект.Наименование; //13
ТабДок.Вывести(Секция); //14
Иначе //15
Секция = Макет.ПолучитьОбласть("Элемент"); //16
Секция.Параметры.Код = Объект.Код; //17
Секция.Параметры.Наименование = Объект.Наименование; //18
Секция.Параметры.ПолноеНаименование = Объект.ПолноеНаименование; //19
Секция.Параметры.Артикул = Объект.Артикул; //20
ТабДок.Вывести(Секция); //21
КонецЕсли; //22
КонецЦикла; //23
ТабДок.ОтображатьСетку = Ложь; //24
ТабДок.Защита = Истина; //25
ТабДок.ТолькоПросмотр = Истина; //26
ТабДок.ОтображатьЗаголовки = Ложь; //27
ТабДок.Показать(); //28
КонецПроцедуры
Приведем пояснения к тексту процедуры
1 – Создается новый табличный документ
2 – Получается макет «Печать»
3 – Из макета выбирается именованная область «Заголовок»
4 – Так как именованная область «Заголовок» не содержит ни каких параметров, то она сразу же включается в табличный документ
5 - Из макета выбирается именованная область «Шапка»
6 – Так как именованная область «Шапка» не содержит ни каких параметров, то она сразу же включается в табличный документ
7 – Получается выборка справочника «Номенклатура». Обратите внимание, что у объекта «СправочникМенеджер.Номенклатура» есть два метода выборки:
Выбрать() (получается выборка упорядоченная по представлению)
ВыбратьИерархически() (получается выборка упорядоченная по иерархии справочника)
8 – Организуется перебор полученной выборки
9 – С помощью метода выборки «ПолучитьОбъект()» получается значение, имеющее тип «СправочникОбъект.Номенклатура» (с помощью объекта данного вида можно производить модификацию записей справочника).
10 – Проверяем является ли текущий объект группой (проверка имеет смысл только для иерархических справочников с иерархией групп и элементов).
11 – В случае истинности условия из макета выбирается именованная область «Группа»
12 – Заполняется параметр «Код» именованной области. Следует обратить внимание на то, что параметр именованной области необходимо заполнять явно, в не зависимости от того, есть ли в контексте процедуры переменная с таким именем или нет.
13 – Заполняется параметр «Наименование» именованной области.
14 – Именованная область с заполненными параметрами включается в табличный документ.
15 - Определяется раздел, выполняющийся при ложности условия (10)
16 – В случае ложности условия из макета выбирается именованная область «Элемент»
17 – Заполняется параметр «Код» именованной области.
18 – Заполняется параметр «Наименование» именованной области.
19 – Заполняется параметр «ПолноеНаименование» именованной области.
20 – Заполняется параметр «Артикул» именованной области.
21 – Именованная область с заполненными параметрами включается в табличный документ.
22 – Заканчивается блок описания условия
23 – Заканчивается описание тела цикла
24 – У табличного документа отключается вывод сетки
25 – Включается защита ячеек
26 – Определяется свойство «Только просмотр»
27 – Отключается отображение заголовков
28 – Табличный документ отображается в виде отдельного окна.
6. Произведите создание макета для печати справочника Сотрудники.
На первом шаге создания макета установите следующие параметры:
На втором шаге перенесите все поля для вывода на печать.
На третьем шаге ничего менять не надо.
Затем нажмите кнопку Готово.
Программа автоматически создаст готовый макет и программный код в модуле формы ФормаСписка.
7. Вставьте на форму ФормаСписка новую командную панель и добавьте на нее кнопку Печать.
Для данной кнопки добавьте следующую процедуру:
8. Таким образом, в модуле формы ФормаСписка получаем следующий программный код:
9. Запустите систему в режиме 1С: Предприятие. Введите подразделения: Бухгалтерия, Маркетинг, Торговые представители, Управление, а затем произвольно добавьте по 1-2 записи в каждое подразделение. Проверьте работоспособность кнопки Печать.
