Имя: Пароль:
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) Была как-то отправка в ЭДО файла экселя сразу.
Помогло изменения макета именно.
Изменил ширину столбцов, как должно было быть, убрал некторые объединения ячеек. И все стало ок.
Никаких решеток в полях, никаких доп манипуляций со стороны пользователя.
Тоже пытался всякие сторонние проверки делать, но опытным путем получилось только через макет((
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn