Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 мар 2024, 09:46

Выбор Элемента Массива (Не по индексу)

Автор NIL, 08 ноя 2016, 14:06

0 Пользователей и 1 гость просматривают эту тему.

NIL

У контрагента есть Контактная информация ( см. РИС.1)
Подскажите кто знает как получить элемент массива не по его индексу, а по другому условию допустим как в моем случае по виду информации.
Может есть какой нибудь отбор по Вид "Директор Контрагента" чтобы искало строку с таким значением Вида ( см РИС.2 ).
Пробовал КотрагентП.КонтактнаяИнформация.НайтиПоЗначению("Директор Контрагента");, но то ли я не правильно оформил или вообще не туда пошел я только учусь.
На данный момент у меня так КотрагентП.КонтактнаяИнформация[2].Преставление; (См. РИС.3) и вроде все работает, но все равно какая то фигня.
Если массив изменится станет больше или еще хуже меньше, то будет ошибка так как у контрагентов бывают не 3 поля заполнены. Мне нужна именно строка "Директор Контрагента".



РИС.1
РИС.2
РИС.3

LexaK

используйте поиск, вот пример.

лкПоиск = Новый Структура("Тип, Вид", лкСтр.Тип, лкСтр.Вид);
лкСтроки = лкКонтрагент.КонтактнаяИнформация.НайтиСтроки(лкПоиск);

если помогло нажмите: Спасибо!

NIL

ПараметрыОтбора = Новый Структура("Вид");
ПараметрыОтбора.Вставить("Вид", "Директор Контрагента");
СтрокаДиректора = КонтрагентП.КонтактнаяИнформация.НайтиСтроки(ПараметрыОтбора);

Попробовал так, но значение пустое. Будем думать дальше. Спасибо буду знать хоть в каком направлении.

Kironten

Цитата: NIL от 08 ноя 2016, 16:45
ПараметрыОтбора = Новый Структура("Вид");
ПараметрыОтбора.Вставить("Вид", "Директор Контрагента");
СтрокаДиректора = КонтрагентП.КонтактнаяИнформация.НайтиСтроки(ПараметрыОтбора);

Попробовал так, но значение пустое. Будем думать дальше. Спасибо буду знать хоть в каком направлении.
ну вид то наверно не строка, а элемент справочника/перечисления?

NIL

Вид - это реквизит справочника Контрагенты. Тип - СправочникСсылка.ВидыКонтактнойИнформации. Подскажите как мне оформить?
лкПоиск = Новый Структура("Тип, Вид", лкСтр.Тип, лкСтр.Вид); Что это за переменные откуда они взялись?

cska-fanat-kz

Цитата: NIL от 09 ноя 2016, 08:32Вид - это реквизит справочника Контрагенты. Тип - СправочникСсылка.ВидыКонтактнойИнформации

Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации
Вид - СправочникСсылка.ВидыКонтактнойИнформации
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

NIL

Вот так вот получилось сделать, может кому пригодится долго сам разбирался :lol: Даже при наличии примеров.
ПараметрыОтбора = Новый Структура();      //Создаем новую структуру
ПараметрыОтбора.Вставить("Вид", Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Директор Контрагента"));
                                         // Как я понял  если значение обьект. Нужна ссылка на тип обьекта в базе н, то есть указать тип элемента.
МассивВид = КонтрагентП.КонтактнаяИнформация.НайтиСтроки(ПараметрыОтбора);    //получаем массив с найденной строкой
ИмяДиректора = МассивВид
  • .[/color]Представление;[/color]    //так как у массива 1 строчка обращаемся через индекс 0
    Насчет 4-ой строки не уверен опять индекс может можно как нибудь по другому получить?



    Всем кто помогал СПАСИБО жмакал

Теги: Массив 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск