8.х Получить объекты выделенных элементов динамического списка

Тема в разделе "Установка платформы "1С:Предприятие 8"", создана пользователем GiGi, 6 сен 2017.

  1. TopicStarter Overlay
    GiGi
    Offline

    GiGi

    Регистрация:
    7 мар 2017
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Всем привет!
    Блин! столкнулся с проблемой ... даже не знаю..
    Что нужно для первого шага задуманной процедуры.. ПОЛУЧИТЬ ОБЪЕКТ ЭЛЕМЕНТА ВЫДЕЛЕННОЙ СТРОКИ ДИНАМИЧЕСКОГО СПИСКА!
    Я просто не могу понять почему это можно когда речь о получении одного элемента списка:
    Код:
    СписокИмя="Список"; ЭлементСписка = Элементы[СписокИмя].ТекущаяСтрока; Предупреждение(ЭлементСписка);
    А почему целая проблема когда нужно получить объекты несколько выделенных элементов уже в цикле.
    Код:
    СписокИмя="Список";
    ВыделенныеСтроки = Элементы[СписокИмя].ВыделенныеСтроки;
    Для каждого СтрокаСписка Из ВыделенныеСтроки Цикл
    ЭлементСписка=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка);
    Сообщить(ЭлементСписка);
    КонецЦикла;
    И самое не понятное, что бы получить не объект элемента, а просто значение реквизита можно сделать так:
    Код:
    ЭлементСписка=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка)["ИмяРеквизита"];
    Только в случае если это список справочника, то можно указать любой реквизит наименование, код и т.д.
    Но в случае, если список документов то, стоит только указать реквизит возврата на пример номер то выдает кляузу. И вообще на какие то определенные реквизиты реагирует нормально. А на какие то ревет.
    Дур-дом ... т.е. платформе не все реквизиты по вкусу, что ли :):) ? .. одурею.
    Поэтому ни в какую... А нужно элементарное... Просто получить объекты выделенных элементов списка. А уже полом сам знаю как получить нужные значения реквизитов полученных объектов списка.
    Конечно для этого есть команда ПолучитьОбъект(), но она для сервера.
    И что понять не могу, почему если список справочника все без проблем, а если документа то выдает кляузу. Тогда как и тот и другой это динамический список.
    Поэтому как получить объекты? Может что то не учел. И может капризной среде нужен на пример какой то индекс ... вообщем не знаю.
    Поэтому это уже не просто просьба а крик о помощи!
    Буду очень очень очень очень признателен!
  2. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.252
    Симпатии:
    100
    Баллы:
    104
    Т.е. в списке справочника у вас получилось?
    Вообще для этого используется "ВыделенныеСтроки". Там массив строк будет - его и разбирайте.
    GiGi нравится это.
  3. TopicStarter Overlay
    GiGi
    Offline

    GiGi

    Регистрация:
    7 мар 2017
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Да получилось.. вот таким макаром
    Код:
    СписокИмя="Список";
    ВыделенныеСтроки = Элементы[СписокИмя].ВыделенныеСтроки;
    Для каждого СтрокаСписка Из ВыделенныеСтроки Цикл
    ЭлементКод=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка).код;
    ЭлементИмя=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка).Наименование;
    Сообщить(ЭлементИмя+" - "+ЭлементКод);
    КонецЦикла;
    В том и дело, что в выше указанном коде он используется, но для списка документов возникает кляуза.
    Я просто не знаю "Разбирайте" что имеется ввиду.... и как разбирать В указном цикле он и разбирается.
    Просто кляузничает если список документа. Ну на пример если так
    Код:
    ЭлементНомер=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка).Номер;
    Тут же ревет о том, что "Поле объекта не обнаружено (Номер)"
    Ладно! Если так не хочет тогда без номера
    Код:
    ЭлементСписка_Объект=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка);
    Сообщить(ЭлементСписка_Объект);
    На что любезно но не без ехидства сообщает: "ДанныеФормыСтруктура". И ничего более.
    А нужно, что бы он выдавал список выделенных объектов (не по типу текста а просто ссылки или объекты). И так по всем тем выделенным элементам которых затрагивает цикл.
    Вот что нужно!
    Только не понятно как это сделать?
    Гуууууу ....
    Вообщем прощу и буду очень признателен!
    И если не трудно побольше конкретики и работающих примеров.
    Буду признателен!
    Последнее редактирование: 6 сен 2017

Поделиться этой страницей