Как загрузить цены из Excel в документ «Установка цен номенклатуры» и исправить ошибку открытия документа

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

Процесс автоматизации загрузки прайс-листов в 1С — одна из самых частых задач, с которыми сталкиваются как пользователи, так и разработчики. Для конфигураций, работающих на обычных формах (например, «Управление торговлей 10.3»), основным инструментом является универсальная обработка ЗагрузкаДанныхИзТабличногоДокумента.epf. Однако при её использовании часто возникает критическая проблема: данные вроде бы загружаются, но сам документ «Установка цен номенклатуры» отказывается открываться, выдавая ошибку.

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

Разбор причины ошибки: почему документ не открывается после загрузки

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

Когда мы используем универсальную обработку, мы чаще всего заполняем только табличную часть Товары. Если в этой таблице не заполнено поле ТипЦен или оно не совпадает с тем, что указано в шапке документа или во второй табличной части ТипыЦен, программный код формы 1С при открытии не может сопоставить данные и «падает». Выясним, как этого избежать.

Пошаговая настройка обработки для корректной загрузки

Для успешного импорта данных выполним следующие шаги в настройках обработки ЗагрузкаДанныхИзТабличногоДокумента.epf:

  1. Выбор режима загрузки: Устанавливаем загрузку в «Табличную часть» и выбираем документ Установка цен номенклатуры, табличная часть Товары.
  2. Настройка колонки «Цена»: В настройках для этого поля необходимо выбрать режим Искать. Это означает, что значение будет браться непосредственно из соответствующей колонки вашего файла Excel.
  3. Настройка колонки «Тип цен»: Это критически важный момент. Поле ТипЦен в каждой строке табличной части должно быть заполнено. Рассмотрим, как это сделать программно в настройках обработки:
    • Устанавливаем режим загрузки Устанавливать.
    • В поле Значение по умолчанию выбираем нужный тип цен из справочника (например, «Оптовая»).
  4. Настройка валюты: Аналогично типу цен, реквизит Валюта обязателен. Если в Excel нет отдельной колонки с валютой, устанавливаем режим Устанавливать и выбираем «руб.» в значении по умолчанию.
  5. Заполнение табличной части «Типы цен»: Помним, что в самом документе должна быть заполнена не только таблица товаров, но и таблица типов цен. Если ваша конфигурация не заполняет её автоматически при записи, документ может продолжать выдавать ошибки.

Загрузка нескольких типов цен из одной таблицы Excel

Часто прайс-лист содержит несколько колонок с ценами: «Закупочная», «Оптовая», «Розничная». Стандартная обработка с диска ИТС читает файл построчно и не умеет за один проход распределять разные колонки одной строки Excel в разные строки табличной части 1С. Рассмотрим варианты решения этой задачи.

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

Вариант 2: Многократный проход.
Разберем алгоритм действий:

  1. Настраиваем обработку на загрузку «Закупочных» цен (колонка А — номенклатура, колонка B — цена). Указываем в «Значении по умолчанию» тип цен «Закупочная».
  2. Загружаем данные в документ.
  3. Не закрывая документ и обработку, меняем настройки: теперь для цены указываем колонку C (где в Excel «Оптовые» цены), а в «Значении по умолчанию» меняем тип цен на «Оптовая».
  4. Повторяем загрузку в тот же самый документ. Обработка просто добавит новые строки.

Особенности подготовки данных перед импортом

Посмотрим на ситуацию со стороны данных. Часто загрузка прерывается из-за невидимых дефектов в файле Excel. Разберем основные проблемы:

  1. Неразрывные пробелы: Часто числа в Excel выглядят как «1 500», но пробел между ними — это спецсимвол с кодом 160. 1С не сможет преобразовать такую строку в число. Рекомендуется перед загрузкой выделить колонку с ценой в Excel и через «Найти и заменить» удалить все пробелы.
  2. Поиск номенклатуры: Проанализируем, по какому полю лучше сопоставлять товары. Самый надежный вариант — Артикул или Код. Если сопоставление идет по Наименованию, убедитесь, что в 1С и в Excel они совпадают до символа, включая лишние пробелы в конце строки.
  3. Единицы измерения: Проверьте, чтобы цена в Excel соответствовала единице хранения остатков в 1С. Если в базе товар ведется в «шт», а в прайсе цена за «упаковку», возникнет серьезная ошибка в учете цен.

Современные альтернативы для новых версий 1С (УТ 11, ERP, КА)

Если вы работаете в современных конфигурациях на платформе 8.3 с управляемыми формами, разберем более простой встроенный метод. В документе Установка цен номенклатуры предусмотрена кнопка Загрузить из внешнего файла.

Этот механизм работает гораздо эффективнее:

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

← На главную