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

    СуммаВсего = СуммаВсего + СтрокаВыборки.Сумма;

    ТабДок.Вывести(ОбластьСтрока);
```
---
встречное коммерческое предложение

за старманю оптимизую участок кода:

```1c
    ОбластьСтрока.Параметры.НомерСтроки = СтрокаВыборки.НомерСтроки;
    ОбластьСтрока.Параметры.Товар = СтрокаВыборки.Номенклатура;
    ОбластьСтрока.Параметры.Количество = СтрокаВыборки.Количество;
    ОбластьСтрока.Параметры.Цена = СтрокаВыборки.Цена;
    ОбластьСтрока.Параметры.Сумма = СтрокаВыборки.Сумма;
```
---
А если через

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

    Если Рез.Пустой() Тогда
    Возврат;
    КонецЕСли;

    Выборка = Рез.Выбрать();

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

    СуммаВсего = СуммаВсего + СтрокаВыборки.Сумма;

    ТабДок.Вывести(ОбластьСтрока);
```
---
Все равно ничего не сворачивает, скажите у вас самих получилось свернуть? Может еще как то по другому можно?
---
Добрый день! подскажите пожалуйста как в обработке можно сделать так чтобы в отчет попадали только проведенные документы!
Зараннее благодарю!
---
цикл ...

если док.проведен = ложь тогда
//не проведён, не обрабатывай
продолжить;
конецесли;
---
Зачем в цикле 'продолжить'? В запросе отчета добавь:

```1c
    ... Где док.проведен
```
---
я просто помню название ветки
Надо сделать группировку номенклатуры без запросов и СКД
---
Спасибо все получилось!
---
Добрый день! Подскажите как можно в форме сделать так, чтобы если я не задаю период в форме отчета, то в сам отчет слова начало периода и конец периода не выводились?
Зараннеее благодарю!
---
http://mikuslas.ru/empty_date

как-то так
(26)
---
Добрый день! Подскажите как мне получить конец дня определенной даты. Если выбираю дату начала и дату конца пример 08.11.2016 по 08.11.2016, то мне ничего не возвращает?
Я уже писал функцию КонецДня вот пример:
Выборка = Документы.РеализацияТоваровУслуг.Выбрать(Отчет.ПериодНачало,КонецДня(Отчет.ПериодКонец)); все равно ничего не воввращает? Может не там пишу?
Зараннее спасибо!
---
а так:

```1c
    Выборка = Документы.РеализацияТоваровУслуг.Выбрать(Отчет.ПериодНачало,КонецДня(Отчет.ПериодКонец)+1)
```

КонецДня это время 23:59:59. А документы могут быть как раз в в последней секунде дня. Если они вообще есть в этот день.
---
Сделал все равно ничего не возвращает. Может есть еще какая нибудь хитрость?
---
```1c
    Выборка = Документы.РеализацияТоваровУслуг.Выбрать(НачалоДня(Отчет.ПериодНачало),КонецДня(Отчет.ПериодКонец)+1)
```
---
смотрите список документов РеализацияТоваровУслуг. Точно есть за эту дату и они проведенные?
Попробовал у себя (правда на другом типе документов). Все отрабатывает.
---
1) Светрку таблицы надо делать до перебора
2) если количество у товара одно а цена различная то свертка не даст желаемого результата
как вариант цену делать расчетный величиной и сворачивать по сумме и количеству - тогда цена Сумма/количество
---
на, не мучайся
---
Можно я уточню? Топикстартер просит написать ему отчёт за вознаграждение. За 5 рублей?
---
Я отдал почти все что у меня было, ну и хотелось бы чтобы все работало, так как я сам не могу справится.
---
не тестировал
---
Подскажите пожалуйста как добраться до даты документа

```1c
    ТаблицаТоваров = Новый ТаблицаЗначений;
    ТаблицаТоваров.Колонки.Добавить("Номенклатура");

    ТаблицаТоваров.Колонки.Добавить("Количество");
    ТаблицаТоваров.Колонки.Добавить("Сумма");
    ТаблицаТоваров.Колонки.Добавить("СубконтоБУ");
    ТаблицаТоваров.Колонки.Добавить("Ссылка.Дата");
```

ругается
{Форма.ФормаОтчета.Форма(38)}: Ошибка при вызове метода контекста (Добавить)
 ТаблицаТоваров.Колонки.Добавить("Ссылка.Дата");
по причине:
Неверное имя колонки
---
ТаблицаТоваров.Колонки.Добавить("Ссылка.Дата");
  Это что??? Где Вы видели такой синтаксис(имя колонки через точку)?

Может все таки

```1c
    ТаблицаТоваров.Колонки.Добавить("Дата");
```
---
В табличной части параметра Дата нет
дата есть в реквизитах документа
---
ТаблицаТоваров.Колонки.Добавить("Дата"); - добавляет колонку в таблицу с именем Дата. Если вам нужна дата документа, то обращайтесь через объект.
---
разобрался

```1c
    Выборка = Документы.РеализацияТоваровУслуг.Выбрать(Отчет.ПериодНачало, Отчет.ПериодКонец);

    СуммаВсего = 0;
    СЧ = ";

    ТаблицаТоваров = Новый ТаблицаЗначений;
    ТаблицаТоваров.Колонки.Добавить("Номенклатура");

    ТаблицаТоваров.Колонки.Добавить("Количество");
    ТаблицаТоваров.Колонки.Добавить("Сумма");
    ТаблицаТоваров.Колонки.Добавить("СубконтоБУ");
    ТаблицаТоваров.Колонки.Добавить("Дата");

    Пока Выборка.Следующий() Цикл //Заполняем таблицу

    Для каждого стр из Выборка.товары цикл
    СтрН = ТаблицаТоваров.Добавить();
    ЗаполнитьЗначенияСвойств(СтрН,стр);
    СтрН.Дата = выборка.Дата;
    КонецЦикла

    КонецЦикла;
```
---
ну мне в голову приходит только перебор в цикле справочника номенклатура с помещение значений в таблицу значений. По окончании таблицу свернуть
а вообще для чего так извращаться???
---
Спасибо все четко отрабатывает! Только теперь другой момент немного не отрабатывает. Т е мне надо выбрать документы без уазания периода и отчет должен вывести мне все документы, а теперь с указанием начала дня и конца дня отчет мне делает отбор строго по периодам, т е если не задавая периода отчет вообще ничего не возвращает! Не подскажите как можно может при помощи оператора если сделать так чтобы отчет формировался без указания периодов и выводил мне все документы соответственно и при указании периода я мог выбрать и один день и сколько угодно. Т е надо формировать отчет с указанием определенного дня и без указания периода?
Спасибо всем за участие, очень ценю ваши советы!!
---
```1c
    Выборка = Документы.РеализацияТоваровУслуг.Выбрать(Отчет.ПериодНачало, ?(ЗначениеЗаполнено(Отчет.ПериодКонец), КонецДня(Отчет.ПериодКонец), Отчет.ПериодКонец));
```
---
(Отчет.ПериодНачало, ?(ЗначениеЗаполнено(Отчет.ПериодКонец), КонецДня(Отчет.ПериодКонец), Отчет.ПериодКонец));
(34)Все работает! Все супер! Спасибо!!!
---
Добрый день! Посоветуйте пожалуйста как лучше сделать:
При выборе периода хотелось чтобы в отчет еще выводились такие фразы : Конец периода и Начало периода,
  т е я указываю в форме обработки определенный период и мне хотелось бы чтобы в отчете вывелось например: Начало периода 08.02.2017 и Конец периода 09.02.2016, а когда я не выбираю период, то тогда такие слова выводить не надо!
 Зараннеее спасибо!
---
Бери