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

Публикация № 143478

Разработка - Практика программирования

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

Преамбула.

При сохранение таблиц (формата 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. Подумал, может кто тоже сталкивался с такой проблемой – тогда пригодится, или на какие другие полезные мысли наведет :)

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

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

Специальные предложения

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

См. также

Онлайн-интенсив "1C:Предприятие для программистов: Бухгалтерские задачи" с 22 июня по 8 июля 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для решения задач бухгалтерского учета. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Бухгалтерия” и прочих прикладных решений, в которых реализованы соответствующие механизмы для автоматизации бухгалтерских задач.

4900 рублей

Удобная выгрузка данных из 1С 7.7 для последующего переноса их в другие программы

Инструменты и обработки Системный администратор Программист Бухгалтер Внешняя обработка (ert,epf) v77::БУ 1С7:Бух Абонемент ($m) Файловые протоколы обмена, FTP Загрузка и выгрузка в Excel Внешние источники данных

Позволяет выгружать данные справочников, документов, сальдо по счетам из 1С 7.7 (компонента «Бухгалтерский учет» в файлы формата MXL, XLS, DBF. Полученные файлы удобно использовать для переноса в другие программы. В разработке применено несколько оригинальных решений.

1 стартмани

10.06.2016    28135    120    gubanoff    10       

Правила обмена ТиС 7.7 - БП 3.0

Инструменты и обработки Программист Архив с данными v77::ОУ 1С7:ТиС Windows Абонемент ($m) Перенос данных из 1С7.7 в 1C8.X Внешние источники данных Обмен данными 1С

Правила обмена из ТИС 7.7 в БП 3.0. Выгрузка документов Реализация, Поступление ТМЦ, Возврат от покупателя.

1 стартмани

25.03.2016    24011    106    LavinVadik    3       

Онлайн-курс «Автоматизация процессов управления МТО: методика сбора и формализации требований» с 1 апреля по 13 мая 2020 года. Промо

Цель курса - повысить полноту и качество сбора и формализации требований к автоматизации процессов управления материально-техническим обеспечением. Курс основан на процессном подходе, позволяет в полном объеме выявить и учесть все факторы, влияющие на специфику процессов управления МТО. Участники курса получают теоретические знания в области организации процессов управления МТО и готовый инструментарий для сбора и формализации требований по автоматизации этих процессов (шаблоны, опросники, модели).

40000 рублей

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

Ошибка в регламентированной отчетности за 2-й квартал (форма-4 ФСС: Титульный лист, релиз 13q2001)

Инструменты и обработки Программист Бухгалтер Внешний отчет (ert,erf) v77::БУ 1С7:Бух Россия БУ Windows ФОМС, ПФ, ФСС Абонемент ($m) Регламентированная отчетность Практика программирования

В регламентированной отчетности за 2-й квартал (форма-4 ФСС: Титульный лист, релиз 13q2001) для конфигурации "Бухгалтерский учет, редакция 4.5" при открытии ранее сохраненного титульного листа дата подписания всегда будет "01.04.2013" независимо от того, какая там была дата при сохранении.

1 стартмани

27.06.2013    12275    18    user77    8       

Обмен данными между 1С:ТиС 7.7 и Bitrix

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v77::ОУ 1С7:ТиС Windows Абонемент ($m) Внешние источники данных Обмен через XML WEB

Недавно понадобилось сделать интеграцию между 1С:Торговля и Склад 7.7 и 1С:Битрикс. В сети Интернет имеются готовые решения, но все они платные. Поэтому решил сделать собственное бесплатное решение.

1 стартмани

13.03.2013    27687    269    Nicholas    19       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

DevOps для 1С. Онлайн-курс проходит с 16 апреля по 11 июня 2020 года. Промо

Данный онлайн-курс предусматривает изучение процессов DevOps, их применение при разработке на платформе 1С. В результате прохождения онлайн-курса вы сможете: настроить ПО необходимое для проведения проверок и тестирования, создавать сценарии тестирования и объединять их в комплексные процессы, создавать скрипты для автоматизации процессов DevOps.

12000 рублей

Реализация условий в прямых запросах к журналу расчета.

Статья Программист Нет файла v77::Расчет 1С7:ЗиК Windows Зарплата Абонемент ($m) Практика программирования

Обзор методов реализации условий и функций с условиями в обращениях к журналу расчетов при помощи прямого запроса.

1 стартмани

06.12.2012    12492    5    nicotin    5       

Групмейкер для таблицы значений.

Инструменты и обработки Программист Внешний отчет (ert,erf) v7.7 v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Абонемент ($m) Инструментарий разработчика Практика программирования Универсальные обработки

Универсальная функция и обработка для свертки и группировки таблицы значений. Очень простой способ подвести итоги по призвольным группам в произвольном порядке любой таблицы значений для быстрого вывода на печать нужной пользователю последовательности и детализации группировок.

1 стартмани

20.11.2012    21907    59    dusha0020    15       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Выгрузка прайса из 1С:7.7 ТиС в Excel

Инструменты и обработки Руководитель проекта Внешний отчет (ert,erf) v77::ОУ 1С7:ТиС УУ Windows Оптовая торговля Абонемент ($m) Загрузка и выгрузка в Excel

Отчет позволяет выгружать прайс из 1С:7.7 ТиС в Excel. Автоматизация процесса выгрузки.

1 стартмани

08.11.2012    11996    79    FotoGraff    3       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Алкогольная декларация. Выгрузка в Декларант-Алко из ТиС

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v77::ОУ 1С7:ТиС Розничная и сетевая торговля (FMCG) Россия Windows Розничная торговля Акцизы Абонемент ($m) Регламентированная отчетность Внешние источники данных

Обработка выгружает XML файл для загрузки накладных и производителей алкогольной продукции в Декларант-Алко. А также формирует декларацию по алкоголю и пиву (формы 11 и 12)

1 стартмани

19.09.2012    25812    260    korefano    31       

Выгрузка документов в казначейство в формате альбома 9.0 для ББУ 7.7

Инструменты и обработки no Архив с данными v77::БУ 1С7:ББУ Россия Госбюджет Windows Абонемент ($m) Внешние источники данных

С 1 августа 2012 года вступил в действие новый формат текстовых файлов для обмена данными с органами казначейства (формат альбома 9). В ББУ 7.7 формат альбома 9 (так же как и 8 формат) поддерживаться не будет. Для тех, кто еще не перешел на БГУ 8, а заявки нужно выгружать по новому формату, таблица настроек для версии альбома 9 для ББУ 7.7.

1 стартмани

11.09.2012    13109    51    mirrr    5       

Екатеринбург.Online: Голосование продолжается Промо

Продолжается голосование за доклады на INFOSTART MEETUP Екатеринбург.Online! Лучшие из них попадут в окончательную программу онлайн-митапа! Присоединяйтесь к голосованию и покупайте билеты - 3 000 рублей за 8 часов продуктивной пятницы!

3000

Импорт данных из Excel в 1С

Инструменты и обработки no Внешняя обработка (ert,epf) v77::ОУ 1С7:ТиС Windows Абонемент ($m) Обработка документов Загрузка и выгрузка в Excel

Часто возникает задача по импорту данных в типовые документы (реализация, комплектация, перемещение и т.д.) подготовленных данных из Экселя в чистый заранее созданный документ. Что собственно и делается.

1 стартмани

31.07.2012    10050    130    gorleon    8       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 20 апреля по 15 мая 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

Исправление ошибки в отчете "Журнал счетов-фактур по Постановлению № 1137" в 1С Бухгалтерии 7.7 537-7.7.538 релиз

Статья Программист Нет файла v77::БУ 1С7:Бух Россия БУ Абонемент ($m) Практика программирования

В отчете "Журнал счетов-фактур по Постановлению № 1137" в печатной форме не выводятся суммы НДС по ставке 10%, внесенные вручную в документе "Счет-фактура полученный"

1 стартмани

12.04.2012    10830    22    ksv74    1       

Базовый курс для начинающих 1С-программистов. Онлайн-интенсив со 2 июня по 2 июля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500-9500 рублей

Вывод и перенумерация отчета с заранее неизвестным количеством группировок.

Инструменты и обработки Программист Внешняя обработка (ert,epf) openconf v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m) Практика программирования Работа с интерфейсом

1C v.7.7 Пример вывода отчета с заранее неизвестным количеством группировок, с возможностью изменять уровень вложенности группировок из списка значений на форме, с нумерацией конечного отчета, с выводом структуры вложенности группировок (с помощью внешней компоненты Йоксель - http://yoksel.net.ru/Hotfixes). В приложенном файле показан пример вывода отчета из сформированной таблицы значений. Код я старался закомментировать как можно подробней. Хоть семерка и вымирающая платформа, думаю еще есть люди, которые только начинают ей заниматься, и им это может пригодиться.

1 стартмани

21.03.2012    25130    20    unichkin    11       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Исправление ошибки вычисления суммы удержанного НДФЛ в ЗиК 320-322

Статья Программист Нет файла v77::Расчет 1С7:ЗиК Россия БУ Зарплата НДФЛ Абонемент ($m) Практика программирования

При заполнении таблицы ДоходыВычетыНалогиСотрудников в функции глобального модуля глСобратьДанныеДляНДФЛ2011() есть ошибка при вычислении колонки "НУ1" (суммы удержанного НДФЛ для целей налогового учёта). Данная статься посвящена её исправлению.

1 стартмани

18.03.2012    16439    30    andrewks    33       

Загрузка данных : Прыг-Скок...или из MS EXCEL в 1С (7.7) или как "забить материал или товар"

Инструменты и обработки no Внешняя обработка (ert,epf) v77::БУ 1С7:Бух 1С7:Комплекс 1С7:ПУБ 1С7:ББУ Учет ТМЦ Абонемент ($m) Обработка документов Загрузка и выгрузка в Excel

На основании публикации Tatitutu (http://infostart.ru/public/69253/) сделана попытка получить работающую загрузку экселевских счетов-фактур только для двух документов: "Поступление материалов" и "Поступление товаров".

1 стартмани

06.03.2012    15409    105    jack19    7