Имя: Пароль:
1C
1С v8
Сохранение печатной формы в EXCEL
0 SergeyGr
 
15.04.25
18:19
Здравствуйте !

1С 8, обычные формы.
Формируется печатная форма: портрет, А4, по ширине.
На принтер выводится нормально.

Затем сохраняется в EXCEL.

При открытии сохраненного файла оказывается, что печатная форма по ширине на один лист "А4" не умещается.

Подскажите, плз !
Есть ли способ так сформировать печатную форму в 1С, чтобы в EXCEL она умещалась по ширине в "А4" ?


Спасибо
1 Ёпрст
 
гуру
15.04.25
18:28
(0) а чего, в экселе подвигать границы листа, это уже запредельным  шаманством является ?
2 kubik_live
 
15.04.25
18:30
(0) изучай MS Excel - там тоже есть поля и параметры вывода...
3 SergeyGr
 
15.04.25
18:54
(1) Менеджеры массово создают такие файлы и говорят: "Нам неудобно исправлять каждый файл";
(2) Если бы данные выводились сразу в EXCEL, то  да
4 Asmody
 
15.04.25
19:09
Вот нахера сохранять печатную форму в Excel, чтобы её потом распечатывать?
5 SergeyGr
 
15.04.25
19:50
(4) Менеджеры отправляют эти файлы по электронке
6 kpe4et178
 
15.04.25
20:21
(0) Поправить ширину колонок в макете.
7 Ёпрст
 
гуру
15.04.25
20:27
(5)сохраняй в pdf
8 Ёпрст
 
гуру
15.04.25
20:27
пустьстрадают
9 timurhv
 
15.04.25
21:32
(3) Выводить можно сразу, если написать свою библиотеку или взять у кого уже есть и отчеты формировать не в 1С, а сразу в OpenXML.
Ширина колонки означает сколько символов влезет гарантированно в столбец и зависит от шрифта, его размера, dpi и тд.
https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.column?view=openxml-2.8.1

Column width measured as the number of characters of the maximum digit width of the numbers 0, 1, 2, …, 9 as rendered in the normal style's font. There are 4 pixels of margin padding (two on each side), plus 1 pixel padding for the gridlines.

width = Truncate([{Number of Characters} * {Maximum Digit Width} + {5 pixel padding}]/{Maximum Digit Width}*256)/256

[Example: Using the Calibri font as an example, the maximum digit width of 11 point font size is 7 pixels (at 96 dpi). In fact, each digit is the same width for this font. Therefore, if the cell width is 8 characters wide, the value of this attribute must be Truncate([8*7+5]/7*256)/256 = 8.7109375. end example]


То что вы видите в MS Office на самом деле рассчитывается по формуле и сохраняется уже рассчитанное значение. Никаких числовых значений  ширины колонки там нет (условно 10, 50).

Возможно, достаточно будет настройки печати установить менеджерам. Смотрите в сторону распаковки файла Excel и перезаписи xml в листах:
Начало включить:
<sheetPr><pageSetUpPr fitToPage='1'/></sheetPr>

В конце xml листа (пример):
<printOptions horizontalCentered='1'/>
<pageMargins left='0.19685039370078741' right='0.19685039370078741' top='0.19685039370078741' bottom='0.19685039370078741' header='0' footer='0'/>
<pageSetup paperSize='9' scale='59' orientation='landscape' r:id='rId1'/>
10 kpe4et178
 
16.04.25
10:19
(5) Была как-то отправка в ЭДО файла экселя сразу.
Помогло изменения макета именно.
Изменил ширину столбцов, как должно было быть, убрал некторые объединения ячеек. И все стало ок.
Никаких решеток в полях, никаких доп манипуляций со стороны пользователя.
Тоже пытался всякие сторонние проверки делать, но опытным путем получилось только через макет((