Заполнение справочников в 1с 8.3 из excel. Бухучет инфо

Загрузка списка товаров в справочник номенклатуры — частая задача которая может появиться как в начале работы с 1с, так и в последствии. Решать ее можно по разному. Я предлагаю простой, в реализации, способ — с помощью загрузки из табличного документа. Попутно разберем, как создать удобную для работы структуру справочника, настроим иерархию с отбором по нужным свойствам товара в 1с Управление торговлей 11.4 #УТ11

Посмотрите видео — все показываю наглядно в 1С Предприятие!

В начале давайте разберем структуру файла эксель. Каждая его колонка соответствует реквизиту справочника номенклатуры и он в точности повторяет созданный шаблон на второй закладке обработки. То есть, в совокупности, это те данные, которые мы будем заполнять для каждой единицы товара. Значение артикула в моем примере является ключевым с обязательным заполнением. А также оно уникально не имеет дублей. Наименование и наименование для печати дублируют друг друга, но могут быть разными в случае заполнения соответствующей колонки. Далее идут колонки производителя и отличительных свойств товара. Свойства товара в 1с я создаю с помощью дополнительных реквизитов.

Необходимые настройки. Нужно поставить галочки в двух местах. Первое — на закладке «НСИ и администрирование», ищем «Настройка НСИ и разделов», нажимаем «Номенклатура», «Разрезы учета» — включаем «Множество видов номенклатуры».

Второе — закладке «НСИ и администрирование», ищем «Общие настройки», включаем возможность использовать дополнительные реквизиты и сведения.

Структуру всей номенклатуры я создал в справочнике Виды Номенклатуры. От этого справочника будет зависеть группировка товара в справочнике Номенклатура. Это более удобно, чем было раньше, с помощью групп. У каждого товара есть свои отличительные параметры. Например, у компьютерных корпусов разный форм фактор, у жестких дисков тоже есть параметр «форм-фактор». Как это завести в программу? Откроем любой вид номенклатуры на закладке дополнительные реквизиты. Эта закладка станет доступна после включения соответствующей настройки. Тут мы вводим, для каждого вида, те реквизиты, которые используются для данного товара. Например, у жесткого диска есть параметр «Интерфейс», а также есть параметр Форм фактор, только у корпусов он свой и значения в нем другие, не такие как у дисков. По этим, дополнительным реквизитам можно настроить фильтр, который будет очень быстро отбирать нужные позиции в списке товаров. Фильтр настраивается с помощью добавления дополнительного реквизита.

С настройками должно быть все понятно. Если нет, — пишите, попробуем разобраться.

Открываем обработку и переходим к загрузке. На первой вкладке находятся настройки загрузки. На второй, создается шаблон для выбранного Вида номенклатуры, на последней выводится результат загрузки. Делаем настройки, вставляем из эксель, подготовленную таблицу с товарами, нажимаем — загрузить.

Как загрузить товары из EXCEL в 1С, как настроить справочник Номенклатуры.

Отвечает специалист:

Следует сразу обозначить, что изначально в 1с загрузка данных из excel не предусмотрена, для этого и существует внешний загрузчик 1с 8.3, а значит на Ваш вопрос ужеможно ответить – да, возможна.

Чтобы загрузка из excel в 1с 8.3 произошла без искажения данных – необходимо сначала подготовить таблицу непосредственно в excel. Список, который загружается в1с, должен быть правильно структурирован, т.е. не допускается наличие в одном столбце или одной ячейке несколько типов данных (количество, номер, фамилия и т.д.).

Если таблица будет предельно доступной, то и в 1с загрузка из excel пройдёт без каких-либо проблем. Далее следует выполнить обработку 1с для загрузки данных изexcel. Для совершения обработки заходим в меню Файл, указываем ЗагрузкаДанныхИзТабличногоДокумента.epf Во всплывшим окошке в строчке Режим загрузкинаписано Загрузка в справочник. Строчкой ниже указываем вид справочника – Номенклатура. Потом открываем файл и в списке ищем Лист Excel(*.xls), выбираем файл, который содержит необходимую нам информацию для загрузки. Далее перейдем в настройки, в строчке Первая строка данных табличного документа указывает цифру 2, поскольку в верхней строчке находится шапка нашей таблицы.

Потом пронумеровываем колонки, указывая Ручную нумерацию колонок. Отключаем все флажочки, ради этого существует определенная кнопка на панелейинструментов. Отмечаемые флажками поля Наименование и Полное наименование, режим не трогаем, пусть остаётся Искать, нумерацию колонок ставимсоответствующую таблице Excel.

Остаётся только указать единицу измерения и ставку НДС, если не поставить сразу, то в последствии придётся проставлять вручную по одной позиции. Отмечаемыйфлажками Ставка НДС Базовая единица измерения, режим – Устанавливать, устанавливаемые Значение по умолчанию и непосредственно18% в строчку Ставка. Подготовку завершили. Указываем Табличный документ и кликаем Контроль заполнения. Должна появиться табличка с информацией об отсутствии ошибок.

Теперь можно спокойно загружать. В программу 1с загрузка номенклатуры из excel завершена

Как загрузить табличный документ в программу 1С 8.3 Бухгалтерия?

В 1С 8.3 есть возможность массово загрузить список номенклатуры из табличного документа, например из файла Excel.

Для загрузки мы используем внешнюю обработку ЗагрузкаДанныхИзТабличногоДокумента.epf для управляемых форм (8.2 и 8.3). Она универсальная и должна подходить для любой конфигурации, написанной под управляемое приложение.

Что бы запустить внешнюю обработку, нужно зайти в меню «Файл», далее «Открыть» и выбрать эту обработку из каталога, в которую она была сохранена:

Обработка Загрузка данных из табличного документа 1С 8.3 (управляемые формы)

После того, как обработка открылась в 1С, можно приступать к работе с ней. В первую очередь нам нужно определиться, куда и что мы будем загружать:

Приведем пример на справочнике «Номенклатура«. Создаем некий файл с данными в формате xls.

Обработка умеет загружать также файлы формата:

  • любой другой формат, откуда можно скопировать данные

Вот так выглядит файл Excel с исходными данными, который мы будем загружать в справочник «Номенклатура»:

Мы не стали прописывать все поля справочника, так как этого будет достаточно, что бы понять принцип загрузки. Кроме того, этих данных достаточно, чтобы начать работать с данными позициями.

Данных позиций сейчас нет в информационной базе 1С, и мы сейчас туда их загрузим.

Нажимаем на значок «Открыть» (на рисунке обозначен как «Выбор источника») и выбираем файл с данными. Можно использовать простое копирование информации. Данные загрузятся в обработку автоматически. Теперь проверим, правильно ли мы заполнили наши данные. Для этого нажимаем кнопку «Контроль заполнения».

Как видно, у нас появились ошибки! Будем устранять. Заходим на закладку «Настройка»:

Прежде, чем исправлять ошибки, обратим внимание на одну важную деталь. Программа изначально не знает, по какому полю ей искать элемент справочника на случай, если он там уже есть. Поэтому ей его нужно указать. Например, ищем по коду, так как он, как правило, уникален. В колонке «Поле поиска» в строке «Код» ставим галочку. Теперь, если запись с таким кодом будет найдена, она будет заменена, иначе создана.

Важно! Если не указать поле поиска, то могут появиться дубли номенклатуры. Особенно после второй загрузки похожего файла!

Теперь посмотрим, почему ругается на поле «Единица». Дело в том, что единицы измерения в 1С 8.3 хранятся в отдельном справочнике и обработка по умолчанию ищет эту единицу по наименованию. А на самом деле словом единица прописана в поле «Полное наименование».

К сожалению, обработка может вести поиск только по «Наименованию» и «Коду» (для программиста возможности шире). Если обратите внимание на рисунки выше, то увидите, что в колонке «Единица» стоит код. И в обработке нужно указать, что поиск нужно вести по коду. Щелкаем два раза по колонке «Условие связи» напротив «Единицы» и меняем на «Код».

Теперь смотрим, что нам что то там про «Услугу» говорят в списке ошибок. Еще одно важное замечание. Колонки в файле должны располагаться строго в том же порядке, как и строки полей справочника. А у нас «Вид номенклатуры» находится в самом низу, а в файле после колонки «Комментарий».

Для того, что бы поднять строку «Вид номенклатуры» вверх, существуют синие стрелочки вверху формы. С помощью стрелки «Вверх» поднимаем нужную строку и ставим под «Комментарием».

Жмем «Загрузить данные» и на этот раз все проходит без ошибок:

По материалам: programmist1s.ru

Уже давно самой популярной программой среди бухгалтеров, планировщиков, экономистов и управленцев стало приложение 1C. Оно имеет не только разнообразное количество конфигураций для различных видов деятельности, но и локализации под стандарты учета в нескольких странах мира. Все больше предприятий переходят на ведение учета именно в этой программе. Но процедура переноса данных вручную из других программ учета в 1C — довольно долгое и скучное занятие, отнимающее массу времени. Если на предприятии велся учет с помощью Excel, то процесс переноса можно существенно автоматизировать и ускорить.

Производить перенос данных из Excel в 1С требуется не только на начальном периоде работы с данной программой. Иногда наступает необходимость подобного, когда по ходу деятельности нужно занести какие-то списки, хранящиеся в книге табличного процессора. Например, если требуется перенести прайс-листы или заказы из онлайн-магазина. В случае, когда списки небольшие, то их можно вбить и вручную, но что делать, если они содержат сотни наименований? Для того, чтобы ускорить процедуру, можно прибегнуть к некоторым дополнительным возможностям.

Для автоматической загрузки подойдут практически все типы документов:

  • Список номенклатуры;
  • Список контрагентов;
  • Список прайсов;
  • Перечень заказов;
  • Информация о покупках или продажах и т.д.

Сразу нужно отметить, что в 1С нет встроенных инструментов, которые позволяли бы переносить данные из Эксель. Для этих целей нужно подключить внешний загрузчик, который представляет собой файл в формате epf .

Подготовка данных

Нам нужно будет подготовить данные в самой таблице Excel.


Кроме этих универсальных действий по подготовке данных в книге Эксель, нужно будет ещё привести документ в соответствие с требованиями конкретного загрузчика, который мы будем использовать, но об этом мы поговорим чуть ниже.

Подключение внешнего загрузчика

Подключить внешний загрузчик с расширением epf к приложению 1С можно, как до подготовки файла Эксель, так и после. Главное, чтобы к началу процесса выполнения загрузки оба этих подготовительных момента были решены.

Существует несколько внешних загрузчиков таблиц Эксель для 1С, которые созданы различными разработчиками. Рассматривать мы будем пример с использованием инструмента для обработки информации «Загрузка данных из табличного документа» для версии 1С 8.3.


Одной из основных баз данных, с которыми работает 1C, является список номенклатуры товаров и услуг. Поэтому для описания процедуры загрузки из Excel остановимся на примере переноса именно этого типа данных.

  1. Возвращаемся к окну обработки. Так как мы будем загружать номенклатуру товаров, то в параметре переключатель должен стоять в позиции «Справочник» . Впрочем, он так установлен по умолчанию. Переключать его следует только тогда, когда вы собрались переносить другой тип данных: табличную часть или регистр сведений. Далее в поле «Вид справочника» кликаем по кнопке, на которой изображено многоточие. Открывается выпадающий список. В нем нам следует выбрать пункт «Номенклатура» .
  2. После этого обработчик автоматически расставляет те поля, которые программа использует в этом виде справочника. Нужно сразу отметить, что совсем не обязательно заполнять все поля.
  3. Теперь опять открываем переносимый документ Excel. Если наименование его колонок отличается от наименования полей справочника 1С, которые содержат соответствующие, то нужно переименовать эти столбцы в Экселе так, чтобы названия полностью совпадали. Если в таблице имеются столбцы, для которых в справочнике нет аналогов, то их следует удалить. В нашем случае такими столбцами являются «Количество» и «Цена» . Также следует добавить, что порядок расстановки столбцов в документе должен строго совпадать с тем, который представлен в обработке. Если для некоторых столбцов, которые отображены в загрузчике, у вас нет данных, то эти колонки можно оставлять пустыми, но нумерация тех столбцов, где имеются данные, должна совпадать. Для удобства и быстроты редактирования можно применять специальную возможность Эксель для быстрого перемещения колонок местами.

    После того, как данные действия произведены, жмем на значок «Сохранить» , который представлен в виде пиктограммы, изображающей дискету в верхнем левом углу окна. Затем закрываем файл, нажав на стандартную кнопку закрытия.

  4. Возвращаемся в окно обработки 1С. Жмем на кнопку «Открыть» , которая изображена в виде папки желтого цвета.
  5. Запускается окно открытия файла. Переходим в директорию, где расположен документ Эксель, который нам нужен. Переключатель отображения файлов по умолчанию установлен для расширения mxl . Для того чтобы показать нужный нам файл, его требуется переставить в позицию «Лист Excel» . После этого выделяем переносимый документ и жмем на кнопку «Открыть» .
  6. После этого содержимое открывается в обработчике. Чтобы проверить корректность заполнения данными, жмем на кнопку «Контроль заполнения» .
  7. Как видим, инструмент контроля заполнения сообщает нам, что ошибки не найдены.
  8. Теперь перемещаемся во вкладку «Настройка» . В «Поле поиска» ставим галочку в той строке, которая у всех наименований, заносимых в справочник номенклатуры, будет уникальная. Чаще всего для этого используют поля «Артикул» или «Наименование» . Это нужно делать для того, чтобы при добавлении новых позиций в список, данные не задваивались.
  9. После того, как все данные внесены и настройки выполнены, можно переходить к непосредственной загрузке информации в справочник. Для этого кликаем по надписи «Загрузить данные» .
  10. Выполняется процесс загрузки. После её завершения можно перейти в справочник номенклатуры и убедиться, что все нужные данные туда добавлены.

Мы проследили процедуру добавления данных в справочник номенклатуры в программе 1C 8.3. Для других справочников и документов загрузка будет проводиться по тому же принципу, но с некоторыми нюансами, с которыми пользователь сможет разобраться самостоятельно. Также нужно заметить, что у различных сторонних загрузчиков процедура может отличаться, но общий подход остается у всех одинаковый: сначала обработчик загружает из файла информацию в окно, где производится её редактирование, а уже потом она добавляется непосредственно в базу данных 1С.

В 1С существует 2 способа работы с файлами MS Excel, через COM-объект и встроенными средствами 1С с помощью объекта табличный документ. Разберем оба эти способа поподробнее.

1. Работа через COM-объект.

Для этого способа необходим установленный MS Excel, притом если вы работаете с файлом на сервере, то соответственно MS Excel должен быть установлен на сервере, если на клиенте - то на клиентской стороне так же необходим MS Excel.

Пример (в конце статьи можно посмотреть в текстовом виде):

Надо заметить, что все объекты, методы и свойства, предоставляемые COM-объектом "Excel.Application" - это объекты, методы и свойства VBA, языка программирования MS Office.

Примечание:

Бывает нужно работать с уже существующим шаблоном. Тогда перед нами возникает необходимость где-то хранить этот шаблон, чтобы к нему имели доступ все нужные пользователи. Однако есть более простое решение, сохраняем шаблон как двоичный макет.

2. Работа через ТабличныйДокумент 1С.

Табличный документ 1С поддерживает формат MS Excel для записи начиная с платформы 8, а вот для открытия только начиная с платформы 8.3.6. Притом, при открытии все листы загружаются в один табличный документ. Начиная с версии 8.3.10 при загрузке разные листы загружаются, как разные области.

Пример записи очень простой и не требует особого внимания:

Однако здесь у нас возникает проблема. При записи из 1С в книге Excel по умолчанию отключено отображение имен листов.

Эту проблему можно решить 2 способами, 1 - в самой книге в настройках включить отображение листов (не все пользователи будут согласны это делать), 2 - сделать это через COM-объект (нам опять нужен установленный MS Excel).

После этого небольшого дополнения, в файле MS Excel будут видны ярлыки листов.

Чтение же MS Excel не настолько простая задача, поскольку метод прочитать доступен только на сервере или толстом клиенте. Для этого нам необходимо передать файл MS Excel на сервер.

&НаКлиенте

Процедура СозданиеДокумента()

Исключение

КонецПопытки;

Книга = Эксель.WorkBooks.Add(); //Создаем новую книгу MS Excel

Лист = Книга.WorkSheets.Add(); //Добавляем лист

Лист.Name = "Пример из 1С"; //Задаем имя листа

Лист.Cells (1,1).Value = "Давайте создадим формулу";

Лист.Cells (2,1).Value = 1;

Лист.Cells (2,2).Value = 2;

Лист.Cells (2,3).Formula = "=A2+B2";

Лист.Cells (3,1).Value = ТекущаяДата();

Книга.SaveAs("C:\1\Test.xlsx");

Книга.Close();

КонецПроцедуры

&НаСервере

Функция ПолучитьМакетСервер()

Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("ШаблонНаВыгрузку"); //Таким образом мы получаем макет внешней обработки;

КонецФункции

&НаКлиенте

Процедура Работа()

Эксель = Новый COMОбъект("Excel.Application");

Исключение

Сообщить("Неудачная попытка подключения компоненты Excel. Возможно, программа Excel не установлена на данном компьютере!");

КонецПопытки;

Макет = ПолучитьМакетСервер();

Макет.Записать(ИмяВременногоФайла);

У вас есть вопрос, нужна помощь консультанта?

Книга = Эксель.WorkBooks.Open(ИмяВременногоФайла);

ЛистШаблона = Книга.WorkSheets(1);

ЛистШаблона.Cells (6,1).Value = "Дата:";

ЛистШаблона.Cells (6,2).Value = ТекущаяДата();

ЛистШаблона.NumberFormat = "dd/mm/yy;@"; // Дадим формат даты, этот формат получен записью макроса в MS Excel

ЛистШаблона.Columns("B:B").EntireColumn.AutoFit; // Растянем колонку, чтобы дата точно помещалась

Книга.SaveAs(ИмяФайла);

Книга.Close();

КонецПроцедуры

&НаКлиенте

КонецПроцедуры

&НаКлиенте

Процедура ЗаписатьТабличныйДокумент()

ТабличныйДокумент = Новый ТабличныйДокумент();

ТабличныйДокумент.Область("R1C1").Текст = "Пример записи в MS Excel из 1С";

ТабличныйДокумент.Записать("C:\1\Test2.xls",ТипФайлаТабличногоДокумента.XLSX);

Excel = Новый COMОбъект("Excel.Application");

Excel.WorkBooks.Open("C:\1\Test2.xls");

Excel.Visible = 0;

Excel.ActiveWindow.DisplayWorkbookTabs = 1;

Excel.ActiveWindow.TabRatio = 0.6;

Excel.ActiveWorkbook.Save();

Excel.Application.Quit()

КонецПроцедуры

ДвоичныеДанные = Новый ДвоичныеДанные("C:\1\test2.xlsx");

Адрес=ПоместитьВоВременноеХранилище(ДвоичныеДанные,ЭтаФорма.УникальныйИдентификатор) ;

ТабличныйДокумент = ЗагрузитьНаСервере(Адрес);

ТабличныйДокумент.Показать();

КонецПроцедуры

&НаСервере

Функция ЗагрузитьНаСервере(Адрес)

ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xlsx");

ДанныеФайла = ПолучитьИзВременногоХранилища(Адрес);

ДанныеФайла.Записать(ИмяВременногоФайла);

ТабличныйДокумент = Новый ТабличныйДокумент();

Возврат ТабличныйДокумент;

В продолжение темы:
Компоненты

Доброго часа всем! Думаю, что многие пользователи сталкивались с подозрительной работой жесткого диска: долгим копированием/чтением файлов, тормозами, загрузкой до 100%,...