Загрузка в 1C из Excel

В этой статье я расскажу как с помощью универсальной обработки “Загрузка данных из табличного документа” с диска ИТС загрузить данные в справочник номенклатура в конфигурацию Управление торговлей 10.3. Загрузка производится из файлов с расширением xls (формат excel 97-2003) в несколько этапов.

Если ваша конфигурация основана на управляемых формах 1С 8.3 или 8.2, рекомендуем к просмотру данное видео:

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

  1. Для начала перепишем обработку ЗагрузкаДанныхИзТабличногоДокумента.epf с диска ИТС. Если диска под рукой нет — скачайте её по ссылке. Для этого на диске заходим Технологическая поддержка =>1С Предприятие 8:

Загрузка Данных Из Табличного Документа

Далее Универсальные отчеты и обработки => Загрузка данных из табличного документа => Описание и установка внешней обработки “Загрузка данных из табличного документа”:

Загрузка из excel в 1С

Нажимаем Копировать:

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

Выбираем путь для копирования кнопкой искать(в моем случае я копирую на рабочий стол) и нажимаем Копировать:

Путь для копирования обработки Загрузка данных из табличного документа

Ждем окончания копирования и нажимаем ОК:

Файлы успешно загружены

Закрываем ИТС,больше нам диск не понадобится.

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

2.Запустим конфигурацию 1С Управление торговлей 10.3 в режиме Предприятие. Для начала добавим нашу обработку в состав внешних обработок базы для удобства использования и чтобы в следующий раз не искать ее на диске ИТС. Заходим Сервис => Внешние печатные формы и обработки => Внешние обработки:

Добавление внешней обработки в базу

Открывается список внешних обработок вашей базы. Нажимаем Добавить:

Добавить внешнюю обработку для загрузки из excel

Выбираем кнопкой “Открыть” скопированный ранее с диска ИТС файл ЗагрузкаДанныхИзТабличногоДокумента.epf:

Выбор файла обработки

Нажимаем ОК для сохранения обработки в базе 1С Управление торговлей:

Сохранение обработки в базе 1С

Теперь двойным щелчком мыши можем запустить обработку из списка доступных внешних обработок:

Запускаем обработку из списка

  1. Мой прайс-лист выглядит следующим образом:

Прайс-лист

Убедитесь что ваш прайс-лист сохранен в формате xls, если нет, то сохраните именно в этом формате. Чтобы элементы номенклатуры попали в нужные группы (столбец А) нам необходимо предварительно создать их в справочнике Номенклатура вручную.

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

Созданные группы номенклатуры

Запускаем внешнюю обработку как показано выше, либо через меню Файл=>Открыть и выбрав файл ЗагрузкаДанныхИзТабличногоДокумента.epf. Выбираем Режим загрузки — Загрузка в справочник, Вид справочника — Номенклатура. Нажимаем значок Открыть:

Обработка загрузки из Excel

Выбираем файл вашего прайс-листа, предварительно изменив Тип файлов на Лист Excel (*.xls) и нажимаем Открыть:

Выбор файла прайс-листа

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

Загруженный в 1С прайс

Если у вас очень большой прайс-лист, его открытие займет продолжительное время, следует подождать. Я рекомендую такой прайс-лист сохранить из самой обработки в формате mxl после открытия, такой файл открывается очень быстро. Для этого нажимаем значок Сохранить, пишем название файла и нажимаем Сохранить:

Сохранение в формате mxl

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

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

Настраиваем реквизиты для загрузки:

Наименование:

Режим загрузки — Искать

№ Колонки табличного документа — 5 (ставите свое значение)

Родитель (имеется в виду группа номенклатуры):

Режим загрузки — Искать

№ Колонки табличного документа — 1 (ставите свое значение)

Артикул:

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

Режим загрузки — Искать

№ Колонки табличного документа — 4 (ставите свое значение)

Базовая единица измерения:

Режим загрузки — Вычислять.

В поле Выражение пишем формулу:

Результат = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекстыЯчеек[6]);

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

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

Весовой:

Режим загрузки — Устанавливать

Значение по умолчанию — Нет

Полное наименование:

Режим загрузки — Искать

№ Колонки табличного документа — 5 (ставите свое значение)

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

Ставка НДС:

Режим загрузки — Устанавливать

Значение по умолчанию — 18%

Вид номенклатуры:

Режим загрузки — Устанавливать

Значение по умолчанию — Товар

Настройка реквизитов обработки

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

После заполнения всех настроек необходимо произвести контроль заполнения. И если ошибок нет, нажимаем Загрузить.

Контроль заполнения

Ждем окончания загрузки и смотрим как загрузились элементы. Я открыл один из них:

Загруженный элемент номенклатуры

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

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

Сохранить настройки в файл

Пишем название файла и сохраняем. Формат файла будет *.mxlz:

Название файла настроек

Примечание:

Если в какой либо строке настройки стоит Режим загрузки “вычислять” или “устанавливать” то обработка не будет учитывать значение в колонке настроек “№ Колонки табличного документа” этой же строки настройки.

Если вы загрузили настройку из ранее сохраненной то вам придется заново вводить значения в колонку настроек “№ Колонки табличного документа”.

Чтобы загрузить эту настройку нажмите сюда

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

Артикул:

Ставим галочку поле поиска.

Режим загрузки — Искать

№ Колонки табличного документа — 4 (ставите свое значение)

Единица хранения остатков:

Режим загрузки — Вычислять

В поле выражение вставляем код на встроенном языке программирования 1С:

СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", ТекущиеДанные["Артикул"]);

БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекстыЯчеек[6]);
ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору",БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры);
Если ТекСпр.Пустая() Тогда НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения);
НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
НайденнаяЕдиницаОбъект.Коэффициент = 1;
НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры;
Попытка НайденнаяЕдиницаОбъект.Записать();
Результат = НайденнаяЕдиницаОбъект.Ссылка;
Исключение Сообщить("Не удалось записать");
КонецПопытки; Иначе Результат =ТекСпр.Ссылка;
КонецЕсли;

Далее Единица для отчетов аналогично Единице хранения остатков.

Настройки единиц измерения

После заполнения настроек, нажимаем контроль заполнения и если нет ошибок нажимаем Загрузить:

Загрузить единицы измерения

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

Загруженные единицы измерения

Сохраним настройки в файл и приступим к следующему этапу.

Чтобы загрузить эту настройку нажмите сюда

  1. Загрузим 2-типа цен: Цена Розница 1 и Цена Розница 2. Заходим Справочники => Номенклатура => Типы цен номенклатуры:

Справочник типы цен номенклатуры

Добавляем новый тип цен:

Добавить новый тип цен

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

Сохранение нового типа цен

Аналогично добавляем еще один тип цен.

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

Заходим Документы => Ценообразование => Установка цен номенклатуры:

Ценообразование

Добавляем новый документ:

Добавляем новый

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

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

Аналогично создаем второй документ.

В итоге должно получиться следующим образом:

Типы цен и документы ценообразования

Заходим в нашу обработку. В обработке выбираем Режим загрузки — Загрузка в табличную часть, Ссылка выбираем тип данных документ Установка цен номенклатуры,заново Ссылка выбираем созданный документ Установка цен номенклатуры для первой цены,Табличная часть выбираем Товары.

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

Загрузка цен

Вводим настройки:

Нумерация колонок — Ручная нумерация колонок.

Номенклатура:

Режим загрузки — Искать

№ Колонки табличного документа — 5 (ставите свое значение).

Цена:

Режим загрузки — Искать

№ Колонки табличного документа — 8 (ставите свое значение для первого типа цен).

Валюта:

Режим загрузки — Устанавливать

Значение по умолчанию — руб. (ставите свое значение)

Единица измерения:

Режим загрузки — Вычислять

В поле выражение вводим код на встроенном языке программирования 1С:

СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоНаименованию(ТекущиеДанные["Номенклатура"]);

Результат=СсылкаНоменклатуры.ЕдиницаХраненияОстатков;

Тип цен:

Режим загрузки — Устанавливать

Значение по умолчанию — Цена Розница 1 (выбираете свое значение)

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

Загрузить цены в 1С

После окончания загрузки заходим в заранее созданный документ Установка цен номенклатуры, проверяем все ли правильно загрузилось и нажимаем ОК:

Установка цен

Для второго типа цен выбираем по Ссылке второй документ Установка цен номенклатуры, меняем номер колонки реквизита цена,меняем тип цен на Цена Розница 2 и нажимаем Загрузить:

Загрузка 2-го типа цен

Аналогичным образом открываем второй документ Установка цен номенклатуры и нажимаем ОК для перепроведения.

Результат загрузки можно увидеть если зайти в элемент номенклатуры и во вкладку Цены номенклатуры.Там видим два созданных типа цен и по нажатию кнопки Перечитать текущие цены мы увидим загруженные нами цены:

Элемент номенклатуры с ценами

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

Сохраняем наши настройки в файл и переходим к следующему этапу.

Чтобы загрузить эту настройку нажмите сюда

  1. Загрузим штрих-коды для нашей номенклатуры. Штрих-коды хранятся в регистре сведений, поэтому выбираем Режим загрузки — В регистр сведений, Вид регистра — Штрих-коды.Загружаем наш прайс во вкладке табличный документ.

Загрузка штрих-кодов в регистр сведений

Для реквизита Владелец заходим в описание типов и оставляем галочку только напротив номенклатура:

Загрузка штрих-кодов в 1С УТ

Для реквизита Владелец в поле Искать по выбираем Артикул:

Загрузка штрих-кодов в 1С УТ 10.3

Далее убираем галочки с тех реквизитов с которых возможно. Выбираем ручную нумерацию колонок.

Настройка загрузки штрих-кодов в 1С

Вводим настройки:

Штрих-код:

Режим загрузки — Искать

№ Колонки табличного документа — 7 (ставите свое значение).

Владелец:

Режим загрузки — Искать

№ Колонки табличного документа — 4 (ставите свое значение для колонки с артикулом).

Тип штрих-кода:

Режим загрузки — Устанавливать

Значение по умолчанию — EAN13 (ставите свое значение)

Единица измерения:

Режим загрузки — Вычислять

В поле выражение вводим код на встроенном языке программирования 1С:

СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", ТекстыЯчеек[4]);

БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекстыЯчеек[6]);

ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору",БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры);
Если ТекСпр.Пустая() Тогда НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения);
НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
НайденнаяЕдиницаОбъект.Коэффициент = 1;
НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры;
Попытка НайденнаяЕдиницаОбъект.Записать();
Результат = НайденнаяЕдиницаОбъект.Ссылка;
Исключение Сообщить("Не удалось записать");
КонецПопытки; Иначе Результат =ТекСпр.Ссылка;
КонецЕсли;

Качество:

Режим загрузки — Устанавливать

Значение по умолчанию — Новый

Остальные реквизиты:

Режим загрузки — Устанавливать

Значение по умолчанию — оставляем пустым

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

После успешной загрузки сохраняем настройки в файл.

Чтобы загрузить эту настройку нажмите сюда.