Загрузка данных из книги Excel в программу 1С
Уже давно самой популярной программой среди бухгалтеров, планировщиков, экономистов и управленцев стало приложение 1C. Оно имеет не только разнообразное количество конфигураций для различных видов деятельности, но и локализации под стандарты учета в нескольких странах мира. Все больше предприятий переходят на ведение учета именно в этой программе. Но процедура переноса данных вручную из других программ учета в 1C — довольно долгое и скучное занятие, отнимающее массу времени. Если на предприятии велся учет с помощью Excel, то процесс переноса можно существенно автоматизировать и ускорить.
Перенос данных из Эксель в 1С
Производить перенос данных из Excel в 1С требуется не только на начальном периоде работы с данной программой. Иногда наступает необходимость подобного, когда по ходу деятельности нужно занести какие-то списки, хранящиеся в книге табличного процессора. Например, если требуется перенести прайс-листы или заказы из онлайн-магазина. В случае, когда списки небольшие, то их можно вбить и вручную, но что делать, если они содержат сотни наименований? Для того, чтобы ускорить процедуру, можно прибегнуть к некоторым дополнительным возможностям.
Для автоматической загрузки подойдут практически все типы документов:
- Список номенклатуры;
- Список контрагентов;
- Список прайсов;
- Перечень заказов;
- Информация о покупках или продажах и т.д.
Сразу нужно отметить, что в 1С нет встроенных инструментов, которые позволяли бы переносить данные из Эксель. Для этих целей нужно подключить внешний загрузчик, который представляет собой файл в формате epf.
Подготовка данных
Нам нужно будет подготовить данные в самой таблице Excel.
-
Любой список, загружаемый в 1С, должен быть однородно структурирован. Нельзя выполнять загрузку при наличии в одном столбце или ячейке данных нескольких типов, например, имя человека и его телефонный номер. В этом случае, такие двойные записи обязательно следует разделять в разные столбцы.
Открывается окно сохранения. В поле «Тип файла» по умолчанию будет указан формат xlsx. Меняем его на «Книга Excel 97-2003» и жмем на кнопку «Сохранить».
Кроме этих универсальных действий по подготовке данных в книге Эксель, нужно будет ещё привести документ в соответствие с требованиями конкретного загрузчика, который мы будем использовать, но об этом мы поговорим чуть ниже.
Подключение внешнего загрузчика
Подключить внешний загрузчик с расширением epf к приложению 1С можно, как до подготовки файла Эксель, так и после. Главное, чтобы к началу процесса выполнения загрузки оба этих подготовительных момента были решены.
Существует несколько внешних загрузчиков таблиц Эксель для 1С, которые созданы различными разработчиками. Рассматривать мы будем пример с использованием инструмента для обработки информации «Загрузка данных из табличного документа» для версии 1С 8.3.
- После того, как файл в формате epf скачан и сохранен на жестком диске компьютера, запускаем программу 1С. Если файл epf упакован в архив, то его предварительно нужно извлечь оттуда. На верхней горизонтальной панели приложения жмем на кнопку, запускающую меню. В версии 1С 8.3 она представлена в виде вписанного в оранжевую окружность треугольника, перевернутого углом вниз. В появившемся списке последовательно переходим по пунктам «Файл» и «Открыть».
- Запускается окно открытия файла. Переходим в директорию его расположения, выделяем тот объект и жмем на кнопку «Открыть».
- После этого загрузчик запустится в 1С.
Одной из основных баз данных, с которыми работает 1C, является список номенклатуры товаров и услуг. Поэтому для описания процедуры загрузки из Excel остановимся на примере переноса именно этого типа данных.
- Возвращаемся к окну обработки. Так как мы будем загружать номенклатуру товаров, то в параметре «Загрузка в» переключатель должен стоять в позиции «Справочник». Впрочем, он так установлен по умолчанию. Переключать его следует только тогда, когда вы собрались переносить другой тип данных: табличную часть или регистр сведений. Далее в поле «Вид справочника» кликаем по кнопке, на которой изображено многоточие. Открывается выпадающий список. В нем нам следует выбрать пункт «Номенклатура».
- После этого обработчик автоматически расставляет те поля, которые программа использует в этом виде справочника. Нужно сразу отметить, что совсем не обязательно заполнять все поля.
- Теперь опять открываем переносимый документ Excel. Если наименование его колонок отличается от наименования полей справочника 1С, которые содержат соответствующие, то нужно переименовать эти столбцы в Экселе так, чтобы названия полностью совпадали. Если в таблице имеются столбцы, для которых в справочнике нет аналогов, то их следует удалить. В нашем случае такими столбцами являются «Количество» и «Цена». Также следует добавить, что порядок расстановки столбцов в документе должен строго совпадать с тем, который представлен в обработке. Если для некоторых столбцов, которые отображены в загрузчике, у вас нет данных, то эти колонки можно оставлять пустыми, но нумерация тех столбцов, где имеются данные, должна совпадать. Для удобства и быстроты редактирования можно применять специальную возможность Эксель для быстрого перемещения колонок местами.
Мы проследили процедуру добавления данных в справочник номенклатуры в программе 1C 8.3. Для других справочников и документов загрузка будет проводиться по тому же принципу, но с некоторыми нюансами, с которыми пользователь сможет разобраться самостоятельно. Также нужно заметить, что у различных сторонних загрузчиков процедура может отличаться, но общий подход остается у всех одинаковый: сначала обработчик загружает из файла информацию в окно, где производится её редактирование, а уже потом она добавляется непосредственно в базу данных 1С.
Загрузка данных в 1С из Excel.
В статье рассмотрены варианты загрузки файлов Excel и табличных документов в объекты 1С, на примере таблиц значений. Если вам нужно загрузить файл Excel с одним или несколькими листами (не важно, xls или xlsx, или даже ods), или прочитать средствами 1С табличный документ mxl – читайте эту статью. Приводятся примеры кода, которые вы можете адаптировать под ваши задачи. Материал вышел большой, для удобства пользуйтесь навигацией по содержанию.
Содержание
Зачем писать свою загрузку? Ведь есть же типовые?
Во многих типовых конфигурациях на базе БСП имеется подсистема “Загрузка данных из файла”, кроме того, на ИТС можно найти обработку загрузки данных из табличного документа. Они позволяют загружать из внешних файлов данные во многие объекты: табличные части документов, справочники, регистры сведений. Кроме того, у этих обработок достаточно мощный функционал по сопоставлению данных из файла с объектами в базе 1С, разнообразные настройки, возможность создания элементов, в случае если они не найдены…
Так в чем же необходимость “изобретать велосипед”? На то несколько причин.
- Излишняя сложность. Ради универсальности приходится жертвовать простотой, и для рядового пользователя универсальные обработки могут оказаться сложнее, чем узкоспециализированная обработка, написанная под конкретный формат файла.
- Как ни странно, не стопроцентная универсальность. Действительно, как быть, если нам нужно загрузить не справочники, а планы видов характеристик? Или план расчета? Или на основании одного файла заполнить сразу несколько документов?
- Необходимость в специфичных алгоритмах. Например, при создании контрагента создавать также строго определенные договоры, или при загрузке в документ выполнять заполнение дополнительных, рассчетных колонок
- Сложные форматы исходных файлов. Например, исходный файл содержит несколько листов, и каждый из этих листов следует отдельно обработать. Второй пример – данные на листе сложно структурированы, и на одном листе могут содержаться несколько табличных частей, разделенных пустыми строками или колонками. Такие форматы встречаются, в частности, в отчетах зарубежных брокеров. На одном листе содержится информация и о сделках с финансовыми инструментами, и о движении денежных средств, и информация о ценных бумагах, и т.д.
В каком случае хороши универсальные загрузки из табличного документа?
Различные обработки загрузки из табличного документа отлично подходят, когда формат загружаемого файла не слишком сложный, а загрузка не предполагает множества дополнительных действий. Типичные примеры: загрузка прайс-листов, загрузка заказов, загрузка начальных остатков.
Подходящих случаев использования универсальных механизмов загрузки действительно много, иначе их не стали бы включать в библиотеку стандартных подсистем. Но если функциональности стандартных средств недостаточно, всегда можно создать свою собственную обработку. Ниже рассмотрены несколько приемов, которые можно использовать при загрузке файлов Excel и других табличных документов в 1С.
Особенности загрузки из файлов Excel с несколькими листами
При использовании метода табличного документа Прочитать(), файл Excel с несколькими листами читается так, что каждый лист помещается в отдельную именованную область ячеек, но при этом весь файл выводится в один табличный документ.
Загрузка с обходом строк и колонок
Для первого примера используем решение “в лоб”. Предположим, что количество и порядок колонок в файле известно заранее, и не меняется. Также будем считать постоянной и известной заранее первую строку, с которой следует начинать загрузку. Тогда нам достаточно в цикле пройти от первой строки до конца табличного документа.
Не следует путать методы табличного документа Область() и ПолучитьОбласть(). Первый возвращает область ячеек, а второй – новый табличный документ.
Если структура колонок таблицы, в которую мы загружаем, полностью идентична структуре колонок файла, мы можем загрузить данные, используя индексы.
Если же состав колонок отличается, предпочтительнее использовать имена колонок. Обратите внимание, что при получении текста области, мы используем четыре параметра, чтобы получить область в виде конкретной ячейки. Но также можно указывать два параметра, если вы уверены, что в файле не будет объединенных ячеек, либо наоборот, указывать прямоугольную область объединенных ячеек – все зависит от конкретной задачи.
С полученными данными можно дальше работать как угодно. Например, выполнить поиск товара по наименованию, и если он не найден – создать такой товар. Либо наоборот – вывести пользователю ошибку, что товар не удалось найти. Выбор подходящей бизнес-логики выходит за рамки данной статьи.
Загрузка табличного документа при помощи построителя отчета
В случае, когда у загружаемого файла есть строка с заголовками, можно выполнить загрузку из файла Excel, используя построитель отчета. В этом случае следует задать прямоугольную область ячеек, включая строку заголовков. В результате получится объект РезультатЗапроса, который далее можно обрабатывать как обычно – например, выгрузить в таблицу значений, поместить во временную таблицу и использовать в других запросах, и т.д.
Важно! В случае, если заголовки колонок в файле не соответствуют правилу именования переменных в 1С, они будут изменены компоновщиком – некорректные символы и пробелы будут заменены на знак подчеркивания “_”.
Динамическое сопоставление данных при загрузке
Предыдущие примеры ориентированы на работу с известным и неизменным составом колонок в исходном файле. Но что, если формат файла может меняться? Чтобы каждый раз не переписывать код, можно сделать его более гибким. Рассмотрим более сложный пример.
Предположим, есть несколько прайс-листов от разных поставщиков. Эти файлы имеют похожие, но не одинаковые форматы. Колонки могут располагаться в разном порядке, по-разному называться, шапка файла также имеет разное количество строк. В этом случае можно создать обработку, которая пусть и не будет универсальной, но будет достаточно гибко настраиваемой.
Добавим реквизит для указания имени области (чтобы можно было выбирать конкретный лист для чтения). Также добавим реквизит для указания пользователем номера первой строки. И основная часть настроек – таблица сопоставления колонок. Минимально достаточно будет сделать две колонки – номер исходный и номер принимающий. Такой прием распространен достаточно широко, и называется маппингом. Кроме маппинга по номерам существуют и другие варианты маппинга – например, по именам колонок.
Загрузка из Excel в 1С 8.3
Такая функция, как загрузка из Excel в 1С появилась в версиях конфигураций на платформе 8.3 Подробнее о всех аспектах реализации этой функции – в материале статьи.
Типовая загрузка из внешнего файла Excel в 1С 8.3
К примеру, стоит задача загрузить некий заказ клиента из уже созданного файла в программе Excel. Что для этого следует сделать? Первым делом открыть табличный документ с необходимыми данными. Далее перейти к программе 1С, и создать там документ «Заказ клиента», либо открыть уже готовый файл, если требуется внести в него изменения. А там, перейдя на вкладку «Товары», найти и нажать кнопку «Заполнить». Откроется подменю с рядом функций, где следует выбрать пункт «Заполнить из внешнего файла».
Откроется окно с таблицей, содержащей несколько столбцов, озаглавленных как: штрих-код, код, артикул, номенклатура, характеристика, количество, цена. Это набор данных, необходимых для заполнения табличной части заказа.
Предполагается, что заполнять все эти данные необходимо вручную. Но, благодаря новой функции, их можно просто скопировать из Excel файла. Заполнять следует, как минимум, столбец со штрих-кодом. Этот самый штрих-код потребуется для поиска номенклатуры.
Когда процесс будет завершен, откроется еще одно окно для проверки найденной информации.
Здесь допускается вносить изменения, так что можно исправить ошибки, если они имеются или добавить недостающую информацию. Как только проверка завершена, можно вносить информацию в документ. В его табличную часть будут добавлены строки с ранее загруженной номенклатурой.
Обработка для загрузки данных из Excel
Способ, описанный выше, подходит не для всех типов документов. Таким способом нельзя загрузить счет или другой важный документ. Потребуется дополнительная внешняя обработка, после которой файл обретет расширение epf.
Важно, чтобы офисный пакет, куда входит программа Excel, был обновлен до последней версии. Так же во время загрузки обработанного файла табличный документ должен быть закрыт.
Определенный формат требуется для того, чтобы «научить» софт определить, что и из какого столбца следует загружать. Для этого документ Excel следует отредактировать таким образом, чтобы для каждого типа данных был свой столбец. Структура, где будут ячейки со смешанными данными, не допустима.
Как открыть получившийся файл? Для этого существует несколько способов:
- Открыв меню «Файл», выбрать пункт «Открыть», после чего выбрать сохраненный на компьютере обработанный файл.
- Подключить внешние обработки.
Для тех, кто решит воспользоваться вторым методом, необходимо будет выполнить следующий порядок действий. Следует зайти в раздел «НСИ и администрирование», и там выбрать из большого списка пункт «Печатные формы, отчеты, и обработки».
Кликнув по пункту «Дополнительные отчеты и обработки», необходимо нажать на кнопку «Создать».
Начнется загрузка файла внешней обработки. В процессе может выскочить окно, где будет предложено не загружать файлы из внешних непроверенных источников.
Для того, чтобы файл загрузился, следует проигнорировать это сообщение и нажать «Продолжить». После этого появится возможность выбрать файл, сохраненный на компьютере. Автоматически заполняться поля с наименованием и дополнительной информацией. После этого можно открыть файл обработки нажатием кнопки «Выполнить».
Загрузка файлов из Excel в 1С
Чтобы загрузить файл определенного формата, следует в программе 1С создать внешнюю обработку. Для этого следует нажать кнопку «Файл». В открывшемся меню необходимо выбрать пункт «Новый», а далее – «Новая обработка».
Это действие вызовет окно формы обработки. Там необходимо указать подключение к Excel с помощью COM-соединения. Содержание окна будет иметь следующий вид:
COMОбъект = Новый COMОбъект(«Excel.Application»);
СообщениеОбОшибке = НСтр(«ru = ‘Не удалось загрузить заказы из файла Excel.
|Убедитесь, что на сервере установлена программа Microsoft Excel.
Программный код, пример которого был продемонстрирован выше, подробно описывает все параметры загрузки. В этом описании упор делается на столбцы и строки, откуда следует извлекать информацию. Однако, есть возможность указать номера необходимых строк и столбцов в настройках. Таким образом, можно будет производить загрузку файлов без привязки к определенному формату.
Для того, чтобы загрузка прошла как нужно, в настройках необходимо указать столбец в табличном документе и соответствующий ему элемент таблицы в файле обработки.
Выводы
Функционал 1С 8.3 предполагает несколько способов загрузки данных из Excel-файла – типовым методом или через файлы обработки. Для загрузки первым способом необходимо использовать файл определенного формата. Второй метод позволяет использовать большее количество форматов, да и объемы загружаемой информации увеличиваются.
Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку
Как загрузить лицевые счета сотрудников из файла в формате Excel в 1С: ЗУП (ред. 3)?
Довольно часто пользователи программ 1С сталкиваются с необходимостью загрузки данных в справочники и табличные части из сторонних документов.
Например, у бухгалтера есть выгрузка из банка, содержащая ФИО, лицевые счета сотрудников и дату открытия счета. Но как перенести информацию из Excel в ЗУП? Ведь не хочется вносить все лицевые счета вручную!
Предлагаем следующий вариант загрузки лицевых счетов:
- Открываем файл с данными (см. скриншот)
Наc интересуют колонки: сотрудник, номер счета, дата открытия.
- В 1С: ЗУП 8 (ред.3) открываем внешнюю обработку «Загрузка данных из табличного документа» (Главное меню- файл – открыть)
Устанавливаем режим загрузки «Регистр сведений», вид регистра «Лицевые счета сотрудников по зарплатным проектам», см. скриншот.
На вкладке «Настройки» устанавливаем следующие параметры:
— сотрудник — режим загрузки – искать
— зарплатный проект – устанавливаем значение по умолчанию (зарплатный проект необходимо заранее создать в программе)
— организация – устанавливаем значения по умолчанию
— номер лицевого счета — режим загрузки – искать
— дата открытия — режим загрузки – искать.
Далее переходим на вкладку «Табличный документ».
Копируем по очереди колонки «Сотрудник», «Номер лицевого счета» и «Дата открытия» из файла в формате Excel и вставляем в табличный документ в аналогичную колонку.
Далее нажимаем кнопку «контроль заполнения» и загружаем данные.
Проверяем загруженные данные в регистре сведений «Лицевые счета сотрудников» или в карточке сотрудника.
Главное меню – регистры сведений – лицевые счета сотрудников.
Мы видим, что все данные из Excel удачно загружены программу 1С:ЗУП.
Интересуют услуги по 1С? Мы делаем работу в 1С комфортной.
Если вы еще не знаете, какая 1С вам подойдет — подберем лучшие варианты под ваши особенности. Если уже выбрали программу — настроим ее под ваши нужды, доработаем необходимые функции, обучим сотрудников работе в ней. Если вы уже работаете в 1С — обеспечим бесперебойную работу, благодаря регулярному обновлению, оперативному решению проблем и вечерней техподдержке.