Перешли из файловой БД в MSSQL
При импорте эксель файла (карточки сотрудника) выходит ошибка
Значение не является значением объектного типа (Close)
Поставщик утверждает что проблема в доступе где расположен файл для импорта.
Пользователям был предоставлен полный доступ к папке но ошибка та же сохранилась
При импорте эксель файла (карточки сотрудника) выходит ошибка
Значение не является значением объектного типа (Close)
Поставщик утверждает что проблема в доступе где расположен файл для импорта.
Пользователям был предоставлен полный доступ к папке но ошибка та же сохранилась
Прикрепленные файлы:
Ошибка_20210608172559.zip
По теме из базы знаний
- Метод загрузки данных из таблиц Excel в 1С без установки Office
- Загрузка из ГИС ЖКХ ИД домов/зданий, Лицевых счетов, приборов учета/счетчиков в 1С ЖКХ
- Загрузка лицевых счетов из Excel в 1С:Учет в управляющих компаниях ЖКХ, ТСЖ и ЖСК, редакция 3.0
- Автоматическое создание документов Отчет о розничных продажах (ОРП), Выемка из ККМ и ПКО из файла Excel, полученного от оператора фискальных данных (ОФД), для 1С:Розница
- Загрузка данных из Excel в 1С
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
попробуйте загрузить полноправным пользователем.
если ошибка есть, значит суть неполадки все-таки в правах ОС,
либо в коде 1С (обнулили сом-объект перед клоус)
если ошибка есть, значит суть неполадки все-таки в правах ОС,
либо в коде 1С (обнулили сом-объект перед клоус)
Судя по тому что ошибка в закрытии exel, то тут навряд ли с правами что то, иначе бы у вас ошибку выдало на создание com объекта, или чтение файла, а тут Excel.ActiveWorkbook.Close()..обычно это вызывается уже после чтения и обработки...
Обработку если выложите можно точнее сказать будет
Обработку если выложите можно точнее сказать будет
(7)
Excel.ActiveWorkbook.Close()..обычно это вызывается уже после чтения и обработки...
Может быть, там открытие и чтение обернуты в Попытка...Исключение, а Close() - как раз в исключении.
Обработку если выложите можно точнее сказать будет
Вот с этим трудно не согласиться. Хотя бы кусок кода, в котором происходит открытие и чтение файла увидеть.
загрузка выполняется непосредствено пользователем или в фоновом задании??
предполагаю, что стоит отдельный sql сервер, где крутится база
процедура загрузки выполняется на сервере, а путь прописан с клиентской машины
в итоге на сервере, по этому пути ничего нету
нужно переписать обработку, чтобы при выполнении файл помещался во временное хранилище и потом на стороне сервера доставался из временного хранилища и загружался
предполагаю, что стоит отдельный sql сервер, где крутится база
процедура загрузки выполняется на сервере, а путь прописан с клиентской машины
в итоге на сервере, по этому пути ничего нету
нужно переписать обработку, чтобы при выполнении файл помещался во временное хранилище и потом на стороне сервера доставался из временного хранилища и загружался
Зачем вообще использовать OLE?
1С уже давно умеет сама читать Экселевские файлы:
Или даже сразу в таблицу значений:
1С уже давно умеет сама читать Экселевские файлы:
табДок = Новый ТабличныйДокумент;
табДок.Прочитать(имяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Или даже сразу в таблицу значений:
табДок = Новый ТабличныйДокумент;
табДок .Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
ПЗ = Новый ПостроительЗапроса;
ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(табДок .Область());
ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
ПЗ.ЗаполнитьНастройки();
ПЗ.Выполнить();
ТаблицаЗначений = ПЗ.Результат.Выгрузить(); Показать
(12) А у вас вообще странные попытки: открытие в одной, но не прерываемся, а идём во вторую попытку и пытаемся её отработать. Где снова не прерываемся, а идём дальше по коду…
Т.е. обработали первую ошибку, но не сделали ни чего, чтобы прервать дальнейший код.
Т.е. обработали первую ошибку, но не сделали ни чего, чтобы прервать дальнейший код.
И да!
В (13) забыл показать как работать с многостраничным документом.
Вот так:
В (13) забыл показать как работать с многостраничным документом.
Вот так:
табДок = Новый ТабличныйДокумент;
табДок.Прочитать(имяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Для Каждого ОбластьТД ИЗ табДок.Области Цикл
Сообщить(ОбластьТД.Имя);
табЛист = табДок.ПолучитьОбласть(ОбластьТД.Имя);
Сообщить( "Строк: " + табЛист.ПолучитьРазмерОбластиДанныхПоВертикали() );
Сообщить( "Колонок: " + табЛист.ПолучитьРазмерОбластиДанныхПоГоризонтали() );
КонецЦикла; Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
