1с получить ключ структуры

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

КЛЮЧ
ЗНАЧЕНИЕ
«Имя» «Иван»
«Фамилия» «Иванов»
«Возраст» 25

Как создать переменную с типом Структура

Создать переменную с типом Структура можно двумя способами. Рассмотрим создание структуры, описанной в таблице выше.

Как добавить новый элемент в структуру

Для добавления нового элемента в структуру используется функция Вставить(Ключ, Значение). Пример использования этой функции смотрите в предыдущем разделе.

Как получить значение элемента структуры по имени ключа

Как изменить значение элемента структуры по имени ключа

Если известно имя ключа структуры, то изменить значение можно двумя способами.

Как узнать количество элементов структуры

Как проверить, есть ли в структуре ключ с определенным именем

Для этого существует функция Свойство (Ключ, НайденноеЗначение). Первый параметр Ключ — обязательный. Сюда нужно передать имя искомого ключа структуры. Второй параметр — переменная, в которую нужно поместить значение, если ключ будет найден. Этот параметр не обязателен. А сама функция возвращает значение Истина, если ключ найден, или Ложь, если не найден.

Перем Имя ;
Найдено = П 1 . Свойство ( «Имя» , Имя ) ;

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Структура

Описание:

Представляет собой коллекцию пар КлючИЗначение. При этом ключ может быть только строковым и должен удовлетворять требованиям, предъявляемым к именованию переменных встроенного языка.

К значениям структуры можно обращаться как к свойствам объекта. При этом ключ используется как имя свойства.

Структура используется обычно для хранения небольшого количества значений, каждое из которых имеет некоторое имя.

Элементы коллекции: КлючИЗначение

Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.

Структура в языке программирования 1С 8.3 и 8.2 — набор пар «Ключ» и «Значение». Поле «Ключ» имеет строковый тип, «Значение» же может принимать любой тип данных. Обычно используется для хранения и передачи между процедурами набора каких-либо параметров.

Создание новой структуры

Структуру в языке программирования 1С можно создать двумя способами с помощью конструкции «Новый».

Структура = Новый Структура;
Структура.Вставить(«КлючПараметра1», «Значения параметра №1»);
Структура.Вставить(«КлючПараметра2», «Значения параметра №2»);

Структура = Новый Структура(«КлючПараметра1, КлючПараметра2», «Значения параметра №1», «Значения параметра №2»);

Оба способа создадут структуру, которую видно на скриншоте из отладки:

Получите 267 видеоуроков по 1С бесплатно:

Изменение

Добавить или изменить структуру можно, используя метод «Вставить()».

Если требуется изменить значение старого ключа, вписываем его имя. Если добавить новый ключ, добавить уникальное имя относительно всех ключей структуры.

Чтобы удалить элемент коллекции, нужно воспользоваться методом «Удалить», куда передать имя ключа:

Возможна также очистка всех объектов коллекции:

Обход структуры

Чтобы перебрать коллекцию структуры, нужно использовать конструкцию «Для Каждого КлючИЗначение Из Структура Цикл».

Для Каждого КлючИЗначение Из Структура Цикл
…… //обрабатываем, например, изменяем значения
КонецЦикла;

В каждом цикле будет видно, что нам доступны следующие поля:

Количество элементов в структуре можно подсчитать следующим образом:

Проверка наличия ключа

Часто бывает, что нужно проверить, есть ли в структуре нужное значение по ключу. В таком случае следует использовать метод «Свойство»:

Если в структуре есть элемент с ключом «Контрагент», тогда метод вернет «Истина», в противном случае — «Ложь».

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(0 голосов, в среднем: 0 из 5)

Поддержите нас, расскажите друзьям!

СПРОСИТЕ в комментариях!

Есть одна информация, которая не дает мне покоя. В синтаксис-помощнике написано:
Структура (Structure)
()
Использование:

Автор статьи предлагает при изменении существующего ключа структуры использовать метод Вставить. Все, вроде бы, логично и правильно, но тем не менее, если я сделаю так:
Структура.КлючПараметра1=»Другое значение параметра 1″, то 1С-ка проглотит это и не подавится, в то же время как в СП четко написано «ТОЛЬКО ЧТЕНИЕ». Или я чего-то не понимаю?

Структура.КлючПараметра1= «Другое значение параметра 1″

«КлючПараметра1» — это имя ключа (ТОЛЬКО ЧТЕНИЕ)

Значение параметра меняем как хотим ��

Ну… так-то если подойти, то да)). Однако, насколько я понял, структура СП в части свойств объекта, который она описывает выглядит так:
Если свойство четко определено — то пишется имя свойства. Например

СправочникСсылка
Наименование
Только чтение

СправочникОбъект
Наименование
Чтение и запись

Если же имя свойства неопределено, оно пишется в тегах «знак больше» и «знак меньше», как в этом случае со свойством «Имя ключа»

И в тех и в других случаях, когда говорится «Только чтение» или «Чтение и запись» — то имеют в виду ЗНАЧЕНИЕ СВОЙСТВА, А НЕ ЕГО ИМЯ.
Например
СправочникОбъект
ИмяОбщегоРеквизита
Чтение и запись (проверьте сами в СП)
здесь же не имеется в виду, что мы можем менять САМО ИМЯ ОБЩЕГО РЕКВИЗИТА. Его-то уж точно нельзя менять. Здесь написано «Чтение и запись» для ЗНАЧЕНИЯ ЭТОГО СВОЙСТВА

Проводя такой же аналог для структуры получаем что речь идет именно о значении свойства, которое указано в имени ключа. Вот в чем прикол-то))

Понравилась статья? Поделиться с друзьями:
Vkontakte.INFO
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: