Имя: Пароль:
1C
1С v8
Проверить вывод
0 pele
 
10.01.13
14:13
Помогите написать проверку вывода, чтобы таб. док выводился  до средины а следующий таб док после средины, иначе если проверка вывода = ложь тогда вывести на весь лист...плииз!
1 palpetrovich
 
10.01.13
14:16
экспериментально наверное, в зависимости от количества строк
2 pele
 
10.01.13
14:16
Таб = Новый ТабличныйДокумент;
   Таб.ВерхнийКолонтитул.Выводить = Ложь;
   Таб.НижнийКолонтитул.Выводить = Ложь;
   Таб.АвтоМасштаб = Ложь;
   
   МассивТаблиц = Новый Массив();
   Макет = ПолучитьМакет("ДоставочнаяКарта");
   
       Запрос = Новый запрос();
       Запрос.Текст =
       "ВЫБРАТЬ
       |    мсРаспределениеЗаказовПоВодителям.ЗаказКлиента,
       |    мсРаспределениеЗаказовПоВодителям.Водитель,
       |    мсРаспределениеЗаказовПоВодителям.МаршрутДоставки,
       |    мсРаспределениеЗаказовПоВодителям.Смена,
       |    мсРаспределениеЗаказовПоВодителям.ДатаДоставки
       |ИЗ
       |    РегистрСведений.мсРаспределениеЗаказовПоВодителям КАК мсРаспределениеЗаказовПоВодителям
       |ГДЕ
       |    мсРаспределениеЗаказовПоВодителям.ЗаказКлиента = &ЗаказКлиента";
       Запрос.УстановитьПараметр("ЗаказКлиента",строкаИзМассивОбъектов);
       Выборка = Запрос.Выполнить().Выбрать();
       
       Пока Выборка.Следующий() Цикл        
           ОбластьМакетаЗаголовок = Макет.ПолучитьОбласть("Заголовок");
           ОбластьМакетаЗаголовок.Параметры.ФИОВодителя = Выборка.Водитель;    
       КонецЦикла;
       
       
       Запрос = Новый запрос();
       Запрос.Текст =
       "ВЫБРАТЬ
       |    ЗаказКлиента.Номер КАК КодЗаказа,
       |    ЗаказКлиента.Договор.Номер КАК КодКлиента,
       |    ЗаказКлиента.Партнер.Наименование КАК НаименованиеКлиента,
       |    ЗаказКлиента.мсДатаДоставки КАК ДатаДоставки,
       |    ЗаказКлиента.мсВремяДоставкиС КАК ВремяДоставкиС,
       |    ЗаказКлиента.мсВремяДоставкиПо КАК ВремяДоставкиПо,
       |    ЗаказКлиента.Партнер КАК Клиент,
       |    ЗаказКлиента.мсАдресДоставки.НаселенныйПункт КАК АдресГород,
       |    ЗаказКлиента.мсАдресДоставки.Улица КАК АдресУлица,
       |    ЗаказКлиента.мсАдресДоставки.Строение КАК АдресДом,
       |    ЗаказКлиента.мсАдресДоставки.Строение.Корпус КАК АдресКорпус,
       |    ЗаказКлиента.мсАдресДоставки.Подъезд КАК АдресПодъезд,
       |    ЗаказКлиента.мсАдресДоставки.КодПодъезда КАК АдресКодПодъезда,
       |    ЗаказКлиента.мсАдресДоставки.Этаж КАК АдресЭтаж,
       |    ЗаказКлиента.мсАдресДоставки.НомерКвартиры КАК АдресКвартиры,
       |    мсАдресаДоставкиТелефоныДоставки.Телефон КАК ТелефонныйНомер,
       |    ЗаказКлиента.мсПримечаниеВодителю КАК ПримечаниеВодителю,
       |    ЗаказКлиента.Ссылка
       |ИЗ
       |    Документ.ЗаказКлиента КАК ЗаказКлиента
       |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.мсАдресаДоставки.ТелефоныДоставки КАК мсАдресаДоставкиТелефоныДоставки
       |        ПО ЗаказКлиента.мсАдресДоставки.ТелефоныДоставки.Ссылка = мсАдресаДоставкиТелефоныДоставки.Ссылка
       |ГДЕ
       |    ЗаказКлиента.Ссылка = &ЗаказКлиента";    
       Запрос.УстановитьПараметр("ЗаказКлиента",строкаИзМассивОбъектов);
       РезультатВыборки = Запрос.Выполнить().Выбрать();
       
       Пока РезультатВыборки.Следующий() Цикл
           
           ОбластьМакетаЗаголовок.Параметры.КодЗаказа                = РезультатВыборки.КодЗаказа;
           ОбластьМакетаЗаголовок.Параметры.КодДоговора            = РезультатВыборки.КодКлиента;
           ОбластьМакетаЗаголовок.Параметры.НаименованиеКлиента    = РезультатВыборки.НаименованиеКлиента;
           ОбластьМакетаЗаголовок.Параметры.ДатаДоставки            = Формат(РезультатВыборки.ДатаДоставки, "ДЛФ=DD");
           ОбластьМакетаЗаголовок.Параметры.ВремяДоставки            = Формат(РезультатВыборки.ВремяДоставкиС,"ДЛФ=T") + "-"+ Формат(РезультатВыборки.ВремяДоставкиПо, "ДЛФ=T");
           Таб.Вывести(ОбластьМакетаЗаголовок);
           
           ОбластьМакетаАдресДоставки = Макет.ПолучитьОбласть("АдресДоставки");
           ОбластьМакетаАдресДоставки.Параметры.АдресГород            = РезультатВыборки.АдресГород;
           ОбластьМакетаАдресДоставки.Параметры.АдресУлица            = РезультатВыборки.АдресУлица;
           ОбластьМакетаАдресДоставки.Параметры.АдресДом            = РезультатВыборки.АдресДом;
           ОбластьМакетаАдресДоставки.Параметры.АдресКорпус        = РезультатВыборки.АдресКорпус;
           ОбластьМакетаАдресДоставки.Параметры.АдресОфисКвартира    = РезультатВыборки.АдресКвартиры;
           ОбластьМакетаАдресДоставки.Параметры.АдресЭтаж            = РезультатВыборки.АдресЭтаж;
           ОбластьМакетаАдресДоставки.Параметры.АдресПодъезд        = РезультатВыборки.АдресПодъезд;
           ОбластьМакетаАдресДоставки.Параметры.КодПодъезда        = РезультатВыборки.АдресКодПодъезда;
           ОбластьМакетаАдресДоставки.Параметры.ТелефонныйНомер    = РезультатВыборки.ТелефонныйНомер;    
           Таб.Вывести(ОбластьМакетаАдресДоставки);
           
           ОбластьМакетаПримечание = Макет.ПолучитьОбласть("Примечание");
           ОбластьМакетаПримечание.Параметры.ПримечаниеКЗаказу = РезультатВыборки.ПримечаниеВодителю;
           
           
       КонецЦикла;
       
       Запрос = Новый запрос();
       Запрос.Текст =
       "ВЫБРАТЬ
       |    ЗаказКлиентаТовары.Номенклатура,
       |    ЗаказКлиентаТовары.КоличествоУпаковок КАК Количество,
       |    ЗаказКлиентаТовары.мсДвижение
       |ИЗ
       |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
       |ГДЕ
       |    ЗаказКлиентаТовары.Ссылка = &ЗаказКлиента";
       Запрос.УстановитьПараметр("ЗаказКлиента",строкаИзМассивОбъектов);
       РезультатВыборки = Запрос.Выполнить().Выбрать();
       
       Пока РезультатВыборки.Следующий() Цикл
           
           Если РезультатВыборки.мсДвижение = Перечисления.мсВидыДвиженийПозиций.Отгрузка тогда
               ОбластьМакетаЗаказ = Макет.ПолучитьОбласть("Заказ");
               ОбластьМакетаЗаказ.Параметры.Номенклатура    = РезультатВыборки.Номенклатура;
               ОбластьМакетаЗаказ.Параметры.Количество        = РезультатВыборки.Количество;
               Таб.Вывести(ОбластьМакетаЗаказ);
           ИначеЕсли РезультатВыборки.мсДвижение = Перечисления.мсВидыДвиженийПозиций.Возврат тогда
               ОбластьМакетаВозврат = Макет.ПолучитьОбласть("Возврат");
               ОбластьМакетаВозврат.Параметры.Номенклатура    = РезультатВыборки.Номенклатура;
               ОбластьМакетаВозврат.Параметры.Количество    = РезультатВыборки.Количество;
               Таб.Вывести(ОбластьМакетаВозврат);
           ИначеЕсли РезультатВыборки.мсДвижение = Перечисления.мсВидыДвиженийПозиций.Замена тогда
               ОбластьМакетаЗамена = Макет.ПолучитьОбласть("Замена");
               ОбластьМакетаЗамена.Параметры.Номенклатура    = РезультатВыборки.Номенклатура;
               ОбластьМакетаЗамена.Параметры.Количество    = РезультатВыборки.Количество;
               Таб.Вывести(ОбластьМакетаЗамена);
               
           КонецЕсли;
           
           
       КонецЦикла;
       
       ОбластьМакетаИтого = Макет.ПолучитьОбласть("Итого");
       Таб.Вывести(ОбластьМакетаИтого);
       Таб.Вывести(ОбластьМакетаПримечание);
       
       ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
       Таб.Вывести(ОбластьМакетаПодвал);
       
   
   КонецЦикла;

Возврат Таб;
3 Шапокляк
 
10.01.13
14:17
Добавь в макет область высотой поллиста  и проверяй вывод вместе с ней.
4 palpetrovich
 
10.01.13
14:17
(2) хвастаешься? ;)
5 DexterMorgan
 
10.01.13
14:19
(3) Опередила) Ну да, методом ПроверитьВывод()
6 pele
 
10.01.13
16:06
Шапокляк: Добавь в макет область высотой поллиста  и проверяй вывод вместе с ней.

Как это так сделать??
7 Шапокляк
 
10.01.13
16:48
(6) вот у меня есть кусок кода для своей задачи. Посмотри
   ОбластьМакета           = Макет.ПолучитьОбласть("КакаяТоОбласть");
   ОбластьМакетаПоловинка           = Макет.ПолучитьОбласть("ПоловинкаА4");

       МассивВыводимыхОбластей.Очистить();
       МассивВыводимыхОбластей.Добавить(ОбластьМакета);
       МассивВыводимыхОбластей.Добавить(ОбластьМакетаПоловинка);
       Если НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда

//значит не влезло, придется все на листе выводить