Корректировка EXCEL–файла. Восстановление «длинных» строк.

13.07.12

Интеграция - Загрузка и выгрузка в Excel

Обработка предназначена для борьбы с обрезанием строк (не более 255 символов) при записи MXL-файла в EXCEL.

Скачать файлы

Наименование Файл Версия Размер
Обработка корректировки файлов
.ert 35,00Kb
14
.ert 35,00Kb 14 Скачать

Преамбула.

При сохранение таблиц (формата MXL) из 1С в EXCEL часто наблюдается «обрезание» длинных строк (в ячейке MXL текст длиной скажем 300 символов, а в EXCEL уходит только 255). Наверно, есть много разных способов борьбы с этим злом, здесь представлен один из них.

Суть метода – сравнение текста в каждой ячейки таблицы 1С и соотвествующей ей ячейки файла EXCEL.

Обработка требует

- предварительного сохранения таблицы 1С в файл (на самом деле, мне прислали ряд таких файлов, и поставили задачу загнать все корректно в EXCEL – отсюда и подход реализации);

- наличие на компьютере установленного MS Office (так как используется OLE объект).

 

Работа с обработкой

На форме (рисунок 1) выбирается исходный MXL файл (поле «Входной файл») и окончательный фал EXCEL (поле «Выходной файл»).

Если файла EXCEL еще нет, то необходимо снять галочку «Не перезаписывать файл, а только обработать». В этом случае программа сама создаст EXCEL файл с указанным именем из файла MXL.

После выполнения корректировки EXCEL файла его можно или сразу записать, или открыть на просмотр (и потом уже если все в порядке записывать).

 

Реализация обработки.

На форме переманенные:

«ИмяВхФайла» - имя исходного MXL файла;

«ИмяВыхФайла» - имя конечного EXCEL файла;

«НеПерезаписывать» - галочка, решающая нужно ли предварительно создавать EXCEL файл из MXL;

«ЧтоДелатьСВыходным» - переключатель, определяет показать ли  предварительно выходной файл или сразу записывать.

 

Сам код модуля обработки (если интересно)

--------------------------------------------------------------

 

Процедура ПроверкаЯчеекЭКСЕЛ(Таб,ЛистЕ,ТипФайлаEXCEL)

           

            Если  ТипЗначенияСтр(ЛистЕ) <> "OLE._Worksheet" тогда

                        возврат;

            КонецЕсли;

               

            МаксСтрок = Таб.ВысотаТаблицы();

            Если МаксСтрок =0 Тогда

                возврат;            

            КонецЕсли;

           

            МаксКол = Таб.ШиринаТаблицы();

           

            для стр = 1 по МаксСтрок цикл

                        Если стр%25=0 тогда

                                   Состояние("Проверили "+Стр+" из "+МаксСтрок);

                        КонецЕсли;  

                       

                        для кол = 1 по МаксКол цикл

                                   Текст_ = Таб.Область(Стр,кол).Текст;

                                   ДлиннаСтр = стрДлина(Текст_);

                                  

                                   Если ПустаяСтрока(Текст_)=1 Тогда

                                               продолжить;   

                                              

                                   ИначеЕсли ДлиннаСтр

                                               // ошибка может быть только начиная с 242, но возьмем чуть меньще          

                                               продолжить;

                                   КонецЕсли;      

                       

                                   Ячейка = ЛистЕ.Cells(стр,кол);

                                   Ячейка.NumberFormat = "";

                                   Ячейка.Value = Текст_;

           

                                   ТипФайлаEXCEL =  -4143;

                                  

                        КонецЦикла;

            КонецЦикла;

                 

КонецПроцедуры    

 

Процедура Сформировать()

            Таб = СоздатьОбъект("Таблица");

            Таб.Открыть(ИмяВхФайла);

           

            ЕСли НеПерезаписывать=0 тогда

                        Таб.Записать(ИмяВыхФайла,1);

            КонецЕСли;

   

            ExcelApp = СоздатьОбъект("Excel.Application");

            НовыеРабочиеКниги          =ExcelApp.WorkBooks;

            РабочаяКнига           =НовыеРабочиеКниги.Add(ИмяВыхФайла);

           

            ТипФайлаEXCEL = 39;

            ПроверкаЯчеекЭКСЕЛ(Таб,ExcelApp.ActiveSheet,ТипФайлаEXCEL); 

            Если ЧтоДелатьСВыходным=1 Тогда

                        ExcelApp.ActiveWorkbook.SaveAs(ИмяВыхФайла,ТипФайлаEXCEL);         

                        выход=ExcelApp.ActiveWindow.Close;

                       

            иначеЕСли ЧтоДелатьСВыходным=2 Тогда      

                        ExcelApp.Visible = 1;           

            КонецЕсли;

КонецПроцедуры

 

Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога,ФлагСтандОбр)

    Если ИдентЭлемДиалога="ИмяВхФайла" Тогда

                        ИмяФайла = ИмяВхФайла;

                        Каталог  = "";

                       

                        Если ФС.ВыбратьФайл(0,ИмяФайла,Каталог,"Выберите файл","*.mxl|*.mxl","mxl")=1 Тогда

                             ИмяВхФайла = Каталог+ИмяФайла;                                                                     

                        КонецЕсли;

       

            ИначеЕсли ИдентЭлемДиалога="ИмяВыхФайла" Тогда         

                        ИмяФайла = ИмяВыхФайла;

                        Каталог  = "";

                       

                        Если ФС.ВыбратьФайл(1,ИмяФайла,Каталог,"Выберите файл","*.xls|*.xls","xls")=1 Тогда

                             ИмяВыхФайла = Каталог+ИмяФайла;                                                                    

                        КонецЕсли;              

    КонецЕсли;         

КонецПРоцедуры

 

ЧтоДелатьСВыходным = 1;

 

--------------------------------------------------------------

 

PS. Подумал, может кто тоже сталкивался с такой проблемой – тогда пригодится, или на какие другие полезные мысли наведет :)

См. также

Загрузка банковской выписки для 1С 7.7 любой конфигурации

Банковские операции Загрузка и выгрузка в Excel Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет Платные (руб)

Решение предоставляет комплексную загрузку банковской выписки из CSV, XLS, TXT файла в 1С 7.7 любой конфигурации. Позволяет создавать документы выбранного вида, например "Строка выписки банка (приход/расход)", или многострочный табличный документ, например Выписка, для каждой операции из загружаемого файла банковской выписки. Загружает реквизиты документа, а также создаёт контрагентов и другие необходимые элементы справочников.

3588 руб.

29.07.2021    20604    13    22    

14

Загрузка документов в 1С (7.7) из табличных файлов Excel,OpenOffice,1C,DBF,TXT (обработка)

Файловый обмен (TXT, XML, DBF), FTP Загрузка и выгрузка в Excel Платформа 1С v7.7 Конфигурации 1cv7 Платные (руб)

Обработка решает поставленную задачу по вводу документов, а кроме того обладает важной функцией: настраивается на ассортимент конкретного поставщика, запоминая соответствие между его номенклатурой и «нашей». Т.е. фактически – является самообучающейся системой ввода накладных. У разных поставщиков могут быть накладные различного типа, с разным количеством полей, поэтому для каждого из них может быть сохранена своя собственная настройка диалоговой формы так, что любая поступающая накладная может быть обработана. По отношению к программе "1С:Предприятие 7.7" данное решение является внешними файлами. Для использования данного продукта не требуется вносить изменения в алгоритм существующих программ или используемых конфигураций.

2400 руб.

10.12.2009    76468    58    93    

68

ЭВОТОР: выгрузка и загрузка в онлайн кассу в соответствии с требованием 54-ФЗ (54ФЗ). 1С: 7.7 ТиС

Загрузка и выгрузка в Excel ККМ Платформа 1С v7.7 1С:Торговля и склад 7.7 Управленческий учет Платные (руб)

Выгрузка из 1C версии 7.7 ТиС (Торговля и Склад) в EXCEL для дальнейшей загрузки в кассы ЭВОТОР, с помощью обработки обмен через EXCEL ( которая выбирается на сайте ЭВОТОР в магазине приложений). Полная версия без ограничений. Демоверсия позволяет выгружать только 5 строк номенклатуры(группы товаров). Демоверсия обладает такими же характеристиками что и полная за исключением того, что выгружает 5 строк неважно чего группы или номенклатуры (текст обработки зашифрован). Если у вас одна позиция номенклатуры или 5 позиций без групп, тогда Демоверсия для Вас. Если вдруг выскакивает ошибка по запуску обработки попробуйте запустить 1с с правами администратора

3000 руб.

19.06.2017    49817    9    26    

14

Универсальные обработки документов и справочников для 1С: Предприятие 7.7

Корректировка данных Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обработки можно использовать в любой конфигурации 1С-Предприятия 7.7. Обработки позволяют просмотреть/изменить значения любого реквизита документов/справочников, существующих в базе. В обработках реализован множественный отбор по значениям реквизитов (для табличной части документов тоже). В обработке документов реализованы следующие действия: Перенумерация; проведение; отмена проведения; пометка на удаление; непосредственное удаление; снятие пометки удаления; изменение реквизитов; очистка реквизитов; удаление строк табличной части; вывод на печать и в файлы *.xls,*.csv,*.dbf,*.xml реквизитов шапки и табличной части. В обработке справочников реализованы следующие действия: Перенумерация; пометка на удаление; непосредственное удаление; снятие пометки удаления; изменение реквизитов; очистка реквизитов; очистка истории значений периодического реквизита; перенос справочника в другую базу подобной конфигурации по OLE; вывод на печать реквизитов и истории значений периодических реквизитов; вывод реквизитов в файлы *.xls,*.csv,*.dbf,*.xml; отчет по структуре справочников, вывод и обработка ссылок на выбранные элементы.

1 стартмани

23.11.2016    38175    210    SanchoD    15    

13

Выводим из suspect базу 1С 7.7 на sql server 2000, а также "Перемещение баз данных SQL Server в новое местоположение с помощью операций Detach и Attach"

Корректировка данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

База данных помечается Suspect, когда SQL Server не может читать файлы данных, связанные с базой данных с жесткого диска. В этом случае сделать бекап базы нельзя, но можно попробовать образ диска. После того как возможность читать файлы данных восстановлена, вы можете перезапустить службу SQL Server, и если возможно, произойдет автоматическое восстановление. Что делать, если информационная база 1С7.7 на SQL Server 2000 перешла в состояние suspect? Если это произошло утром и бекап сделан, Вы, конечно, можете грохнуть и раскатать базу заново (вечером это проблематичнее), но не торопитесь - возможно, поможет detach+attach или другие методы, изложенные в данной публикации.

1 стартмани

08.11.2016    22747    ksnik    5    

5

Метод загрузки данных из таблиц Excel в 1С без установки Office

Загрузка и выгрузка в Excel Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Импорт данных в 1С:Предприятие 7.7 из Excel через JET.OLEDB или ACE.OLEDB. Данный метод позволяет загружать данные из файлов на ПК, на которых не установлен MS Office.

1 стартмани

20.09.2016    30476    11    aserg    4    

16

Деноминация оборотов и остатков в 1С7.7 (Беларусь)

Корректировка данных Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 1С:Бухгалтерия для бюджетных учреждений 7.7 Беларусь Бухгалтерский учет Абонемент ($m)

Обработка проводит деноминацию оборотов, сумма каждой проводки делится на 10000. После этого остатки по счетам и субконто корректируются до эталонных значений. Также деноминируются реквизиты справочников.

1 стартмани

12.06.2016    36229    62    aselik    17    

11
Оставьте свое сообщение