8.х Как получить картинку из коллекции по индексу?

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем mai, 23 июл 2009.

  1. TopicStarter Overlay
    mai
    Offline

    mai

    Регистрация:
    4 авг 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    В Общих картинках лежит коллекция картинок. Хотелось бы поместить эти картинки в список значений, чтобы иметь возможность выбрать нужную. Наименования картинок неизвестны, поэтому выбирать картинки из коллекции нужно по их индексу - номеру в коллекции.
    Гуру, подскажите, пожалуйста, как это сделать?
  2. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Насколько мне известно - БиблиотекаКартинок не имеет возможности получать значения по индексу. Так же как и итератор для данного объекта не задан. Подозреваю, что сделать что либо здесь можно только зная названия картинок.

    Надеюсь, что ошибаюсь, и буду признателен за пример получения картинки без знания ее имени.
  3. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Вот так по крайней мере можем получить названия:
    Код:
    	спКарт = Метаданные.ОбщиеКартинки;
    Для каждого карт из спКарт Цикл
    Сообщить(Карт.Имя);
    КонецЦикла;
    
    
  4. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    А вот так можно их получать и устанавливать, зная имена, либо индексы..

    Код:
    	спКарт = Метаданные.ОбщиеКартинки;
    
    КартинкаОбъект = спКарт.Получить(2);
    
    ЭлементыФормы.ПолеКартинки.Картинка = БиблиотекаКартинок[КартинкаОбъект.Имя];
    
    
  5. TopicStarter Overlay
    mai
    Offline

    mai

    Регистрация:
    4 авг 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Тут картинка получается по имени, а не по индексу. Индексов у коллекции картинок нет.
  6. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Я в курсе. :unsure:

    Чем Вас не устраивает такой вариант?

    Код:
    КартинкаОбъект = спКарт.Получить( <Индекс>);
    
    
    По поводу невозможности получать по индексу из коллекции непосредственно Вам ответили во втором посте.
  7. TopicStarter Overlay
    mai
    Offline

    mai

    Регистрация:
    4 авг 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Так мы получим имя библиотеки картинок.
    А как получить имя картинки из библиотеки?
  8. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Вы имеете ввиду объект БиблиотекаКартинок?
  9. TopicStarter Overlay
    mai
    Offline

    mai

    Регистрация:
    4 авг 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Я имею в виду Общую картинку, являющуюся коллекцией картинок
  10. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    кхм, вот этим кодом:
    Код:
    спКарт = Метаданные.ОбщиеКартинки;
    Для каждого карт из спКарт Цикл
    Сообщить(Карт.Имя);
    КонецЦикла;
    
    
    Мы получим имена общих картинок в конфигурации. В дальнейшем к этим картинкам можно будет обратится - пересмотрите примеры приведенные LxS там все очень наглядно. В приложении я положил пример из одного проекта. Надеюсь уловите смысл работы. Если нет - спрашивайте, попробуем разъяснить.

    Вложения:

  11. TopicStarter Overlay
    mai
    Offline

    mai

    Регистрация:
    4 авг 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Спасибо за пример.
    Но он, опять же, получает список общих картинок, содержащих коллекции картинок.
    А мне надо выбрать картинку из такой коллекции.
    Дали решение в
    http://www.forum.mista.ru/topic.php?id=421514
    но оно кривоватое (или я туплю)

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