Записки программиста 1с

Соответствие 1с

Соответствие 1с- это коллекция объектов типа Ключ-Значение. Порядок обхода элементов соответствует порядку добавления элементов в соответствие. Соответствие позволяет хранить элементы произвольных типов.

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

Создание и работа с коллекцией «Соответствие» в 1С 8.3

Создать новую универсальную коллекцию «Соответствие», можно сделать, воспользовавшись конструктором «Новый», как показано ниже:

НовоеСоотвестветствие= Новый Соответствие;

Добавление значения в коллекцию “Соответствие” выполняется с помощью ключевого слова “Вставить”. Синтаксис:

НовоеСоотвестветствие.Вставить(Ключ, Значение);

Пример.

НовоеСоотвестветствие.Вставить(1,"Понедельник");

Так как значение типа ключа абсолютно любое, то коллекция «Соответствие» обеспечивает проставление связей между любыми объектами.

СтруктураСоответствие
Структура1.Ключ1Соответствие1[“Ключ1”]
Отличие Соответствия от Структуры

Соответствие можно создать на всех видах клиентов и в любом контексте. Сериализируется, т.е. можно передать переменную с типом структура с клиентского контекста на серверный. Хоть и в ключ и значение соответствия можно записать переменные любого типа, использование типов в этом случае очень сильно зависит от контекста и от вида клиента: мы не можем в клиентском задать в ключ или значение, тип которого работает только в серверном контексте (например, ДокументОбъект.<>)

Метод Соответствия «Вставить»

Метод Вставить для Соответствия работает точно так же, как для Структуры.
Он имеет следующий синтаксис:

Вставить(<Ключ>, <Значение>

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

  • Фамилию Имя Отчество
  • ДатуРождения
  • Возраст
&НаКлиенте
Процедура СоответствиеМетодВставить(Команда)
Возраст=20;
ДатаРождения=Дата("20000101");
Соответствие1 = Новый Соответствие;
Соответствие1.Вставить("Фамилию Имя Отчество", "Умный Умник Умникович");
Соответствие1.Вставить(1,Возраст);
Соответствие1.Вставить(Дата(2017,12,10), ДатаРождения);
Сообщить(Соответствие1["Ключ1"]);
Сообщить(Соответствие1[1]);
Сообщить(Соответствие1[Дата(2017,12,10)]);
КонецПроцедуры

Обход Соответствия 1с

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

&НаКлиенте
Процедура СоответствиеОбход(Команда)
 Соответствие1 = Новый Соответствие;
Для Каждого ЭлементСоответствия из Соответствие1 цикл
  Сообщить("Соответствие1 [" +
  Строка(ЭлементСоответствия.Ключ) + "] = " +
  ЭлементСоответствия.Значение);
КонецЦикла;
КонецПроцедуры

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *