- •Ведение
- •1 Основные теоретические сведения
- •1.1 Архитектура среды 1с:Предприятие
- •1.2 Разработка конфигурации
- •1.3 Инструменты разработки
- •1.3.1 Дерево конфигурации
- •1.3.2 Палитра свойств
- •1.3.2.1 Основные свойства
- •1.3.2.2 Группа свойств «Представление»
- •1.3.2.3 Группа свойств «Разработка»
- •1.3.3 Объектные и необъектные данные
- •1.3.4 Конструкторы
- •1.3.4 Редакторы
- •1.3.4.1 Редактор экранных форм
- •1.3.4.2 Редактор интерфейсов
- •1.3.4.3 Табличный редактор
- •1.3.4.4 Редактор программных модулей
- •1.3.5 Встроенный язык
- •1.3.6 Синтакс – помощник
- •1.3.7 Отладчик
- •1.3.8 Замер производительности
- •1.3.9 Механизм запросов
- •1.3.10 Работа с конфигурацией
- •1.3.10.1 Сохранение конфигурации
- •1.3.10.2 Обновление конфигурации
- •1.3.10.3 Сохранение конфигурации в файл
- •1.3.10.4 Создание резервной копии иб
- •1.3.10.5 Сравнение и объединение конфигураций
- •1.3.11 Работа в пользовательском режиме
- •1.3.12 Основная конфигурация и конфигурация базы данных
- •1.3.13 Средства групповой разработки
- •1.4 Объекты системы
- •1.4.1 Классификация объектов конфигурации
- •1.4.1.1 Прикладные объекты
- •1.4.1.2 Подчиненные объекты
- •1.4.2 Типы данных
- •1.4.3 Встроенный язык программирования
- •1.4.3.1 Виды модулей
- •1.4.3.2 Контекст выполнения модуля
- •1.4.3.3 Формат описания элементов языка
- •1.4.3.4 Формат программного модуля
- •1.4.3.5 Формат операторов
- •1.4.3.6 Имена переменных, процедур и функций
- •1.4.3.7 Зарезервированные слова
- •1.4.3.8 Структура программного модуля
- •1.4.3.9 Специальные символы, используемые в исходном тексте
- •1.4.3.10 Примитивные типы данных
- •1.4.3.10.2 Булево (Boolean)
- •1.4.3.10.3 Дата (Date)
- •1.4.3.10.4 Неопределено (Undefined)
- •1.4.3.10.5 Строка (String)
- •1.4.3.10.7 Число (Number)
- •1.4.3.11 Оператор присваивания
- •1.4.3.12 Выражения языка
- •1.4.3.12.1 Арифметические операции
- •1.4.3.12.2 Логические операции
- •1.4.3.12.3 Операции сравнения:
- •1.4.3.12.4 Булевы операции:
- •1.4.3.13 Оператор объявления переменной
- •1.4.3.14 Оператор условного выполнения
- •1.4.3.15 Операторы цикла
- •1.4.3.16 Оператор управления циклом
- •1.4.3.17 Оператор прерывания цикла
- •1.4.3.17 Оператор перехода
- •1.4.3.18 Оператор обработки исключительных ситуаций
- •1.4.3.19 Процедуры и функции
- •1.4.3.19.1 Описание процедур и функций
- •1.4.3.19.1.1 Процедура
- •1.4.3.19.1.2 Функция
- •1.4.3.19.1.3 Предварительное описание процедур и функций
- •1.4.3.19.2 Вызов процедур и функций. Передача параметров
- •1.4.4 Основные приемы работы с объектами в программе
- •1.4.4.1 Обращение к свойствам объектов
- •1.4.4.2 Дополнение контекста объектов и форм
- •1.4.4.3 Работа с прикладными объектами средствами встроенного языка
- •1.4.4.4 Специфические объекты
- •1.4.4.5 Взаимосвязь объектов
- •1.4.4.6 Иерархия объектов
- •1.4.5 Работа с коллекциями значений
- •1.4.5.1 Использование номеров и индексов
- •1.4.5.2 Массив
- •1.4.5.3 Структура
- •1.4.5.4 Соответствие
- •1.4.5.5 Список значений, таблица значений, дерево значений
- •1.4.5.5.1 Список значений
- •1.4.5.5.2 Таблица значений
- •1.4.5.5.3 Дерево значений
- •1.5 Варианты работы системы
- •1.5.1 Файл - серверный вариант
- •1.5.2 Клиент - серверный вариант
- •1.5.2.1 Сервер 1с:Предприятия
- •1.5.2.2 Безопасная зона
- •1.6 Постановка задачи
- •2.1.1.2 Подсистемы
- •2.1.1.3 Константы
- •2.1.1.4. Перечисления
- •2.1.2 Задание на лабораторную работу
- •2.1.3 Контрольные вопросы
- •2.2 Лабораторная работа № 2. Справочники.
- •2.2.1 Теоретические сведения
- •2.2.1.1 Создание справочника с табличной частью
- •2.2.1.2 Создание иерархического справочника
- •2.2.1.3 Создание справочника с предопределенными элементами
- •2.2.1.4 Создание подчиненного справочника
- •2.2.1.5 Создание формы для работы со связанными справочниками
- •2.2.2 Задание на лабораторную работу
- •2.2.3 Контрольные вопросы
- •2.3 Лабораторная работа № 3. Документы
- •2.3.1 Теоретические сведения
- •2.3.1.1 Проведение документа
- •2.3.1.2 Создание документа
- •2.3.1.3 Создание формы документа
- •2.3.1.4 Создание процедуры обработки события в модуле формы
- •2.3.1.5 Создание процедуры обработки события в общем модуле
- •2.3.1.6 Усовершенствование формы документа
- •2.3.1.7 Ввод документов на основании
- •2.3.2 Задание на лабораторную работу
- •2.3.3 Контрольные вопросы.
- •2.4 Лабораторная работа № 4. Регистры сведений
- •2.4.1 Теоретические сведения
- •2.4.1.1 Регистр сведений «КурсыВалют»
- •2.4.1.2 Отбор в диалоге
- •2.4.1.3 Чтение значения курса валют
- •2.4.1.4 Регистр сведений «Цены поставщиков»
- •2.4.1.5 Регистр сведений «Цены номенклатуры»
- •2.4.1.6 Создание функции РозничнаяЦена()
- •2.4.1.7 Автоматическое заполнение цены документа «ОказаниеУслуги»
- •2.4.2 Задание на лабораторную работу
- •2.4.3 Контрольные вопросы
- •2.5 Лабораторная работа № 5. Регистры накопления
- •2.5.1 Теоретические сведения
- •2.5.1.1 Проведение документа по нескольким регистрам
- •2.5.1.2 Регистр «Остатки номенклатуры»
- •2.5.1.2 Проведение документа «РасходнаяНакладная»
- •2.5.1.3 Оборотный регистр накопления «Продажи»
- •2.5.2 Задание на лабораторную работу
- •2.5.3 Контрольные вопросы
- •2.6 Лабораторная работа № 6. Журналы документов. Критерии отбора.
- •2.6.1 Теоретические сведения
- •2.6.1.1 Создание журнала документов
- •2.6.1.2 Создание критерия отбора
- •2.6.2 Задание на лабораторную работу
- •2.7.1.2 Макеты
- •2.7.1.2.1 Фиксация таблицы (шапки и боковика).
- •2.7.1.2.2 Защита от редактирования.
- •2.7.1.2.3 Перемещение по таблице.
- •2.7.1.2.4 Управление видом таблицы.
- •2.7.1.2.5 Масштабирование изображения.
- •2.7.1.3 Построение отчета
- •2.7.1.4 Печатная форма элемента справочника
- •2.7.1.5 Печатная форма списка справочника
- •2.7.1.6 Расшифровка ячейки печатной формы
- •2.7.1.7 Печатная форма документа
- •2.7.1.8 Печатная форма журнала документов
- •2.7.2 Задание на лабораторную работу
- •2.7.3 Контрольные вопросы
- •2.8 Лабораторная работа № 8. Отчеты и обработки.
- •2.8.1 Теоретические сведения
- •2.8.1.1 Создание отчета «Материалы»
- •2.8.1.2 Печать прайс-листа
- •2.8.1.3 Отчет «ЦеныПоставщиков» на заданную дату
- •2.8.2 Задание на лабораторную работу
- •2.8.3 Контрольные вопросы
- •Список литературы
1.5.2.1 Сервер 1с:Предприятия
Основная задача сервера 1С:Предприятия - обеспечение интерфейса клиентского приложения с базой данных. Сервер 1С:Предприятия является приложением СОМ+, которое преобразует запросы, поступающие от клиентского приложения, в запросы на языке Transact SQL, передает их SQL Server, получает от него результат выполнения запроса, преобразует его и передает обратно клиентскому приложению.
Кроме этого, на сервере 1С:Предприятия сосредоточено выполнение различных общих функций платформы:
Чтение и сохранение конфигураций и настроек пользователя;
Операции над базой данных, включая ограничения доступа к данным;
Хранение значений параметров сеанса;
Ведение журнала регистрации;
Поддержка оперативной отметки времени;
Другие функции (управление объектными блокировками, идентификаторы и т.п.) .
Важным аспектом новой архитектуры клиент-серверной системы является возможность исполнения кода на стороне сервера 1С:Предприятия, а не только на клиенте. Такой подход позволяет разгрузить клиентскую часть при исполнении кода.
По умолчанию встроенный язык исполняется всегда на клиенте. При работе в клиент - серверном варианте разработчик может организовать выполнение различных процедур и функций общих модулей и модулей объектов также и на сервере приложения. Для этого используются свойства модулей и операторы препроцессора. Передача выполнения встроенного языка на сервер 1С:Предприятия позволяет, например, сложные алгоритмы расчета выполнять не на клиентской машине, а на более мощном сервере, что увеличивает общую производительность прикладного решения.
1.5.2.2 Безопасная зона
Одной из важных функций сервера 1С:Предприятия, помимо собственно обеспечения интерфейса между клиентским приложением и сервером баз данных, является создание так называемой безопасной зоны – логической области системы, в которой данные находятся в безопасности.
В общем случае, различные пользователи системы тем или иным образом подключаются к базе данных и используют те или иные данные. Очевидно, что разные пользователи обладают разными правами не разные виды данных. В этой ситуации сервер 1С:Предприятия является своего рода «барьером», дальше которого информация баз данных может распространяться только с учетом всех разрешений, предназначенных тому или иному пользователю. Внутри безопасной зоны возможны любые действия с данными без учета ограничений, накладываемых правами пользователей.
Создание безопасной зоны становится возможным благодаря тому, что сервер 1С:Предприятия выполняет контроль ограничений доступа к данным при выполнении операций с базой данных. Это касается как обычных прав, относящихся к отдельным объектам конфигурации, так и ограничений доступа к данным, задаваемых на уровне записей и полей баз данных. При модификации данных, перед тем, как обратиться к серверу баз данных, сервер 1С:Предприятия анализирует запрашиваемое действие в соответствии с имеющимися правами и только после этого выполняет (или не выполняет) обращение к серверу баз данных. Таким образом, система гарантирует, что данные, доступ к которым не санкционирован клиентскому приложению, могут существовать только в безопасной зоне.
Рис. 5 Безопасная зона
Однако следует понимать, что вопрос безопасности данных не может на 100% быть решен самой системой. Существует два момента, в которых нельзя исключить влияние «человеческого фактора». Если этим моментам не уделять должного внимания, то существование безопасной зоны может быть нарушено. Первый момент связан с существованием привилегированных модулей, а второй – собственно с администрированием прикладного решения.
Привилегированные модули представляют собой общие модули, которые выполняются в безопасной зоне без контроля прав. Другими словами, привилегированные модули компилируются только на стороне сервера и, соответственно, могут быть выполнены только на сервере 1С:Предприятия. При выполнении кода, содержащегося в привилегированных модулях, контроль прав не осуществляется. Наличие привилегированных модулей позволяет решать целый ряд задач, которые невозможно решить с помощью прав на объекты конфигурации или с помощью ограничений доступа к данным на уровне записей или полей. Например, задачу, требующую предоставить возможность пользователю выполнить какое – либо одно административное действие, в то время, как все остальные административные действия должны быть для него недоступны. В силу того, что при выполнении привилегированного модуля контроль прав не осуществляется, такой модуль может стать «лазейкой», через которую клиент сможет получить данные, на которые у него нет прав.
Второй момент, который может ослабить безопасную зону, используемую в клиент – серверном варианте работы, - это неграмотное администрирование операционных систем, на которых работает прикладное решение. Информационная база 1С:Предприятия представляет собой совокупность данных, доступ к которым должен осуществляться исключительно средствами 1С:Предприятия. Необходимо обеспечить такой порядок работы прикладного решения, при котором невозможно использовать данные информационной базы напрямую механизмами, отличными от 1С:Предприятия.