Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Механизм и конструктор языка запросов в программном обеспечении для учета ресурсов предприятия. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
892 Кб
Скачать

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

Обход строк

Это можно осуществлять с помощью операторов цикла Для каждого...Цикл и Для…Цикл. Осуществим обход уже заполненной таблицы и тем, и другим способом:

С помощью данного метода мы обходим все строки Таблицы значений. Переменная Стр принимает значения всех строк таблицы в порядке обхода. Тип данной переменной - Строка таблицы значений, поэтому мы можем спокойно обращаться к -ко лонкам данной строки, используя точку или квадратные скобки. Покажем, как осуществить обход, используя оператор Для…Цикл.

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

11

Работа с таблицами значений на форме

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

Создадим новую обработку, форму для обработки и добавим на форму Табличное поле. Для этого перейдем Форма – Вставить элемент управления. И в открывшемся списке выберем пункт Табличное поле.

В типе значения оставим Таблица значений, установим флажок Вставить командную панель, и нажмем кнопку ОК.

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

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

12

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

Добавим также колонки: ФИО (тип строка), Автомобиль (Тип ссылка на справочник Автомобили), Количество часов (тип число), Цена часа (тип число) и Сумма (тип число), получим.

Мы создали табличное поле и заполнили его значениями.

13

1.3. Табличные части справочников и документов

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

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

У справочников 1С также могут существовать табличные части, механизм создания которых аналогичен механизму создания табличных частей документов (используя конструктор справочника и через окно дерева метаданных).

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

14

Можно создавать несколько табличных частей и неограниченное количество реквизитов в ней. Так данная табличная часть выглядит на форме.

Получение данных табличных частей

Добавим в табличную часть Комплектация новый реквизит

– Количество (Тип число), и создадим кнопку на форме, при нажатии на которую у всех строк табличной части реквизит Количество примет значение, равное единице.

После добавления реквизита сделаем так, чтобы он был виден в табличном поле на форме. Для этого откроем форму элемента справочника в Меню – Форма – Размещение данных.

15

В дереве данных раскроем ветку Комплектация и в списке под Комплектацией найдем нужный реквизит– Количество. Установим флажок напротив него. Нажмем кнопку ОК и поле Количество появится на форме.

Добавим в командную панель табличного поля подменю Заполнить. И в этом подменю создадим кнопку Заполнить количество. В обработчике нажатия данной кнопки будет следующий код:

В данном коде к табличной части справочника или документа в модуле формы можно обращаться просто по имени нужной табличной части. Сначала мы узнаем, есть ли данные в табличной части, и если нет, то есть количество строк равно нулю, то выходим из процедуры. После мы просим ввести интерактивно число, и если оно введено, осуществляем обход строк табличной части с помощь оператора цикла Для каждого…Цикл. Внутри цикла присваиваем реквизиту Количество каждой строки табличной части число, которое пользователь интерактивно ввел.

16

Итак, мы научились получать и записывать данные в табличные части документов и справочников.

Загрузка в табличную часть и выгрузка из табличной части Загрузить

Рассмотрим метод табличной части– Загрузить. С помощью данного метода можно загрузить таблицу значений в -таб личную часть справочника или документа. Причем уже имеющиеся строки табличной части удаляются. Отметим, что колонки по названиям и по типам значений у таблицы и у табличной части должны совпадать.

Разместим на форме табличное поле с колонками -Ком плектующие и Количество.

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

17

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

Выгрузить

Для выгрузки данных из табличной части в таблицу значений будем использовать метод Выгрузить табличные части.

Рассмотрим синтаксис данного метода:

Выгрузить(<Строки>, <Колонки>) Выгрузить (<ПараметрыОтбора>, <Колонки>)

Данный синтаксис очень похож на синтаксис метода Скопировать для таблиц значений и действует аналогично. Доработаем обработку: создадим кнопку Загрузить табличную часть, при нажатии на которую табличная часть из реквизита формы Автомобиль будет загружена в табличное поле на форме.

18

В обработчике нажатия на кнопку напишем следующий

код:

Мы показали как обращаться к табличным частям справочников и документов, работать с ними и производить все нужные манипуляции над ними.

2. Получение данных

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

2.1. Понятие выборки

Выборка - это специализированный способ перебора чеголибо. В языке программирования 1С существует много видов выборки. Рассмотрим два из них - это выборка документов и выборка справочников.

19

Выборка справочников

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

Выбрать

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

Выбрать(<Родитель>, <Владелец>, <Отбор>, <Порядок>) Все параметры данного метода являются необязательными. «Родитель» - применим для иерархических справочников.

Если он указан, то будут выбираться только те элементы справочника, у которых в свойстве Родитель стоит данный элемент. Если параметр не заполнен, то выберутся все элементы справочника. Чтобы выбрать элементы только верхнего уровня, необходимо указать в качестве Родителя пустую ссылку.

«Владелец» необходим, если мы работаем с подчиненным справочником. Когда мы его укажем, то будет осуществлена выборка всех элементов, которые подчинены данному владельцу.

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

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]