Как сделать импорт в 1с из excel в?
Содержание
Уже давно самой популярной программой среди бухгалтеров, планировщиков, экономистов и управленцев стало приложение 1C. Оно имеет не только разнообразное количество конфигураций для различных видов деятельности, но и локализации под стандарты учета в нескольких странах мира. Все больше предприятий переходят на ведение учета именно в этой программе. Но процедура переноса данных вручную из других программ учета в 1C — довольно долгое и скучное занятие, отнимающее массу времени. Если на предприятии велся учет с помощью Excel, то процесс переноса можно существенно автоматизировать и ускорить.
Перенос данных из Эксель в 1С
Производить перенос данных из Excel в 1С требуется не только на начальном периоде работы с данной программой. Иногда наступает необходимость подобного, когда по ходу деятельности нужно занести какие-то списки, хранящиеся в книге табличного процессора. Например, если требуется перенести прайс-листы или заказы из онлайн-магазина. В случае, когда списки небольшие, то их можно вбить и вручную, но что делать, если они содержат сотни наименований? Для того, чтобы ускорить процедуру, можно прибегнуть к некоторым дополнительным возможностям.
Для автоматической загрузки подойдут практически все типы документов:
- Список номенклатуры;
- Список контрагентов;
- Список прайсов;
- Перечень заказов;
- Информация о покупках или продажах и т.д.
Сразу нужно отметить, что в 1С нет встроенных инструментов, которые позволяли бы переносить данные из Эксель. Для этих целей нужно подключить внешний загрузчик, который представляет собой файл в формате epf.
Подготовка данных
Нам нужно будет подготовить данные в самой таблице Excel.
- Любой список, загружаемый в 1С, должен быть однородно структурирован. Нельзя выполнять загрузку при наличии в одном столбце или ячейке данных нескольких типов, например, имя человека и его телефонный номер. В этом случае, такие двойные записи обязательно следует разделять в разные столбцы.
- Не допускается наличия объединенных ячеек даже в заголовках. Это может привести к некорректным результатам при переносе данных. Поэтому, если объединенные ячейки имеются, их нужно разделить.
- Если исходную таблицу сделать максимально простой и понятной, без применения относительно сложных технологий (макросы, формулы, комментарии, сноски, лишние элементы форматирования и т.д.), то это поможет максимально предотвратить проблемы на дальнейших шагах переноса.
- Обязательно следует привести наименование всех величин к единому формату. Не допускается наличие обозначения, например, килограмм, отображаемого разными записями: «кг», «килограмм», «кг.». Программа будет их понимать как разные величины, поэтому нужно выбрать один вариант записи, а остальные исправить под этот шаблон.
- Обязательно наличие уникальных идентификаторов. В их роли может выступать содержимое любого столбца, которое не повторяется в других строках: индивидуальный налоговый номер, артикул и т.д. Если в существующей таблице нет столбца с подобным значением, то можно добавить дополнительную колонку и произвести там простую нумерацию. Это нужно для того, чтобы программа смогла идентифицировать данные в каждой строке отдельно, а не «сливала» их вместе.
- Большинство обработчиков файлов Эксель не работает с форматом xlsx, а только с форматом xls. Поэтому, если наш документ имеет расширение xlsx, то нужно его конвертировать. Для этого переходим во вкладку «Файл» и жмем на кнопку «Сохранить как».
Открывается окно сохранения. В поле «Тип файла» по умолчанию будет указан формат xlsx. Меняем его на «Книга Excel 97-2003» и жмем на кнопку «Сохранить».
После этого документ будет сохранен в нужном формате.
Кроме этих универсальных действий по подготовке данных в книге Эксель, нужно будет ещё привести документ в соответствие с требованиями конкретного загрузчика, который мы будем использовать, но об этом мы поговорим чуть ниже.
Подключение внешнего загрузчика
Подключить внешний загрузчик с расширением epf к приложению 1С можно, как до подготовки файла Эксель, так и после. Главное, чтобы к началу процесса выполнения загрузки оба этих подготовительных момента были решены.
Существует несколько внешних загрузчиков таблиц Эксель для 1С, которые созданы различными разработчиками. Рассматривать мы будем пример с использованием инструмента для обработки информации «Загрузка данных из табличного документа» для версии 1С 8.3.
- После того, как файл в формате epf скачан и сохранен на жестком диске компьютера, запускаем программу 1С. Если файл epf упакован в архив, то его предварительно нужно извлечь оттуда. На верхней горизонтальной панели приложения жмем на кнопку, запускающую меню. В версии 1С 8.3 она представлена в виде вписанного в оранжевую окружность треугольника, перевернутого углом вниз. В появившемся списке последовательно переходим по пунктам «Файл» и «Открыть».
- Запускается окно открытия файла. Переходим в директорию его расположения, выделяем тот объект и жмем на кнопку «Открыть».
- После этого загрузчик запустится в 1С.
Скачать обработку «Загрузка данных из табличного документа»
Загрузка данных
Одной из основных баз данных, с которыми работает 1C, является список номенклатуры товаров и услуг. Поэтому для описания процедуры загрузки из Excel остановимся на примере переноса именно этого типа данных.
- Возвращаемся к окну обработки. Так как мы будем загружать номенклатуру товаров, то в параметре «Загрузка в» переключатель должен стоять в позиции «Справочник». Впрочем, он так установлен по умолчанию. Переключать его следует только тогда, когда вы собрались переносить другой тип данных: табличную часть или регистр сведений. Далее в поле «Вид справочника» кликаем по кнопке, на которой изображено многоточие. Открывается выпадающий список. В нем нам следует выбрать пункт «Номенклатура».
- После этого обработчик автоматически расставляет те поля, которые программа использует в этом виде справочника. Нужно сразу отметить, что совсем не обязательно заполнять все поля.
- Теперь опять открываем переносимый документ Excel. Если наименование его колонок отличается от наименования полей справочника 1С, которые содержат соответствующие, то нужно переименовать эти столбцы в Экселе так, чтобы названия полностью совпадали. Если в таблице имеются столбцы, для которых в справочнике нет аналогов, то их следует удалить. В нашем случае такими столбцами являются «Количество» и «Цена». Также следует добавить, что порядок расстановки столбцов в документе должен строго совпадать с тем, который представлен в обработке. Если для некоторых столбцов, которые отображены в загрузчике, у вас нет данных, то эти колонки можно оставлять пустыми, но нумерация тех столбцов, где имеются данные, должна совпадать. Для удобства и быстроты редактирования можно применять специальную возможность Эксель для быстрого перемещения колонок местами.
После того, как данные действия произведены, жмем на значок «Сохранить», который представлен в виде пиктограммы, изображающей дискету в верхнем левом углу окна. Затем закрываем файл, нажав на стандартную кнопку закрытия.
- Возвращаемся в окно обработки 1С. Жмем на кнопку «Открыть», которая изображена в виде папки желтого цвета.
- Запускается окно открытия файла. Переходим в директорию, где расположен документ Эксель, который нам нужен. Переключатель отображения файлов по умолчанию установлен для расширения mxl. Для того чтобы показать нужный нам файл, его требуется переставить в позицию «Лист Excel». После этого выделяем переносимый документ и жмем на кнопку «Открыть».
- После этого содержимое открывается в обработчике. Чтобы проверить корректность заполнения данными, жмем на кнопку «Контроль заполнения».
- Как видим, инструмент контроля заполнения сообщает нам, что ошибки не найдены.
- Теперь перемещаемся во вкладку «Настройка». В «Поле поиска» ставим галочку в той строке, которая у всех наименований, заносимых в справочник номенклатуры, будет уникальная. Чаще всего для этого используют поля «Артикул» или «Наименование». Это нужно делать для того, чтобы при добавлении новых позиций в список, данные не задваивались.
- После того, как все данные внесены и настройки выполнены, можно переходить к непосредственной загрузке информации в справочник. Для этого кликаем по надписи «Загрузить данные».
- Выполняется процесс загрузки. После её завершения можно перейти в справочник номенклатуры и убедиться, что все нужные данные туда добавлены.
Урок: Как поменять столбцы местами в Excel
Мы проследили процедуру добавления данных в справочник номенклатуры в программе 1C 8.3. Для других справочников и документов загрузка будет проводиться по тому же принципу, но с некоторыми нюансами, с которыми пользователь сможет разобраться самостоятельно. Также нужно заметить, что у различных сторонних загрузчиков процедура может отличаться, но общий подход остается у всех одинаковый: сначала обработчик загружает из файла информацию в окно, где производится её редактирование, а уже потом она добавляется непосредственно в базу данных 1С.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
Да Нет
Импорт из Excel в 1С — импорт таблицы Excel в 1С (любого формата при помощи OLE DB)
Импорт из Excel в 1С позволяет загружать файл любой версии Excel, это зависит лишь от версии драйверов MDAC, установленных на вашем компьютере. В этой статье я приведу пример несложной обработки 1С, позволяющей сделать импорт из Excel в 1С, в таблицу значений 1С.
Вы увидите и сможете использовать в дальнейшем универсальную функцию, на вход которой передается полное имя файла Excel, а так же имя или номер листа в этом файле, а на выходе получается таблица значений 1С, содержащая данные с указанного листа.
Для понимания материала рекомендую прочесть предыдущую статью Из Excel в 1С, получение списка листов (имен листов) из файла Excel.
В предыдущей статье есть ссылка на скачивание свежей версии драйверов MDAC, которые вы можете бесплатно установить на любой компьютер, чтобы импорт таблиц из Excel в 1С поддерживался для формата последней версии Microsoft Office (в состав которого входит и Excel).
Итак, вот перед вами код функции ФайлExcel_ИмпортироватьЛист()
// Функция импортирует (загружает данные) из указанного листа файла в формате Microsoft Excel в таблицу значений 1С // Возвращается таблица значений, содержащая импортированные данные, либо Неопределено, если импорт данных не удался. // Входные параметры: // - строка, полный путь и имя файла рабочей книги Excel, с расширением xls, xlsx // - строка или число, имя листа в рабочей книге (должно заканчиваться символом "$"), либо порядковый номер листа // в книге Excel. Нумерация листов начинается с 1. // - тип булево, "Истина" или "Ложь". // Если "Истина", тогда в качестве имен колонок таблицы значений (таблицы результата) // будут использованы заголовки столбцов в исходном листе Excel. В этом случае первая строка импортируемого листа // обязательно должна содержать заголовки в каждом столбце, и текст заголовка должен соответствовать правилам // наименования идентификаторов в языке 1С (последовательность букв, цифр и знаков подчеркивания, // начинающаяся только с букв или знака подчеркивания) // Если "Ложь", тогда имена колонок результирующей таблицы значений будут сформированы автоматически, по принципу // F1, F2...Fn В этом случае первая строка импортируемого листа может быть любой, к ней не предъявляется никаких // требований. // Возвращаемая таблица значений будет содержать в себе строки и колонки, заполненные данными, в том же порядке, соответствующем строкам // и колонкам в исходном листе Excel Функция ФайлExcel_ИмпортироватьЛист(ИмяФайла, ИмяИлиНомерЛиста = 1, ИспользоватьЗаголовок = Ложь) adFalse = 0; // формируем строку подключения к OLE DB источнику данных с именем "Microsoft.ACE.OLEDB.12.0" HDR = ?(ИспользоватьЗаголовок, "Yes", "No"); СтрокаСоединения = ФорматСтроки("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%1; Extended Properties=""Excel 12.0;HDR=%2""", ИмяФайла, HDR); // если лист задан не именем, а номером, требуется сначала найти имя листа Если ТипЗнч(ИмяИлиНомерЛиста) = Тип("Число") Тогда // проверяем, чтобы номер листа был не меньше единицы Если ИмяИлиНомерЛиста МассивИменЛистов.Количество() Тогда Сообщить("Ошибка. Номер запрошенного листа больше, чем общее число листов в книге Excel"); Возврат Неопределено; КонецЕсли; ИмяЛиста_ = МассивИменЛистов; // запоминаем имя листа для дальнейшего чтения данных Иначе Сообщить("Ошибка. Не удалось получить имя листа в книге Excel по его номеру"); Возврат Неопределено; КонецЕсли; Иначе // проверяем, чтобы последним символом в имени листа был знак $ Если Прав(ИмяИлиНомерЛиста, 1) "$" Тогда Сообщить("Ошибка в параметре. Имя листа должно оканчиваться знаком доллара '$'"); Возврат Неопределено; КонецЕсли; ИмяЛиста_ = ИмяИлиНомерЛиста; // запоминаем имя листа для дальнейшего чтения данных КонецЕсли; // формируем текст запроса к источнику данных книги Excel. По-сути это SQL запрос с выборкой всех столбцов и строк указанной таблицы (листа) // В языке SQL такой запрос не гарантирует никакой порядок следования записей, но на практике, в нашем случае, // из листа Excel строки будут выбраны в правильном, последовательном порядке, от 1-ой строки к последней ТекстКоманды = ФорматСтроки("SELECT * FROM ", ИмяЛиста_); // создаем специальный com-объект ADODB.Recordset, который будет содержать выбранные данные (некий аналог таблицы значений 1С) Recordset = Новый COMОбъект("ADODB.Recordset"); Попытка // заставляем Recordset выполнить запрос к данным. Текст запроса в переменной , // а параметры соединения указаны в строке , сформированной в начале функции // После успешного выполнения запроса объект Recordset содержит в себе копию данных из листа Excel // т.е. имеет внутри себя строки и колонки с данными. Recordset.Open(ТекстКоманды, СтрокаСоединения); Исключение Сообщить(ОписаниеОшибки()); Возврат Неопределено; КонецПопытки; ТЗ = Новый ТаблицаЗначений; КоличествоКолонок = Recordset.Fields.Count; // получаем количество колонок с данными, после выполнения запроса // Создаем колонки результирующей таблицы значений, копируя имена колонок из объекта Recordset // Имена колонок либо автоматически сформированы системой, либо взяты из имен столбцов листа Excel // Это зависит от вх.параметра Для НомерКолонки = 0 По КоличествоКолонок - 1 Цикл ТЗ.Колонки.Добавить(Recordset.Fields(НомерКолонки).Name); КонецЦикла; // перебираем записи(строки) объекта Recordset Пока Recordset.EOF() = adFalse Цикл НоваяСтрока = ТЗ.Добавить(); // копируем данные каждого столбца (поля) в новую строку таблицы значений Для НомерКолонки = 0 По КоличествоКолонок - 1 Цикл НоваяСтрока = Recordset.Fields(НомерКолонки).Value; КонецЦикла; Recordset.MoveNext(); // переходим на следующую запись(строку) объекта Recordset КонецЦикла; Возврат ТЗ; КонецФункции
Мы знаем, что стандартный файл электронной таблицы Excel состоит из набора так называемых листов. Каждый лист, по-сути, представляет собою прямоугольную таблицу, состоящую из строк и столбцов.
Наша функция ФайлExcel_ИмпортироватьЛист() извлекает информацию для импорта из Excel в 1С с одного конкретного листа. Поэтому, кроме имени файла-таблицы Excel , мы должны передать в функцию еще и имя нужного нам листа. Имя листа в Excel всегда заканчивается знаком «$«, например «Лист1$«, когда это имя используется для ссылки на нужный лист.
Чаще всего бывает так, что нужная нам информация находится на первом, по счету, листе файла Excel, поэтому вместо имени в функцию можно передать порядковый номер листа — 1. Ну или любой другой номер, если вам известно, на каком, по-порядку, листе находится интересующие данные. (Важно! Иногда нумерация листов в книге Excel не соответствует видимому порядку отображения листов при открытии книги. Например, лист, который вы видите первым по-счету, может иметь номер 4 или другой, не равный единице. Вам надо проверять это уже в процессе работы с конкретным файлом, или вместо номера использовать имя листа)
Мы имеем, таким образом, некую универсальность, при выборе нужного листа с данными для импорта из Excel в 1С. Это достигается тем, что изнутри функции ФайлExcel_ИмпортироватьЛист() вызывается другая функция, ФайлExcel_ПолучитьСписокЛистов() (описанная в прошлой статье), благодаря которой извлекается имя листа, соответствующее переданному номеру листа. А далее, запрос на чтение выстраивается с использованием заранее полученного имени листа Excel.
Функция ФайлExcel_ИмпортироватьЛист() имеет еще и третий параметр. Дело в том, что возвращаемая после импорта из Excel в 1С таблица значений имеет колонки. Разумеется, эти колонки должны иметь какие-то имена. Для управления наименованием колонок и нужен третий параметр, который я назвал ИспользоватьЗаголовок.
Если мы присвоим этому параметру значение Истина то для именования колонок в результирующей таблицы значений — будут использованы значения ячеек из первой строки импортируемого листа Excel. Разумеется, сами данные, как таковые, в этом случае будут «начинаться» со второй строки. По-другому, вторая строка исходного листа будет являться первой строкой таблицы значений 1С, а первая строка исходного листа будет использована как заголовок столбцов таблицы значений 1С.
Надеюсь, что не запутал Вас. В случае, если мы присвоим параметру ИспользоватьЗаголовок = Ложь, результирующая таблица значений получить стандартные имена колонок, по порядку: «F1, F2 .. Fn» и первая строка исходного листа будет импортирована в первую строку таблицы значений.
Такой способ представляется мне более естественным, поэтому по умолчанию я и назначил ИспользоватьЗаголовок = Ложь. Следует еще и учесть, что имена колонок в таблице значений 1С должны строго соответствовать правилам именования идентификаторов 1С (не содержать пробелы и т.д.)
И если мы выберем режим использования заголовков (ИспользоватьЗаголовок = Истина), а содержимое ячеек первой строки исходного листа Excel не будет соответствовать правилам 1С, то функция вызовет исключение и аварийно завершится при попытке создания колонок таблицы значений, с «кривыми» именами.
Выше был размещен исходный текст отдельно взятой функции ФайлExcel_ИмпортироватьЛист().
Для удобства тестирования этой функции я создал обработку 1С, в модуле формы которой разместил все необходимые функции для импорта файла из Excel в 1С. Обработка позволяет выбрать файл Excel на диске компьютера и сразу же показывает результат в виде таблицы значений.
В исходном коде тестовой обработки вы найдете комментарии, описывающие работу функций. Я надеюсь, что комментариев будет достаточно для понимания принципа работы функции импорта из Excel в 1С.
Если комментариев внутри исходного кода недостаточно, то пишите вопросы в комментариях к этой статье. Хотя, функцию можно с успехом использовать и без понимания принципов ее работы. Бывает, зачастую, просто некогда детально разбираться в вопросе, лишь бы «быстрее заработало». Тоже вариант! 🙂
Скачать тестовую обработку по импорту таблиц из Excel в 1С
В этой статье я расскажу как с помощью универсальной обработки “Загрузка данных из табличного документа” с диска ИТС загрузить данные в справочник номенклатура в конфигурацию Управление торговлей 10.3. Загрузка производится из файлов с расширением xls (формат excel 97-2003) в несколько этапов.
Если ваша конфигурация основана на управляемых формах 1С 8.3 или 8.2, рекомендуем к просмотру данное видео:
Мы для примера загрузим небольшой прайс в котором содержится следующая информация: наименование, артикул, единица измерения, два типа цен, штрих-код.
- Для начала перепишем обработку ЗагрузкаДанныхИзТабличногоДокумента.epf с диска ИТС. Если диска под рукой нет — скачайте её по ссылке. Для этого на диске заходим Технологическая поддержка =>1С Предприятие 8:
Далее Универсальные отчеты и обработки => Загрузка данных из табличного документа => Описание и установка внешней обработки “Загрузка данных из табличного документа”:
Нажимаем Копировать:
Выбираем путь для копирования кнопкой искать(в моем случае я копирую на рабочий стол) и нажимаем Копировать:
Ждем окончания копирования и нажимаем ОК:
Закрываем ИТС,больше нам диск не понадобится.
Подробнее о том как добавить внешнюю обработку, отчет или печатную форму написано здесь.
2.Запустим конфигурацию 1С Управление торговлей 10.3 в режиме Предприятие. Для начала добавим нашу обработку в состав внешних обработок базы для удобства использования и чтобы в следующий раз не искать ее на диске ИТС. Заходим Сервис => Внешние печатные формы и обработки => Внешние обработки:
Открывается список внешних обработок вашей базы. Нажимаем Добавить:
Выбираем кнопкой “Открыть” скопированный ранее с диска ИТС файл ЗагрузкаДанныхИзТабличногоДокумента.epf:
Нажимаем ОК для сохранения обработки в базе 1С Управление торговлей:
Теперь двойным щелчком мыши можем запустить обработку из списка доступных внешних обработок:
- Мой прайс-лист выглядит следующим образом:
Убедитесь что ваш прайс-лист сохранен в формате xls, если нет, то сохраните именно в этом формате. Чтобы элементы номенклатуры попали в нужные группы (столбец А) нам необходимо предварительно создать их в справочнике Номенклатура вручную.
Следите за тем чтобы после названия группы не было лишних пробелов, так как название группы в 1С в результате не будет соответствовать названию группы в прайс-листе Excel. Создаем группы:
Запускаем внешнюю обработку как показано выше, либо через меню Файл=>Открыть и выбрав файл ЗагрузкаДанныхИзТабличногоДокумента.epf. Выбираем Режим загрузки — Загрузка в справочник, Вид справочника — Номенклатура. Нажимаем значок Открыть:
Выбираем файл вашего прайс-листа, предварительно изменив Тип файлов на Лист Excel (*.xls) и нажимаем Открыть:
Видим загруженный в обработку прайс лист:
Если у вас очень большой прайс-лист, его открытие займет продолжительное время, следует подождать. Я рекомендую такой прайс-лист сохранить из самой обработки в формате mxl после открытия, такой файл открывается очень быстро. Для этого нажимаем значок Сохранить, пишем название файла и нажимаем Сохранить:
Переходим во вкладку Настройка. Ставим номер первой строки данных табличного документа, в моем случае первая строка это шапка с названиями реквизитов а сами данные начинаются со второй. Далее выбираем ручную нумерацию колонок, это нужно чтобы указать в какой колонке табличного документа находится реквизит из списка:
Настраиваем реквизиты для загрузки:
Наименование:
Режим загрузки — Искать
№ Колонки табличного документа — 5 (ставите свое значение)
Родитель (имеется в виду группа номенклатуры):
Режим загрузки — Искать
№ Колонки табличного документа — 1 (ставите свое значение)
Артикул:
Ставим галочку поле поиска. Это означает что с уже имеющейся в вашей базе номенклатурой обработка будет сравнить по артикулу, и если найдется элемент с таким же артикулом,то обработка заменит его реквизиты на реквизиты из данной настройки.
Режим загрузки — Искать
№ Колонки табличного документа — 4 (ставите свое значение)
Базовая единица измерения:
Режим загрузки — Вычислять.
В поле Выражение пишем формулу:
Результат = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекстыЯчеек);
Это выражение означает,что обработка будет сравнить наименование из 6-ой колонки прайс-листа с наименованием в справочнике Классификатор единиц измерения и при совпадение названий присваивать соответствующую единицу из справочника.
Вам необходимо убедиться что все наименования единиц измерения из прайса есть в соотвествующем справочнике 1С. Если их нет,то следует предварительно создать.
Весовой:
Режим загрузки — Устанавливать
Значение по умолчанию — Нет
Полное наименование:
Режим загрузки — Искать
№ Колонки табличного документа — 5 (ставите свое значение)
В моем случае полное и сокращенное наименование совпадают. Напомню что полное наименование используется в программе в печатных формах документов, а сокращенное для удобства поиска в самой программе.
Ставка НДС:
Режим загрузки — Устанавливать
Значение по умолчанию — 18%
Вид номенклатуры:
Режим загрузки — Устанавливать
Значение по умолчанию — Товар
После заполнения всех настроек необходимо произвести контроль заполнения. И если ошибок нет, нажимаем Загрузить.
Ждем окончания загрузки и смотрим как загрузились элементы. Я открыл один из них:
Здесь видим что не хватает обязательных для заполнения полей: единицы хранения остатков и единицы для отчетов. Мы загрузим их следующим этапом.
Если все загрузилось в соответствии с настройками то мы можем сохранить настройки в файл, чтобы в следующий раз не производить настройку заново.Нажимаем значок сохранить во вкладке Настройка:
Пишем название файла и сохраняем. Формат файла будет *.mxlz:
Примечание:
Если в какой либо строке настройки стоит Режим загрузки “вычислять” или “устанавливать” то обработка не будет учитывать значение в колонке настроек “№ Колонки табличного документа” этой же строки настройки.
Если вы загрузили настройку из ранее сохраненной то вам придется заново вводить значения в колонку настроек “№ Колонки табличного документа”.
Чтобы загрузить эту настройку нажмите сюда
- Приступим к загрузке единиц хранения остатков и единиц для отчетов. Убираем все галочки с реквизитов кроме Артикул, Единица хранения остатков и Единица для отчетов. Ставим галочку не создавать новых элементов.
Артикул:
Ставим галочку поле поиска.
Режим загрузки — Искать
№ Колонки табличного документа — 4 (ставите свое значение)
Единица хранения остатков:
Режим загрузки — Вычислять
В поле выражение вставляем код на встроенном языке программирования 1С:
СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", ТекущиеДанные); БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекстыЯчеек); ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору",БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры); Если ТекСпр.Пустая() Тогда НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения); НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения; НайденнаяЕдиницаОбъект.Коэффициент = 1; НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры; Попытка НайденнаяЕдиницаОбъект.Записать(); Результат = НайденнаяЕдиницаОбъект.Ссылка; Исключение Сообщить("Не удалось записать"); КонецПопытки; Иначе Результат =ТекСпр.Ссылка; КонецЕсли;
Далее Единица для отчетов аналогично Единице хранения остатков.
После заполнения настроек, нажимаем контроль заполнения и если нет ошибок нажимаем Загрузить:
Открываем любой из загруженных элементов номенклатуры и проверяем загрузились ли единицы измерений:
Сохраним настройки в файл и приступим к следующему этапу.
Чтобы загрузить эту настройку нажмите сюда
- Загрузим 2-типа цен: Цена Розница 1 и Цена Розница 2. Заходим Справочники => Номенклатура => Типы цен номенклатуры:
Добавляем новый тип цен:
Заполняем необходимые реквизиты и сохраняем:
Аналогично добавляем еще один тип цен.
После сохранения типов цен, создадим два пустых документа Установка цен номенклатуры, так как загрузка производится с помощью заполнения обработкой табличной части документа “Установка цен номенклатуры”.
Заходим Документы => Ценообразование => Установка цен номенклатуры:
Добавляем новый документ:
В документе выбираем один из двух созданных типов цен и сохраняем его пустым:
Аналогично создаем второй документ.
В итоге должно получиться следующим образом:
Заходим в нашу обработку. В обработке выбираем Режим загрузки — Загрузка в табличную часть, Ссылка выбираем тип данных документ Установка цен номенклатуры,заново Ссылка выбираем созданный документ Установка цен номенклатуры для первой цены,Табличная часть выбираем Товары.
Переходим во вкладку табличный документ и загружаем ваш прайс. Снова перейдем во вкладку настройки для ввода настроек:
Вводим настройки:
Нумерация колонок — Ручная нумерация колонок.
Номенклатура:
Режим загрузки — Искать
№ Колонки табличного документа — 5 (ставите свое значение).
Цена:
Режим загрузки — Искать
№ Колонки табличного документа — 8 (ставите свое значение для первого типа цен).
Валюта:
Режим загрузки — Устанавливать
Значение по умолчанию — руб. (ставите свое значение)
Единица измерения:
Режим загрузки — Вычислять
В поле выражение вводим код на встроенном языке программирования 1С:
СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоНаименованию(ТекущиеДанные); Результат=СсылкаНоменклатуры.ЕдиницаХраненияОстатков;
Тип цен:
Режим загрузки — Устанавливать
Значение по умолчанию — Цена Розница 1 (выбираете свое значение)
После того как ввели все настройки, нажимаем контроль заполнения во вкладке табличный документ. Если все правильно нажимаем Загрузить:
После окончания загрузки заходим в заранее созданный документ Установка цен номенклатуры, проверяем все ли правильно загрузилось и нажимаем ОК:
Для второго типа цен выбираем по Ссылке второй документ Установка цен номенклатуры, меняем номер колонки реквизита цена,меняем тип цен на Цена Розница 2 и нажимаем Загрузить:
Аналогичным образом открываем второй документ Установка цен номенклатуры и нажимаем ОК для перепроведения.
Результат загрузки можно увидеть если зайти в элемент номенклатуры и во вкладку Цены номенклатуры.Там видим два созданных типа цен и по нажатию кнопки Перечитать текущие цены мы увидим загруженные нами цены:
Примечание: в один документ Установка цен номенклатуры с помощью данной обработки можно загрузить только один тип цен, т.е. для каждого типа цен создается отдельный документ.
Сохраняем наши настройки в файл и переходим к следующему этапу.
Чтобы загрузить эту настройку нажмите сюда
- Загрузим штрих-коды для нашей номенклатуры. Штрих-коды хранятся в регистре сведений, поэтому выбираем Режим загрузки — В регистр сведений, Вид регистра — Штрих-коды.Загружаем наш прайс во вкладке табличный документ.
Для реквизита Владелец заходим в описание типов и оставляем галочку только напротив номенклатура:
Для реквизита Владелец в поле Искать по выбираем Артикул:
Далее убираем галочки с тех реквизитов с которых возможно. Выбираем ручную нумерацию колонок.
Вводим настройки:
Штрих-код:
Режим загрузки — Искать
№ Колонки табличного документа — 7 (ставите свое значение).
Владелец:
Режим загрузки — Искать
№ Колонки табличного документа — 4 (ставите свое значение для колонки с артикулом).
Тип штрих-кода:
Режим загрузки — Устанавливать
Значение по умолчанию — EAN13 (ставите свое значение)
Единица измерения:
Режим загрузки — Вычислять
В поле выражение вводим код на встроенном языке программирования 1С:
СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", ТекстыЯчеек); БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекстыЯчеек); ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору",БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры); Если ТекСпр.Пустая() Тогда НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения); НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения; НайденнаяЕдиницаОбъект.Коэффициент = 1; НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры; Попытка НайденнаяЕдиницаОбъект.Записать(); Результат = НайденнаяЕдиницаОбъект.Ссылка; Исключение Сообщить("Не удалось записать"); КонецПопытки; Иначе Результат =ТекСпр.Ссылка; КонецЕсли;
Качество:
Режим загрузки — Устанавливать
Значение по умолчанию — Новый
Остальные реквизиты:
Режим загрузки — Устанавливать
Значение по умолчанию — оставляем пустым
После заполнения выполняем контроль заполнения во вкладке табличный документ и нажимаем Загрузить.
После успешной загрузки сохраняем настройки в файл.
Чтобы загрузить эту настройку нажмите сюда.