1С 8.3 Структура
Данные > Примеры кода 1С > 1С 8.3 Cтруктура
Структура в 1С 8.3 - это коллекция пар Ключ (только строковый тип) + Значение (любой тип данных). Ключ всегда - это имя свойства, а значение - само свойство. Обычно используется для хранения небольшого двумерного массива, и передачи между процедурами набора каких-либо параметров. Структура в отличии от соответствия упорядочивает элементы при добавлении.
Со структурами можно работать и в серверном и клиентском контексте. Может использоваться в реквизитах управляемой формы.
Оглавление:
Создание Структуры (через Строку или Ключ) в 1С 8.3:
&НаКлиенте
Процедура СозданиеСтруктуры()
// Вариант 1: через строку
СтрКлиент = Новый Структура("КлиентИмя, ДатаРегистриции, КолРаботников", "ОАО ""Савушкин продукт""", '19961230', 3120);
Сообщить(СтрКлиент.КлиентИмя + ", создано " + СтрКлиент.ДатаРегистриции + ", количество работников" + СтрКлиент.КолРаботников);
// Вариант 2: через Ключ
СтрКлиент = Новый Структура;
СтрКлиент.Вставить("КлиентИмя", "ОАО ""Савушкин продукт""");// <Ключ>, <Значение> (произв. типа)
СтрКлиент.Вставить("КлиентБелИмя", "ААТ ""Савушкін прадукт""");
СтрКлиент.Вставить("УНП", "200030514");
СтрКлиент.Вставить("ДатаРегистриции", '19961230');
СтрКлиент.Вставить("Сайт", "savushkin.by");
СтрКлиент.Вставить("НомерТелефона", "+375(162)470624");
СтрКлиент.Вставить("КолРаботников", 3120);
Сообщить(СтрКлиент.КлиентИмя + " (на бел.языке " + СтрКлиент.КлиентБелИмя + "), УНП " + СтрКлиент.УНП +
", создано " + СтрКлиент.ДатаРегистриции+", www:" + СтрКлиент.Сайт+", телефон №" +
СтрКлиент.НомерТелефона+", количество работников" + СтрКлиент.КолРаботников);
КонецПроцедуры
Процедура СозданиеСтруктуры()
// Вариант 1: через строку
СтрКлиент = Новый Структура("КлиентИмя, ДатаРегистриции, КолРаботников", "ОАО ""Савушкин продукт""", '19961230', 3120);
Сообщить(СтрКлиент.КлиентИмя + ", создано " + СтрКлиент.ДатаРегистриции + ", количество работников" + СтрКлиент.КолРаботников);
// Вариант 2: через Ключ
СтрКлиент = Новый Структура;
СтрКлиент.Вставить("КлиентИмя", "ОАО ""Савушкин продукт""");// <Ключ>, <Значение> (произв. типа)
СтрКлиент.Вставить("КлиентБелИмя", "ААТ ""Савушкін прадукт""");
СтрКлиент.Вставить("УНП", "200030514");
СтрКлиент.Вставить("ДатаРегистриции", '19961230');
СтрКлиент.Вставить("Сайт", "savushkin.by");
СтрКлиент.Вставить("НомерТелефона", "+375(162)470624");
СтрКлиент.Вставить("КолРаботников", 3120);
Сообщить(СтрКлиент.КлиентИмя + " (на бел.языке " + СтрКлиент.КлиентБелИмя + "), УНП " + СтрКлиент.УНП +
", создано " + СтрКлиент.ДатаРегистриции+", www:" + СтрКлиент.Сайт+", телефон №" +
СтрКлиент.НомерТелефона+", количество работников" + СтрКлиент.КолРаботников);
КонецПроцедуры
Изменение значения поля структуры в 1С 8.3:
&НаКлиенте
Процедура ИзменениеЗначенияПоляСтруктуры(СтрКлиент)
// Вариант 1: через вставку
СтрКлиент.Вставить("НомерТелефона", "+375(162)471080");
СтрКлиент.Вставить("КолРаботников", 3584);
// Вариант 2: через присвоение переменной
СтрКлиент.НомерТелефона = "+375(162)470890";
СтрКлиент.КолРаботников = 4120;
КонецПроцедуры
Процедура ИзменениеЗначенияПоляСтруктуры(СтрКлиент)
// Вариант 1: через вставку
СтрКлиент.Вставить("НомерТелефона", "+375(162)471080");
СтрКлиент.Вставить("КолРаботников", 3584);
// Вариант 2: через присвоение переменной
СтрКлиент.НомерТелефона = "+375(162)470890";
СтрКлиент.КолРаботников = 4120;
КонецПроцедуры
Цикл по всем элементам структуры в 1С 8.3:
&НаКлиенте
Процедура ЦиклПоВсемЭлементамСтруктуры(СтрКлиент)
Для Каждого ЭлементСтр Из СтрКлиент Цикл
Сообщить(ЭлементСтр.Ключ + " " + ЭлементСтр.Значение);
КонецЦикла;
КонецПроцедуры
Процедура ЦиклПоВсемЭлементамСтруктуры(СтрКлиент)
Для Каждого ЭлементСтр Из СтрКлиент Цикл
Сообщить(ЭлементСтр.Ключ + " " + ЭлементСтр.Значение);
КонецЦикла;
КонецПроцедуры
Получение информации о количестве элементов структуры в 1С 8.3:
&НаКлиенте
Процедура ИнформацияОКоличествеЭлементовСтруктуры(СтрКлиент)
Сообщить(СтрКлиент.Количество());// число (всего количество элементов структуры)
КонецПроцедуры
Процедура ИнформацияОКоличествеЭлементовСтруктуры(СтрКлиент)
Сообщить(СтрКлиент.Количество());// число (всего количество элементов структуры)
КонецПроцедуры
Удаление элементов структуры в 1С 8.3:
&НаКлиенте
Процедура УдалениеЭлементовСтруктуры(СтрКлиент)
// Удаление одного элемента структуры
СтрКлиент.Удалить("НомерТелефона");// Номер телефона станет пустым
// Удаление всех элементов структуры
СтрКлиент.Очистить();
КонецПроцедуры
Процедура УдалениеЭлементовСтруктуры(СтрКлиент)
// Удаление одного элемента структуры
СтрКлиент.Удалить("НомерТелефона");// Номер телефона станет пустым
// Удаление всех элементов структуры
СтрКлиент.Очистить();
КонецПроцедуры
💡 Шаблоны (готовые модели) кода 1С 8.3 с тегом #Структура:
1
комментарий
Maksutka
30 июн 2023
лайк
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник