Вы находитесь на странице: 1из 75

Лекция 1. Обзор платформы «1С:Предприятие 8.3».

Объекты
платформы: константы, перечисления

«1С:Предприятие» является универсальной системой автоматизации


экономической и организационной деятельности предприятия. Поскольку
такая деятельность может быть довольно разнообразной, система
«1С:Предприятие» может приспосабливаться к особенностям конкретной
области деятельности, в которой она применяется. Для обозначения такой
способности используется термин конфигурируемость, то есть возможность
настройки системы на особенности конкретного предприятия и класса
решаемых задач. Это достигается благодаря тому, что «1С:Предприятие» –
это не просто программа, существующая в виде набора неизменяемых
файлов, а совокупность различных программных инструментов, с которыми
работают разработчики и пользователи. Логически всю систему можно
разделить на две большие части, которые тесно взаимодействуют друг с
другом, – конфигурацию и платформу, которая управляет работой
конфигурации.
Платформа обеспечивает работу конфигурации и позволяет вносить в
нее изменения или создавать собственную конфигурацию. Существует одна
платформа («1С:Предприятие») и множество конфигураций. Для
функционирования какого-либо прикладного решения всегда необходима
платформа и какая-либо (одна) конфигурация (рис. 1.1).

Рис. 1.1. Конфигураций много, а платформа одна

1
Сама по себе платформа не может выполнить никаких задач
автоматизации, так как она создана для обеспечения работы какой-либо
конфигурации. То же самое с конфигурацией: чтобы выполнить те задачи,
для которых она создана, необходимо наличие платформы, управляющей ее
работой.
Система «1С:Предприятие» в широком смысле представляет собой
совокупность четырех составляющих (рис. 1.2):
 технологической платформы;
 прикладных решений различного масштаба и различной
направленности, созданных на основе технологической платформы;
 методики создания прикладных решений;
 информационно-технологической поддержки
пользователей и разработчиков.

Рис. 1.2 Структура «1С:Предприятия»

Такая архитектура продиктована прежде всего задачами, которые


призвана решать система «1С:Предприятие».
Во-первых, система должна обеспечивать высокий уровень
адаптируемости прикладных решений под требования заказчика.
Во-вторых, система должна обеспечивать изменение готового
прикладного решения разработчиком, не участвовавшим в его создании. Это
особенно важно для прикладных решений в сфере экономических задач, где
существенная часть разработчиков не создает собственные прикладные
решения, а дорабатывает и развивает существующие типовые решения.

2
В-третьих, система должна обеспечивать эффективное использование
компьютерных технологий и платформ, не требуя при этом глубоких
специальных знаний от разработчика.
В-четвертых, система должна обеспечивать стандартизацию
разработки.

Поскольку задачи автоматизации могут быть самыми разными, то


фирма «1С» и ее партнеры выпускают прикладные решения, каждое из
которых предназначено для автоматизации одной определенной области
человеческой деятельности.
В качестве примера существующих прикладных решений можно
перечислить следующие типовые решения:
 „„ «1С:Бухгалтерия 8»,
 „„ «1С:Управление небольшой фирмой 8»,
 „„ «1С:Управление торговлей 8»,
 „„ «1С:Зарплата и управление персоналом 8»,
 „„ «1С:Управление производственным предприятием 8»,
 „„ «1С:Налогоплательщик 8»,
 „„ «1С:Документооборот 8».
Существует также множество других типовых прикладных решений.
Типовое прикладное решение является, по сути, универсальным и
способно удовлетворить потребности самых разных предприятий,
работающих в одной области деятельности.
С другой стороны, такая универсальность неизбежно приведет к тому,
что на конкретном предприятии будут использоваться далеко не все
возможности прикладного решения, а каких-то возможностей в нем будет
недоставать.
Вот тут и выходит на передний план конфигурируемость системы,
поскольку платформа, помимо управления работой конфигурации, содержит
средства, позволяющие вносить изменения в используемую конфигурацию.
3
Более того, платформа позволяет создать свою собственную конфигурацию с
нуля, если по каким-либо причинам использование типовой конфигурации
представляется нецелесообразным.
Для того чтобы обеспечить такие возможности, система
«1С:Предприятие» имеет различные режимы работы: 1С:Предприятие и
Конфигуратор.
Режим 1С:Предприятие является основным и служит для работы
пользователей системы. В этом режиме пользователи вносят данные,
обрабатывают их и получают итоговые результаты.
Режим Конфигуратор используется разработчиками и
администраторами информационных баз. Именно этот режим и
предоставляет инструменты, необходимые для модификации существующей
или создания новой конфигурации.
Таким образом обеспечивается высокий уровень адаптируемости
прикладных решений под требования заказчика.
Конфигурация представляет собой описание. Она описывает структуру
данных, которые пользователь будет использовать в режиме работы
1С:Предприятие.
Кроме этого, конфигурация описывает всевозможные алгоритмы
обработки этих данных, содержит информацию о том, как эти данные
должны будут выглядеть на экране и на принтере и т. д. В дальнейшем
платформа «1С:Предприятие» на основании этого описания создаст базу
данных, которая будет иметь необходимую структуру и предоставит
пользователю возможность работать с этой базой данных.
Для того чтобы систему «1С:Предприятие» можно было быстро и легко
настраивать на нужные прикладные задачи, все описание, которое содержит
конфигурация, состоит из неких логических единиц, называемых объектами
конфигурации.

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

Рис. 1.3. Состав прототипа (шаблона) объекта конфигурации


Когда разработчик добавляет в дерево объектов конфигурации новый
объект конфигурации, этот объект наследует базовую реализацию
прототипа .
5
При добавлении нового объекта конфигурации платформа
основывается на «знаниях» о базовом классе объектов (рис. 1.4):
 платформа «знает», какие таблицы (состав полей, количество
таблиц, их взаимная связь) нужно будет создать в хранилище данных при
сохранении конфигурации;
 сразу же добавляются новые типы встроенного языка,
позволяющие работать с данными создаваемого объекта, причем состав этих
типов может быть разным для различных шаблонов (прототипов);
 сразу же создается набор прав, которые будут использоваться для
данного объекта, причем наборы прав также могут быть различными для
разных шаблонов (прототипов), поскольку различается их базовая
функциональность;
 определяются стандартные действия, которые система может
выполнять с данными этого объекта конфигурации;
 и т. д.

Рис. 1.4. Добавление нового объекта конфигурации


Благодаря этому разработчик, не производя никаких дополнительных
действий, тут же может запустить прикладное решение и работать с только

6
что добавленным объектом – базовая реализация объекта, унаследованная от
прототипа (шаблона), обеспечит выполнение всех необходимых типовых
действий.
Таким образом, несмотря на то, что каждое прикладное решение
обладает собственной «индивидуальностью», все они созданы по
определенной модели, с использованием объектов конфигурации, которые
обладают одинаковой базовой реализацией. Такой подход значительно
упрощает модификацию прикладных решений разработчиками, которые не
участвовали в их создании.
Для всех прикладных данных «1С:Предприятие» поддерживает три
способа представления данных (рис. 1.5):
 хранение в базе данных,
 представление во встроенном языке,
 отображение в формате XML.
В базе данных информация хранится в виде объектов базы данных или
в виде отдельных записей (в зависимости от ее природы – объектной или
необъектной).
Данные, хранимые в базе данных, могут быть считаны в объекты
встроенного языка для их просмотра или изменения и записаны обратно в
базу данных.

Рис. 1.5. Три способа представления данных


В то же время объекты встроенного языка могут быть сериализованы
в/из элементы/ов XML. Представление данных в формате XML используется
при обмене данными в распределенных информационных базах, а также
7
может использоваться при взаимодействии с другими информационными
системами.
Для разработки собственной конфигурации, автоматизирующей
хозяйственную деятельность предприятия, разработчик может использовать
только ограниченный набор объектов конфигурации, прописанных в
платформе. Ему не дано возможности создавать собственные объекты
конфигурации. Он только может добавлять в конфигурацию какой-либо из
стандартных объектов, поставляемых системой.
Все данные, которые хранятся в базе данных «1С:Предприятия»,
можно разделить на две категории: объектные и необъектные.
К объектным данным в «1С:Предприятии» относятся данные
следующих объектов конфигурации:
 Справочник,
 Документ,
 План видов характеристик,
 План счетов,
 План видов расчета,
 План обмена,
 Бизнес-процесс,
 Задача.
Для каждой объектной сущности конфигурации система создает набор
связанных между собой таблиц, в которых и будут храниться данные этого
объекта. Количество и состав таблиц различны для каждого объекта
метаданных.
Структура хранения объектных данных всегда состоит из основной
таблицы и, возможно, нескольких других таблиц (по одной таблице на
каждую табличную часть объекта).
С точки зрения системы объектные данные состоят из отдельных
объектов. Каждый из этих объектов обладает внутренним уникальным

8
идентификатором, благодаря наличию которого к некоторой совокупности
значений, хранящихся в базе данных, можно обращаться как к единому
целому – объекту.
Удаление какоголибо объекта из системы приводит к тому, что
состояние базы данных с точки зрения прикладного решения изменяется.
К необъектным данным в «1С:Предприятии» относятся данные
следующих объектов конфигурации:
 регистр сведений,
 регистр накопления,
 регистр бухгалтерии,
 регистр расчета,
 перечисление,
 константа.
Необъектные данные с точки зрения «1С:Предприятия» представляют
собой некоторый набор записей, которые хранятся в таблице. Каждая из этих
записей полностью описывается значениями своих полей. Для системы эти
записи не обладают какой-либо значимостью, кроме того, что в их полях
содержатся некоторые значения. Запись можно удалить, а затем создать
новую, с такими же значениями полей. Состояние базы данных при этом не
изменится (с точки зрения логики прикладного решения). Это
принципиально отличает необъектные данные от объектных: объект нельзя
создать дважды, он ценен сам по себе, самим фактом своего существования.
Второе важное отличие заключается в том, что, изменив значения
полей записи, мы получаем другую запись, в то время как изменение
значений полей объекта не влечет за собой появление нового объекта.
Большинство необъектных сущностей конфигурации имеют общий
порядок работы с данными. Из всей совокупности необъектных сущно- стей
выделяются только константы: для каждой константы в базе данных
хранится одно значение.

9
Для того чтобы открыть и закрыть конфигурацию, следует
использовать пункты меню Конфигурация -> Открыть конфигурацию и
Конфигурация -> Закрыть конфигурацию или соответствующие им кнопки
на панели инструментов.
После того как конфигурация открыта, ее состав появляется в окне
дерева конфигурации (см. рис. 1.6).

Рис. 1.6. Дерево конфигурации


Объекты конфигурации обладают различным поведением, и оно
зависит от вида объекта. «Сложные» объекты конфигурации состоят из
более «простых», и одни и те же «простые» объекты могут входить в состав
сложных объектов. Такая структура позволяет упростить работу с объектами
конфигурации, поскольку если мы знаем, как работать с каким-либо
«простым» объектом, то в любом «сложном» объекте, в состав которого он
входит, мы будем работать с ним все тем же образом.
Самое важное качество объектов конфигурации – это их прикладная
направленность. Объекты конфигурации не просто некие абстрактные
10
конструкции, при помощи которых разработчик пытается описать
поставленную перед ним задачу. Они представляют
собой аналоги реальных объектов, которыми оперирует предприятие в
ходе своей работы.
На основе объектов конфигурации платформа создает в базе данных
таблицы, в которых будут храниться данные.
В литературе, как правило, объект конфигурации и соответствующий
ему набор таблиц базы данных принято называть одинаково.
Палитра свойств – это специальное служебное окно, которое
позволяет редактировать все свойства объекта конфигурации и другую
связанную с ним информацию. Поскольку разные объекты конфигурации
имеют разные свойства, то содержимое этого окна будет меняться в
зависимости от того, какой объект является текущим.
Константа
Объект константа предназначен для хранения постоянной или условно-
постоянной информации. Одна константа предназначена для хранения
только одного значения. В системе может быть любое количество констант.
Константы создаются в конфигураторе и заполняются значениями в
пользовательском режиме.
Перечисление
Объект конфигурации Перечисление предназначен для описания
структуры хранения постоянных наборов значений, не изменяемых в
процессе работы конфигурации. На основе объекта конфигурации
Перечисление платформа создает в базе данных таблицу, в которой может
храниться набор некоторых постоянных значений.
Набор всех возможных значений, которые содержит перечисление,
задается при конфигурировании системы, и пользователь не может изменять
их, удалять или добавлять новые. Из этого следует важная особенность
перечисления: значения перечисления не «обезличены» для конфигурации,
на них могут опираться алгоритмы работы программы.
11
Лекция 2. Объекты платформы «1С:Предприятие 8.3»:
справочники, документы, отчеты.

Справочники

Объект конфигурации Справочник предназначен для работы со


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

Рис. 2.1. Справочник «Товары» в режиме «Конфигуратор», в режиме


«1С:Предприятие» и в базе данных

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

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

14
Рис. 2.3. Справочник «Сотрудники» в режиме «Конфигуратор», в
режиме «1С:Предприятие» и в базе данных
Причем система скрывает от разработчика всю «техническую» часть,
связанную с хранением данных: в базе данных для справочника создаются
несколько таблиц, эти таблицы связываются по уникальному полю (Ссылка),
поля таблиц имеют определенные типы и т. д. Все это система делает сама.
Для удобства использования элементы справочника могут быть
сгруппированы пользователем по какому-либо принципу. Возможность
создания таких групп в справочнике задается свойством Иерархический

15
объекта конфигурации Справочник. В этом случае элемент справочника,
представляющий собой группу, будет являться родителем для всех
элементов и групп, входящих в эту группу. Такой вид иерархии называется
иерархией групп и элементов.
Возможен и другой вид иерархии – иерархия элементов. В этом случае
в качестве родителя выступает не группа элементов справочника, а
непосредственно один из его элементов.
Элементы одного справочника могут быть подчинены элементам или
группам другого справочника. В системе «1С:Предприятие» это достигается
путем указания списка владельцев справочника для каждого объекта
конфигурации Справочник.

Документы

Объект конфигурации Документ предназначен для описания


информации о совершенных хозяйственных операциях или о событиях,
произошедших в жизни организации вообще. Как правило, в работе любой
фирмы используются такие документы, как приходные накладные, приказы о
приеме на работу, платежные поручения, счета и т. д.
Логика работы документов отличается от логики работы других
объектов конфигурации. Документ обладает способностью проведения. Факт
проведения документа означает, что событие, которое он отражает, повлияло
на состояние учета. До тех пор, пока документ не проведен, состояние учета
неизменно, и документ не более чем черновик, заготовка. Как только
документ будет проведен, изменения, вносимые документом в учет, вступят
в силу и состояние учета будет изменено.
Поскольку документ вносит изменения в состояние учета, он всегда
«привязан» к конкретному моменту времени. Это позволяет отражать в базе
данных фактическую последовательность событий.

16
Следующим важным фактом, вытекающим из двух предыдущих,
является то, что система «1С:Предприятие» имеет механизмы, позволяющие
отслеживать правильность состояния учета.
В процессе работы пользователь может самостоятельно создавать
новые документы – приходные и расходные накладные, счета и т. п.
В базе данных каждый документ представляет собой отдельную запись
в основной таблице, хранящей информацию об этом виде документов (рис.
2.4).

Рис. 2.4. Стандартные реквизиты документа «Приходная накладная» в


режиме «Конфигуратор», в режиме «1С:Предприятие» и в базе данных

Каждый документ, как правило, содержит информацию, которая


подробнее описывает этот документ. Набор такой информации является
одинаковым для всех документов одного вида, и для описания такого набора
используются реквизиты объекта конфигурации Документ, являющиеся
17
подчиненнымиобъектами конфигурации. Большинство реквизитов
разработчик создает самостоятельно, однако у каждого объекта
конфигурации Документ по умолчанию существуют стандартные реквизиты.
Два наиболее важных из них – это Дата и Номер.
Кроме этого, каждый документ содержит, как правило, некоторый
набор информации, которая одинакова по своей структуре, но различна по
количеству и предназначена для разных документов. Для описания подобной
информации служат табличные части объекта конфигурации Документ. В
этом случае в базе данных будут созданы дополнительные таблицы для
хранения табличных частей, подчиненных конкретному документу.

Отчеты

Объект конфигурации Отчет предназначен для описания алгоритмов,


при помощи которых пользователь сможет получать необходимые ему
выходные данные. Алгоритм формирования выходных данных описывается
при помощи визуальных средств или с использованием встроенного языка. В
реальной жизни объектам конфигурации Отчет соответствуют всевозможные
таблицы выходных данных, сводных данных, диаграммы и пр.
Любой отчет, как правило, подразумевает получение сложной выборки
данных, сгруппированных и отсортированных определенным образом.
Система компоновки данных представляет собой мощный и гибкий
механизм, позволяющий выполнить все необходимые действия – от
получения данных из различных источников до представления этих данных в
виде, удобном для пользователя.
Чаще всего исходные данные, необходимые для отчета, находятся в
базе данных. Для того чтобы указать системе компоновки данных, какая
информация и откуда должна быть получена, используется язык запросов
системы «1С:Предприятие».

18
Система «1С:Предприятие» поддерживает два способа доступа к
данным, хранящимся в базе данных:
 „„ объектный (для чтения и записи);
 „„ табличный (для чтения).
Объектный способ доступа к данным реализован посредством
использования объектов встроенного языка. Важной особенностью
объектного способа доступа к данным является то, что, обращаясь к какому-
либо объекту встроенного языка, мы обращаемся к некоторой совокупности
данных, находящихся в базе данных, как к единому целому.
Табличный доступ к данным в «1С:Предприятии» реализован с
помощью запросов к базе данных, которые составляются на языке запросов.
В этой технике разработчик получает возможность оперировать
отдельными полями таблиц базы данных, в которых хранятся те или иные
данные.
Табличная техника предназначена для получения информации из базы
данных по некоторым условиям (отбор, группировка, сортировка,
объединение нескольких выборок, расчет итогов и т. д.).
Табличная техника оптимизирована для обработки больших объемов
информации, расположенной в базе данных, и получения данных,
отвечающих заданным критериям.
Система компоновки данных предназначена для создания
произвольных отчетов в системе «1С:Предприятие» и состоит из нескольких
основных частей.
Исходные данные для компоновки отчета содержит в себе схема
компоновки данных. Это наборы данных и методы работы с ними.
Разработчик создает схему компоновки данных, в которой описывает
текст запроса, наборы данных, связи между ними, доступные поля,
параметры получения данных, и задает первоначальные настройки
компоновки – структуру отчета, макет оформления данных и др.

19
Например, схема компоновки может содержать следующий набор
данных (рис. 2.5).

Рис. 2.5. Пример схемы компоновки (набор данных и запрос, его


использующий)
Отчет системы компоновки имеет сложную иерархическую структуру
и может состоять из различных элементов, таких как группировки, таблицы и
диаграммы.
При этом пользователь может изменить существующую структуру
отчета или вообще создать совершенно новую структуру отчета. Может
настроить необходимый ему отбор, оформление элементов структуры отчета,
получить расшифровку по каждому элементу и т. д.

20
Лекция 3. Основные конструкции встроенного языка

Все прикладное решение представляется не в виде строк с


инструкциями на языке программирования, а в виде иерархической
структуры объектов конфигурации. При этом разработчик использует
встроенный язык и язык запросов для того, чтобы описать специфические
алгоритмы поведения тех или иных объектов конфигурации в различные
моменты исполнения прикладного решения.
Использование встроенного языка при разработке прикладных
решений ограничено в основном решением тех задач, которые действительно
требуют алгоритмического описания, например, расчета налогов, проверки
корректности введенных данных и пр. Основная же структура прикладного
решения описывается структурой объектов конфигурации.
Почти все объекты конфигурации содержат модули, в которых и могут
быть описаны алгоритмы на встроенном языке. Эти модули будут
вызываться средой исполнения в конкретные, заранее определенные
моменты работы прикладного решения – события. Таким образом, можно
сказать, что использование встроенного языка в прикладных решениях носит
событийный характер.
Контекст исполнения модулей
С точки зрения места исполнения модуля существует понятие
«контекст исполнения модулей», определяющий программную среду, в
которой выполняется модуль. Для клиент-серверного варианта работы
«1С:Предприятия» таких контекстов два – контекст клиента и контекст
сервера (рис. 3.1).

21
Рис. 3.1. Программные компоненты «1С:Предприятия» в клиент-
серверном варианте работы
При этом физически все программные компоненты в клиент-серверном
варианте работы «1С:Предприятия» могут располагаться как на одном
компьютере, так и на разных.
Наличие серверного и клиентского контекста исполнения модулей
определяет следующие особенности.
Во-первых, в контексте клиента (на клиенте) и в контексте сервера (на
сервере) доступны разные свойства, методы и объекты встроенного языка.
Все действия, связанные с доступом к данным (их чтение и запись),
возможны только на сервере, а отображение этих данных пользователю
и другие интерактивные действия возможны только на клиенте. Поэтому
клиентские процедуры в модулях в явном виде отделяются от серверных, и в
них используется ограниченный состав объектной модели встроенного
языка.
Во-вторых, реальным вариантом работы клиент-серверного варианта
будет ситуация, когда все программные компоненты «1С:Предприятия»
расположены на отдельных компьютерах. Как правило, сервер
«1С:Предприятия» и сервер СУБД находятся в пределах одной локальной
сети, а вот клиентский компьютер с клиентским приложением может
находиться как в этой же сети, так и подключаться к серверу через Интернет
22
с использованием самых разных каналов связи с разной скоростью передачи
информации.
В процессе работы «1С:Предприятия» клиентское приложение все
время вызывает сервер для выполнения каких-либо действий, сервер
выполняет их и возвращает управление и результат этих действий обратно,
на клиента. Механизмы платформы оптимизируют клиент-серверное
взаимодействие для того, чтобы обеспечить приемлемую скорость работы
системы даже на низкоскоростных каналах связи. Поэтому разработчик,
организующий клиент-серверное взаимодействие путем вызова серверных
процедуриз процедур, исполняющихся на клиенте, также должен стремиться
к такой оптимизации.
Основные конструкции встроенного языка
Базовые типы:
1. СТРОКА – содержит строку произвольной длины в формате Unicode.
Есть возможность задания многострочных строк.
2. ЧИСЛО – любое число (в том числе отрицательное и десчтичное). Для
чисел, хранящихся в памяти компьютера, размер не ограничен.
3. ДАТА – содержит дату и время. Значение даты находится в диапозоне от
01.01.0001г. 0 часов 0 минут 0 секунд до 31.12.9999г. 23часа 59 минут 59
секунд.
4. БУЛЕВО – имеет значение ИСТИНА и ЛОЖЬ.
Примитивные типы:
1. НЕОПРЕДЕЛЕНО – пустое значение с незаданным типом в памяти
компьютера. Фактически определено пустой строкой.
2. NULL – пустое значение с незаданным типом в базе данных.
Используется только для определения отсутствующего значения при
работе с базой данных.
3. ТИП – используется для определения типов значений, оно необходимо
для определения и сравнения типов.

23
Операции и выражения
Операция – базовое действие, которое может выполнять программа для
обработки значений в оперативной памяти компьютера.
Выражение – последовательность операций и значений, используемая для
обработки данных с целью получения требуемого результата.
В зависимости от операций и значений выражения делтся на три типа:
1. Арифметические операции
Сложение a+b
Вычитание a-b
Умножение a*b
Деление a/b
Остаток от деления a%b
Унарный минус -a
Операции сложения и вычитания могут использоваться и для типа ДАТА,
причем при сложении даты с числом, число – это количество секунд.
2. Операция конкатенации.
Используется для присоединения одной строки к другой.

Строка1 + «еще строка»;

Если второе и последующие слагаемые, не являются строками, то они


приводятся к типу СТРОКА.
3. Логические операции
а. Операции сравнения
Больше a>b
Меньше a<b
Больше или равно a>=b
Меньше или равно a<=b
Равно =
Не равно <>

б. Булевы операции (записаны по приоритету выполнения)


НЕ отрицание
И конъюнкция
24
ИЛИ дизъюнкция

Коллекции значений. Помимо простых типов в 1С существуют коллекции


значений – определенным образом организованные наборы значений.
1. Массивы. Могут быть многомерные и динамические. Отсутствуют
ограничения на использование разных типов данных в одном массиве.
Ключом в массиве всегда является Индекс с типом ЧИСЛО.

Массив1 = Новый Массив(n);

2. Структура. Отличается от массива тем, что ключом может быть любой


тип.

Структура1 = Новый Структура(«Имя1.Имя2….ИмяN»);


Структура1.Имя1 = …;
….
Структура1.ИмяN = …;
Структура1.Вставить(«Значение1», «Значение2», …, «ЗначениеN»);
Структура1.Удалить(«Значение1», «Значение2», …, «ЗначениеN»);
Структура1.Очистить(); //полное удаление всех записей

3. Соответстви – структура, в которой в качестве ключа используется


строка с пробелами.

Соответствие1 = Новый Соответствие;


Соответствие1.Вставить(«Значение1», «Значение2», …, «ЗначениеN»);

4. Список значений. Хранит только одно значение и его пользовательские


представления в интерфейсе.
Представления могут задаваться треся вариантами:
25
 Представление – тип СТРОКА
 Пометка – тип БУЛЕВО
 Картинка – тип «Картинка»

СписокЗначений1 = Новый СписокЗначений;


СписокЗначений1.Добавить(Число, «Представление», Пометка,
Картинка);
//или
Элемент = СписокЗначений1.Добавить();
Элемент.Значение = Число;
Элемент.Представление = «Строка»;
Элемент.Поментка = Булево;
Элемент.Картинка = Картинка;

5. Таблицы значений. Позволяют хранить в строке таблицы множество


значений. Набор колонок в таблице произвольный и сожет меняться в
любое время. Фактически это обычная таблица.

ТаблЗнач1 = Новый ТаблицаЗначений;


ТаблЗнач1.Колонки.Добавить(«Колонка1»);
//или
Элемент = ТаблЗнач1.Добавить();
Элемент.Колонка1 = …;

6. Дерево значений – развитие таблицы значений с возможностью


храннения в таблице группы записей.

ДеревоЗнач1 = Новый ДеревоЗначений;


ДеревоЗнач1.Колонки.Добавить(«Колонка1»);
Группа1 = ДеревоЗнач1.Строки.Добавить();
26
Группа1.Колонка1 = …;
//или
Элемент = Группа1.Строки.Добавить();
Элемент.Колонка1 = …;

Синаксические конструкции
1. Условия

Если … Тогда
….;
Иначе
…;
КонецЕсли;

2. Циклы

Для индекс = число1 по число2 Цикл


…;
КонецЦикла;
//или
Для каждого значение1 Из данные1 Цикл
…;
КонецЦикла;
//или
Пока значение1 условие1(№ <>5) Цикл
…;
КонецЦикла;

3. Переходы
 Перейти – бузусловный переход
27
Перейти ~Переход1;
….
~Переход1;

 Прервать – переход из цикла к оператору, следующему за циклом.


 Продолжить – переход внутри цикла к началу цикла, прерывает
только итерацию в цикле.
4. Процедура – не возвращает ответа.

Процедура Процедура1()
…;
КонецПроцедуры
//вызов:
Процедура1();

5. Функция – возвращает ответ.

Функция Функция1(Параметры)
…;
КонецФункции
//вызов:
Функция1(параметры);

28
Лекция 4. Объектная модель работы с данными

В 1С как правило, термин объект употребляется в одном из трех


контекстов:
 „ конфигурация,
 „„ база данных,
 „„ встроенный язык.
Говоря о конфигурации, термином объект конфигурации обозначается
некоторую совокупность описания данных и алгоритмов работы с этими
данными.
На основании каждого объекта конфигурации в базе данных создается
информационная структура, в которой будут храниться данные.
Характерной особенностью такого элемента является то, что на него
(как на совокупность данных) существует ссылка, которая может являться
значением какого-либо поля другой информационной структуры.
Во встроенном языке термином «объект» обозначается тип данных,
позволяющий получить доступ к данным и обладающий набором свойств и
методов.
Существует целый ряд объектов встроенного языка, позволяющих
работать собъектами, например со справочниками (СправочникиМенеджер,
СправочникМенеджер.<имя>, СправочникСсылка.<имя> и т. д.).
Среди них есть один объект, который предоставляет доступ к объекту
справочника в базе данных, – СправочникОбъект.<имя> (рис. 4.1).

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

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

Рис. 4.2. Состав прототипа (шаблона) объекта конфигурации


Когда разработчик добавляет в дерево объектов конфигурации новый
объект конфигурации, этот объект наследует базовую реализацию прототипа.

31
При добавлении нового объекта конфигурации платформа
основывается на «знаниях» о базовом классе объектов (рис. 4.3):
 платформа «знает», какие таблицы (состав полей, количество
таблиц, их взаимная связь) нужно будет создать в хранилище данных при
сохранении конфигурации;
 сразу же добавляются новые типы встроенного языка,
позволяющие работать с данными создаваемого объекта, причем состав этих
типов может быть разным для различных шаблонов (прототипов);
 сразу же создается набор прав, которые будут использоваться для
данного объекта, причем наборы прав также могут быть различными для
разных шаблонов (прототипов), поскольку различается их базовая
функциональность;
 определяются стандартные действия, которые система может
выполнять с данными этого объекта конфигурации;
 и т. д.

Рис. 4.3. Добавление


нового объекта
конфигурации
Благодаря этому
разработчик, не
производя никаких
дополнительных
действий, тут же может
запустить прикладное решение
и работать с только что добавленным объектом – базовая реализация объекта,
унаследованная от прототипа (шаблона), обеспечит выполнение всех
необходимых типовых действий.

32
Таким образом, несмотря на то, что каждое прикладное решение
обладает собственной «индивидуальностью», все они созданы по
определенной модели, с использованием объектов конфигурации, которые
обладают одинаковой базовой реализацией. Такой подход значительно
упрощает модификацию прикладных решений разработчиками, которые не
участвовали в их создании.

Недостатком объектной модели является ее низкая производительность


– почти в 10 раз дольше обрабатывается запос по сравнению с табличной
моделью. Происходит это потому, что платформа по-разному работает в
части работы с базой данных. Например, при обращении "через точку",
система выполняет запрос к БД на выбор абсолютно всех полей. Не зависимо
от того, что нужно только одно поле, платформа тянет за собой и все
остальные, доступные для данного объекта. А при помощи запроса,
выбираются только необходимые поля. Кроме того, ощутимый перевес в
скорости сможет дать наложение специальных фильтров на таблицы и их
соединения.

Несмотря на все недостатки, использовать объектную модель иногда


просто необходимо. Потому что написанный код, состоящий из одних только
запросов, интуитивно непонятен и его сложно будет читать другим
разработчикам. Кроме того, в ряде случаев использовать необъектные
алгоритмы просто невозможно.

Для оптимизации программного кода, используя объектную модель,


необходимо придерживаться некоторых правил:

 При работе нужно по максимуму сокращать использование обращений


к "точке". В этом помогает алгоритм использования временных
переменных, в которые можно помещать промежуточные объекты.

33
 Надо стараться как можно реже использовать несколько точек в одной
операции получения поля. Нужно разбивать этот сложный запрос на
несколько более простых (опять же с использованием промежуточных
переменных). Иначе для выборки данных платформа будет выполнять
полное соединение таблиц, написанных в адресе обращения.
Система «1С:Предприятие» поддерживает два варианта работы
системы: файловый и клиент-серверный.
Файловый вариант работы с информационной базой рассчитан на
персональную работу одного пользователя или работу небольшого
количества пользователей в локальной сети. В этом варианте вседанные
информационной базы (конфигурация, база данных, административная
информация) располагаются в одном файле (рис. 4.4).

Рис. 4.4. Файловый вариант работы


Основное назначение файлового варианта – быстро и легко установить
систему и работать с ней.
В файловом варианте тоже можно вести реальную учетную работу, но
при этом нужно понимать, что он не предоставляет абсолютно всех тех же
возможностей по масштабируемости, защите данных, какие имеет клиент-
серверный вариант.

34
Клиент-серверный вариант предназначен для использования в рабочих
группах или в масштабе предприятия. Он реализован на основе
трехуровневой архитектуры «клиентсервер» (рис. 4.5).

Рис.4.5. Трехуровневая архитектура «1С:Предприятия»


Клиент-серверный вариант работы – это основной вариант для работы
в многопользовательской среде с большим объемом данных. Он
предоставляет абсолютно все возможности по масштабируемости,
администрированию и защите данных. Однако он требует значительных
усилий по установке и администрированию. При этом физически серверная и
клиентские части системы «1С:Предприятие» могут располагаться как на

35
разных компьютерах, так и на одном. Главное, что пользователь не имеет
непосредственного доступа к серверу баз данных, и это позволяет
обеспечивать безопасность данных. А в файловом варианте база данных
должна находиться на некотором общем сетевом ресурсе, доступном всем
пользователям.
Система «1С:Предприятие» изначально рассчитана на клиент-
серверный вариант работы. Прикладные решения разрабатываются один раз
и одинаково работают, что в одном, что в другом варианте. То есть переход с
одного варианта на другой не требует переделки конфигурации.
Это достигается за счет того, что конфигурация разрабатывается всегда
исходя из клиент-серверной архитектуры. В системе «1С:Предприятие»
просто нет возможности разрабатывать ее по-другому. И в том случае, когда
используется файловый вариант работы, система при исполнении
прикладного решения просто «имитирует» наличие сервера на клиентском
компьютере.
Клиент-серверная архитектура разделяет всю работающую систему на
три различные части, определенным образом взаимодействующие между
собой, – клиент, сервер «1С:Предприятия» и сервер баз данных.
Клиентское приложение – это программа, часть системы
«1С:Предприятие». Основное ее назначение – организация
пользовательского интерфейса, отображение данных с возможностью их
изменения. Кроме этого, клиентское приложение может исполнять код на
встроенном языке (то есть какие-то алгоритмы разработчика), но оперирует
при этом лишь очень ограниченным пространством типов встроенного языка.
Такой подход позволяет клиентскому приложению быть очень «легким», не
требовать много ресурсов, «путешествовать» по Интернету и работать даже в
среде веб-браузеров.
Клиентское приложение взаимодействует с сервером
«1С:Предприятия». Сервер «1С:Предприятия» – это тоже программа, часть
системы «1С:Предприятие».
36
Одна из основных задач этой программы – передавать запросы от
клиентского приложения к серверу баз данных и возвращать обратно клиенту
результаты этих запросов.
Другая задача сервера – исполнение большинства алгоритмов на
встроенном языке, подготовка данных для отображения форм, отчетов и т. д.
То есть все сложные вычисления, требующие непосредственной работы с
данными, исполняются именно на сервере.
При этом на сервере доступно практически все пространство типов
встроенного языка «1С:Предприятия» (за исключением, естественно, чисто
интерфейсных типов, потому что у сервера нет никакой интерфейсной части,
так как он общается не с пользователями, а только с другими программами:
клиентским приложением и с сервером баз данных).
Сервер баз данных – это тоже программа. Она уже не является частью
системы «1С:Предприятие», это специализированная программа,
поставляемая сторонними производителями. Ее основное назначение – это
организация и ведение баз данных – структурированных организованных
наборов данных, описывающих характеристики каких-либо физических или
виртуальных систем.

37
Лекция 5. Табличная модель работы с данными. Язык запросов

Как уже было сказано, «1С:Предприятие» поддерживает три способа


представления данных (рис. 1.5):
 хранение в базе данных,
 представление во встроенном языке,
 отображение в формате XML.
В базе данных информация хранится в виде объектов базы данных или
в виде отдельных записей (в зависимости от ее природы – объектной или
необъектной).
Данные, хранимые в базе данных, могут быть считаны в объекты
встроенного языка для их просмотра или изменения и записаны обратно в
базу данных.
Важной особенностью работы с данными является то, что в
«1С:Предприятии» реализована общая система типов встроенного языка,
полей баз данных и интерфейса. Иными словами, разработчик одинаковым
образом определяет поля базы данных, переменные встроенного языка,
реквизиты форм и одинаковым образом работает с ними (рис. 5.1).

Рис. 5.1. Общая система типов


В результате разработчику не приходится заботиться о
преобразованиях между типами данных, поддерживаемыми той или иной
СУБД, типами, поддерживаемыми встроенным языком, и типами,
используемыми для построения интерфейсных решений.

38
«1С:Предприятие» обеспечивает два способа доступа к данным –
объектный (для чтения и записи) и табличный (только для чтения).
В табличной модели все множество объектов того или иного класса
представляется как совокупность связанных между собой таблиц, к которым
можно обращаться при помощи запросов – как к отдельной таблице, так и к
нескольким таблицам во взаимосвязи (рис. 5.2).

Рис. 5.2. Табличный доступ к данным


В этом случае разработчик получает доступ к данным сразу нескольких
объектов, что очень удобно для анализа больших объемов данных, например,
при создании отчетов. Однако в силу того, что данные, выбираемые таким
способом, содержат не все, а лишь некоторые реквизиты анализируемых
объектов, табличный способ доступа не позволяет изменять эти данные.
Сочетание табличного и объектного доступа к данным позволяет, с
одной стороны, сделать разработку прикладных решений простой и
наглядной, а с другой стороны, получать сколь угодно сложные выборки
данных и использовать возможности агрегирования полученных данных.
Язык запросов основан на SQL, но при этом содержит значительное
количество расширений, ориентированных на отражение специфики
финансово-экономических задач и на максимальное сокращение усилий по
разработке прикладных решений.
Типы таблиц источников данных:
39
1. Реальные – данные физически хранятся в базе данных:
а. Объектные – предназначены для хранения объектов, таких как
справочники, документы, счета и т.п. Каждой объектной таблице
соответствует тип объектов системы 1С:Предприятие и следовательно
у каждой объектной таблицы определено поле типа Сссылка на
текущую запись. Объектные таблицы могут быть иерархическими;
б. Вложенные – предназначены для хранения данных, представленных в
виде табличных частей справочников и документов.
2. Виртуальные (расчетные) – данные вычисляются системой в момент
обращения к источнику;
3. Временные (внешние) – таблицы произвольной структуры, создаваемые
разработччиком в любой момент времени в памяти компьютера.
Механизмы чтения данных из таблиц (рис. 5.3):
1. Механизм компоновки данных – мезанизм определения схемы
источников данных и способов их обработки и представления. Главный
инструмент – конструктор схемы компоновки данных.
2. Механиз запросов – механизм доступа к данным, который
поддерживает платформа. При помощи этого механизма можно читать
и обрабатывать данные. Он используется схемой компоновки данных
для получения данных и при программном обращении к данным.
На программном уровне доступ происходит с помощью разных
объектов встроенного языка:
а. Запрос – статические запросы для получения данных;
б. Построитель запроса – динамические запросы для получения
данных;
в. Построитель отчета – динамические запросы для получения и
вывода данных.
3. Язык запросов – основан на SQL, но имеет некоторые расширения,
позволяющие упростить и расширить возможности механизма
запросов.
40
Рис. 5.3. Механизмы чтения данных из таблиц
Важной особенностью языка запросов является то, что он
предоставляет доступ к данным только на чтение и использует те же типы
данных, что и встроенный язык.
Можно перечислить наиболее существенные возможности,
реализуемые языком запросов:
 Обращение к подчиненным полям через точку. Если поля какой-либо
таблицы имеют ссылочный тип (хранят ссылки на объекты другой
таблицы), разработчик может в тексте запроса ссылаться на них через
точку («.»). При этом количество уровней вложенности таких ссылок
система не ограничивает;
 Обращение к вложенным таблицам (например, табличным частям
документов и элементов справочников). К вложенным табличным частям
можно обращаться и как к отдельным таблицам, и как к целым полям
одной таблицы;
 Автоматическое упорядочивание. Режим автоматического
упорядочивания позволяет выводить информацию в наиболее правильном
(«естественном») порядке;
 Многомерное и многоуровневое формирование итогов. Итоги и подытоги
формируются с учетом группировки и иерархии, обход уровней может
выполняться в произвольном порядке с подведением подытогов.

41
Обеспечивается корректное построение итогов по временным
измерениям;
 Поддержка виртуальных таблиц. Виртуальные таблицы,
предоставляемые системой, позволяют получить практически готовые
данные для большинства прикладных решений без необходимости
составления сложных запросов. При этом виртуальные таблицы
максимально используют хранимую информацию, например, ранее
рассчитанные итоги и т. д.;
 Стандартные SQL операции. В языке запросов поддерживаются
стандартные для SQL операции, такие как объединение (Union),
соединение (Join) и т. д.;
 Использование временных таблиц. Временные таблицы позволяют
повысить производительность запросов, в некоторых случаях снизить
количество блокировок и сделать текст запроса более легким для
восприятия;
 Пакетные запросы. Пакетные запросы позволяют более удобно работать
с временными таблицами за счет того, что создание временной таблицы и
ее использование помещаются в один запрос. Пакетный запрос
представляет собой последовательность запросов, разделенных символом
«;». Запросы исполняются один за другим. Результатом выполнения
пакетного запроса в зависимости от используемого метода будет являться
либо результат, возвращаемый последним запросом пакета, либо массив
результатов всех запросов пакета в той последовательности, в которой
следуют запросы в пакете.
Структура и синтаксис запроса.
Обобщенная стуктура запроса выглядит следующим образом:
ВЫБРАТЬ [РАЗРЕШЕННЫЕ][РАЗЛИЧНЫЕ][ПЕРВЫЕ<Количество>]<Список полей
выборки> |*
[ИЗ <Список таблиц источников>]
[ГДЕ <Список уловий отбора>][ПОДОБНО]
[СГРУППИРОВАТЬ ПО <Список полей группировки>]
42
[ИМЕЮЩИЕ <Список условий>]
[ДЛЯ ИЗМЕНЕНИЯ <Список блокируемых данных>]
[УПОРЯДОЧИТЬ ПО <Список полей упорядочивания>][ИЕРАРХИЯ] |
[АВТОУПОРЯДОЧИВАНИЕ]
[ИТОГИ <Агрегатные функции> ПО <Список полей>]
Текст запроса состоит из нескольких секций. Секции в квадратных
скобках являются необязательными и могут быть пропущены. Вертикальная
черта разделяет взаимоисключающие выражения.
1. ВЫБРАТЬ – обязательная секция в запросе.
а. РАЗЛИЧНЫЕ – убирает дублирующиеся записи при выборке из
множества таблиц или других запросов.
б. РАЗРЕШЕННЫЕ – выбор только тех записей, на которые у текущего
пользователя есть права, иначе система выдаст ошибку.
в. ПЕРВЫЕ<Количество> – позволяет задать предельное количество
строк в результате запроса. Будут отобраны первые строки из запроса.
2. ИЗ – выбор истоников данных. Для источников может применяться
синоним КАК<ИмяИсточника>.
3. ГДЕ – задаются уловия на выбор конкретных записей. Можно
использовать логические операторы И, ИЛИ, НЕ.
4. СГРУППИРОВАТЬ ПО – группировака по различным полям.
5. ИМЕЮЩИЕ – позволяет накладывать условия на значения агрегатных
функций и результатов группировок. В условии отбора можно
использовать только агрегатные функции, по которым осуществляется
группировка.
6. ДЛЯ ИЗМЕНЕНИЯ – используется для указания необходимости
блокировки считываемых в транзакции данных. Считанные данные
становятся недоступными для чтения в других сессиях: дляя файлового
варианта блокируются указанные таблицы, для клиент-серверного
варианта блокируются только выбранные записи. Блокировка снимается
после завершения транзакции.

43
7. УПОРЯДОЧИТЬ ПО – упорядочивание данных, полученных по
результатам запроса:
 ВОЗР – по возрастанию;
 УБЫВ – по убыванию.
Для иерархических таблиц еще добавляются:
 ИЕРАРХИЯ – добавляет в результат группы элементов по
возрастанию;
 ИЕРАРХИЯ ПО УБЫВАНИЮ – добавляет в результат группы
элементов по возрастанию;
АВТОУПОРЯДОЧИВАНИЕ – автоматическое упорядочивание. Оно
используется автономно, т.е. в запросе отсутствуют предложения
УПОРЯДОЧИТЬ ПО, ИТОГИ, СГРУППИРОВАТЬ ПО. Результат будет
упорядочен по полям сортировки по умолчанию (для справочников – код
и наименование, для документов – дата документа).
8. ИТОГИ – позволяет включить в результат запроса дополнительные
записи, в которых содержатся данные об общихи промежуточных итогах
по полям и группировкам, с использованием агрегатных функций.
Существуют различные варианта вывода итогов:
а. Общие итоги;
б. Итоги по группировкам;
в. Итоги по иерархии;
г. Комбинация вышеперичесленных вариантов.

44
Лекция 6. Конструирование форм. Подсистемы

Форма является важнейшим связующим звеном в цепи «пользователь –


данные». Именно в формах мы редактируем данные, вводим новую
информацию, видим результаты работы.
Формы «1С:Предприятия» наделены различными возможностями, как
построения, так и отображения данных. В большинстве случаев от
разработчика не требуется заботиться о том, как на экране будет выглядеть
тот или иной элемент, система сама сможет позаботиться об этом. От
разработчика требуется правильно настроить интерфейсные свойства объекта
конфигурации, на основании которых и будет построено нужное
представление.
Управляя размещением элементов в форме, разработчик должен
«посоветовать» системе те или иные способы группировки элементов,
порядок их размещения. Естественно, платформа предоставляет возможности
взять под контроль некоторые этапы разработки формы, но данное действие
не является приоритетным. Задача разработчика состоит не в
детальном, «попиксельном», размещении элементов на форме, не в описании
сложных привязок, а в логическом описании состава формы.
При построении форм системой учитываются не только настройки
самой формы, сделанные разработчиком. Влияние на поведение формы и ее
элементов оказывают настройки прав пользователей, ролей, доступных
пользователю, применяемые к сеансу работы приложения функциональные
опции.
Помимо «стандартных» форм различных объектов конфигурации
(справочников, документов, регистров и пр.), существует одна особенная
форма – рабочий стол. Именно с него и начинается работа пользователя с
системой. На рабочем столе отображаются формы других объектов
конфигурации.

45
Формы «1С:Предприятия» являются независимыми от объектов
конфигурации. Это означает, что форма может быть подчинена какому-либо
объекту конфигурации, например справочнику, но отображать данные
совсем другого объекта, например, документа.
«1С:Предприятие» позволяет вообще не описывать форму в
конфигураторе. При обращении к объекту в пользовательском режиме
система сгенерирует необходимую форму самостоятельно. Если
разработчиком прикладного решения не планируется вносить изменения в
работу и поведение формы, например, менять порядок обхода элементов,
добавлять команды, описывать с помощью встроенного языка алгоритмы
заполнения, то создавать форму в режиме Конфигуратор необязательно.
Процесс создания и открытия формы, отображающей объектные
данные (у формы определен основной реквизит), выглядит так:
 объект считывается из базы данных на сервере;
 объект конвертируется в данные формы (создание формы на сервере);
 объект удаляется из памяти;
 данные формы передаются на клиента (создание формы на клиенте).
Запись данных формы в информационную базу происходит только на
сервере:
 данные формы получаются с клиента,
 данные формы конвертируются в объект,
 объект записывается в базу данных,
 объект удаляется из памяти.
Графически все вышесказанное можно изобразить в виде схемы (рис.
6.1).

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

47
Рис. 6.2. Процесс открытия формы
Создание формы с помощью конструктора
Создание новой формы начинается с конструктора форм.
Модификация формы, созданной конструктором, осуществляется в
редакторе формы.
В конфигурации могут существовать формы, подчиненные объектам
конфигурации, и общие формы. Общие формы располагаются в дереве
конфигурации, в ветке Общие – Общие формы. Конструктор форм различает,
какая форма будет создаваться – подчиненная объекту или общая.
При создании общей формы конструктор предлагает выбрать тип
формы из двух возможных (рис. 6.3):
 Произвольная форма – данные, с которыми будет взаимодействовать
форма, будут определены разработчиком в дальнейшем, в процессе
разработки;
48
 Форма констант – форма, с помощью которой будет осуществляться
взаимодействие с константами конфигурации.
По умолчанию конструктор общих форм предлагает создать
произвольную форму. Связано это с тем, что, как правило, форма
редактирования констант в прикладном решении одна, и в подавляющем
большинстве случаев разработчик будет создавать именно произвольные
общие формы.

Рис. 6.3. Выбор типа общей формы

Флажок Использовать стандартные команды позволяет автоматически


добавить в интерфейс подсистемы, в состав которой будет входить форма,
команды ее открытия.
Для каждого объекта конфигурации свои виды форм:
 для объекта Справочник это будет форма списка, выбора, элемента. Если
справочник иерархический, то возможно создание формы группы и
выбора группы;
 для объекта Документ – это форма списка, выбора, документа;
 для объекта Журнал документов – это форма журнала;
 для объекта Отчет – это форма отчета, варианта, настроек;
49
 для объекта Обработка это форма обработки;
 для объекта План видов характеристик – это форма списка, выбора, вида.
Если план видов характеристик иерархический, то возможно создание
формы группы и выбора группы. Если объект неиерархический, то
создание форм группы недоступно;
 для объекта План счетов – это форма списка, выбора, счета;
 для объекта План видов расчета – это форма списка, выбора, вида;
 для объекта Регистр сведений – это форма списка, записи, набора
записей;
 для объекта Регистр накопления – это форма списка и набора записей;
 для объекта Регистр бухгалтерии – это форма списка и набора записей;
 для объекта Регистр расчета – это форма списка и форма набора записей;
 для объекта Бизнес-процесс – это форма списка, выбора, бизнес-процесса;
 для объекта Задача – это форма списка, выбора, задачи;
 для объекта Критерий отбора – это форма критерия отбора;
 для объекта План обмена – это форма списка, выбора и узла.
Кроме всех перечисленных форм, для любого из объектов
конфигурации можно создать тип формы Произвольная. Такая форма после
создания не связана ни с какими данными конфигурации. Действия, которые
можно будет выполнять в такой форме, целиком и полностью будут зависеть
от желания и способностей разработчика формы.
Редактирование формы
Для редактирования формы в конфигураторе используется
специализированный редактор форм. Окно редактора форм разбито на
несколько областей (рис. 6.4), каждая из которых отвечает за ту или иную
функциональность будущей формы.

50
Рис. 6.4. Окно редактора формы
1. Описывается состав и порядок элементов, из которых состоит форма,
команды интерфейса, которые могут выполняться в форме.
2. Описывается состав реквизитов формы, а также команды, выполняемые
внутри формы.
3. Представлен внешний вид формы, как она может выглядеть на экране
пользователя, с учетом описанных реквизитов, элементов, команд формы.
При изменении каких-либо настроек в окнах редактора они тут же
применяются и изменяют вид формы.
Форма описывается разработчиком прикладного решения в виде
иерархического дерева (рис. 6.5).

51
Рис.6.5. Иерархия элементов формы
Все элементы формы подчинены корневому элементу Форма. Свойства
элементов дерева зависят от свойств, которыми наделены элементы
вышестоящего уровня. При этом каждый из элементов обладает своими
уникальными свойствами, характерными только для него.
Виды элементов формы
В форме используются пять элементов:
1. Группа:
а. Обычная группа;
б. Группа – Страницы;
в. Группа – Командная панель;
2. Поле;
3. Кнопка;
4. Таблица;
5. Декорация:
а. Декорация – Надпись;
б. Декорация – Картинка.
Элемент формы Поле предназначен для отображения примитивных
типов данных, текстовых, табличных, HTML-документов, диаграмм,
календарей, индикаторов. Тип данных, которые отображает элемент Поле,
влияет на то, какие значения может принимать его свойство Вид.
Элемент формы Группа предназначен для группировки других
элементов формы, их выделения, для создания командных панелей, подменю,
групп кнопок, страниц. Свойство Вид элемента формы Группа может
принимать значения:
 Обычная группа. Элемент формы, предназначенный для логической
группировки других элементов формы. Элемент Обычная группа может
не отображаться на форме, выполняя при этом функции группировки
других элементов. Может отображаться в виде Рамка группы, Линия,
Отступ;
52
 Командная панель. Элемент формы, предназначенный для группировки
кнопок и команд;
 Подменю. Элемент формы, подчиненный элементу Командная панель и
представляющий собой выпадающее меню;
 Группа кнопок. Элемент формы, подчиненный элементу Командная
панель, позволяющий сгруппировать кнопки в логические группы. Сам
элемент не отображается на форме, но кнопки одной группы отделяются
от кнопок другой группы вертикальными линиями;
 Страницы. Элемент формы, представляющий собой набор страниц;
 Страница. Элемент формы, который может быть создан только как
подчиненный элементу Страницы. Представляет собой отдельную
страницу с данными. В пользовательском режиме работы страницы, на
которых отсутствуют данные, не отображаются.
Элемент формы Таблица предназначен для отображения и
редактирования различных табличных данных. У Таблицы могут быть свои
командные панели, контекстные меню. Поля колонок элемента Таблица
могут принимать различные виды.
Элемент формы Кнопка предназначен для создания кнопок,
гиперссылок.
Подсистемы.
Платформа «1С:Предприятие» позволяет выделить в прикладном
решении отдельные функциональные части – подсистемы, в совокупности
представляющие все прикладное решение. Подсистемы могут иметь
иерархическую структуру, т. е. одна подсистема может включать в себя
несколько других подсистем.
Структура подсистем определяет всю функциональность прикладного
решения и служит основой для построения глобального командного
интерфейса приложения (рис. 6.6).
Разработка практически любого прикладного решения начинается с
проектирования состава подсистем, так как структура подсистем (разделов в
53
интерфейсе приложения) – это первое, что увидит пользователь при
знакомстве с прикладным решением.

Рис. 6.6. Глобальный интерфейс прикладного решения


Каждый объект конфигурации, описывающий данное прикладное
решение, может быть отнесен к одной или нескольким подсистемам.
Таким образом, наличие подсистем позволяет распределить объекты
конфигурации по логически связанным с ними разделам и предоставить
пользователю удобный интерфейс, в котором ему будут видны только те
объекты (т. е. та функциональность прикладного решения), с которыми он
работает.

54
Лекция 7. Программирование форм

Форма – это программный объект, который создается в процессе


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

55
Рис.7.1. Модуль формы
Основная особенность формы как программного объекта заключается в
том, что она существует одновременно и на клиенте, и на сервере.
Соответственно модуль формы, процедуры, написанные в этом модуле,
исполняются не в каком-то одном определенном контексте (только в
контексте клиента или только в контексте сервера). Для каждой процедуры в
модуле формы разработчик в явном виде указывает контекст ее исполнения:
на сервере или на клиенте. Для этого используются директивы компиляции.
Несколько важных тезисов, определяющих общий подход к
программированию форм:
 Разработчик должен понимать, что он не просто кодирует некий
прикладной алгоритм, а в явном виде программирует отдельно клиентскую и
отдельно серверную части приложения.
 Разработчик должен управлять частотой вызовов сервера и
объемом передаваемой информации.
 В разрабатываемой конфигурации код, реализующий бизнес-
логику, должен быть четко отделен от кода, реализующего интерфейс.
56
 Структура кода должна определяться не прикладной логикой
решаемой задачи, а логикой клиент-серверного взаимодействия.
 Клиентский код пишется не как последовательность действий,
которую нужно выполнить. Прежде всего, он продумывается как сценарий
передачи управления с клиента на сервер и обратно.
 Несмотря на то, что форма существует одновременно и на
клиенте, и на сервере, клиент и сервер нужно рассматривать не как единое
пространство выполнения приложения, а скорее как два взаимодействующих
приложения.
Форма, как правило, содержит некоторое количество реквизитов и
некоторое количество параметров.
И те и другие позволяют хранить некоторые данные, доступны в
редакторе формы на соответствующих закладках, и те и другие разработчик
может добавить самостоятельно, по своему желанию. Для этого в редакторе
формы существуют две закладки: Реквизиты и Параметры.
Реквизиты формы предназначены для хранения данных, с которыми
работает форма. В реквизитах хранятся те данные, которые отображаются и
редактируются в элементах формы, а также те данные, которые не
отображаются, но используются формой в процессе ее работы. Вся
совокупность данных, хранящихся в реквизитах формы, называется данные
формы.
Каждый элемент формы, позволяющий изменять данные, связан с
некоторым реквизитом формы. Когда пользователь изменяет данные в
элементе формы, аналогичные изменения происходят и в связанном с ним
реквизите. Верно и обратное. Когда реквизит формы изменяется программно,
изменяется и значение, отображаемое в связанном с ним элементе формы.
Не все реквизиты формы обязательно должны отображаться в форме.
Часть реквизитов может быть не связана с элементами формы, а данные,
хранящиеся в таких реквизитах, предназначены не для отображения или
интерактивного редактирования, а для обеспечения внутренних алгоритмов
57
работы формы или для программного взаимодействия с этой формой из
встроенного языка.
Можно сказать, что реквизиты формы составляют часть программного
интерфейса формы, с помощью которого строится взаимодействие с этой
формой «извне» – из других форм или из фрагментов программного кода.
Важным моментом является то, что реквизиты формы существуют на
протяжении всего времени существования самой формы.
Параметры формы, в отличие от реквизитов, предназначены для
управления функциональностью формы при ее открытии и, существуют
лишь в момент создания и открытия формы. После создания или открытия
формы все параметры, кроме ключевых параметров, удаляются, т. к. для
дальнейшей работы формы они уже не нужны.
Ключевые параметры – это особый вид параметров, значения которых
могут потребоваться и после того, как форма создана.
Открытие форм
При открытии формы нового объекта (элемента справочника,
документа) и при открытии формы существующего объекта возникает
различная последовательность событий.
Если открывается форма нового объекта, то сначала происходит
начальное заполнение объекта данными (событие Обработка заполнения в
модуле объекта, форма которого открывается), а затем вызываются два
события формы: сначала на сервере (При создании на сервере) и затем на
клиенте (При открытии). Эти два события позволяют подготовить форму к
открытию (рис. 7.2).

58
Рис. 7.2. Последовательность событий при открытии формы нового
объекта
Слева показан клиентский контекст, в котором вызываются события
формы. Посередине и справа – серверный контекст, в котором вызываются
как события формы, так и события самого прикладного объекта, форма
которого открывается.
Если открывается форма существующего объекта, то
последовательность событий будет иной (рис. 7.3). Сначала на сервере
вызываются два события формы. Одно (При чтении на сервере) – чтобы
подготовить дополнительные данные, которые зависят от данных объекта.
Другое (При создании на сервере) – чтобы максимально подготовить форму к
открытию. И наконец, на клиенте вызывается еще одно событие формы (При
открытии), чтобы выполнить действия, связанные с открытием формы,
которые на сервере выполнить невозможно.

59
Рис. 7.3. Последовательность событий при открытии формы
существующего объекта
Общий подход к открытию форм следующий. Для открытия формы
используется метод глобального контекста ОткрытьФорму(). Он доступен
только в контексте клиентов: толстого клиента, тонкого клиента и веб-
клиента. На сервере открыть форму нельзя.
Этот метод содержит ряд параметров, которые позволяют указать,
какая именно форма должна быть открыта, и задать некоторые свойства
открываемой формы.
Значения передаваемых параметров либо применяются платформой
автоматически, либо разработчик может применить их самостоятельно в
обработчике события формы При создании на сервере.
Кроме метода ОткрытьФорму() существует и другой метод
глобального контекста, который может быть использован для открытия
форм, – ПолучитьФорму().
По составу параметров этот метод очень похож на ОткрытьФорму().
Разница заключается в том, что ПолучитьФорму() лишь возвращает форму,
не открывая ее. В дальнейшем эта форма может быть открыта с помощью
своего метода Открыть().

60
Такой способ открытия формы можно использовать в тех случаях,
когда должны выполняться различные сложные действия в зависимости от
того, из какого фрагмента кода открывается форма. В этом случае после
получения формы может быть, например, вызвана ее экспортная процедура,
выполняющая настройку формы в зависимости от «контекста» ее вызова.
Во многих случаях форма открывается для того, чтобы пользователь
обязательно выполнил какие-то действия или ввел какие-то данные, без
которых дальнейшая работа программы будет невозможна. В таких случаях
используется открытие формы в модальном режиме.
В этом случае дальнейшее выполнение программного кода будет
остановлено до тех пор, пока пользователь не закроет модальную форму. При
этом все другие открытые формы прикладного решения будут недоступны.
Для этого используется метод глобального контекста
ОткрытьФормуМодально().
Модальная форма может быть закрыта с помощью стандартных
интерактивных команд формы либо из встроенного языка методом Закрыть().
Если форма закрывается с помощью стандартных интерактивных команд, то
метод ОткрытьФормуМодально() возвращает код возврата диалога,
соответствующий команде, с помощью которой модальная форма была
закрыта.
Если форма закрывается из встроенного языка методом Закрыть(), то в
параметр этого метода разработчик может передать произвольное значение,
которое будет возвращено в вызывающий код.
Запись данных объекта в форме может быть выполнена средствами
встроенного языка. Для этого у многих расширений формы существует метод
Записать(). У этого метода есть единственный параметр – ПараметрыЗаписи.
Он содержит структуру произвольных параметров записи.
Некоторые расширения форм объектов добавляют собственные
предопределенные параметры записи.
Событий, в которых будут доступны параметры записи, пять.
61
На рисунке 7.4 они выделены рамкой.

Рис. 7.4. События, в которых доступны параметры записи


В любом из этих обработчиков параметры записи можно изменять,
добавлять, удалять – все выполненные изменения будут переданы в
следующий обработчик.
Начальное заполнение
Механизм начального заполнения позволяет описать правила и
алгоритмы, по которым новые объекты, интерактивно создаваемые в
информационной базе, будут заполнены некоторыми данными.
Механизм начального заполнения ориентирован исключительно на
интерактивную работу. При создании новых объектов средствами
встроенного языка он не вызывается. Но при необходимости разработчик
62
может его задействовать для того, чтобы имитировать интерактивное
создание новых объектов.
Начальное заполнение вызывается в следующих случаях
интерактивного создания нового объекта:
 командой Создать в панели действий или в списке;
 командой ввода на основании;
 при программном вызове методов глобального контекста
ОткрытьФорму() или ПолучитьФорму();
 при программном вызове методов объектов Заполнить().
Механизм начального заполнения имеет несколько составляющих,
часть из них доступна в режиме Конфигуратор, часть – во встроенном языке
в режиме 1С:Предприятие:
 во-первых, в конфигураторе можно задать конкретные значения,
которыми автоматически будут заполнены реквизиты нового объекта. У
реквизитов есть свойство Значение заполнения;
 во-вторых, в конфигураторе можно разрешить платформе в некоторых
случаях самостоятельно заполнить реквизиты нового объекта
подходящими данными. У реквизитов есть свойство Заполнять из данных
заполнения;
 в-третьих, во встроенном языке разработчик может описать собственные
алгоритмы заполнения реквизитов данными в обработчике события
объекта Обработка заполнения. Это событие вызывается в тех случаях,
которые были перечислены выше у прикладных объектов (справочников,
документов и т. д.) и у набора записей регистра сведений.
Механизм проверки заполнения позволяет автоматически проверить,
заполнены ли указанные реквизиты объекта. Такая проверка выполняется
при интерактивном вводе объекта, перед его записью. Поля реквизитов, для
которых должно проверяться заполнение, автоматически выделяются в
форме красным подчеркиванием. Если перед записью объекта эти поля

63
окажутся не заполнены, запись не будет выполнена, а в форме будут выданы
сообщения об ошибках, привязанные к незаполненным реквизитам.
Механизм проверки заполнения ориентирован исключительно на
интерактивную работу, при записи объектов средствами встроенного языка
он не вызывается. Но при необходимости имитировать интерактивную
запись объекта разработчик может вызвать этот механизм из встроенного
языка.
Суть проверки заполнения заключается в том, что у реквизитов
объектов конфигурации, у табличных частей, у реквизитов табличных частей
и у реквизитов форм есть свойство Проверка заполнения. Стандартное
значение этого свойства – Не проверять. Оно означает, что реквизит не
участвует в проверке заполнения.
Однако если это свойство установить в значение Выдавать ошибку, то
перед записью платформа будет проверять, что значение реквизита
отличается от значения его типа по умолчанию. А для табличных частей
будет проверять, что в табличной части есть хотя бы одна строка.
Во встроенном языке разработчик может описать собственные
алгоритмы проверки заполнения реквизитов данными. Для этого
предназначены два события. Событие формы Обработка проверки
заполнения на сервере и событие прикладного объекта, редактируемого в
форме, – Обработка проверки заполнения.

64
Лекция 8. Работа с графическими элементами форм

В системе 1С:Предприятие на формы можно выводить графические


объекты. К ним относятся:
 Географичесике схемы;
 Диаграммы;
 Диаграммы Ганта;
 Графические схемы;
 Табличные документы.
Географические схемы
Географические схемы в основном используются для представления
итоговых данных в разрезе их географического положения. Они позволяют
создавать отчеты, иллюстрирующие, например, объемы продаж тех или иных
товаров в различных регионах страны.
Географическая схема представляет собой совокупность
географических объектов, описывающую заданный регион земной
поверхности (рис. 8.1).
По сути это документ, в котором хранится топологическая информация
о различных географических объектах.

Рис. 8.1. Пример географической схемы

65
Как правило, географические схемы состоят из нескольких слоев,
содержащих различные топографические объекты: регионы, области, реки,
города, дороги и т. д. Каждый слой содержит объекты, сгруппированные по
одному типу и, возможно, еще по некоторому признаку.
Слой географической схемы предназначен для логической группировки
топологических объектов. Слой хранит объекты, которые в него входят, и
данные этих объектов, а также позволяет манипулировать этими данными.
Объект слоя – элементарный объект, описывающий топологические
данные конкретного географического объекта.
Объекты делятся на следующие классы:
 Точечный объект – предназначен для отображения на схеме объектов,
которые могут быть отображены точкой. Такими объектами могут быть
города, деревья и т. п. Каждый точечный объект идентифицируется
географическими координатами – широтой и долготой, которые
доступны через свойство Координаты. Кроме того, можно задать цвет
отображения объекта, тип отображения (символом текста, маркером,
картинкой), собственно символ, его шрифт, маркер отображения и
картинку. Для картинки также можно задать положение опорной точки
отрисовки;
 Многоточечный объект – предназначен для отображения на схеме групп
объектов, которые могут быть отображены совокупностью точек. Такими
объектами могут выступать деревья и т. п. Многоточечный объект
полностью соответствует точечному, за исключением того, что вместо
координат объект имеет коллекцию с такими координатами;
 Полилинейный объект – предназначен для отображения на
географической схеме объектов, которые могут быть представлены
линиями. Такими объектами, например, могут быть дороги или реки.
Каждый полилинейный объект содержит коллекцию Сегменты, через
которую можно получить доступ к сегментам линии. Каждый сегмент
представляет собой коллекцию географических координат.
66
Полилинейный объект рисуется заданным стилем линии и указанным
цветом;
 Полигональный объект – предназначен для отображения на карте
объектов-площадей: полей, районов, областей и т. д. Полигональный
объект состоит из контуров, совокупности точек, образующих замкнутую
линию. Полигональный объект закрашивается указанным цветом и
обводится указанным цветом границы.
Слои содержат серии данных – произвольные данные,
сгруппированные по некоторому признаку. Примером такой серии могут
быть продажи по регионам за год.
Значение серии данных – конкретное значение серии данных,
ассоциированное с конкретным объектом. Например, существует серия
данных «Продажи по регионам за год». Тогда значение продаж по
отдельному городу будет являться значением серии данных.
Легенда географической схемы предназначена для настройки шкалы
значений диаграмм, отображаемых на географической схеме.
Макет географической схемы может быть сохранен в файл *.geo или
получен из этого файла.
Для того чтобы использовать географические схемы в своем
прикладном решении, необходимо подготовить топологические данные, на
основе которых будут отображаться диаграммы. Можно пойти двумя путями:
использовать схему, поставляемую с «1С:Предприятием», или создать свою
собственную схему.
Диаграммы
Диаграмма предназначена для размещения в формах и табличных
документах диаграмм и графиков различного вида. Логически диаграмма
является совокупностью точек, серий и значений серий в точке.
Платформа «1С:Предприятие» поддерживает работу с различными
видами диаграмм, в том числе:
 график (обычный, по шагам, с областями и т. д.);
67
 гистограмма (обычная, с накоплением, объемная и т. д.);
 круговая (обычная и объемная);
 биржевая (обычная и «свеча»);
 изометрическая (обычная, непрерывная и т. д.);
 поверхностная (каркасная, выпуклая, вогнутая поверхность, сотовая и
др.);
 радарная (с областями, с накоплением, нормированная и др.);
 измерительная диаграмма.
Тип диаграммы определяется свойством ТипДиаграммы. Это свойство
позволяет представить данные в наиболее удобном для восприятия
графическом виде.
Любая диаграмма может быть вставлена в структуру отчета как
отдельный элемент и заполнена с помощью системы компоновки данных.
Для отображения диаграммы в форме необходимо создать реквизит
типа Диаграмма и связать его с полем формы вида Поле диаграммы. Затем
нужно заполнить данными реквизит, содержащий диаграмму, и определить
тип диаграммы (свойство ТипДиаграммы).
Следует различать два режима работы диаграммы – связь с источником
данных посредством свойства ИсточникДанных и наполнение диаграммы
данными при помощи метода УстановитьЗначение(). Данные режимы не
могут комбинироваться.
Диаграмма Ганта
Диаграмма Ганта представляет собой диаграмму интервалов на шкале
времени и отражает использование объектами (точками) ресурсов (серий),
рис. 8.2.
Диаграмма Ганта широко используется для визуализации хода
выполнения задач, планирования ресурсов, графика рабочего времени и
других данных, которые представляются не конкретными числовыми
значениями, а набором временных интервалов.

68
Для работы с диаграммой Ганта предназначен объект встроенного
языка ДиаграммаГанта.

Рис. 8.2. Пример диаграммы Ганта


Значение диаграммы Ганта представляет собой специальный объект,
который автоматически формируется системой на основании того, какие
точки и какие серии определены для данной диаграммы. Этот объект
является совокупностью (коллекцией) интервалов, то есть может содержать
не один, а несколько интервалов, которые соответствуют паре серия-точка
(создаваемый по умолчанию объект ЗначениеДиаграммыГанта не содержит
ни одного интервала). Разработчик может получить значение диаграммы,
указав интересующую его точку и серию, и затем добавить в коллекцию
необходимое количество интервалов.
Все интервалы всех значений диаграммы располагаются с привязкой к
единой оси времени, что дает возможность видеть их взаимное
расположение. Для диаграммы Ганта поддерживается возможность
установки связей между различными интервалами. Таким образом,
окончание одного интервала может быть связано с началом следующего
интервала диаграммы.
Графические схемы
Графическая схема (рис. 8.3) позволяет создавать различные
организационные, структурные и другие схемы для графического
69
оформления прикладного решения. Она предназначена для оформления форм
и отчетов, в которых требуется представить те или иные организационные
процессы, блок-схемы и пр. Кроме этого, графическая схема может быть
использована как отдельный документ, являющийся частью оформления
прикладного решения. С помощью графических схем удобно создавать
иллюстрации, поясняющие состав тех или иных алгоритмов, структуру тех
или иных процессов, организационные схемы и пр.
Графическая схема широко применяется при создании карт маршрута
бизнес-процессов. Графические схемы можно использовать для рисования
любых произвольных схем и алгоритмов, иллюстрирующих рабочие
процессы в организации.

Рис. 8.3. Графическая схема

Табличный документ

70
Табличный документ «1С:Предприятия» является одним из основных
средств для создания различных выходных форм и представления итоговых
данных. Он может быть получен из файла табличного документа, сохранен в
файлы различных форматов. Табличный документ может быть размещен в
форме или в макете, работа с ним возможна средствами встроенного языка.
Он может содержать вложенные таблицы, картинки, различные
элементы управления, может использоваться для ввода данных. Табличный
документ поддерживает механизм расшифровок для получения связанных
отчетов, открытия форм и иных действий.
Можно сказать, что табличный документ состоит из строк и колонок,
на пересечении которых располагаются ячейки. Общее оформление
табличного документа определяется несколькими свойствами.
Прежде всего, это свойства ОтображатьЗаголовки и ОтображатьСетку.
По умолчанию при создании нового табличного документа эти свойства
имеют значение Истина, поэтому табличный документ имеет вид,
представленный на рис. 8.4.

Рис. 8.4. Отображение заголовков и сетки


При необходимости разработчик может управлять отображением как
заголовков, так и сетки документа.
Табличный документ позволяет фиксировать первые строки и колонки.
Такую возможность удобно использовать для просмотра больших таблиц. В
этом случае можно зафиксировать, например, шапку таблицы, и при
вертикальной прокрутке документа она всегда будет присутствовать в
верхней части видимой области документа.

71
Для того чтобы задать количество фиксируемых строк или колонок,
используются свойства табличного документа ФиксацияСверху и
ФиксацияСлева. Они принимают значения типа Число, которые указывают
количество фиксируемых строк или колонок.
Для оформления табличного документа может использоваться
фоновый рисунок. Этот рисунок будет располагаться «под» текстом
документа и может быть как зафиксирован (то есть при любой прокрутке
документафоновый рисунок перемещаться не будет), так и не зафиксирован.
При этом фоновый рисунок при прокрутке документа будет
перемещаться вместе с ячейками табличного документа.
Для задания фонового рисунка используется свойство табличного
документа ФоноваяКартинка, имеющее тип Картинка. Для управления
фиксацией фоновой картинки используется свойство ФиксированныйФон,
имеющее тип Булево. По умолчанию фон не зафиксирован (свойство имеет
значение Ложь).
Ячейки и области табличного документа могут быть защищены от
редактирования, так же как и весь документ. Для того чтобы защитить весь
документ, следует использовать свойство ТолькоПросмотр. Если его
установить в значение Истина, то можно будет редактировать только те
ячейки, для которых свойство Защита не установлено. По умолчанию для
всех ячеек табличного документа свойство Защита имеет значение Истина, а
для самого документа – Ложь.
Также независимо от свойств отдельных ячеек можно запретить
редактирование и копирование табличного документа. Для этого следует
свойство Защита документа установить в значение Истина.
В том случае, если редактирование табличного документа разрешено,
можно задать направление перехода после редактирования значения
очередной ячейки. Для этого используется свойство НаправлениеПерехода,
которое принимает значения системного перечисления
ТипНаправленияПереходаТабличногоДокумента. По умолчанию значение
72
этого свойства равно ПоКолонкам, но разработчик может задать также
значения ПоСтрокам и БезПерехода. В последнем случае, после того как
нажата клавиша Enter, положение текущей области табличного документа
изменяться не будет.
Табличный документ может быть прочитан из файла табличного
документа. Для этого используется метод Прочитать(). В качестве параметра
передается строка, содержащая путь к файлу табличного документа.
Чтобы отобразить табличный документ в окне редактора табличных
документов, используется метод Показать(). В качестве параметров этого
метода передается заголовок окна, который будет установлен при открытии
документа, путь к сохраняемому файлу и признак активизации открываемого
окна.
Для обеспечения привычного поведения открытого файла при вызове
метода Показать() обязательно должен быть указан путь для сохранения
измененного файла. Тогда если пользователь модифицировал документ, при
закрытии окна редактора будет задан вопрос о необходимости сохранения
измененного файла.
Если при вызове метода Показать() путь не указан, то окно редактора,
содержащего модифицированный документ, будет закрываться без вопросов
и изменения, выполненные пользователем, будут потеряны.
Любая область табличного документа может иметь уникальное имя.
Имя области может быть задано при визуальном редактировании документа
в редакторе табличных документов или программно. По умолчанию любая
область имеет имя, совпадающее с ее адресом. Однако разработчик имеет
возможность присвоить области собственное, уникальное в пределах данного
табличного документа имя. Для этого используется свойство области ячеек
табличного документа Имя.
Для управления отображением именованных областей служат две
команды редактора табличных документов. Команда Таблица -> Имена ->
Отображение именованных строк/колонок позволяет отобразить имена
73
областей, которые являются совокупностью соседних строк или соседних
колонок. Команда Таблица -> Имена -> Отображать именованные ячейки
позволяет отобразить имена прямоугольных областетабличного документа.
Области, для которых заданы имена, отличные от имен по умолчанию,
входят в коллекцию именованных областей табличного документа. Доступ к
этой коллекции возможен через свойство табличного документа Области.
Обход коллекции именованных областей возможен с помощью итератора
Для Каждого … Из … Цикл.

74
Список литературы

1. Ажеронок В.А., Габец А.П., Гончаров Д.И. Профессиональная


разработка в системе 1С:Предприятие 8. Том 1,2 (2-е издание, 2012).
2. М.Г. Радченко, Е.Ю. Хрусталева. 1С:Предприятие 8.3. Практическое
пособие разработчика. Примеры и типовые приемы - 1С-
Паблишинг, М: - 2013г., 964с.

75