|
v7: Некорректное отображение таблицы из 1С в Exсel | ☑ | ||
---|---|---|---|---|
0
never_sleep
28.10.15
✎
12:18
|
Сохраняю печатную форму из программы в формат xls. Если открывать в Excel'е табличка отображается некорректно. Пропадает вертикальное направление текста, и пожимаются некоторые колонки по высоте. Но если открыть в Опен-офисе, то все пучком. Проблема в том, что таблички рассылаем в более чем 140 детских садов. А там, в подавляющем большинстве, именно пакет от майкрософта. Проблема усугубляется тем, что со стороны дет.садов, как правило, нет грамотных пользователей, и правка таблицы для них задача нетривиальная. Как быть?
|
|||
1
cw014
28.10.15
✎
12:19
|
1) Формировать руками
2) Отправлять PDF |
|||
2
Ёпрст
28.10.15
✎
12:20
|
сохраняй йокселем, там не ломается форматирование документа
|
|||
3
Tatitutu
28.10.15
✎
12:21
|
(0) у Злопочинского есть обалденная обработка - она печатную форму в jpg одной кнопкой преобразует и отправляет по почте. В поиск
|
|||
4
never_sleep
28.10.15
✎
12:37
|
(1) Попробуем. Правда, придется накатить в подавляющем большинстве садиков просмотрщик ПДФ (разошлю всем по почте суматру с инструкцией). Главное, чтобы на местах не приспичило никому ничего править.
|
|||
5
cw014
28.10.15
✎
12:38
|
(4) Дык ридер бесплатный
|
|||
6
never_sleep
28.10.15
✎
12:39
|
(3) А там форму приходится на 2 стороны одного листа печатать. С картинкой, боюсь, будут проблемы. Или заблуждаюсь?
|
|||
7
Dump
28.10.15
✎
12:39
|
Пиши напрямую в файл Excel - не через файл-сохранить - и жестко задавай нужные параметры. Правда, возни гораздо больше.
|
|||
8
never_sleep
28.10.15
✎
12:41
|
(5) Ридер уже за 100 метров весит. Тормозит при запуске на нормальных машинах. Ставит вкупе адоб эйр. А в садиках как правило железо лет 10 как устаревшее. Суматра всего несколько мегабайт и без доп мусора.
|
|||
9
never_sleep
28.10.15
✎
12:42
|
(7) Это крайний вариант, надеюсь не дойдет)
|
|||
10
Dump
28.10.15
✎
12:44
|
(9) Главное знать о такой возможности и ее учитывать
|
|||
11
never_sleep
28.10.15
✎
12:53
|
(2) А ей можно воспользоваться не переписывая весь код? Есть заполненный объект "Таблица". Как мне (в двух словах) йокселем сохранить её без потери форматирования в эксель? Или мне изначально нужно использовать вместо "Таблица" объекты Йокселя?
|
|||
12
cw014
28.10.15
✎
12:55
|
(12) Есть код преобразовывающий макет mxl в xls
|
|||
13
never_sleep
28.10.15
✎
12:55
|
(10) А это каким макаром происходит? ОЛЕ?
|
|||
14
trdm
28.10.15
✎
12:56
|
(8) > Ридер уже за 100 метров весит.
Можно выбрать адекватную версию: http://www.oldapps.com/foxit_reader.php Я себе 3.3.0.... поставил. |
|||
15
trdm
28.10.15
✎
12:58
|
Можно и адоб ридер присмотреть: http://www.oldapps.com/adobe_reader.php
|
|||
16
never_sleep
28.10.15
✎
13:01
|
(15) Ну у меня везде суматра. Прикипел. Жаль только формы с полями ввода некорректно отображает (на загранпаспорт, например). Плюс в суматре отлично открываются djvu. Для сложных документов у меня адоб ридер свежий стоит, правда. На всякий.
|
|||
17
Масянька
28.10.15
✎
13:06
|
(13) Я сделала в панели инструментов кнопку, на нее повесила внешнюю обработку:
Перем мСервис; Перем АктивныйКонтекст; Перем ИмяФайла; Перем НачИмяКаталога; Перем ИмяТаблицы; Перем Окна; //******************************************************************************** Процедура ПриОткрытии() НачИмяКаталога = "\\MANAGER2\Desktop"; мСервис = СоздатьОбъект("Сервис"); РасшФормы = СоздатьОбъект("РасширениеФормы"); СтатусВозврата(0); ИмяФайла = ""; Если (мСервис.АктивныйКонтекст(АктивныйКонтекст) = 1) Тогда Если (ТипЗначенияСтр(АктивныйКонтекст) = "Таблица") Тогда // получим имя таблицы Окна = мСервис.СписокТаблиц(); Окна.ПолучитьЗначение(1, ИмяТаблицы); // товарная накладная, акты мРеализация = Найти(ИмяТаблицы, "Реализация"); Если мРеализация > 0 Тогда ИмяФайла = СокрЛП(СтрЗаменить(ИмяТаблицы, "*", "")); // из документа "Реализация" Если Найти(ИмяТаблицы, "mxl") > 0 Тогда // из документа "Счет" мВременно = Сред(ИмяФайла, мРеализация); мДлинаВременно = СтрДлина(мВременно); ИмяФайла = Лев(мВременно, мДлинаВременно - 4); КонецЕсли; КонецЕсли; // счет-фактура мСчетФактура = Найти(ИмяТаблицы, "Счет-фактура"); Если мСчетФактура > 0 Тогда ИмяФайла = СокрЛП(СтрЗаменить(ИмяТаблицы, "*", "")); // из документа "Счет-фактура" Если Найти(ИмяТаблицы, "mxl") > 0 Тогда // из документа "Счет" мВременно = Сред(ИмяФайла, мСчетФактура); мДлинаВременно = СтрДлина(мВременно); ИмяФайла = Лев(мВременно, мДлинаВременно - 4); КонецЕсли; КонецЕсли; // другая печатная форма Если (СтрДлина(СокрЛП(ИмяФайла)) = 0) Тогда ИмяФайла = СокрЛП(СтрЗаменить(ИмяТаблицы, "*", "")); // из документа "Счет-фактура" КонецЕсли; Если (ФС.ВыбратьФайл(1, ИмяФайла, НачИмяКаталога, "Выберите файл", "*.xls|*.xls", "xls") = 1) Тогда СохранитьМакетВфайл = НачИмяКаталога + ИмяФайла; Если ФС.СуществуетФайл(СохранитьМакетВфайл) = 1 Тогда ФС.УдалитьФайл(СохранитьМакетВфайл); КонецЕсли; ТабДокумент = СоздатьОбъект ("ТабличныйДокумент"); ТабДокумент.ЗагрузитьИзТаблицы (АктивныйКонтекст); ТабДокумент.Записать(СохранитьМакетВфайл, 1); КонецЕсли; Иначе Предупреждение("Нет открытой печатной формы."); КонецЕсли; Иначе Предупреждение("Для начала - откройте печатную форму."); КонецЕсли; КонецПроцедуры // ПриОткрытии + mxl_doctor.dll Усё. |
|||
18
never_sleep
28.10.15
✎
14:48
|
(17) Круто конечно. А чтобы это заработало, нужен только mxl_doctor.dll?
|
|||
19
Масянька
28.10.15
✎
14:53
|
(18) Да ничего там крутого нет.
По-моему, да. |
|||
20
dmrjan
28.10.15
✎
17:54
|
Можно еще в xlsx выгружать.
|
|||
21
Злопчинский
28.10.15
✎
18:35
|
(3)
- ну не у Злопчинского, а у "уважаемого Сергея Михайловича" - и не в jpg, а в PNG - 1эсные моксели прекрасно жмутся в пнг лучше чем в джпег и без потери качества - эта же обработочка йокселем и в эксели сохраняет (у меня ей манагмент отправляет доки клиентам на распечатку, никто не жаловался) - в пдф не делал, лень было (так как лично мне не надо, все собираюсь прикрутить, да все влом, более интересных задач есть) http://catalog.mista.ru/public/14180/ |
|||
22
Злопчинский
28.10.15
✎
18:36
|
(17) сойдет конечно... но не схватит прикрепленную печформу (регламентную отчетность например), а моя схватывает (спасибо Епрсту)
|
|||
23
Масянька
29.10.15
✎
08:01
|
(22) Что значит "прикрепленную"? Моя хватает открытую печ. форму.
А Ё не просто "спасибо", а низкий поклон. |
|||
24
vladimirmir2012
29.10.15
✎
08:49
|
(0)У меня так /на примере Йокселя/
mxl => xls обТаблица01 = СоздатьОбъект ( "ТабличныйДокумент" ); обТаблица01.ЗагрузитьИзТаблицы( Таблица1C ); // --- Формат файла: // 0 или “mxl” – формат MXL (формат встроенных в 1С табличных документов). Файл записывается в формате версии 7 – версии, когда появился поворот текста в ячейке. Поэтому старыми релизами 1С (меньше 23) файл читаться не будет. // // 1 или “xls” – формат Microsoft Excel. При сохранении создается книга с одним листом под названием «Лист 1". В этот лист записывается табличный документ. Если в книгу нужно записывать несколько листов, то // следует использовать объект "КонвертерExcel". // // 4 или “bmp” – формат BMP. Сохраняет изображение документа в формате BMP. // 5 или “jpeg” – формат JPEG. Сохраняет изображение документа в формате JPEG. // 6 или “png” – формат PNG. Сохраняет изображение документа в формате PNG. // обТаблица01.Записать( FullPathToReport02, 1 // 1 или “xls” – формат Microsoft Excel. ); |
|||
25
Ёпрст
29.10.15
✎
09:12
|
(11) на вот, в меню, в панели струментов слепишь такую вот кнопку (можешь еще и акселератор назначить, для удобства):
http://pics.rsh.ru/img/123_5kgr1rpb.jpg там пропишешь вызов этого https://cloud.mail.ru/public/8amK/1xyHcTWqQ всё собственна, наслаждайся |
|||
26
Масянька
29.10.15
✎
09:18
|
(25) Я уже в (17) положила :)
Кстати, в очередной раз - Спасибо! :) |
|||
27
Ёпрст
29.10.15
✎
09:25
|
(26) у тебя немного не то - нет сохранения макета. если это таблица РВД (например, вся рег отчетность в 1с-ине) + нет сохранения в PDF
|
|||
28
Масянька
29.10.15
✎
09:57
|
(27) Для pdf у меня другая кнопка. А по отчетности - закдача не стояла. :)
|
|||
29
never_sleep
05.11.15
✎
13:08
|
Ёпрст, Масянька, уважаемый Сергей Михайлович и всем остальным, вам огромное спасибо!
|
|||
30
botman4
07.11.15
✎
11:35
|
А чтобы это заработало, нужен только mxl_doctor.dll?
чтобы заработало нужно ЗагрузитьВнешнююКомпоненту ("FormEx.dll"); |
|||
31
Злопчинский
07.11.15
✎
12:17
|
(30) набери в яндексе "Проект Йоксель" - выйдешь на страничку разработчика
|
|||
32
Масянька
09.11.15
✎
10:11
|
(29) А кто такой Сергей Михайлович?
|
|||
33
ДенисЧ
09.11.15
✎
10:13
|
(32) Маленькая ты ещё, чтобы знать это ))))
|
|||
34
Масянька
09.11.15
✎
10:15
|
(33) И-и-извините...
|
|||
35
шаэс
09.11.15
✎
14:01
|
(34) ну ты что? Злопчинский же
|
|||
36
Масянька
09.11.15
✎
14:05
|
(35) Там не написано (отечество).
Тогда вопрос к ТС: ладно я, а Ё не уважаемый?! :))))))))))) |
|||
37
шаэс
09.11.15
✎
14:09
|
(36) а ты всю ветку читала? например, (21)?
|
|||
38
Масянька
09.11.15
✎
14:13
|
(37) Читала... Даже не подумала... :)))))))))
|
|||
39
Tatitutu
09.11.15
✎
14:14
|
(21) тогда уж : у CheBurator
если быть точным )))) |
|||
40
Масянька
09.11.15
✎
14:16
|
(39) Началось...
"Кто ж его посадит? Он же - ПАМЯТНИК!" (С) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |