Как загрузить товары из Excel в документ Пересортица товаров в 1С:УТ 11.4

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

Проблема автоматизации ввода данных в документ Пересортица товаров является актуальной для многих пользователей 1С:Управление торговлей 11.4. Особенность этого документа заключается в том, что каждая строка содержит информацию одновременно о двух позициях: списываемом товаре (недостача) и приходуемом товаре (излишек). Это усложняет использование стандартных инструментов загрузки, которые обычно рассчитаны на одну позицию номенклатуры в строке. В рамках данной статьи мы разберем несколько способов решения этой задачи: от использования штатного функционала системы до написания собственной обработки.

Способ 1. Методологически верный путь через Пересчет товаров

Проанализируем логику работы конфигурации 1С:УТ 11. Профессионалы часто рекомендуют не пытаться загрузить данные напрямую в документ Пересортица товаров, а использовать штатный бизнес-процесс инвентаризации. Рассмотрим этот процесс пошагово:

  1. Создадим документ Пересчет товаров (раздел Склад и доставка — Излишки, недостачи, порчи).
  2. В этом документе предусмотрена штатная кнопка Загрузить из внешнего файла. Она позволяет импортировать список товаров и их фактическое количество из Excel.
  3. После загрузки данных и проведения документа система автоматически выявит отклонения (излишки и недостачи).
  4. Затем воспользуемся инструментом Помощник оформления складских актов. Система проанализирует все расхождения и сама предложит зачесть излишки одного товара недостачей другого, автоматически сформировав документ Пересортица товаров.

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

Способ 2. Использование универсальной обработки загрузки данных

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

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

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

Способ 3. Прямое копирование из Excel через буфер обмена

Рассмотрим малоизвестный, но эффективный способ для небольших объемов данных (до 500 строк). Платформа 1С:Предприятие 8.3 поддерживает прямое копирование ячеек из таблицы Excel в табличную часть документа.

Выполним следующие действия:

  1. Приведем структуру колонок в Excel в точное соответствие с порядком колонок в экранной форме документа 1С.
  2. Выделим нужный диапазон данных в Excel и нажмем Ctrl+C.
  3. В документе 1С выделим первую пустую строку в табличной части и выберем в контекстном меню (правая кнопка мыши) команду Заполнить из буфера обмена или просто нажмем Ctrl+V.

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

Способ 4. Создание собственной обработки (советы программисту)

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

Пример кода для поиска номенклатуры и характеристики при загрузке:


// Функция поиска номенклатуры по артикулу
Функция НайтиТовар(ЗначениеПоиска)
    Товар = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", ЗначениеПоиска);
    Если Товар.Пустая() Тогда
        Товар = Справочники.Номенклатура.НайтиПоНаименованию(ЗначениеПоиска);
    КонецЕсли;
    Возврат Товар;
КонецФункции

// Поиск характеристики по владельцу и наименованию
Функция НайтиХарактеристику(Владелец, ИмяХарактеристики)
    Возврат Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(ИмяХарактеристики, Ложь, , Владелец);
КонецФункции

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

Особенности работы с характеристиками и сериями

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

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

Артикул Списание Характеристика Списание Артикул Приход Характеристика Приход Кол-во
00123 Красный, L 00124 Синий, L 5

Резюмируем: Для разовых задач по пересортице (до 250-500 позиций) проще всего использовать ввод через Пересчет товаров. Это гарантирует методологическую чистоту учета. Если же потребность в загрузке возникает ежедневно и данные приходят в специфическом формате, стоит потратить время на написание внешней обработки с использованием объекта ТабличныйДокумент для чтения файла Excel.

← На главную