|
Как присоединить область | ☑ | ||
---|---|---|---|---|
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
|
Все - не актуально, пока писал задание понял в чем ответ.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |