Объявление внутренней переменной 3 страница
Методы запросов
Рассмотрим некоторые методы запросов, которые наиболее часто используются в модулях отчетов.
Выполнить(<ТекстЗапроса>) – формирует выборку данных в соответствии с параметром <ТекстЗапроса>, который представляет собой строковое выражение, содержащее текст запроса. Метод Выполнить возвращает число 1, если запрос выполнен успешно, и число 0, если зафиксирована ошибка во время выполнения запроса.
Группировка (<Группировка>, <Направление>) – служит для организации цикла получения данных из выборки, сформированной в результате работы метода Выполнить.
Параметр <Группировка> представляет собой выражение, содержащее порядковый номер или имя группировки.
Необязательный параметр <Направление> представляется числом 1, если сгруппированные данные выбираются с одновременной сортировкой по возрастанию, и числом -1 – по убыванию. Значение по умолчанию: 1.
Метод Группировка возвращает число 1, если получено следующее значение выборки запроса, и число 0, если не получено. Метод используется последовательно сначала для позиционирования по старшим группировкам, затем по младшим. Старшинство группировок определяется порядком их следования в тексте запроса.
Пример:
Пока Запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("Итоги");
Пока Запрос.Группировка(2)=1 Цикл
К = Запрос.Сотр;
К1 = Запрос.Код;
Таб.ВывестиСекцию("Список")
КонецЦикла;
КонецЦикла;
Фрагмент модуля относится к форме отчета, представленной на рис. 34. Модуль должен содержать два цикла в том случае, если необходимо вывести списки сотрудников по каждой должности. Внешний цикл обрабатывает группировку по должностям – это старшая группировка, в которойвкачестве параметра метода может использоваться имя группировки из текста запроса(Долж) или число 1, а внутренний цикл – это младшая группировка, которая была выполнена по сотрудникам (вкачестве параметра может использоваться имя Сотр или число 2).
Создание таблиц значений в модулях
Печатные формы документов, справочников и отчетов формируются при помощи встроенного языка 1С: Предприятие 7.7с использованием агрегатного объекта Таблица. Работа с объектом Таблица определяется следующей последовательностью действий.
1. Объект Таблица создается с помощью функции СоздатьОбъект.
2. Заполняются ячейки таблицы в соответствии с требованиями вывода данных.
3. Определяются секции таблицы.
4. Используются методы для формирования вывода данных в виде результирующей таблицы.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.ВывестиСекцию("Шапка");
Пока Запрос.Группировка(1)=1 Цикл
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Таб.ВывестиСекцию("Итоги");
Таб.Показать();
Методы таблиц
ИсходнаяТаблица(<Строка>) – переназначает в качестве исходной таблицы-шаблона одну из таблиц той формы, в программном модуле которой запущена данная процедура. Имя таблицы сначала ищется в текущей форме, потом – в общих таблицах. Параметр Строка – это имя таблицы, заключенное в кавычки, если в форме создана одна таблица, то имя можно опустить, например ИсходнаяТаблица(“”).
ВывестиСекцию(<Секция>) – переносит секцию исходной таблицы шаблона в результирующую таблицу отчета, документа или справочника. Параметр Секция – это имя секции.
Пример:
Запрос.Выполнить(ТекстЗапроса);
Таб=СоздатьОбъект("Таблица");
Таб.ВывестиСекцию("Все<");
Таб.ВывестиСекцию("К");
Таб.ВывестиСекцию("Все>");
Таб.Показать();
КонецПроцедуры
Пример демонстрирует создание таблицы значений для вывода результатов запроса (рис. 34).
Рис. 34. Таблица вывода результатов запроса
В данном примере таблица значений состоит из двух секций. Имена секций: Все, К. Секция К содержит имя исходной переменной ВыбДолж и результат работы запроса Запрос.Колво. Секция Все делится на две части, каждая из которых задается соответствующим параметром метода ВывестиСекцию ("Все<" или "Все>"). Секция "Все<" содержит заголовок таблицы и заголовки столбцов таблицы. Секция "Все>" содержит пустые строки.
ТолькоПросмотр(<Режим>) – позволяет или запрещает выполнять редактирование результирующей таблицы в зависимости от значения параметра Режим (1 – только просмотр, 0 – допускается редактирование).
Показать(<Заголовок>, <ИмяФайла>, <Активизировать>) – открывает окно с таблицей для просмотра и редактирования. Все параметры метода являются необязательными, поэтому чаще всего метод используется в следующем виде: Показать().
ПараметрыСтраницы(<Ориентация>, <Масштаб>, <РежимПечати Копий>), <ПолеСлева>, <ПолеСправа>, <ПолеСверху>, <ПолеСнизу>,
<КолонтитулСверху>, <КолонтитулСнизу>, <Автомасштаб>, <ФлагЧерноБелойПечати>, <ИмяПринтера>).
Все параметры метода являются необязательными. Для параметра Ориентация используется число 1 (книжная) или число 0 (альбомная). Масштаб указывается в процентах, поля и колонтитулы задаются в миллиметрах. Для параметра РежимПечатиКопий используются числа 1 и 0 (1 – выводить страницы копий по порядку).
Варианты заданий для самостоятельной работы
Все задания выполняются в компоненте Оперативный учет программы
1С: Предприятие 7.7. Справочники заполняются произвольными данными. В окне свойств документа, проведение которого выполняется с использованием регистра, необходимо установить флажок Оперативный учет.
Вариант 1
Создайте информационную систему Кафедры. Система позволяет вводить и просматривать информацию о сотрудниках нескольких кафедр. Создайте конфигурацию системы в соответствии с данными табл. 2.
Таблица 2
Тип объектов | Объекты |
Справочники | Кафедры (код, наименование, зав. кафедрой, дата создания) Сотрудники (код, наименование, должность, ученая степень, адрес, дата рождения, телефон) Справочник Сотрудники подчинен справочнику Кафедры и имеет два уровня: Преподаватели и Учебно-вспомогательный персонал Должности(код, наименование) Дисциплины (код, наименование, семестр, количество часов, специальность, преподаватель) |
Документы | Изменение Данных (реквизиты шапки: кафедра; реквизиты табл. части: ФИО, адрес, телефон, дата рождения, должность, ученая степень) Удаление Элемента (реквизиты шапки: кафедра, сотрудник) |
Журналы документов | Сотрудники |
Перечисления | УчСт(ученая степень) |
Отчеты | Количество сотрудников |
Заполните для каждого элемента перечисления УчСт поле Представление. Значение из этого поля будет выводиться в окне формы справочника в качестве элемента перечисления. Поле Представление расположено в окне свойств значения перечисления (рис. 35). Используйте следующие элементы перечисления УчСт: канд. техн. наук, канд. физ.-мат. наук, д-р физ.-мат. наук.
Рис. 35. Окно свойств элемента перечисления
Документ Изменение Данных позволяет внести изменения в справочник Сотрудники (рис. 36). Используйте методы НайтиЭлемент и Записать. Поиск и запись данных выполняется в цикле.
Рис. 36. Форма документа “Изменение Данных”
Документ УдалениеЭлемента удаляет элемент справочника Сотрудники (используйте метод Удалить). При проведении документов Изменение Данных и Удаление Элемента информация попадает в справочник Сотрудники.
Отчет Количество сотрудников выводит количество сотрудников выбранной должности, работающих на выбранной кафедре (рис. 37).
Рис. 37. Форма отчета “Количество сотрудников”
Процедура Сформировать должна содержать запрос, который группирует элементы справочника Сотрудники по должности, отбирает внутри группы элементы справочника по должности и по кафедре и считает количество отобранных элементов с помощью функции Счётчик().
Для отбора используйте условия вида: Условие ((Долж в ВыбДолж) И (Каф в ВыбКаф)). Вид готового отчета представлен на рис. 38.
Рис. 38. Отчет “Количество сотрудников”
Вариант 2
Создайте информационную систему Отдел кадров.Система позволяет вводить и просматривать информацию о сотрудниках предприятия. Создайте конфигурацию системы в соответствии с данными табл. 3.
Таблица 3
Тип объектов | Объекты |
Справочники | Отделы (код, наименование) Сотрудники (отдел, должность, образование (тип – перечисление), оклад, дата приема, дата увольнения) Должности (код, наименование) |
Документы | Ввод Нового (реквизиты шапки: сотрудник, отдел, должность, образование, оклад, дата приема) Перемещение (реквизиты шапки: сотрудник, отдел до, отдел после, должность, оклад, дата) Удаление Элемента (реквизиты шапки: сотрудник) |
Журналы документов | Сотрудники |
Перечисления | Образование |
Отчеты | Сотрудники отдела |
Документ ВводНовогопозволяет создать новый элемент справочника Сотрудники (используйте метод Новый).
Документ Перемещениеизменяет значение реквизита Отдел в выбранном элементе справочника Сотрудники (используйте метод НайтиЭлемент).
Документ УдалениеЭлемента удаляет элемент справочника Сотрудники (используйте метод Удалить).
Отчет Сотрудники отдела выводит список сотрудников выбранного отдела (рис. 39). В модуле отчета используйте метод ВыбратьЭлементыПоРеквизиту.
Рис. 39. Форма отчета “Сотрудники отдела”
Вид готового отчета представлен на рис. 40.
Рис. 40. Отчет “Сотрудники отдела”
Вариант 3
Создайте информационную систему Отдел кадров. Система позволяет вводить и просматривать информацию о сотрудниках предприятия. Создайте конфигурацию системы в соответствии с данными табл. 4.
Таблица 4
Тип объектов | Объекты |
Справочники | Отделы (код, наименование) Сотрудники (код, наименование, отдел, должность, образование (тип – перечисление), оклад, дата приема, дата увольнения) Должности (код, наименование) |
Продолжение таблицы 4
Документы | ВводНового (реквизиты шапки: сотрудник, отдел, должность, образование, оклад, дата приема) Перемещение (реквизиты шапки: сотрудник, отдел до, отдел после, должность, оклад, дата) Увольнение (реквизиты шапки: сотрудник, дата увольнения) |
Журналы документов | Сотрудники |
Перечисления | Образование |
Отчеты | Количество сотрудников по должностям |
Документ ВводНового используется для ввода в справочник Сотрудники данных о новых сотрудниках. Документ позволяет создать новый элемент справочника Сотрудники (используйте метод Новый).
Документ Перемещениеизменяет значение реквизита Отдел в выбранном элементе справочника Сотрудники при перемещении сотрудников из одного отдела в другой (используйте метод НайтиЭлемент).
Документ Увольнениепозволяет ввести значение реквизита ДатаУвольненияв элемент справочника Сотрудники (используйте метод НайтиЭлемент).
Отчет Количество сотрудников по должностям выводит количество сотрудников, зачисленных на выбранную должность (рис. 41).
Рис. 41. Форма отчета “Количество сотрудников по должностям”
Процедура Сформировать должна содержать запрос, который отбирает элементы справочника по должности, группирует и считает их количество с помощью функции Счетчик().
Используйте метод Сообщитьдля вывода результата.
Сообщить("По должности " + Строка(ВыбДолж) + " работает " +
+ Строка(Запрос.Колво) + " чел.");
Вариант 4
Создайте информационную систему Спонсоры.Система позволяет вводить и просматривать информацию о спонсорах школ города. Создайте конфигурацию системы в соответствии с данными табл. 5.
Таблица 5
Тип объектов | Объекты |
Справочники | Школы (код, наименование) Спонсоры (регион (тип – перечисление), адрес, телефон) |
Документы | Изменение данных (реквизиты шапки: спонсор, адрес, телефон, регион) Помощь (реквизиты шапки: спонсор, школа, сумма) |
Журналы документов | ВсеДокументы |
Перечисления | Регионы |
Регистры | Суммы (измерения: спонсор, школа; ресурс – сумма) |
Отчеты | Помощь спонсоров |
Документ Изменение данных используется для изменения данных в справочнике Спонсоры, а документ Помощь – для занесения данных о суммах спонсорской помощи по каждой школе и каждому спонсору.
Документ Изменение данных может изменять значение реквизитов Адрес,Телефон, Регион в выбранном элементе справочника Спонсоры с помощью метода НайтиЭлемент.
При проведении документа Помощьданные попадают в регистр Суммы.
Отчет Помощь спонсоров выводит суммы денег, перечисленные выбранным спонсором (рис. 42).
Рис. 42. Форма отчета “Помощь спонсоров”
Отчет формируется на основе запроса. Вид готового отчета представлен на рис. 43.
Рис. 43. Отчет “Помощь спонсоров”
Вариант 5
Создайте информационную систему Попечители. Система позволяет вводить и просматривать информацию о попечителях колледжей города. Создайте конфигурацию системы в соответствии с данными табл. 6.
Таблица 6
Тип объектов | Объекты |
Справочники | Колледжи (код, наименование) Попечители (город (тип – перечисление), адрес, телефон) |
Документы | Изменение данных (реквизиты шапки: попечитель, адрес, телефон, город) Помощь (реквизиты шапки: попечитель, табличная часть: колледж, сумма) |
Журналы документов | ВсеДокументы |
Перечисления | Города |
Продолжение таблицы 6
Регистры | Суммы (измерения: попечитель, колледж; ресурс – сумма) |
Отчеты | Попечительская помощь |
Документ Изменение данных используется для изменения данных в справочнике Попечители. Документ может изменять значения реквизитов: адрес, телефон, регион в выбранном элементе справочника (используйте метод НайтиЭлемент).
При проведении документа Помощь данные о суммах помощи по каждому колледжу и каждому попечителю попадают в регистр Суммы. Значения реквизитов табличной части документа заносятся в регистр в цикле, при этом используются методы: ВыбратьСтроки, ПолучитьСтроку.
Отчет Попечительская помощь выводит суммы денег, перечисленные выбранному колледжу (рис. 44).
Рис. 44. Форма отчета “Попечительская помощь”
Отчет формируется на основе запроса. Вид готового отчета представлен на рис. 45.
Рис. 45. Отчет “Попечительская помощь”
Вариант 6
Создайте информационную систему Подписка. Система позволяет вводить и просматривать информацию о подписчиках и изданиях. Создайте конфигурацию системы в соответствии с данными табл. 7.
Таблица 7
Тип объектов | Объекты |
Справочники | Издания (код, наименование, стоимость) Подписчики (код, наименование, город (тип – перечисление), адрес, телефон) |
Документы | Изменение данных (реквизиты шапки: подписчик, адрес, телефон, город) Подписка (реквизиты шапки: подписчик, табличная часть: издание, годовая стоимость[1], период[2], стоимость) |
Журналы документов | ВсеДокументы |
Перечисления | Города |
Регистры | Суммы (измерения: подписчик, издание; ресурс – сумма) |
Документ Изменение данных используется для изменения данных в справочнике Подписчики. Документ обновляет значения реквизитов: адрес, телефон, регион в выбранном элементе справочника Спонсоры (используйте методы НайтиЭлемент и Записать).
Документ Подписка используется для ввода данных о стоимости подписки по каждому подписчику и каждому изданию (рис. 46).
При проведении документа Подписка данные попадают в регистр Суммы. Значения реквизитов табличной части документа заносятся в соответствующие параметры регистра в цикле, при этом используются методы ВыбратьСтроки, ПолучитьСтроку. После проведения документа выполните команду Движения документа, чтобы удостовериться, что было движение по регистру Суммы.
Рис. 46. Форма документа “Подписка”
Модуль формы документа содержит следующие процедуры.
1. Процедуру Стоимость, которая позволяет автоматизировать ввод вычисленной стоимости подписки в поле Стоимость, в зависимости от периода. Если период меньше 12, то стоимость годовой подписки увеличивается в соответствии с данными табл. 8.
Таблица 8
Период | % увеличения годовой стоимости подписки |
<6 | |
>=6 П <12 |
Стоимость вычисляется умножением 1/12 скорректированной годовой стоимости на период.
2. Процедуру Печать, которая позволяет печатать документ Подписка (рис. 47).
Рис. 47. Печатная форма документа “Подписка”
Вариант 7
Создайте информационную систему Подписка.Система позволяет вводить и просматривать информацию о подписчиках и изданиях. Создайте конфигурацию системы в соответствии с данными табл. 9.
Таблица 9
Тип объектов | Объекты |
Справочники | Издания (код, наименование, стоимость) Подписчики (код, наименование, район (тип – перечисление), адрес, телефон) |
Документы | Изменение данных (реквизиты шапки: подписчик, адрес, телефон, город) Подписка (реквизиты шапки: подписчик, табличная часть: издание, годовая стоимость[3], период[4], стоимость) |
Журналы документов | ВсеДокументы |
Перечисления | Районы |
Регистры | Суммы (измерения: подписчик, издание; ресурс – сумма) |
Отчеты | Подписка на издание |
Документ Изменение данных используется для изменения данных в справочнике Подписчики (рис. 48). Документ обновляет значения реквизитов: Адрес, Телефон, Регион в выбранном элементе справочника Спонсоры (используйте методы НайтиЭлемент и Записать).
Рис. 48. Фома документа “Подписка”
Модуль формы документа должен содержать процедуру Стоимость, которая позволяет автоматизировать ввод вычисленной стоимости подписки в поле Стоимость, в зависимости от периода. Если период меньше 12, то стоимость годовой подписки увеличивается в соответствии с данными табл. 10.
Таблица 10
Период | % увеличения годовой стоимости подписки |
<6 | |
>=6 П <12 |
Стоимость вычисляется умножением 1/12 скорректированной годовой стоимости на период.
Документ Подписка используется для ввода данных о стоимости подписки по каждому подписчику и каждому изданию.
При проведении документа Подписка данные попадают в регистр Суммы. Значения реквизитов табличной части документа заносятся в соответствующие параметры регистра в цикле, при этом используются методы: ВыбратьСтроки, ПолучитьСтроку. После проведения документа выполните команду Движения документа, чтобы удостовериться, что было движение по регистру Суммы.
Отчет Подписка на издание предоставляет данные о количестве подписчиков, подписавшихся на выбранное издание и общую стоимость подписки на это издание. Отчет формируется на основе запроса, который выбирает данные из регистра Суммы. В запросе используйте функции Счётчик и КонОст.
Вид готового отчета представлен на рис. 49.
Рис. 49. Отчет “Подписка на издание”
Вариант 8
Создайте информационную систему Связь.Система позволяет вводить и просматривать информацию об абонентах и номерах абонентов. Создайте конфигурацию системы в соответствии с данными табл. 11.
Таблица 11
Тип объектов | Объекты |
Справочники | АбонентыЮ (код, наименование, адрес, расчетный счет) – юридические лица НомераТелЮ – (код, наименование) – подчинен справочнику АбонентыЮ |
Документы | ПлатаЗаТелЮ (реквизиты шапки: абонент, табличная часть: телефон, сумма) |
Журналы документов | Связь |
Регистры | СуммыЮ (измерения: абонент, телефон; ресурс – сумма) |
Отчеты | Учет денег |
Документ ПлатаЗаТелЮ используется для ввода данных в регистр Суммы (рис. 50).
Рис. 50. Форма документа “ПлатаЗаТелЮ”
Создайте процедуру Номера и свяжите с полем Абонент для автоматизации ввода номера телефона выбранного абонента. Вид процедуры представлен в примере к методу справочника Выбрать.
При проведении документа ПлатаЗаТелЮ данные попадают в регистр СуммыЮ. Значения реквизитов табличной части документа заносятся в соответствующие параметры регистра в цикле, при этом используются методы: ВыбратьСтроки, ПолучитьСтроку.
После проведения документа выполните команду Движения документа, чтобы удостовериться, что было движение по регистру СуммыЮ.
Отчет Учет денег формируется на основе запроса и выводит общую сумму денег выбранного абонента (рис. 51). Запрос выбирает информацию из регистра СуммыЮ. В запросе используйте функцию КонОст.
Рис. 51. Форма отчета “Учет денег”
В модуле отчета используйте процедуру Номерадля заполнения поля ВыбТел. Вид готового отчета представлен на рис. 52.
Рис. 52. Отчет “Учет денег”
Вариант 9
Создайте информационную систему Связь. Система позволяет вводить и просматривать информацию об абонентах и номерах абонентов. Создайте конфигурацию системы в соответствии с данными табл. 12.
Таблица 12
Тип объектов | Объекты |
Справочники | АбонентыФ (код, наименование, адрес, паспорт) – физические лица НомераТелФ – (код, наименование) – подчинен справочнику АбонентыФ |
Документы | УчетВремениФ (реквизиты шапки: абонент, табличная часть: телефон, время) |
Журналы документов | Связь |
Продолжение таблицы 12
Регистры | ВремяФ (измерения: абонент, телефон; ресурс – время) |
Отчеты | Учет времени |
При проведении документа УчетВремениФ (рис. 53)данные попадают в регистр ВремяФ. Значения реквизитов табличной части документа заносятся в соответствующие параметры регистра в цикле, при этом используются методы: ВыбратьСтроки, ПолучитьСтроку.
Рис. 53. Форма документа “УчетВремениФ”
Создайте процедуру Номера и свяжите с полем Абонент для автоматизации ввода номера телефона выбранного абонента. Вид процедуры представлен в примере к методу справочника Выбрать.
После проведения документа выполните команду Движения документа, чтобы удостовериться, что было движение по регистру ВремяФ.
Отчет Учет времени формируется на основе запроса, который выбирает информацию из регистра ВремяФ. Отчет позволяет получать итоговую продолжительность разговора выбранного абонента (рис. 54).
Рис. 54. Форма отчета “Учет денег”
В запросе используйте функцию КонОст. В модуле отчета используйте процедуру Номера для заполнения поля ВыбТел. Вид готового отчета представлен на рис. 55.
Рис. 55. Отчет “Учет времени”
Вариант 10
Создайте информационную систему Кафедры. Система позволяет вводить и просматривать информацию о сотрудниках нескольких кафедр. Создайте конфигурацию системы в соответствии с данными табл. 13.
Таблица 13
Тип объектов | Объекты |
Справочники | Кафедры (код, наименование, зав. кафедрой, дата создания) Сотрудники (код, наименование, должность, ученая степень, адрес, дата рождения, телефон) Справочник Сотрудники подчинен справочнику Кафедры и имеет два уровня: Преподаватели, Учебно-вспомогательный персонал Должности(код, наименование) Дисциплины (код, наименование, семестр, количество часов, специальность, преподаватель) |
Документы | ИзменениеДанных (реквизиты шапки: кафедра; реквизиты табличной части: ФИО, адрес, телефон, дата рождения, должность, ученая степень) УдалениеЭлемента (реквизиты шапки: кафедра, сотрудник) |
Журналы документов | Сотрудники |
Перечисления | УчСт(ученая степень) |
Отчеты | Сотрудники кафедры |
Заполните для каждого элемента перечисления УчСт поле Представление. Значение из этого поля будет выводиться в окне формы справочника в качестве элемента перечисления. Поле Представление расположено в окне свойств значения перечисления (рис. 56). Используйте следующие элементы перечисления УчСт: канд. техн. наук, канд. физ.-мат. наук, д-р физ.-мат. наук.