Приветствую ув. форумчане!

Не получается составить запрос продаж за период. Нужно выбрать из Реализации ТМЗ и Возврат ТМЗ от покупателя. Чтобы на выходе получилась таблица как в прикрепленном файле файле.

P.S. Так же если будут идеи, подскажите:
- Какие данные выгружаются в колонки: "OutletID", "TAID", "OperationID"
- Как можно в запросе получить ID документа?
---
Возможно ли в запросе получить дату документа в формате?
Не нужно так делать. Обрабатывайте дату после получения данных запроса. Или, как вариант, используйте СКД, что - по сути - то же самое.

(4) И по поводу UID, как можно к запросу прикрутить?
Никак. В вашем случае после получения результатов и выборки данных ....РегистраторСсылка.УникальныйИдентификатор() ;

(4)Пытаюсь получить код автора документа
Вы его и получаете. А вот почему там имена хранятся - тут вопрос к разработчикам конфигурации. Значит так и задумано :)
---
Свой пост (16) поспешил выложить.
Предлагаю вместо

```1c
    + ВыборкаПродажи.Год + ВыборкаПродажи.Месяц + ВыборкаПродажи.День
```

Код

```1c
    + Формат(ВыборкаПродажи.Дата, "ДФ=ггММдд")
```
---
Не получается составить запрос
Простой запрос к регистру продаж...
Что не получается то?
Какие данные выгружаются в колонки Это спросите у постановщика задания...
Как можно в запросе получить ID документа
Никак...
Только перебором результата в цикле и получением ИД для ссылки.
PS Вы даже платформу не озвучили.
Судя по Реализации ТМЗ, не 77 ли?
---
Можно выбирать поля из табличных частей документов и объединять.
"OutletID", "TAID", "OperationID" ищите эти поля в документах.
ID в запросе не получишь (если точнее - не получишь представление в виде ID). Нужна постобработка.
Запрос элементарный. У вас не должно быть сложностей с ним. Открываете конструктор запроса и вперед.
---
Возможно ли в запросе получить дату документа в формате?

```1c
    20170123
```

И по поводу UID, как можно к запросу прикрутить?

Пытаюсь получить код автора документа:

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

Но получаю имя автора:

Как получить код?
---
Возможно ли в запросе получить дату документа в формате?
Не нужно так делать. Обрабатывайте дату после получения данных запроса. Или, как вариант, используйте СКД, что - по сути - то же самое.

(4) И по поводу UID, как можно к запросу прикрутить?
Никак. В вашем случае после получения результатов и выборки данных ....РегистраторСсылка.УникальныйИдентификатор() ;

(4)Пытаюсь получить код автора документа
Вы его и получаете. А вот почему там имена хранятся - тут вопрос к разработчикам конфигурации. Значит так и задумано :)
---
Не нужно так делать. Обрабатывайте дату после получения данных запроса. Или, как вариант, используйте СКД, что - по сути - то же самое.
А можно ли пример? У меня в этом то месте и затык. Надо ещё и время откинуть.
(5) Вы его и получаете. А вот почему там имена хранятся - тут вопрос к разработчикам конфигурации. Значит так и задумано :)На самом деле автор ведь берется из справочника Пользователи (Сотрудники)? Там с кодом все нормально.
---
На самом деле автор ведь берется из справочника Пользователи (Сотрудники)? Там с кодом все нормально.
Наверняка везде с кодами все нормально :) В любом случае вы получаете Код значения реквизита "Автор". А как интерпретировать полученные данные - решать вам. Кодом может быть любая информация. Чем в смысловом плане имя автора документа хуже условного порядкового номера элемента справочника? Думаю, что разницы никакой. Все зависит от принятой логики работы программы.
---
А можно ли пример? У меня в этом то месте и затык. Надо ещё и время откинуть.

```1c
    ....................
    ТаблицаРезультата = Запрос.Выполнить().Выгрузить();
    ТаблицаРезультата.Колонки.Добавить("ПредставлениеДаты");
    Для Каждого СтрокаРезультата Из ТаблицаРезультата Цикл
    СтрокаРезультата.ПредставлениеДаты = Формат(СтрокаРезультата.Дата, "ДФ=yyyyMMdd");
    КонецЦикла;
```
---
```1c
    ....................
    ТаблицаРезультата = Запрос.Выполнить().Выгрузить();
    ТаблицаРезультата.Колонки.Добавить("ПредставлениеДаты");
    Для Каждого СтрокаРезультата Из ТаблицаРезультата Цикл
    СтрокаРезультата.ПредставлениеДаты = Формат(СтрокаРезультата.Дата, "ДФ=yyyyMMdd");
    КонецЦикла;
```

Возможно ли работать напрямую с запросом, без выгрузки в таблицу значений?
Я пробовал так:

```1c
    ВЫБРАТЬ
    РеализацияТМЗОбороты.Организация,
    РеализацияТМЗОбороты.Номенклатура.Код,
    РеализацияТМЗОбороты.Партия.Номер,
    РеализацияТМЗОбороты.СтруктурноеПодразделение.Код,
    РеализацияТМЗОбороты.Партия.Автор.ФизЛицо.Код,
    ГОД(РеализацияТМЗОбороты.Партия.Дата) КАК Год,
    МЕСЯЦ(РеализацияТМЗОбороты.Партия.Дата) КАК Месяц,
    ДЕНЬ(РеализацияТМЗОбороты.Партия.Дата) КАК День,
    РеализацияТМЗОбороты.Партия.Ссылка,
    РеализацияТМЗОбороты.КоличествоОборот,
    РеализацияТМЗОбороты.СуммаОборот
    ИЗ
    РегистрНакопления.РеализацияТМЗ.Обороты(&НачалоПериода, &КонецПериода, , &Организация = Организация) КАК РеализацияТМЗОбороты
```

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

    ВыборкаПродажи = РезультатПродажи.Выбрать();
    //
    Пока ВыборкаПродажи.Следующий() Цикл
    СтрокаПродажи = " + ВыборкаПродажи.КодНоменклатуры + Разделитель
    + ВыборкаПродажи.КодПодразделения + Разделитель
    + ВыборкаПродажи.КодАвтора + Разделитель
    + ВыборкаПродажи.Год + ВыборкаПродажи.Месяц + ВыборкаПродажи.День + Разделитель
    + ВыборкаПродажи.РегистраторСсылка.УникальныйИдентификатор() + Разделитель
    + ВыборкаПродажи.РегистраторСсылка + Разделитель
    + ВыборкаПродажи.Количество + Разделитель
    + ВыборкаПродажи.Сумма + РазделСтрок;
    ТекстПродажи.ЗаписатьСтроку(СтрокаПродажи);
    КонецЦикла;

    ТекстПродажи.Закрыть();
```

Может прямо в запросе можно форматировать дату?
---
Кстати
Может прямо в запросе можно форматировать дату?
Конечно, можно!
ДАТАВРЕМЯ(?<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)
---
Свой пост (16) поспешил выложить.
Предлагаю вместо

```1c
    + ВыборкаПродажи.Год + ВыборкаПродажи.Месяц + ВыборкаПродажи.День
```

Код

```1c
    + Формат(ВыборкаПродажи.Дата, "ДФ=ггММдд")
```
---
+ Формат(ВыборкаПродажи.Дата, "ДФ=ггММдд")
Спасибо, работает на самом деле.
---
Можно и
+ ВыборкаПродажи.Год + ВыборкаПродажи.Месяц + ВыборкаПродажи.День
вполне успешно форматировать
---
Можно и
+ ВыборкаПродажи.Год + ВыборкаПродажи.Месяц + ВыборкаПродажи.День
вполне успешно форматировать