Проверяет наличие свойства по идентификатору и получает его значение
Синтаксис
Метод Свойство()
имеет следующий синтаксис:
Булево Свойство(Ключ, [Значение = Неопределено])
А также альтернативный англоязычный синтаксис:
boolean Property(Key, [Value = Undefined])
Параметры
Описание параметров метода Свойство()
:
Имя параметра* | Тип | Описание |
---|---|---|
Ключ | Строка | Идентификатор свойства |
Значение | Произвольный | В данный параметр возвращается найденное значение.
Значение по умолчанию: |
*Жирным шрифтом выделены обязательные параметры |
Возвращаемое значение
Булево
Истина | — ключ найден |
Ложь | — ключ не найден |
Описание
Метод Свойство()
проверяет наличие свойства по его ключу (идентификатору) и помещает его значение в параметр Значение
Доступность
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Пример использования
Пример кода с использованием метода Свойство()
:
Структура = Новый Структура; //... Если Структура.Свойство("Код") = Ложь Тогда Структура.Вставить("Код", 100); КонецЕсли; //... Значение = Неопределено; Если Структура.Свойство("Код", Значение) Тогда Сообщить("Значение = " + Значение); КонецЕсли; //Значение = 100
Поделиться страницей в соц.сетях
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 47
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
COM-подключение к базе 7.7 из .NET, .NET Core 1
Инсталяция: dotnet add package sabatex.V1C77 или добавить через NUGET пакет sabatex.V1C77. Добавить пространство имен: using sabatex.V1C77; пример использованя: —C# static void Main(string args) { // создаем строку соединен
COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине.
Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)):
НаКлиенте
Процедура Загрузки()
ПутьКБазе=» D:ВашаБаза1с77″ ;
Пользователь=
QR код в 1С 21
Столкнулся с интересной задачей реализации генерации QR-кода в 1С 8.2 ( QR-код — матричный код (двухмерный штрихкод) ) Для генерации было использовано api от google (http://chart.apis.google.com/chart). Вот сайт , который работает с ним. После тог
Посмотреть все результаты поиска похожих
Здравствуйте, задача тривиальная, порой бывает удобно воспользоваться структурой. И порой в связи с этим всплывают какие-нибудь неожиданные косяки, связанные с неудачным заполнением. Чтобы исключить неудачное заполнение можно пользоваться терпением при заполнении. Или можно при обращении к полям структуры устроить проверку на наличие этих полей. Сделать это можно с помощью метода структуры Свойство.
На самом деле и тут писать нечего особо. Метод возвращает истину или ложь, по имени поля в зависимости есть оно в структуре или нет.
Свойство(<Ключ>, <НайденноеЗначение>)
Тип: Строка.
Ключ для поиска
свойства.
<НайденноеЗначение>
(необязательный)
Тип: Произвольный.
Тип: Булево.
Истина
— ключ найден; Ложь
в противном случае.
Еще метод заполняет <НайденноеЗначение>, если его предварительно определить.
Таким образом, заполнять структуру можно черте как, а вот обращаться к полям уже с проверкой и будет все хорошо:
лВесБлока = Неопределено;
лОбъемБлока = Неопределено;
Если мДанныеДляИзменения.Свойство(«ОбъемБлока»,лОбъемБлока) ИЛИ мДанныеДляИзменения.Свойство(«ВесБлока»,лВесБлока) Тогда
лОбъект = стр.Номенклатура.ЕдиницаДляОтчетов.ПолучитьОбъект();
Если лОбъемБлока<>Неопределено Тогда
лОбъект.Объем = лОбъемБлока;
КонецЕсли;
Если лВесБлока<>Неопределено Тогда
лОбъект.Вес = лВесБлока;
КонецЕсли;
лОбъект.Записать();
КонецЕсли;
В примере мы теоретически имеем в структуре мДанныеДляИзменения два свойства: ОбъемБлока и ВесБлока. Перед проверкой мы их определяем в Неопределено, и если этих свойств в структуре нет, то они так и останутся неопределенными. Если же есть то получим значения из структуры, которое можно обрабатывать или передавать как хочется, в данном случае заполнять объект.
Структура — это особый тип данных в 1С, который можно представить в виде таблицы из двух колонок. Первая колонка называется Ключ, вторая — Значение. Ключ всегда является строкой и должен удовлетворять требованиям, предъявляемым к именованию переменных встроенного языка, значение может быть разных типов.
КЛЮЧ | ЗНАЧЕНИЕ |
«Имя» | «Иван» |
«Фамилия» | «Иванов» |
«Возраст» | 25 |
Как создать переменную с типом Структура
Создать переменную с типом Структура можно двумя способами. Рассмотрим создание структуры, описанной в таблице выше.
П1 = новый Структура («Имя, Фамилия, Возраст», «Иван», «Иванов», 25);
или
П1 = новый Структура;
П1.Вставить(«Имя», «Иван»);
П1.Вставить(«Фамилия», «Иванов»);
П1.Вставить(«Возраст», 25);
Как добавить новый элемент в структуру
Для добавления нового элемента в структуру используется функция Вставить(Ключ, Значение). Пример использования этой функции смотрите в предыдущем разделе.
Как получить значение элемента структуры по имени ключа
Фамилия = П1.Фамилия; //переменной Фамилия будет присвоено значение «Иванов»
Возраст = П1.Возраст; //переменной Возраст будет присвоено значение 25
Как изменить значение элемента структуры по имени ключа
Если известно имя ключа структуры, то изменить значение можно двумя способами.
П1.Возраст=26; // Значение изменено на 26
П1.Вставить(«Возраст»,26); // Значение изменено на 26
Как узнать количество элементов структуры
Колич = П1.Количество(); // 3
Как проверить, есть ли в структуре ключ с определенным именем
Для этого существует функция Свойство (Ключ, НайденноеЗначение). Первый параметр Ключ — обязательный. Сюда нужно передать имя искомого ключа структуры. Второй параметр — переменная, в которую нужно поместить значение, если ключ будет найден. Этот параметр не обязателен. А сама функция возвращает значение Истина, если ключ найден, или Ложь, если не найден.
Найдено = П1.Свойство(«Отчество»); // Найдено = Ложь
Перем Имя;
Найдено = П1.Свойство(«Имя», Имя);
//Имя = «Иван», Найдено = Истина
Как удалить элемент структуры
Как удалить все элементы, очистить структуру
Как обойти в цикле все элементы структуры
Для обхода структуры используется цикл Для каждого.
Для каждого Элемент из П1 Цикл
Сообщить(Элемент.Ключ + » — « + Элемент.Значение);
КонецЦикла;
//Результат:
//Имя — Иван
//Фамилия — Иванов
//Возраст — 25
Структура представляет собой некий контейнер, который хранит пары ключ и значение. Ключ в структуре может быть только строкового типа и должен удовлетворять требованиям названия переменных в 1С. Для значения структуры нет ограничений. Структуру можно создать как на клиенте, так и на сервере. А также структуру можно передавать с клиента на сервер и обратно.
Создание структуры
Для создания структуры используется конструктор:
СтруктураПараметров = Новый Структура;
Можно сразу в конструкторе указать ключи и значения:
СтруктураПараметров = Новый Структура(«КлючСтруктуры1, КлючСтруктуры2», 25, «значение»);
В этом случае будет создана структура с двумя ключами КлючСтруктуры1 и КлючСтруктуры2. При этом значение ключа КлючСтруктуры1 будет равно 25, а значение ключа КлючСтруктуры2 будет равно строке «значение». В дальнейшем можно изменять значения каждого ключа, можно добавлять новые ключи или удалять существующие. Если для какого-то ключа не указать значение, то оно будет равно Неопределено.
//оба значения будут равны Неопределено
СтруктураПараметров = Новый Структура(«КлючСтруктуры1, КлючСтруктуры2»);
Добавление нового ключа в структуру
Чтобы добавить новый ключ в структуру после ее создания можно использовать метод Вставить. Если в структуре уже был такой ключ, то значение будет заменено.
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить(«НовыйКлюч», 2);
Если попытаться добавить в структуру ключ, который начинается с цифры, то будет вызвано исключение «Задано неправильное имя атрибута структуры»:
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить(«1», 2);
//при компиляции модуля будет ошибка:
//Задано неправильное имя атрибута структуры
Обращение к свойствам структуры
К свойствам (ключам) структуры можно обращаться через точку «.» после имени структуры:
СтруктураПараметров = Новый Структура(«КлючСтруктуры1, КлючСтруктуры2», 25, «значение»);
СтруктураПараметров.КлючСтруктуры1 = «новое значение»;
Можно через оператор индексации []:
СтруктураПараметров = Новый Структура(«КлючСтруктуры1, КлючСтруктуры2», 25, «значение»);
СтруктураПараметров[«КлючСтруктуры1»] = «новое значение»;
Перебор структуры
Перебрать элементы структуры можно с помощью цикла Для Каждого. На каждой итерации цикла будет переменная типа КлючИЗначение. Через свойства Ключ и Значение данной переменной можно только читать значения, изменить нельзя:
Для Каждого КлючИЗначение Из СтруктураПараметров Цикл //метод Сообщить выводит значение на экран Сообщить(КлючИЗначение.Ключ); Сообщить(КлючИЗначение.Значение); КонецЦикла;
Как удалить ключ из структуры
Удалить ключ из структуры можно методом Удалить. Данный метод удалит только один ключ. Если нужно удалить все ключи из структуры, то нужно использовать метод Очистить:
СтруктураПараметров.Удалить(«НовыйКлюч»); //удалит только один ключ
СтруктураПараметров.Очистить(); //удалит все ключи из структуры
Как проверить есть ли в структуре ключ
Метод Свойство позволяет проверить наличие в структуре указанного ключа. Если ключ присутствует в структуре, то метод вернет Истина. Если такого ключа нет, то метод вернет Ложь.
ЕстьКлюч = СтруктураПараметров.Свойство("НовыйКлюч"); Если ЕстьКлюч Тогда Сообщить("Ключ найден!"); КонецЕсли;
Также с помощью данного метода можно получить значение по ключу:
Перем Значение; //вторым параметром передаем переменную, в которую будет помещено значение ЕстьКлюч = СтруктураПараметров.Свойство("НовыйКлюч", Значение); Если ЕстьКлюч Тогда Сообщить(Значение); КонецЕсли;
Если в структуре нет такого ключа, то в переменной Значение будет Неопределено.
Поиск в структуре
Чтобы найти какой-то ключ в структуре можно использовать все тот же самый метод Свойство:
Перем НайденноеЗначение; Если СтруктураПараметров.Свойство("НовыйКлюч", НайденноеЗначение) Тогда Сообщить("Значение найдено: " + НайденноеЗначение); Иначе Сообщить("Значение не найдено"); КонецЕсли;
Но если поиск в структуре нужно выполнить по значению, то придется перебрать всю структуру:
//поищем в структуре значение "Поиск" НашлиЗначение = Ложь; Для Каждого КлИЗнач Из СтруктураПараметров Цикл Если КлИЗнач.Значение = "Поиск" Тогда //нашли НашлиЗначение = Истина; Прервать; КонецЕсли; КонецЦикла; Если Не НашлиЗначение Тогда //не нашли КонецЕсли;
Количество элементов структуры
Узнать количество элементов (ключей, свойств) структуры можно с помощью метода Количество:
Колво = СтруктураПараметров.Количество();
Как скопировать структуру
Стр = Новый Структура("Ключ1", 1); ВложеннаяСтр = Новый Структура("Ключ2", 2); Стр.Вставить("ВложеннаяСтр", ВложеннаяСтр); Копия = Новый Структура; Для Каждого КлючИЗначение Из Стр Цикл Копия.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); КонецЦикла; //в этом случае в структуре Копия в ключе ВложеннаяСтр //будет та же самая структура, что и в переменной //ВложеннаяСтр и в структуре Стр //для создания полной копии можно сделать так: ПолнаяКопия = ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(Стр));
Фиксированная Структура
Фиксированная структура — это та же самая структура, но после создания нельзя изменить состав ключей и значения. Можно создать на основании обычной структуры (будет создана полная копия), по ключам и значениям или пустую структуру:
//пустая структура
ФиксСтр = Новый ФиксированнаяСтруктура;//по ключам и значениям
ФиксСтр = Новый ФиксированнаяСтруктура(«Ключ1, Ключ2», 1, 2);//на основании обычной структуры
ОбычнаяСтруктура = Новый Структура(«Ключ1, Ключ2», 1, 2);
ФиксСтр = Новый ФиксированнаяСтруктура(ОбычнаяСтруктура);
У фиксированной структуры есть только 2 метода:
— Количество()
— Свойство(<Ключ>, <НайденноеЗначение>)
К ключам структуры можно обращаться как к свойству: ФиксСтр.Ключ1, но нельзя менять значение свойства.
На основании фиксированной структуры можно создать обычную структуру:
ФиксСтр = Новый ФиксированнаяСтруктура(«Ключ1, Ключ2», 1, 2);
ОбычнаяСтруктура = Новый Структура(ФиксСтр);
ОбычнаяСтруктура.Ключ1 = 11; //теперь можно менять значения
Смотрите также:
Электронный учебник по по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Программное решение для сдачи и подготовки к экзаменам
Программирование в 1С 8.3 с нуля — краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки