Имя: Пароль:
1C
 
ПроверитьВывод - что-то не догоняю
0 RomaH
 
naïve
03.07.08
11:14
Если ТабДок.ИмяПараметровПечати = "" Тогда
       //Параметры документа
       ТабДок.ОриентацияСтраницы    = ОриентацияСтраницы.Ландшафт;
       ТабДок.Защита                = Ложь;
       ТабДок.ТолькоПросмотр        = Истина;
       ТабДок.ПолеСлева            = 10;
       ТабДок.ПолеСправа            = 10;
       ТабДок.ПолеСверху            = 10;
       ТабДок.ПолеСнизу            = 10;
       ТабДок.АвтоМасштаб        = Истина;
       
       ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТарификационныйСписок_2165467131йц6к4";
   
   КонецЕсли;


...

       Если ТабДок.ПроверитьВывод(ОбластьСтроки) Тогда
           ТабДок.Вывести(ОбластьСтроки,СтрокаОтчета.Уровень(),,Ложь);
       Иначе
           ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
           ТабДок.Вывести(мСтркутураОбластейОтчета.ШапкаТаблицы);
           ТабДок.Вывести(мСтркутураОбластейОтчета.НомерацияГраф);
           ТабДок.Вывести(ОбластьСтроки,СтрокаОтчета.Уровень(),,Ложь);
       КонецЕсли;


вот не понимю - почему у меня док выводит как надо - в ланшафте
а ПроверитьВывод работает как для Портрета?

т.е. разделители и шапку таблицы выводит совсем не там где надо

почему так и как исправить?
1 RomaH
 
naïve
03.07.08
14:15
up
никто не сталкивался?
сейчас добился (выводом не в Новый ТабличныйДокумент, а в ЭлементыФормы.ДокументРезультат) смещения на 1-2 строки

мог конечно грешить бы на не верный код - но смещение идет на разные области макета

т.е. то итог вынесет на вторую страницу, то строку детальной записи, то заголовок иерархии.

почему так?
2 КонецЕсли
 
03.07.08
15:26
ПроверитьВывод(ОбластьСтроки)
"ОбластьСтроки" должно содержать ВСЕ выводимые на лист области (шапки, заголовки,строки ...). У тебя они там содержаться?
з.ы. из СП:
..
Пример:
Т.Добавить(ШапкаДокумента);
Т.Добавить(СтрокаДокумента);
Т.Добавить(ПодвалДокумента);
Если Не ТабДок.ПроверитьВывод(Т) Тогда
   Сообщить("Документ не умещается на страницу!");
КонецЕсли;
3 RomaH
 
naïve
07.07.08
12:01
... вобщем нашел в чем дело:

       Если ТабДок.ПроверитьВывод(ОбластьСтроки) Тогда
           ТабДок.Вывести(ОбластьСтроки,СтрокаОтчета.Уровень(),,Ложь);
       Иначе
           ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
           ТабДок.Вывести(мСтркутураОбластейОтчета.ШапкаТаблицы);
           ТабДок.Вывести(мСтркутураОбластейОтчета.НомерацияГраф);
           ТабДок.Вывести(ОбластьСтроки,СтрокаОтчета.Уровень(),,Ложь);
       КонецЕсли;

ТабДок.Вывести(ОбластьСтроки,СтрокаОтчета.Уровень(),,Ложь);

в ячейке естественно стоит "Автоотступ" = 1

т.е. вывод проверяется до того как в ячейке будет определен автоотступ - и она переносится, например на 2 строки

а при выводе в табличный документ области назначается, например 5 уровень вложенности - и имеем уже в ячейке текст перенесенный на 3 строки


вобщем вопрос - а как проверить вывод для ячееек с автоотступом по уровню вложенности?
4 GenV
 
07.07.08
12:24
(3) Блин, не знал.

А если попробывать выводить области макета в чистый документ-пустышку и из него брать область для проверки с уже получившимся уровнем, затем переносить содержимое области уже в основной документ (или выводить заново в основной).
5 RomaH
 
naïve
07.07.08
12:34
(4) слишком сложно, хотелось бы найти более "правильное" решение
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn