Механизм и конструктор языка запросов в программном обеспечении для учета ресурсов предприятия. Учебное пособие
.pdfМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ
ФГБОУ ВО «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ»
Т.В. ГЛАДКИХ, Л.А. КОРОБОВА, И.С. ТОЛСТОВА
МЕХАНИЗМ И КОНСТРУКТОР ЯЗЫКА ЗАПРОСОВ
В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ ДЛЯ УЧЕТА РЕСУРСОВ ПРЕДПРИЯТИЯ
Утверждено редакционно-издательским советом университета
в качестве учебного пособия
ВОРОНЕЖ
2024
1
УДК 004.43 ББК з 973.26-018.22я7
Г12
Научный редактор профессор А.В. КАЛАЧ
Реце нз енты :
зав. кафедрой информационных технологий управления Воронежского государственного университета
проф. М. Г. МАТВЕЕВ;
канд. техн. наук Н. В. АКАМСИНА (Воронежский государственный технический университет)
Печатается по решению редакционно-издательского совета
Воронежского государственного университета инженерных технологий
Гладких, Т.В.
Г12 Механизм и конструктор языка запросов в программном обеспечении для учета ресурсов предприятия: учеб. пособие / Т. В. Гладких, Л. А. Коробова, И.С. Толстова; Воронежский государственный университет инженерных технологий - Воронеж : ВГУИТ, 2024. - 62 с. -Текст: непосредственный.
ISBN 978-5-00032-681-1
Учебное пособие разработано в соответствии с требованиями ФГОС ВО подготовки обучающихся по направлению090303 - «Прикладная информатика». В данном пособии рассмотрены основные механизмы языка запросов. Оно предназначено для закрепления теоретических знаний дисциплин цикла Б1 «Дисциплины».
Г |
2404010000-04 Без объявл. |
|
УДК |
004.43 |
|
ОК2(03)-2024 |
|
|
ББК з 973.26-018.22я7 |
||
|
|
||||
ISBN 978-5-00032-681-1 |
Ó Гладких |
Т.В., |
Коробова Л. А., |
||
|
|
|
Толстова |
И.С., 2024 |
|
Ó ФГБОУ ВО «Воронеж. гос. ун-т инж.
технол.», 2024
Оригинал-макет данного издания является собственностью Воронежского государственного университета инженерных технологий, его репродуцирование (воспроизведение) любым способом без согласия университета запрещается.
2
1.Таблицы
Вплатформе 1С таблицы существуют в двух основных ипостасях: это таблицы значений, которые являются объектами универсальной коллекции значений, и непосредственно табличные части документов и справочников.
1.1.Таблицы значений
Таблица значений представляет собой динамический набор значений, имеющих колонки и столбцы. Информация в таблице значений не хранится в базе данных и доступна только при работе контекста, в котором она была создана.
Пользователи могут получать доступ к данным, хранящимся в таблице значений, посредством элемента формы Табличное поле. Вся информация в таблице значений разбита на колонки, причем каждая колонка таблицы должна иметь свое уникальное название. В том случае если таблица выводится на форму посредством элемента Табличное поле, то у данного элемента будут все колонки, которые имеются у таблицы значений с соответствующими именами.
Причем количество колонок в Табличном поле может быть меньше, чем непосредственно в таблице значений, то есть не все колонки из таблицы значений можно отображать в Табличном поле. Нет никаких ограничений на количество колонок. Количество колонок, как правило, всегда фиксировано и задается разработчиком на этапе создания нужного функционала, а количество строк переменно.
Строки в таблицу значений можно добавлять посредством Табличного поля интерактивно, а также используя методы объекта
Таблица значений программным способом. Количество строк может быть не ограничено. Необязательно выводить таблицу значений на форму, программист может использовать ее и просто внутри модуля для осуществления различных алгоритмов. У Таблиц значений есть ряд полезных методов, которые позволяют сортировать таблицу по определенным колонкам, сворачивать,
3
получать итог по конкретной колонке, осуществлять выборку части строк по определенным параметрам и многое другое.
Создать Таблицу значений можно с помощью оператора Новый, и она существует в рамках того контекста, в котором был написан конструктор. Выглядит это так:
Таблица1 = Новый ТаблицаЗначений;
Колонки таблицы значений. Таблицу значений мы создали, но сама по себе она значений нам абсолютно не нужна. Чтобы начать с ней работать, необходимо ее заполнить колонками. Для
этого необходимо |
использовать |
одно из |
основополагающих |
||||
свойств Таблиц значений - это свойство Колонки. |
|
|
|
||||
Данное свойство представляет собой коллекцию значений, |
|
||||||
в которой хранятся все колонки конкретной таблицы. Каждая ко- |
|
||||||
лонка Таблицы значений является отдельным объектом с типом |
|
||||||
Колонка таблицы значений, этот объект привязан к Таблице зна- |
|
||||||
чений и не может существовать без нее. У колонок нет методов, |
|
||||||
но зато существуют четыре свойства это: имя колонки, заголовок |
|
||||||
(данный заголовок выводится в шапке табличного поля), тип зна- |
|
||||||
чения (какие данные хранятся в колонке) и ширина (данное свой- |
|
||||||
ство содержит ширину колонки в символах). |
|
|
|
||||
Поскольку свойство Колонки таблицы значений является |
|
||||||
объектом Коллекция колонок таблицы значений (который привя- |
|
||||||
зан к этой Таблице значений), то у него есть соответствующие |
|
||||||
методы, с помощью которых можно создавать и удалять элемен- |
|
||||||
ты данной коллекции, которые являются колонками Таблицы |
|
||||||
значений. |
Коллекцию колонок, так же, как и любую другую кол- |
|
|||||
лекцию, |
можно |
обойти |
с |
помощью |
оператора |
цикла |
|
Для каждого…Цикл. |
|
|
|
|
|
|
|
Создавать колонки |
можно следующим способом. У |
|
|||||
объекта Коллекция колонок таблицы значений существует два |
|
||||||
метода по созданию новых колонок. Это Добавить и Вставить. |
|
||||||
Метод Добавить – добавляет новую колонку в конец коллекции, а |
|
||||||
метод Вставить – вставляет колонку в нужное место по соответ- |
|
||||||
ствующему индексу. |
|
|
|
|
|
|
|
Для |
примера |
создадим |
простую |
Таблицу |
значений, |
||
которую назовем ФИО, имеющую три колонки Фамилия, Имя и |
|
||||||
Отчество. |
Самый простой вариант создания данной таблицы бу- |
|
|||||
дет такой: |
|
|
|
|
|
|
|
4
Рис. 1
В данном примере была создана таблица с тремя колонками. Запустим ее в отладчике, чтобы посмотреть, что из себя представляет Коллекция колонок таблицы значений (рис. 2).
Рис. 2
В данном табло есть созданная Таблица значений, у которой всего три колонки, раскроем одну из них (рис. 3).
Рис. 3
У этой колонки всего четыре свойства: Заголовок, Имя, Тип Значения и Ширина. Заполнено только одно свойство - Имя. Так произошло потому, что мы использовали только один параметр в методе Добавить. Разберем синтаксис метода Добавить коллекции колонок таблицы значений:
Добавить(<Имя>, <Тип>, <Заголовок>, <Ширина>).
5
У данного метода всего четыре параметра , по аналогии с четырьмя свойствами объекта Колонка таблицы значений. Параметры Имя, Заголовок и Ширина понятны, тип параметров Имя и Заголовок - это строка, а тип параметра Ширина – число. А тип второго параметра называется «Описание типов».
1.2. Описание типов
Когда мы задаем реквизит некоторого объекта (справочник, документ, обработка или отчет), то мы задаем тип для данного реквизита (рис. 4).
Рис. 4
Причем один из реквизитов может принимать значения разных типов, если поставить флажок «Составной» (рис. 5).
Так мы задаем тип реквизита на этапе конфигурирования.
Рис. 5
6
Но создавая таблицу значений, мы не можем задать тип той или иной колонки интерактивно как для элементов конфигурации, нам необходимо его задать программно. Делается это с помощью переменных, имеющих тип Описание типов. Переменная этого типа содержит все типы, значения которых может принимать соответствующая колонка Таблицы значений. Рассмотрим синтаксис конструктора данного типа:
Новый ОписаниеТипов(<Типы>, <КвалификаторыЧисла>, <КвалификаторыСтроки>, <КвалификаторыДаты>, <КвалификаторыДвоичныхДанных>)
Переменные данного типа задаются с помощью оператора Новый. Первый параметр Типы - обязательный и должен быть представлен в виде массива, элементы которого являются значениями типа Тип, либо это строка, в которой все типы перечислены через запятую.
Квалификаторы числа, строки, даты и двоичных данных - это объекты, которые задают параметры для соответствующих типов, это может быть: длина строки, длина и точность числа, и части даты.
Рассмотрим задание описания типа, которое будет содержать в себе Тип число, дата и строка. Причем Тип будет задаваться двумя способами: с помощью массива и с помощью строки
(рис. 6).
Рис. 6
7
В данном коде получено описание типов с помощью мас-
сива. Рассмотрим вариант задания типов с помощью строки (рис. 7).
Рис. 7
И вариант, когда типом будет ссылка на элемент справочника (рис. 8).
Рис. 8
На рис. 6 в первых трех строках мы задаем квалификаторы числа, строк и даты. Это простые объекты, которые задаются с помощью оператора Новый. Квалификатор числа имеет два параметра - это длина числа и точность. Квалификатор строки имеет также два параметра: длина строки и допустимая длина, а квалификатор даты имеет только один параметр – части даты.
Потом мы создаем массив из трех элементов и заполняем его переменными, имеющими тип Тип с помощью функции Тип. И в последней строке рис. 6 и на рис. 7, 8 создаем переменные с типом Описание типов. Причем если тип должен быть объектным, то необходимо писать либо СправочникСсылка, либо ДокументСсылка.
Теперь, когда мы укажем данную переменную при создании новой колонки таблицы, эта колонка сможет содержать в себе только три типа данных. Далее сконструируем таблицу со следующими колонками: Фамилия (Тип строка с длиной50), Имя (Тип строка), Отчество, (Тип строка) и Дата рождения (Тип дата). Зададим все параметры метода Добавить.
8
Рис. 9
В данном коде мы задали квалификаторы строки и даты, для того чтобы потом их использовать в описании типов.
Следующим шагом задали описание типа для строки. Потом мы создаем таблицу значений и добавляем колонки, используя все параметры метода Добавить. В последней строчке (рис. 9) внутри параметра мы использовали ключевое слово «Новый», так допустимо писать, если нет необходимости использовать созданное значение где-нибудь еще. Например, мы можем убрать переменные КвСтр и КвДаты и напрямую создавать новые квалификаторы. Доработаем код:
Рис. 10
Метод Вставить
Данный метод имеет следующий синтаксис: Вставить(<Индекс>, <Имя>, <Тип>, <Заголовок>, <Ши-
рина>).
Метод Вставить имеет синтаксис, как и у метода Добавить, но только появился первый параметр Индекс, он указывает тот индекс, на место которого будет вставляться новая колонка.
9
Используем уже созданную нами таблицу, вставив колонку между Отчеством и Датой рождения, которая будет называться ФИО, где будет храниться фамилия с инициалами (рис. 11).
Рис. 11
Для того чтобы посмотреть, в какое место вставилась колонка, поставьте точку останова и запустите отладку (рис. 12).
Рис. 12
Метод Добавить
Для того чтобы создать новую строку таблицы значений, используется метод Добавить, данный метод не имеет параметров и является функцией. Новая строка таблицы значений создается следующим образом:
НоваяСтрока = ФИО.Добавить();
С помощью метода Добавить мы создали переменную НоваяСтрока, тип значения которой «Строка таблицы значений». Но просто создать строку мало, нам еще необходимо записать в нее определенные данные. Получить доступ к колонкам данной строки можно двумя способами.
Первый способ: НоваяСтрока.Фамилия = "Иванов";
Второй способ: НоваяСтрока[1] = "Иван";
10
