Имя: Пароль:
1C
1С v8
Запрос в макет, ошибка
0 ponaroshku
 
08.12.11
05:56
Здравствуйте!
написала запрос, результаты должны передаваться в макет
сам запрос не пустой, прогнала по консоли
однако в макет не выводится
Подскажите пожалуйста, где ошибка

Запрос = Новый  Запрос;
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("10026"));
Запрос.Текст = "ВЫБРАТЬ
|НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка,
|НачислениеЗарплатыРаботникамОрганизацийНачисления.Сотрудник как СотрудникОрганизации,
|НачислениеЗарплатыРаботникамОрганизацийНачисления.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
|НачислениеЗарплатыРаботникамОрганизацийНачисления.ВидРасчета КАК ВидРасчетаПремии,
|НачислениеЗарплатыРаботникамОрганизацийНачисления.Результат КАК результат
|ИЗ
|Документ.НачислениеЗарплатыРаботникамОрганизаций.Начисления КАК НачислениеЗарплатыРаботникамОрганизацийНачисления
|ГДЕ
|НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка = &Ссылка
|И НачислениеЗарплатыРаботникамОрганизацийНачисления.ВидРасчета = &ВидРасчета
|ИТОГИ ПО
|ПодразделениеОрганизации
|";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ПодразделениеОрганизации");
       Пока  Выборка.Следующий() Цикл
       ОбластьМакета.Параметры.фио =   Выборка.СотрудникОрганизации;
       ОбластьМакета.Параметры.Сумма = Выборка.результат;
       ТабДокумент.Вывести(ОбластьМакета);
       КонецЦикла;
1 Нуф-Нуф
 
08.12.11
06:10
тебя таки взяли на работу?
2 Wobland
 
08.12.11
06:12
ТабДок показываешь кому-то?
3 ponaroshku
 
08.12.11
06:14
(2) исправила на вот так
       Пока  Выборка.Следующий() Цикл
       ОбластьМакета.Параметры.подразделение = Выборка.ПодразделениеОрганизации;
       ОбластьМакета.Параметры.фио =   Выборка.СотрудникОрганизации;
       ОбластьМакета.Параметры.Сумма = Выборка.Результат;
       ТабДокумент.Вывести(ОбластьМакета);
       КонецЦикла;
       ТабДокумент.Показать();
4 Нуф-Нуф
 
08.12.11
06:15
ну покажи уж весь код от создания ТабДокумент
5 Wobland
 
08.12.11
06:16
и подумай, как бы обойтись одной строчкой
ОбластьМакета.Параметры.Заполнить(Выборка)
6 ponaroshku
 
08.12.11
06:21
(4) да что уж там:)
Функция Печать() Экспорт
   
   ТабДокумент = Новый ТабличныйДокумент;
   Макет = ПолучитьМакет("МакетПриказа");
   
   ОбластьМакета = Макет.ПолучитьОбласть("Шапка2") ;
   Запрос = Новый  Запрос;
   Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
   Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("10026"));
   Запрос.Текст = "ВЫБРАТЬ
       |НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка,
       |НачислениеЗарплатыРаботникамОрганизацийНачисления.Сотрудник как СотрудникОрганизации,
       |НачислениеЗарплатыРаботникамОрганизацийНачисления.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
       |НачислениеЗарплатыРаботникамОрганизацийНачисления.ВидРасчета КАК ВидРасчетаПремии,
       |НачислениеЗарплатыРаботникамОрганизацийНачисления.Результат КАК результат
       |ИЗ
         |Документ.НачислениеЗарплатыРаботникамОрганизаций.Начисления КАК НачислениеЗарплатыРаботникамОрганизацийНачисления
       |ГДЕ
         |НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка = &Ссылка
         |И НачислениеЗарплатыРаботникамОрганизацийНачисления.ВидРасчета = &ВидРасчета
       |ИТОГИ ПО
       |ПодразделениеОрганизации
       |";
   РезультатЗапроса = Запрос.Выполнить();
   Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ПодразделениеОрганизации");
   выборкаПоРезультату = Выборка.Выбрать();
   
       Пока  Выборка.Следующий() Цикл
       ОбластьМакета.Параметры.Заполнить(Выборка);
       ТабДокумент.Вывести(ОбластьМакета);
       КонецЦикла;
       ТабДокумент.Показать();
       
   ТабДокумент.ОтображатьСетку = Ложь;
   
   Возврат ТабДокумент;
   
КонецФункции
7 ponaroshku
 
08.12.11
06:21
(5) я так тоже ставила, результат тот же - пустая таблица
8 Wobland
 
08.12.11
06:22
Пока  Выборка.Следующий() Цикл
 //вывод группировки
 выборкаПоРезультату = Выборка.Выбрать();
 Пока выборкаПоРезультату.Следующий()
   //вывод строки
9 Wobland
 
08.12.11
06:23
(7) плохо ставила. параметры макета должны совпадать по имени с полями выборки
10 ponaroshku
 
08.12.11
06:30
(9) сделала как в (8)
   
   Пока  Выборка.Следующий() Цикл
           выборкаПоРезультату = Выборка.Выбрать();
           Пока выборкаПоРезультату.Следующий() Цикл ;
           ОбластьМакета.Параметры.Заполнить(Выборка);
           ТабДокумент.Вывести(ОбластьМакета);            
           ТабДокумент.Показать();            
           КонецЦикла;
   КонецЦикла;

на выходе все равно получаю пустую таблицу
11 Wobland
 
08.12.11
06:31
ТабДокумент.Показать(); за циклы вынеси
12 ponaroshku
 
08.12.11
06:32
(11) я пробовала внутри первого цикла и вообще убрать за них, тоже на это подумала вначале, не помогло
13 Wobland
 
08.12.11
06:34
что есть пустая таблица? строки есть там?
14 Нуф-Нуф
 
08.12.11
06:35
ужаснах
15 ponaroshku
 
08.12.11
06:36
(13) да, проблема та же, что и в 1м пункте
он ставит много строк из  запроса, но строки пустые

изначально строки были пустыми
16 ponaroshku
 
08.12.11
06:38
запрос 100% не пустой, через консоль большая таблица выводится
17 Wobland
 
08.12.11
06:40
>запрос 100% не пустой
вообще говоря, не 100%
>он ставит много строк из  запроса, но строки пустые
в вот тут у тебя из выборки в параметры не попадает ничего
18 ponaroshku
 
08.12.11
06:44
(17) получилось, но косяк был не в запросе

проблема была в имени параметра макета, не совпадал с названием в запросе
19 Wobland
 
08.12.11
06:48
(18) -> (9)
20 ponaroshku
 
08.12.11
06:50
(19) да, я перечитала внимательнее, спасибо вам
21 ponaroshku
 
08.12.11
12:56
Апну тему:)

вообщем с помощью этого запроса удалось добиться нужного эффекта (генерация ПФ в зависимости от подразделения) но теперь новая проблема: если начисления премия в документе 2 раза, на вывод идет

подразделение 1
иванов 100
иванов 100

а не подразделение 1
иванов 200

Поставила итоги, выводит результат, но итого по подразделению
подразделение 1 = 200
иванов 100
иванов 100

поставила итоги с иерархией, но тоже не добилась эффекта

Итоги по подразделению убирать нельзя, там дальше с их помощью реализована генерация ПФ

Как бы сделать с правильным суммированием?

Запрос = Новый  Запрос;
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("10026"));
Запрос.Текст = "ВЫБРАТЬ
|НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка,
|НачислениеЗарплатыРаботникамОрганизацийНачисления.Сотрудник как Сотрудник,
|НачислениеЗарплатыРаботникамОрганизацийНачисления.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
|НачислениеЗарплатыРаботникамОрганизацийНачисления.ВидРасчета КАК ВидРасчетаПремии,
|НачислениеЗарплатыРаботникамОрганизацийНачисления.Результат КАК Результат
|ИЗ
|Документ.НачислениеЗарплатыРаботникамОрганизаций.Начисления КАК НачислениеЗарплатыРаботникамОрганизацийНачисления
|ГДЕ
|НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка = &Ссылка
|И НачислениеЗарплатыРаботникамОрганизацийНачисления.ВидРасчета = &ВидРасчета
|ИТОГИ
|сумма(результат)
|ПО
|ПодразделениеОрганизации поле сотрудник
|";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
22 Wobland
 
08.12.11
13:01
а что такое поле в итогах?
ИТОГИ СУММА(Результат) ПО ПодразделениеОрганизации уже пробовала?
23 Shrek_yar
 
08.12.11
13:06
группировку сделать ??
24 ponaroshku
 
08.12.11
13:07
(22)из консоли скопировала
в оригинале
|ГДЕ
|НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка = &Ссылка
|И НачислениеЗарплатыРаботникамОрганизацийНачисления.ВидРасчета = &ВидРасчета
|ИТОГИ    ПО
|ПодразделениеОрганизации
|";

про поле погуглила, но не пошло у меня с ним, не поняла, как работает
25 ponaroshku
 
08.12.11
13:18
(23) группировкой у меня не получается, итоги по подразделению сбиваются
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.