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

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

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

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

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

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

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

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

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

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

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

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

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

Изменение

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

Пример:

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

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

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

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

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

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

 

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

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

Например:

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

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

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

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

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

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

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

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

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

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

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

Задайте ВОПРОС на нашем форуме 1С! ››

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

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

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

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

    Ответить

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

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

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

      Ответить

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

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

        или

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

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

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

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

        Ответить

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

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

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

      Ответить

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

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


*