Корректировка 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 Скачать

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

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

См. также

Лучшие программы за прошедший месяц Промо

Инфостарт подготовил ТОП-25 самых продаваемых и популярных на текущий момент программ. При формировании списка учитывается аналитика продаж и запросы клиентов за последний месяц.

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

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

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

1 стартмани

10.06.2016    28200    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    24050    106    LavinVadik    3       

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

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

4500-9500 рублей

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

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

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

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

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

1 стартмани

27.06.2013    12304    18    user77    8       

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

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

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

1 стартмани

13.03.2013    27765    269    Nicholas    19       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

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

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

4900 рублей

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

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

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

1 стартмани

06.12.2012    12515    5    nicotin    5       

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

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

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

1 стартмани

20.11.2012    21953    59    dusha0020    15       

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

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

12000 рублей

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

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

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

1 стартмани

08.11.2012    12046    79    FotoGraff    3       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

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

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

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

1 стартмани

19.09.2012    25868    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    13129    51    mirrr    5       

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

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

4900 рублей

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

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

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

1 стартмани

31.07.2012    10082    130    gorleon    8       

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

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

9000 рублей

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

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

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

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

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

1 стартмани

12.04.2012    10860    22    ksv74    1       

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

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

5500 рублей

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

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

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

1 стартмани

21.03.2012    25195    20    unichkin    11       

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

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

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

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

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

1 стартмани

18.03.2012    16462    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    15442    105    jack19    7