МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ по проведению учебной практики дисциплины «Прикладное программирование»


Лабораторная работа № 1.Знакомство с конфигуратором. Постановка задачи.
Цель работы:
Используя возможности платформы 1С:Предприятие 8.1 построить информационную систему для внесения, хранения и извлечения информации, которая позволит автоматизировать работу персонала учебного центра.
Создать объекты конфигурации, которые будут отражать реальную ситуацию в организации учебного процесса.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Условимся считать, что наша организация предлагает платные услуги, связанные с учебно-преподавательской деятельностью. Это может быть одно из подразделений в высшем учебном заведении или просто учебный центр, занимающийся коммерческой деятельностью. Мы, как разработчики, попробуем помочь нашим сотрудникам в автоматизации некоторых участков работы с учащимися (слушателями курсов), для обозначения которых будем использовать более общее понятие — "клиенты". Каждый клиент может записаться на тот или иной платный курс, после чего внести плату за обучение (сразу либо частично), а затем начать посещать занятия. Понятно, что руководство учебного центра должно максимально эффективно контролировать данный процесс.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
После выбора раздела 1С Предприятие 8.1 в меню Пуск и далее пункта Конфигуратор (либо 1С Предприятие) перед нами открывается стартовое окно информационной системы 1С:Предприятие 8.1 (рисунок 1.1).

Рисунок 1.1 Стартовое окно информационной системы 1С:Предприятие 8.1
В центральной части окна перечислены уже имеющиеся информационные базы, каждая из которых представляет собой конкретную разработку, направленную на автоматизацию участка работы либо определенного подразделения, либо всей организации в целом. В нашей ситуации мы начинаем решение новой задачи, поэтому от нас потребуется создание новой информационной базы. Эта база будет построена на основе разрабатываемых далее объектов конфигурации.
Создание новой информационной базы
Сначала следует щелкнуть по кнопке Добавить (см. рисунок 1), что приведет к появлению на экране следующего окна (рисунок 1.2), в котором необходимо выбрать один из двух сценариев дальнейшего развития событий. Мы пойдем по пути разработки новой информационной базы и, нажав кнопку Далее, перейдем к окну, в котором следует задать способ создания будущей разработки (рисунок 1.3). Здесь перед нами открывается путь создания новой информационной базы на основе одного из имеющихся шаблонов, однако мы поступим по-другому и создадим пустую информационную базу.

Рисунок 1.2 Окно для добавления новой (существующей) информационной базы

Рисунок 1.3 Окно выбора способа создания информационной базы

Рисунок 1.4 Окно для указания наименования создаваемой информационной базы
Очередное окно данного диалога показано на рисунок 1.4. Здесь необходимо дать базе имя, и в нашем случае вместо варианта, предложенного системой по умолчанию, лучше установить название вашей базы, например Глава 1. Кроме того, от нас потребуется указать каталог, где созданная разработка будет располагаться. Для этого необходимо создать пустую папку в любом месте на компьютере либо в сети, а в диалоговом окне указать ее месторасположение. В этой папке и будет храниться наша конфигурация, которую мы разработаем.
После выбора названия информационной базы на экране повторно появляется окно, которое мы уже видели (см. рисунок1), но уже с новой строкой, содержащей название только что созданной информационной базы. Теперь с помощью кнопки Конфигуратор следует перейти в режим разработки объектов конфигурации, на основе которых системой будет построена база данных.
Итак, все предварительные шаги выполнены, и мы можем перейти к основной работе по созданию конфигурации. В дальнейшем (при последующих сеансах работы на компьютере), когда вы решите продолжить созданную разработку, от вас потребуется лишь выбрать название информационной базы в списке (см. рисунок1) и нажать кнопку Конфигуратор или кнопку 1С:Предприятие. Вторая кнопка вызывает режим, предназначенный для непосредственной работы по внесению данных в информационную базу.
Мы остановились на том, что с помощью кнопки Конфигуратор открыли окно режима с аналогичным названием (рисунок 5). Это и есть инструментальная среда, в которой мы будем создавать объекты конфигурации. Все прикладные решения для автоматизации различных участков деятельности созданы разработчиками именно с использованием конфигуратора. Следующее, что от нас потребуется, — это выбор в меню Конфигурация пункта Открыть конфигурацию. В результате на экране появится окно с деревом объектов конфигурации, которое показано в левой части рисунок 1.5. Сейчас в нем присунокутствуют только заголовки, а в дальнейшем создаваемые нами объекты конфигурации будут автоматически отображаться в этом дереве.

Рисунок 1.5 Окно системы 1С:Предприятие 8.1 в режиме конфигуратора
Каждая ветвь древовидной структуры описывает определенную тематическую группу конфигурации. Например, при создании новых справочников они будут группироваться в ветви Справочники, а в ветви Документы найдут свое место объекты конфигурации типа документ. Технология работы с деревом конфигурации аналогична работе с подобными древовидными представлениями в операционной системе Microsoft Windows. Для открытия той или иной ветви (например, для обзора имеющихся в конфигурации справочников) достаточно щелкнуть по обозначению соответствующего знака "плюс".
КОНТРОЛЬНЫЕ ВОПРОСЫ
С какой команды начинается работа с любой конфигурацией?
Что называют объектом конфигурации?
Как работать с деревом конфигурации?
Как создать объект конфигурации?
Лабораторная работа № 2. Перечисления
Цель работы: Создать объекты конфигурации, которые будут отражать реальную ситуацию в организации учебного процесса.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Среди большого количества объектов информационной системы 1С:Предприятие 8.1 наиболее простыми являются перечисления, представляющие собой статические списки данных, которые создаются на этапе разработки и в дальнейшем просто используются (без возможности их изменения или дополнения при работе в режиме 1С:Предприятие). Перечисления в основном используются не самостоятельно, а в совокупности с другими типами данных. Так, эти объекты применяются для ввода значений реквизитов справочников и документов. Основная цель использования перечислений — исключить неоднозначность вводимой информации.
Первым объектом, который мы создадим в конфигураторе, будет перечисление с именем Статус, отражающее статус конкретного учащегося. Дело в том, что статус не подразумевает какого-то большого разнообразия возможных значений. Кроме того, данный параметр продолжительное время не изменяется (если происходит добавление какого-то нового значения для статуса в силу изменения методики работы нашего учебного центра, то это случается очень редко). Фактически для подобных ситуаций объект типа перечисление и был разработан. В нашей ситуации будем считать значениями статуса учащегося следующие:
Зачислен;
Отчислен;
Сертификат.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Перейдем к техническим действиям, позволяющим реализовать сказанное на практике. В режиме конфигуратора для создания нового перечисления необходимо в дереве объектов конфигурации (см. рисунок 1.5) сначала щелкнуть правой кнопкой мыши по строке Перечисления. В результате на экране откроется контекстное меню, состоящее из единственного пункта — Добавить, который мы и выберем, что позволит перейти к работе в окне редактирования объекта конфигурации (рисунок 1.6).

Рисунок 1.6 Окно редактирования перечисления Статус
В системе 1С:Предприятие для редактирования свойств основных объектов конфигурации (а также для настройки взаимодействия между объектами) предназначено окно редактирования объекта конфигурации. Редактируемые свойства располагаются на нескольких закладках, и каждая закладка предназначена для настройки свойств конкретной категории. Сами закладки (их название и содержание) меняются в зависимости от типа объекта конфигурации (так, закладки, используемые для редактирования перечислений и, скажем, справочников, отличаются). Все основные объекты конфигурации, с которыми мы встретимся, содержат закладку Основные.
Таким образом, несложные действия привели к тому, что мы легко создали первый объект нашей конфигурации, который, правда, пока пуст. Для того чтобы внести в перечисление Статус возможные значения, следует перейти на закладку Данные и добавить необходимую информацию (рисунок 1.7). Для внесения значений следует воспользоваться пиктографическим меню в верхней части окна редактирования объекта конфигурации. С помощью этих кнопок легко не только добавлять, но и корректировать и удалять элементы.

Рисунок 1.7 Внесение значений перечисления Статус
Вернемся к перечислениям. Возникает вопрос: как перечисления, и в частности перечисление Статус, использовать? Далее мы создадим еще один объект — справочник Клиенты, в котором введем реквизит с именем Статус. Он будет принимать варианты только из набора значений перечисления Статус, что позволит пользователю в этом случае избежать ввода других данных, кроме трех уже указанных.
В практической работе, кроме исключения ошибок, использование заранее определенных списков данных заметно ускоряет работу пользователя в режиме 1С:Предприятие. Наряду с перечислениями для этого часто используются еще и справочники. Заметим, что справочники — это существенно более сложные (в плане программирования и функциональных возможностей) объекты по сравнению с перечислениями, и в следующем разделе мы с ними познакомимся.
КОНТРОЛЬНЫЕ ВОПРОСЫ
Для чего предназначены константы?
Что такое имя объекта?
Что называют синонимом объекта?
Лабораторная работа №3. Справочник Должности
Цель: Студенты должны познакомиться с объектом конфигурации Справочник Должности. Узнать, для чего используется этот объект, какова его структура и какими основными свойствами он обладает.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Упрощенно справочник можно считать совокупностью строк, причем в каждой строке присунокутствует несколько колонок (количество колонок одинаково для каждой строки). Строки есть не что иное, как имеющиеся в справочнике записи (или, точнее говоря, элементы справочника), а колонки определяют структуру этих записей. В отличие от перечислений, в справочники пользователь при работе в режиме 1С:Предприятие может вносить информацию. Можно добавлять новые элементы справочника, удалять ненужные и редактировать существующие. Как уже говорилось, справочники используются в ситуациях, когда необходимо исключить неоднозначный ввод информации. Аналогом справочника является список данных, который может корректироваться и дополняться в процессе работы. Например, это могут быть списки номенклатуры, организаций или сотрудников. Система 1С:Предприятие 8.1 позволяет создавать практически любое количество справочников. При этом в конфигураторе формируется структура любого справочника, а данными он заполняется уже в режиме 1С:Предприятие.
Справочники в системе 1С:Предприятие могут быть иерархическими. Так, в случае наиболее часто используемой иерархии групп все элементы справочника делятся на два вида — простые элементы и группы. Например, в справочнике Товары могут существовать группы Продукты, Одежда, Обувь и др. А внутри каждой из этих групп уже располагаются товары с указанием их стоимости и прочих свойств. Другой вариант иерархии — иерархия элементов. В этом случае роль групп играют сами элементы.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Продолжим практическую работу в конфигураторе созданием простого справочника Должности, в котором будут содержаться названия должностей специалистов (системный администратор, преподаватель и др.). Вместо неформального слова "колонки" (отражающего представление справочника в виде таблицы) в системе 1С:Предприятие используется более общий термин — реквизиты (колонок столько, сколько реквизитов у справочника). При этом в любом справочнике всегда есть два обязательных реквизита (присунокутствующих в любом справочнике независимо от наших действий), которыми являются Код и Наименование. Другими словами, в каждой строке справочника всегда есть поле кода и поле наименования. Начальные технические действия при разработке справочников аналогичны тем, которые мы рассматривали ранее при создании перечислений. Для того чтобы создать новый справочник, необходимо щелкнуть правой кнопкой мыши на пункте Справочники в дереве объектов конфигурации (см. рисунок 5) и в появившемся контекстном меню выбрать пункт. Добавить. В результате на экране откроется окно редактирования объекта конфигурации (рисунок 1.8).

Рисунок 1.8 Окно редактирования справочника Должности
Здесь на закладке Основные следует ввести имя, которое мы собираемся дать этому справочнику, — Должности. Таким образом, не выполнив особо сложных действий, мы создали новый объект конфигурации — справочник Должности, с которым уже можно работать, поскольку никаких дополнительных реквизитов в справочнике должностей не требуется. Следующий новый технический момент — заполнение созданного справочника в режиме работы 1С:Предприятие. Для этого в меню Отладка (см. рисунок 8) следует выбрать пункт Начать отладку, что позволит нам перейти в режим 1С:Предприятие или, можно сказать, в рабочую среду 1С:Предприятие (рисунок 1.9). Здесь уже можно работать с информационной базой, которая построена системой на основании созданной конфигурации. В частности, в разделе Операции (меню Справочники) доступен пункт, соответствующий названию только что созданного справочника Должности.

Рисунок 1.9 Окно информационной системы в режиме 1С:Предприятие
Теперь в режиме 1С:Предприятие заполним только что созданный справочник названиями ряда должностей (рисунок 1.10).

Рисунок 1.10 Вариант заполнения справочника Должности
Это, с одной стороны, даст некоторый практический навык, а с другой — заполненные информацией справочники потребуются для дальнейшей работы. При вводе данных в справочник следует обратить внимание на один важный момент. В процессе работы в режиме 1С:Предприятие пользователи просматривают и вводят информацию в справочники с помощью электронных форм (это справедливо и для других объектов). При этом, если мы в конфигураторе не совершаем никаких действий для создания формы справочника или какого-либо другого объекта, то система автоматически генерирует стандартные формы (это происходит в момент перехода в режим 1С:Предприятие). В частности, экранная форма списка справочника, которую мы использовали на рисунок 1.10, генерируется системой по умолчанию.
Таким образом, в режиме конфигуратора (в окне редактирования объекта конфигурации) для любого справочника можно ввести только имя на закладке Основные (см. рисунок 8), и после этого перейти в режим 1С:Предприятие и начать работу по внесению информации в базу данных. Эта возможность позволяет существенно ускорить процесс разработки, когда не требуется включения дополнительных сервисных функций помимо тех, которые имеются в формах, генерируемых системой по умолчанию.
Форма — это вспомогательный объект системы 1С:Предприятие, который предназначен для ввода и просмотра информации. Форма может быть эффективно использована для организации работы с данными. При открытии определенной формы справочника или документа система формирует на ней необходимую информацию. В дальнейшем при вводе данных в элементы, расположенные на форме, они сохраняются в соответствующих основных объектах (тех же справочниках, документах, регистрах и т. д.). Программный продукт 1С:Предприятие 8.1 предоставляет пользователю возможность при желании отказаться от самостоятельного создания форм, а использовать те, которые автоматически генерируются системой в режиме 1С:Предприятие.
КОНТРОЛЬНЫЕ ВОПРОСЫ
Для чего предназначен объект конфигурации Справочник?
Каковы характерные особенности справочника?
Для чего используются реквизиты и табличные части справочника?
Лабораторная работа №4. Справочник Специалисты
Цель: Студенты должны познакомиться с объектом конфигурации Справочник Специалисты. Узнать, для чего используется этот объект, какова его структура и какими основными свойствами он обладает.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
После создания в какой-то степени символического справочника Должности (он будет использоваться в дальнейшем для подстановки названий должностей) начнем разработку другого, более важного для рассматриваемой задачи справочника Специалисты.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Заполнив в окне редактирования объекта конфигурации традиционную для любого объекта закладку Основные, перейдем к следующей — Иерархия. В связи с тем, что наших специалистов мы собираемся классифицировать по группам (категориям или, можно сказать, по профилю специализации), то на закладке Иерархия следует отметить флажок Иерархический справочник (рисунок 1.11). Это позволит в режиме 1С:Предприятие создать категории специалистов, скажем, технического и гуманитарного направления. В рассматриваемой ситуации можно ограничить число уровней иерархии двумя. Следует отметить, что в режиме 1С:Предприятие доступны удобные возможности по переносу элементов справочника из одной группы в другую.

Рисунок 1.11 Закладка Иерархия окна редактирования справочника Специалисты
Обратимся теперь к закладке Данные (рисунок 1.12), где определяются реквизиты создаваемого справочника. Перед нами открывается управляющая форма, которая содержит много информации. В правой верхней части этой формы указаны размеры полей, отводимые для кода и наименования. Эти значения при создании нового справочника задаются по умолчанию, но при необходимости их можно изменить. Что касается длины кода, то достаточно оставить значение, предложенное по умолчанию, а для наименования (фактически для фамилии, имени и отчества специалиста) можно увеличить число символов до 50.
В центре окна редактирования справочника (см. рисунок 1.12) находится поле Реквизиты, в котором с помощью самой левой кнопки расположенного выше пиктографического меню можно добавлять дополнительные реквизиты в справочник.
В рассматриваемом нами примере создадим дополнительный реквизит Телефоны (рисунок 1.13) для хранения информации о контактных телефонах, по которым можно связаться с преподавателем.
Для каждого реквизита должен быть определен тип данных или, иначе говоря, тип значений, которые можно заносить в реквизит в режиме 1С:Предприятие. Этот параметр (а также другие) следует установить в окне свойств, которое открывается при двойном щелчке мышью по имени реквизита. В качестве типа данных для поля Телефоны можно указать — строка не более 50 символов (см. рисунок 1.13), поскольку номеров телефонов может быть несколько. После этого добавим еще один реквизит — Рейтинг (тип данных — Число) для характерисуноктики квалификации специалиста. Таким способом при необходимости можно добавлять разнообразные реквизиты в создаваемые справочники, делая их более информативными.

Рисунок 1.12 Закладка Данные окна редактирования справочника Специалисты

Рисунок 1.13 Создание реквизита Телефоны
С помощью кнопок панели инструментов, расположенной над перечнем реквизитов (они фактически являются подчиненными объектами), производится их добавление, удаление и упорядочивание.
Так, для каждого элемента справочника можно создать одну или несколько подчиненных табличных частей (таблиц). Здесь мы сразу воспользуемся этой возможностью и добавим в справочник Специалисты табличную часть с именем МестаРаботы (рисунок 1.14). Дело в том, что преподаватели (особенно высокой квалификации) часто одновременно работают в нескольких местах. При этом у одного специалиста дополнительных мест трудовой деятельности может быть три, а у другого даже пять. Табличная часть справочника для хранения информации подобного плана в этом случае идеально подходит. В противном случае мы должны были бы создавать несколько реквизитов вне табличной части, причем их количество заранее точно предусмотреть достаточно сложно. Далее уже в табличной части МестаРаботы создадим (что выполняется с помощью второй слева кнопки пиктографического меню, относящегося к табличным частям) реквизит Организация, в качестве типа данных которого следует указать — строка длиной не более 50 символов, а также добавим реквизит Должность (тип данных — СправочникСсылка.Должности). В этом случае, при работе в режиме 1С:Предприятие при заполнении поля Должность будет автоматически открываться форма справочника Должности.

Рисунок 1.14. Структура справочника Специалисты
КОНТРОЛЬНЫЕ ВОПРОСЫ
Зачем нужны иерархические справочники и что такое родитель?
Зачем нужны подчиненные справочники и что такое владелец?
Какие основные формы существуют у справочника?
Лабораторная работа №5. Редактирование справочника
Цель: Познакомится с инструментальными средствами в электронных формах справочников, которые позволяют пользователю создавать удобные формы для работы в режиме 1С:Предприятие.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
В предыдущей лабораторной работе, мы разработали структуру нового объекта конфигурации — справочника Специалисты, и теперь следует позаботиться о том, как пользователь будет с ним работать. Для этого в информационной системе существуют электронные формы справочников, а инструментальные средства позволяют пользователю создавать удобные формы для работы в режиме 1С:Предприятие.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Вернемся к нашей разработке и на закладке Формы в группе Редактирование сделаем установку — Обоими способами (рисунок 1.15). Этим мы указываем системе, что в режиме 1С:Предприятие будем использовать две стандартные формы — списка справочника и элемента справочника (данная форма имеет и другое название — форма диалога). Их система 1С:Предприятие автоматически создает сама при переключении в пользовательский режим.
В форме списка информация представлена в виде таблицы, где на каждую запись отводится одна строка (это обычный вид любого справочника). Основным достоинством подобной формы является то, что в этом случае на экране видно сразу несколько записей (элементов) справочника.

Рисунок 1.15. Закладка Формы окна редактирования объекта конфигурацииС другой стороны, недостаток формы списка обнаруживается, когда в справочнике присунокутствует много колонок (большое количество реквизитов), и хотелось бы, чтобы все они одновременно были видны пользователю. При практической работе в этом случае форму списка часто приходится прокручивать, чтобы увидеть необходимую информацию. Заметим, что при желании пользователь может самостоятельно настроить отображаемые колонки прямо в режиме работы 1С:Предприятие, хотя существует и другая возможность. Эта возможность заключается в использовании еще одной стандартной формы — формы элемента, которая позволяет отображать на экране информацию только об одном элементе справочника. При этом, даже если реквизитов в справочнике много, все они видны на экране (точнее, могут быть видны, т. к. показ любого визуального элемента можно отключить). У формы элемента имеется еще одно существенное достоинство. Если в справочнике присунокутствует табличная часть (как в только что созданном справочнике Специалисты), то в форме списка она не отображается, а в форме элемента, наоборот, видна.
Посмотрим теперь, как воспользоваться возможностью редактирования справочника обоими способами в режиме 1С:Предприятие. Для этого перейдем в этот режим (через меню Отладка) и откроем справочник Специалисты. Ранее при его разработке мы указали, что справочник Специалисты будет иерархическим, и сейчас создадим две группы — Техническое направление и Гуманитарное направление (рисунок 1.16). Для этого воспользуемся пиктограммой Создание новой группы из пиктографического меню в верхней части окна формы справочника.
Для перехода в режим 1С:Предприятие из режима конфигуратора можно воспользоваться меню Сервис, где следует выбрать пункт 1С:Предприятие. В процессе разработки конфигурации удобнее пользоваться пунктом Начать отладку меню Отладка.
Теперь нужно определиться, какую именно экранную форму справочника Специалисты мы будем использовать при редактировании (она же будет использоваться и при создании новой строки в справочнике). Для этого у нас есть форма списка и форма элемента. Один из этих двух вариантов следует установить с помощью пункта. Редактировать в диалоге, расположенного в меню Действия (см. рисунок 1.16). При установке опции. Редактировать в диалоге в случае попытки создания нового элемента (либо редактирования уже имеющегося) будет автоматически открываться форма элемента. Соответственно, если отменить режим. Редактировать в диалоге, будет автоматически открываться форма списка.

Рисунок 1.16. Создание групп в справочнике Специалисты

Рисунок 1.17. Заполнение формы элемента справочника Специалисты
На рисунок 1.17 показан пример заполнения элемента справочника для специалиста, который входит в группу Техническое направление. Видно, что в этом случае при редактировании элемента нам становится доступна для работы и табличная часть справочника.
На рисунок 1.18 приведена форма списка рассматриваемого справочника, где в группу Техническое направление внесено несколько элементов. Однако информации из табличной части в этом случае на экране не видно.

Рисунок 1.18. Форма списка справочника Специалисты
Таким образом, мы познакомились с технологией разработки структуры справочников (объектов конфигурации) в режиме конфигуратора, а также узнали, каким образом заполнять справочники данными с помощью электронных форм, создаваемых системой по умолчанию. На этапе разработки и отладки прикладных решений такой вариант используется достаточно часто.
КОНТРОЛЬНЫЕ ВОПРОСЫ
Что такое предопределенные элементы?
Чем, с точки зрения конфигурации, отличаются обычные элементы справочника от предопределенных элементов?
Что такое окно редактирования объекта конфигурации?
Лабораторная работа №6. Справочник Курсы
Цель: Студенты должны познакомиться с объектом конфигурации Справочник Курсы. Узнать, для чего используется этот объект, какова его структура и какими основными свойствами он обладает.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Следующая Лабораторная задача заключается в создании справочника, который будет хранить информацию об учебных курсах, предлагаемых учащимся нашего учебного центра. В этом же справочнике в дополнительных реквизитах мы поместим информацию о стоимости курсов и их продолжительности. В функциональном плане новый справочник будет несколько сложнее предыдущего. Так, мы предусмотрим контроль корректности вводимых данных со стороны системы.
Техническая работа во многом будет аналогичной ранее рассмотренным действиям, и поэтому подчеркнем лишь существенную информацию для выполнения практических действий в конфигураторе. Создаваемый справочник назовем Курсы, а кроме обязательных реквизитов Код и Наименование добавим еще четыре:
ДатаНачала — для записи даты начала занятий по данному курсу (очевидно, что в качестве типа данных следует выбрать Дата);
Продолжительность — для определения продолжительности занятий в неделях (тип данных — Число);
Стоимость — для указания стоимости обучения (тип данных — также Число);
Преподаватель — для определения специалиста, который будет эту дисциплину вести (тип данных — СправочникСсылка.Специалисты).
При создании справочников (как, впрочем, и других объектов) системой автоматически генерируются новые типы данных. Так, когда мы создали справочник Специалисты, то в системе появился новый тип данных СправочникСсылка.Специалисты. Это позволяет нам хранить в указанном выше поле Преподаватель ссылку на конкретный элемент справочника (он также является объектом) Специалисты. Подобные типы данных будут часто встречаться в книге при разработке объектов конфигурации.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Присуноктупим к созданию еще одного справочника и теперь перейдем на закладку Формы (рисунок 1.19), где создадим пользовательскую форму списка. С другими справочниками мы использовали формы, генерируемые системой по умолчанию, но сейчас это нас не устроит.

Рисунок 1.19. Закладка Формы окна редактирования справочника Курсы
Для создания формы щелкнем в окне редактирования объекта конфигурации по изображению лупы, расположенной напротив пункта Списка в группе Основные формы. В результате мы перейдем к работе с конструктором экранной формы справочника и в первом диалоговом окне установим значения опций в соответствии с рисунок 1.20 (если вы параллельно выполняете описанные действия на компьютере, то эти параметры, скорее всего, уже установлены конструктором по умолчанию).
На рисунок 1.20 группа элементов управления Выберите тип формы предназначена для выбора типа формы. Состав этих элементов определяется видом объекта конфигурации, для которого мы создаем форму. Скажем, для справочников эти объекты одни, а для документов — другие. Число форм каждого типа неограниченно, а при наличии у объекта нескольких форм одного типа одну из них можно назначить в качестве основной. Для указания основной формы при разработке следует установить флажок Назначить форму основной.

Рисунок 1.20. Окно конструктора формы справочника Курсы
После этого в следующем окне (рисунок 1.21) необходимо будет включить все только что введенные нами реквизиты в создаваемую форму справочника.

Рисунок 1.21. Установка отображения элементов на форме справочника Курсы
Нажав кнопку Готово, мы увидим на экране структуру формы списка справочника Курсы (рисунок 1.22). Форма практически готова, следует только немного изменить ширину колонок в соответствии с подписями в первой строке. Это легко выполнить с помощью мыши (аналогичным образом подбирается ширина колонок для рабочих листов в приложении Microsoft Excel).
Если скептически взглянуть на только что выполненную работу, то можно сказать — наши действия привели к созданию формы, на первый взгляд аналогичной той, с которой мы уже встречались (форма списка, генерируемая по умолчанию).

Рисунок 1.22. Структура формы списка справочника Курсы
Перейдем в режим 1С:Предприятие и заполним справочник Курсы информацией с помощью созданной формы (рисунок 1.23).
В принципе, это же мы могли бы сделать и с помощью автоматически генерируемой формы. Плюсы пользовательской формы заключаются в возможности дополнения функциональности расположенных на ней элементов управления, а также просто для внесения в эти элементы небольших изменений с помощью визуальных средств разработки. Так, разработчик конфигурации может написать программную процедуру, выполняемую при определенном событии на форме (при нажатии кнопки или при выборе значения из списка). Кроме того, на подобной форме можно размещать дополнительные объекты.

Рисунок 1.23. Заполнение справочника Курсы в режиме 1С:Предприятие
Форма списка в окне редактирования объекта конфигурации (см. рисунок 1.22) представлена тремя закладками — Диалог, Модуль и Реквизиты. Закладка Диалог отображает прямоугольную область экрана, которая предназначена для размещения разнообразных элементов управления (кнопок, надписей, полей ввода и др.). Ее содержание определяет интерфейс пользователя в режиме 1С:Предприятие при работе с формой. Закладка Модуль предназначена для размещения процедур на встроенном языке программирования. Эти процедуры обеспечивают обработку действий со стороны пользователя, а также системных событий (например, открытия формы). Закладка Реквизиты отображает совокупность объектов разных типов, принадлежащих форме.
Продемонстрируем теперь на простом примере добавление дополнительных функциональных возможностей в форму справочника. Наша первая задача заключается в небольшой доработке созданной формы. Для этого потребуются только визуальные средства конструктора форм.
На рисунок 1.23 в столбце Наименование отражаются названия курсов. Наша задача заключается в том, чтобы заменить это стереотипное название более осмысленным — Названия курсов. Для этого необходимо в окне редактирования объекта конфигурации двойным щелчком на надписи Наименование открыть окно свойств этого элемента управления и поменять содержание в поле ТекстШапки (рисунок 1.24). В результате проделанных действий изменяется только внешний вид формы — подпись над одной из колонок, а само имя реквизита Наименование остается прежним.

Рисунок 1.24. Изменение текста шапки в форме списка справочника Курсы
Теперь, если перейти в режим 1С:Предприятие и открыть справочник Курсы, можно увидеть результат — надпись в колонке названий курсов изменилась (рисунок 1.25). В форме, генерируемой системой 1С:Предприятие по умолчанию, даже такое простое изменение было для нас невозможно.

Рисунок 1.25. Результат изменений в форме списка справочника Курсы
Выполним еще одну несложную доработку формы — для продолжительности курсов установим ограничение по интервалу — от двух до семи недель. Это позволит пользователю в процессе заполнения справочника избежать случайных ошибок. Для реализации подобной возможности достаточно всего лишь в окне свойств установить значения параметров МинимальноеЗначение и МаксимальноеЗначение (рисунок 1.26). В нашей ситуации, как сказано ранее, продолжительность курсов должна лежать в интервале от двух до семи недель.

Рисунок 1.26. Окно свойств поля ввода продолжительности курсовТеперь при работе в режиме 1С:Предприятие в случае неправильно указанной продолжительности курсов система сама будет сообщать нам об ошибке (рисунок 1.27).

Рисунок 1.27. Реакция системы 1С:Предприятие на ошибочный ввод данных
КОНТРОЛЬНЫЕ ВОПРОСЫ
Как создать объект конфигурации справочник и описать его структуру?
Когда следует использовать редактирование справочника в списке, а когда – в диалоге?
Как добавить новые элементы в справочник?
Лабораторная работа №7. Печатная форма справочника
Цель: Студенты должны познакомиться с конструктором печати. Узнать, каким образом можно автоматизировать процесс создания печатных форм для объектов системы 1С:Предприятие 8.1.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
После разработки ряда справочников (в том числе справочника Курсы) можно сказать, что знакомство с конфигуратором системы 1С:Предприятие 8.1 произошло, и теперь наступила очередь познакомиться со встроенным языком программирования. При этом мы начнем не с самостоятельного написания программ, а пока, в качестве начальных действий, воспользуемся возможностями конструктора, а именно конструктора печати. Это одно из средств, которое существенно облегчает труд разработчика. В этом случае мы фактически продолжаем работу в режиме визуальной разработки, а программный код генерируется конструктором автоматически как результат наших действий. Тем самым программные конструкции становятся доступными для изменения и изучения (что весьма помогает на начальном этапе знакомства со встроенным языком программирования). Такая технология (получение программного кода с помощью конструктора и его изменение программистом при необходимости) позволяет существенно ускорить процесс разработки и уменьшить количество ошибок и неточностей. Именно этой возможностью мы и воспользуемся в следующем разделе.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Практически всегда кроме электронных форм справочников при работе пользователям требуются и их печатные варианты (это же распространяется и на другие объекты, с которыми мы столкнемся в дальнейшем). Приводимый далее пример будет связан с уже известным справочником Курсы, и поэтому начнем с того, что в режиме конфигуратора откроем окно редактирования этого справочника.
Теперь для дальнейших действий (создания печатной формы) необходимо перейти на закладку Макеты (рисунок 1.28), где в нижней части окна расположена кнопка Конструкторы. Щелкнув по ней, воспользуемся еще одним из инструментов разработки системы 1С:Предприятие, который называется Конструктор печати.
Сам по себе диалог несложен. В первом открывшемся окне потребуется сделать установку для создания процедуры в модуле формы (рисунок 1.29). Это приведет к тому, что автоматически созданный конструктором печати текст процедуры будет располагаться в окне редактирования объекта ФормаСписка на закладке Модуль (см. рисунок 1.26). Именно там данную процедуру можно найти по завершении работы конструктора, а в дальнейшем мы увидим, как результат работы конструктора можно изменить. А пока вернемся к техническим действиям.

Рисунок 1.28. Закладка Макеты окна редактирования справочника Курсы
1889760-1968500
Рисунок 1.29. Окно конструктора печати

Рисунок 1.30. Формирование реквизитов шапки для печатной формы справочника Курсы
Следующее окно (рисунок 1.30) позволяет определить, какие реквизиты шапки мы хотим расположить на печатной форме. В данном случае следует с помощью соответствующей пиктограммы перенести все реквизиты, кроме поля Код. Если поле Код присунокутствует в списке реквизитов шапки, то удалить его можно с помощью двойного щелчка мыши. После нажатия кнопки Далее открывается завершающее окно конструктора, где осталось лишь сделать установку (рисунок 1.31) для создания новой кнопки, при нажатии на которую в режиме 1С:Предприятие будет вызываться процедура формирования печатной формы справочника. При этом можно выбрать другое имя кнопки, если слово Печать нас не устраивает. Таким образом, действия, выполняемые в диалоговом окне конструктора печати, достаточно просты, а итог, как мы увидим далее, весьма эффективен. Один из результатов работы конструктора печати появляется сразу после нажатия кнопки OK (см. рисунок 1.31).
На рисунок 1.32 показан так называемый макет печатной формы, представляющий собой заготовку (шаблон) для печатного документа, который будет создаваться системой при работе в режиме 1С:Предприятие. Макет печатной формы доступен для разработчика — его всегда можно открыть и посмотреть (а при необходимости и изменить) на закладке Макеты (см. рисунок 1.28). После завершения работы конструктора на закладке вы увидите пиктограмму нового объекта конфигурации — макета Печать.
Для проектирования макета используется редактор табличного документа, входящий в систему 1С:Предприятие. В процессе создания макета в ячейки вводится текст (это может быть выполнено не только в результате работы конструктора, но и непосредственно разработчиком). При этом можно задавать параметры форматирования для ячеек. Печатные формы, как правило, содержат несколько различных областей — заголовочную область, таблицу, место для итоговых показателей и др. Это связано с тем, что информация, выводимая в отчеты, обычно неоднородна — есть табличные данные, заголовок, область размещения подписей. Макет представляет собой совокупность прямоугольных областей, каждая из которых служит для формирования какой-то части печатной формы. Заметим, что табличный документ (его визуальное представление и есть печатная форма) и макет — это различные объекты. И, в общем, они не связаны между собой. Макет представляет собой некий эталон для табличного документа, показывающий, как необходимо создавать табличный документ. Можно сказать, что в конфигураторе мы определяем вид печатной формы, которую хотим увидеть затем при работе в режиме 1С:Предприятие.

Рисунок 1.32. Макет печатной формы
Другим результатом работы конструктора печати является процедура Печать(), которая выполняется при работе в режиме 1С:Предприятие и взаимодействует с макетом. Результатом этого взаимодействия является табличный документ, отражающий информацию из справочника (документа или другого объекта). Что касается названия процедуры, то мы его выбрали ранее сами в процессе диалога с конструктором (см. рисунок 1.29). Возникает вопрос — как эту процедуру найти, или где она находится? Для этого в окне конструктора формы списка справочника следует перейти на закладку Модуль, где и располагается ее текст (он приведен в листинге 1.1). Кроме того, на самой форме списка справочника конструктором печати создана кнопка Печать (она располагается в правой нижней части на рисунок 1.33), щелчком по которой в режиме 1С:Предприятие эту процедуру можно выполнить.

Рисунок 1.33. Размещение кнопки Печать на форме списка справочника
Листинг 1.1. Процедура печати справочника Курсы
Процедура Печать(Элемент)
//{{_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК(Печать)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора внесенные вручную
// изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Справочники.Курсы.ПолучитьМакет("Печать");
// Заголовок
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
// Шапка
Область = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Область);
Выборка = Справочники.Курсы.Выбрать();
Элемент = Макет.ПолучитьОбласть("Элемент");
Пока Выборка.Следующий() Цикл
Элемент.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Элемент);
КонецЦикла; ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
//}}_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК КонецПроцедурыПервая и последняя строки листинга 1.1 ограничивают содержание процедуры. Ключевое слово Процедура (вместе с ее именем справа) определяет начало процедуры, а другое — КонецПроцедуры говорит о завершении ее текста. При рассмотрении листинга 1.1 бросается в глаза, что несколько строк начинаются с двух наклонных черт. Это комментарий, который не выполняется, а предназначен лишь для наглядности текста программы. В первой выполняемой строке создается новый объект типа ТабличныйДокумент, а переменной ТабДок присунокваивается ссылка на него.
Термин "ссылка" уже упоминался ранее, но здесь попробуем пояснить его более точно. В процессе работы программы в памяти компьютера присунокутствует много объектов, и для работы с ними ключевой является информация об их местонахождении в памяти. Фактически эта информация и содержится в ссылке (ссылке на конкретный объект). После выполнения первой строки процедуры переменная ТабДок содержит ссылку на новый табличный документ, что позволяет нам в дальнейшем работать со свойствами и методами этого объекта.
Упрощенно объект типа ТабличныйДокумент представляет собой таблицу, но включает в себя разнообразные свойства и методы работы с ней. В строке
Макет = Справочники.Курсы.ПолучитьМакет("Печать");
используется метод ПолучитьМакет(), в качестве входного параметра которого указывается имя макета печатной формы, который был создан непосредственно конструктором.
Табличный документ является объектом, который предназначен при разработке конфигураций для формирования печатных форм основных объектов (справочников, документов, регистров и др.), а также для форм, в которых информация представляется в табличном виде.
Автоматически созданный конструктором макет с именем Печать имеет несколько областей, одна из которых содержит заголовочную информацию. Она так и называется — Заголовок (см. рисунок 1.32). В следующих двух строках процедуры в табличный документ выводится эта первая секция:
Область = Макет.ПолучитьОбласть("Заголовок"); ТабДок.Вывести(Область);
Таким способом происходит заполнение табличного документа на основании макета. Содержание областей макета и их названий, сформированное по умолчанию, мы в принципе можем изменить, однако в рассматриваемом примере этого делать не будем.
Учитывая вид макета (см. рисунок 1.32), можно сказать, что печатная форма справочника Курсы представляет собой совокупность одинаковых по структуре строк, подписи для которых располагаются в секции Шапка. Метод Выбрать(), применяемый к справочнику Курсы, позволяет подготовить дальнейшую последовательную выборку строк справочника, которая непосредственно осуществляется с помощью другого метода — Следующий(). Этот метод последовательно извлекает все имеющиеся элементы выборки (в данном случае в выборку входят все строки, но может быть и по-другому), и при каждом проходе цикла, организованного с помощью строки
Пока Выборка.Следующий() Цикл
мы получаем очередной элемент справочника. Элемент справочника также представляет собой один из объектов системы 1С:Предприятие. В этом цикле перебора строк справочника производится заполнение секции Элемент информацией, содержащейся в реквизитах. Для этого используется свойство Параметры, позволяющее получить доступ к значениям конкретных параметров, расположенных в области макета. В нашем примере производится заполнение параметров информацией об очередном элементе справочника:
Элемент.Параметры.Заполнить(Выборка);
После установки значений параметров с помощью метода Вывести() область табличного документа заполняется на основании макета. И результат выполнения цикла (перебора элементов справочника) заключается в том, что в табличном документе создается несколько строк, и их количество совпадает с числом элементов в справочнике Курсы. Завершающая часть процедуры связана с настройкой табличного документа — режимом вывода заголовков, возможности редактирования полученного документа и т. д. Так, в конструкции
ТабДок.ОтображатьСетку = Ложь;
указано, что не надо выводить сетку. В качестве альтернативы для свойства табличного документа ОтображатьСетку можно указать значение Истина. Тогдадля всего табличного документа (в режиме 1С:Предприятие) будет установлена сетка.
Свойство Защита позволяет при установке для него значения Истина защитить табличный документ от редактирования и копирования. В нашем примере мы этого не делали:
ТабДок.Защита = Ложь;
Однако если для данного свойства установить значение Истина, то в режиме 1С:Предприятие скопировать табличный документ в буфер обмена не удастся. Свойство ТолькоПросмотр позволяет обеспечить два варианта работы с табличным документом:
только просмотра информации (при значении Истина), в этом случае будут недоступны для редактирования ячейки и рисунокунки, у которых установлено свойство Защита (установка производится в окне свойств);
возможность изменения информации (при значении Ложь) в табличном документе при работе в режиме 1С:Предприятие.
Свойство ОтображатьЗаголовки содержит признак отображения заголовков колонок и строк таблицы. Если для данного свойства установлено значение Истина, то в табличном документе будут выведены номера строк и колонок в левой и верхней частях таблицы. Обратим внимание на последнюю строку процедуры листинга 1.1:
ТабДок.Показать();
в которой используется метод Показать() для отображения табличного документа на экране.
Теперь осталось перейти в режим работы 1С:Предприятие, открыть форму списка справочника Курсы, внести в справочник несколько названий курсов и щелкнуть по кнопке Печать. На рисунок 1.34 показана заполненная печатная форма (вместе с электронной формой списка) в режиме 1С:Предприятие.
При желании печатную форму можно скорректировать (изменить содержание ячеек), а также сохранить как рабочую книгу Microsoft Excel (для этого следует в меню Файл при сохранении воспользоваться вариантом рабочей книги Microsoft Excel).
Созданные программные фрагменты были сгенерированы системой самостоятельно, однако сделанными разработками можно воспользоваться для внесения дополнений. Именно так мы и поступим в следующей лабораторной работе.

Рисунок 1.34. Форма списка и печатная форма справочника Курсы
КОНТРОЛЬНЫЕ ВОПРОСЫ
Как создать группу справочника?
Как пользователь может отличить обычные элементы справочника от предопределенных элементов?
Как переместить элементы из одной группы справочника в другую?
Лабораторная работа №8. Внесение изменений в печатную форму
Цель: Студенты должны познакомиться с конструктором печати. Узнать, каким образом можно автоматизировать процесс создания печатных форм для объектов системы 1С:Предприятие 8.1.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Попробуем самостоятельно немного изменить вид табличного документа. Из рисунок 1.34 видно, что вместе с датой начала курсов выводится еще и время, что нам не требуется, и теперь наша задача этот недостаток устранить.
Редактор форм позволяет размещать на форме различные элементы управления, задавать их размеры, выравнивать границы, определять механизм поведения при различных действиях пользователя. Основное назначение элементов управления заключается в обеспечении функциональности при работе с формой.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
В конфигураторе откроем уже знакомый макет Печать, который отражает все поля, выводимые в табличный документ, и щелкнем правой кнопкой на параметре ДатаНачала (рисунок 1.35). В результате перед нами откроется контекстное меню, в котором следует выбрать раздел Свойства, где мы установим необходимый формат даты.

Рисунок 1.35. Окно свойств ячейки макета
Если после сделанных изменений перейти в режим 1С:Предприятие и открыть печатную форму справочника, то вы увидите только дату в требуемом формате без информации о времени (рисунок 1.36). Как и в большинстве инструментальных сред разработки, в режиме конфигуратора системы 1С:Предприятие имеется возможность размещения на экранных формах разнообразных элементов управления.

Рисунок 1.36. Исправленная печатная форма справочника Курсы
Сделаем в рассматриваемой форме списка справочника Курсы еще одну доработку — обеспечим возможность печати только коротких курсов, т. е. тех курсов, которые продолжаются только две недели. Для этого на экранную форму списка справочника следует добавить элемент управления типа флажок, с помощью которого можно будет сформировать либо полный печатный вариант справочника, либо только перечень коротких (двухнедельных) курсов. Интерфейс формы списка справочника в этом случае необходимо дополнить элементом управления (рисунок 1.37) и обеспечить его функциональность.

Рисунок 1.37. Добавление флажка в форму списка справочника Курсы
Флажок — это элемент управления, который предназначен для выбора одного значения (из двух либо трех возможных). Тип значения, связанный с флажком, определяет количество его состояний. Если у флажка установлен тип значения Булево, то он имеет два состояния (установлен либо снят). А если выбран тип значения Число, то флажок может иметь три состояния (установлен, снят либо неопределенное значение).
В режиме конфигуратора при открытой форме (в данном случае мы работаем с формой списка) меню в верхней части окна изменяется — в нем появляется пункт Форма. В рассматриваемой ситуации от нас требуется в этом пункте меню выбрать пункт Вставить элемент управления, а затем в списке элементов щелкнуть на строке Флажок. Для флажка установим имя КороткиеКурсы, а аналогичный заголовок (подпись на форме рядом с флажком) среда разработки сформирует автоматически. Теперь от нас требуется немного подкорректировать процедуру печати, ранее созданную конструктором. Изменения отражены в тексте листинга 1.2. Это будет нашим первым шагом самостоятельного написания программного кода. Вообще такой стиль программирования достаточно популярен — часть работы выполняется с помощью средств автоматизации, а затем ряд корректирующих действий производится вручную.
Листинг 1.2. Процедура печати справочника Курсы (с отбором двухнедельных курсов)
Процедура Печать(Элемент)
//{{_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК(Печать)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора внесенные вручную
// изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Справочники.Курсы.ПолучитьМакет("Печать");
// Заголовок
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
// Шапка
Область = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Область);
Если (ЭлементыФормы.КороткиеКурсы.Значение=Истина) Тогда
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Продолжительность",2);
Выборка = Справочники.Курсы.Выбрать(,,СтруктураОтбора);
Иначе
Выборка = Справочники.Курсы.Выбрать();
КонецЕсли;
Элемент = Макет.ПолучитьОбласть("Элемент");
Пока Выборка.Следующий() Цикл
Элемент.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Элемент);
КонецЦикла; ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
//}}_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК КонецПроцедурыПеред тем как прокомментировать строки листинга 1.2 с новыми программными конструкциями, учтем, что многие сразу попробуют посмотреть результат выполнения данной процедуры в режиме 1С:Предприятие. В связи с этим сделаем важное замечание: необходимо вернуться в окно редактирования объекта конфигурации и у реквизита Продолжительность установить значение Индексировать для свойства Индексировать (рисунок 1.38).
Зачем это надо сделать, поясним далее, а пока перейдем в режим 1С:Предприятие и посмотрим, как выполненные изменения сказываются на формировании табличного документа.

Рисунок 1.38. Окно свойств реквизита Продолжительность
Теперь уже можно внимательнее рассмотреть текст выполненных в процедуре изменений. Так, в программный код мы добавили оператор условия
Если (ЭлементыФормы.КороткиеКурсы.Значение=Истина) Тогда
который позволяет выполнить последующий (до ключевого слова Иначе) фрагмент программы только при выполнении указанного условия.
Оператор Если управляет выполнением программы, основываясь на результате логического выражения. Операторы, следующие за ключевым словом Тогда, выполняются, если результатом логического выражения является значение Истина. Операторы, следующие за ключевым словом Иначе, выполняются (до оператора КонецЕсли), если результат логического выражения в конструкции Если оказался равен значению Ложь. Заметим, что конструкция Если имеет еще расширенный вариант синтаксиса, информацию о котором можно легко найти с помощью системы электронной помощи, включенной в программный продукт 1С:Предприятие 8.1.
Программно состояние флажка КороткиеКурсы определяется с помощью свойства Значение этого объекта, и если флажок установлен, то Значение= Истина.
Таким образом, если пользователем рассматриваемый флажок на форме установлен, то выполняется фрагмент процедуры, позволяющий сформировать условия отбора для метода Выбрать():
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Продолжительность",2);
Выборка = Справочники.Курсы.Выбрать(,,СтруктураОтбора);
Объект Структура представляет собой коллекцию пар. Каждая пара состоит из имени переменной (ключа) и значения переменной, которое нас устраивает при дальнейшем отборе (это значение ключа). В данном случае в структуре отбора размещается переменная Продолжительность (реквизит справочника), а для ее значения устанавливается цифра 2 (две недели). После этого для справочника применяется метод Выбрать() с использованием параметра СтруктураОтбора, и этому методу стоит дать небольшой комментарий. У метода Выбрать() четыре параметра, но все они являются необязательными. Мы здесь используем только третий параметр, который задает поле и значение отбора для выборки. Поэтому в программной конструкции место первых двух необязательных параметров необходимо отметить запятыми.
В качестве реквизитов для отбора могут использоваться только поля Код, Наименование и реквизиты справочника, для которых в конфигураторе признак индексирования установлен в значение Индексировать или в значение Индексировать с доп. упорядочиванием.
В связи с этим стоит обратить внимание на то, чтобы для реквизита Продолжительность признак индексирования был установлен в значение Индексировать (см. рисунок 1.38). После этого метод Выбрать() позволяет сформировать выборку элементов справочника по заданным условиям. Если в режиме работы 1С:Предприятие флаг КороткиеКурсы на форме не установлен, то метод Выбрать() в тексте процедуры вызывается без указания отбора и позволяет получить в выборке все элементы справочника Курсы. Доступ к созданным на форме элементам обеспечивается с помощью объекта ЭлементыФормы. Далее правила синтаксиса требуют указать (через точку) имя элемента управления, который нам необходим, а затем, также через точку, его свойство. Таким образом, установка флажка на форме проверяется с помощью следующей программной конструкции:
ЭлементыФормы.КороткиеКурсы.Значение = Истина
В результате добавленного программного кода при снятии флажка на форме табличный документ будет заполняться всеми элементами, внесенными в справочник Курсы, а при его установке в печатную форму попадут только те курсы, продолжительность которых равна двум неделям.
Объект ЭлементыФормы является коллекцией размещенных на форме элементов управления.
Для тестирования дополненной разработки в режиме работы 1С:Предприятие внесем в справочник двухнедельный курс, а затем при установленном флажке заполним печатную форму. Один из вариантов подобной ситуации показан на рисунок 1.39. В данном случае условие отбора достаточно простое и рассматриваемого программного отбора вполне достаточно.

Рисунок 1.39. Печатная форма справочника с отражением только коротких курсов
КОНТРОЛЬНЫЕ ВОПРОСЫ
Как запустить 1С:Предприятие в режиме отладки?
Зачем нужна основная конфигурация и конфигурация базы данных?
Как изменить конфигурацию базы данных?
Лабораторная работа №9. Справочник Клиенты
Цель: Студенты должны познакомиться с объектом конфигурации Справочник Клиенты. Узнать, для чего используется этот объект, какова его структура и какими основными свойствами он обладает.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Добавим в нашу информационную базу еще один справочник, который назовем Клиенты. В нем будут отражены учащиеся или слушатели наших курсов. Для продолжения практических действий вернемся в конфигуратор и начнем уже известным способом создание нового справочника.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Во-первых, на закладке Данные необходимо внести информацию о реквизитах в соответствии с рисунок 1.40. Для реквизитов справочника Адрес и Телефоны в качестве типа данных укажем — строка длиной не более 50 символов.
Во-вторых, с помощью кнопки пиктографического меню в нижней части окна редактирования объекта конфигурации создадим табличную часть с именем ИзучаемыеКурсы.
В-третьих, в созданной табличной части разместим два реквизита (рисунок 1.41) — Курс (тип данных — СправочникСсылка.Курсы) и СтатусУчащегося (тип данных — ПеречислениеСсылка.Статус).
В этом случае при заполнении данных полей в режиме работы 1С:Предприятие будут открываться соответственно форма списка справочника Курсы и форма списка перечисления Статус. Для просмотра и заполнения справочника в режиме работы 1С:Предприятие можно воспользоваться электронными формами ввода, генерируемыми системой по умолчанию. Однако далее в этом разделе нам понадобится разместить на форме кнопку Печать, и для того чтобы это сделать, необходима пользовательская форма

Рисунок 1.40. Окно редактирования справочника Клиенты
Начнем конструкторские действия. Первое, что требуется, — перейти на закладку Формы (рисунок 1.42) и сделать установку на редактирование — В диалоге. Иначе (при редактировании в форме списка) табличная часть справочника будет недоступна. Можно было также воспользоваться и вариантом Обоими способами. Тогда в режиме 1С:Предприятие пользователю предоставляется возможность выбора или формы списка, или формы элемента. Для этого следует использовать кнопку Действия (она видна в левом верхнем углу на рисунок 1.39).

Рисунок 1.41 Добавление реквизитов в табличную часть справочника Клиенты

Рисунок 1.42 Закладка Формы окна редактирования справочника Клиенты
На практике вариант редактирования данных обоими способами при работе со справочниками используется очень часто в связи с его мобильностью — легко перейти от одной формы к другой. Форма списка концентрированно отражает информацию о многих элементах справочника, но при этом, если реквизитов много, то вид представления информации может быть не очень удобен для просмотра конкретного элемента. Эту проблему снимает форма элемента, которая предоставляет удобную возможность для просмотра, анализа и изменения элементов справочника.
Вернемся к нашей разработке в конфигураторе и щелкнем по изображению лупы в группе Основные формы напротив надписи — Элемента, после чего сделаем необходимые установки в следующем окне (рисунок 1.43)

Рисунок 1.43 Окно конструктора формы справочника
Теперь после щелчка по кнопке Далее перед нами открывается окно, позволяющее скрыть либо отобразить отдельные реквизиты справочника на форме (рисунок 1.44).

Рисунок 1.44 Окно для включения реквизитов справочника в форму
В данном случае следует оставить все созданные нами реквизиты. После этого осталось нажать кнопку Готово, и в итоге мы увидим на экране сформированную форму элемента справочника Клиенты (рисунок 1.45).

Рисунок 1.45 Форма элемента справочника Клиенты в режиме конфигуратора
Теперь, когда форма, необходимая для работы со справочником, готова, можно перейти в режим 1С:Предприятие (с помощью знакомой команды Начать отладку) и внести информацию об учащихся в созданный справочник. На рисунок 1.46 показан пример заполнения формы элемента справочника информацией об одном из учащихся.

Рисунок 1.46 Форма справочника Клиенты в режиме работы 1С:Предприятие
Перейдем к созданию печатного варианта формы элемента справочника (табличного документа, отражающего информацию, расположенную на форме). Для этого опять воспользуемся возможностями конструктора печати. Мы уже знакомы с техническими действиями для его вызова — в окне редактирования объекта конфигурации (рисунок 1.47) требуется перейти на закладку Макеты, где следует воспользоваться кнопкой Конструкторы.

Рисунок 1.47 Закладка Макеты окна редактирования справочника Клиенты
В системе имеются конструкторы форм констант, справочников, документов, журналов документов, отчетов и других объектов, конструкторы печатных форм, конструкторы движений регистров и др., облегчающие труд разработчика. В процессе диалога с конструктором укажем, что создаваемая процедура должна располагаться в модуле формы (в данном случае это будет ФормаЭлемента). В реквизиты шапки перенесем Наименование, Адрес и Телефоны, а в реквизиты табличной части — Курс и СтатусУчащегося. Подвал табличного документа нам не потребуется. В завершение диалога укажем на необходимость создания кнопки Печать на форме. По итогам диалога с конструктором на закладке Макеты мы увидим макет Печать (рисунок 1.48).

Рисунок 1.48 Макет табличного документа
Как мы уже знаем, параллельно с формированием макета конструктор печати на закладке Модуль формы элемента справочника расположил программную процедуру, позволяющую создать табличный документ на основании структуры макета Печать и информации, содержащейся в справочнике (листинг 1.3).
Листинг 1.3. Процедура печати элемента справочника Клиенты
Процедура Печать(Элемент)
//{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора
// внесенные вручную изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Справочники.Клиенты.ПолучитьМакет("Печать");
// Заголовок
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
// Шапка
Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.Параметры.Заполнить(ЭтотОбъект);
ТабДок.Вывести(Шапка);
// ИзучаемыеКурсы
Область = Макет.ПолучитьОбласть("ИзучаемыеКурсыШапка");
ТабДок.Вывести(Область);
ОбластьИзучаемыеКурсы = Макет.ПолучитьОбласть("ИзучаемыеКурсы");
Для Каждого ТекСтрокаИзучаемыеКурсы Из ИзучаемыеКурсы Цикл
ОбластьИзучаемыеКурсы.Параметры.Заполнить(ТекСтрокаИзучаемыеКурсы);
ТабДок.Вывести(ОбластьИзучаемыеКурсы);
КонецЦикла;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
//}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ КонецПроцедурыЗдесь новым моментом является использование цикла перебора строк табличной части элемента справочника: Для Каждого ТекСтрокаИзучаемыеКурсы Из ИзучаемыеКурсы Цикл
Такой цикл позволяет заполнить табличную часть печатной формы элемента справочника Курсы. Строки созданной конструктором процедуры уже знакомы нам по листингу 1.2.
Оператор цикла Для Каждого предназначен для циклического обхода коллекции значений. При каждой итерации цикла возвращается новый (очередной) элемент коллекции. Цикл продолжается до окончания перебора всех элементов.
На рисунок 1.49 показан пример формирования печатной формы элемента справочника Курсы в режиме 1С:Предприятие.
Теперь уже можно подвести небольшой промежуточный итог и отметить, что этот раздел позволил нам получить первые практические навыки по работе со справочниками — объектами конфигурации, которые очень часто используются на практике для хранения достаточно статичной информации. В большинстве ситуаций требуется фиксирование информации о событиях, происходящих в подразделении либо в организации в целом. Для этого в системе 1С:Предприятие 8.1 существуют другие объекты, среди которых в первую очередь следует отметить документы. В следующей лабораторной работе мы с ними начнем знакомиться.

Рисунок 1.49 Печатная форма элемента справочника Клиенты
КОНТРОЛЬНЫЕ ВОПРОСЫ
Как связаны объекты конфигурации и объекты базы данных?
Зачем нужна палитра свойств?
Что такое подчиненные объекты конфигурации?
Лабораторная работа №10. Документы
Цель: Студенты должны познакомиться с объектом конфигурации Документы. Познакомиться с организацией документов и некоторыми техническими приемами их разработки в конфигураторе.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Документ — одно из основных понятий системы 1С:Предприятие. Каждый объект данного типа содержит информацию о конкретной хозяйственной операции и характеризуется своим номером, датой и временем. Дата и время создания документа позволяют установить строгую временнýю последовательность совершения операций. В конфигураторе создается только структура документа, а конкретные экземпляры документов вводятся в информационную базу при работе в режиме 1С:Предприятие пользователем. В дальнейшем для краткости вместо словосочетания "структура документа" будет использоваться просто слово "документ".
Документы относятся к наиболее востребованным разработчиками объектам конфигурации. Как уже говорилось, они предназначены для фиксирования информации о происходящих событиях в подразделении или в организации в целом.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Здесь мы создадим документ Внесение оплаты, который будет фиксировать информацию о текущей оплате за обучение. И первое, уже знакомое действие на этом пути заключается в щелчке правой кнопкой мыши на строке Документы в окне Конфигурация и выборе пункта Добавить в открывшемся контекстном меню, после чего начинается несложная работа с конструктором документа. В качестве имени создаваемого объекта конфигурации введем ВнесениеОплаты (рисунок 1.50). Этот документ будет предназначаться для фиксации внесенной оплаты за обучение конкретным учащимся, определяемой набором курсов, которые он посещает.

Рисунок 1.50 Окно редактирования документа ВнесениеОплатыЗаполнение закладки Данные
На рисунок 1.51 показана закладка Данные окна редактирования объекта конфигурации, на которой необходимо определить поля создаваемого документа. Заметим, что любой документ имеет шапку — общую или заголовочную часть, а также одну или несколько табличных частей. В шапке размещается информация, общая для всего документа в целом.
Для создаваемого нами документа ВнесениеОплаты в области шапки разместим два реквизита — Клиент и Телефоны. В качестве типа данных первого из них установим СправочникСсылка.Клиенты, а для другого выберем строковый тип данных — строка не более 50 символов.
С помощью приведенной далее процедуры (см. листинг 1.4) программным способом обеспечивается автоматическое заполнение поля Телефоны, когда пользователь в режиме работы 1С:Предприятие вносит информацию в поле Клиент (т. е. выбирает необходимого клиента из справочника).

Рисунок 1.51 Структура документа ВнесениеОплатыПерейдем теперь к разработке табличной части документа. Следует заметить, что большинство реальных документов содержит один или несколько перечней каких-либо данных (строк или элементов). Это может быть список сотрудников, список номенклатуры или что-то другое. Для отображения подобной информации в объект конфигурации документ заложена возможность создания табличных частей.
Табличные части — это также объекты конфигурации, но они являются подчиненными основным объектам. С ними мы уже встречались при работе со справочниками. И в том, и в этом случае табличные части подчинены основным объектам (элементу справочника или документу). В плане программирования для объекта табличная часть существует многообразие свойств и методов работы с ними.
После такого комментария вернемся к практике — в разрабатываемом документе ВнесениеОплаты создадим табличную часть, которую назовем ОплатаКурсов, и разместим в ней два реквизита:
Курс (тип данных — СправочникСсылка.Курсы);
ВнесеннаяСумма (тип данных — Число).
После определения структуры документа перейдем к разработке интерфейса пользователя для работы с документом — к созданию его экранной формы. Для этого в окне редактирования объекта конфигурации (рисунок 1.52) выберем закладку Формы и присуноктупим к созданию формы документа.

Рисунок 1.52 Закладка Формы окна редактирования документа
В данной ситуации пользоваться формой, генерируемой системой 1С:Предприятие 8.1 по умолчанию, мы не будем. В дальнейшем нам придется добавлять в разработку собственные программные процедуры, поэтому и необходимо создать пользовательскую форму. Для этого щелкнем по изображению лупы в группе Основные формы напротив надписи Документа (рисунок 1.52) и перейдем к работе с конструктором документа.
.
Рисунок 1.53 Окно конструктора формы документа
В первом появившемся окне диалога следует сделать установки (реально они должны быть выполнены по умолчанию) в соответствии с рисунок 1.53. После этого, нажав кнопку Далее, мы увидим следующее окно конструктора (рисунок 1.54), позволяющее отобразить (либо исключить) на форме определенные реквизиты документа. Работа в режиме диалога с конструктором формы документа завершается нажатием кнопки Готово, что приводит к отображению на экране формы документа с автоматически созданными на ней элементами управления (рисунок 1.55)

Рисунок 1.54 Определение отображаемых на экранной форме реквизитов

Рисунок 1.55 Форма документа ВнесениеОплаты в режиме конфигуратора
На этом работа с конструктором документа в конфигураторе завершена, и теперь требуется перейти в режим 1С:Предприятие, где и следует заполнить несколько документов созданного вида. Один из вариантов внесения информации в документ показан на рисунок 1.56.
После заполнения полей документа его следует сохранить и закрыть (все это выполняется нажатием кнопки OK). В дальнейшем данный документ (как и все другие, созданные таким же образом) можно всегда найти (при работе в режиме 1С:Предприятие) в списке, который открывается при выборе в разделе Документы названия документа — Внесение оплаты.

Рисунок 1.56 Почти заполненная форма документа ВнесениеОплаты в режиме 1С:Предприятие
КОНТРОЛЬНЫЕ ВОПРОСЫ
Для чего предназначен объект конфигурации Документ?
Какими характерными особенностями обладает документ?
Для чего предназначены реквизиты и табличные части документа?
Какие существуют основные формы документа?
Как создать объект конфигурации Документ и описать его основную структуру?
Как создать новый документ и заполнить его данными?
Лабораторная работа № 11. Программирование формы документа
Цель: познакомиться с объектом конфигурации Документ. Узнать, для чего используется этот объект, какова его структура и какие основными свойствами обладает документ.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
На данном занятии проведем небольшую автоматизацию работы, о которой мы уже упоминали выше. В созданном документе два поля Клиент и Телефоны связаны между собой. А именно, при заполнении поля Клиент значением из справочника Клиенты хотелось бы, чтобы соответствующий телефон автоматически фиксировался в поле Телефоны. Наличие телефона в шапке документа удобно, т. к. в этом случае уже по документу видно, как с человеком связаться, а автоматизация заполнения этого поля приведет к ускорению работы и уменьшению ошибок ввода. Для такой автоматизации мы и напишем короткую процедуру.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Итак, в окне редактирования формы документа (режим конфигуратора) необходимо двойным щелчком по полю Клиент (рисунок 1.57) открыть окно его свойств. Затем напротив имени события ПриИзменении следует щелкнуть по пиктограмме с изображением лупы, в результате чего мы попадем в процедуру, автоматически выполняемую при выборе клиента в поле Клиент документа. Это фактически пока еще только заготовка нашей будущей процедуры, которую мы напишем. В дальнейшем ее всегда можно найти на закладке Модуль, где размещаются все программные процедуры, работающие с экранной формой документа.

Рисунок 1.57 Окно свойств поля Клиент
Сам текст процедуры, которую необходимо написать для решения поставленной задачи, приведен в листинге 1.4. В результате выполнения программного кода в режиме 1С:Предприятие после выбора клиента поле Телефоны в шапке документа заполняется данными о телефонах из справочника Клиенты, в чем можно убедиться.
Листинг 1.4. Процедура, выполняемая при заполнении поля Клиент
Процедура КлиентПриИзменении(Элемент)
Телефоны = Клиент.Телефоны;
КонецПроцедуры
Продолжим работу по усовершенствованию нашего документа. Следующая цель — обеспечить автоматическое заполнение его табличной части информацией о курсах после выборе клиента. Для этого необходимо внести в уже написанную процедуру КлиентПриИзменении новые программные конструкции, и в листинге 1.5 показана измененная процедура.
Листинг 1.5. Процедура заполнения табличной части документа ВнесениеОплаты
Процедура КлиентПриИзменении(Элемент)
Телефоны = Клиент.Телефоны; ОплатаКурсов.Очистить();
// Перебор строк табличной части документа
Для Каждого ТекущаяСтрока Из Клиент.ИзучаемыеКурсы Цикл
НоваяСтрока = ОплатаКурсов.Добавить();
НоваяСтрока.Курс = ТекущаяСтрока.Курс;
КонецЦикла;
КонецПроцедурыНа рисунок 1.58 показан результат выполнения процедуры в режиме 1С:Предприятие — после выбора учащегося в поле Клиент его телефон перенесен в шапку документа, а табличная часть документа автоматически заполнена названиями посещаемых им курсов.

Рисунок 1.58 Автоматическое заполнение телефона и табличной части документа после выбора клиента
Разберем теперь непосредственно текст листинга 1.5. В начале процедуры после заполнения поля Телефоны к табличной части документа (ОплатаКурсов) применяется метод Очистить(). Если этого не сделать, то табличная часть будет дополняться названиями курсов при последовательных щелчках по полю Клиент. Таким образом, в процедуре из листинга 1.5 она сначала очищается, а затем заполняется вновь.
В цикле, начинающемся со строки Для Каждого ТекущаяСтрока Из Клиент.ИзучаемыеКурсы Цикл последовательно перебираются все строки табличной части справочника Клиенты, и при каждом проходе цикла в табличную часть документа добавляется один из курсов, на которые записался учащийся. Для этого используется метод Добавить().
В результате пользователь, выбрав в форме документа конкретного учащегося, автоматически получает заполненную названиями посещаемых им курсов табличную часть документа, и остается только внести данные об оплаченных суммах (рисунок 1.59).

Рисунок 1.59 Заполненный документ ВнесениеОплаты в режиме 1С:Предприятие
При необходимости в автоматически заполненную табличную часть документа ВнесениеОплаты можно добавить дополнительно еще одну или несколько строчек. На рисунок 1.59 показана ситуация, когда в табличную часть внесена еще одна строка с помощью стандартной кнопки пиктографического меню.
Создание печатной формы документа ВнесениеОплаты
Печатные формы справочников создавались с помощью конструктора печати, и его же мы используем при разработке печатной формы документа ВнесениеОплаты. В листинге 1.6 показана созданная конструктором программная процедура, реализующая данную функцию.
Листинг 1.6. Процедура печати документа ВнесениеОплаты
Процедура Печать(Элемент)
//{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора внесенные вручную // изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.ВнесениеОплаты.ПолучитьМакет("Печать");
// Заголовок
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
// Шапка
Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.Параметры.Заполнить(ЭтотОбъект);
ТабДок.Вывести(Шапка);
// ОплатаКурсов
Область = Макет.ПолучитьОбласть("ОплатаКурсовШапка");
ТабДок.Вывести(Область);
ОбластьОплатаКурсов = Макет.ПолучитьОбласть("ОплатаКурсов");
Для Каждого ТекСтрокаОплатаКурсов Из ОплатаКурсов Цикл
ОбластьОплатаКурсов.Параметры.Заполнить(ТекСтрокаОплатаКурсов);
ТабДок.Вывести(ОбластьОплатаКурсов);
КонецЦикла; ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
//}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ КонецПроцедурыБольшинство программных конструкций нам уже знакомо, поэтому какого-то дополнительного комментария не требуется. В табл. 1.1 отражены основные свойства и методы табличного документа.
Таблица 1.1. Свойства и методы табличного документа
Название свойства (метода) Описание
ОтображатьСеткуПозволяет отключить отображение сетки в табличном документе (при значении Ложь), либо, наоборот, его включить (при значении Истина)
Защита Позволяет допустить копирование либо ручное изменение табличного документа (при значении Ложь), либо, наоборот, предотвратить эти действия (при значении Истина)
ТолькоПросмотрДает возможность установить только режим просмотра (при значении Истина). В этом случае в табличном документе будут недоступны для редактирования ячейки, у которых установлено свойство Защита
ОтображатьЗаголовкиВключает режим отображения (при значении Истина) заголовков колонок и строк таблицы. Заголовки содержат номера столбцов и строк и выводятся вверху и слева от таблицы
Показать() Метод, открывающий окно показа и редактирования табличного документа
Список документов
Следует упомянуть еще об одном важном моменте. Мы все время говорили о текущем документе, с которым в настоящий момент работаем.
Может возникнуть вопрос: как его потом найти? Все созданные документы никуда не пропадают — они остаются в информационной базе. И если в режиме 1С:Предприятие обратиться к разделу Документы, то после выбора названия документа Внесение оплаты перед нами откроется список всех созданных ранее документов данного вида (рисунок 1.60).

Рисунок 1.60 Список введенных документов ВнесениеОплатыКОНТРОЛЬНЫЕ ВОПРОСЫ
Как создать собственную форму документа?
Что такое конструктор форм?
Что такое элементы управления?
Что такое модуль и для чего он нужен?
Лабораторная работа №12. Отчеты
Цель: Студенты должны познакомиться с объектом конфигурации Отчет. Познакомиться с организацией отчетов и некоторыми техническими приемами их разработки в конфигураторе.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Отчет — это объект конфигурации, который используется для получения выходной (сводной) информации на основании введенных данных. Данный объект конфигурации включает в себя алгоритм получения и обработки информации, форму и макет. С помощью форм организуется необходимый интерфейс, а макеты позволяют оформить полученную информацию в виде табличного документа желаемого вида.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Выполненные до сих пор действия по разработке и заполнению документов и справочников позволяют в основном зафиксировать информацию, однако быстро ответить на естественные вопросы — кто записался на тот или иной курс, какая сумма внесена учащимися за конкретный курс, кто и сколько заплатил за обучение — мы пока не можем. Точнее, если мы самостоятельно аккуратно проанализируем справочники и уже созданные документы, то ответы на подобные вопросы мы, конечно, получим. Однако и время для этого может потребоваться весьма значительное. Можно сказать, что получение информации в удобной форме и является одним из основных достоинств системы 1С:Предприятие. При сборе и накоплении данных важнейшую роль играют объекты под названием "регистры". Далее мы разберем технические приемы работы с регистрами сведений и с регистрами накопления. Фактически они предназначены для фиксирования и аккумулирования информации о разнообразных фактах и событиях. Здесь же мы обойдемся без них и рассмотрим построение отчета по информации непосредственно из введенных документов ВнесениеОплаты. Однако когда количество обрабатываемых документов становится большим, то использование регистров значительно более эффективно по времени получения результата. При составлении отчета извлечение уже подготовленной информации из регистров сведений выполняется существенно быстрее по сравнению с перебором всех исходных документов. Далее мы поговорим и о других преимуществах регистров в плане представления отчетной информации. Среди объектов конфигурации существует отчет, и этим объектом мы воспользуемся для получения ответа на вопрос, какая сумма внесена учащимися за конкретный курс. Первый уже знакомый шаг — в окне Конфигурация необходимо щелкнуть правой кнопкой по строке Отчеты и начать процесс создания нового отчета — УчетОплаты (рисунок 1.61). Ранее мы пользовались готовыми макетами, которые создавал конструктор печати, а теперь создадим макет сами.

Рисунок 1.61 Окно редактирования отчета УчетОплатыКОНТРОЛЬНЫЕ ВОПРОСЫ
Для чего предназначен объект конфигурации Отчет?
Как создать отчет с помощью конструктора схемы компоновки данных?
Лабораторная работа № 13. Макет
Цель: Познакомиться с объектом конфигурации Макет. Узнать о его назначении и создать макет документа, на основе которого будет формироваться печатная форма документа.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Объект конфигурации Макет предназначен для хранения различных форм представления данных, которые могут потребоваться каким-либо объектам конфигурации или всему прикладному решению в целом. Макет может содержать табличный или текстовый документ, двоичные данные, HTML-документ или Active Document, графическую или географическую схему, схему компоновки данных или макет оформления схемы компоновки данных. Макеты могут существовать как сами по себе (общие макеты), так и быть подчинены какому-либо объекту конфигурации.
Одно из предназначений макета, подчиненного объекту конфигурации и содержащего табличный документ, – создание печатной формы этого объекта.
Создание печатной формы заключается в конструировании ее составных частей – именованных областей, из которых затем «собирается» готовая печатная форма. Порядок заполнения областей данными и порядок вывода их в итоговую форму описывается при помощи встроенного языка.
Печатная форма может включать в себя различные графические объекты: картинки, OLE-объекты, диаграммы и т. д.
Помимо создания макета «вручную», конфигуратор предоставляет разработчику возможность воспользоваться специальным инструментом – конструктором печати, который берет на себя большинство рутинной работы по созданию макета.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Для разработки макета следует перейти на закладку Макеты, а затем с помощью пиктограммы Добавить (из пиктографического меню) начать работу с конструктором макета. Сам макет, как мы уже знаем, необходим для формирования табличного документа.
Единственный этап диалога, в котором следует сделать установки, показан на рисунок 1.62. После этого перед нами открывается окно (рисунок 1.63) для разработки структуры табличного документа. Здесь мы можем самостоятельно создать макет для печатной формы. Дальнейшие наши действия в этом разделе будут связаны с ручным заполнением данного макета — без участия конструктора печати.
Для вывода в табличный документ строк различного вида в макетах предусмотрен механизм секций. В этом случае табличный документ формируется не сразу целиком, а поэтапно — по мере заполнения секций. Секция является компонентой (составляющей табличного документа). Сами секции могут быть вертикальными и горизонтальными, но в рассматриваемом здесь примере мы будем использовать только горизонтальные секции.

Рисунок 1.62 Окно конструктора макета

Рисунок 1.63 Окно структуры табличного документа

В реальной работе они применяются значительно чаще. Горизонтальная секция представляет собой совокупность нескольких строк и состоит как минимум из одной строки. Создадим первую секцию, для чего следует замаркировать мышью названия заголовков первых трех строк. После этого в меню Таблица требуется выбрать пункт Имена, а затем — Назначить имя. Первой секции дадим осмысленное имя — Заголовок, и в одну из ячеек введем текст "Отчет по оплатам за курсы" (рисунок 1.64).
Для увеличения (или в общем случае — изменения) размера шрифта текста следует щелчком правой кнопкой мыши открыть окно свойств ячейки с текстом (в данном случае на пересечении второй строки и второго столбца). Это позволит нам, используя раздел Оформление, изменить и вид шрифта, и размер букв (рисунок 1.65).

Рисунок 1.64 Создание секции Заголовок
Основное содержание отчета будет представлять собой таблицу, но сначала мы должны вывести в табличный документ подписи для столбцов таблицы. Для этого потребуется создать в четвертой строке секцию Шапка с содержимым, показанным на рисунок 1.66. Добавим в секцию Шапка небольшое оформление — выполним обводку линиями ячейки, где написано Курс, что производится с помощью опций окна свойств ячейки (см. рисунок 1.66). Аналогичную обводку следует сделать и для ячейки с текстом Оплаченная сумма. Теперь можно перейти к созданию третьей, последней в рассматриваемом макете секции Строка (рисунок 1.67). От нас также потребуется ввести в ячейки — Курс и ОплаченнаяСумма, однако для них в разделе Заполнение окна Свойства следует сделать установку — Параметр. В этом случае в ячейке будет напечатан не текст, а значение переменной, которая либо явно определена, либо неявно известна в программной процедуре заполнения табличного документа по шаблону макета.
Тем самым фактически мы разделили макет (заготовку для печатной формы) на три части — заголовок, шапку и строку.
Создание в шаблоне трех секций является типичным при формировании несложных отчетов. Когда требуется бóльшая информативность, то количество секций увеличивается. Например, на практике часто встречается так называемая секция Подвал, отражающая нижнюю часть табличного документа — в ней подводятся итоги по отчету.

Рисунок 1.65 Изменение оформления текста в ячейке макета

Рисунок 1.66 Добавление секции Шапка

Рисунок 1.67 Структура макета для табличного документа
Процедура заполнения отчета
Теперь на очереди разработка программной процедуры, которая заполняет табличный документ в соответствии с данным макетом. Для этого нас не устроит форма по умолчанию, создадим свою.
Поэтому перейдем с закладки Макеты на закладку Формы (рисунок 1.68) и щелчком по кнопке с изображением лупы начнем диалог с конструктором формы отчета (рисунок 1.69).
Следует проконтролировать установки, показанные на рисунок 1.69, после чего нажать кнопку Готово, что позволит увидеть на экране следующее окно (рисунок 1.70). Здесь отображена экранная форма отчета с элементами управления, созданными на ней конструктором.
Теперь нужно на закладке Модуль открыть окно редактора для написания программных процедур, в котором уже имеется заготовка для процедуры, обслуживающей нажатие на кнопку Сформировать. На этот раз мы самостоятельно напишем ее текст, генерирующий отчет (листинг 1.7).
Листинг 1.7. Процедура формирования отчета
Процедура КнопкаСформироватьНажатие(Элемент)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ВнесениеОплатыЗаКурсы.Курс КАК Курс,
| СУММА(ВнесениеОплатыЗаКурсы.ВнесеннаяСумма)
| КАК ОплаченнаяСумма
| ИЗ
| Документ.ВнесениеОплаты.ОплатаКурсов
| КАК ВнесениеОплатыЗаКурсы
| СГРУППИРОВАТЬ ПО
| ВнесениеОплатыЗаКурсы.Курс";
Результат = Запрос.Выполнить().Выбрать();
ТабДок = Новый ТабличныйДокумент;
Макет = Отчеты.УчетОплаты.ПолучитьМакет("Макет");
// Заголовок
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
// Шапка
Область = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Область);
// ОплатаКурсов
Пока Результат.Следующий() Цикл
Область = Макет.ПолучитьОбласть("Строка");
Область.Параметры.Курс = Результат.Курс;
Область.Параметры.ОплаченнаяСумма = Результат.ОплаченнаяСумма;
ТабДок.Вывести(Область);
КонецЦикла;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
КонецПроцедуры
Рисунок 1.68 Закладка Формы окна редактирования отчета

Рисунок 1.69 Окно конструктора формы отчета

Рисунок 1.70 Экранная форма отчета УчетОплатыЗапрос — это объект системы 1С:Предприятие, которым мы воспользовались в этой процедуре. Ему мы здесь отведем небольшой комментарий, но заметим, что в последующих главах запросы будут подробно рассмотрены на примерах различной степени сложности. В рассмотренной процедуре продемонстрировано эффективное использование запроса для извлечения информации из имеющихся данных.
Запросы в системе 1С:Предприятие предназначены для выборки информации из базы данных. Можно считать, что запрос является требованием к системе для выбора и обработки данных. Например, с помощью запроса можно легко подсчитать внесенные суммы по конкретным курсам. В системе 1С:Предприятие существует специальный язык запросов, цель которого заключается в формулировании требований к системе — что нужно отобрать из имеющихся данных. А как система справляется с запросом, нас уже не интересует, главное — поставить задачу.
В первой строке листинга 1.7 создается новый объект типа Запрос, а ссылка на него присунокваивается переменной, которую мы также назвали словом Запрос. Далее формируется текст запроса, в котором говорится о том, что нас интересует документ ВнесениеОплаты, а более конкретно табличная часть этого документа — ОплатаКурсов. Для этого используется ключевое слово ИЗ, а далее для интересующей нас табличной части документа вводится более короткое название:
Документ.ВнесениеОплаты.ОплатаКурсов
КАК ВнесениеОплатыЗаКурсы
которое можно использовать вместо полного имени. В тексте запроса указывается, что из этой табличной части нас интересует поле ВнесениеОплатыЗаКурсы.Курс, которому дается краткое имя Курс (ВнесениеОплатыЗаКурсы.Курс КАК Курс), а также сумма всех значений в поле ВнесеннаяСумма, которой дается краткое имя ОплаченнаяСумма. Конструкция СГРУППИРОВАТЬ ПО дает установку системе, что необходимо просуммировать отдельно все оплаты по каждому курсу. Выполнение рассматриваемого запроса в результате приводит к формированию таблицы из двух колонок и числа строк, равного числу различных курсов, за которые были произведены оплаты. В первой колонке будет отражено название курса, а во второй — внесенная учащимися сумма за этот курс. После выполнения строки
Результат = Запрос.Выполнить().Выбрать()
в переменной Результат формируется ссылка на итоговую таблицу запроса. После этого начинается уже знакомое нам заполнение табличного документа. Теперь для полноты картины осталось перейти в режим работы 1С:Предприятие и посмотреть заполненный отчет (рисунок 1.71).
Таким образом, мы рассмотрели пример формирования сводной информации по документам, связанным с оплатой за обучение. Когда количество документов станет значительным, то объем вычислительных операций приведет к заметной задержке при формировании отчета. Для устранения этой задержки будет правильным использовать регистры. Так, эффективный вариант построения информационной системы заключается в фиксировании в регистре накопления оплаченных сумм по мере создания каждого очередного документа.

Рисунок 1.71 Сформированный отчет УчетОплаты в режиме 1С:Предприятие
КОНТРОЛЬНЫЕ ВОПРОСЫ
Для чего предназначен объект конфигурации Макет?
Что такое конструктор печати?
Как создать макет с помощью конструктора печати?
ЛАБОРАТОРНАЯ РАБОТА № 14. Редактирование макета «Отчет по клиентам»
Цель: Познакомиться с тем, как можно редактировать макеты и формы объектов конфигурации.
ТЕОРИТИЧЕСКАЯ ЧАСТЬ
Предыдущий отчет позволял извлечь информацию о внесенных денежных средствах по каждому учебному курсу. Из рисунок 1.71 мы видим, сколько внесено по каждому курсу ("Базы данных", "PowerPoint"). Не менее важно получить интегральную информацию о том, кто из наших клиентов уже заплатил и сколько конкретно. В этом разделе рассматривается решение подобной задачи. Сама разработка будет аналогична примеру предыдущего раздела. При этом мы воспользуемся уже созданным отчетом и фактически выполним небольшую его модернизацию.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Внесем изменения в макет и в процедуру формирования отчета. На рисунок 1.72 показан новый макет для данного отчета — МакетОтчетаПоКлиентам. Относительно рисунок 1.67 изменения незначительны. Текст процедуры формирования отчета, выполняемой при нажатии кнопки Сформировать, необходимо скорректировать. Новый вариант показан в листинге 1.8.

Рисунок 1.72 Макет отчета по оплатам клиентов
Листинг 1.8. Процедура формирования отчета по оплатам клиентов
Процедура КнопкаСформироватьНажатие(Элемент)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ВнесениеОплатыЗаКурсы.Ссылка.Клиент КАК Клиент,
| СУММА(ВнесениеОплатыЗаКурсы.ВнесеннаяСумма)
| КАК ОплаченнаяСумма
| ИЗ
| Документ.ВнесениеОплаты.ОплатаКурсов| КАК ВнесениеОплатыЗаКурсы
| СГРУППИРОВАТЬ ПО ВнесениеОплатыЗаКурсы.Ссылка.Клиент";
Результат = Запрос.Выполнить().Выбрать();
ТабДок = Новый ТабличныйДокумент;
Макет = Отчеты.УчетОплаты.ПолучитьМакет("МакетОтчетаПоКлиентам");
// Заголовок
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
// Шапка
Область = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Область);
// ОплатаКурсов
Пока Результат.Следующий() Цикл
Область = Макет.ПолучитьОбласть("Строка");
Область.Параметры.Клиент = Результат.Клиент;
Область.Параметры.ОплаченнаяСумма = Результат.ОплаченнаяСумма;
ТабДок.Вывести(Область);
КонецЦикла;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
КонецПроцедуры
Ключевое изменение заключается в конструкции: ВнесениеОплатыЗаКурсы.Ссылка.Клиент, которая позволяет обратиться к информации, расположенной в шапке рассматриваемого документа.
На уровне объектов базы данных информация о документе хранится в двух таблицах — в основной таблице документа и таблице табличной части документа. В таблице табличной части имеется поле Ссылка, которое представляет ссылку на документ, которому подчинена рассматриваемая запись табличной части.
Ранее, рассматривая примеры, мы в режиме 1С:Предприятие ввели информацию только по одному учащемуся. Теперь для проверки функциональности разработки добавим еще одного клиента, "запишем его на курсы" и с помощью документа ВнесениеОплаты оформим оплату обучения (один из документов показан на рисунок 1.73).

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

Рисунок 1.74 Отчет с группировкой по клиентам
Отчет по клиентам с детализацией курсов
Для полноты картины разработаем еще один отчет, в котором будет отражено, кем, сколько и за какие учебные курсы внесено денежных средств. В предыдущем отчете мы получили информацию по итоговым оплатам учащихся. Для начала создадим новый макет — МакетСДетализацией (рисунок 1.75). Его содержание не требует комментария, т. к. все технические действия мы уже проделывали в предыдущих разработках. Полученный отчет в режиме 1С:Предприятие показан на рисунок 1.76, а текст процедуры формирования отчета приведен в листинге 1.9.

Рисунок 1.75 Измененный макет отчета

Рисунок 1.76 Отчет по оплатам с детализацией учебных курсов
Листинг 1.9. Процедура формирования отчета с детализацией по курсам
Процедура КнопкаСформироватьНажатие(Кнопка)
Запрос = Новый
Запрос; Запрос.Текст = "ВЫБРАТЬ
| ВнесениеОплатыЗаКурсы.Ссылка.Клиент КАК Клиент,
| ВнесениеОплатыЗаКурсы.Курс КАК Курс,
| СУММА(ВнесениеОплатыЗаКурсы.ВнесеннаяСумма)
| КАК ОплаченнаяСумма
| ИЗ
| Документ.ВнесениеОплаты.ОплатаКурсов
| КАК ВнесениеОплатыЗаКурсы
| СГРУППИРОВАТЬ ПО ВнесениеОплатыЗаКурсы.Ссылка.Клиент,
| ВнесениеОплатыЗаКурсы.Курс";
Результат = Запрос.Выполнить().Выбрать();
ТабДок = Новый ТабличныйДокумент;
Макет = Отчеты.УчетОплаты.ПолучитьМакет("МакетСДетализацией");
// Заголовок
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
// Шапка
Область = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Область);
// ОплатаКурсов
Пока Результат.Следующий() Цикл
Область = Макет.ПолучитьОбласть("Строка");
Область.Параметры.Клиент = Результат.Клиент;
Область.Параметры.Курс = Результат.Курс;
Область.Параметры.ОплаченнаяСумма = Результат.ОплаченнаяСумма;
ТабДок.Вывести(Область);
КонецЦикла;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.Показать();
КонецПроцедуры
КОНТРОЛЬНЫЕ ВОПРОСЫ
Как изменить табличный документ?
Какая разница в заполнении ячейки табличного документа текстом, параметром и шаблоном?