❓ 6.13 Ключ может быть произвольного типа у
📚 Документация
Заголовок раздела «📚 Документация»-
ИТС: 1С:Программирование для начинающих — Коллекции значений https://its.1c.ru/db/pubprogforbeginners/content/81/hdoc
-
ИТС: 1С:Программирование для начинающих — Структура https://its.1c.ru/db/pubprogforbeginners/content/89/hdoc
-
ИТС: 1С:Программирование для начинающих — Удаляйте элементы с конца https://its.1c.ru/db/pubprogforbeginners#content:88:hdoc
❓ 6.13 Ключ может быть произвольного типа
🧠 Краткая теория
Заголовок раздела «🧠 Краткая теория»В платформе существуют универсальные коллекции значений: Массив, Структура, Соответствие, ТаблицаЗначений, ДеревоЗначений и другие.
Они позволяют хранить наборы значений
Рассмотрим три часто используемые коллекции.
Массив — упорядоченная коллекция элементов.
Каждый элемент имеет индекс, причем нумерация начинается с 0.
Числа = Новый Массив;
Числа.Добавить(10);Числа.Добавить(20);Числа.Добавить(30);
ВтороеЧисло = Числа[1]; // 20Здесь 1 — это индекс элемента, а не ключ.
При удалении элемента следующие элементы сдвигаются, и их индексы изменяются. Поэтому при удалении элементов массива необходимо идти с конца к началу:
Индекс = Числа.ВГраница();
Пока Индекс >= 0 Цикл
Если Числа[Индекс] < 10 Тогда Числа.Удалить(Индекс); КонецЕсли;
Индекс = Индекс - 1;
КонецЦикла;Структура
Заголовок раздела «Структура»Структура хранит пары:
ключ → значение
Параметры = Новый Структура;
Параметры.Вставить("Количество", 10);Параметры.Вставить("Активен", Истина);Ключ структуры — строка, содержащая имя элемента структуры.
Получить значение можно двумя способами:
Количество = Параметры["Количество"];или через точку:
Количество = Параметры.Количество;Именно возможность обращаться к элементам как к свойствам (через точку) делает Структуру удобной для хранения именованных параметров.
Соответствие
Заголовок раздела «Соответствие»Соответствие также хранит пары:
ключ → значение
Но в отличие от Структуры, ключ здесь не является именем свойства.
Например:
Цены = Новый Соответствие;
Цены.Вставить("Хлеб", 70);Цены.Вставить("Молоко", 100);
Цена = Цены["Хлеб"];В качестве ключа можно использовать не только строку.
Например, число:
Данные = Новый Соответствие;
Данные.Вставить(1001, "Первый");Данные.Вставить(1002, "Второй");
Значение = Данные[1001];Или ссылку на объект информационной базы:
ДанныеПоКонтрагентам.Вставить( Контрагент, ДанныеКонтрагента);Структура и Соответствие
Заголовок раздела «Структура и Соответствие»Именно эти коллекции чаще всего сравнивают между собой.
Структура | Соответствие | |
|---|---|---|
| Хранит пары ключ → значение | Да | Да |
| Ключ | Строковое имя элемента | Значение произвольного типа |
Доступ через [] | Да | Да |
| Доступ через точку | Да | Нет |
Структура удобна, когда нужно передать набор именованных параметров:
Параметры.ДатаНачалаПараметры.КоличествоПараметры.ОрганизацияСоответствие удобно, когда необходимо связать одно значение с другим:
Контрагент → ДоговорНоменклатура → ЦенаКод → Значение🧠 Ключевая мысль
Заголовок раздела «🧠 Ключевая мысль»Массив обращается к элементам по числовому индексу.
Структура хранит элементы с именованными строковыми ключами, к которым можно обращаться через точку.
Соответствие также хранит пары ключ — значение, но ключ здесь является самостоятельным значением и может иметь произвольный тип.