Имя: Пароль:
1C
1С v8
Как вывести табличную часть документа в макет?
0 KattyMix
 
03.11.11
10:20
В  процедуре запросом  выводится  список  документов  и  необходимо вывести табличную  часть  документа  в  макет.Подскажите  плиз,как  обратиться  к элементу  табличной  части?

Процедура Сформировать()
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |ОбрабатыватьДокументы  Проведенные;
   |ПоступлениеМатериалов = Документ.ПоступлениеМатериалов.ТекущийДокумент;
   |Группировка ПоступлениеМатериалов;
   |"//}}ЗАПРОС
   ;
   
  Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("М-4");
   
Пока Запрос.Группировка(1) = 1 Цикл    
   // формирование шапки
   СекцияШапка = Таб.ПолучитьСекцию("Шапка");
   СекцияШапка.Номер                    = СокрЛП(Запрос.ПоступлениеМатериалов.НомерДок);
   СекцияШапка.ДатаСоставления          = Формат(Запрос.ПоступлениеМатериалов.ДатаДок, "Д (0)ДДММГГГГ");

   // формирование строк
   СекцияСтрока = Таб.ПолучитьСекцию("Строка");
   Запрос.ПоступлениеМатериалов.ВыбратьСтроки();
   Пока Запрос.ПоступлениеМатериалов.ПолучитьСтроку() = 1 Цикл

//ВОТ  ТУТ  ПРОБЛЕМА!!!!
       СекцияСтрока.Материал            = Материал;
   //    СекцияСтрока.НоменклатурныйНомер = Запрос.ПоступлениеМатериалов.Материал.Код;

   Таб.ТолькоПросмотр(1);
   Таб.Показать("Печать приходного ордера форма №М-4","");
   
   КонецЦикла;
КонецЦикла    
   ///---
1 KattyMix
 
03.11.11
10:21
Да-программа  1С  7.7 ,а не  8-ка!!!
2 izekia
 
03.11.11
10:25
материал у тебя откуда берется?
3 izekia
 
03.11.11
10:25
очевидно что 77
4 izekia
 
03.11.11
10:25
Запрос.ПоступлениеМатериалов.Материал вместо Материал видимо так должно быть
5 KattyMix
 
03.11.11
10:28
Материал-это  колонка в  ТЧ.
Да  вот я  так  и  писала
Запрос.ПоступлениеМатериалов.Материал ,но он  просто зависает и все...=(((
6 izekia
 
03.11.11
10:49
блин, пятница
это из цикла убери
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Печать приходного ордера форма №М-4","");
7 KattyMix
 
03.11.11
11:16
Убрала-все тоже  самое...Он в принципе   отладчиком
Запрос.ПоступлениеМатериалов.Материал -пусто  ставит
8 izekia
 
03.11.11
11:57
так у меня 77 нет под рукой, поэтому по порядку
 Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("М-4");
   
Пока Запрос.Группировка(1) = 1 Цикл    
   // формирование шапки

   СекцияШапка = Таб.ПолучитьСекцию("Шапка");
   Номер                    = СокрЛП(Запрос.ПоступлениеМатериалов.НомерДок);
   ДатаСоставления          = Формат(Запрос.ПоступлениеМатериалов.ДатаДок, "Д (0)ДДММГГГГ");
   Таб.ВывестиСекцию(СекцияШапка);

   // формирование строк

   СекцияСтрока = Таб.ПолучитьСекцию("Строка");
   док = Запрос.ПолучитьЗначениеГруппировки(1); // какой-то такой синтаксис, если я не ошибаюсь
   док.ВыбратьСтроки();
   Пока док.ПолучитьСтроку() = 1 Цикл

//ВОТ  ТУТ  ПРОБЛЕМА!!!!

       Материал            = док.Материал;
       Таб.ВывестиСекцию(СекцияСтрока);
   //    СекцияСтрока.НоменклатурныйНомер = Запрос.ПоступлениеМатериалов.Материал.Код;


   
   КонецЦикла;

   Таб.ТолькоПросмотр(1);
   Таб.Показать("Печать приходного ордера форма №М-4","");
9 izekia
 
03.11.11
11:58
(7) и сделай пока за маленький период
10 KattyMix
 
03.11.11
12:21
а  мне тут  советуют  сделать в  запросе  группировку по  СтрокаДокумент.Но  все  равно  что-то  делаю не так...(((

Процедура Сформировать()
   Перем Запрос, ТекстЗапроса;
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |ОбрабатыватьДокументы  Проведенные;
   |ПоступлениеМатериалов = Документ.ПоступлениеМатериалов.ТекущийДокумент;  
   |Группировка Документ;
   |Группировка СтрокаДокумента;
   |"//}}ЗАПРОС
   ;
   
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("М-4");
   
Пока Запрос.Группировка(1) = 1 Цикл    
   // формирование шапки
   СекцияШапка = Таб.ПолучитьСекцию("Шапка");
   СекцияШапка.Номер                    = СокрЛП(Запрос.ПоступлениеМатериалов.НомерДок);
   СекцияШапка.ДатаСоставления          = Формат(Запрос.ПоступлениеМатериалов.ДатаДок, "Д (0)ДДММГГГГ");
   СекцияШапка.Организация              = "Организация: " + Константа.НазваниеОрганизации;
   СекцияШапка.КодОКПО                  = СокрЛП(Константа.КодОКПО);
   Если Запрос.ПоступлениеМатериалов.ВидПоступления = 0 Тогда
       СекцияШапка.МестоХранения            =Запрос.ПоступлениеМатериалов.МестоХранения;
       СекцияШапка.СтруктурноеПодразделение = "Структурное подразделение: " + Запрос.ПоступлениеМатериалов.МестоХранения;
   Иначе
       СекцияШапка.МестоХранения            = "";
       СекцияШапка.СтруктурноеПодразделение = "Структурное подразделение: ";
   КонецЕсли;
   СекцияШапка.Поставщик                = Запрос.ПоступлениеМатериалов.Контрагент;
   СекцияШапка.КодПоставщика            = Запрос.ПоступлениеМатериалов.Контрагент.Код;
   Если Запрос.ПоступлениеМатериалов. ВидПоступления = 0 Тогда
       СекцияШапка.КорСчет                  = "60.1";
   Иначе
       СекцияШапка.КорСчет                  = "10.7";
   КонецЕсли;
   Таб.ВывестиСекцию(СекцияШапка);
   
   
   Пока Запрос.Группировка("СтрокаДокумента") = 1 Цикл
Запрос.ПоступлениеМатериалов.ПолучитьСтроку();
       СекцияСтрока.Материал            = Запрос.ПоступлениеМатериалов.Материал;
   
   Таб.ВывестиСекцию(СекцияСтрока);

//КонецЦикла;  
КонецЦикла;

   
   Если Запрос.ПоступлениеМатериалов.ВидПоступления = 0 Тогда
       Таб.Опции(0,0,0,0,"ОпцииПечатиМ4","ОкноМ4");
   Иначе
       Таб.Опции(0,0,?(Запрос.ПоступлениеМатериалов.Проведен() = 0, 1, 0),0,"ОпцииПечатиМ4","ОкноМ4");
       Таб.ОбластьПечати(?(Запрос.ПоступлениеМатериалов.Проведен() = 0, 2, 1), 2,,);
   КонецЕсли;
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Печать приходного ордера форма №М-4","");
11 KattyMix
 
03.11.11
12:39
хэлп(