Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
20 мая 2024, 05:24

Вывод на печать результат запроса

Автор SkyNetYar, 17 сен 2015, 11:29

0 Пользователей и 1 гость просматривают эту тему.

SkyNetYar

 ЗапросПоДокументам = Новый Запрос;
ЗапросПоДокументам.Текст=


"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КассовыеДокументы.Документ КАК Документ,
| НАЧАЛОПЕРИОДА(КассовыеДокументы.Документ.Дата, ДЕНЬ) КАК День,
| КассовыеДокументы.Документ.Дата КАК ДатаДок,
| КассовыеДокументы.Документ.Номер КАК НомерДок,
| ПОДСТРОКА(КассовыеДокументы.Документ.Основание, 1, 200) КАК Основание,
| ВЫБОР
| КОГДА КассовыеДокументы.Документ ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ТОГДА КассовыеДокументы.Документ.СуммаДокумента
| ИНАЧЕ 0
| КОНЕЦ КАК Приход,
| ВЫБОР
| КОГДА КассовыеДокументы.Документ ССЫЛКА Документ.РасходныйКассовыйОрдер
| ТОГДА КассовыеДокументы.Документ.СуммаДокумента
| ИНАЧЕ 0
| КОНЕЦ КАК Расход
|ИЗ
| (ВЫБРАТЬ
| ПриходныйКассовыйОрдер.Ссылка КАК Документ
| ИЗ
| Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
| ГДЕ
| ПриходныйКассовыйОрдер.Дата МЕЖДУ &НачИтоги И &ДатаКон
| И ПриходныйКассовыйОрдер.Проведен
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасходныйКассовыйОрдер.Ссылка
| ИЗ
| Документ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер
| ГДЕ
| РасходныйКассовыйОрдер.Дата МЕЖДУ &НачИтоги И &ДатаКон
| И РасходныйКассовыйОрдер.Проведен) КАК КассовыеДокументы
|
|УПОРЯДОЧИТЬ ПО
| День,
| ДатаДок,
| Документ
|ИТОГИ ПО
| День,
| Документ
|АВТОУПОРЯДОЧИВАНИЕ";

ЗапросПоДокументам.УстановитьПараметр("НачИтоги",    '20150910');
ЗапросПоДокументам.УстановитьПараметр("ДатаКон",     '20150914');
РезультатЗапросаПоДокументам = ЗапросПоДокументам.Выполнить();

ДеталиШапка = Макет.ПолучитьОбласть("ДеталиШапка");
ТабДокумент.Вывести(ДеталиШапка);
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ВыборкаДетальныеЗаписи = РезультатЗапросаПоДокументам.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ОбластьДетальныхЗаписей.Параметры.ДокументОс = СокрЛП(ВыборкаДетальныеЗаписи.Документ) + "  Документ основание:  " + СокрЛП(ВыборкаДетальныеЗаписи.Основание);
ТабДокумент.Вывести(ОбластьДетальныхЗаписей);
КонецЦикла;

 

Возврат ТабДокумент
/////////////////////////////////////////////////////////////////////////////////////////////////////////

vitasw

У вас в запросе есть секция "Итоги", что подразумевает под собой выборку ПоГруппировкам. Тогда как при работы с данными запроса вы используете прямую выборку без группировок.
Добавте выделенные строки в свой код и сами все увидите.
...
ТЗ=РезультатЗапросаПоДокументам.Выгрузить();
ТЗ.ВыбратьСтроку();

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

SkyNetYar

Цитата: vitasw от 18 сен 2015, 14:50
У вас в запросе есть секция "Итоги", что подразумевает под собой выборку ПоГруппировкам. Тогда как при работы с данными запроса вы используете прямую выборку без группировок.
Добавте выделенные строки в свой код и сами все увидите.
...
ТЗ=РезультатЗапросаПоДокументам.Выгрузить();
ТЗ.ВыбратьСтроку();

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

Ура,победа,убрал ИТОГИ и дубли ушли...
Вопрос с датой остается открытой..

Добавлено: 18 сен 2015, 15:40


РасходныйКассовыйОрдер.Дата = &Дата

ЗапросПоДокументам.УстановитьПараметр("Дата",    '20150911');

Не выводит документов
Добавлено: 18 сен 2015, 16:11


НАЧАЛОПЕРИОДА(РасходныйКассовыйОрдер.Дата,ДЕНЬ) = &Дата
ЗапросПоДокументам.УстановитьПараметр("Дата",    '20150914');

Вот так взлетело,осталось вместо '20150914' передать дату текущего документа..

Kironten

У вас же есть массивобъектов - оттуда и возьмите.

SkyNetYar

Цитата: Kironten от 18 сен 2015, 17:26
У вас же есть массивобъектов - оттуда и возьмите.
Подскажите как? все облазил не нашел примера :(

Kironten

У вас вся эта котовасия происходит в функции:
Функция СформироватьПечатнуюФормуКМ6(МассивОбъектов, ОбъектыПечати)
Функция содержит переданный параметр - МассивОбъектов. В этом параметре обычно передается массив ссылок на документы, для которых нужно сформировать печатные формы.
Возьмите из него первую ссылку, и все. Если конечно, это тот документ, который вам нужен.
В общем будет где то так:
Функция СформироватьПечатнуюФормуКМ6(МассивОбъектов, ОбъектыПечати)
    СсылкаНайдена = Истина;
    Если МассивОбъектов.Количество() > 0 Тогда   
        ТекДок = МассивОбъектов[0];
    Иначе
        Сообщить("Ищите другую ссылку на интересующий вас документ. Здесь рыбы нет!");
        СсылкаНайдена = Ложь;
    КонецЕсли;

    // тут текст функции и вашего запроса

    ЗапросПоДокументам.УстановитьПараметр("Дата", ?(СсылкаНайдена, ТекДок.Дата, <ИначеДругаяКакаяНибудьДатаНоВообщеВрядлиЭтоИначеБудет>);

    // дальше получение выборки из запроса и её обработка

КонецФункции

SkyNetYar

По отладчику ТекДок.Дата получается,а документы не выводятся =\ ,связано с форматом вывода что ле?

Kironten

Цитата: SkyNetYar от 20 сен 2015, 19:55
По отладчику ТекДок.Дата получается,а документы не выводятся =\ ,связано с форматом вывода что ле?

Так а в результат запроса то они попадают?

SkyNetYar

Да вроде бы все попадает,но почему не выводит =\
с
ЗапросПоДокументам.УстановитьПараметр("Дата", '20150914'); - Выводит
ЗапросПоДокументам.УстановитьПараметр("Дата", ТекДок.Дата); - не выводит,но дату по отладчику показывает =\
Добавлено: 20 сен 2015, 21:26


Нет в результат не попадает...
Добавлено: 20 сен 2015, 21:47


Все получилось если формировать эту дату с начала дня :o
ЗапросПоДокументам.УстановитьПараметр("Дата", НачалоДня(ТекДок.Дата));

Kironten

Цитата: SkyNetYar от 20 сен 2015, 20:50
Да вроде бы все попадает,но почему не выводит =\
с
ЗапросПоДокументам.УстановитьПараметр("Дата", '20150914'); - Выводит
ЗапросПоДокументам.УстановитьПараметр("Дата", ТекДок.Дата); - не выводит,но дату по отладчику показывает =\
Добавлено: 20 сен 2015, 21:26


Нет в результат не попадает...
Добавлено: 20 сен 2015, 21:47


Все получилось если формировать эту дату с начала дня :o
ЗапросПоДокументам.УстановитьПараметр("Дата", НачалоДня(ТекДок.Дата));

После выполнения запроса нажмите шифт+ф9 и прямо в строке наберите ЗапросПоДокументам.Выполнить().Выгрузить() - и посмотрите, есть результат запроса, или нет. То, что вы видите колонки еще ни о чем не говорит.
Добавлено: 20 сен 2015, 21:54


Цитата: SkyNetYar от 20 сен 2015, 20:50
Все получилось если формировать эту дату с начала дня :o
ЗапросПоДокументам.УстановитьПараметр("Дата", НачалоДня(ТекДок.Дата));

Значит нужные вам документы датированы началом дня. Логично, что если вы передаете в равенство дату со временем отличным от начала дня, вы ничего не получаете в запросе.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск