|
Вывести результат запроса в Табличный документ | ☑ | ||
---|---|---|---|---|
0
fanatic1
22.08.13
✎
09:56
|
Ребята всем доброго дня!!!
прошу помогите.... почему результат не выводит в табличный документ??? &НаСервере Процедура СформироватьТабДокумент() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Ссылка, | РеализацияТоваровУслугТовары.Номенклатура, | РеализацияТоваровУслугТовары.Количество, | РеализацияТоваровУслугТовары.хлысты, | РеализацияТоваровУслугТовары.Коэффициент, | РеализацияТоваровУслугТовары.Характеристика |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2"; Дата1 = НачалоДня('20130505');; Дата2 = ТекущаяДата(); Запрос.УстановитьПараметр("Дата1", Дата1); Запрос.УстановитьПараметр("Дата2", дата2); табРезультат = Запрос.Выполнить().Выгрузить(); табРезультат.Колонки.Добавить("Разница"); Для Каждого СтрокаТаб Из табРезультат Цикл Если Не СтрокаТаб.Количество = ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты Тогда // СтрокаТаб.Разница = СтрокаТаб.Количество - ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты; Сообщить(СтрокаТаб.Ссылка); КонецЕсли; КонецЦикла; ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.Показать(); |
|||
1
Wobland
22.08.13
✎
09:59
|
потому что ты его об этом не попросил
|
|||
2
fanatic1
22.08.13
✎
10:15
|
А как попросить???
|
|||
3
Wobland
22.08.13
✎
10:16
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
ТабДок=ЭлементыФормы.Вывод; Макет=ПолучитьМакет("Печать"); Область=Макет.ПолучитьОбласть("Заголовок"); ТабДок.Вывести(Область); Область=Макет.ПолучитьОбласть("Строка"); Выборка=Справочники.Номенклатура.Выбрать(); Номер=0; Пока Выборка.Следующий() Цикл Номер=Номер+1; Область.Параметры.Номер=Номер; Область.Параметры.Заполнить(Выборка); ТабДок.Вывести(Область); КонецЦикла; ТабДок.Показать(); КонецПроцедуры |
|||
4
fanatic1
22.08.13
✎
10:19
|
Это нужно рисовать макет??? а можно что бы не рисовать его?? что бы он мне сразу показал все что есть в запросе??
&НаСервере Процедура СформироватьТабДокумент() ТабДокумент = Новый ТабличныйДокумент; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Ссылка, | РеализацияТоваровУслугТовары.Номенклатура, | РеализацияТоваровУслугТовары.Количество, | РеализацияТоваровУслугТовары.хлысты, | РеализацияТоваровУслугТовары.Коэффициент, | РеализацияТоваровУслугТовары.Характеристика |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2"; Дата1 = НачалоДня('20130505');; Дата2 = ТекущаяДата(); Запрос.УстановитьПараметр("Дата1", Дата1); Запрос.УстановитьПараметр("Дата2", дата2); табРезультат = Запрос.Выполнить().Выгрузить(); табРезультат.Колонки.Добавить("Разница"); Для Каждого СтрокаТаб Из табРезультат Цикл Если Не СтрокаТаб.Количество = ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты Тогда // СтрокаТаб.Разница = СтрокаТаб.Количество - ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты; Сообщить(СтрокаТаб.Ссылка); КонецЕсли; КонецЦикла; ТабДокумент.Вывести(табРезультат); КонецПроцедуры &НаКлиенте Процедура Сформировать(Команда) СформироватьТабДокумент(); КонецПроцедуры |
|||
5
Wobland
22.08.13
✎
10:20
|
(4) возьми консоль запросов
|
|||
6
fanatic1
22.08.13
✎
10:20
|
Сообщить(СтрокаТаб.Ссылка); поставил что бы видеть что запрос работает, он мне сообщает, он не выводит ((((((((((((
|
|||
7
Wobland
22.08.13
✎
10:21
|
ТабДок=Новый ТабличныйДокумент;
Результат=Запрос.Выполнить().Выгрузить(); Построитель=Новый ПостроительОтчета; Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(Результат); Построитель.Вывести(ТабДок); Возврат ТабДок; |
|||
8
fanatic1
22.08.13
✎
10:22
|
Консоль запросов не могу, т.к. у меня есть Функция ВернутьДлинуПоСтроке....
у меня характеристика как 6 м., или 12 м и т.д. а мне надо ее получить просто как 6, 12 и т.д. |
|||
9
Euguln
22.08.13
✎
10:22
|
Показать() надо на клиенте выполнять
|
|||
10
fanatic1
22.08.13
✎
10:22
|
ТабДок=Новый ТабличныйДокумент;
Результат=Запрос.Выполнить().Выгрузить(); Построитель=Новый ПостроительОтчета; Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(Результат); Построитель.Вывести(ТабДок); Возврат ТабДок; не пойдет, у меня ведь это процедура... а не функция.. |
|||
11
mzelensky
22.08.13
✎
10:23
|
(0)(2) в конце нужно написать:
ТабДок=новый ТабличныйДокумент; Документик_НУ_СФОРМИРУЙСЯ_ПОЖАЛУЙСТА(ТабДок); |
|||
12
Euguln
22.08.13
✎
10:24
|
(10) А должна быть функция
|
|||
13
fanatic1
22.08.13
✎
10:25
|
ДЕлаю вот так, функция
&НаСервере Функция ВернутьДлинуПоСтроке(ХарактеристикаНаименование) Если ЗначениеЗаполнено(ХарактеристикаНаименование) = 1 тогда ИмяХарактеристики= сокрлп(ХарактеристикаНаименование); //считаем что в характеристике указана именно длина ИмяХарактеристики = СтрЗаменить(Имяхарактеристики," ",Символы.ПС); Попытка Длина = Число(СтрПолучитьСтроку(ИмяХарактеристики,1)); исключение Длина = 0; КонецПопытки; Возврат Длина; Иначе Возврат 0; конецесли; КонецФункции &НаСервере Функция СформироватьТабДокумент() //Процедура СформироватьТабДокумент() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Ссылка, | РеализацияТоваровУслугТовары.Номенклатура, | РеализацияТоваровУслугТовары.Количество, | РеализацияТоваровУслугТовары.хлысты, | РеализацияТоваровУслугТовары.Коэффициент, | РеализацияТоваровУслугТовары.Характеристика |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2"; Дата1 = НачалоДня('20130505');; Дата2 = ТекущаяДата(); Запрос.УстановитьПараметр("Дата1", Дата1); Запрос.УстановитьПараметр("Дата2", дата2); табРезультат = Запрос.Выполнить().Выгрузить(); табРезультат.Колонки.Добавить("Разница"); Для Каждого СтрокаТаб Из табРезультат Цикл Если Не СтрокаТаб.Количество = ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты Тогда // СтрокаТаб.Разница = СтрокаТаб.Количество - ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты; Сообщить(СтрокаТаб.Ссылка); КонецЕсли; КонецЦикла; ТабДок=Новый ТабличныйДокумент; Результат=Запрос.Выполнить().Выгрузить(); Построитель=Новый ПостроительОтчета; Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(Результат); Построитель.Вывести(ТабДок); Возврат ТабДок; КонецФункции //КонецПроцедуры &НаКлиенте Процедура Сформировать(Команда) СформироватьТабДокумент(); КонецПроцедуры и не работает ((( не показывает ((( |
|||
14
stix2010
22.08.13
✎
10:25
|
(10) мдя...
ТабДок.Показать(); |
|||
15
stix2010
22.08.13
✎
10:27
|
(13)
Табдок=СформироватьДокумент(); Табдок.Показать(); малчик, иди в школу |
|||
16
Wobland
22.08.13
✎
10:29
|
(8) ты хочешь на результат запроса посмотреть или таки сделать печатную форму?
|
|||
17
fanatic1
22.08.13
✎
10:33
|
Да мне просто нужно вывести результат и все! с Божьей (тоесть Вашей помощью) Разобрался..Все выводит круто!!!!Вот текст, вдруг кому пригодиться )))) От меня хотелось бы пожелать Вам удачи...Спасибо... и еще Вот я когда научусь как Вы, я не буду писать по одной строчке, я сразу буду вписывать куда вставить....Вот что получилось...&НаСервере
Функция ВернутьДлинуПоСтроке(ХарактеристикаНаименование) Если ЗначениеЗаполнено(ХарактеристикаНаименование) = 1 тогда ИмяХарактеристики= сокрлп(ХарактеристикаНаименование); //считаем что в характеристике указана именно длина ИмяХарактеристики = СтрЗаменить(Имяхарактеристики," ",Символы.ПС); Попытка Длина = Число(СтрПолучитьСтроку(ИмяХарактеристики,1)); исключение Длина = 0; КонецПопытки; Возврат Длина; Иначе Возврат 0; конецесли; КонецФункции &НаСервере Функция СформироватьТабДокумент() //Процедура СформироватьТабДокумент() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Ссылка, | РеализацияТоваровУслугТовары.Номенклатура, | РеализацияТоваровУслугТовары.Количество, | РеализацияТоваровУслугТовары.хлысты, | РеализацияТоваровУслугТовары.Коэффициент, | РеализацияТоваровУслугТовары.Характеристика |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2"; Дата1 = НачалоДня('20130505');; Дата2 = ТекущаяДата(); ТабДок=Новый ТабличныйДокумент; Запрос.УстановитьПараметр("Дата1", Дата1); Запрос.УстановитьПараметр("Дата2", дата2); табРезультат = Запрос.Выполнить().Выгрузить(); табРезультат.Колонки.Добавить("Разница"); Для Каждого СтрокаТаб Из табРезультат Цикл Если Не СтрокаТаб.Количество = ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты Тогда СтрокаТаб.Разница = СтрокаТаб.Количество - ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты; Сообщить(СтрокаТаб.Ссылка); КонецЕсли; КонецЦикла; Построитель=Новый ПостроительОтчета; Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(ТабРезультат); Построитель.Вывести(ТабДок); ТабДок.Показать(); Возврат ТабДок; КонецФункции //КонецПроцедуры &НаКлиенте Процедура Сформировать(Команда) СформироватьТабДокумент(); КонецПроцедуры |
|||
18
Wobland
22.08.13
✎
10:34
|
он на сервере показал! мы преклоняемся перед тобой, гуру
|
|||
19
ptiz
22.08.13
✎
10:34
|
(17) Спасибо, пригодится!
|
|||
20
fanatic1
22.08.13
✎
10:35
|
а еще вопрос, а как можно в моем запросе группировку поставить? по номенклатуре?
|
|||
21
stix2010
22.08.13
✎
10:39
|
(18) не говори, у меня так не получается
(20) разрешаем |
|||
22
ptiz
22.08.13
✎
10:52
|
(20) В запрос добавить "ИТОГИ СУММА(Количество) ПО Номенклатура"
и Результат=Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |