Структура 1с 8.3 пример применения.
Структуры в 1с : Предприятие 8.3 представляет собой динамический набор данных-коллекцию значений, каждый элемент которой состоит из пары «Ключ» и «Значение». Ключи структуры уникальны, и поэтому ими можно идентифицировать значения. Ключ структуры должен быть строковым и отвечать требованиям к именам переменных. К значениям структуры можно обращаться как к свойствам объекта, при этом ключ используется как имя свойства.
Структура в 1с 8.3 рассмотрим пример решения задачи.
Задача. Пользователь вводит данные о количестве студентов, их фамилии, имена и Суммарный Балл для каждого. Суммарный бал подразумевает сумму баллов по 3 предметам. Если студент получил по 3 предметам оценку отлично, то суммарный балл равен 15. Программа должна определить средний суммарный балл и вывести фамилии и имена студентов, чей балл выше среднего.
Как создать структуру (способ 1) в 1с 8.3
ЛичныеДанные = Новый Структура;
// пара ключ (имя переменной) – значение (произв. типа)
ЛичныеДанные.Вставить(“Фамилия”, “Иванов”);
ЛичныеДанные.Вставить(“Имя”, “Иван”);
ЛичныеДанные.Вставить(“ДатаРождения”, ‘19800802’);
Сообщить(
ЛичныеДанные.Имя + ” ” + ЛичныеДанные.Фамилия +
” родился ” + ЛичныеДанные.ДатаРождения );
Как обойти все элементы структуры в 1с 8.3
Для перебора всех элементов структуры используется оператор циклы Для Каждого
Для Каждого Элемент Из ЛичныеДанные Цикл
Сообщить(Элемент.Ключ + " " + Элемент.Значение);
КонецЦикла;
Как удалить элемент структуры в 1с 8.3
ЛичныеДанные.Удалить("ДатаРождения");
Как очистить все элементы структуры в 1с 8.3
ЛичныеДанные.Очистить();
КонецПроцедуры
Полный код решения задачи 1.
студент=новый массив();
КоличествоСтудентов=3;
ЛичныеДанные = Новый Структура;
// пара ключ (имя переменной) – значение (произв. типа)
ЛичныеДанные.Вставить(“Фамилия”, “Иванов”);
ЛичныеДанные.Вставить(“Имя”, “Иван”);
ЛичныеДанные.Вставить(“СуммаБаллов”, 15);
студент.добавить(Новый структура(“Фамилия,Имя,СуммаБаллов”,”Иванов”,”Иван”,15));
//
ЛичныеДанные.Вставить(“Фамилия”, “Петров”);
ЛичныеДанные.Вставить(“Имя”, “Петр”);
ЛичныеДанные.Вставить(“СуммаБаллов”, 10);
студент.добавить(Новый структура(“Фамилия,Имя,СуммаБаллов”,”Петр”,”Петр”,10));
студент.добавить(Новый структура(“Фамилия,Имя,СуммаБаллов”,”Сидоров”,”Сидр”,11));
//для индекс=0 по 1 цикл
//Для Каждого ЛичныеДанные Из фио Цикл
//Сообщить(ЛД.Имя + ” ” + ЛД.Фамилия + ” родился ” + ЛД.СуммаБаллов);
//Результат.ДобавитьСтроку(ЛичныеДанные.Имя + ” ” + ЛичныеДанные.Фамилия +
// ” родился ” + ЛичныеДанные.СуммаБаллов);
/////
//конеццикла;
сумма =0;
Для каждого Элемент из студент цикл
Сообщить(Элемент.СуммаБаллов);
сумма=сумма+Элемент.СуммаБаллов;
КонецЦикла;
средняяСуммаБаллов=сумма/КоличествоСтудентов;
Сообщить(средняяСуммаБаллов);
Для каждого Элемент из студент цикл
если Элемент.СуммаБаллов>средняяСуммаБаллов тогда
Результат.ДобавитьСтроку(Элемент.Фамилия+” “+Элемент.Имя+” “+Элемент.СуммаБаллов);
//Сообщить(Элемент.СуммаБаллов);
конецесли;
//сумма=сумма+Элемент.СуммаБаллов;
КонецЦикла;
Структуры широко применяются при открытии форм с Параметрами.
Использование структуры при поиске цены в регистре сведений цены:
Во-первых команда на клиенте выполняемая при изменении Номенклатуры
Во-вторых функция поиска цены при помощи запроса и структуры.
Задача 2 Для самостоятельного решения.
- Задача о покупке товаров
Написать программу, в которой хранятся данные о товарах, их количестве и цене. При запуске программы эта информация выводится на экран. Известна сумма денежных средств, которую можно потратить на покупку товаров. Задача вывести на экран количество товара, если покупать только товар одного вида.