Вход | Регистрация

1С:Предприятие ::

Метки: 

Проверить вывод

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

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

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

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

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


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует