На прошлом занятии мы познакомились с массивами. Сегодня на очереди следующий тип данных - Структура.
Тип данных Структура в языке 1С 8
Давайте я подведу вас к необходимости структур в языке 1С.
Пусть нам требуется хранить в программе информацию о некотором человеке, которая включает в себя фамилию, имя и отчество. Как лучше представить эти данные?
Можно, конечно, так:
Фамилия ="Пупкин";
Имя ="Василий";
Отчество ="Алибабаевич";
В общем хорошо, но это три разных объекта, которые никак не связаны между собой. А хочется, чтобы было ясно, что и фамилия, и имя, и отчество указаны не сами по себе, а принадлежат одному человеку. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Возникает потребность связать эти три параметра (фамилия, имя и отчество) с одним объектом, который, давайте назовём Человек.
Можно поместить все три параметра в массив:
Человек =Новый Массив(3);
Человек[0]="Пупкин";
Человек[1]="Василий";
Человек[2]="Алибабаевич";
Вроде бы цель достигнута - связали все три параметра с одним объектом. Но работать с таким объектом неудобно, потому что обращаться к значениям массива придется по числовому индексу, то есть, чтобы нам вывести отчество, придется написать:
Сообщить(Человек[2]);// вывод отчества человека
Что, конечно же, очень неудобно! Хотелось бы обращаться к параметрам объекта по их именам. Вот для этого и были придуманы Структуры.
Cтруктура - это составной объект, в который входят элементы любых типов, обращаться к которым можно по имени этих элементов.
С использованием структур предыдущий пример будет выглядеть так:
По приведенному выше примеру пройдите следующий тест:
Начать тест
1. С каким именем связана структура, хранящая фамилию, имя и отчество человека
2. Элементы с какими именами содержит в себе структура Человек
3. Как вывести имя человека, информация о котором хранится в структуре Человек
4. Сколько элементов содержит в себе структура Человек
5. Как добавить в структуру ещё один элемент с именем Возраст
Задание №34. Необходимо ввести имена и возраст трёх людей. Затем найти, кто из них самый старший и вывести его имя.
Не пугайтесь. У нас есть все инструменты для решения этой задачи. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Для хранения информации о человеке (имя и возраст) будем использовать структуру. Информацию о каждом человеке будем помещать в отдельный ящик массива. Затем пробежимся по ящикам массива и найдем имя самого старшего человека.
// объявляем массив с тремя ящиками
Люди =Новый Массив(3);Для Шаг =0По2Цикл// вводим информацию по каждому из трёх людей// и сохраняем её в структуру, которую// кладём в соответствующую ячейку массива
Люди[Шаг]=Новый Структура("Имя, Возраст");
ВвестиСтроку(Люди[Шаг].Имя);// вводим имя
ВвестиЧисло(Люди[Шаг].Возраст);// вводим возрастКонецЦикла;// изначально положим, что самым старшим// является человек из первой ячейки массива
ИмяСамогоСтаршегоЧеловека = Люди[0].Имя;
НаибольшийВозраст = Люди[0].Возраст;// пробежимся по всем людям кроме нулевого,// ведь человек в нулевом элементе изначально принят// нами за человека с наибольшим возрастомДля Шаг =1По2Цикл// и сравним их возрасты с наибольшим// возрастом на текущий моментЕсли Люди[Шаг].Возраст > НаибольшийВозраст Тогда// нашли человека, который старше предыдущего// сохраним его возраст
НаибольшийВозраст = Люди[Шаг].Возраст;// и имя
ИмяСамогоСтаршегоЧеловека = Люди[Шаг].Имя;КонецЕсли;КонецЦикла;
ОткрытьЗначение("Самый старший человек - "+
ИмяСамогоСтаршегоЧеловека +". Ему "+
НаибольшийВозраст +" лет.");
По аналогии с этим примером решите следующую задачу.
Задание №35. Необходимо ввести имена и вес четырёх человек, найти самого легкого из них и вывести его имя.
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Дополнение
Данный материал рассчитан на начинающих разработчиков. Если он показался вам слишком лёгким - рассмотрите другие примеры использования структур в 1С (ссылка).
Для учеников
Уровень сложности уроков идёт снизу вверх. Поэтому старайтесь заниматься последовательно, ничего не пропуская и не откладывая на потом.
Обязательно выполняйте все тесты и домашние задания, старайтесь улучшить свои результаты. Сверяйтесь с эталонными решениями только после самостоятельного выполнения задач.