В РегистрСведений.СобытияОС может быть три даты с одинаковым полем ИнвНомер и тремя разными полями Событие: "Принятие к учету", "Ввод в эксплуатацию" и "Списание". Обязательно присутствуют первые два, "Списание" может не быть.

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | СобытияОС.ДатаСобытия КАК Принятокучету
    |ИЗ
    | РегистрСведений.СобытияОС КАК СобытияОС
    |ГДЕ
    | СобытияОС.ИнвНомер.Ссылка = &СобИнвНомер
    | И СобытияОС.Событие = &Событие1
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | СобытияОС.ДатаСобытия КАК Списание
    |ИЗ
    | РегистрСведений.СобытияОС КАК СобытияОС
    |ГДЕ
    | СобытияОС.ИнвНомер.Ссылка = &СобИнвНомер
    | И СобытияОС.Событие = &Событие2";

    Запрос.УстановитьПараметр("СобИнвНомер", ВыбранноеЗначение);
    Запрос.УстановитьПараметр("Событие1", "Принятие к учету");
    Запрос.УстановитьПараметр("Событие2", "Списание");

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

    Пока Выборка.Следующий() Цикл
    ДатаПринятияКУчету = Выборка.Принятокучету;
    ДатаСнятияСУчета = Выборка.Списание;
    КонецЦикла;
```

В результате ДатаПринятияКУчету и ДатаСнятияСУчета - пустые поля.
---
1)

```1c
    Запрос.УстановитьПараметр("Событие1", "Принятие к учету");
    Запрос.УстановитьПараметр("Событие2", "Списание");
```

В качестве параметра вы передаете тип строку посмотрите в регистре какого типа поле Событие и передайте правильные значения в параметр

2) Сам текст запроса составлен некорректно 2 побзапроса никак не объединены поэтому необходимо использовать вместо Выполнить() - ВыполнитьПакет() и каждый результат подзапросов обходить отдельно
---
```1c
    Запрос.УстановитьПараметр("Событие1", Перечисления.ВидыСобытияОС.ПринятияКУчету);
```
---
Давайте попробуем ещё раз. Копируйте, вставляйте у себя и пишите тут, что у Вас не сработало:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | СобытияОСПринятоКУчету.ДатаСобытия КАК ПринятоКУчету,
    | СобытияОССнятосУчета.ДатаСобытия КАК СнятоСУчета
    |ИЗ
    | РегистрСведений.СобытияОС КАК СобытияОСПринятоКУчету
    |Внутреннее соединение РегистрСведений.СобытияОС КАК СобытияОССнятосУчета
    | ПО
    | СобытияОСПринятоКУчету.ИнвНомер = &СобИнвНомер
    | И СобытияОСПринятоКУчету.Событие = &Событие1
    | И СобытияОССнятосУчета.ИнвНомер = &СобИнвНомер
    | И СобытияОССнятосУчета.Событие = &Событие2
    | ";

    Запрос.УстановитьПараметр("СобИнвНомер", ВыбранноеЗначение);
    Запрос.УстановитьПараметр("Событие1", Перечисления.ВидыСобытияОС.ПринятияКУчету);
    Запрос.УстановитьПараметр("Событие2", Перечисления.ВидыСобытияОС.Списание);

    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Количество()>1 Тогда
    СтрСоо="Запрос вернул более одной строки. Что-то пошло не так!!!";
    Сообщить(СтрСоо);
    КонецЕсли;
    Если Выборка.Следующий() Тогда
    ДатаПринятияКУчету = Выборка.ПринятоКУчету;
    ДатаСнятияСУчета = Выборка.СнятоСУчета;
    Иначе
    СтрСоо="Запрос ничего не вернул!!!";
    Сообщить(СтрСоо);
    КонецЕсли;
```
---
Ага, понятно. Тогда надо использовать левое соединение. И для получения ПринятоКУчету вынести условие в где. Получится вот такой текст запроса:

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | СобытияОСПринятоКУчету.ДатаСобытия КАК ПринятоКУчету,
    | ЕСТЬNULL(СобытияОССнятосУчета.ДатаСобытия,ДАТАВРЕМЯ(1,1,1)) КАК СнятоСУчета
    |ИЗ
    | РегистрСведений.СобытияОС КАК СобытияОСПринятоКУчету
    |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СобытияОС КАК СобытияОССнятосУчета
    | ПО СобытияОССнятосУчета.ИнвНомер = &СобИнвНомер
    | И СобытияОССнятосУчета.Событие = &Событие2
    |ГДЕ
    | СобытияОСПринятоКУчету.ИнвНомер = &СобИнвНомер
    | И СобытияОСПринятоКУчету.Событие = &Событие1
    | ";
```
---
В результате ДатаПринятияКУчету и ДатаСнятияСУчета - пустые поля.
Это еще "повезло", что для данного "СобИнвНомер" не было списания.
В данном случае имеется пакет запросов.
И выполняется/обрабатывается последний, тот что списания отбирает.
Если нет списания, то и запрос будет пустой и в цикл Пока Выборка.Следующий() просто не заходит.
---
Списание есть, специально выбираю инвномер где есть все три варианта
---
Он и без пакета почему то не работает, когда только первая часть где Событие1
---
СобытияОС.ИнвНомер.Ссылка = &СобИнвНомер
требует ссылку, а передается число. Условие никогда не выполняется. Запрос возвращается пустой.
В цикл не заходит.
Если переделать на правильное условие и все же зайдет в цикл, то выдаст ошибку, что поле Принятокучету не найдено. Это при условии первоначального пакета запросов.
---
И выполняется/обрабатывается последний, тот что списания отбирает.
Как сделать чтобы обрабатывались оба запроса ?
---
судя по циклу нужна не отдельная их обработка. Тогда пакет запроса не нужен. Нужно объединение запросов.
---
А какого типа у вас реквизит Событие? Точно строка? Или таки СправочникСсылка.СобытияОС?
---
ПеречислениеСсылка.ВидыСобытийОС
---
Тогда какого....передаете строку? Думаете само найдется?
---
везде здесь ошибка. Автору запроса было бы очень полезно немного подучиться - понять, что такое база данных, как она устроена, как к ней пишутся запросы. Для этого лучше брать какой-нибудь курс по базам данных и языку SQL, а не по 1с. Т.к. 1с этому не учит принципиально. Хорошей книжки будет достаточно.

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

```1c
    Запрос.УстановитьПараметр("Событие1", "Принятие к учету");
    Запрос.УстановитьПараметр("Событие2", "Списание");
```

В качестве параметра вы передаете тип строку посмотрите в регистре какого типа поле Событие и передайте правильные значения в параметр

2) Сам текст запроса составлен некорректно 2 побзапроса никак не объединены поэтому необходимо использовать вместо Выполнить() - ВыполнитьПакет() и каждый результат подзапросов обходить отдельно
---
Событие - ПеречислениеСсылка.ВидыСобытийОС. Как правильно передать его в параметр?
---
```1c
    Запрос.УстановитьПараметр("Событие1", Перечисления.ВидыСобытияОС.ПринятияКУчету);
```
---
Скорее всего таки Перечисления.ВидыСобытияОС.ПринятиЕКУчету
---
Наверно, писал по памяти. мог ошибиться , главное смысл показать
---
Да я не в претензии. Просто, судя по вопросам топикстартера, он не догадается скопировать нужное значение в конфигураторе, а просто скопирует отсюда и опять обломится.
---
Не ну до этого уж он догадается. Разве только по невнимательности не заметит
---
Это не первая тема, где автор демонстрирует пробелы в знаниях элементарных вещей. Прогресса пока не видно:
https://forum.infostart.ru/forum9/topic183004/
---
Когда вы писали свои первые запросы много прогресса у вас было видно за один день?
---
я Вам всё сделал. Вам осталось только скопировать -вставить текст запроса. Если я правильно понял, то Вы этого не смогли. Почему?
Повторяю текст запроса:

```1c
    ВЫБРАТЬ
    СобытияОСПринятоКУчету.ДатаСобытия КАК Принятокучету,
    СобытияОССнятосУчета.ДатаСобытия КАК Снятосучета
    ИЗ
    РегистрСведений.СобытияОС КАК СобытияОСПринятоКУчету
    Внутреннее соединение РегистрСведений.СобытияОС КАК СобытияОССнятосУчета
    ПО
    СобытияОСПринятоКУчету.ИнвНомер = &СобИнвНомер
    И СобытияОСПринятоКУчету.Событие = &Событие1
    И СобытияОССнятосУчета.ИнвНомер = &СобИнвНомер
    И СобытияОССнятосУчета.Событие = &Событие2
```
---
Банально не разобрался с параметрами, а потом завяз в куче других ответов
---
А если по этой теме, то вы используете пакет запросов. Пакет формирует несколько таблиц.
Командой же выполнить() берется только последний. Там у Вас списание. А Вы пытаетесь получить и Принятокучету. Должна быть ошибка. Раз ошибки нет, значит условие Выборка.Следующий() не срабатывает, то есть Ваш запрос возвращает пустоту.

Для получения результата пакетов необходимо использовать ВыполнитьПакет(), который возвращает массив результатов. Вот полученный массив и необходимо обрабатывать.
---
Давайте попробуем ещё раз. Копируйте, вставляйте у себя и пишите тут, что у Вас не сработало:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | СобытияОСПринятоКУчету.ДатаСобытия КАК ПринятоКУчету,
    | СобытияОССнятосУчета.ДатаСобытия КАК СнятоСУчета
    |ИЗ
    | РегистрСведений.СобытияОС КАК СобытияОСПринятоКУчету
    |Внутреннее соединение РегистрСведений.СобытияОС КАК СобытияОССнятосУчета
    | ПО
    | СобытияОСПринятоКУчету.ИнвНомер = &СобИнвНомер
    | И СобытияОСПринятоКУчету.Событие = &Событие1
    | И СобытияОССнятосУчета.ИнвНомер = &СобИнвНомер
    | И СобытияОССнятосУчета.Событие = &Событие2
    | ";

    Запрос.УстановитьПараметр("СобИнвНомер", ВыбранноеЗначение);
    Запрос.УстановитьПараметр("Событие1", Перечисления.ВидыСобытияОС.ПринятияКУчету);
    Запрос.УстановитьПараметр("Событие2", Перечисления.ВидыСобытияОС.Списание);

    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Количество()>1 Тогда
    СтрСоо="Запрос вернул более одной строки. Что-то пошло не так!!!";
    Сообщить(СтрСоо);
    КонецЕсли;
    Если Выборка.Следующий() Тогда
    ДатаПринятияКУчету = Выборка.ПринятоКУчету;
    ДатаСнятияСУчета = Выборка.СнятоСУчета;
    Иначе
    СтрСоо="Запрос ничего не вернул!!!";
    Сообщить(СтрСоо);
    КонецЕсли;
```
---
если у данного элемента не было списания, то будет: "Запрос ничего не вернул!!!".
---
Если есть принятие и снятие выводит две даты как нужно. Если есть только принятие - Запрос ничего не вернул!!!, но в этом случае должна выводится дата принятия, а списание оставаться пустой.
---
Ага, понятно. Тогда надо использовать левое соединение. И для получения ПринятоКУчету вынести условие в где. Получится вот такой текст запроса:

```1c
    Запрос.Текст = "ВЫБРАТЬ
    | СобытияОСПринятоКУчету.ДатаСобытия КАК ПринятоКУчету,
    | ЕСТЬNULL(СобытияОССнятосУчета.ДатаСобытия,ДАТАВРЕМЯ(1,1,1)) КАК СнятоСУчета
    |ИЗ
    | РегистрСведений.СобытияОС КАК СобытияОСПринятоКУчету
    |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СобытияОС КАК СобытияОССнятосУчета
    | ПО СобытияОССнятосУчета.ИнвНомер = &СобИнвНомер
    | И СобытияОССнятосУчета.Событие = &Событие2
    |ГДЕ
    | СобытияОСПринятоКУчету.ИнвНомер = &СобИнвНомер
    | И СобытияОСПринятоКУчету.Событие = &Событие1
    | ";
```
---
Первое Если и Иначе больше не нужны?
---
Да. можно удалять.