|
v7: Проблема при сохранении отчёта в ексель, высота строки | ☑ | ||
---|---|---|---|---|
0
evgpinsk_
01.11.19
✎
12:42
|
сохраняем счёт-фактуру из 1с в формат xlc:
Таб.Записать(ИмяФайла,"xls"); в счёт фактуре название товара длинное, не влазит в ячейку, соответственно в 1с название переносится на новую строчку, т.е. получается из двух строк. Проблема в том, что в екселевском файле высота строки получается только 8мм, и название товара видно только одна строка. Каким образом решить проблему? |
|||
1
ДенисЧ
01.11.19
✎
12:51
|
После сохранения программно открыть документ, пробежать по строкам и установить
|
|||
2
Масянька
01.11.19
✎
12:52
|
(0) 1. Растянуть строку в Excel.
2. Написать процедуру сохранения через Йоксель. |
|||
3
dedmoroz777
01.11.19
✎
12:52
|
||||
4
Амулет
01.11.19
✎
12:54
|
Не пользоваться встроенным конвертором.
В нем вообще непредсказуемое, и часто не управляемое форматирование. Использовать для сохранения в Excel, например, внешнюю компоненту Йоксель (Yoksel). |
|||
5
Амулет
01.11.19
✎
13:00
|
(4)+ Пример кода
<…> Таб.ВывестиСекцию("Подвал"); Таб.ТолькоПросмотр(1); Таб.Опции(0,0,0,0); ЗагрузитьВнешнююКомпоненту ("SpreadSheet.dll"); ВыбИмяФайла=КаталогПользователя()+"Выгрузка СчФ "+СокрП(Док.НомерДок); Документ = СоздатьОбъект ("ТабличныйДокумент"); Документ.ЗагрузитьИзТаблицы(Таб); ИмяЛиста = "Лист "; НомерЛиста = 1; Конвертер = СоздатьОбъект ("КонвертерExcel"); Книга = Конвертер.Создать (); Книга.Листы.Добавить (ИмяЛиста + НомерЛиста, Документ); Книга.ПараметрыКонвертера.РаспознаватьЧисловыеЗначения = 1; Книга.Записать(ВыбИмяФайла+".xls"); //Сообщить ("Файл сохранен по адресу "+ВыбИмяФайла+".xls"); ЗапуститьПриложение(ВыбИмяФайла+".xls"); Таб.Очистить(); |
|||
6
evgpinsk_
01.11.19
✎
13:01
|
(5) Спасибо, попробую
|
|||
7
evgpinsk_
01.11.19
✎
13:06
|
Параллельно вопрос, через Йоксель возможно "Прямое чтение файлов Excel"
Как со скоростью? Сейчас я читаю через Connection.Open(СтрокаПодключения); rs = CreateObject("ADODB.Recordset"); и далее построчное чтение екселевского файла. Получается долго. 3000 строк - (10-15 секунд) Может Йоксель быстрее? |
|||
8
Злопчинский
02.11.19
✎
02:50
|
а сделать автовысоту строки в печформе счетфактуры религия запрещает? или я что-то не понял?
|
|||
9
Злопчинский
02.11.19
✎
02:51
|
(7) ну, йоксель читает эксель.
насколько быстро - я хз. то что читал - меня по скорости устраивает |
|||
10
evgpinsk_
02.11.19
✎
11:03
|
(8) Автовысота в 1с есть. Но при выгрузке отчёта в XLS эта автовысота не сохраняется, при открытии файла в екселе все строки = 8мм.
А вот если сохранять через йоксель - всё ок, и высота строк сохраняется и "По ширине листа" работает тоже. Клас |
|||
11
Злопчинский
02.11.19
✎
14:59
|
(10) точно, у меня все на йокселе давно сохраняется.
ступил |
|||
12
evgpinsk_
02.11.19
✎
23:40
|
(9) Йоксель читает из xls только в mxl?
Или он может заполнить таблицу значений из xls ? |
|||
13
Djelf
03.11.19
✎
09:34
|
(12) Может и в тз http://yoksel.net.ru/Ob'ektyVstroennogoJazyka/Jjoksel'KonverterVTablicuZnachenijj
Но не всегда удачно получается. |
|||
14
Провинциальный 1сник
03.11.19
✎
10:54
|
(8) Автовысоту в 7.7 лучше не включать, если предполагаемое количество строк с автовысотой больше сотни. Иначе дичайше тормозит сохранение в эксель. Там какая-то экспоненциальная зависимость.
|
|||
15
Злопчинский
03.11.19
✎
13:22
|
(14) это если использовать штатное сохрангение.
но эту проблему устраняет мокселдоктор патч от ромикса ВК, или сохранять в эксель тем же самым йокселем |
|||
16
Злопчинский
03.11.19
✎
13:22
|
(12) можно в тз, порядка 5 операторов
|
|||
17
evgpinsk_
03.11.19
✎
14:03
|
(16) Абалдеть. Файл XLS 6300 строк
Через ADODB читает 36 секунд: СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(Путь)+";Extended Properties=""Excel 8.0;HDR=No; IMEX=1;"""; Connection = СоздатьОбъект("ADODB.Connection"); Connection.Open(СтрокаПодключения); Пока rs.Eof() = 0 Цикл ТаблПрихода.НоваяСтрока(); rs.MoveNext(); КонецЦикла; через Йоксель - 0,18 секунд |
|||
18
evgpinsk_
04.11.19
✎
00:15
|
(16) ЧТото не нахожу, как через конвертер загружать конкретный Лист екселя, а не первый по умолчанию?
|
|||
19
Провинциальный 1сник
04.11.19
✎
07:18
|
(15) Это ты пользователю скажи, который формирует отчет по продажам на 20000 строк и пытается его сохранить в эксель штатными средствами. Суть в том, что нельзя в 7.7 вообще использовать автовысоту в макетах, кроме печатных форм документов. Иначе задолбают вопросы "у меня 1с зависла".
|
|||
20
ДенисЧ
04.11.19
✎
07:21
|
(19) Просто пользователю нужно сказать, что так делать нельзя. И всё, что он делает - остаётся на его совести. Можно сказать ему это в письменном виде под роспись.
|
|||
21
Провинциальный 1сник
04.11.19
✎
07:45
|
(20) Сказать можно. Но всё равно найдется "забыл". Проще переделать макеты и не иметь проблем с этим.
|
|||
22
ДенисЧ
04.11.19
✎
07:47
|
(21) Это проблемы забывца. Раз забудет, на другой раз вспомнит.
|
|||
23
Провинциальный 1сник
04.11.19
✎
08:02
|
(22) Их много. Кстати, был такой лозунг в своё время по охране труда "От техники безопасности - к безопасности техники!", смысл такой чтобы исключить несчастные случаи не правилами и нормами, а конструктивно.
|
|||
24
evgpinsk_
04.11.19
✎
11:04
|
(18) наверное детский вопрос, но не пойму, как через конвертор загружать определённый лист?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |