Имя: Пароль:
1C
1С v8
Подскажите с циклом..
0 hasan-rusel
 
02.04.13
06:04
БУХам вдруг понадобилось формировать отчет не только по 1 подразделению, но и по всем (чтобы выбор был)
После поправки запроса получился следующий код:

   Запрос1 = Новый Запрос;
   Запрос1.Текст ="ВЫБРАТЬ
                  |    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
                  |    ХозрасчетныйДвиженияССубконто.Сумма,
                  |    ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт,
                  |    ХозрасчетныйДвиженияССубконто.Период,
                  |    ХозрасчетныйДвиженияССубконто.ПодразделениеКт.Ссылка КАК ПодразделениеКтСсылка,
                  |    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
                  |    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
                  |    ХозрасчетныйДвиженияССубконто.СуммаПРДт,
                  |    ХозрасчетныйДвиженияССубконто.СуммаПРКт,
                  |    ХозрасчетныйДвиженияССубконто.СуммаВРДт,
                  |    ХозрасчетныйДвиженияССубконто.СуммаВРКт
                  |ИЗ
                  |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
                  |            &НачПериода,
                  |            &КонПериода,
                  |            СчетДт = &Счет
                  |                           И ВЫБОР КОГДА &Подразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ ПодразделениеДт.Ссылка = &Подразделение КОНЕЦ,
                  |            ,
                  |            ) КАК ХозрасчетныйДвиженияССубконто
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ХозрасчетныйДвиженияССубконто.ПодразделениеКт.Ссылка,
                  |    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
                  |    ХозрасчетныйДвиженияССубконто.Сумма,
                  |    ХозрасчетныйДвиженияССубконто.СчетКт,
                  |    ХозрасчетныйДвиженияССубконто.Период,
                  |    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
                  |    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
                  |    ХозрасчетныйДвиженияССубконто.СуммаПРДт,
                  |    ХозрасчетныйДвиженияССубконто.СуммаПРКт,
                  |    ХозрасчетныйДвиженияССубконто.СуммаВРДт,
                  |    ХозрасчетныйДвиженияССубконто.СуммаВРКт
                  |ИТОГИ ПО
                  |    ПодразделениеКтСсылка";
                 
                 
Запрос1.УстановитьПараметр("Счет", Счет);
Запрос1.УстановитьПараметр("Подразделение", Подразделение);

Запрос1.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
Запрос1.УстановитьПараметр("КонПериода", КонецДня(КонПериода));

Результат = Запрос1.Выполнить();

ВыборкаПодразделения = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаПодразделения.Следующий() Цикл
   Выборка = ВыборкаПодразделения.Выбрать();
   Пока Выборка.Следующий() Цикл


       Секция.Параметры.Заполнить(Выборка);
       Таблица.Присоединить(Секция);
   КонецЦикла;
КонецЦикла;


ДУмаю что нужно как-то обойти цикл
Пока ВыборкаПодразделения.Следующий() Цикл
   Выборка = ВыборкаПодразделения.Выбрать();
но могу и ошибаться...


Подскажите пожалуйста как поправить !
Заранее спасибо !
1 Галахад
 
гуру
02.04.13
06:12
Во это убери.

И ВЫБОР КОГДА &Подразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ ПодразделениеДт.Ссылка = &Подразделение КОНЕЦ
2 Wobland
 
02.04.13
06:14
(1) это у него работает (должно), это ему вчера советовали ;)
3 kosts
 
02.04.13
06:14
(0) Выведи еще итоги по подразделениям


Пока ВыборкаПодразделения.Следующий() Цикл

   СекцияПодр.Параметры.Заполнить(ВыборкаПодразделения);
   Таблица.Вывести(СекцияПодр);

   Выборка = ВыборкаПодразделения.Выбрать();
   ...
КонецЦикла;
4 Галахад
 
гуру
02.04.13
06:16
(2) Гм. Насоветовали, ироды. :-)

Как должны выйти все подразделения, если он отбор делает?
5 Wobland
 
02.04.13
06:19
(4) ПодразделениеДт.Ссылка = &Подразделение
6 Wobland
 
02.04.13
06:19
(5) это если делает. иначе - истина
7 hasan-rusel
 
02.04.13
06:21
(3) А если выбрано 1 подразделение, то норм все будет ?
8 Wobland
 
02.04.13
06:22
(7) ты всё правильно в (0) понял. постеснялся взять и проверить?
9 Галахад
 
гуру
02.04.13
06:22
(5) Ага, гоню.

(7) Соврал я.
10 hasan-rusel
 
02.04.13
06:22
(1) (2) да-да, все работает )
11 hasan-rusel
 
02.04.13
06:28
(3) Т.е. отдельная колонка по подразделениям ?
Не, у меня итоги по всем подразделениям (если оно (подразделение) не выбрано) формируются норм (это у меня 1 колонка)
А вот дальше по подразделениям не идет ((

Щас скрин кину
12 hasan-rusel
 
02.04.13
06:38
Вот так если выбираем подразделение(норм):

http://s018.radikal.ru/i501/1304/be/07426fb52e0b.jpg




А вот так если не выбираем подразделение (не норм, т.к. по 20 счету Кт только  1 подразделение):

http://s16.radikal.ru/i190/1304/5c/0322ab6e37ec.jpg
13 hasan-rusel
 
02.04.13
06:40
А итоги формируются норм, т.к. первые 4 колонки выводяться так:

Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
                 |    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
                 |    ХозрасчетныйДвиженияССубконто.Сумма,
                 |    ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт,
                 |    ХозрасчетныйДвиженияССубконто.Период,
                 |    ХозрасчетныйДвиженияССубконто.ПодразделениеКт.Ссылка КАК ПодразделениеКтСсылка,
                 |    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаПРДт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаПРКт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаВРДт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаВРКт
                 |ИЗ
                 |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
                 |            &НачПериода,
                 |            &КонПериода,
                 |            СчетДт = &Счет
                 |                           И ВЫБОР КОГДА &Подразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ ПодразделениеДт.Ссылка = &Подразделение КОНЕЦ,
                 |                  ,
                 |            ) КАК ХозрасчетныйДвиженияССубконто
                 |
                 |УПОРЯДОЧИТЬ ПО
                 |    ПодразделениеКтСсылка,
                 |    СчетКт";
                 
   Запрос.УстановитьПараметр("Счет", Счет);
   Запрос.УстановитьПараметр("Подразделение", Подразделение);
   Запрос.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
   Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));
   
   Выборка = Запрос.Выполнить().Выбрать();

   ////////ЦИКЛ ПО 1-4 КОЛОНКАМ
   Пока Выборка.Следующий() Цикл
       Секция.Параметры.Заполнить(Выборка);
       Таблица.Присоединить(Секция);
14 Галахад
 
гуру
02.04.13
06:44
Это чему равно:
типзнч(Подразделение)


PS Клевые стрелки, это в какой программе?
15 hasan-rusel
 
02.04.13
06:45
(14) СправочникСсылка.ПодразделенияОрганизаций

МегаПаинт )))
16 hasan-rusel
 
02.04.13
07:24
Не верно немного в 1 посте написал.
Вывод идет так:

   Секция.Параметры.Заполнить(Выборка);
       
      КонецЦикла;
Таблица.Присоединить(Секция);
КонецЦикла;
17 Лефмихалыч
 
02.04.13
07:59
(0) юзай СКД, хорош микроскопом гвозди заколачивать
18 hasan-rusel
 
02.04.13
09:04
(17) Да осталось только зафигачить по всем подразделениям и все готово !!

Помогите пожалуйста !!!!!!!!!!
19 Xatori
 
02.04.13
09:38
мб не очень задачу понял, но если нужно получать по многим подразделениям наверное самое простое не устанавливать равенство с параметром а воспользоваться конструкцией "В" и передавать туда всегда массив значений.
Основная теорема систематики: Новые системы плодят новые проблемы.