Никогда не использовал этот метод, но ради интереса попробовал. Вот что получилось:
Во-первых, если сделать по первому варианту синтаксиса (по строке), для примитивного XDTO-объекта с одним свойством ИмяСвойства, ОбъектXDTO.Установить("ИмяСвойства"), то будет ошибка "недостаточно фактических параметров". Это уже говорит о том что в С-П скорее всего есть ошибка, и второй параметр (устанавливаемое значение) всё же требуется.
Попробуем его указать -- ОбъектXDTO.Установить("ИмяСвойства", "новое значение"). Ну ок, работает. Первый вариант, указание XPath, значение свойства установилось.
Попробуем усложнить, создадим вложенную структуру типов в XDTO, и попробуем XPath посложнее: ОбъектXDTO.Установить("ИмяСвойства1/ИмяСвойства2", "новое значение"). Тоже ок, всё сработало, установилось значение для вложенного свойства, с помощью XPath. XPath'ы типа ".ИмяСвойства1" тоже работают.
Т.к. в 1С XPath ограничен только одним значением, поэтому ни получить все свойства, ни установить сразу несколько с помощью XPath типа "//ИмяСвойства2" нельзя. ("Строго говоря, это не совсем XPath, а скорее несколько модифицированное подмножество XPath." - (с) ИТС)
Тимур, "это" я конечно же читал. Если покажете где там пример установки значения свойства ОбъектаXDTO по выражению XPath, буду безмерно благодарен.
Что касается, приведенного вами примера кода, то он относится во-первых к объекту DOM, а не ОбъектXDTO, а во-вторых, описывает получение значения свойства, а не его установку.
(19) Сергей, ваша краткость достойна подражания.
Эту ссылку мне уже кидали заработчики стартманей публикацией сообщений в форуме. Разве что на чуть соседний пункт документации.
Там я всё до дыр зачитал еще до размещения вопроса (думал что достаточно ясно это в стартовом сообщении уточнил). Про установку значения укажете где там написано?
Я смотрю, форум Инфостарта стремится превратиться в новую Мисту. Подозреваю, что скоро надо будет на СтекОверфлоу писать вопросы по 1С чтобы что-то дельное прочитать в ответе.
(15) Ок, ты прав, товарищь. Давай, напишем что-нибудь дельное. Пусть кое-кому станет стыдно кушать муксуна в одно лицо.
Но мне, скажу сразу, не скрывая, не хватает твоей основательности в подходе. О чем мы с тобой будем писать что-нибудь дельное? Что ты обычно читаешь на СтекОверфлоу ?
(17) Отличный стол! Да и судя по количеству пивных бокалов, лицо точно не одно. Так что лучше порадуемся за коллегу!
Дельного в чате ждать уже глупо - пойду и себе налью вкусняшки.
Александр, спасибо огромное!!! У меня руки не дошли пока до экспериментов (задача отложена немного из-за других суперсрочных). Продублируйте сюда пожалуйста, от своего имени - чтобы те, кто придет по поиску, могли воспользоваться. Ну и чтобы ответ пометить как решение.
Никогда не использовал этот метод, но ради интереса попробовал. Вот что получилось:
Во-первых, если сделать по первому варианту синтаксиса (по строке), для примитивного XDTO-объекта с одним свойством ИмяСвойства, ОбъектXDTO.Установить("ИмяСвойства"), то будет ошибка "недостаточно фактических параметров". Это уже говорит о том что в С-П скорее всего есть ошибка, и второй параметр (устанавливаемое значение) всё же требуется.
Попробуем его указать -- ОбъектXDTO.Установить("ИмяСвойства", "новое значение"). Ну ок, работает. Первый вариант, указание XPath, значение свойства установилось.
Попробуем усложнить, создадим вложенную структуру типов в XDTO, и попробуем XPath посложнее: ОбъектXDTO.Установить("ИмяСвойства1/ИмяСвойства2", "новое значение"). Тоже ок, всё сработало, установилось значение для вложенного свойства, с помощью XPath. XPath'ы типа ".ИмяСвойства1" тоже работают.
Т.к. в 1С XPath ограничен только одним значением, поэтому ни получить все свойства, ни установить сразу несколько с помощью XPath типа "//ИмяСвойства2" нельзя. ("Строго говоря, это не совсем XPath, а скорее несколько модифицированное подмножество XPath." - (с) ИТС)
(26) Олег, я понимаю что вы считаете что ваш ответ был раньше, но на деле Александр написал первым и более развернуто (на партнерском). Сюда я сам попросил его продублировать.
В качестве утешительного приза отправил и вам вознаграждение (в начальном размере).
И да, вы тоже профессионал: ваш пост также по делу, без воды и заявлений об очевидности.
(27) Вы не правильно поняли мой пост. Я не выпрашивал вознаграждения. У меня его и так хватает. Просто сам факт, что ответ был проигнорирован. Но, в любом случае - спасибо.
Олег, ни в коем случае ваш пост не проигнорирован. Просто он действительно появился после сообщения Александра и моей просьбы продублировать его ответ с партнерки здесь.
Совершенно не расценивал ваш пост о профессионализме как выпрашивание. Скорее, как указание на сложившуюся не очень справедливую ситуацию. Постарался исправить её в меру своего понимания справедливости. Надеюсь что и вы считаете примерно также.