Имя: Пароль:
1C
1С v8
Странности с выводом печатной формы на УФ
0 mzelensky
 
25.07.14
09:38
Доброго всем. Словил один глюк и никак не могу разобраться.

//Получаю печатный документ с сервера. Получается он нормально. Проверял отладчиком + если тут вставить "ТабличныйДокумент.Показать" то все нормально отображается

ТабличныйДокумент = ПечатьНаСервере("Спецификация");
Если ТабличныйДокумент <> Неопределено Тогда
        ПараметрыФормы = новый Структура("ПечатныйДокумент, ОбъектПечати, Заголовок", ТабличныйДокумент, Объект.Ссылка, "Спецификация "+Строка(Объект.Наименование));
        ОткрытьФорму("ОбщаяФорма.ПечатьДокументовУ", ПараметрыФормы, ЭтаФорма, СокрЛП(Объект.Ссылка) + "Спецификация");     
КонецЕсли;

//Процедура при создании общей формы "ОбщаяФорма.ПечатьДокументовУ". Все параметры заполняютсянормально. "Показать" табдокумент тут не могу, но "Высота таблицы" устанавливается верная

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Параметры.Свойство("ПечатныйДокумент", ПечатныйДокумент);
    Параметры.Свойство("ОбъектПечати", ОбъектПечати);
    Если Параметры.Свойство("Заголовок") И ЗначениеЗаполнено(Параметры.Заголовок) Тогда
        ЭтаФорма.Заголовок = Параметры.Заголовок;
    ИначеЕсли ОбъектПечати <> Неопределено Тогда
        ЭтаФорма.Заголовок = СокрЛП(ОбъектПечати);    
    КонецЕсли;
КонецПроцедуры

//Вывожу переданный табличный документ в табличное поле на форме. Никаких ошибок не выдается, все присваивается. НО когда все это отрабатывает, то табличное поле ПУСТОЕ!!! Причем высота таблицы устанавливается нормальная. Если открыть "Предварительный просмотр", то количество страниц "2", но лист просто пустой!!!

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Если ПечатныйДокумент <> Неопределено Тогда
        ПолеТабличногоДокумента=ПечатныйДокумент;
        
                //Это для отладки-проверки
        //ПечатныйДокумент.Показать();
        //ПолеТабличногоДокумента.Показать();          
                                        
        ПолеТабличногоДокумента.ОтображатьЗаголовки = Ложь;
        ПолеТабличногоДокумента.ОтображатьСетку     = Ложь;
        ПолеТабличногоДокумента.Защита              = Истина;
        ПолеТабличногоДокумента.ТолькоПросмотр      = Истина;
        ПолеТабличногоДокумента.ИмяПараметровПечати = ПечатныйДокумент.ИмяПараметровПечати;
        ПолеТабличногоДокумента.ПовторятьПриПечатиСтроки = ПечатныйДокумент.ПовторятьПриПечатиСтроки;
    КонецЕсли;
КонецПроцедуры



И самое замечательное - эта фишка прослеживается не у все объектов (это я печатную форму для справочника вывожу), а только для определенных. Для каких-то нормально выводится, а для каких-то нет! При это ДО вызова общей формы нормально выводится у всех. Вот что это за глюк такой?????
4 RomaH
 
naïve
25.07.14
11:25
ПолеТабличногоДокумента.ИмяПараметровПечати = ПечатныйДокумент.ИмяПараметровПечати;
вот это закоменть
5 mzelensky
 
25.07.14
11:32
(4) Не в этом дело. Когда проверял этим (а это еще до ИмяПараметровПечати):

//Это для отладки-проверки
ПечатныйДокумент.Показать();
ПолеТабличногоДокумента.Показать();


То "ПечатныйДокумент.Показать();" уже пустой табличный документ показывал.
6 acsent
 
25.07.14
11:44
ПолеТабличногоДокумента=ПечатныйДокумент;
Это что за хрень? тем более на клиенте
7 acsent
 
25.07.14
11:44
Так печ формы не делаются
8 mzelensky
 
25.07.14
11:51
(6)(7) А как они делаются ?
9 mzelensky
 
25.07.14
11:52
(6) ПолеТабличногоДокумента  -  элемент формы "Табличное поле"

ПечатныйДокумент - табличный документ, который нужно вывести в табличное поле.

На обычных формах я делал через метод "ВывестиОбласть", но на тонком клиенте такого нет. Сделал через приравнивание.
10 mzelensky
 
25.07.14
12:22
И что? Куда все "учителя" делись?
11 mzelensky
 
25.07.14
12:44
фр
12 acsent
 
25.07.14
12:57
попробуй на сервере присваивать
13 mzelensky
 
25.07.14
13:08
(12) А разница какая? Тем более прочти (5) - дело не в присваивании.
14 mzelensky
 
25.07.14
13:42
что ж такое
15 mzelensky
 
25.07.14
14:48
~~~~~
16 mzelensky
 
25.07.14
16:16
ghjljk;ftv yf,k.ltybt
17 mzelensky
 
28.07.14
08:47
Ну что, товарищи-тунеядцы, тухлопятница прошла, предлагаю немного поработать и таки понять что это за лажа!
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший