Соответственно, встроенный язык «1С: Предприятия» является скриптовым языком, предназначенным в первую очередь для программирования бизнес-логики в контексте объектной модели «1С: Предприятия». На нем программируются обработчики различных событий, изменяющих состояние объектов системы, например, обработчики команд пользователя, обработчики проведения документов и т.д.
Очень существенным моментом является то, что особенности построения языка напрямую соответствуют модели проектирования структур данных, реализованной в «1С: Предприятии».
То, что вся разработка конфигурации ведется на основе использования стандартных объектов системы, позволяет разработчику прикладных решений применять соответствующие им объекты встроенного языка, имеющие большой набор функций и высокую гибкость.
В числе наиболее значимых технологических особенностей встроенного языка:
· предварительная компиляция. Перед исполнением модули преобразуются во внутренний код;
· кэширование скомпилированных модулей в памяти;
· мягкая типизация – тип переменных может изменяться в процессе работы;
· отсутствие программного описания объектов конфигурации – прикладное решение может манипулировать либо встроенными в платформу «1С: Предприятия» объектами, либо объектами, описанными разработчиком в процессе визуального конструирования системы в виде объектов метаданных.
Так как система сочетает в себе визуальные и языковые средства конфигурирования, использование встроенного языка в системе имеет событийно-зависимую ориентацию, то есть языковые модули используются в конкретных местах для отработки отдельных алгоритмов, настраиваемых в процессе конфигурации. Так, например, для документа можно описать алгоритм автоматического заполнения реквизитов при вводе нового документа. Данная процедура будет вызвана системой в нужный момент.
Запросы в системе «1С: Предприятие 8» предназначены для выборки информации из базы данных. По сути, запрос – это обращение к системе с просьбой выбрать определенную информацию из базы данных, а часто не только выбрать, но и произвести некоторую обработку: сгруппировать, отсортировать, вычислить. Например, с помощью запроса можно легко выбрать всех сотрудников, занимающих определенную должность, или можно узнать объем продаж каждого товара в течение года с детализацией до месяца.
Язык запросов 1С: Предприятия основан на SQL, но при этом содержит значительное количество расширений, ориентированных на отражение специфики финансово-экономических задач и на максимальное сокращение усилий по разработке бизнес-приложений.
В числе наиболее существенных возможностей:
· Разыменование ссылочных полей, т.е. обращение к полям через точку (».»). Если поля какой-либо таблицы имеют ссылочный тип и хранят ссылки на объекты другой таблицы, разработчик может в запросе ссылаться на них через точку, при этом, что самое важное, количество уровней вложенности таких ссылок система не ограничивает.
· Обращение к вложенным таблицам (табличным частям документов и элементов справочников). Система поддерживает обращения к вложенным табличным частям как к отдельным таблицам и как к целым полям одной таблицы. Например, при обращении к расходной накладной (документу, содержащему табличную часть с составом отгружаемых товаров) мы можем считать табличную часть как отдельную таблицу (при этом получить записи из разных объектов), а также можем считать заголовочную запись расходной накладной, в которой значением поля будут все записи вложенной таблицы, подчиненные этому объекту.
· Автоматическое упорядочивание. Для выбора наиболее правильного («естественного») порядка вывода информации на экран или в отчет разработчику в большинстве случаев достаточно задать режим автоматического упорядочивания.
· Поддержка виртуальных таблиц. Виртуальные таблицы, предоставляемые системой, позволяют получить практически готовые данные для большинства бизнес-задач без необходимости составления сложных запросов. Например, такая виртуальная таблица может предоставить данные по остаткам товаров в разрезе периодов на какой-то момент времени. При этом виртуальные таблицы максимально используют хранимую информацию, например, ранее рассчитанные итогах и т.д.
· Естественно, в языке запросов «1С: Предприятия» поддерживаются стандартные для SQL операции, такие, как объединение (Union), соединение (Join) и т.д.
Рис. 4. Организация хранения данных
Встроенный текстовый редактор используется для создания программных модулей на встроенном языке и для редактирования документов в текстовом виде.
Одной из особенностей редактора является возможность контекстного выделения цветом синтаксических конструкций встроенного языка, а также группировка различных синтаксических конструкций.
При наборе текстов на встроенном языке удобно пользоваться контекстной подсказкой и шаблонами.
Благодаря тому, что встроенный язык системы имеет мощные средства манипулирования текстами, текстовый формат может быть успешно использован для обмена с другими системами самой различной информацией.
Встроенный редактор форм. Работа с настраиваемыми структурами данных и работа в интерфейсе операционной системы Microsoft Windows вызывает необходимость произвольной настройки форм для ввода и редактирования информации. Для этого в системе «1С: Предприятие» существует встроенный редактор форм.
Редактор позволяет оформить большинство окон, которые используются в системе для ввода и просмотра предметной информации (формы документов, справочников, настройки отчетов).
Встроенный редактор табличных документов. Для всех выходных документов (первичных документов и отчетов) в системе предусмотрен единый формат – формат табличных документов.
Редактор табличных документов – это мощное средство, сочетающее в себе оформительские возможности табличной структуры и векторной графики. Он может быть использован как для создания небольших документов с очень сложной структурой линий (типа платежного поручения), так и для объемных ведомостей, журналов и других подобных документов.
Редактор табличных документов предоставляет пользователям богатый набор оформительских возможностей (шрифты, цвета, линии, узоры). Имеется возможность вывода информации в графическом виде (диаграммы).
Одной из главных особенностей редактора является ориентация на формирование отчетов при помощи встроенного языка системы «1С: Предприятие». Гибкое построение отчетов с его помощью становится возможным благодаря наличию механизма манипулирования именованными областями документа. Сочетание возможностей редактора с таким объектом, как система компоновки данных, позволяет создавать универсальные отчеты, которые дают возможность обрабатывать и представлять информацию в различных разрезах и различной детализации без дополнительного вмешательства разработчика.
С другой стороны, табличный документ может выступать в качестве элемента управления формы и таким образом использоваться для ввода данных.
Конструкторы – вспомогательные инструменты, облегчающие разработку стандартных элементов системы «1С: Предприятие». В системе имеются, например, конструкторы форм констант, справочников, документов, журналов документов, отчетов и других объектов, конструкторы печатных форм, конструкторы движений регистров и другие.
С помощью конструкторов производится не только формирование визуальных составляющих этих объектов, но и в некоторых случаях (ввод на основании, печать, выходная форма и др.) формируются программные модули.
Система настройки пользовательского интерфейса. Для того чтобы интерфейс конкретной конфигурации системы полностью отражал настроенные структуры данных и алгоритмы, в системе «1С: Предприятие», помимо редактора диалоговых форм и табличных документов, предусмотрена возможность настройки командного интерфейса системы.
При этом командный интерфейс автоматически учитывает права доступа пользователя, который вошел в систему. При этом пользователю будут показаны только те объекты системы, доступ к которым пользователю разрешен.
Подсистемы. Конфигуратор позволяет на этапе проектирования в рамках одной конфигурации выделить различные подсистемы (например, торговый учет и исследовательский комплекс). Для каждой подсистемы можно указать объекты конфигурации, которые в нее входят. Допускается указание принадлежности одного объекта к нескольким подсистемам. Фактически подсистемы определяют основные разделы конфигурации, с которыми будет работать пользователь. В связи с тем, что структура подсистем определяет интерфейс конфигурации, следует уделять вопросам проектирования подсистем (и их иерархии) особое внимание.
Система настройки прав доступа (роли). Данная система позволяет описывать наборы прав, соответствующие должностям пользователей или виду деятельности.
Структура прав определяется конкретной конфигурацией системы. Например, могут быть введены такие наборы прав, как Главный бухгалтер, Кладовщик, Менеджер, Начальник отдела.
Кроме того, для объектов, хранящихся в базе данных (справочник, документы, регистры и т.д.), могут быть определены права доступа к отдельным полям и записям.
Сам список пользователей создается уже для конкретной организации. Каждому пользователю назначается одна или несколько ролей, основной интерфейс и язык, используемые при работе с программой.
Отладчик. Для удобства разработки конфигурации в системе предусмотрен отладчик. Отладчик позволяет прослеживать исполнение программных модулей конфигурации, замерять сравнительное время исполнения, просматривать содержимое переменных.
Хранилище конфигураций. Для групповой разработки конфигурации разработчики используют механизм хранилища конфигурации. Он позволяет распределить права доступа по модификации объекта конфигурации и производить необходимые изменения одновременно, а не последовательно.