Имя: Пароль:
1C
1С v8
Вывод ссылки на док в строку итога
0 bplmeddy
 
05.04.17
15:29
Доброго времени суток. Есть такая процедура:

Процедура ОтчётПоКонтрам()
    ПолеОтчёт.Очистить();
    Контр = ЭлементыФормы.Контрагент.Значение;
    ДатНач = НачалоДня(ЭлементыФормы.НачалоПериода.Значение);
    ДатКон = КонецДня(ЭлементыФормы.КонецПериода.Значение);
    Если НЕ Контр.Пустая() Тогда
        Запрос = Новый Запрос;
        Запрос.Текст = "ВЫБРАТЬ
                       |    РасходнойДокумент.Ссылка КАК Док,
                       |    РасходнойДокумент.Дата КАК Дата,
                       |    ВложенныйЗапрос.Номенклатура КАК Товар,
                       |    ВложенныйЗапрос.Количество КАК Кол,
                       |    ВложенныйЗапрос.ЦенаПродажи КАК Цена,
                       |    ВложенныйЗапрос.Ссылка КАК Док2,
                       |    ВложенныйЗапрос.НомерСтроки
                       |ИЗ
                       |    Документ.РасходнойДокумент КАК РасходнойДокумент
                       |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                       |            РасходнойДокументТовары.Номенклатура КАК Номенклатура,
                       |            РасходнойДокументТовары.Количество КАК Количество,
                       |            РасходнойДокументТовары.ЦенаПродажи КАК ЦенаПродажи,
                       |            РасходнойДокументТовары.Ссылка КАК Ссылка,
                       |            РасходнойДокументТовары.НомерСтроки КАК НомерСтроки
                       |        ИЗ
                       |            Документ.РасходнойДокумент.Товары КАК РасходнойДокументТовары) КАК ВложенныйЗапрос
                       |        ПО РасходнойДокумент.Ссылка = ВложенныйЗапрос.Ссылка
                       |ГДЕ
                       |    РасходнойДокумент.Дата >= &ДатНач
                       |    И РасходнойДокумент.Дата <= &ДатКон
                       |    И РасходнойДокумент.Проведен = &Пров
                       |    И РасходнойДокумент.Контрагент = &Контр
                       |
                       |УПОРЯДОЧИТЬ ПО
                       |    Дата
                       |ИТОГИ
                       |    СУММА(Кол),
                       |    СУММА(Цена)
                       |ПО
                       |    Док";
                       Запрос.УстановитьПараметр("ДатНач",ДатНач);
                       Запрос.УстановитьПараметр("ДатКон",ДатКон);
                       Запрос.УстановитьПараметр("Пров",Истина);
                       Запрос.УстановитьПараметр("Контр",Контр);
        Рез = Запрос.Выполнить().Выбрать();
        Пока Рез.Следующий() Цикл
            ЭлементыФормы.ПолеОтчёт.ДобавитьСтроку();
            ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Дата = Рез.Дата;
            ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.ДокументТовар = Рез.Товар;
            ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Количество = Рез.Кол;
            ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Цена = Рез.Цена;
            ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Сума = ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Цена*ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Количество;
        КонецЦикла;
    Иначе
        Предупреждение("Вы не выбрали контрагента!");
    КонецЕсли;
КонецПроцедуры

Все считается хорошо, есть только один минус: в строке с итогами не выводит ссылку на документ. Прошу помощи в решении данного вопроса. З.Ы. Колонка "ДокументТовар" имеет составной тип данных (СправочникСсылка.Номенкладура и ДокументСсылка.РасходнойДокумент)
Спасибо.
1 bplmeddy
 
05.04.17
15:31
2 Kondarat
 
05.04.17
15:34
Рез = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
3 bplmeddy
 
05.04.17
15:34
(2) Сейчас попробую, одну секунду.
4 bplmeddy
 
05.04.17
15:36
(2) (3) Нет, к сожалению, выдало только строки с итогами, пропустив строки с товаром.
5 Kondarat
 
05.04.17
15:39
Рез = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока Рез.Следующий() Цикл
ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.ДокументТовар = Рез. Док;
    ВыборкаТовар = Рез.Выбрать();
    Пока ВыборкаТовар.Следующий() Цикл
        
           ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.ДокументТовар = ВыборкаТовар.Товар;
    КонецЦикла;

КонецЦикла;
6 bplmeddy
 
05.04.17
15:45
(5) Теперь выводит. Только вместо цены/количества на каждый товар лупит итог по документу. Если заменить везде Рез.Дата на ВыборкаТовар.Дата, выдаёт все правильно, но пропадают итоги из итоговой строки.
7 bplmeddy
 
05.04.17
15:46
(6) З.Ы. ...строки в которую выводится ссылка на документ.
8 Kondarat
 
05.04.17
15:50
Покажи код вывода
9 bplmeddy
 
05.04.17
15:51
(8)         Рез = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока Рез.Следующий() Цикл
            ЭлементыФормы.ПолеОтчёт.ДобавитьСтроку();
            ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.ДокументТовар = Рез. Док;
            ВыборкаТовар = Рез.Выбрать();
            Пока ВыборкаТовар.Следующий() Цикл
                ЭлементыФормы.ПолеОтчёт.ДобавитьСтроку();
                ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Дата = ВыборкаТовар.Дата;
                ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.ДокументТовар = ВыборкаТовар.Товар;
                ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Количество = ВыборкаТовар.Кол;
                ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Цена = ВыборкаТовар.Цена;
                ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Сума = ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Цена*ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Количество;
            КонецЦикла;
        КонецЦикла;


Это с примером из (6)
10 Kondarat
 
05.04.17
15:54
ЭлементыФормы.ПолеОтчёт.ТекущаяСтрока.Сума = ВыборкаТовар.Цена*ВыборкаТовар.Количество;
11 bplmeddy
 
05.04.17
15:57
(10) Колонка сумы итак правильно выводилась, проблема состоит в том что пропали итоги... сейчас скрин сброшу.
12 bplmeddy
 
05.04.17
15:59
(10) (11)
http://i.piccy.info/i9/fd1f00e2e01a1f87a3a64a5f95dd6391/1491397121/322743/1135105/123.jpg

Выделенная ячейка и соседние с ней.
13 Kondarat
 
05.04.17
16:01
(12) Ну добавь уже в запрос вычисление суммы и итог по ней. И опять же у тебя тип значения ПолеОтчет видимо таблица значений - выводи сразу в нее.