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

Как сделать колонку в печатной форме, которая будет появлятся только когда в ней есть данные?

Автор izar83, 21 апр 2014, 20:13

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

izar83

Как сделать колонку в печатной форме, которая будет появлятся (выходить на печать) только когда в ней есть данные?
Конфигурация самописная. Есть документ и печатная форма документа. Все работает хорошо все нужные данные подтягиваются и считаются правильно, но необходима доработка. Есть колонки в документе которые заполняются переодически если есть данные для заполнения, а нет то они пусте остаются. Нужно что б пустые они не отражались в печатной форме. только когда заполнены.

Как это реализовать подскажите пожалуйста.

Может вопрос и глупый для профессионала но я только осваиваю. Помогите если можите.

cska-fanat-kz

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

KrivosheevEV

..или два разных макета (с колонкой и без неё), которые выбираются в зависимости от того есть ли данные.

izar83

Все понятно про метод, а как задать условие, не могли бы пример привести любой. Когда наглядно вижу понятнее)))).

wise

(3)если колонка числовая, то МОЖНО взять итог
ЕстьДанные = ТабЗначений.Итог("МояХитраяКолонка");
Если ЕстьДанные Тогда
    Сообщить("ТопикСтартер у тебя ЕСТЬ данные в ХИТРОЙ колонке!!");
КонецЕсли;

ну а можно ПРОСТО свернуть таблицу по ЭТОЙ колонке и посчитать строки.
ТабЗначений.Свернуть("МояХитраяКолонка");
Если ТабЗначений.Количество()>1 Тогда
    Сообщить("ТопикСтартер у тебя ЕСТЬ данные в ХИТРОЙ колонке!!");
КонецЕсли;
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

izar83


izar83

Цитата: KrivosheevEV от 22 апр 2014, 09:55
..или два разных макета (с колонкой и без неё), которые выбираются в зависимости от того есть ли данные.
Добрый день. Пожалуйста раскажите поподробней если возможно про упомянутый вами метод выбора двух разных макетов для печати одного документа. Как реализовать данный метод, интересует именно алгоритм выбора макета, если можно с примером! Заранее спасибо!

cska-fanat-kz

Если ЧтоТоТам Тогда
Макет = ПолучитьМакет("Макет1");
Иначе
Макет = ПолучитьМакет("Макет2");
КонецЕсли;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

izar83

Цитата: cska-fanat-kz от 25 апр 2014, 20:06
Если ЧтоТоТам Тогда
Макет = ПолучитьМакет("Макет1");
Иначе
Макет = ПолучитьМакет("Макет2");
КонецЕсли;
Доброго времени суток. Воспользовался вашим советом и сделал запрос и выбор макета по условию. Но выбора макета не происходит при нажатии кнопки "печать". Вот часть кода посмотрете пожалуйста, что я делаю не так?
        Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |   РеализацияТоваров.Договор КАК Договор
   |ИЗ
   |   Документ.РеализацияТоваров КАК РеализацияТоваров";   
   Выборка = Запрос.Выполнить().Выбрать();

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

Условие выбора не работает, если в таком виде как я выложил то выбирает только макет ("Проба1"), хотя на печать я отправляю разные документы с заполненой строкой договора или без него.
А если написать код по другому, добавить  НЕ  "Если НЕ ЗначениеЗаполнено(Выборка.Договор) Тогда"  то выбирается только Макет("Проба");, хотя опять же документы я выбираю разные с договором и без него с пустым значением.
Что я сделал не так или недоделал подскажите пожалуйста!
И не удивляйтесь названию "Проба". Делаю все в специально созданой для этого копии базы. Если в копии все начинает хорошо работать только тогда перекидываю в оригинал уже с нормальными Именами.

cska-fanat-kz

Зачем запросом получать простой реквизит шапки?!

Ну напишите просто
Если ЗначениеЗаполнено(Договор) Тогда
...

и будем вам счастье.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск