1с скд сохранить результат в excel
Существует несколько способов программной работы с файлами Excel из 1С. Каждый из них имеет свои преимущества и недостатки.
Обмен через табличный документ
Данный способ простой. Его суть заключается в том, что объект ТабличныйДокумент имеет методы:
- Записать (< ИмяФайла >, < ТипФайлаТаблицы >) для выгрузки данных в файл;
- Прочитать (< ИмяФайла >, < СпособЧтенияЗначений >) для загрузки данных из файла.
Внимание!
Метод Записать () доступен как на клиенте, так и на сервере. Метод Прочитать () доступен только на стороне сервера. Необходимо помнить об этом
при планировании клиент-серверного взаимодействия.
Рассмотрим пример сохранения табличного документа в файл. Необходимо любым способом создать и заполнить объект ТабличныйДокумент, а выгрузка в файл осуществляется всего лишь одной строкой:
ТабДок . Записать ( ПутьКФайлу , ТипФайлаТабличногоДокумента . XLSX );
Загрузка из файла осуществляется также достаточно просто:
ТабДок = Новый ТабличныйДокумент ;
ТабДок . Прочитать ( ПутьКФайлу , СпособЧтенияЗначенийТабличногоДокумента.Значение );
Обмен через OLE
Обмен через технологию OLE automation, пожалуй, самый распространенный вариант программной работы с файлами Excel. Он позволяет использовать весь функционал, предоставляемый Excel, но отличается медленной скоростью работы по сравнению с другими способами. Для обмена через OLE требуется установка MS Excel:
- На компьютере конечного пользователя, если обмен происходит на стороне клиента;
- На компьютере сервера 1С:Предприятие, если обмен происходит на стороне сервера.
Пример выгрузки:
Примеры чтения:
Для обхода всех заполненных строк листа Excel можно использовать следующие приемы:
Вместо последовательного обхода всех строк листа можно выгрузить все данные в массив и работать с ним. Такой подход будет быстрее при чтении большого объема данных:
ВсегоКолонок = Лист . Cells ( 1 , 1 ). SpecialCells ( 11 ). Column ;
ВсегоСтрок = Лист . Cells ( 1 , 1 ). SpecialCells ( 11 ). Row ;Область = Лист . Range ( Лист . Cells ( 1 , 1 ), Лист . Cells ( ВсегоСтрок , ВсегоКолонок ));
Данные = Область . Value . Выгрузить ();
В таблице ниже приведены наиболее востребованные свойства и методы для работы с Excel через OLE:
Для того, чтобы узнать какое свойство нужно менять или какой метод вызвать можно воспользоваться макросами Excel. Если записать макрос с требуемыми действиями, то после можно посмотреть программный код на VBA записанного макроса.
Использование COMSafeArray
Обмен через ADO
Файл Excel при обмене через ADO представляет собой базу данных, к которой можно обращаться при помощи SQL-запросов. Установка MS Excel не требуется, но обязательно наличие драйвера ODBC, при помощи которого будет осуществляться доступ. Используемый драйвер ODBC определяется при указании строки соединения к файлу. Обычно требуемый драйвер уже установлен на компьютере.
Обмен через ADO заметно быстрее обмена через OLE, но при выгрузке нет возможности использовать функционал Excel для оформления ячеек, разметки страниц, задания формул и т.д.
Пример выгрузки:
Для создания нового листа и формирования его структуры можно воспользоваться объектами ADOX.Catalog и ADOX.Table. В этом случае код примет вид:
В приведенном примере в методе
во втором параметре указывается тип колонки. Параметр необязательный, вот некоторые значения типа колонки:
Пример чтения:
В строке соединения параметр HDR определяет как будет восприниматься первая строка на листе. Возможны варианты:
В приведенных примерах рассмотрено лишь несколько объектов ADO. Объектная модель ADO состоит из следующих объектов:
- Connection;
- Command;
- Recordset;
- Record;
- Fields;
- Stream;
- Errors;
- Parameters;
- Properties.
Выгрузка без программирования
Для сохранения данных из 1С в Excel не всегда целесообразно прибегать к программированию. Если в режиме Предприятия пользователь может отобразить требуемые для выгрузки данные, то, их возможно сохранить в Excel без программирования.
В открывшемся окне требуется выбрать каталог, имя и формат сохраняемого файла.
Для сохранения данных динамических списков (например, списка номенклатуры) необходимо:
Остались вопросы?
Спросите в комментариях к статье.
Не буду вдаваться в подробности "боли и слёз", но если сохранить табличный документ 1С в Excel есть проблема, что даты имеют формат Общий. Проблема не столько в 1С, сколько в Excel, поскольку если для такой ячейки инициализировать редактирование - поле уже будет интерпретироваться как дата, сохраняя прежний тип "общий".
Но как оказалось на партнёрском форуме было дано лекарство ещё 2011 году
Как запасной вариант для обхода:
открыть сохраненный файл Excel. Выполнить команду "Заменить". Указать, что найти нужно точку "." и заменить ее на "." во всем документе. Пруф
Excel = Новый COMОбъект("Excel.Application"); //Создаем объект MS Excel
- Получить ссылку
- Электронная почта
- Другие приложения
Ярлыки
- Получить ссылку
- Электронная почта
- Другие приложения
Комментарии
СКД. Ориентация текста в заголовке (шапке отчета).
- Получить ссылку
- Электронная почта
- Другие приложения
Расширение конфигурации + Связанные документы (Режим совместимости 8.3.12)
Вводная: реализовать ввод Заказа поставщику на основании Заказа на Ремонт. решить через расширения конфигурации. Хочу обратить ваше внимание, не нужно добавлять в расширение критерий отбора, для 8.3.12 нам не доступно добавление\изменение состава критерия. Более того может зависать конфигуратор (столкнулся с последней версией 8.3.14 + ERP) Разработку рекомендую вести с применением хранилища и для расширения. Иначе устанете потом выгребать чего лишнего включили в расширение при добавлении таких или схожих обектов с составными типами и подобное. Все текущие типовые решения сейчас идут в режиме совместимости 8.3.12, в прочем и для 8.3.14 (и даже 8.3.15 ничего не поменялось). Что нам нужно было бы сделать при отказе от поддержки: 1) добавить наш документ в Критерий отбора (состав, реквизиты); 2) в раздел Ввод на основании целевого документа. И что с целью сохранения поддержки. Как сделать это же для расширения: 1) Добавить реквизит расширения Документы.ЗаказПоставщику._За
cibireva-olga --> cibireva-olgaДелаем простой отчет. Данные из регистра сведений ПаспортныеДанныеСрезПоследних. Выбираем данные: ФизЛицо, Серия паспорта, Номер паспорта. Этот отчет нужно сохранить в excel, причем формат ячеек в excel должен быть текстовый. У нас Формат поля «Номер паспорта» в excel получается числовым (это плохо). Остальные поля «Общий формат». Чтобы текстовый был вроде нужно во вкладке "Наборы данных-Поля" указать «тип значения» и «Оформление» . Подскажите, пожалуйста, так ли это. Если да, то что указывать (Ну тип значения, наверное, строка, а вот что указывать в оформлении, не понятно)
Vofka --> VofkaВ оформлении, наверное, ничего указывать не надо.
Попробуйте и узнаете
cibireva-olga --> cibireva-olgaЕсли для поля "Номер паспорта " указать тип значения "Строка", то в excel все равно формат числовой. А надо, чтоб текстовый. Vofka --> Vofka
Попробуйте в колонке "Выражение представления" написать
cibireva-olga --> cibireva-olgaСпасибо. Че та не выходит (Вместо "ИмяПоля" написали свое). В первом случае оставили тип значения строка, во втором случае убрали. В обоих случаях в excel числовой формат ячеек. Vofka --> Vofka
Вам везет)
Давайте уточним. Искусственно делаем Cправочник, у которого два реквизита: Реквизит 1 (строка), Реквизит2 (Число). Делаем отчет: Схема компоновки данных->Добавить набор данных-запрос->Конструктор запроса->Справочник->Выбираем Наименование, Реквизит1 и Реквизит2->ОК. Для Реквизит2 в Выражение представления указываем Формат(Реквизит2, "ЧГ=0")Все, тут закончили. Во вкладке «Настройки» - детальные записи; указали выбранные поля (Наименование, Реквизит1, Реквизит2). Сохранили, запустили отладку, заполнили маленько справочник, сформировали отчет, сохранили как excel. Смотрим формат ячеек у Реквизита2 – числовой. Что мы упустили? daveal --> daveal
Эксперимент: Искусственно делаем Cправочник, у которого два реквизита: Реквизит 1 (строка), Реквизит2 (строка). Делаем отчет: Схема компоновки данных->Добавить набор данных-запрос->Конструктор запроса->Справочник->Выбираем Наименование, Реквизит1 и Реквизит2->ОК. Больше ничего не делаем. Все, тут закончили. Во вкладке «Настройки» - детальные записи; указали выбранные поля (Наименование, Реквизит1, Реквизит2). Сохранили, запустили отладку, заполнили маленько справочник (в реквизит2 вводим числовые данные: 1111, 2222), сформировали отчет, сохранили как Лист Excel (*.xls). Смотрим формат ячеек у Реквизита2 - числовой. Сохранили как Лист Excel95 (*.xls) - Смотрим формат ячеек у Реквизита2- общий. (эт хорошо).
Примечание: аналогичный эксперимент с Реквизит2(число) не прокатывает. В обоих случаях формат ячеек остается числовым.
Сия итоги наблюдений вызывают недоумение. На компе офис 2013. У кого-нить может есть пояснения?
Примечание2: вариант с Формат(ИмяПоля, "ЧГ=0") решает вопрос, если сохранять как Лист Excel95 (*.xls)
Vofka --> VofkaЧасто у пользователей 1С возникает вопрос: как загрузить (сохранить) документ или отчет в Excel? На самом деле, сделать это довольно просто. Рассмотрим действия на примере 1С 8.3 Бухгалтерия предприятия 3.0.
Как из 1С 8.3 выгрузить в Excel оборотно-сальдовую ведомость
Предположим, нам необходимо сохранить отчет (или другую печатную форму) в формате Excel.
После сохранения документы будет находиться в указанной папке.
Открываться будут оба файла, т.к. более ранние версии документов поддерживаются более поздними версиями программ.
Как в 1С сохранить документ в Excel
Есть еще один способ как сохранить документ в 1С в формате Excel.
Предположим, нам надо сохранить Счет , Счет-фактуру или Платежное поручение , для распечатки на другом компьютере или отправке по электронной почте.
Рассмотрим сохранение на примере документа Платежное поручение . Сформируем его печатную форму и среди кнопок на панели инструментов видим кнопку с дискетой .
Выгрузка таблиц из 1С в Эксель
Иногда возникает необходимость сформировать список из данных табличных частей журналов документов, справочников и т.п. При этом можно установить отбор нужных элементов (дата, наименование контрагента). Рассмотрим пример.
Мы хотим вывести список Платежных поручений по уплате налогов и взносов за период.
Для выбора документов можно выделить их, удерживая кнопку Ctrl или Shift, а также используя горячие клавиши для выделения группы строк. После чего нажимаем кнопку Еще и выбираем команду Вывести список .
Выглядит он следующим образом.
Эти действия можно выполнять с любыми списками программы 1С.
При работе с большими списками, например, справочник Номенклатура , можно устанавливать дополнительный отбор и делать группировку, устанавливать порядок сортировки данных.
Поэтому перед формированием любого списка следует обратить внимание на команду Настройка списка в кнопке Еще .
Как сохранить данные ячеек таблицы из 1С в Excel
Иногда возникаем необходимость скопировать из отчета или документа часть данных. Сделать это можно обычным копированием. Для этого выделяем часть нужных ячеек и нажав правой кнопкой мышки выбираем команду Копировать (или сочетание клавиш Ctrl+C).
- Выгрузка в 1С из xml: как выгрузить данные из 1С 8.3 и загрузить в 1С 8.3
- Загрузка из Excel в 1С 8.3
- Горячие клавиши в 1С
- Поиск и замена значений 1С 8.3
- Групповое перепроведение документов в 1С 8.3 Бухгалтерия 3.0
- Групповая обработка справочников и документов в 1С 8.3
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
-
В справочник Контрагенты можно загружать данные из таблиц. Это особенно.Иногда возникают ситуации, когда необходимо сделать копию информационной базы 1С.Иногда в работе сталкиваешься с ситуацией, когда возникает необходимость перенести.В справочнике Номенклатура можно загружать цены номенклатуры из подготовленных таблиц.
Карточка публикации
(10 оценок, среднее: 3,60 из 5)
Данную публикацию можно обсудить в комментариях ниже.Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>
Все комментарии (3)
Спасибо за внимание к нашим материалам и интересный вопрос.
Возможность сохранить документ есть и в платформе 8.3.16. Просто сам процесс оптимизирован и стал удобнее.
Подробнее в обсуждении по ссылке
Платформа 8.3.16, как сохранить табличный документ
.
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявкуНажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Читайте также: