Имя: Пароль:
1C
1С v8
Выборка по документу .
0 tg30000
 
26.03.13
06:53
Подскажите пожалуйста .Есть к примеру документ "поступление товаров и услуг" в котором есть табличная часть.
Необходимо сформировать печатную форму что бы выводилась шапка(дата,номер и т.д) и сама табличная часть.

Что-то не пойму как сделать. Хотел в одном запросе но если истользовать итого с обходом "по группировке" и "прямым" то в шапку только название документа попадет ну и что еще будет в итогах а дата документа номер будет "неопределенно" соответственно....


Сделал так но наверное некорректно...






Процедура ПоГруппировкамНажатие(Элемент)
   
   ТабДок=Новый ТабличныйДокумент;
   Макет = ПолучитьМакет("Макет");
   ЗапросШапка = Новый Запрос;
   ЗапросШапка.Текст="ВЫБРАТЬ
   |    ПоступлениеТоваровУслуг.Ссылка.Номер,
   |    ПоступлениеТоваровУслуг.Ссылка.Дата,
   |    ПоступлениеТоваровУслуг.Ссылка.Ссылка КАК Ссылка
   |ИЗ
   |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг";
   РезультатШапка = ЗапросШапка.Выполнить() ;
   ВыборкаШапка=РезультатШапка.Выбрать();
   ОблШапка=Макет.ПолучитьОбласть("Шапка");
   ОблСтрока=Макет.ПолучитьОбласть("Строка");
   Пока ВыборкаШапка.Следующий() Цикл
       ОблШапка.Параметры.Ссылка = ВыборкаШапка.Ссылка;
       ТабДок.Вывести(ОблШапка);
       
       ЗапросСтрока= Новый Запрос;
       ЗапросСтрока.Текст="ВЫБРАТЬ
       |    ПоступлениеТоваровУслугТовары.НомерСтроки,
       |    ПоступлениеТоваровУслугТовары.Номенклатура,
       |    ПоступлениеТоваровУслугТовары.Количество,
       |    ПоступлениеТоваровУслугТовары.Цена,
       |    ПоступлениеТоваровУслугТовары.Сумма
       |ИЗ
       |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
       |ГДЕ
       |    ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка";
       
       ЗапросСтрока.УстановитьПараметр("Ссылка",ВыборкаШапка.Ссылка);
       РезультатСтрока = ЗапросСтрока.Выполнить();
       ВыборкаСтрока=РезультатСтрока.Выбрать();
       Пока ВыборкаСтрока.Следующий() Цикл
           ОблСтрока.Параметры.Номенклатура = ВыборкаСтрока.Номенклатура;
           ТабДок.Вывести(ОблСтрока);
       КонецЦикла;
   КонецЦикла;
   ТабДок.Показать();
КонецПроцедуры
1 Godofsin
 
26.03.13
06:56
это жесть...
2 Godofsin
 
26.03.13
06:57
убрать запрос из цикла, а то щас линейкой по пальцам настучат
3 НафНаф
 
26.03.13
06:59
ыыыы

ПоступлениеТоваровУслуг.Ссылка.Ссылка КАК Ссылка

лучше так:

ПоступлениеТоваровУслуг.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка КАК СсылкаВНатуре
4 Godofsin
 
26.03.13
06:59
(3) =)
5 tg30000
 
26.03.13
07:00
(2)так как сделать то ?
6 Cube
 
26.03.13
07:00
(0) Лучше б ты этого не писал... :)
Опиши задачу - что нужно получить на выходе и зачем.
7 Галахад
 
гуру
26.03.13
07:01
Да, нормально написано.
8 Godofsin
 
26.03.13
07:01
(0) Сделай печ. форму, привяжи ее к документу, а пакетную распечатку делай через "обработка справочников и документов"
9 tg30000
 
26.03.13
07:03
Как в одном запросе то это все перебрать что бы в шапку выводилось номер,дата документа и табл часть была.
10 tg30000
 
26.03.13
07:03
Через обход запроса не выводится номер и дата в шапку тогда
11 НафНаф
 
26.03.13
07:04
(9) итоги по шапке
обход по группировкам + обход по строкам = вложенный цикл
12 Cube
 
26.03.13
07:04
(9) (10) Ты сам-то себя понимаешь?
13 tg30000
 
26.03.13
07:07
(11) сейчас попробую , скину что получится..
14 НафНаф
 
26.03.13
07:07
ВЫБРАТЬ
  ПоступлениеТоваровУслугТовары.Ссылка,
  ПоступлениеТоваровУслугТовары.Ссылка.Номер,
  ПоступлениеТоваровУслугТовары.Ссылка.Дата,
  ПоступлениеТоваровУслугТовары.НомерСтроки,
  ПоступлениеТоваровУслугТовары.Номенклатура,
  ПоступлениеТоваровУслугТовары.Количество,
  ПоступлениеТоваровУслугТовары.Цена,  
  ПоступлениеТоваровУслугТовары.Сумма
ИЗ
  Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ГДЕ
  ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка"
ИТОГИ ПО Ссылка
15 tg30000
 
26.03.13
07:12
(14) точно... что-то я втупил ...
Спасибо тебе огромное!!!
16 tg30000
 
26.03.13
07:27
Вроде все получилось.Сделал для примера в отчете тестовом.




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

       ВыборкаСтрока=ВыборкаШапка.Выбрать(ОбходРезультатаЗапроса.Прямой);
       Пока ВыборкаСтрока.Следующий() Цикл
           ОблСтрока.Параметры.Номенклатура=ВыборкаСтрока.Номенклатура;
           ТабДок.Вывести(ОблСтрока);
       КонецЦикла;
       КонецЦикла;
   
   
   ТабДок.Показать();
   
КонецПроцедуры
17 Паланик
 
26.03.13
07:33
(16) Тебе все поступления вывести надо что ли с разворотом по ТЧ? Зачем?
18 tg30000
 
26.03.13
07:35
(17) ну что попросили сделать ,то сделал.
19 Паланик
 
26.03.13
07:39
Ясень
Тогда исправь заодно:
ОблШапка.Параметры.Ссылка=ВыборкаШапка.Ссылка;
       ОблШапка.Параметры.Номер=ВыборкаШапка.Номер;

на
ОблШапка.Параметры.Заполнить(ВыборкаШапка);
20 tg30000
 
26.03.13
07:42
(19) ага спасибо, это если поля совпадают в запросе и табдоке )
21 Паланик
 
26.03.13
07:53
(20) Да.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.