Имя: Пароль:
1C
1С v8
Как присоединить область
0 Baglandir
 
13.11.12
20:16
Хочу в ттн ке сделать чтобы в результате - цыкла - каждая навая табличная область была "В одном " ТабДоке
Сейчас - у меня происходит замещение  (Выводится только результат только последнего цикла)


   НомерПрим = 1;
   Пока НомерПрим <=4 Цикл
   ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
   Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
       ТоварКод = "Артикул";
   Иначе
       ТоварКод = "Код";
   КонецЕсли;

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ДатаСреза",          Документ.Дата);
   Запрос.УстановитьПараметр("СтруктурнаяЕдиница", Документ.Склад);
   Запрос.УстановитьПараметр("ТекущийДокумент",  Документ);
   Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка());

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

   Шапка = Запрос.Выполнить().Выбрать();
   Шапка.Следующий();

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент", Документ);

   Если Документ.ВалютаДокумента = Документ.ДоговорКонтрагента.ВалютаВзаиморасчетов Тогда
       // Документ оформлен в валюте взаиморасчетов
       Запрос.УстановитьПараметр("Курс", Документ.КурсВзаиморасчетов);
       Запрос.УстановитьПараметр("Кратность", Документ.КратностьВзаиморасчетов);
   Иначе
       // Документ оформлен в валюте регламентированного учета
       Запрос.УстановитьПараметр("Курс", 1);
       Запрос.УстановитьПараметр("Кратность", 1);
   КонецЕсли;

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

   ЗапросТовары = Запрос.Выполнить().Выгрузить();

   ТабДокумент = Новый ТабличныйДокумент;

   // Зададим параметры макета
   ТабДокумент.ПолеСверху              = 0;
   ТабДокумент.ПолеСлева               = 5;
   ТабДокумент.ПолеСнизу               = 0;
   ТабДокумент.ПолеСправа              = 5;
   ТабДокумент.АвтоМасштаб             = Истина;
   ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;

   Макет       = ПолучитьМакет("ТТННовая");
   
   КодЯзыкаПечать = "uk";

   // Выводим общие реквизиты шапки
   СведенияОПоставщике       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо,        Шапка.ДатаДокумента,, Шапка.БанковскийСчет);
   СведенияОПокупателе       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель,       Шапка.ДатаДокумента);
   СведенияОГрузополучателе  = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель,  Шапка.ДатаДокумента);
   СведенияОГрузоотправитель = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента);

   ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
   ОбластьМакета.Параметры.НомерДокумента                = НомерТТН;
   ОбластьМакета.Параметры.ДатаДокумента                 = Формат(Шапка.ДатаДокумента,"ДЛФ=DD");
   ОбластьМакета.Параметры.НомерПрим                      = НомерПрим;
       //ОбластьМакета.Параметры.Грузоотправитель              = Шапка.Грузоотправитель;
   //ОбластьМакета.Параметры.Грузополучатель               = Шапка.Грузополучатель;
   //ОбластьМакета.Параметры.Плательщик                    = Шапка.Покупатель;
   ОбластьМакета.Параметры.ГрузоотправительПредставление = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ");
   ОбластьМакета.Параметры.ГрузополучательПредставление  = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе,  "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ");
   ОбластьМакета.Параметры.ПлательщикПредставление       = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе,  "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ");
   //ОбластьМакета.Параметры.ГрузоотправительЕДРПОУ = ?(ЗначениеЗаполнено(СведенияОГрузоотправитель.КодПоЕДРПОУ), СведенияОГрузоотправитель.КодПоЕДРПОУ, СведенияОГрузоотправитель.КодПоДРФО);
   //ОбластьМакета.Параметры.ГрузополучательЕДРПОУ  = ?(ЗначениеЗаполнено(СведенияОГрузополучателе.КодПоЕДРПОУ), СведенияОГрузополучателе.КодПоЕДРПОУ, СведенияОГрузополучателе.КодПоДРФО);
   //ОбластьМакета.Параметры.ПлательщикЕДРПОУ       = ?(ЗначениеЗаполнено(СведенияОПокупателе.КодПоЕДРПОУ), СведенияОПокупателе.КодПоЕДРПОУ, СведенияОПокупателе.КодПоДРФО);
   
   ОбластьМакета.Параметры.МаркаИГосНомерАвтомобиля = МаркаИГосНомерАвтомобиля;
   ОбластьМакета.Параметры.ФИОВодителя = ВодительСправочник;
//    ОбластьМакета.Параметры.ВидПеревозки = ВидПеревозки;
   ОбластьМакета.Параметры.ГосНомерПрицепа = ГосНомерПрицепа;
   
   ОбластьМакета.Параметры.ПунктПогрузки = ПунктПогрузки;
   ОбластьМакета.Параметры.ПунктРазгрузки = ПунктРазгрузки;
   
   ОбластьМакета.Параметры.ОрганизацияПеревозчик = Перевозчик;
   ОбластьМакета.Параметры.НомерДоверенности = Шапка.ДоверенностьНомер;
   ОбластьМакета.Параметры.ДатаДоверенности = Формат(Шапка.ДоверенностьДата, "ДФ = ""дд.ММ.гггг""");
   
   ТабДокумент.Вывести(ОбластьМакета);

   СтрокНаСтранице = 23;
   СтрокШапки      = 10;
   СтрокПодвала    = 9;
   НомерСтраницы   = 1;

   // Выводим заголовок таблицы
   ОбластьМакета = Макет.ПолучитьОбласть("ПогрузочныеОперации");
   ТабДокумент.Вывести(ОбластьМакета);
   
   
   
   //ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
   //ТабДокумент.Вывести(ЗаголовокТаблицы);

   //КоличествоСтрок = ЗапросТовары.Количество();

   //Если КоличествоСтрок = 1 Тогда
   //    ПереноситьПоследнююСтроку = 0;
   //Иначе
   //    ЦелыхСтраницСПодвалом     = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице);
   //    ЦелыхСтраницБезПодвала    = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице);
   //    ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала;
   //КонецЕсли;

   // инициализация итогов по странице
   ИтогоКоличествоНаСтранице = 0;
   ИтогоСуммаСНДСНаСтранице  = 0;

   // инициализация итогов по документу
   ИтогоМест       = 0;
   ИтогоКоличество = 0;
   ИтогоСуммаСНДС  = 0;
   Ном             = 0;
   ИтогоСуммаНДС   = 0;
   // Выводим многострочную часть докмента
   //ОбластьМакета = Макет.ПолучитьОбласть("Строка");
   Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл

       Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
           Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
           Продолжить;
       КонецЕсли;


       //ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
       //ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрок.ТоварНаименование;

       Мест        = ВыборкаСтрок.КоличествоМест;
       Количество  = ВыборкаСтрок.Количество;
       СуммаСНДС   = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
       СуммаНДС = ВыборкаСтрок.СуммаНДС ;

       //    ОбластьМакета.Параметры.Сумма = СуммаСНДС;
   //    ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаСНДС / Количество);

   //    ТабДокумент.Вывести(ОбластьМакета);


       // увеличим итоги по дукументу
       ИтогоСуммаНДС = ИтогоСуммаНДС+СуммаНДС ;
       ИтогоМест       = ИтогоМест       + Мест;
       ИтогоКоличество = ИтогоКоличество + Количество;
       ИтогоСуммаСНДС  = ИтогоСуммаСНДС  + СуммаСНДС;

   КонецЦикла;

   
   // Выводим итоги по документу в целом
   ОбластьМакета = Макет.ПолучитьОбласть("Всего");
   ОбластьМакета.Параметры.ИтогоКоличество = ИтогоКоличество;
   ОбластьМакета.Параметры.ИтогоСуммаСНДС  = ИтогоСуммаСНДС;

   ТабДокумент.Вывести(ОбластьМакета);

   // Выводим подвал документа
   ОбластьМакета = Макет.ПолучитьОбласть("Подвал");

   Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Руководители, Шапка.ДатаДокумента,);
   Руководитель = Руководители.Руководитель;
   
   // Отпуск товара разрешил
   Если НЕ ЗначениеЗаполнено(Шапка.ОтпускРазрешил) Тогда
       ФИООтпускРазрешил       = Руководитель;
       ДолжностьОтпускРазрешил = Руководители.РуководительДолжность;
   Иначе
       ФамилияИмяОтчествоФизЛица        = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтпускРазрешил, Шапка.ДатаДокумента);
       ПодразделениеДолжностьФизЛица    = ФормированиеПечатныхФорм.ДолжностьОтветственногоЛицаОрганизации(Шапка.ОтпускРазрешил, Шапка.ДатаДокумента, Шапка.Организация);
       ФамилияИмяОтчествоОтпускРазрешил = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
       ФИООтпускРазрешил                = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускРазрешил);
       ДолжностьОтпускРазрешил          = ПодразделениеДолжностьФизЛица.Должность;
   КонецЕсли;
   
   ОбластьМакета.Параметры.ОтпускРазрешилДолжность = ДолжностьОтпускРазрешил;
   
   ОбластьМакета.Параметры.ОтпущеноНаСуммуПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(ИтогоСуммаСНДС, глЗначениеПеременной("ВалютаРегламентированногоУчета"), КодЯзыкаПечать);
   
   ОбластьМакета.Параметры.УТЧПДВ = ОбщегоНазначения.СформироватьСуммуПрописью(ИтогоСуммаНДС, глЗначениеПеременной("ВалютаРегламентированногоУчета"), КодЯзыкаПечать);
   
   ОбластьМакета.Параметры.Водитель = Водитель;
   ОбластьМакета.Параметры.Количество = Количество;

   НомерПрим = НомерПрим +1;
   
   ТабДокумент.Присоединить(ОбластьМакета);
   
   // Печатаем первую часть    
   КонецЦикла;
1 Baglandir
 
13.11.12
20:22
Все - не актуально, пока писал задание понял в чем ответ.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс