РЕКЛАМА

На главную страницу

РЕКЛАМА




Чтобы разместить ссылку на свой сайт с этой страницы воспользуйтесь системой платных ссылок SAPE.


На главную 1с форева.ру
На страницу "Программисту \ Разработка (программирование) приложений на платформе 1с".

Подставить ЗНАЧЕНИЕ переменной в КОД 1с.

Платформа: 8.2, 8.3
Формы: Обычные, Управляемые
Конфигурация: любая
Релиз: любой
Страница актуализирована: 30.12.2016


Как и зачем?
Такая фигня требуется когда имя объекта метаданных у вас возникает в виде строковой переменной. В этом случае вы можете обратится к этому объекту используя подстановку в код значения из переменной. Поясню на примерах.
У вас есть перечисление "ВидыДокументов" имеющее два значения: "Входящие" и "Исходящие". Также имеется переменная (_стр) типа Строка, которая может быть равна "Входящие" или "Исходящие". Чтобы получить значение перечисления в переменную можно конечно написать такой код:

    _стр = "Входящие"; // для отладки
    Если _стр="Входящие" Тогда
        _Переменная = Перечисления.ВидыДокументов.Входящие;
    Иначе
        _Переменная = Перечисления.ВидыДокументов.Исходящие;
    КонецЕсли;   
    Сообщить(_Переменная);


Но гораздо изящней и удобней другая конструкция:

    _стр = "Входящие"; // для отладки
    _Переменная = Перечисления.ВидыДокументов[_стр];
    Сообщить(_Переменная);


В обоих случаях вы получите одинаковый результат. Но вторая конструкция гораздо удобней. Представьте что у вас в перечислении не два значения, а тридцать!
Обращаю ваше внимание, что между названием перечисления и пременной в квадратных скобках нет точки. Это потому что 1с подставляет её автоматически. Поставить там точку самому будет синтаксической ошибкой. Соответственно такую конструкцию нельзя использовать где попало в коде, а только для обращения к объектам метаданных. т.е. конструкция наподобие:

    _стр = "А = 10+1";
    [_стр];


не только не сработает, но даже не скомпилируется.



Copyright (c) by iKai, 2016