1С загрузка в справочник из excel
В этой статье я расскажу как с помощью универсальной обработки “Загрузка данных из табличного документа” с диска ИТС загрузить данные в справочник номенклатура в конфигурацию Управление торговлей 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С:
Далее Единица для отчетов аналогично Единице хранения остатков.
После заполнения настроек, нажимаем контроль заполнения и если нет ошибок нажимаем Загрузить:
Открываем любой из загруженных элементов номенклатуры и проверяем загрузились ли единицы измерений:
Сохраним настройки в файл и приступим к следующему этапу.
Чтобы загрузить эту настройку нажмите сюда
- Загрузим 2-типа цен: Цена Розница 1 и Цена Розница 2. Заходим Справочники => Номенклатура => Типы цен номенклатуры:
Добавляем новый тип цен:
Заполняем необходимые реквизиты и сохраняем:
Аналогично добавляем еще один тип цен.
После сохранения типов цен, создадим два пустых документа Установка цен номенклатуры, так как загрузка производится с помощью заполнения обработкой табличной части документа “Установка цен номенклатуры”.
Заходим Документы => Ценообразование => Установка цен номенклатуры:
Добавляем новый документ:
В документе выбираем один из двух созданных типов цен и сохраняем его пустым:
Аналогично создаем второй документ.
В итоге должно получиться следующим образом:
Заходим в нашу обработку. В обработке выбираем Режим загрузки — Загрузка в табличную часть, Ссылка выбираем тип данных документ Установка цен номенклатуры,заново Ссылка выбираем созданный документ Установка цен номенклатуры для первой цены,Табличная часть выбираем Товары.
Переходим во вкладку табличный документ и загружаем ваш прайс. Снова перейдем во вкладку настройки для ввода настроек:
Нумерация колонок — Ручная нумерация колонок.
Номенклатура:
Режим загрузки — Искать
№ Колонки табличного документа — 5 (ставите свое значение).
Цена:
Режим загрузки — Искать
№ Колонки табличного документа — 8 (ставите свое значение для первого типа цен).
Валюта:
Режим загрузки — Устанавливать
Значение по умолчанию — руб. (ставите свое значение)
Единица измерения:
Режим загрузки — Вычислять
В поле выражение вводим код на встроенном языке программирования 1С:
Тип цен:
Режим загрузки — Устанавливать
Значение по умолчанию — Цена Розница 1 (выбираете свое значение)
После того как ввели все настройки, нажимаем контроль заполнения во вкладке табличный документ. Если все правильно нажимаем Загрузить:
После окончания загрузки заходим в заранее созданный документ Установка цен номенклатуры, проверяем все ли правильно загрузилось и нажимаем ОК:
Для второго типа цен выбираем по Ссылке второй документ Установка цен номенклатуры, меняем номер колонки реквизита цена,меняем тип цен на Цена Розница 2 и нажимаем Загрузить:
Аналогичным образом открываем второй документ Установка цен номенклатуры и нажимаем ОК для перепроведения.
Результат загрузки можно увидеть если зайти в элемент номенклатуры и во вкладку Цены номенклатуры.Там видим два созданных типа цен и по нажатию кнопки Перечитать текущие цены мы увидим загруженные нами цены:
Примечание: в один документ Установка цен номенклатуры с помощью данной обработки можно загрузить только один тип цен, т.е. для каждого типа цен создается отдельный документ.
Сохраняем наши настройки в файл и переходим к следующему этапу.
Чтобы загрузить эту настройку нажмите сюда
- Загрузим штрих-коды для нашей номенклатуры. Штрих-коды хранятся в регистре сведений, поэтому выбираем Режим загрузки — В регистр сведений, Вид регистра — Штрих-коды.Загружаем наш прайс во вкладке табличный документ.
Для реквизита Владелец заходим в описание типов и оставляем галочку только напротив номенклатура:
Для реквизита Владелец в поле Искать по выбираем Артикул:
Далее убираем галочки с тех реквизитов с которых возможно. Выбираем ручную нумерацию колонок.
Штрих-код:
Режим загрузки — Искать
№ Колонки табличного документа — 7 (ставите свое значение).
Владелец:
Режим загрузки — Искать
№ Колонки табличного документа — 4 (ставите свое значение для колонки с артикулом).
Тип штрих-кода:
Режим загрузки — Устанавливать
Значение по умолчанию — EAN13 (ставите свое значение)
Единица измерения:
Режим загрузки — Вычислять
В поле выражение вводим код на встроенном языке программирования 1С:
Качество:
Режим загрузки — Устанавливать
Значение по умолчанию — Новый
Режим загрузки — Устанавливать
Значение по умолчанию — оставляем пустым
После заполнения выполняем контроль заполнения во вкладке табличный документ и нажимаем Загрузить.
После успешной загрузки сохраняем настройки в файл.
Чтобы загрузить эту настройку нажмите сюда.
В последних версиях конфигураций на платформе 8.3 реализована замечательная возможность загрузки информации из внешнего файла через буфер обмена в документы закупок и продаж.
Типовая загрузка из внешнего файла в 1С 8.3
Например, нам необходимо загрузить определенный заказ клиента из файла Excel. Открываем файл Excel с нужными нам данными. В 1С создаем документ «Заказ клиента» или открываем старый, в который нужно внести изменения. Там переходим на вкладку «Товары», нажимаем кнопку «Заполнить-Заполнить из внешнего файла».
Рис.1 Загрузка заказа из внешнего файла
В открывшемся окне видим одноименные столбцы: штрих-код, код, артикул, номенклатура, характеристика, количество, цена – необходимый набор данных для заполнения табличной части заказа товарами.
Рис.2 Заполнение необходимых для загрузки заказа данных
Теперь просто копируем данные из нашего файла Excel в нашу открытую форму. Поиск номенклатуры производится по штрих-коду, коду, артикулу или по рабочему наименованию, поэтому хотя бы одно это поле должно быть заполнено.
После поиска номенклатуры открывается следующее окно для проверки найденной информации.
Рис.3 Поиск номенклатуры и заполнение необходимых полей
Можно внести изменения или дозаполнить данные. Если все верно, то переносим данные в наш документ. Загруженные строки с номенклатурой добавляются в табличную часть документа.
Рис.4 Добавление загруженной из Excel информации в заказ
Обработка для загрузки данных из Excel
Не для всех документов можно использовать типовой механизм загрузки из внешних файлов, например, загрузка счета в 1С или других важных документов не может быть осуществлена с его помощью. Для этих целей используются внешние обработки для загрузки из Excel. Обработка имеет расширение epf.
Важно замечание: на компьютере обязательно должен быть установлен Excel «свежей» версии, а также перед загрузкой файла он должен быть закрыт.
Загружаются файлы определенного формата, так как в обработке должно быть жестко прописано, из какого столбца что грузить. Для начала необходимо определиться со структурой файла Excel. Каждый тип данных должен заполняться в отдельном столбце. Не должно быть объединенных ячеек.
Созданную внешнюю обработку можно открывать из базы двумя способами:
- Через меню «Файл- Открыть». Выбрать файл обработки, сохраненный на компьютере.
Рис.5 Открытие внешней обработки
- Подключить во внешние обработки.
Подключить внешнюю обработку в базу нужно следующим образом. Заходим в раздел «НСИ и администрирование», нажимаем «Печатные формы, отчеты и обработки».
Рис.6 Загрузка внешней обработки
Идем в «Дополнительные отчеты и обработки», нажимаем «Создать».
Рис.7 Дополнительные отчеты и обработки
Загружаем файл внешней обработки (может выскочить окно с предупреждением не загружать файлы из внешних непроверенных источников).
Рис.8 Добавление внешней обработки
Нажимаем «Продолжить». Выбираем файл с компьютера. Автоматически заполняется наименование, дополнительная информация. Для открытия обработки потребуется нажать кнопку «Выполнить».
Рис.9 Добавление и выполнение внешней обработки
Загрузка файлов Excel
Для загрузки файлов определенного формата нужно создать внешнюю обработку: через меню «Файл-Новый» выбрать «Новая обработка».
Рис.10 Создание внешней обработки
В модуле формы обработки указывается подключение к Excel с помощью COM-соединения:
Рис.11 Ввод команд в модуле формы обработки
Далее программным кодом описывается, как и во что загружать информацию. Обычно в обработке жестко прописывается, из каких столбцов и строк забирать данные. Однако можно вынести указание расположения данных для загрузки в настройки, чтобы была доступна универсальная загрузка любых форматов файлов.
В настройках такой обработки прописываются столбцы экселя и соответствующие им столбцы обработки.
Таким образом, загрузка данных из Excel возможна как типовыми механизмами, так и через внешние обработки. Типовая загрузка информации в 1С 8.3 имеет фиксированный формат загружаемых данных, однако внешними обработками можно значительно расширить форматы и объемы загружаемой информации.
Дата публикации 21.06.2018
Использован релиз 3.0.63
Для загрузки в справочник номенклатуры из файла в формате Excel сделайте следующее:
- Раздел: Справочники – Номенклатура.
- Кнопка "Загрузить" (рис. 1).
- В открывшемся окне выберите файл загрузки и нажмите кнопку "Открыть".
- На "Шаге 1":
- Анализируются названия колонок в файле загрузки и сопоставляются с реквизитами справочника "Номенклатура". Для колонок, наименование которых программа не смогла сопоставить с реквизитами справочника автоматически (красным шрифтом "Укажите реквизит"), укажите наименование реквизита из справочника вручную. Для этого перейдите по ссылке "Укажите реквизит" и выберите из предложенного списка необходимый. Лишние колонки или строки нужно удалить. Строку с наименованием столбцов удалять не следует, при загрузке программа игнорирует первую строку.
- Если загружается номенклатура с ценой, то в информационной базе автоматически создается новый документ "Установка цен номенклатуры" на текущую дату. Загрузить из файла можно только один тип цен. Если требуется загрузить два и более типа цен для списка товаров, выполните поочередно загрузку одного файла, выбирая разные типы цен. При каждой загрузке будет создан новый документ "Установка цен номенклатуры" с указанным типом цен.
- Единицы измерения программа определяет автоматически, если их сокращенное наименование соответствует "Классификатору единиц измерения". Например, чтобы автоматически загружались граммы, в таблице файла загрузки следует указывать сокращенно "г", для литров следует указать сокращенно "л". Если сокращенное наименование единицы измерения указано неверно, то автоматически загружаются штуки "шт".
- Кнопка "Далее".
- На "Шаге 2" (рис. 2):
- По ссылке "Реквизиты новой номенклатуры" можно выбрать группу (папку), в которую следует сохранить новые позиции номенклатуры, вид номенклатуры, номенклатурную группу и ставку НДС. Обратите внимание: если загружаемая позиция уже находится в справочнике "Номенклатура" в определенной группе, записать ее в другую группу нельзя. Проверьте в табличной части корректность данных, при необходимости их можно вручную отредактировать, также можно изменить дату установки цен. Нажмите кнопку "Загрузить".
- Если на этом этапе некоторые строки будут отмечены знаком "!", то это означает, что в справочнике "Номенклатура" есть несколько позиций с совпадающими значениями реквизитов. Перейдите на закладку "Дубли" и вручную выберите из справочника необходимую позицию.
- По номенклатуре с одинаковым наименованием и разными единицами измерения следует изменить наименование (например, указать в наименовании единицы измерения) во избежание некорректной загрузки.