Имя: Пароль:
1C
1С v8
Прекращена работа программы "1cv8c"
0 aleks_p99
 
28.07.17
07:20
Всех приветствую! Запуская чтение .xls файла, доходит до "Книга.WorkSheets(ИмяСтраницы).Cells(1,1).SpecialCells(11).Address" выдает ошибку. При этом ошибка только на загрузки файла на 180 тысяч строк, на 3 тысячи строк загружается без ошибок и только на 2 пк, на 3 все работает. Конфигурация самописная. Пробовал: переустановить платформу, обновить с 8.3.10.2252 на 8.3.10.2505(удалял полностью), чистил кэш, касперского нет. стоит windows 7. У кого была подобная ошибка или у кого какие иди?

Сигнатура проблемы:
  Имя события проблемы:   BEX
  Имя приложения:   1CV8C.exe
  Версия приложения:   8.3.10.2505
  Отметка времени приложения:   59674c50
  Имя модуля с ошибкой:   StackHash_0a9e
  Версия модуля с ошибкой:   0.0.0.0
  Отметка времени модуля с ошибкой:   00000000
  Смещение исключения:   0061006c
  Код исключения:   c0000005
  Данные исключения:   00000008
  Версия ОС:   6.1.7601.2.1.0.256.48
  Код языка:   1049
  Дополнительные сведения 1:   0a9e
  Дополнительные сведения 2:   0a9e372d3b4ad19135b953a78882e789
  Дополнительные сведения 3:   0a9e
  Дополнительные сведения 4:   0a9e372d3b4ad19135b953a78882e789
1 Antony8x
 
28.07.17
07:28
(0) Попробуйте загружать файл с расширением .XLSX (EXEL 2007)
2 Мимохожий Однако
 
28.07.17
07:29
Читай по другому. Например, через массив.
Лист = XLSОбъект.Sheets(1);
    МассивДанных = Лист.UsedRange.Value2.Выгрузить();
3 aleks_p99
 
28.07.17
08:03
(1) не помогло
4 rphosts
 
28.07.17
08:07
тачки по параметрам идентичны (память например)?
права у юзеров одинаковые?
квот никаких нет?
5 aleks_p99
 
28.07.17
08:09
(4) права одинаковые, квоты нет
6 _stay true_
 
28.07.17
08:14
(5) Попробуй по0другому: не через EXCEL-объект, а через ADO. Есть универсальная процедура, которая формирует из любого EXCEL-дока таблицу значений. Покури здесь.

v8: Можно ли засосать Excel лист в таблицу значений, быстро!?

Перебираешь рекордсет, и получаешь хоть ТЗ, хоть массив структур(если на клиенте).
7 _stay true_
 
28.07.17
08:15
// Подлючаемся

    Connection          = Новый COMОбъект("ADODB.Connection");
    Если Версия = "12" ИЛИ Версия = "14" Тогда
        СтрокаПодключения   ="Provider =Microsoft.ACE.OLEDB.12.0;Data Source="+ПутьКФайлу+";Extended Properties=""Excel 12.0 Xml;HDR="+?(Заголовок,"YES","NO")+";IMEX=1""";
    Иначе
        СтрокаПодключения   ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ПутьКФайлу+";Extended Properties=""Excel 8.0;HDR="+?(Заголовок,"YES","NO")+";IMEX=1""";
    КонецЕсли;

    Попытка
        Connection.Open(СтрокаПодключения);
    Исключение
        СообщениеТекста("Ошибка подключения!"+ОписаниеОшибки(), ,СтатусСообщения.ОченьВажное);
        Возврат ТЗ;
    КонецПопытки;

    Command=Новый COMОбъект("ADODB.Command");
    Command.ActiveConnection=Connection;
    Command.CommandText = ?(ПерваяСтрока = 0, "Select * From [" + ИмяСтраницы + "$]", "Select * From [" + ИмяСтраницы + "$A" + ПерваяСтрока + ":" + ПослЯчейка + "]");

    Попытка
        Записи=Command.Execute();
    Исключение
        СообщениеТекста("Ошибка при выполнении запроса!"+ОписаниеОшибки(), ,СтатусСообщения.ОченьВажное);
        Возврат ТЗ;
    КонецПопытки;

    Для НомерПоля = 0 По Записи.Fields.Count-1 Цикл
        СтрКолонка = Строка(Записи.Fields.Item(НомерПоля).Name);
        СтрКолонка = СтрЗаменить(СтрКолонка,"№","Num");
        НедопустимыеСимволы = " ~`!@""#№$;%^:&?*()-+=/\|.,";
        Для i = 1 По СтрДлина(НедопустимыеСимволы) Цикл
            СтрКолонка = СтрЗаменить(СтрКолонка, Mid(НедопустимыеСимволы, i, 1), "_")
        КонецЦикла;
        ИмяКолонки = СокрЛП(СтрКолонка);
        ТЗ.Колонки.Добавить(ИмяКолонки, , СтрКолонка);
    КонецЦикла;

    Пока НЕ Записи.EOF() Цикл
        НоваяСтрока = ТЗ.Добавить();
        Для НомерПоля = 0 По Записи.Fields.Count-1 Цикл
            НоваяСтрока[НомерПоля] = Записи.Fields(Записи.Fields.Item(НомерПоля).Name).Value;
        КонецЦикла;
        Записи.MoveNext();
    КонецЦикла;

    Command = Неопределено;
    Записи  = Неопределено;

    Возврат ТЗ;
8 aleks_p99
 
28.07.17
08:16
(6) у меня именно таким способом реализовано. и тут возможно не в этом дело, так как на другом пк работает
9 _stay true_
 
28.07.17
08:18
(8) Тогда проверяй библиотеки: .NET Framework, Visual C++ и.т.п. Была похожая ситуёвина - помогло. Чем чёрт не шутит и в твоём случае.
10 Имитирующий работу
 
28.07.17
08:31
(8) StackHash_0a9e это 99% что DEP стреляет. Попробуй-ка в ёкселе аддоны поотключать.
11 aleks_p99
 
28.07.17
10:37
Всем спасибо) переписал код, ошибка нет)) также спасибо автору статьи: 1c-h.ru/2010/05/18/8-1-programmistu-yazyk-excel/
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший