Загрузка данных в 1с из эксель. Возможно ли загрузить данные из Excel в справочник "Номенклатура"? Вот так выглядят наши загрузчики

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

Одной из насущных проблем, с которой сталкиваются начинающие бухгалтера, не имеющие никакого опыта работы с 1С, является загрузка в 1С из созданного ранее Excel. Действительно, самостоятельно сложно разобраться, как в 1С сохранить документ в Excel, а также проблематично сориентироваться, как из 1С сохранить в Excel, чтобы впоследствии поработать непосредственно с табличным редактором.

Итак, чтобы устранить все проблемы , следует сосредоточиться и изучить инструкции, вникнув в каждый шаг предложенного алгоритма. Безусловно, новичкам не следует проявлять при осуществлении таких манипуляций собственного креатива. Только опытные пользователи могут себе позволить выполнение более сложных операций. Начинающим бухгалтерам сначала нужно просто «набить руку», научиться выполнять действия, при которых удаётся сохранить данные в Excel . Только после этого можно расширять свои познания относительно того, как импортировать Эксель в программу 1С.

Механизмы проведения операций

Хочется ещё отметить, что механизм выполнения желаемых действий может отличаться в зависимости от того, какая версия программы 1С:Бухгалтерия установлена на компьютере. В самых последних версиях этот процесс уже не сопровождается особой проблематичностью. Именно поэтому опытные пользователи рекомендуют отслеживать появление обновлений, а при их обнаружении обязательно программу обновлять. Если на компьютере будет установлена новейшая версия ПО, тогда и разобраться в том, как в 1С выгрузить в Excel или сохранить её в программе, будет проще.

Алгоритм загрузки

Сначала определитесь, что конкретно вы желали бы сохранить в 1С. Откройте таблицу, созданную вами ранее в Excel, проверьте, все ли данные вам важно загрузить в программу. Если какие-то столбцы в табличном документе вам впоследствии не будут нужны, поскольку они не представляют никакой ценности, просто удалите их заранее, чтобы не перегружать программу 1С:Бухгалтерия. После этого не забудьте повторно сохранить отредактированную вами таблицу.

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

Чтобы импорт завершился успехом, важно обеспечить сохранение загружаемого документа в нужном формате. Допускается импорт в 1С:Бухгалтерию документов, которые вам удалось сохранить в формате Экселя — 2003 или последующих версий. Также документ может быть сохранён в формате mxl и ods. Если вы всё сделали предварительно именно так, тогда можете осуществлять импорт.

Несложно понять, как в 1С сохранить в Excel, нажав на кнопку «Загрузить». На экране возникнет привычное окно загрузки. Остаётся только указать путь, где находится тот документ, который вы желаете загрузить. После того как импорт в 1С из Excel будет завершён, обратите внимание, что в программе он будет точно таким же, каким он был и в табличном редакторе .

На этом импорт завершён, но ваши действия продолжаются, особенно если вы предварительно не отредактировали таблицу, поэтому в ней остались лишние строки и столбцы. Над столбцами вы обнаружите такое предложение, как «Укажите реквизит», нажав на него, нужно будет выбрать один из вариантов, предложенных в списке. После того как вы успешно поработаете с каждым столбиком, просмотрите строки. Если вы обнаружите что-то лишнее, смело удаляйте.

Чтобы проделать такие манипуляции, выделите строку, а затем нажмите на кнопку «Удалить строку».

Изучая инструкции, как выгрузить в 1С из имеющегося Excel, вы легко обнаружите советы относительно того, что после редактирования таблицы, нужно заполнить недостающие данные. Если проделать такие манипуляции со скрупулёзностью, впоследствии работать с программой будет проще. Точно так же проще будет осуществлять поиск.

На этом импорт табличного редактора в программу 1С:Бухгалтерию завершается. Если же вы неукоснительно следуете инструкции, как в 1С выгрузить из Эксель, но что-то идёт не так, убедитесь, что сама программа сопровождается новейшей версией.

Алгоритм выгрузки

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

Прежде всего, выгруженный документ можно использовать в качестве прайс-листа, который можно направлять компаньонам и поставщикам. Чтобы «заставить» файл выгружаться, первоначально следует пройти по уже знакомому маршруту, открывая сначала «Номенклатур», затем «Номенклатура и цены», а уже в завершении на этот раз строку «Выгрузить». После этого возникнет окно, в котором нужно будет указать колонки, которые вы желали бы видеть впоследствии в Excel.

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

Долго ожидать не придётся, поскольку операция осуществляется достаточно быстро.

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

Итак, процесс выгрузки и загрузки документов Excel в программу 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");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Нередко предприятия параллельно с 1С ведут учет и в программе Microsoft Excel. Такое возможно, например, когда переход на 1С с других систем был совсем недавно, или если у бухгалтера в системе 1С не настроены должным образом отчеты и ему удобнее анализировать данные в Excel, а может быть поставщики присылают накладные или прайс листы в файлах Excel (обмен информацией в электронном виде через файлы Excel очень распространен во взаимоотношениях между организациями). В этих случаях остро встает вопрос о необходимости автоматизации процесса и избавления пользователей от монотонного вбивания информации в 1С. Для написания соответствующей обработки приходится обращаться к программистам 1С, а это - дополнительные затраты. Не все знают, что компания 1С уже давно разработала подобную бесплатную универсальную обработку, главное - научиться ею правильно пользоваться. А так как главный принцип нашей фирмы - "Клиент платит только за фактически выполненную работу", мы совершенно бесплатно в данной статье обучим Вас, как с помощью данной обработки загрузить данные из файла Excel в любую программу 1С на платформах 1С:Предприятие 8.2 и 1С:Предприятие 8.1.

Где взять обработку по загрузке данных в 1С из excel

Универсальная обработка от фирмы 1С по загрузке данных из excel называется ЗагрузкаДанныхИзТабличногоДокумента.epf и находиться на диске ИТС.

Для 8.1 E:1CIts\EXE\EXTREPS\UNIREPS81\UploadFromTableDocument или скачать

Для 8.2 E:1CIts\EXE\EXTREPS\UNIREPS82\UploadFromTableDocument или скачать


Как запустить обработку по загрузке данных в 1С из excel

Для запуска обработки ЗагрузкаДанныхИзТабличногоДокумента.epf необходимо:
- Запустить 1С в режиме 1С:Предтиятие, то есть открыть базу, в которую Вы собираетесь загрузить данные;
- Далее нажать Файл - Открыть;

В появившемся окне выбрать файл ЗагрузкаДанныхИзТабличногоДокумента.epf, по тому пути, где данная обработка у Вас находится;

Вот так выглядит сама обработка по загрузке данных из excel:

Загрузка справочника номенклатура из excel

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



- на закладке "Табличный документ" нажать кнопку "Открыть файл", как показано на рисунке;


- в открывшемся окне выбираем тот файл, который Вы собираетесь загрузить, не забудьте установить правильный тип файлов, в нашем случае "Лист Excel(*.xls)";

Обработка заполнит табличную часть закладки "Табличный документ";

Переходим на закладку "Настройка" и заполняем следующими данными, как показано на рисунке;

Поле "Первая строка данных табличного документа" - здесь необходимо указать номер строки, с которой необходимо загружать данные, в нашем случае это 2 ;
Галочка "не создавать новых элементов" служит для того, чтобы не загружать новые данные, ее можно использовать при заполнении документов, чтобы новые элементы справочников, например, номенклатура не создавались, а подставлялись только из базы 1С. Так как в нашем случае мы как раз хотим загрузить новые номенклатуры, галочку не ставим .
Далее нам необходимо нажать кнопку "Нумерация колонок" - "Ручная нумерация колонок", это нам позволит вручную проставить номера колонок из которых обработка будет считывать данные и автоматически подставлять в нужные поля.
А теперь проставим номера колонок:
- в нашем случае поля "Наименование" и "Полное наименование" будут одинаковы и должны запонняться из 3-ей колонки, ставим 3 в колонке "№ колонки табличного документа", "Режим загрузки" - "Искать";
- строку "Код" отключим, пусть 1С сама сформирует коды номенклатурам;
- "Родитель" - скажем обработке, пусть она всю загруженную номенклатуру загружает в "Новую папку", во избежании бардака, а мы в дальнейшем, если потребуется перенесем номенклатуры по своим папкам вручную. Если же вся загружаемая номенклатура относится к определенной папке, например "Оборудование", то ее можно сразу здесь указать. "Режим загрузки" - "Устанавливать";
- "Базовая единица измерения", тоже установим из существующих, у нас это шт. "Режим загрузки" - "Устанавливать";
- "Ставка НДС" - у нас будет 18%, установим и "Режим загрузки" - "Устанавливать";
- "Комментарий" - можно не устанавливать, но мы заполним значением "Загрузка из Excel 20.09.2012", чтобы сохранилась своего рода история, что и когда загрузили, "Режим загрузки" - "Устанавливать";
- "Услуга" - "Нет", так как мы загружаем товар,"Режим загрузки" - "Устанавливать";
- "Артикул" - должны запонняться из 1-ой колонки, ставим 1 в колонке "№ колонки табличного документа", "Режим загрузки" - "Искать". И самое главное устанавливаем галочку "Поле поиска" , этим самым мы сообщаем обработке, чтобы она искала номенклатуру по артиклу, и если не нашла, то пусть создает новый. Если Вы не пользуетесь Артикулом, то устанавливайте галочку "Поле поиска" напротив "Наименование", но помните, если у Вас в базе будет такая же номенклатура как и при загрузке,только отличаться хотя бы на 1 символ, например, точку,запятую или букву, то обработка будет считать что это две разные номенклатуры и создаст новую. Обработка осуществляет поиск по Наименованию только строго по точному соответствию.
Далее жмем кнопку "Загрузить" и проверяем результаты загрузки справочника номенклатура из excel.

  • При выполнении обменом информацией между контрагентами (прайс-листы, акты сверки и т.д.);
  • Для облегчения работы операторов в случаях, когда основной учет ведется в 1С, а некоторая его часть выполняется в таблицах Excel;
  • При первичном заполнении базы данных.

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

Универсальный механизм

На дисках ИТС, а также на портале 1С, зайдя в меню «Технологическая поддержка» -> «Универсальные отчеты и обработки», в папке «Загрузка данных из табличного документа» находится соответствующая обработка.

При ее запуске открывается форма (Рис.1):

Как видно из формы, она позволяет выполнять перенос информации в следующие объекты конфигурации:

  1. Справочник;
  2. Табличную часть документа или справочника;
  3. Регистр сведений.

В зависимости от того, в какое положение установлен переключатель, меняется поле выбора объекта.

Табличная форма обработки заполняется при открытии загружаемого файла.

Типовая обработка поддерживает выгрузки из:

  • Разработанного специалистами фирмы 1С, файлов формата mxl;
  • Листа xls, сохраненного в формате Excel 97-2003;
  • Текстового файла txt;
  • Таблицы dbf.

Excel файлы большого объема могут загружаться достаточно долго, так что, если предполагается, что загрузка данных может происходить в несколько этапов или Вы точно знаете, что Вам придется несколько раз открывать существующий файл, для экономии нервов и времени, информацию из него лучше сохранить в mxl формат. Сделать это можно напрямую из формы обработки.

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

Теперь перейдем к закладке «Настройка» (Рис.2):

Рис.2

Достаточно часто экселевские таблицы содержат шапку со всевозможными реквизитами и данными (наименование печатной формы, реквизиты контрагента, дату и номер входящего документа, имена колонок и так далее), чтобы исключить их обработку программой на форме, в реквизите «Первая строка табличного документа» надо указать первую строку с переносимой информацией

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

Колонки «Настройки»

Пометка – установкой или снятием флажка в строке определяется, будет ли заполняться соответствующий реквизит.

Представление реквизита – здесь прописывается синоним (наименование) реквизита метаданных, как оно задано в конфигураторе.

Поле поиска – если установить галочку в это поле, обработка будет осуществлять поиск элементов по соответствующему реквизиту и, в случае успеха, изменять существующие данные, дополнительная функция этого поля – защита от появления дубликатов.

Описание типов – отображает тип данных, который имеет тот или иной реквизит метаданных.

Режим загрузки – предлагает три варианта на выбор (Рис.3):

Рис.3

  • Искать – будет осуществляться поиск соответствующего элемента, в случае его отсутствия может быть создан новый;
  • Устанавливать – подчиненным образом устанавливается определенное значение;
  • Вычислять – в этом случае в поле создаваемого элемента будет установлен результат вычисления выражения, указанного в колонке «Условие связи/Выражение для значения».

В последнем случае, активация поля Выражение вызовет открытие формы (Рис.4).

Рис.4

Номер колонки – поле, используемое для указания, из какой колонки экселевской таблицы необходимо брать данные для заполнения.

Значение по умолчанию – достаточно часто возникает ситуация, когда в загружаемом файле содержатся не все необходимые для записи элемента данные, в этом случае для заполнения будет проставлена информация, содержащаяся в данном поле.

Условие связи/Выражение для значения – частично мы уже коснулись этого поля, когда рассматривали вычисляемые поля, дополнительно в нем можно указать условие, в соответствии с которым будут синхронизированы исходные данные.

Вот, в принципе и вся информация, которая доступна на закладке «Настройка».

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

Проверить корректность переносимых данных можно нажатием на кнопку «Контроль заполнения» (Рис.1). После этого можно запускать процесс загрузки. Об успешном выполнении процедуры или нестандартных ситуациях Вы будете оповещены отдельно.

Для загрузки данных из Экселя в информационных базах «Управление и торговля» существует еще один механизм. Он менее универсален, чем приведенный выше способ, однако не требует подписки ИТС и содержится в типовой поставке.

Эту обработку можно найти на закладке «Закупки» , в меню «Сервис», она носит наименование «Загрузка цен поставщика из файлов»(Рис.5)

Рис.5

Форма обработки содержит:

  1. Поле выбора даты, которая будет указывать, на какое время актуальна данная цена;
  2. Поле выбора контрагента, который прислал свой прайс-лист;
  3. Кнопку, позволяющую выбрать тип устанавливаемых цен;
  4. Табличную часть, которую можно заполнить загружаемыми данными.

Эту форму можно увидеть на Рис.6

Рис.6

Пояснение в верхней части формы объясняет, как пользоваться первой закладкой формы.

После выбора контрагента (в зависимости от того, выступает он поставщиком, комиссионером или продавцом) в таблице станут доступны дополнительные колонки для каждого типа цен.

При работе через веб-интерфейс, в некоторых браузерах может потребоваться установка браузерного дополнения (Рис.7). Нам надо нажать кнопку «Начать установку» и перезапустить наше подключение.

Рис.7

После этого мы, используя буфер обмена, сможем переносить информацию из одной таблицы в другую. Когда необходимые нам колонки («Артикул», «Наименование», «Цена») будут заполнены, мы нажимаем кнопку «Далее» и переходим на вторую страницу (Рис.8)

Рис.8

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

  • Регистрировать все подряд;
  • Регистрировать только те, которые изменились по сравнению с уже имеющимися в базе.

В текстовом поле можно внести комментарий, который будет записан в документе (Рис.9):

Рис.9

После выполнения обработки:

  • В справочнике «Номенклатура поставщика» будет создан соответствующий элемент (если его не было);
  • Ему будет сопоставлен элемент справочника «Номенклатура»;
  • Будет создан и проведен документ «Установка цен номенклатуры» с указанием: поставщика, типа цен и даты фиксации данных.

Аналогичным образом работает обработка «Загрузка товаров из внешних файлов».

Варианты обработки переноса своими руками

Главная проблема в выдергивании данных из экселевского файла заключается в том, что 1С не имеет встроенного однозначного механизма его открытия. Существуют несколько вариантов подключения Excel к 1С:

  • Через Microsoft ADODB – достаточно быстрый способ, который, как правило, применим и для файлового и для клиент-серверного варианта хранения базы;
  • Через использование Microsoft Office – метод, который иногда сбоит при работе с SQL базами, как правило, работает несколько медленнее первого способа, к тому же требуется установленный Office;
  • Через Libre Office – в отличие от предыдущего метода бесплатен, помимо xls и xlsx форматов поддерживает еще и собственные таблицы, но требует установленного пакета LibreOffice и некоторой подготовки загружаемого файла (первая строка таблицы должна содержать имена колонок).

Рассмотрим подробнее различные способы и варианты.

Через ADODB.Connection

Вообще ADO расшифровывается как ActiveX Data Object и служит для программного доступа к различным базам данных. Самая большая проблема при создании любого подключения к стороннему файлу (в том числе и к экселевскому) – грамотно составить строку подключения.

Для файлов Excel тут возможны три варианта:

Параметры строки подключения:

  • Provider – здесь определяется используемый драйвер;
  • Data Source – определяет имя файла, который мы будем открывать;
  • Extended Properties – здесь можно указать: нужна ли строка-заголовок для таблицы (HDR = YES говорит о том, что данные будут считываться с первой строки, HDR = NO – что со второй), открывается ли файл только для чтения (ReadOnly) и некоторые другие дополнительные параметры.

Создав строку подключения, мы можем соединиться с загружаемым файлом (Рис.13)

Рис.13

Теперь мы можем с помощью простого запроса (Рис.14) запустить выборку информации из загружаемого файла.

В данном случае параметр «Лист» определяет, с каким листом из экселевской книги нам предстоит работать.

Набор записей, хранящихся на листе можно прочитать с помощью объекта Recordset. При этом первую запись листа можно получить параметром BOF (начало файла), а последнюю EOF (конец файла).

Через Excel приложение

Главное отличие от предыдущего способа – помимо драйверов работы с базами данных, на компьютере, где выполняется соединение, должен быть установлен Excel. Только в этом случае мы можем инициализировать приложение для чтения данных из таблицы (Рис 16).

У этого COM объекта есть несколько дочерних параметров, но главным для нас, при текущих условиях задачи, является параметр WorkBooks (Рис.17).

После инициализации книги необходимо определить лист, с которого будут считываться данные (Рис.18).

После этого можно перебирать внутри циклов строки и колонки таблицы открываемого файла.

Несколько слов о возможных ошибках

Львиная доля ошибок при подключении к файлу возникает из-за того, что файл уже занят другим приложением. Хорошо, если в панели задач видно, что Excel запущен на компьютере, но если Вы или другой пользователь открыли его из внешней обработки, визуально это можно определить только через «Диспетчер задач», так что не забывайте перед окончанием процедуры переноса закрыть подключение:

В случае работы через ADO (Рис.19);

Рис.19

  • В случае работы с приложением (Рис. 20).

Рис. 20.

Подключение и процедуру завершения работы с данными лучше всего организовывать внутри конструкции Попытка-Исключение-КонецПопытки, вызывая в исключительной ситуации описание ошибки. Хоть это иногда и замедляет работу, но существенно упрощает определение причины возникновения ошибки и, в конечном счете, способов её устранения.