Как загрузить номенклатуру, остатки и цены из Excel в 1С:Бухгалтерия 3.0?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет Торговля и дистрибуция
← На главную

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

Метод 1: Загрузка через табличную часть документов

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

Проанализируем шаги выполнения этой операции:

  1. Перейдем в раздел Склад и создадим новый документ Оприходование товаров.
  2. В шапке документа укажем склад и статью доходов (например, "Оприходование излишков").
  3. Над табличной частью нажмем кнопку Заполнить и выберем пункт Загрузить из файла.
  4. Перед нами откроется окно загрузки. Мы можем просто скопировать данные из нашего Excel-файла (колонки Номенклатура, Количество, Цена, Сумма) и вставить их в это окно.
  5. Нажмем Далее. Программа предложит сопоставить колонки. Если 1С не узнала колонку автоматически, укажем ей соответствие вручную.
  6. Если в файле есть товары, которых еще нет в справочнике Номенклатура, система подсветит их красным и предложит создать новые карточки прямо в процессе загрузки.

Этот способ идеален для небольшого количества файлов, так как он позволяет сразу сформировать проводки по счету 41 (Товары) или 10 (Материалы).

Метод 2: Помощник ввода начальных остатков

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

Этот механизм находится в разделе Главное — Помощник ввода остатков. Выберем в списке счет, по которому хотим ввести данные (например, 41.01). При создании документа ввода остатков мы также увидим кнопку Загрузить из файла. Преимущество этого метода в том, что он корректно закрывает баланс через вспомогательный счет 000 и позволяет сразу разнести остатки по партиям или складам в строгом соответствии с методологией бухгалтерского учета.

Метод 3: Использование универсальной обработки «Загрузка данных из табличного документа»

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

Рассмотрим возможности этого инструмента:

Проанализируем процесс настройки: в поле "Куда загружать" выбираем Справочник, объект — Номенклатура. Настраиваем соответствие полей. Важно помнить про Единицу измерения: если она не заполнена в файле, в настройках обработки можно указать фиксированное значение (например, "шт").

Метод 4: Загрузка цен продажи

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

В этом документе также реализован механизм загрузки. Нажмем Изменить — Добавить товары из файла. Программа подтянет список номенклатуры и позволит проставить цены для выбранного типа цен (Оптовая, Розничная и т.д.). После проведения документа данные запишутся в регистр сведений Цены номенклатуры.

Решение проблемы большого количества файлов (80+ штук)

Когда перед нами стоит задача обработать более 80 файлов, открывать каждый и нажимать "Загрузить" становится нерационально. Рассмотрим два способа автоматизации процесса:

1. Объединение файлов средствами Excel (Power Query).

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

2. Программная обработка через COM-соединение.

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


// Пример обхода файлов в папке
МассивФайлов = НайтиФайлы(ПутьКПапке, "*.xlsx");
Для Каждого Файл Из МассивФайлов Цикл
    // Создаем объект Excel
    ExcelПриложение = Новый COMОбъект("Excel.Application");
    Книга = ExcelПриложение.Workbooks.Open(Файл.ПолноеИмя);
    Лист = Книга.Sheets(1);
    
    // Здесь реализуется чтение строк и создание документа ОприходованиеТоваров
    // ...
    
    Книга.Close(Ложь);
    ExcelПриложение.Quit();
КонецЦикла;

Использование COMОбъект("Excel.Application") позволяет программе работать в фоновом режиме, последовательно открывая и считывая данные из каждого файла. Однако стоит помнить, что для этого метода на сервере или компьютере, где выполняется код, должен быть установлен Microsoft Excel.

Важные нюансы и типичные ошибки

При загрузке данных важно обращать внимание на следующие моменты:

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

← На главную