Инструкция по загрузке из excel в 1c для программиста

MS Excel на данный момент является одной из самых распространенных и любимых программ для работы с электронными таблицами. Поэтому зачастую программистам приходится сталкиваться с просьбами пользователей загрузить Excel файл в 1С 8.3.

Ниже будут рассмотрены два способа загрузки: в документ (накладная или установка цены) и в табличный документ. Получившиеся обработку можно скачать по ссылке.

Содержание

  • Загрузка из Excel в документ 1С
    • 1 шаг – интерфейс
    • 2 шаг – процедура выбора файла
    • 3 шаг – обработка файла Excel
    • 4 шаг – создание документа и заполнение его данными
  • Загрузка данных из Excel в табличный документ

Загрузка из Excel в документ 1С

В качестве примера выберем такой документ, как «Установка цен номенклатуры» в программе 1С Бухгалтерия 3.0. Задачей будет создать документ, заполнить основные реквизиты шапки и заполнить табличную часть «Товары» из Excel файла.

1 шаг – интерфейс

В рамках данной задачи достаточно разместить на форме поле ввода с кнопками выбора, очистки и открытия для выбора файла Excel и кнопку «Загрузить» для выполнения обработки по созданию и заполнению документа «Установка цен номенклатуры».

диалог выбора файла

2 шаг – процедура выбора файла

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.

Связаться с нами можно по телефону +7 499 350 29 00.

Услуги и цены можно увидеть по ссылке.

Будем рады помочь Вам!

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

Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите excel - файл";
Диалог.ПолноеИмяФайла = "c:\";
Диалог.Фильтр = "Таблицы (*.xls,*.xlsx)|*.xls;*.xlsx;|Microsoft Excel 97/2000/XP/2003 (*.xls)|*.xls|Microsoft Excel 2007/2010 (*.xlsx)|*.xlsx";

Если Диалог.Выбрать() Тогда
Объект.ФайлExcel = Диалог.ПолноеИмяФайла;
КонецЕсли;

Для работы на web-клиенте, в браузере необходимо подключить расширение работы с файлами.

3 шаг – обработка файла Excel

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

// Попытка открытия файла Excel
Попытка
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(Объект.ФайлExcel);
Исключение
Сообщить("При открытии файла произошла ошибка! Операция прервана!");
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
	
// Попытка выбрать первый лист
// Можно указать любой другой
Попытка 
Excel.Sheets(1).Select();    
Исключение
// Закрытие файла в том случае, если первый лист не найден
Excel.ActiveWorkbook.Close(); 	
Excel = 0;
Сообщить("Первый лист не найден!");
ОтменитьТранзакцию();
Возврат;
КонецПопытки;
	
// Вычисление количества строк и колонок в зависимости от версии Excel
vExcel = Лев(Excel.Version, Найти(Excel.Version,".")-1);
Если vExcel = "8" тогда
КоличествоСтрок = Excel.Cells.CurrentRegion.Rows.Count;
КоличествоКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
Иначе
КоличествоСтрок = Excel.Cells(1,1).SpecialCells(11).Row;
КоличествоКолонок = Excel.Cells(1,1).SpecialCells(11).Column;
Конецесли;

4 шаг – создание документа и заполнение его данными

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

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

// Проверка корректности заполнения колонок
// Имена колонок в Excel файле должны совпадать с именами реквизитов табличной части, в которую загружаются данные
// Переменная МассивКолонок содержит список номеров колонок, которые будут перегружаться

МассивКолонок = Новый ТаблицаЗначений;
МассивКолонок.Колонки.Добавить("НомерКолонки");
МассивКолонок.Колонки.Добавить("НазваниеКолонки");

Для КолонкаОтсчета = 1 по КоличествоКолонок Цикл
ИмяКолонки = Excel.Cells(1, КолонкаОтсчета).Text;

// Удаление лишних пробелов из имен колонок
ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ","");

// Проверка наличия реквизитов табличной части "Товары" в документе "УстановкаЦен"
Если НЕ НаличиеРеквизитаТЧ(ИмяБезПробелов, Метаданные.Документы.УстановкаЦенНоменклатуры, "Товары") Тогда

Сообщить("Не найден реквизит с именем " + ИмяБезПробелов + "! Колонка не будет загружена!");

Иначе

НовСтрока = МассивКолонок.Добавить();
НовСтрока.НомерКолонки = КолонкаОтсчета;
НовСтрока.НазваниеКолонки = ИмяБезПробелов;

КонецЕсли;

КонецЦикла;

Вызываемая функция «НаличиеРеквизитаТЧ(ИмяРекв, МетаданныеДок, ИмяТЧ)» проверяет в метаданных документа наличие реквизита выбранной нами табличной части (в данном случае «Товары») по его имени. Функция является универсальной, но если на практике задача загрузки файлов из Excel встречается не часто можно вместо нее сразу указать имена реквизитов табличной части документа для сравнения.

// Проверка наличия реквизита табличной части документа
// Возвращает тип Булево
// Истина - реквизит найден
// Ложь - реквизит не найден

&НаСервере
Функция НаличиеРеквизитаТЧ(ИмяРекв, МетаданныеДок, ИмяТЧ)

// Проверка наличия ТЧ
ТЧ = МетаданныеДок.ТабличныеЧасти.Найти(ИмяТЧ);

Если ТЧ = Неопределено Тогда // Нет такой таб. части в документе
Возврат Ложь;
Иначе
Возврат НЕ (ТЧ.Реквизиты.Найти(ИмяРекв) = Неопределено);
КонецЕсли;

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

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

// Если есть колонки для загрузки
// и есть колонка "Номенклатура, которая является обязательным к заполнению реквизитом

Если МассивКолонок.Количество() <> 0 и МассивКолонок.НайтиСтроки(Новый Структура("НазваниеКолонки", "Номенклатура")).Количество() <> 0 Тогда

// Создание документа и заполнение реквизитов шапки
НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Оптовая цена", Истина);
НовыйДокумент.Ответственный = ПараметрыСеанса.ТекущийПользователь;
НовыйДокумент.Комментарий = "Загружено из файла " + Объект.ФайлExcel;

// Заполнение табличной части "Товары"
// Переменная СтрокаОтсчета - номер строки в Excel, с которой начинается заполнение
Для СтрокаОтсчета = 2 по КоличествоСтрок Цикл

НСтр = НовыйДокумент.Товары.Добавить();
НСтр.Валюта = НовыйДокумент.ТипЦен.ВалютаЦены;

Для каждого СтрокаМассив из МассивКолонок Цикл

ТекущееЗначение = Excel.Cells(СтрокаОтсчета, СтрокаМассив.НомерКолонки).Text;

// Получение имени колонки
ИмяКолонки = Excel.Cells(1, СтрокаМассив.НомерКолонки).Text;

// Заполнение строки данными
Если ИмяКолонки = "Номенклатура" Тогда

НСтр.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(ТекущееЗначение, Истина);

ИначеЕсли ИмяКолонки = "Цена" Тогда

НСтр.Цена = ТекущееЗначение;

КонецЕсли;

КонецЦикла;

КонецЦикла;

// Запись и проведение документа
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
Сообщить("Создан и заполнен документ " + Строка(НовыйДокумент));

Иначе

Сообщить("В Excel файле не достаточно данных для заполнения документа!");

КонецЕсли;

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

После завершения всех манипуляций с Excel файлом, его необходимо закрыть:

Excel.DisplayAlerts = 0; 
Excel.Quit();
Excel.DisplayAlerts = 1;

Загрузка данных из Excel в табличный документ

Начиная с версии платформы 8.3.6, фирма 1С добавила очень полезный метод, который позволяет загружать данные из Excel в табличный документ 1С. Данный метод применим для таких форматов, как *.xlsx, *.xls, *, ods.

В версии технологической платформы 1C 8.3.10 данный метод позволяет считывать отдельные листы файла, а не весь документ целиком.

Данный функционал реализован в виде метода «Прочитать» у объекта с типом «ТабличныйДокумент».

В качестве примера добавим на форму обработки табличный документ, куда будет выводиться Excel файл и кнопку со следующим кодом, выполняющимся на сервере:

ТабличныйДокумент.Прочитать(Объект.ФайлExcel);

В качестве параметра методу передается адрес нахождения файла текстовой строкой. Для больших файлов Excel данный метод может отрабатывать значительное время.

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

интерфейс обработки

Смотрите также видео о загрузке с помощью типовой обработки:

Содержание:

1.    Диалог выбора файла

2.    Чтение файла для 1С

3.    Загрузка в таблицу 1С

4.    Создание документов после переноса из Excel в документ 1С

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

Для чтения табличных документов Excel в 1С существует несколько способов. Но не все они универсальны. В данном случае мы будем разбирать способ – через создание COM-объекта. Этот способ требует обязательного наличия MS Excel на компьютере (сервере), на котором находится база данных.

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

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

1.    Диалог выбора файла

Первым делом необходимо создать диалог выбора файла. Создадим реквизит формы «ПутьКФайлу» и вынесем его на форму в виде поля ввода:

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

2.    Чтение файла для 1С

После того как мы создали поле для указания файла, добавим команду формы «ЗагрузитьИзExcel», и вынесем ее на форму.

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

Данная процедура вызывает последовательное выполнение отдельных процедур и функций, о которых речь пойдет чуть ниже.

Функция «ПрочитатьФайлЭксель» возвращает массив с данными из указанного нами файла.

Подключаемся к Excel через COM-объект и проводим все технические настройки: определяем количество листов, определяем версию, так как для разных версий получается разное количество колонок и строк.   

Далее считываем данные и заполняем ими массив.

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

3.    Загрузка в таблицу 1С

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

Получаем номера колонок, данные которых нам необходимы.

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

После загрузки в таблицу 1С можно подтянуть некоторые данные из справочников. В данном случае с помощью метода «НайтиПоРеквизиту()» искались наименования номенклатуры по ее артикулу и так же выгружались в таблицу формы.

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

4.    Создание документов после переноса из Excel в документ 1С

Следующим этапом будет создание Документов на основании полученной таблицы.

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

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

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

Специалист компании ООО «Кодерлайн»

Фархутдинов Айдар Сайярович

Иногда меня спрашивают, почему я присвоил себе ник «Гений 1С». Наверное потому, что я вижу проблему под тем углом, о котором никто не задумывается. Вот и с загрузкой данных в 1С из Excel — казалось бы — все понятно, зачем изобретать велосипед. За свою трудовую деятельность каждый 1С-ник пишет сотни подобных загрузок. Есть и готовые загрузки, обычно платные и не совершенные. Казалось бы, что тут можно поменять и улучшить? А вот можно!

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

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

Причем не хотелось бы на выходе получить такого монстра, как Конвертация Данных от 1С, который сложно изучать и применять. А наоборот, получить такой продукт, которым бы хотелось пользоваться, причем без особого изучения. Сел — и поехал.

И вот недавно я делал проект по загрузке данных из Excel в 1С УНФ. Пользователи готовили таблицы, я их загружал в базу 1С.

У меня была загрузка номенклатуры в 1С из Розницы, я ее адаптировал под УНФ, в целом получилось неплохо.

Но надо было загружать еще и контрагентов. Готовой обработки на Infostart я не нашел — там были обработки разной степени полезности и полноты, все равно их пришлось бы доделывать. Писать с нуля одноразовую обработку не хотелось.

Ну и сама 1С, разумеется, по традиции не дает никаких штатных обработок по загрузке данных. Типовая обработка загрузки из табличного документа не умеет заполнять номера телефонов и адреса, например.

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

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

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

В итоге обработка выглядит на текущий момент так:

Как видно, здесь используется файл настройки загрузки. Пока что для быстроты я написал его на языке 1С, об этом говорит КОД в первой строке файла:

КОД
//Загрузка юрлиц

Настройки = Параметры.Настройки;

Настройки.Вставить("СтрокаШапки", 1);

Настройки.Колонки.Добавить(Новый Структура("ИД, Имя, Обязательно", "Наименование", "Наименовние в программе", истина));
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "НаименованиеПолное", "Наименование для печатной формы"));
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "ЮридическаяФорма", "О контрагенте"));
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "ИНН", "ИНН"));
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "КПП", "КПП"));
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "ОКПО", "ОКПО"));
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "ОГРН", "ОГРН"));
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "Банк", "Банк"));
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "БИК", "БИК"));
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "РасчетныйСчет", "Р/с"));
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "Телефон", "Телефон"));   
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "ТелефонПримечание", "Телефон примечание"));   
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "Емейл", "E-mail"));
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "ЮридическийАдрес", "Юридический адрес"));   
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "ФактическийАдрес", "Фактический адрес"));   
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "Тег", "Тег"));   
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "Группа", "Группа"));   
Настройки.Колонки.Добавить(Новый Структура("ИД, Имя", "ТипКонтрагента", "Тип контрагента"));   

Настройки.Вставить("ФункцияПоиска", "УНФНайтиКонтрагентаЮрлицо");
Настройки.Вставить("ФункцияСоздания", "УНФСоздатьКонтрагента");
Настройки.Вставить("ФункцияЗаполнения", "УНФЗаполнитьКонтрагентаЮрлицо");       
Настройки.Вставить("ФункцияПослеЗаписи", "УНФПослеЗаписиКонтрагентаЮрлицо");   

В будущем планирую формировать структуру настроек из файла с отступами — формат чуть более простой чем JSON.

Файл настроек содержит не код, а лишь описание полей файла Excel и опций загрузки.

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

В файле настроек содержатся также названия методов для поиска, создания, заполнения данных.

Эти методы описываются в отдельной секции формы загрузки — в области ФункцииЗагрузки:

Код по заполнению контрагента выглядит, например, так:

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

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

Я лично планирую сделать в движке доработки, которые уже применял в своих обработках загрузки:

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

  2. Возможность разных названий колонок для одной колонки (учитывать ошибки в названиях колонок)

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

  4. Предварительный просмотр — вывод таблицы, где будет показано, какие элементы будут созданы, какие значения полей будут у новых элементов. Причем ненужные для загрузки данные можно убрать в пользовательском режиме.

  5. Автоматизировать работу с дополнительными пользовательскими реквизитами.

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

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

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

Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку

В этой статье рассмотрим простой пример загрузки данных из файла Excel.

Исходная задача: в файле хранится список контрагентов со следующей информацией:

  • наименование
  • полное наименование
  • УНП
image

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

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

//путь к файлу, который нужно прочитать

ПутьКФайлу = «C:\temp\СписокКонтрагентов.xls»;

//чтение файла, используя метод Прочитать (ВАЖНО: метод доступен только на сервере)

Попытка

ТабДок.Прочитать(ПутьКФайлу, СпособЧтенияЗначенийТабличногоДокумента.Значение);

Исключение

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = «Не удалось прочитать указанный файл по причине: » + ОписаниеОшибки();

Сообщение.Сообщить();

Возврат;

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

//получение количества строк в таблице

КоличествоСтрок = ТабДок.ВысотаТаблицы;

//создание таблицы, в которую будут помещены данные из файла

ДанныеФайла = Новый ТаблицаЗначений;

ДанныеФайла.Колонки.Добавить(«Наименование»);

ДанныеФайла.Колонки.Добавить(«ПолноеНаименование»);

ДанныеФайла.Колонки.Добавить(«УНП»);

//чтение данных таблицы по ячейкам

Для НомерСтроки = 2 По КоличествоСтрок Цикл

СтрокаДанных = ДанныеФайла.Добавить();

//получение данных ячейки с адресом R<НомерСтроки>C<НомерКолонки> (пример: R1C2)

СтрокаДанных.Наименование = ТабДок.ПолучитьОбласть(«R» + Формат(НомерСтроки, «ЧГ=0») + «C» + 1).ТекущаяОбласть.Текст;

СтрокаДанных.ПолноеНаименование = ТабДок.ПолучитьОбласть(«R» + Формат(НомерСтроки, «ЧГ=0») + «C» + 2).ТекущаяОбласть.Текст;

СтрокаДанных.УНП = ТабДок.ПолучитьОбласть(«R» + Формат(НомерСтроки, «ЧГ=0») + «C» + 3).ТекущаяОбласть.Текст;

КонецЦикла;

Примечание: метод «Прочитать()» объекта ТабличныйДокумент доступен только на сервере. Поэтому чтение данных описанным способом возможно только на стороне сервера.

Ставьте + в комментариях, если Вам помогла эта статья 🙂


2019-12-16 15:42

Программирование

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

Рассмотрим несколько возможных типовых вариантов загрузки на примере конфигурации «1C:ERP» 2.5.

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

Обработка Загрузка данных из файла в справочники

В программу 1С:ERP, а также другие типовые конфигурации, реализованные на базе 1С:БСП встроена универсальная обработка Загрузка данных из файла. Она позволяет автоматизировать загрузку данных из внешних файлов в справочники.

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

Функции для технического специалиста

Рисунок 1 — Функции для технического специалиста

В открывшемся окне обработки нужно найти справочник Номенклатура и нажать Далее.

Обработка Загрузка данных в справочник

Рисунок 2 — Обработка Загрузка данных в справочник

После выбора справочника откроется форма с таблицей. Таблица отражает структуру справочника. Наименование колонки – наименование реквизита справочника.

Загрузку данных в таблицу осуществляется двумя способами: Заполнение таблицы через буфер или Из внешнего файла.

В первом варианте Заполнение таблицы нужно вручную заполнить таблицу или скопировать содержимое файла (или другой таблицы) и вставить в таблицу на форме.

Загрузка данных через Заполнение таблицы

Рисунок 3 — Загрузка данных через Заполнение таблицы

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

Изменение бланка

Рисунок 4 — Изменение бланка

Второй вариант – загрузка Из внешнего файла. Вариант позволяет импортировать данные непосредственно из файла. Импорт возможен только из файлов с расширениями: *.xlsx, *.xls, *.ods, *.csv, *.mxl.

Загрузка данных в справочник из внешнего файла

Рисунок 5 — Загрузка данных в справочник из внешнего файла

Обработка позволяет заранее сохранить структуру файла по кнопке Сохранить бланк для заполнения.

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

Структура файла для для загрузки

Рисунок 6 — Структура файла для для загрузки

После нажатия кнопки Загрузить таблицу из файла в окне выбора файла нужно выбрать файл для загрузки.

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

Сопоставление загружаемых данных

Рисунок 7 — Сопоставление загружаемых данных

В нашем случае оставим настройки как есть по умолчанию и создадим новую номенклатуру кнопкой Загрузить данные.

Следующее окно покажет результат работы обработки.

Результат работы обработки

Рисунок 8 — Результат работы обработки

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

Новый элемент справочника Номенклатура

Рисунок 9 — Новый элемент справочника Номенклатура

Обработка Загрузка товаров из внешних файлов в документ

В последних версиях типовых конфигураций реализована возможность загрузки информации из внешнего файла через буфер обмена в документы закупок и продаж. Рассмотрим пример загрузки товаров в документ Заказ клиента из файла Excel.

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

Создадим новый документ Заказ клиента или откроем для редактирования старый. На вкладке Товары нажмем кнопку ЗаполнитьЗагрузить из внешнего файла.

Заполнение заказа клиента

Рисунок 10 — Заполнение заказа клиента

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

Окно загрузки товаров из внешних файлов

Рисунок 11 — Окно загрузки товаров из внешних файлов

Далее откроется окно для проверки найденной информации.

Окно сопоставления номенклатуры

Рисунок 12 — Окно сопоставления номенклатуры

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

Добавленные из файла строки в Заказе клиента

Рисунок 13 — Добавленные из файла строки в Заказе клиента

Обработка Загрузка цен поставщика из файлов

В конфигурациях 1С:Управление торговлей, 1С:Комплексная автоматизация или 1С:ERP существует еще одна встроенная возможность загрузки данных – Загрузка цен поставщика из файлов. Функционал позволяет загружать номенклатуру поставщика с помощью прайс-листа и подробно рассмотрен в инструкции.

Обработка Выгрузка и загрузка данных XML

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

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

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

Обработка Выгрузка и загрузка данных XML поставляется в составе конфигурации Конвертация данных, редакция 2. Скачать ее можно с сайта 1С или с диска ИТС.

Рассмотрим пример выгрузки и загрузки документов Заказ клиента за определенный период времени.

Зайдем в базу, из которой нужно выгрузить документы. Через меню ФайлОткрыть выбирем обработку Выгрузка и загрузка данных XML.

Открытие внешней обработки для выгрузки данных

Рисунок 14 — Открытие внешней обработки для выгрузки данных

В открывшемся окне необходимо отметить данные, которые будем выгружать. В нашем случае выберем только документ Заказ клиента. Укажем необходимый Период выгрузки.

Далее нужно выбрать, куда выгружать данные, на клиентский компьютер или в файл на сервере. Если выбрать На клиентский компьютер, выгрузка начинается сразу и после выгрузки можно указать место сохранения выгрузки. При выборе В файл на сервере сначала нужно указать папку для файла. Также можно проставить флаг В формате FastInfoSet (это сжатый формат двоичного кодирования, который обеспечивает более эффективную сериализацию, чем текстовый формат XML).

Настройки выгрузки

Рисунок 15 — Настройки выгрузки

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

Получение файла выгрузки

Рисунок 16 — Получение файла выгрузки

Нажимаем Сохранить и указываем путь, где следует сохранить файл.

Для того чтобы загрузить данные из файла, следует в базе, в которую будем загружать документы, открыть обработку также через меню ФайлОткрыть.

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

Загрузка данных

Рисунок 17 — Загрузка данных

После загрузки данных программа выведет сообщение об успешной загрузке.

Успешная загрузка данных

Рисунок 18 — Успешная загрузка данных

Материал подготовлен в конфигурации «1C:ERP» 2.5.15.40; версия платформы – 8.3.23.1688.

Нужна помощь
консультанта или программиста 1С?

Наши специалисты готовы решить ваши задачи!

Получить консультацию

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Ауксилиум капли инструкция по применению взрослым
  • Инструкция для электромеханика по лифтам инструкция для электромеханика по лифтам
  • Средство от клопов циклоп инструкция по применению отзывы
  • Инструкция по применению ветом для голубей
  • Таблетки финлепсин инструкция по применению для чего взрослым помогает