|
Отбор по значению в таблице | ☑ | ||
---|---|---|---|---|
0
Robert51
30.09.13
✎
12:51
|
Всем привет!
Делаю печатную форму для Авансового отчета. Создаю Запрос на Содержание, Сумма и СчетУчетаНДС. В ПечФорм хочу чтоб вывелось только содержащие СчетУчетаНДС = 19.03 Я так понял, что можно отобрать при запросе, либо вывести на печать с условием, но вот никак не получается. Помогите разобраться. ЗЫ: Я нуб и только учусь) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | АвансовыйОтчетПрочее.Содержание, | АвансовыйОтчетПрочее.Сумма, | АвансовыйОтчетПрочее.СчетУчетаНДС |ИЗ | Документ.АвансовыйОтчет.Прочее КАК АвансовыйОтчетПрочее |ГДЕ | АвансовыйОтчетПрочее.СчетУчетаНДС = &19.03 И | АвансовыйОтчетПрочее.Ссылка = &ТекущийДокумент"; Запрос.УстановитьПараметр("19.03", СсылкаНаОбъект); Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); СтрТабЧасти = Запрос.Выполнить().Выбрать(); СтрТабЧасти.Следующий(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ТабДокумент.Вывести(ОбластьЗаголовок); ОбластьМакета = Макет.ПолучитьОбласть("Строка"); Выборка = СтрТабЧасти; Пока Выборка.Следующий() Цикл ОбластьМакета.Параметры.Заполнить(Выборка); КонецЦикла; ТабДокумент.Вывести(ОбластьМакета); |
|||
1
Галахад
гуру
30.09.13
✎
12:53
|
Интересные параметры.
|
|||
2
Robert51
30.09.13
✎
13:16
|
"| АвансовыйОтчетПрочее.СчетУчетаНДС = &19.03
Запрос.УстановитьПараметр("19.03", СсылкаНаОбъект);" это не работает, просто пробовал. Учимся методом проб и ошибок. Через Если Тогда тоже не получается |
|||
3
hhhh
30.09.13
✎
14:41
|
"| АвансовыйОтчетПрочее.СчетУчетаНДС = &МойОфигенныйПараметр
Запрос.УстановитьПараметр("МойОфигенныйПараметр", СсылкаНаОбъект);" |
|||
4
kosts
30.09.13
✎
14:55
|
|
|||
5
Robert51
02.10.13
✎
17:32
|
Не получается((
Ошибка при вызове метода контекста (Выполнить): {(9, 48)}: Синтаксическая ошибка "(ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ)" АвансовыйОтчет.Прочее.СчетУчетаНДС = &ЗНАЧЕНИЕ<<?>>(ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ) |
|||
6
Robert51
02.10.13
✎
17:43
|
Третий день извращаюсь над кодом)
Причем в Универсальном отчете все как надо получается, но там не посмотреть код запроса. В конструкторе пробую всё тоже самое, но 19.03 ему не нравится. Пробую вывести на печать строки только с 19.03, все равно выводит все. Мозгов не хватает уже. Есть мысли у кого-нибудь? |
|||
7
bolobol
02.10.13
✎
18:35
|
&ЗНАЧЕНИЕ<<?>> - Зачем & перед ЗНАЧЕНИЕ??
|
|||
8
bolobol
02.10.13
✎
18:36
|
&19.03 - вообще песня! Кто учил наименование переменных с точками писать?
|
|||
9
bolobol
02.10.13
✎
18:40
|
Сделай ещё проще:
|ГДЕ | АвансовыйОтчетПрочее.СчетУчетаНДС.Код = ""19.03"" Или, чтобы с параметрами не напугать 1С: |ГДЕ | АвансовыйОтчетПрочее.СчетУчетаНДС = &1903 УстановитьПараметр("1903", ПланСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ) |
|||
10
bolobol
02.10.13
✎
18:41
|
Упс... забылся сам))
Вот так: |ГДЕ | АвансовыйОтчетПрочее.СчетУчетаНДС = &Сч1903 УстановитьПараметр("Сч1903", ПланСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ) |
|||
11
Robert51
05.10.13
✎
02:06
|
Отлично, Спасибо! Всё получилось!
Один момент только остался. Дело в том, что подсчитанная сумма в Итого дублируется в Шапке, но так как мы выводим область в печатную форму раньше чем происходит Выборка, то оно не заполняется (пустое). Расставил Области по-другому, вывелась каша на печать (по понятным причинам). Добавил в Шапку такую же Выборку как и в Строке, больше Строка не работает, видимо второй раз программа делает Выборку из уже сделанной Выборки (как я понял). Единственный выход нашел, это сделать еще один Запрос, но мне что-то кажется это вульгарно. Или всё правильно, так и надо делать? //Получим данные из документа ТабДокумент = Новый ТабличныйДокумент; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | АвансовыйОтчет.Номер, | АвансовыйОтчет.Дата, | АвансовыйОтчет.Организация |ИЗ | Документ.АвансовыйОтчет КАК АвансовыйОтчет |ГДЕ | АвансовыйОтчет.Ссылка = &ТекущийДокумент"; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | АвансовыйОтчетПрочее.Содержание, | АвансовыйОтчетПрочее.Сумма |ИЗ | Документ.АвансовыйОтчет.Прочее КАК АвансовыйОтчетПрочее |ГДЕ | АвансовыйОтчетПрочее.Ссылка = &ТекущийДокумент И | АвансовыйОтчетПрочее.СчетУчетаНДС = &Сч1903"; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); Запрос.УстановитьПараметр("Сч1903", ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ); СтрТабЧасти = Запрос.Выполнить().Выбрать(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | АвансовыйОтчетПрочее.Сумма |ИЗ | Документ.АвансовыйОтчет.Прочее КАК АвансовыйОтчетПрочее |ГДЕ | АвансовыйОтчетПрочее.Ссылка = &ТекущийДокумент И | АвансовыйОтчетПрочее.СчетУчетаНДС = &Сч1903"; Запрос.УстановитьПараметр("Сч1903", ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ); Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); СуммаШапки = Запрос.Выполнить().Выбрать(); //Созданим и заполним табличный документ ТабДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); ОбластьШапки = Макет.ПолучитьОбласть("Шапка"); ОбластьШапки.Параметры.Организация = Шапка.Организация; ОбластьШапки.Параметры.Номер = Шапка.Номер; Выборка = СуммаШапки; ИтогСумма = 0; Пока Выборка.Следующий() Цикл ИтогСумма = ИтогСумма + Выборка.Сумма; КонецЦикла; ОбластьШапки.Параметры.ИтогоСумма = ИтогСумма; ТабДокумент.Вывести(ОбластьШапки); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ТабДокумент.Вывести(ОбластьЗаголовок); ОбластьСтроки = Макет.ПолучитьОбласть("Строка"); ОбластьИтого = Макет.ПолучитьОбласть("Итого"); Выборка = СтрТабЧасти; НомерПП = 1; ИтогСумма = 0; Пока Выборка.Следующий() Цикл ОбластьСтроки.Параметры.НомерПП = НомерПП; НомерПП = НомерПП + 1; ОбластьСтроки.Параметры.Заполнить(Выборка); ТабДокумент.Вывести(ОбластьСтроки); ИтогСумма = ИтогСумма + Выборка.Сумма; КонецЦикла; ОбластьИтого.Параметры.ИтогоСумма = ИтогСумма; ТабДокумент.Вывести(ОбластьИтого); ОбластьПодвала = Макет.ПолучитьОбласть("Подвал"); ТабДокумент.Вывести(ОбластьПодвала); Возврат ТабДокумент; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |