Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 16:20

Печатная форма Документа не скрывает строки макета с пустыми данными

Автор Dmitriy.Pro, 22 дек 2014, 15:20

0 Пользователей и 1 гость просматривают эту тему.

Dmitriy.Pro

Спасибо за совет и помощь!
Да, согласен, Ваш вариант более грамотный. Если бы я создавал это "с нуля", тогда так бы и сделал, а здесь уже чей то год, в котором мне нужно вставить свой макет и в процедурах добавить свой код с условиями, вот я и пытаюсь это сделать с наименьшим изменениями в созданном ранее коде.

Но все таки, почему выводится информация в печатной форме пустой, хотя она не пустая? Условия то верно проверяются, и пустые поля (параметр пустой) скрываются. Но поля с информацией видны, но без значений??? Почему?
   
        П Р И К А З                              
От      28 ноября 2014 г.      №08-ок000003
                По личному составу                                 
      ПРИНЯТЬ:                           
                1. Ф.И.О.   Петрова Петра Петровича                        
      Таб. №                           
      Дата рождения                           
      Адрес                           
      Паспортные            выдан               
      данные                           
      Должность в ВУЗе                           
      Дата приема   с

Вот система вывела только ФИО сотрудника "Петрова Петра Петровича", в вот все остальные почему то не отображаются... адрес - это строковый тип данных, и там должна быть полная строка адреса. Она есть, но на печатной форме нет.
А вот еще по ДатаРождения - это же ведь тип параметра Дата, эта строка макета скрывается если писать условие:
Если Не ЗначениеЗаполнено(...) то система скрывает строки при печати, а вот если, писать Если Не ПустаяСтрока(...) как для данных типа строка, то система правильно понимает и отображает строку с данными, если она не пустая? Тоже не понимаю почему,если это Дата - тип Дата, а система реагирует это как на Строковый тип. Одно только объяснение, что при выводе макета система все строки воспринимает из как строковой информацией.
Тогда остался один вопрос, почему информация есть, а на печати её нет (кроме ФИО)? Что же так всё не однозначно то?
А это может зависеть от запроса? Если ФИО задаются явным образом, а остальная информация выбирается более сложно?                         

cska-fanat-kz

в вашем случае надо вместо
Если Не ПустаяСтрока(ВложеннаяВыборка.ТабельныйНомер) Тогда
           ТабДокумент.Вывести(омТабНомер);
      КонецЕсли;

Если Не ПустаяСтрока(ВложеннаяВыборка.ТабельныйНомер) Тогда
омТабНомер.Параметры.Заполнить(ВложеннаяВыборка);           
ТабДокумент.Вывести(омТабНомер);
      КонецЕсли;

ЗЫ не такое уж и страшное изменение по части процедуры, да и красивее код начнет выглядеть. однако не настаиваю ;)
просто терпеть не могу однотипный код, повторяющийся более одного раза, сразу же его охота спрятать в процедуру...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Dmitriy.Pro

Вот и я о том же... исправил на
Если НЕ ЗначениеЗаполнено(ВложеннаяВыборка.Работник) Тогда
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;    
и при выводе Приказа на печать вообще скрыт сотрудник:

   П Р И К А З                              
От 28 ноября 2014 г.   №   08-ок000003
По личному составу                                 
      ПРИНЯТЬ:                           
      
        Таб. №                           
   Дата рождения                           
   Адрес
...

т.е. ФИО сотрудника вообще пропало, но оно есть! "Иванов Иван Иванович"
так что универсальная штуковина НЕ ЗначениеЗаполнено(...) как то не так срабатывает.                         

cska-fanat-kz

сорри )))

без НЕ!

Если ЗначениеЗаполнено(ВложеннаяВыборка.Работник) Тогда
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Dmitriy.Pro

:zebzdr: Отлично! РЕСПЕКТ Вам!!!
Вот теперь получилось!
Я добавил ваш код:
    Если Не ПустаяСтрока(ВложеннаяВыборка.ТабельныйНомер) Тогда
   омТабНомер.Параметры.Заполнить(ВложеннаяВыборка);
   ТабДокумент.Вывести(омТабНомер);
    КонецЕсли;
и о чудо, появился табельный номер сотрудника!
...
Ф.И.О.           Петрова Петра Петровича                        
Таб. №           929                        
Дата рождения   ...                        
Адрес      ...                     
Паспортные   ...         выдан   ...   

я думаю, что Не - это правильное условие.

Спасибо еще раз!!! Здорово!!!
Я уверен, что теперь доделаю и всё получиться как нужно!         
Добавлено: 23 дек 2014, 13:25


и про Если ЗначениеЗаполнено(ВложеннаяВыборка.Работник) Тогда тоже правильное уточнение!

Еще раз Спасибо за помощь!
Удачи Всем!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск