• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

7.7 Ширина таблицы

  • Автор темы olga13
  • Дата начала
O

olga13

Добрый день. У меня таблица с вертикальными секциями. В зависимости от режима, в результирующую таблицу может выводиться разное количество столбцов. Чтобы при печати выводилось красиво, пытаюсь задать область печати:
Таб.ОбластьПечати(,,, Таб.ШиринаТаблицы());
Но почему-то Таб.ШиринаТаблицы() всегда возвращает число столбцов в исходной таблице, независимо от того, сколько секций было присоединено.
Может, кто-нибудь подскажет, в чем дело?
 
Д

Дайнеко

Не понятен замысел архитектора. Таб.ОбластьПечати(), нужна, когда программа вывела 5 столбиков, человек их видит. А когда печатает на принтер, Таб.ОбластьПечати() задает, что печатать только 3.
В чем красота?

Таб.ШиринаТаблицы(). Выдает число выведенных столбцов. Вы могли не заметить, сколько их вывели.

Код:
Таб.ВывестиСекцию("Шапка");
Таб.ВывестиСекцию("Строка|Название");
Если Нужно = 1 Тогда
Таб.ПрисоединитьСекцию("Строка|СтолбикИнфо");
Конец
Так вот первая команда вывела все столбики из исходной.
 
O

olga13

Не понятен замысел архитектора.

Я хочу, чтобы справа от таблицы не было пустого места, чтобы таблица была по ширине страницы. А у меня в исходной таблице 13 столбцов, а в сформированной - только 11. Но ширина таблицы все равно почему-то 13 (смотрела в отладчике), и на печать выводятся ПУСТЫЕ столбцы.
 
Д

Дайнеко

Повторюсь по-проще.
Таб.ВывестиСекцию("Шапка"); есть в модуле?
 
O

olga13

Повторюсь по-проще.
Таб.ВывестиСекцию("Шапка"); есть в модуле?

Код:
Процедура ПечатьЧека(реж)

Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Чек");
Таб.ВывестиСекцию("Шапка|Товар");
Если ФлСкидка = 1 Тогда
Таб.ПрисоединитьСекцию("Шапка|Скидка");
КонецЕсли;
Если реж = 2 Тогда
Таб.ПрисоединитьСекцию("Шапка|НДС");
КонецЕсли;
Если реж = 3 Тогда
Таб.ПрисоединитьСекцию("Шапка|СуммыВал");
КонецЕсли;
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0,,"Товарный Чек");

ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Таб.ВывестиСекцию("Строка|Товар");
Если ФлСкидка = 1 Тогда
Таб.ПрисоединитьСекцию("Строка|Скидка");
КонецЕсли;
Если реж = 2 Тогда
Таб.ПрисоединитьСекцию("Строка|НДС");
КонецЕсли;
Если реж = 3 Тогда
Таб.ПрисоединитьСекцию("Строка|СуммыВал");
КонецЕсли;
КонецЦикла;

Таб.ВывестиСекцию("Подвал|Товар");
Если ФлСкидка = 1 Тогда
Таб.ПрисоединитьСекцию("Подвал|Скидка");
КонецЕсли;
Если реж = 2 Тогда
Таб.ПрисоединитьСекцию("Подвал|НДС");
КонецЕсли;
Если реж = 3 Тогда
Таб.ПрисоединитьСекцию("Подвал|СуммыВал");
КонецЕсли;

Таб.ОбластьПечати(1, 1,, Таб.ШиринаТаблицы());
Таб.ПараметрыСтраницы(1,,,,,,,,,1,,);
Таб.ТолькоПросмотр(1);
Таб.Показать("Печать ТоварнЧек","");

КонецПроцедуры
 
Д

Дайнеко

Все правильно. Да уберите вообще "ОбластьПечати".
Сформируйте отчет, нажмите меню Вид/Авторазбиение, посмотрите таблицу в предварительный просмотр.
 
O

olga13

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

В том-то и дело, что менеджеры хотят сразу: сформировал отчет - и на печать. А лишние телодвижения их нервируют.
 
Д

Дайнеко

Естественно. Правильно хотят.
Это Вы посмотрите - проблемы быть не должно.
Выложите файл MXL.
 
O

olga13

Естественно. Правильно хотят.
Это Вы посмотрите - проблемы быть не должно.
Выложите файл MXL.

А как его выложить, стесняюсь спросить? По кнопочке "Загрузить" ругается:

Неудачная загрузка. Вам запрещено загружать такой тип файлов
 
Д

Дайнеко

Я имел в виду выложить результат печати. Как это делать:
- в модуле закомментируйте / удалите строку "Область печати"
- в 1с нажать на кнопку которая печатает чек
- меню Файл / Сохранить
- упаковать
- загрузить на форум.
 
O

olga13

Я имел в виду выложить результат печати. Как это делать:
- в модуле закомментируйте / удалите строку "Область печати"
- в 1с нажать на кнопку которая печатает чек
- меню Файл / Сохранить
- упаковать
- загрузить на форум.


Посмотреть вложение Rez.rar
 
Д

Дайнеко

Отсутствовал в отпуске. Просматриваю старые вопросы.

Эх-х! (на лице разочарование в человечестве) :)
Да у Вас, гражданочка, результат не соответствует макету!
_____.JPG
Посмотрите на концовку. После вывода сумм (секция "Подвал") читаем про работу склада.
_________.JPG

Как говорил юморист: "И не надо лохматить бабушку!".
В правильно сделанной таблице метод "ОбластьПечати" не нужен.
Больше к этому вопросу не возвращаюсь.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!