Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут!

Работа со структурами в 1С 8

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

программный код со структурой 1с

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

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

Первый способ:

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

Второй способ:

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

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

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

новая структура

Изменение

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

Пример:

Структура.Вставить(«ИмяКлюча», ЗначениеКлюча);

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

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

Структура.Удалить(«ИмяКлюча»);

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

Структура.Очистить();

 

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

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

Например:

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

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

Перебор коллекции

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

ТекущаяСтруктура.Количество()

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

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

ЕстьСвойствоКонтрагент = Структура.Свойство(«Контрагент»);

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

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

P.S. Наша компания предоставляет услуги по настройке, доработке и комплексному внедрению 1С. Закажите бесплатный расчет стоимости вашей задачи на странице Услуги 1С или по телефону +7 (499) 350 29 00.

Остались вопросы?

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

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

    Только чтение.

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

    Ответить

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

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

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

      Ответить

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

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

        или

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

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

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

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

        Ответить

    • Ну… Очень много вы написали)))

      Наверное трактовка и хромает. Как написали, так написали. Скажем спасибо что СП вообще есть:)

      Но точно скажу:
      Имя свойства изменить нельзя, можно только удалить и вставить новое 🙂

      Ответить

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