|
Помогите начинающему восьмерочнику с запросом. | ☑ | ||
---|---|---|---|---|
0
Alco0
14.11.11
✎
10:22
|
Есть запрос, взятый из модуля документа МЗ_Списание и переделанный для того, чтобы список комиссии заполнялся не из документа, а из реквизита формы внешнего отчета из которого вызывается запрос - таблицы значений СоставКомиссии, аналогичной штатной из документа.
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ ИЗ &ТЗ КАК ТЗ"; Запрос.УстановитьПараметр("ТЗ",СоставКомиссии); Запрос.Выполнить(); Запрос.УстановитьПараметр("ДатаС", НачалоДня(ДатаНач)); Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаКон)); Запрос.УстановитьПараметр("НомерПриказа", НомерПриказа); Запрос.УстановитьПараметр("ДатаПриказа", ДатаПриказа); Запрос.УстановитьПараметр("ДолжностьПредседательКомиссии", ДолжностьПредседательКомиссии); Запрос.УстановитьПараметр("ФамилияПредседательКомиссии", ФамилияПредседательКомиссии); Запрос.УстановитьПараметр("ИмяПредседательКомиссии", ИмяПредседательКомиссии); Запрос.УстановитьПараметр("ОтчествоПредседательКомиссии", ОтчествоПредседательКомиссии); Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | МЗ_Списание.Ссылка, | МЗ_Списание.Номер КАК пНомер, | МЗ_Списание.Дата КАК пДата, | МЗ_Списание.Учреждение, | МЗ_Списание.Учреждение.НаименованиеПолное КАК пНаименованиеОрганизации, | МЗ_Списание.Учреждение.КодОКПО КАК пКодОКПО, | МЗ_Списание.ЦМООтправитель.Сотрудник.Представление КАК пМОЛ, | МЗ_Списание.ЦМООтправитель.Подразделение.Представление КАК пПодразделение, | &НомерПриказа КАК пНомерПриказа, | &ДатаПриказа КАК ДатаПриказа, | &ДолжностьПредседательКомиссии КАК ДолжностьПредседателя, | &ФамилияПредседательКомиссии КАК ФамилияПредседателя, | &ИмяПредседательКомиссии КАК ИмяПредседателя, | &ОтчествоПредседательКомиссии КАК ОтчествоПредседателя, | МЗ_Списание.Материалы.( | НомерСтроки, | ВЫБОР | КОГДА МЗ_Списание.Материалы.Номенклатура.НаименованиеПолное = """" | ТОГДА МЗ_Списание.Материалы.Номенклатура.Представление | ИНАЧЕ МЗ_Списание.Материалы.Номенклатура.НаименованиеПолное | КОНЕЦ КАК пНоменклатура, | ВЫБОР | КОГДА МЗ_Списание.Материалы.Номенклатура.НоменклатурныйНомер = """" | ТОГДА МЗ_Списание.Материалы.Номенклатура.Код | ИНАЧЕ МЗ_Списание.Материалы.Номенклатура.НоменклатурныйНомер | КОНЕЦ КАК пНоменклатурныйНомер, | ЕдиницаИзмерения.Представление КАК пЕдиница, | НормаРасхода КАК пНормаРасхода, | Количество КАК пКоличество, | Сумма КАК пСумма, | СчетКредита КАК Счет, | ВЫБОР | КОГДА МЗ_Списание.Материалы.Количество = 0 | ТОГДА 0 | ИНАЧЕ МЗ_Списание.Материалы.Сумма / МЗ_Списание.Материалы.Количество | КОНЕЦ КАК Цена, | ВЫБОР | КОГДА МЗ_Списание.Материалы.ПричинаСписания = """" | ТОГДА МЗ_Списание.Материалы.ВидДвиженияНФА | ИНАЧЕ МЗ_Списание.Материалы.ПричинаСписания | КОНЕЦ КАК пПричинаСписания, | Ссылка.СчетДебета.Представление КАК СчетДт, | Ссылка.КВД, | Ссылка.КБКСчетДебета.Представление КАК КБКДт, | Ссылка.КОСГУСчетДебета.Представление КАК КОСГУДт, | СчетКредита.Представление КАК СчетКт, | КБКСчетКредита.Представление КАК КБККт, | КОСГУСчетКредита.Представление КАК КОСГУКт | ), | МЗ_Списание.Руководитель.Контрагент.Фамилия КАК РуководительФамилия, | МЗ_Списание.Руководитель.Контрагент.Имя КАК РуководительИмя, | МЗ_Списание.Руководитель.Контрагент.Отчество КАК РуководительОтчество, | МЗ_Списание.ЗаключениеКомиссии, | МЗ_Списание.СоставКомиссии.( | ТЗ.НомерСтроки, | ТЗ.ДолжностьЧленаКомиссии, | ТЗ.ФамилияЧленаКомиссии, | ТЗ.ИмяЧленаКомиссии, | ТЗ.ОтчествоЧленаКомиссии | ) |ИЗ | Документ.МЗ_Списание КАК МЗ_Списание, | ТЗ КАК ТЗ |ГДЕ | МЗ_Списание.Дата >= &ДатаС | И МЗ_Списание.Дата <= &ДатаПо | И МЗ_Списание.Проведен"; Проблема в том, что МЗ_Списание.СоставКомиссии возвращает пустоту. |
|||
1
DJ Anthon
14.11.11
✎
10:26
|
а в чем проблема-то?
|
|||
2
SpellKeeper
14.11.11
✎
10:27
|
А запрос где формируется?
|
|||
3
Alco0
14.11.11
✎
10:30
|
1. Проблема в том, что ТЗ СоставКомиссии имеет три строки, а запрос возвращает пусто.
2. Запрос сидит во внешнем отчете. |
|||
4
SpellKeeper
14.11.11
✎
10:34
|
А таблица СоставКомиссии откуда берется? Она в отчете формируется?
Проверьте не получилось ли так, что запрос вызывается в модуле отчета, а таблица формируется на форме и при этом под них сделаны две переменные с одинаковым названием. |
|||
5
Alco0
14.11.11
✎
10:42
|
4. таблица СоставКомиссии заполняется до вызова запроса другой процедурой или можно руками заполнить и лежит на форме отчета, в МенеджерВременныхТаблиц она попадает заполненной. Весь код обработки сидит в форме.
|
|||
6
Colleg
14.11.11
✎
10:46
|
банально, проверь, что ДатаНач < ДатаКон )
|
|||
7
Alco0
14.11.11
✎
10:52
|
6. Сам запрос нормально отрабатывает, МЗ_Списание.Материалы заполняется, а МЗ_Списание.СоставКомиссии пустой. Фокус в том, что хочется часть запроса заполнить из документов, а часть своей ТЗ и затем передать запрос в штатную процедуру печати.
|
|||
8
Andy13
14.11.11
✎
10:54
|
МЗ_Списание.СоставКомиссии - это ведь табличная часть существующего документа?
|
|||
9
Alco0
14.11.11
✎
10:56
|
8. Да. Хочется подменить данные из штатной ТЗ документа в запросе своими.
|
|||
10
SpellKeeper
14.11.11
✎
10:58
|
Так Вы ж данные по составу комиссии выбираете из документа, а надо из таблицы, которую в менеджер запихали.
|
|||
11
SpellKeeper
14.11.11
✎
10:59
|
Ее мало в менеджер вставить, надо же еще и в запросе подключить.
|
|||
12
Andy13
14.11.11
✎
11:01
|
(9) Может так?
ТЗ.( НомерСтроки, ДолжностьЧленаКомиссии, ФамилияЧленаКомиссии, ИмяЧленаКомиссии, ОтчествоЧленаКомиссии ) Как СоставКомиссии |
|||
13
Alco0
14.11.11
✎
11:08
|
10. Точно из документа выбирается
11. Как подключить? 12. Ругатся "Поле не найдено "ТЗ"". Похоже хочет "подключить" из 11. |
|||
14
Andy13
14.11.11
✎
11:15
|
(13) Гм, а временная таблица то и не описана в запросе. Добавьте.
И уберите: Запрос.УстановитьПараметр("ТЗ",СоставКомиссии); это явно лишнее. |
|||
15
SpellKeeper
14.11.11
✎
11:15
|
А там никакой выборки через точку нет?
Вложенные таблицы не понимают такой выборки. |
|||
16
Andy13
14.11.11
✎
11:25
|
(15) Точно. не понимают, так как не являются табличными частями. Засада однако...
|
|||
17
Alco0
14.11.11
✎
11:38
|
16. Как я понимаю путь тупиковый. Легче процедурину печати, идущую за запросом подпилить.
|
|||
18
SpellKeeper
14.11.11
✎
11:39
|
Никакой засады.
Перед тем, как вставлять в запрос, надо ТЗ обработать: создать все нужные колонки, и заполнить их нужными данными. |
|||
19
Alco0
14.11.11
✎
11:41
|
Так колонки один в один, данные присутствуют. Как к запросу прилепить не врублюсь.
|
|||
20
SpellKeeper
14.11.11
✎
11:41
|
17. Кстати, как вариант.
Будет, даже проще. Вызвать ЗаполнитьКолонку для ТЗ результат и все. Там же значения одинаковые? |
|||
21
Alco0
14.11.11
✎
11:46
|
20. Имеется ввиду ЗаполнитьКолонку после Запрос.Выполнить()? А разве выборку дает править?
|
|||
22
SpellKeeper
14.11.11
✎
12:24
|
Нет, конечно.
Выгрузить в таблицу и ее править. А потом уже из этой таблицы выбирать строки. |
|||
23
Alco0
14.11.11
✎
12:29
|
22. Надо попробовать скормить штатной процедуре печати ТЗ вместо результата запроса . Если примет, то проблема снимется.
|
|||
24
SpellKeeper
14.11.11
✎
12:35
|
Вы посмотрите, как в штатной процедуре выборка делается. Результат запроса и ТЗ две разные вещи.
|
|||
25
SpellKeeper
14.11.11
✎
12:37
|
В крайнем случае, можно результирующую ТЗ запихить в запрос, сделать из нее выборку и уже ее скормить штатной процедуре.
|
|||
26
Alco0
14.11.11
✎
13:54
|
Тупое подсовывание ТЗ вместо запроса как и ожидалось не сработало. Буду пробовать 25.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |