Выгрузка в Excel c помощью ADO

16.04.10

Интеграция - Загрузка и выгрузка в Excel

По мотивам http://infostart.ru/public/65045/
Записывает произвольную таблицу значений в файл Эксель, с сохранением типов.

Замечание(!!), преобразование нецелого числа зависит от региональных настроек, то есть, если у Вас нерусские ("."), то надо закомментировать строку
  =СтрЗаменить(

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?]
Выгрузка ТаблицыЗначений в файл Excel с помощью ADO
.ert 8,00Kb
304
304 Скачать бесплатно

Внешняя обработка, получает в качестве параметра Таблицу значений, которую и выгружает в файл экселя.

Пример вызова :

Вариант 1:

    //Тз - Таблица значений
    ОткрытьФорму("Отчет",ЗдесьВашаТз,ЗдесьВашКаталогГдеЛежитОбработка + "\Тз2Ексель.ert");    

Вариант 2:

СЗ=СоздатьОбъект("СписокЗначений");
Сз.ДобавитьЗначение(  ЗдесьКороткоеИмяФайлаБезРасширения  ,"ИмяФайла");
Сз.ДобавитьЗначение(  ЗдесьВашаТЗ  ,"ТЗ");
ОткрытьФорму("Отчет",Сз,ЗдесьВашКаталогГдеЛежитОбработка + "\Тз2Ексель.ert"); 

Примечание: - см.комментарии, текстовые поля выгружаются с символом ' перед значением (что делать, пока не знаю)

См. также

Банковские операции Загрузка и выгрузка в Excel Бухгалтер Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет Платные (руб)

Решение предоставляет комплексную загрузку банковской выписки из CSV, XLS, TXT файла в 1С 7.7 любой конфигурации. Позволяет создавать документы выбранного вида, например "Строка выписки банка (приход/расход)", или многострочный табличный документ, например Выписка, для каждой операции из загружаемого файла банковской выписки. Загружает реквизиты документа, а также создаёт контрагентов и другие необходимые элементы справочников.

3588 руб.

29.07.2021    22346    14    22    

15

Загрузка и выгрузка в Excel Программист Платформа 1С v7.7 Абонемент ($m)

Сводная таблица Excel из 1С - как сделать ее программно через COM соединение.

1 стартмани

30.07.2021    6579    1    atdonya    1    

2

Загрузка и выгрузка в Excel ККМ Программист Бухгалтер Пользователь Платформа 1С v7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Бухгалтерский учет Управленческий учет Абонемент ($m)

Выполняет выгрузку товаров (всех, только с признаком в прайсе, только из указанной папочки) с гибкой настройкой выгружаемых данных. Формируется файл в формате XLSX подходящий для прямой удаленной загрузки в кассовый аппарат АТОЛ 91Ф/92Ф и им подобных, имеющих управление через Личный кабинет АТОЛ (lk.atol.ru).

1 стартмани

31.01.2021    8323    2    &-rey    1    

4

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Программист Пользователь Платформа 1С v7.7 1С:Комплексная 7.7 Управленческий учет Абонемент ($m)

Обработки группового дополнения данных о номенклатуре. Ввод веса и объема существующих товаров вручную в форму таблицы значений и затем запись в справочник Номенклатуры и Единиц. Закачка весов и объемов существующих товаров из Эксель в справочник Номенклатуры и Единиц. Загрузка внешних кодов товаров из Эксель в справочник Номенклатуры. Редактирование внешних кодов товаров в форме списка. Дозаполнение реквизитов существующих товаров из Эксель (ключевые поля - штрихкод, наименование, внешний код).

1 стартмани

11.10.2019    12063    2    ksnik    2    

2

Оптовая торговля Загрузка и выгрузка в Excel Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Оптовая торговля, дистрибуция, логистика Управленческий учет Абонемент ($m)

В данной публикации приведены примеры обработок обмена дистрибьютора с поставщиками и покупателями через Эксель. Создание товаров-новинок. Автоматическое формирование Заказа поставщику по продажам. Заполнение бланка заказа поставщику. Загрузка приходной накладной от поставщика. Загрузка любых справочников из Эксель, например товарных сертификатов. Выгрузка прайслиста в бланк заказа (создание бланка заказа). Загрузка заявки покупателя из произвольного файла Эксель. Загрузка заявки покупателя из бланка заказа.. Для работы требуется установленный MS Excel.

1 стартмани

08.09.2019    16456    10    ksnik    2    

3

Загрузка и выгрузка в Excel Перенос данных 1C Программист Пользователь Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 1С:ERP Управление предприятием 2 Абонемент ($m)

Описание технологии загрузки любых адресов из 1С 7.7 с разложением по ФИАС в современные конфигурации 1C 8.3 на примере ERP. Предлагаемый способ просто чудо, он гарантирует результат, он очень простой и качественный! Моя обработка является синтаксическим анализатором, который подставляет в строку грязного адреса выражение "Дом №" и "Корпус", благодаря чему грязные адреса 7.7 сами очень хорошо раскладываются по значимым полям ФИАС - заполняется область, город, улица, дом, корпус.. все раскладывается само с помощью встроенного механизма современных конфигураций 1С 8.3, который написали сами сотрудники фирмы 1С!

1 стартмани

16.08.2019    19590    18    ksnik    12    

8

Загрузка и выгрузка в Excel Оптовая торговля Розничная торговля Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 1С:Управление торговлей 10 1С:Комплексная 7.7 1С:ERP Управление предприятием 2 Управленческий учет Абонемент ($m)

Описание практического опыта переноса данных из двух устаревших учетных систем в одну современную с обобщением справочников (например номенклатуры, контрагентов, партнеров) и объединением учетных данных устаревших систем в единую новую УС применяя комбинацию стандартной загрузки из Эксель и КД2. Данная публикация является примером переноса данных из сильно устаревших и сильно переписанных конфигураций 1С:Предприятия 7.7 и 8 в современную 1С 8.3 своими силами при условии невозможности или нежелания пользоваться обновлением релизов и типовой функциональностью универсального обмена данными типовых мастеров переноса данных. Отличительной особенностью публикации является устранение зависимости от версий релиза конфигураций, отказ от обновлений устаревших конфигураций.

1 стартмани

29.07.2019    21384    16    ksnik    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. KurchataQ 05.02.10 10:25 Сейчас в теме
Поробовать надо, однако.
2. пользователь 14.02.10 23:44
Сообщение было скрыто модератором.
...
3. v7plus 13 12.04.10 15:54 Сейчас в теме
Почему в созданной таблице excel во всех ячейках стоит ' первым символом?
4. dav405 103 13.04.10 09:59 Сейчас в теме
(3) Вас не затруднит прислать мне образец проблемного файла
(адрес почты в личке), поскольку у меня описанная проблема не наблюдалась.
5. dav405 103 16.04.10 18:35 Сейчас в теме
(3) Таки да,
http://support.microsoft.com/kb/257819/

A caution about editing Excel data with ADO: When you insert text data into Excel with ADO, the text value is preceded with a single quote. This may cause problems later in working with the new data.

Короче, не работает....
6. victuan 4255 11.05.10 04:52 Сейчас в теме
Не работает на некоторых данных:
Command.Execute();
{X:\BASE1C\TEMP\_ОБРАБОТКИ\ИП\TZ2EKSELJADO.ERT(100)}: Microsoft JET Database Engine: Data type mismatch in criteria expression

Что делать? (В ТЗ свыше 36 тысяч строк)
7. victuan 4255 11.05.10 06:51 Сейчас в теме
Разобрался, ошибка возникает из-за пустой даты в ячейке '. .'
И как быть?
8. victuan 4255 14.05.10 07:00 Сейчас в теме
Обнаружил вторую ошибку - если в с выгружаемом значении присутствует апостроф ('), то тоже происходит ошибка. Это и понятно, т.к. апостроф используется при АДО для указания операндов. Предлагю перед выгрузкой заменять апостроф на другой символ (напр. на двойную кавычку).
В качестве пустой даты предлагаю выгружать любую дату ранее "начала времен".
Вот мой код для исправления обработки:
нСтр = Тз.КоличествоСТрок(); //<------- добавил
Для счУ=1 по Тз.КоличествоСТрок() Цикл
СтрокаИнсерт="";
Для СчХ=1 по Тз.КоличествоКолонок() Цикл
Тип=ТипыКолонок[СчХ];
ЗнНач=Тз.ПолучитьЗначение(СчУ,СчХ);
Если Тип="Ч" Тогда
Зн=СтрЗаменить(Строка(ЗнНач),".",",");
ИначеЕсли Тип="Д" тогда
Зн=СокрЛП(Строка(ЗнНач));
ИначеЕсли Тип="П" тогда
Зн=СтрЗаменить(СокрЛП(Строка(ЗнНач)),"'",""""); //<------- добавил СтрЗаменить(...
ИначеЕсли Тип="д" тогда //<------- добавил
Зн=?(ПустоеЗначение(ЗнНач)=0,СокрЛП(Строка(ЗнНач)),"30.12.99"); //<------- добавил
Иначе
Зн=СокрЛП(Строка(ЗнНач));
КонецЕсли;
СтрокаИнсерт=СтрокаИнсерт+","+"'"+Зн+"'";
КонецЦикла;
СтрокаИнсерт=Сред(СтрокаИнсерт,2);
//попытка
Command.CommandText = "
|INSERT INTO [TempAdoTable] VALUES ("+СтрокаИнсерт+")";
Command.Execute();
//исключение
// сообщить("строка "+счУ+" " +СтрокаИнсерт,"!!")
//конецПопытки;
Если прав(счУ,2) = "00" Тогда //<------- добавил для информирования долгого процесса
состояние("Записано в Excel "+счУ+" строк из "+нСтр);
КонецЕсли;
Конеццикла;
9. dav405 103 16.05.10 20:23 Сейчас в теме
(8) Спасибо,
Сам я замерз на этом апострофе.
Реальной оперативной работе-то он не мешает (я использую версию со сводной таблицей), но все равно не красиво :)
Оставьте свое сообщение