Изменить макет при печати

1. Beginner_107 27.05.20 11:22 Сейчас в теме
Здравствуйте,
никогда не думала, что может возникнуть такая задача, но видимо в жизни бывает все.. Вобщем, есть отчет, формируемый на СКД. Там 8 столбцов, и их все надо выводить при формировании отчета. Но при нажатии стандатрной команды Печать 2 столбца должны "исчезнуть", и вывести должно только 6! ТО есть, на экране чтоб было видно все 8, а на напечатанном листочке только 6. Скажите пожалуйста, это вообще возможно, и если да, то куда хоть смотреть?
По теме из базы знаний
Найденные решения
7. oleg-x 22 27.05.20 11:53 Сейчас в теме
Если делать свою процедуру печати, то необходимо выведенный результат обработать и программно распечатать.
По сути работа с табличным документом.
8. acanta 27.05.20 12:29 Сейчас в теме
Программно задается
ТабличныйДокумент (SpreadsheetDocument)
ОбластьПечати (PrintArea)
Использование:

Чтение и запись.
Описание:

Тип: ОбластьЯчеекТабличногоДокумента.
Содержит область табличного документа, которая будет выводиться на печать.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:

Если не задано, то будет выведена область, ограниченная значениями свойств ВысотаТаблицы и ШиринаТаблицы.
Если ВысотаТаблицы=0 и ШиринаТаблицы=0, то будет выдано сообщение "Нет информации для вывода на печать".
Если содержит прямоугольную область, то будет выведена она.
Если содержит область колонок, то будет выведена эта область, ограниченная снизу значением ВысотаТаблицы.
Если содержит область строк, то будет выведена эта область, ограниченная справа значением ШиринаТаблицы.
Показать

Интерактивно в 1с так же как и в ексель
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. oleg-x 22 27.05.20 11:46 Сейчас в теме
(1) Как вариант, сделайте свою команду печати и просто удаляйте эти столбцы программно перед отправкой на печать.
5. Beginner_107 27.05.20 11:49 Сейчас в теме
(3) Я не могу даже понять, какая процедура или функция запускается при нажатии стандартной Печати. И если свою кнопку делать, то эту же функцию вызывать надо. Хоть бы это событие отловить, а там уж может как-то и подредактирую...
6. oleg-x 22 27.05.20 11:52 Сейчас в теме
(5) При стандартной печати ни каких процедур не вызывается. Это все отрабатывается на уровне платформы. Так что перехватить не получится средствами 1С. Только сторонним ПО.
15. independ 1555 27.05.20 22:49 Сейчас в теме
(1) Вариант - добавить Параметр в СКД: Убрать2Столбца, тип Булево, и настроить условное оформление на данный параметр мин.макс ширина столбца
2. acanta 27.05.20 11:41 Сейчас в теме
В екселе есть возможность задать область печати (если непечатные данные можно отделить без потери целостности). Колонки можно свернуть (ширина =0)
4. Beginner_107 27.05.20 11:47 Сейчас в теме
(2) А при чем тут Ексель? У меня все действие в 1с происходит... То есть, я формирую отчет, он есть на экране, и я нажимаю стандартную кнопку Печать - тот отчет печатается но без 2х колонок
7. oleg-x 22 27.05.20 11:53 Сейчас в теме
Если делать свою процедуру печати, то необходимо выведенный результат обработать и программно распечатать.
По сути работа с табличным документом.
8. acanta 27.05.20 12:29 Сейчас в теме
Программно задается
ТабличныйДокумент (SpreadsheetDocument)
ОбластьПечати (PrintArea)
Использование:

Чтение и запись.
Описание:

Тип: ОбластьЯчеекТабличногоДокумента.
Содержит область табличного документа, которая будет выводиться на печать.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:

Если не задано, то будет выведена область, ограниченная значениями свойств ВысотаТаблицы и ШиринаТаблицы.
Если ВысотаТаблицы=0 и ШиринаТаблицы=0, то будет выдано сообщение "Нет информации для вывода на печать".
Если содержит прямоугольную область, то будет выведена она.
Если содержит область колонок, то будет выведена эта область, ограниченная снизу значением ВысотаТаблицы.
Если содержит область строк, то будет выведена эта область, ограниченная справа значением ШиринаТаблицы.
Показать

Интерактивно в 1с так же как и в ексель
Прикрепленные файлы:
9. oleg-x 22 27.05.20 12:36 Сейчас в теме
(8) Есть только одна проблема. Область печати может быть одна, а если скрыть надо колонки посередине? Тогда надо две области печати и вариант не подходит.
10. Beginner_107 27.05.20 13:08 Сейчас в теме
(9) Ну с этим повезло, 2 колонки крайние. Кнопку со своей печатью на расширении сдлела, смотрю вот Таб документ, как там эту область печати шаманить...
11. oleg-x 22 27.05.20 13:27 Сейчас в теме
(10) На клиенте ТабДок.ОбластьПечати = ТабДок.Область(1,1,1,1);
Как то так, задайте границы области, остается их определить программно.
12. Beginner_107 27.05.20 13:54 Сейчас в теме
(11) Да, это работает. Единственное чего я еще не понимаю, так это нумерации ячеек. Например, вот получается так как на рис
а если еще 1 ячейку слева убрать то часть нужного столбца тоже уходит...
Прикрепленные файлы:
13. oleg-x 22 27.05.20 13:56 Сейчас в теме
Тут скорее всего проблема в объединенных ячейках.
Сохраните в эксель и удаляйте по одной колонке, скорее всего принцип тот же.
14. -AI- 27.05.20 22:36 Сейчас в теме
мне кажется все делается проще:

всё как обычно.... есть 2 макета....

весь фокус только в том, что показываем один а печатаем другой.

единственное ограничение нельзя редактировать документ перед печатью, т.к. распечатается неотредактированный (другой)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот