Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Обсуждение к материалу: Универсальная замена метода "Свойство()"

    • #1
    • 28.02.2013 20:38
    +1
    Для таких типов данных как "Структура" и "ФиксированнаяСтруктура" доступен метод "Свойство()", позволяющий определить имеется ли в структуре свойство с указанным наименованием. К сожалению для многих других коллекций элементов платформа не имеет аналогичного метода. В статье будет описан подход, позволяющий определить наличие того или иного свойства у любого типа данных (структура, элементы формы, колонки табличного документа, коллекция метаданных и другие).  Подробнее>>
    • #2
    • 28.02.2013 20:39
    0
    Ошибочка выйдет, если значение проверяемой переменной будет NULL.
    • #3
    • 01.03.2013 00:35
    0
    Начислено 500 рублей в рамках акции
    • #4
    • 01.03.2013 05:07
    0
    Вы правы, что ошибка будет. Об этом в статье упомянул. Чтобы пример не усложнять, написал простой вариант алгоритма.

    Ну а чтобы все работало, можно в значение подставлять cгенерированный GUID и после с ним сравнивать.
    • #5
    • 01.03.2013 14:05
    0
    еще ошибочка, видимо надо так:
    Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда 

    или так
    Если СтруктураПроверка[ИмяСвойства] = null Тогда
    • #6
    • 01.03.2013 14:46
    0
    Опечатки, опечатки... =) Поправил в статье.
    • #7
    • 02.03.2013 00:55
    0
    Благодарю за дополнение с GUID.

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

    Единственно точным вариантом проверки представляется двойная проверка на предварительно заполненное поле.
    Т.е. сначала проверяем на NULL, а затем - на любое другое значение, не важно какого типа (т.е. инициализируем свойство своим значением и проверяем после заполнение, что это значение не изменилось).
    Если обе проверки будут успешно пройдены, то мы гарантируем себе, что данного свойства точно нет.
    • #8
    • 02.03.2013 09:28
    0
    Полагаю, что GUID не даст редкой ошибки, поскольку его генерация использует параметры железа компьютера, времени. А это уже гарантирует уникальность.

    http://ru.wikipedia.org/wiki/GUID

    На основе GUID'ов создано формирование ссылок на объекты в информационной базе 1С:Предприятия, поэтому алгоритм будет работать отлично.

    Если в 1 миллисекунду ваш комьютер будет использовать эту функцию более миллиарда раз, то тогда возможно GUID'ы повторятся =))
Яндекс-директ
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться