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

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

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

См. также

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

Загрузка и выгрузка в Excel Обработка документов v7.7 v77::ОУ v77::БУ v77::Расчет 1cv7.md Абонемент ($m)

Предыстория: постоянно на форуме спрашивают - "как загрузить из EXCEL в 1С нужную информацию?" и начинается... Готовый пример КАК...

1 стартмани

19.04.2010    52747    105    Tatitutu    96    

Телеграм БОТ и 1С 7.7 (пример интеграции)

Внешние источники данных Интеграция v77::ОУ 1С7:ТиС Россия Абонемент ($m)

Небольшая обработка (шаблон) по интеграции НЕ умирающей 1С 7.7 (7.70.027) и TELEGRAM.

1 стартмани

04.10.2019    4738    9    serpent    0    

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

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

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

1 стартмани

10.06.2016    30768    135    gubanoff    10    

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

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

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

1 стартмани

25.03.2016    25522    105    LavinVadik    6    

Загрузка процессора 100% на 1С Предприятие 7.7 или еще один вариант odbc33.dll

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

Версия vk_TerminalSleep для работы совместно с "секретным релизом" на Windows 7.

1 стартмани

07.01.2014    11332    16    Ma_X_X    1    

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

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

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

1 стартмани

27.06.2013    13263    0    user77    8    

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

Внешние источники данных Обмен через XML WEB v77::ОУ 1С7:ТиС Абонемент ($m)

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

1 стартмани

13.03.2013    29528    123    Nicholas    19    

Прыг-Скок...или из MS EXCEL в 1С (7.7) TiS* (открытый код - бесплатно) Промо

Загрузка и выгрузка в Excel v77::ОУ 1С7:ТиС Россия Абонемент ($m)

Универсальная загрузку данных из Microsoft Office Excel загрузку из любых по форме документов с очень удобным редактором. Данная обработка загружает почти все в конфигурацию "Торговля и Склад" с возможность "откатить" до первоначального вида.

22.03.2011    36195    66    Tatitutu    39    

Загрузка поступлений из Excel

Обработка документов Загрузка и выгрузка в Excel Оптовая торговля Учет ТМЦ Оптовая торговля Учет ТМЦ v77::ОУ 1С7:ТиС Россия УУ Абонемент ($m)

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

5 стартмани

19.12.2012    29857    23    @lexandr    11    

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

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

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

1 стартмани

20.11.2012    23431    4    dusha0020    15    

Процесс бар (индикатор состояния выполнения цикла) Промо

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

Полезная "красотулька" в вашем документе. Будет очень полезна для медленных компьютеров, где не всегда понятно, работает-ли обработка или 1с-ка тупо "зависла"

14.04.2008    24044    2    ded00786    38    

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

Загрузка и выгрузка в Excel Оптовая торговля Оптовая торговля v77::ОУ 1С7:ТиС УУ Абонемент ($m)

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

1 стартмани

08.11.2012    13376    13    FotoGraff    3    

Подготовка сведений для ПФР - исправление некорректного формирования отрицательных сумм взносов с сумм превышения максимального предела. Конфигурация: ЗИК 7.70.328

Практика программирования Зарплата Зарплата v77::Расчет 1С7:ЗиК Россия ФОМС, ПФ, ФСС Абонемент ($m)

Подготовка сведений для ПФР - исправление в формирование сведений персонифицированного учета, при превышении максимального предела

1 стартмани

22.10.2012    18796    0    u_n_k_n_o_w_n    9    

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

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

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

1 стартмани

19.09.2012    27228    14    korefano    31    

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

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

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

1 стартмани

21.03.2012    26637    6    unichkin    11    

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

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

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

1 стартмани

11.09.2012    13721    1    mirrr    5    

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

Загрузка и выгрузка в Excel Обработка документов v77::ОУ 1С7:ТиС Абонемент ($m)

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

1 стартмани

31.07.2012    11049    12    gorleon    8    

Выгрузка Заявок На Кассовый Расход в казначейский СЭД для Бюджетного учреждения 7.7 с признаком Средства Юридических Лиц Промо

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

Небольшая доработка стандартной выгрузки документов в казначейский СЭД с признаком Средства Юридических Лиц. Предполагается для организаций, где будет использован только этот признак. Не претендует на универсальность. Подключается как дополнительный формат обмена с казначейством. Разрабатывалась для конфигурации Бухгалтерия бюджет 6.2 версии 647. Требуется небольшая доработка конфигурации.

1 стартмани

05.02.2012    20828    2    mastakw    10    

Внешний отчет Книга продаж 2012 для старых релизов Бухгалтерии 7.7 (протестировано на релизе 445 типовой конфигурации).

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

Внешний отчет Книга продаж, форма применяемая с 2012 года, для старых релизов Бухгалтерии 7.7 (протестировано на релизе 445 типовой конфигурации).

1 стартмани

29.04.2012    9634    2    ddv68    11    

Как я создал внешнюю обработку из встроенной

Практика программирования v77::ОУ 1С7:ТиС Россия Абонемент ($m)

Выбранный "сделать не проведенным" работает как провести

1 стартмани

27.04.2012    7281    1    AlexxxMksv    12    

Внешний отчет Книга покупок 2012 для старых релизов Бухгалтерии 7.7

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

Внешний отчет Книга покупок 2012 для старых релизов Бухгалтерии 7.7 (протестировано на релизе 445 типовой конфигурации).

1 стартмани

26.04.2012    10576    1    ddv68    8    

Печать РКО и ПКО за период

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

Пакетная печать приходных и расходных кассовых ордеров за период. Возможность отправить документы на просмотр или сразу на печать

1 стартмани

25.04.2012    6949    1    Leannet    7    

Выяснение ID'а объекта в базе SQL по его внутреннему идентификатору 1С

Практика программирования Универсальные функции openconf v77::БУ 1cv7.md Абонемент ($m)

Обработка позволяет узнать ID в базе SQL конкретного агрегатного объекта конфигурации (метаданных) 1С 7.7.

1 стартмани

27.03.2012    27969    6    born85    41    

Проверка и исправление реквизитов контрагентов в соответствии с сайтом STA.GOV.UA

Разное Практика программирования v77::ОУ v77::БУ 1cv7.md Украина Абонемент ($m)

Отчет-Обработка для заполнения в украинской конфигурации реквизиты контрагентов в соответствии с сайтом STA.GOV.UA. Проверку можно осуществлять как по ИНН таки по ЕДРПОУ. Можно сделать только отчет. А если понадобится то установив соответствующие флажки сделать необходимые изменения. Можно делать как для отдельного контрагента (выбрав его в отчете) так и для всех контрагентов сразу (для этого поле контрагента оставить пустым). Сделал Отдельно для "ТиС" и Отдельно для "Бухг учет"- Конфигурации для Украины

1 стартмани

12.03.2012    10734    0    volodya1122    6    

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

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

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

1 стартмани

06.03.2012    17047    14    jack19    7    

Выгрузка документов в формате альбома 8.0 для обмена с органами казначейства

Внешние источники данных v77::БУ 1С7:ББУ Россия Абонемент ($m)

Начиная с 1 марта 2012 года вступил в действие новый формат текстовых файлов для обмена данными с органами казначейства. Поддержка в БГУ 8.0 вышла, а в версии 7.7 то ли запаздывает, то ли вообще отменяется. Рассказываю, как мне удалось решить эту проблему.

1 стартмани

05.03.2012    14324    2    sam41    14    

OLAP - это просто!

Загрузка и выгрузка в Excel Анализ учета v77::ОУ v77::БУ 1С7:Бух БУ Абонемент ($m)

Методика простого OLAP-подобного анализа данных в сводных таблицах Excel.

1 стартмани

14.02.2012    26425    4    fixin    12    

Выгрузка в VirtueMart из 1С ТиС

Внешние источники данных v77::ОУ 1С7:ТиС Россия Абонемент ($m)

Способ обмена данными базы на 1с ТиС, крутящейся на MS SQL Server 2000 и сайта предприятия на CMS Joomla 1.5 + VirtueMart 1.8 (Выделенный сервер, Apache, MySql) через ODBC Driver MySql 5.1.

1 стартмани

08.02.2012    16141    8    al_zzz    5    

Универсальный обмен данными UNIDATA 1с77

Загрузка и выгрузка в Excel Обмен через XML 1С7.7<->1C7.7 v77::ОУ v77::БУ 1cv7.md Абонемент ($m)

Моя авторская обработка для обмена данными для 1с77

1 стартмани

07.02.2012    24503    23    fixin    19    

Исправление ошибки в печати справок 2-НДФЛ в 1С Бухгалтерии 7.7 535 релиз и УСН 189

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

При подборе в печати справок возникает ошибка "Если Элемент.ОсновнойЭлемент <> Элемент Тогда {Отчет.СправкиПоНДФЛ.Форма.Модуль(4782)}: Поле агрегатного объекта не обнаружено (ОсновнойЭлемент)"

1 стартмани

30.01.2012    18181    0    Intelligent    21    

Выгрузка в СЭД казначейства заявок на кассовый расход и заявок на возврат для релиза 647

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

С 2012 года стали бюджетным учреждением. Пришлось в срочном порядке допиливать выгрузку в СЭД казначейства заявок на кассовый расход и заявок на возврат для релиза 647, может быть кому-то пригодиться.

1 стартмани

26.01.2012    16894    1    xxx90    25    

Обработка для загрузки счетов-фактур из Excel в 1С 7.7

Загрузка и выгрузка в Excel Обработка документов v77::БУ 1cv7.md БУ НУ НДС Абонемент ($m)

Обработка для загрузки счетов-фактур из Excel в 1С 7.7 и создания документа "Поступление Товаров"

1 стартмани

17.01.2012    10080    7    griff19    5    

Взаимозачет по партиям для регистра "ПартииНаличие"

Практика программирования Анализ учета Учет ТМЦ Учет ТМЦ v77::ОУ 1С7:ТиС Россия БУ Абонемент ($m)

В процессе работы с конфигурацией ТИС, в разрезе одной номенклатуры могут накапливаться как положительные так и отрицательные остатки по различным партиям. Данная обработка содержит модуль проведения регламентного документа, который можно было бы создать в конфигурации и условно назвать "КорректировкаПартий", посредством которого можно провести взаимозачёт таких партий.

1 стартмани

02.01.2012    10117    30    Digo65    19    

Хранение любых файлов в конфигурации бух 4.5 1С77 с привязкой их к справочникам и документам

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

Небольшая доработка типовой конфигурации 1С77 Бухгалтерский учет 4.5. После доработки конфигурация позволяет "крепить" к любым справочникам и документам любые файлы (картинки, сканы документов, xls файлы расчетов, rtf файлы документов и договоров).

1 стартмани

20.12.2011    8285    1    zspr    30    

Формирование накладных из файла в формате XLS

Загрузка и выгрузка в Excel Обработка документов Оптовая торговля Оптовая торговля v77::БУ 1С7:Бух Оптовая торговля, дистрибуция, логистика Россия БУ Абонемент ($m)

Небольшая обработка, позволяющая формировать в 1С 7.7 Бухгалтерия для Украины (немного доработанная) приходные, налоговые и расходные накладные на базе файла заказов в виде файла XLS определенного формата. Каждый файл содержит несколько заказов (по торговым точкам, магазинам) одного из клиентов. Перед формированием расходных и налоговых накладных формируется одна приходная с указанием поставщика на весь товар, что выбран в заказе.

1 стартмани

07.12.2011    9270    0    daho    2