1с тормозит при выгрузке в excel

  • Remove From My Forums
  • Вопрос

  • Excel 2016 стал
    тормозить при работе с файлами, которые были выгружены/созданы 1С и подобных (ERP) систем…

    Комп новый, не в нем проблема. Файлы
    маленького размера до 100 кб. Файл преобразовывала в 
    xlsx  и xlsb

    .
    Принтер, который по умолчанию — подключен. Работа в 
    Windows 10 c Office 2016,
    установлены все обновления. 

    Ни один из нижеперечисленных
    методов результата не дал:

    1. Поиск объектов: вкладка Главная → Найти и выделить → Выделение группы ячеек → Объекты. Не найдено ни одного объекта!
    2. Закрытие Outlook, так как торможение файлов, так же может наблюдаться при открытом почтовом клиенте
      Outlook, если у него установлены параметры отслеживание действий с файлами для Пользователя. Соответственно отменила отслеживание действий с файлами.
    3. Открытия файла как архив. Отсутствие папки drawings.
    4. Условное форматирование → Удалить правила → Удалить правила со всего листа.
    5. Очистить форматы – не помогло

    В чем может быть проблема?!

 

shlang

Пользователь

Сообщений: 57
Регистрация: 08.04.2013

Уважаемые форумчане! Долго искал решение проблемы: почему файл, выкачанный из 1с, в Excel 2010 работает абсолютно нормально, а при открытии в Excel 2016 сильно загружает процессор и вызывает зависание всех открытых файлов Excel. Сегодня на одном из форумов нашел решение, хотел поделиться, если кто-то не сделал это раньше меня:

Решение проблемы между файлами 1с и Excel 2016

 

wowick

Пользователь

Сообщений: 972
Регистрация: 14.01.2014

Реально бесит такая фигня с 1С. Выгружаешь файл, там всего один лист, делаешь какую-нить сводную, кладешь ее в новый лист, а к исходному листу после этого уже нет доступа. Приходится заходить в Параметры — Дополнительно и там ставить галочку в параметр «Показывать ярлыки листов», и только потом можно отодвинуть эту заслонку и получить доступ к листам!

Если автоматизировать бардак, то получится автоматизированный бардак.

 

TheBestOfTheBest

Пользователь

Сообщений: 2366
Регистрация: 03.04.2015

Excel 2010 +PLEX +SaveToDB +PowerQuery

Это решение давно известно, сохраняйте в xlsx и не будут тормозить.

Неизлечимых болезней нет, есть неизлечимые люди.

 

wowick

Пользователь

Сообщений: 972
Регистрация: 14.01.2014

#4

29.03.2018 10:42:05

Цитата
TheBestOfTheBest написал:
сохраняйте в xlsx и не будут тормозить.

7.7 не знает такого формата, там только xls.

Если автоматизировать бардак, то получится автоматизированный бардак.

 

shlang

Пользователь

Сообщений: 57
Регистрация: 08.04.2013

#5

29.03.2018 10:44:35

Цитата
Это решение давно известно, сохраняйте в xlsx и не будут тормозить.

Нет, xlsx не спасает, это неправда. Попробуйте сами. Если бы решение было таким простым, никто бы не писал на форум тех. поддержки Майкрософт.  

 

TheBestOfTheBest

Пользователь

Сообщений: 2366
Регистрация: 03.04.2015

Excel 2010 +PLEX +SaveToDB +PowerQuery

если утановлена 7.7, то и эксель д.б. соответствующий  ;)  

Неизлечимых болезней нет, есть неизлечимые люди.

 

TheBestOfTheBest

Пользователь

Сообщений: 2366
Регистрация: 03.04.2015

Excel 2010 +PLEX +SaveToDB +PowerQuery

#7

29.03.2018 10:46:53

Цитата
shlang написал:
Нет, xlsx не спасает, это неправда

В 2-х компаниях спасло. Видимо у Вас ошибка на локальной машине (обновления офиса и винды)

Изменено: TheBestOfTheBest29.03.2018 10:47:37

Неизлечимых болезней нет, есть неизлечимые люди.

 

Vladal

Пользователь

Сообщений: 4
Регистрация: 28.03.2018

#8

29.03.2018 11:04:27

А подошёл способ с форума Майкрософт по ссылке выше?

Цитата
Сегодня нашел косяк!!! Файл сформирован из 1С , листы снизу скрыты(задвинуды полосой пролистывания) — прокруткой и при этом тормозит при копировании, перескакивании по ячейкам. Как только отодвигаю эту задвижку и становятся видны листы, так перестают тормозть файлы!!!!

Проверил на 12 файлах, на 4х компьютерах!! Задвигаешь обратно (скрываешь листы, так сразу начинает тупить при копировании ячейки)

Из первого поста не вся картина ясна, есть несколько неизвестных:

Цитата
shlang написал:
почему файл, выкачанный из 1с,

1. Какая платформа 1С (7.7, 8.х)
2. Каким способом сохраняется файл из 1С?

Для v8:

Код
ТабДокумент.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLS);
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ПолноеИмяФайла); 
Excel.Visible = 0;
Excel.ActiveWindow.DisplayWorkbookTabs = 1; 
Excel.ActiveWindow.TabRatio = 0.6;         
FullName = Excel.ActiveWorkbook.FullName;            
Excel.DisplayAlerts = false;
Excel.ActiveWorkbook.SaveAs(FullName, 18); // 18 - xls 97-2003; 51 - xlsx 2007-2013
//Excel.Visible = 1;       // если нужно поработать дальше с книгой
//Excel.Application.Quit() // если просто выходим 

Для v7:

Код
ТабДокумент.Записать(ПолноеИмяФайла, "XLS");
Excel = СоздатьОбъект("Excel.Application");
Excel.WorkBooks.Open(ПолноеИмяФайла);
Excel.Visible = 0;
Excel.ActiveWindow.DisplayWorkbookTabs = 1;
Excel.ActiveWindow.TabRatio = 0.6;
FullName = Excel.ActiveWorkbook.FullName;
Excel.DisplayAlerts = false;
Excel.ActiveWorkbook.SaveAs(FullName, 18); // 18 - xls 97-2003; 51 - xlsx 2007-2013
//Excel.Visible = 1;       // если нужно поработать дальше с книгой
//Excel.Application.Quit() // если просто выходим
Цитата
wowick написал:
7.7 не знает такого формата, там только xls.

Знает, если сохранять не средствами платфомы 1С

Код
ТабличныйДокумент.Записать("c:Отчет.xls", 1);

А как в примере выше — вызывая Excel.Application

Вот еще один способ, с созданием (копированием) листов в Excel:

Скрытый текст

Изменено: Vladal29.03.2018 11:32:28

Жутко зависает выгрузка в эксель

Я
   falselight

22.05.19 — 09:49

Перебором результата запросе, идет заполнение полей листа эксель.

каждая вот такая строка перебирается по несколько секунд с паузами то есть.

Почему?

            Лист.Cells(СчетчикСтрок, 1).Value             = Строка(ТекСтрока.ВерсияДанных);

                Лист.Cells(СчетчикСтрок, 2).Value             = Строка(ТекСтрока.Родитель);

   falselight

1 — 22.05.19 — 09:49

Всего 50 строк, 50 полей строки то есть.

   falselight

2 — 22.05.19 — 09:56

&НаКлиенте

Процедура СохранитьВExcel(Команда)

        ФайлДанных = «обменНоменклатура.xlsx»;

        Попытка

            Excel = Новый COMОбъект(«Excel.Application»);

        Исключение

            Сообщить(ОписаниеОшибки());

            Возврат;

        КонецПопытки;

        Попытка

            Книга                             = Excel.WorkBooks.Add();

            //Зададим первому листу имя

            Лист                             = Книга.WorkSheets(1);

            Лист.Name                       = «Выгрузка данных»;

            Excel.ActiveWindow.View         = 2;     // Режим страничного просмотра

            Excel.ActiveWindow.Zoom         = 100;  // Масштаб

            Лист.PageSetup.Orientation         = 2;     // Альбомная ориентация

            СчетчикСтрок = 1; //Заполнение ТЧ начинаем со второй строки

            Для Каждого ТекСтрока Из ТЗ Цикл

                Лист.Cells(СчетчикСтрок, 1).Value             = Строка(ТекСтрока.ВерсияДанных);

                Лист.Cells(СчетчикСтрок, 2).Value             = Строка(ТекСтрока.Родитель);

                Лист.Cells(СчетчикСтрок, 3).Value             = Строка(ТекСтрока.ЭтоГруппа);

                Лист.Cells(СчетчикСтрок, 4).Value             = Строка(ТекСтрока.Код);

                Лист.Cells(СчетчикСтрок, 5).Value             = Строка(ТекСтрока.Наименование);

                Лист.Cells(СчетчикСтрок, 6).Value             = Строка(ТекСтрока.АлкогольнаяПродукция);

                Лист.Cells(СчетчикСтрок, 7).Value             = Строка(ТекСтрока.Артикул);

                Лист.Cells(СчетчикСтрок, 8).Value             = Строка(ТекСтрока.Вес);

                Лист.Cells(СчетчикСтрок, 9).Value             = Строка(ТекСтрока.Весовой);

                Лист.Cells(СчетчикСтрок, 10).Value             = Строка(ТекСтрока.ВидАлкогольнойПродукцииЕГАИС);

   falselight

3 — 22.05.19 — 10:05

Это было вот из за этого

         Excel.ActiveWindow.View         = 2;     // Режим страничного просмотра

            Excel.ActiveWindow.Zoom         = 100;  // Масштаб

            Лист.PageSetup.Orientation         = 2;     // Альбомная ориентация

  

SleepyHead

4 — 22.05.19 — 10:38

Платформа 1с какая? Если 1с8, то фигли вы так мучаетесь?

Таб.Сохранить(…) // ТабличныйДокумент, читать синтаксис-помощник

Показывать по
10
20
40
сообщений

Новая тема

Ответить

maestro_voln

Дата регистрации: 04.03.2009
Сообщений: 289

Есть книга ексель размер 2.5 мб в ней 5 листов при выгрузке в нее справочника номенклатура времени уходит пару часов<br>а если создаю новую книгу и выгружаю в нее то занимает 20-25 мин.<br>в чем проблема тормозов? в размере файла или в количиствах листов или может еще в чем то?

zak555 (398843952)

Дата регистрации: 27.03.2008
Сообщений: 4656

maestro_voln

Дата регистрации: 04.03.2009
Сообщений: 289

«ExcelApp = СоздатьОбъект(«Excel.Application»); <br>РабочаяКнига=ExcelApp.WorkBooks(«Прайс лист.xls»); <br>Страница=РабочаяКнига.Worksheets(«Лист1»); <br>ExcelApp.Visible=0; <br>ExcelApp.ScreenUpdating = 0;<br>ExcelApp.EnableEvents = 0;<br><br>ExcelApp = СоздатьОбъект(«Excel.Application»); <br>НовыеРабочиеКниги=ExcelApp.WorkBooks; <br>РабочаяКнига =НовыеРабочиеКниги.Add();<br>Страница=РабочаяКнига.Worksheets(1); <br>Страница.Name = «Прайс»; <br>ExcelApp.Visible=0; <br>ExcelApp.ScreenUpdating = 0;<br>ExcelApp.EnableEvents = 0;<br>»

Maxim_B

Дата регистрации: 15.01.2009
Сообщений: 29

Посмотрите здесь http://infostart.ru/projects/4225/<br>Там была длинная ветка где обсуждался способ наибыстрейшей работы с большими файлами excel’я

Показывать по
10
20
40
сообщений

Вопрос Почему иногда все зависает при работе в 1С с Excel
Ответ Самая частая причина «прочного зависания» 1С при работе с Excel — это открытое в Excel окно обрабатываемого файла Excel.
Прежде чем грешить на написанный код, посмотрите, нет ли открытых окон Excel и закройте их все.
Скорее всего, проблема решится.
Дело в том, что в таких случаях 1С: Предприятие «молча» пытается захватить уже захваченный файл и прежде чем 1С «отвиснeт» и сообщит что-то вразумительное, может пройти довольно много времени.

Next Post

  • v8

  • Программисту 1C

Создание элемента справочника (1С: v8: Язык программирования: Справочники)

Сб Май 22 , 2010

Функция СозданиеЭлемента(УказанноеЗначение, НаименованиеСправочника, СчетчикПоСтрокам, СчетчикПоЛистам, ПоКоду = Ложь, Владелец = «») НайденноеЗначение = Справочники[НаименованиеСправочника].ПустаяСсылка(); // создание Если ЗначениеЗаполнено(УказанноеЗначение) Тогда ИскомыйОбъект = Справочники[НаименованиеСправочника].СоздатьЭлемент(); Если ПоКоду Тогда ИскомыйОбъект.Код = УказанноеЗначение; Иначе ИскомыйОбъект.Наименование = УказанноеЗначение; КонецЕсли; Если ЗначениеЗаполнено(Владелец)Тогда ИскомыйОбъект.Владелец = Владелец; КонецЕсли; Попытка ИскомыйОбъект.Записать(); НайденноеЗначение = ИскомыйОбъект.Ссылка; Исключение Сообщить(«Не удалось создать новый элемент […]

Понравилась статья? Поделить с друзьями:
  • 1с табличный документ гиперссылка в ячейке excel
  • 1с табличный документ в excel с формулами
  • 1с табличную часть в word
  • 1с таблица значений сохранить значения excel
  • 1с способы чтения excel