Нужен текст запроса: Надо написать запрос - собрать документы реализации товаров и услуг за определенный период. Необходимо в результате запроса получить документы и руководителей по организациям в данных документах на дату документов. Руководителя брать из регистра сведений Ответственные лица организаций.
Я написал такой код, правильно ли я решил?

```1c
    Функция Результат()

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

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

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

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    КонецЦикла;

    КонецФункции // Результат()
```
---
Примерно так и сделал! Правда времени много понадобилось, чтобы осознать.. То ли я устал, то ли реально туго думаю...

```1c
    ВЫБРАТЬ
    РеализацияТоваровИУслуг.Дата КАК ДатаПродажи,
    РеализацияТоваровИУслуг.Ссылка КАК Ссылка
    ПОМЕСТИТЬ ДатыПродаж
    ИЗ
    Документ.РеализацияТоваровИУслуг КАК РеализацияТоваровИУслуг
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ДатыПродаж.ДатаПродажи КАК ДатаПродажи,
    МАКСИМУМ(ОтветственныеЛицаОрганизаций.Период) КАК Период,
    ДатыПродаж.Ссылка КАК Ссылка
    ПОМЕСТИТЬ ВТ_ДатыДействия
    ИЗ
    ДатыПродаж КАК ДатыПродаж
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛицаОрганизаций КАК ОтветственныеЛицаОрганизаций
    ПО (ОтветственныеЛицаОрганизаций.Период <= ДатыПродаж.ДатаПродажи)

    СГРУППИРОВАТЬ ПО
    ДатыПродаж.ДатаПродажи,
    ДатыПродаж.Ссылка
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_ДатыДействия.Ссылка КАК Ссылка,
    ОтветственныеЛицаОрганизаций.ФизическоеЛицо КАК ФизическоеЛицо
    ИЗ
    ВТ_ДатыДействия КАК ВТ_ДатыДействия
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛицаОрганизаций КАК ОтветственныеЛицаОрганизаций
    ПО (ВТ_ДатыДействия.Период = ОтветственныеЛицаОрганизаций.Период)
```
---
Странная пометка о том, что не запускаете клиента. но одно на вскидку могу сказать что не верно:

 ВТ.Ссылка.Дата = ОтветственныеЛицаОрганизацийСрезПоследних.Период

дата в регистре не всегда будет равна дате документа)
Думаю нужно делать что-то типа ">=" т.к. дата документа может быть больше чем дата назначения руководителя.
Так же, думаю в РС хранятся не только руководители, но и прочие типы ответственных лиц, это бы тоже проверить и добавить условие отбора, ведь если в РС будет Иванов И.И. сначала кладовщиком, потом Руководителем, то вы получите его в разных ипостасях с разными документами...
Так что думаю есть еще над чем подумать....
---
Вот именно. Суть задачи в том, чтобы понять, как работать со срезом последних. Надо выбрать срез так, чтобы он был на дату документа. Это ключевое условие, я так полагаю.
---
забудьте про срез последних. В данной задаче он не может использоваться.
Далее, во временной таблице получаете все записи документов, и только в итоговом отсекаете лишнее. Это сразу минус.

Решение должно быть в таком ключе:
Используя физическую таблицу регистра выбираете максимум периода , когда дата документа >= значения периода и группируете по ссылке документа. помещаете это во временную таблицу.
Далее соединяете временную таблицу еще раз с физической таблицей регистра и уже по равенству периодов. Вот по этому соединению и выбирает физлиц.
---
Примерно так и сделал! Правда времени много понадобилось, чтобы осознать.. То ли я устал, то ли реально туго думаю...

```1c
    ВЫБРАТЬ
    РеализацияТоваровИУслуг.Дата КАК ДатаПродажи,
    РеализацияТоваровИУслуг.Ссылка КАК Ссылка
    ПОМЕСТИТЬ ДатыПродаж
    ИЗ
    Документ.РеализацияТоваровИУслуг КАК РеализацияТоваровИУслуг
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ДатыПродаж.ДатаПродажи КАК ДатаПродажи,
    МАКСИМУМ(ОтветственныеЛицаОрганизаций.Период) КАК Период,
    ДатыПродаж.Ссылка КАК Ссылка
    ПОМЕСТИТЬ ВТ_ДатыДействия
    ИЗ
    ДатыПродаж КАК ДатыПродаж
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛицаОрганизаций КАК ОтветственныеЛицаОрганизаций
    ПО (ОтветственныеЛицаОрганизаций.Период <= ДатыПродаж.ДатаПродажи)

    СГРУППИРОВАТЬ ПО
    ДатыПродаж.ДатаПродажи,
    ДатыПродаж.Ссылка
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_ДатыДействия.Ссылка КАК Ссылка,
    ОтветственныеЛицаОрганизаций.ФизическоеЛицо КАК ФизическоеЛицо
    ИЗ
    ВТ_ДатыДействия КАК ВТ_ДатыДействия
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛицаОрганизаций КАК ОтветственныеЛицаОрганизаций
    ПО (ВТ_ДатыДействия.Период = ОтветственныеЛицаОрганизаций.Период)
```
---
```1c
    ВЫБРАТЬ
    ОтветственныеЛицаОрганизаций.Период,
    ОтветственныеЛицаОрганизаций.ФизическоеЛицо
    ПОМЕСТИТЬ вт_руководители
    ИЗ
    РегистрСведений.ОтветственныеЛицаОрганизаций КАК ОтветственныеЛицаОрганизаций
    ГДЕ
    ОтветственныеЛицаОрганизаций.ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель)
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    МАКСИМУМ(ОтветственныеЛицаОрганизаций.Период) КАК Период
    ПОМЕСТИТЬ вт_доки
    ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    ЛЕВОЕ СОЕДИНЕНИЕ вт_руководители КАК ОтветственныеЛицаОрганизаций
    ПО ОтветственныеЛицаОрганизаций.Период <= РеализацияТоваровУслуг.Дата

    СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслуг.Ссылка,
    РеализацияТоваровУслуг.Дата
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    вт_доки.Ссылка,
    ОтветственныеЛицаОрганизаций.ФизическоеЛицо КАК Руководитель
    ИЗ
    вт_доки КАК вт_доки
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ вт_руководители КАК ОтветственныеЛицаОрганизаций
    ПО вт_доки.Период = ОтветственныеЛицаОрганизаций.Период
```
---
Вы не запускаете в режиме предприятия? Как планируете использователь свой код? Может ради исключения запустите в режиме отладки и протестируете что получается? Не зная конфигурации, очень сложно на глазок сказать будет работать или нет.
---
Да я запускаю. Только не тот результат. Не могу понять, как сделать.
---
если вы приравниваете дату документа дате записи в регистре, то, вы получите руководителя только в тех документах, в которых дата документа совпадает с датой записи в регистре.
Так что думаю, что задача понята не верно, либо, если все же правильно, то бегите от такого учителя, ведь прикладного смысла в этой задаче нет ни какого....

А вообще поясню:
Срез последних на дату документа = Последняя ДЕЙСТВУЮЩАЯ запись на дату документа, это значит что нужно получить последнюю запись которая соответствует условию: "СсылкаДок.Дата >= РС.Дата", таким образом, вы получите для каждого документа последнюю ДЕЙСТВУЮЩУЮ запись на дату документа.
---
1. Задача понятна верно, потому что она сформулирована и поставлена в письменном виде.
2. Это не учитель, это был вопрос на собеседовании, которое я провалил. Выполняю работу над ошибками.
3. Бежать я от них не буду, а только к ним =)))
4. Я понимаю, что срез последних - это последняя действующая запись на дату документа.

Попробовал вот так - тоже не тот результат:

```1c
    ВЫБРАТЬ
    РеализацияТоваровИУслуг.Ссылка КАК Ссылка,
    РеализацияТоваровИУслуг.Дата КАК Дата
    ПОМЕСТИТЬ ВТ
    ИЗ
    Документ.РеализацияТоваровИУслуг КАК РеализацияТоваровИУслуг
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ.Ссылка КАК Ссылка,
    ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо
    ИЗ
    ВТ КАК ВТ
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних КАК ОтветственныеЛицаОрганизацийСрезПоследних
    ПО (ВТ.Дата >= ОтветственныеЛицаОрганизацийСрезПоследних.Период)
```
---
Думаю в результате такого запроса вы получите на каждый документ несколько результатов:
Док1 - Иванов
Док1 - Петров
и т.д. до тех пор пока не будут перечислены все руководители с датами меньше даты документа.

Помимо левого соединения нужно делать еще отборы...
В документе может быть ответственный, и он может быть в подчинении определенного руководителя, может быть в регистре есть значение, работает ли этот руководитель или нет, может быть есть запись об увольнении.... нужен ключ связи помимо даты
---
решений этой задачи в инете гигабайты уже. Срез последних на каждую дату. Приведенный код неправильный.
Но лучше начать с учебника по языку запросов SQL, очень полезно будет.
---
Пока получилось вот так. То ли ещё одну временную таблицу делать, то ли группирую неверно.
---
так это учебное что-то
спроси у преподавателя, зря он деньги получает что ли. Смысл искать готовое решение учебных задач? ничему ж не научишься...
направление в целом правильное, осталось уже немного...
---
Если это собеседование, то вероятно от вас хотели, чтобы ссылки на документы вы выбирали из оборотов РН Выручка и себестоимость продаж. И если там реально условие по типу документа, то с условием "ГДЕ РН.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг".
(11) ВНУТРЕННЕЕ СОЕДИНЕНИЕ отсечет реализации, если по каким-то причинам ответственные лица по организации не заданы.
---
ничего не отсечется, будет реализация и пустой руководитель.
---
Проверьте сначала.
---
рекомендую вам внимательно посмотреть код, особенно по каким полям идет внутреннее соединение. Это не дата реализации.
---
рекомендую вам внимательно посмотреть мой пост. Если первый запрос вернет пустой результат?
---
из разрада "если бы бабка была дедкой". А если реализаций ни одной нет? А если 1С не запустится?
Решение задачи построено на основании первичных данных, а именно наличия реализаций и ответственных лиц.
---
посмотреть мой пост ваше высказывание если по каким-то причинам ответственные лица по организации не заданы я прочитал как наличие "пустых" записей в регистре сведений (дата есть, а ответственного нет). И ответил что в таком случае ничего не отсечется.