Имя: Пароль:
1C
1С v8
v8: Не корректно отрабатывает .ПроверитьВывод(
0 qwerty1234
 
17.04.13
15:20
оставляет много свободного места листинг см .ниже

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

   Макет = ПолучитьМакет("Положение");

   ОбластьМакета = Макет.ПолучитьОбласть("Колонтитул");
   ОбластьМакета.Параметры.Организация = Организация.НаименованиеПолное;
   ОбластьМакета.Параметры.ДатаРаспаряжения              = Формат(Дата,"ДФ=""dd.MM.yyyy 'г.'""");
   ТабДокумент.Вывести(ОбластьМакета);
   
   ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
   ОбластьМакета.Параметры.ДатаРаспоряжения              = Формат(Дата,"ДФ=""дд ММММ гггг 'г.'""");
   
   ТабДокумент.Вывести(ОбластьМакета);
   
   ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
   
   МассивВыводимыхОбластей.Очистить();
   
   ОбластьКолонтитулаМакета = Макет.ПолучитьОбласть("Колонтитул");
   ОбластьКолонтитулаМакета.Параметры.Организация = Организация.НаименованиеПолное;
   ОбластьКолонтитулаМакета.Параметры.ДатаРаспаряжения              = Формат(Дата,"ДФ=""dd.MM.yyyy 'г.'""");
   ТабДокумент.Вывести(ОбластьКолонтитулаМакета);
   
   //МассивВыводимыхОбластей.Добавить(ОбластьКолонтитулаМакета);

   ОбластьЗаголовокМакета = Макет.ПолучитьОбласть("Заголовок");
   ОбластьЗаголовокМакета.Параметры.НачалоПериода              = Формат(НачалоМесяца(Дата),"ДФ=""dd.MM.yyyy 'г.'""");
   ОбластьЗаголовокМакета.Параметры.КонецПериода              = Формат(КонецМесяца(Дата),"ДФ=""dd.MM.yyyy 'г.'""");
   ТабДокумент.Вывести(ОбластьЗаголовокМакета);
   
   //МассивВыводимыхОбластей.Добавить(ОбластьЗаголовокМакета);
   
   ОбластьЗаголовокТаблицыМакета = Макет.ПолучитьОбласть("ЗаголовокТаблицы|Оснавная");
   ТабДокумент.Вывести(ОбластьЗаголовокТаблицыМакета);
   
   //МассивВыводимыхОбластей.Добавить(ОбластьЗаголовокТаблицыМакета);
   
   ТЗВывода  = ТабличнаяЧасть.Получить();
   
   Секция = Макет.ПолучитьОбласть("ЗаголовокТаблицы|Скидка");

   Для Каждого СтрокаТЧ из ТЗВывода.Колонки цикл
       Если Лев(СтрокаТЧ.Имя,1) ="_" тогда
           Секция.Параметры.Дата = Формат(Дата(СтрокаТЧ.Заголовок),"ДФ=dd.MM.yyyy");
           ТабДокумент.Присоединить(Секция);
       КонецЕсли;
   КонецЦикла;

   Для каждого СтрокаТЧ из ТЗВывода Цикл
       
       ОбластьСтрокиМакета = Макет.ПолучитьОбласть("СтрокаТаблицы|Оснавная");
   
       ОбластьСтрокиМакета.Параметры.Артикул = СтрокаТЧ.Номенклатура.Артикул;
       ОбластьСтрокиМакета.Параметры.Номенклатура = СтрокаТЧ.Номенклатура;        
       ОбластьСтрокиМакета.Параметры.ЦенаРозницы =  СтрокаТЧ.ЦенаДоНазначенияЦен;
       
       
       ТабДокумент.Вывести(ОбластьСтрокиМакета);
       
       МассивВыводимыхОбластей.Добавить(ОбластьСтрокиМакета);
       
       Секция = Макет.ПолучитьОбласть("СтрокаТаблицы|Скидка");
       
       Для каждого КолонкиТЧ из ТЗВывода.Колонки Цикл
               
           Если Лев(КолонкиТЧ.Имя,1) ="_" тогда
           Секция.Параметры.Скидка = ?(СтрокаТЧ.ЦенаДоНазначенияЦен <> 0 и СтрокаТЧ[КолонкиТЧ.Имя] <> 0 и Окр(100 - (100 * СтрокаТЧ[КолонкиТЧ.Имя] / СтрокаТЧ.ЦенаДоНазначенияЦен),2) <> 0 = Истина,""+ Окр(100 - (100 * СтрокаТЧ[КолонкиТЧ.Имя] / СтрокаТЧ.ЦенаДоНазначенияЦен),2) + " %","") ;
               ТабДокумент.Присоединить(Секция);
           КонецЕсли;
               
       КонецЦикла;
       
       
       Если НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
       
           МассивВыводимыхОбластей.Очистить();
   
           
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
           
           
           ТабДокумент.Вывести(ОбластьКолонтитулаМакета);
           
           //МассивВыводимыхОбластей.Добавить(ОбластьКолонтитулаМакета);
           
           ТабДокумент.Вывести(ОбластьЗаголовокТаблицыМакета);
           
           //МассивВыводимыхОбластей.Добавить(ОбластьЗаголовокТаблицыМакета);
           
           
           Секция = Макет.ПолучитьОбласть("ЗаголовокТаблицы|Скидка");

           Для Каждого СтрокаТЧ из ТЗВывода.Колонки цикл
               Если Лев(СтрокаТЧ.Имя,1) ="_" тогда
                   Секция.Параметры.Дата = Формат(Дата(СтрокаТЧ.Заголовок),"ДФ=dd.MM.yyyy");
                   ТабДокумент.Присоединить(Секция);
               КонецЕсли;
           КонецЦикла;
               
           
       КонецЕсли;
   КонецЦикла;
   ТабДокумент.Область("C1").ШиринаКолонки = 15;
   ТабДокумент.Область("C6").ШиринаКолонки = 9;
   
   ТабДокумент.Показать();
   
   УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент,,,"Положение об Акции ""Продажа товара со скидкой""");
1 Deni7
 
17.04.13
15:50
(0) А в чем трабла-то конкретно?
2 qwerty1234
 
17.04.13
16:07
в соответствии с синтаксным помошником данный метод должен вернуть Истину если переданый массив умещается на страницу
у меня е получается 1/3 листа пустая - на каждой из разрезаных старниц

ТабличныйДокумент (SpreadsheetDocument)
ПроверитьВывод (CheckPut)
Синтаксис:
ПроверитьВывод(<Таблицы>)
Параметры:
<Таблицы> (обязательный)
Тип: Массив, ТабличныйДокумент. Массив из проверяемых таблиц или табличный документ.
Возвращаемое значение:
Тип: Булево. Истина - умещаются; Ложь - в противном случае.
Описание:
Проверяет, умещаются ли переданные табличные документы на страницу при печати.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Примечание:
При возникновении проблем с получением информации о текущем принтере (например, в системе не установлено ни одного принтера), будет вызвано исключение.
Пример:
Т.Добавить(ШапкаДокумента);
Т.Добавить(СтрокаДокумента);
Т.Добавить(ПодвалДокумента);
Если Не ТабДок.ПроверитьВывод(Т) Тогда
   Сообщить("Документ не умещается на страницу!");
КонецЕсли;
См. также:
ТабличныйДокумент, метод ПроверитьПрисоединение
3 qwerty1234
 
17.04.13
18:18
Мужики вы где? или типа не кому не интересно
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший