Доброго времени суток. Я относительно недвно начал свой долгий путь 1сника. Столкнулся со следующей проблемой, буду рад, если кто поможет
Стоит следующая задача: есть запрос, который вытягивает данные номеров телефона у физлица и записывает их в массив.(мобильный, домашний и рабочий). В массиве, соответсвенно, 3 элемента. Если у физлица заполнены все телефоны, то все работает без проблем. Если же у человека отсутствует домашний телефон, тогда элемент массива должен быть пустым. Но что-то в коде не работает и элемент [1] имеет значение [2], и элемент 2 имеет пустое значени

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ФизическиеЛицаКонтактнаяИнформация.НомерТелефона КАК НомерТелефона
    |ИЗ
    | Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
    |ГДЕ
    | ФизическиеЛицаКонтактнаяИнформация.Ссылка.ИНН = &ИНН
    | И ФизическиеЛицаКонтактнаяИнформация.Тип = &Тип
    |
    |УПОРЯДОЧИТЬ ПО
    | ФизическиеЛицаКонтактнаяИнформация.НомерСтроки";

    Запрос.УстановитьПараметр("ИНН", ЭлементСписка.ИНН);
    Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.Телефон);
    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Телефоны = Новый Массив(3);
    Телефоны[0] = ";
    Телефоны[1] = ";
    Телефоны[2] = ";

    Счетчик = 0;
    Пока ВыборкаДетальныеЗаписи.Следующий() И Счетчик < 3 Цикл
    Телефоны[Счетчик] = ВыборкаДетальныеЗаписи.НомерТелефона;
    Счетчик = Счетчик + 1;
    КонецЦикла;

    Сообщить("Телефон1:" + Телефоны[0]);
    Сообщить("Телефон2:" + Телефоны[1]);
    Сообщить("Телефон3:" + Телефоны[2]);
```

В файлах прикрепленно визуальная проблема. Надеюсь, смогу решить)
---
Собственно, решение было следующее
Запросом вытягиваем номер телефона и вид.

```1c
    |ГДЕ
    | ФизическиеЛицаКонтактнаяИнформация.Ссылка.ИНН = &ИНН
    | И ФизическиеЛицаКонтактнаяИнформация.Тип = &Тип
```

Делаем такое условие.
Дальше,

```1c
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если ВыборкаДетальныеЗаписи.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица Тогда
    XML.ЗаписатьНачалоЭлемента("МобильныйТелефон");
    XML.ЗаписатьТекст(Строка(ВыборкаДетальныеЗаписи.НомерТелефона));
    XML.ЗаписатьКонецЭлемента();
    ИначеЕсли...
```

И получаем как результат запись в файле с названием телефона и его данными.
Спасибо всем, кто что-то предлагал!
---
Собственно, решение было следующее
Запросом вытягиваем номер телефона и вид.

```1c
    |ГДЕ
    | ФизическиеЛицаКонтактнаяИнформация.Ссылка.ИНН = &ИНН
    | И ФизическиеЛицаКонтактнаяИнформация.Тип = &Тип
```

Делаем такое условие.
Дальше,

```1c
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если ВыборкаДетальныеЗаписи.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица Тогда
    XML.ЗаписатьНачалоЭлемента("МобильныйТелефон");
    XML.ЗаписатьТекст(Строка(ВыборкаДетальныеЗаписи.НомерТелефона));
    XML.ЗаписатьКонецЭлемента();
    ИначеЕсли...
```

И получаем как результат запись в файле с названием телефона и его данными.
Спасибо всем, кто что-то предлагал!
---
То есть ты реально три раза запускаешь запрос??? Судя по условию "ГДЕ..."

PS. Главное - успеть свое говнорешение отметить как правильное. Гордость прям разрывает барабанные перепонки?
---
(23) я отметил это решение как правильное, потому что вижу единственный такой путь. если у тебя есть другой рабочий способ решения, то пожалуйста, присылай! я его отмечу
этот способ работает, может быть тяжелым, но работает!
---
То есть ты даже не заметил моего вопроса? Шикарно.
---
вопрос я вижу, про запуск трижды запроса.
я человек, который все это пока познает. запросы, как мне кажется, не такая уж и простая тема.
если ты видишь ошибку, то можешь сказать, как ее решить? как не запускать запрос 3 раза, а 1
---
А ты почитай вчерашние каменты полностью. Может натолкнет на мысль.
Вот эта хрень у тебя откуда? У тебя в запросе нет такого.

```1c
    Если ВыборкаДетальныеЗаписи.Вид
```
---
то есть предлагаешь сделать так:

```1c
    |ГДЕ
    |ФизическиеЛицаКонтактнаяИнформация.Ссылка.ИНН = &ИНН
```
---
У тебя так и было изначально. Какого хера ты потом добавил новое условие - я хз.
---
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ФизическиеЛицаКонтактнаяИнформация.НомерТелефона КАК НомерТелефона,
    | ФизическиеЛицаКонтактнаяИнформация.Вид КАК Вид
    |ИЗ
    | Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
    |ГДЕ
    | ФизическиеЛицаКонтактнаяИнформация.Ссылка.ИНН = &ИНН
```

это текст моего запроса. отсюда берется вид и проверяется его значение
---
Трудно, правда?
---
хорошо, нетрудно. но теперь он будет запускаться один раз или также 3?
---
Он вообще то не сам запускается.
---
хорошо, тогда может следует как-то изменить выборку?
---
Что тебя в ней смущает?
---
заменить пока на если? мб это что-то изменит
---
Хмм... А замени Пока на Возврат. Вдруг это что-то изменит?
---
А что ты хотел-то? В базе две записи. В результате запроса, соответственно, - тоже.
С чего вдруг твой цикл должен вторую запись из запроса заносить в третий элемент твоего массива?
---
я пишу код для выгрузки данных в xml. в моем понимании должно выгружаться 3 телефона, если какой-то из них не указан, то должна быть пустая строка.
я хочу, чтобы было примерно в таком формате:
Телефон1:82222222222
Телефон2:
Телефон3:83333333333
---
в моем понимании должно выгружаться 3 телефона Как ты своё личное понимание про три телефона объяснил базе, в которой нет третьего телефона?
Ну вот нет его!
---
хорошо, представим такую ситуацию: у физлица заполнен только домашний телефон. соответсвенно, я делаю xml элмент со значением этого телефона. Но как потом базе-приемнику объяснить, что это именно домашний телефон, а не рабочий?
в этом идет и вся загвостка...
я планировал, что в xml будет 3 элемента с номерами телефона, которые есть. и уже при чтении определенного узла брался нужный номер
---
А как ты собирался до этого в базе приёмника определять тип телефона?
---
я думал так:
<Телефон1> 81111111111</Телефон1>
<Телефон2> 81111111112</Телефон2>
<Телефон3> 81111111122</Телефон3>
где телефон1 - мобильный, 2-домашний, 3 - рабочий
писать код для базы-приемника пока не пробовал. считаю, что надо сначала это довести до ума
---
С чего ты вдруг так решил, что под номером 1 будет именно рабочий и так далее?
Ты как то это обеспечил, или надеешься, что запрос сам выдаст тебе номера в нужном тебе порядке?
---
получается, что надеился)
может вы видите какое-то решение?
---
Нет решения, поверь мне.
Всё тлен.
Жизнь боль.
---
цифры я поставил для удобства
вопрос больше стоит в том, как правильно поставить тэги, чтобы они соответствовали значению омера
---
Да это вообще не вопрос. Рабочему телефону поставь тег "#рабочий", например.
---
(15)
хорошо, сделать теги "рабочий" и тп проблемы нет. я не вижу решения, как сделать так, чтобы в значение этот тега вносился именно этот телефон. видимо, моих знаний пока не хватает для этого...
возможно, стоит сделать 3 разных запроса, и где-то как условие указать, что это рабочий и тп
---
Что мешает сделать в одном?
---
Но как потом базе-приемнику объяснить, что это именно домашний телефон, а не рабочий?

По виду контактной информации?

```1c
    Справочники.ВидыКонтактнойИнформации.ТелефонДомашнийФизическиеЛица
    Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица
    Справочники.ВидыКонтактнойИнформации.ТелефонРабочийФизическиеЛица
```
---
скорее всего так и буду, надо будет посмотреть
но все равно стоит вопрос, как сделать так, чтобы у выгруженного телефона был его статус(домашний и тп)
---
О! Наблюдаю шевеление извилин!
Это радует.
---
выгрузить вместе со значением номера его вид, не?
---
Ну что ты! Я так ждал, что человек сам дойдет до того, что в запросе, однако, можно выгружать несколько полей.
Ну да ладно. Ему все равно еще разбираться - что это за поля, как их интерпретировать, и что с ними потом делать.
А потом "еще полдня бегать, чтобы фотографию отдать".
---
....ему еще делать так, чтобы в XML номера были в нужном ему порядке :)
---
... а мы ему потом четвертый вид номера в карточку добавим!