Почему не загружается количество при использовании загрузки из табличного документа в 1С:Розница 2.0?

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

При переносе данных из старых систем (например, 1С:Торговля и Склад 7.7) в современные конфигурации на платформе 1С 8.3, такие как «1С:Розница 2.0», специалисты часто сталкиваются с техническими сложностями. Одной из наиболее распространенных проблем является ситуация, когда при использовании стандартной обработки «Загрузка данных из табличного документа» номенклатура и цены успешно переносятся в документ, а колонка с количеством остается пустой, какие бы форматы чисел ни пробовал пользователь.

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

Причина проблемы: Связь количества и упаковок

Разберем ситуацию, с которой столкнулся автор темы. В конфигурации «1С:Розница 2.0» (и более поздних версиях) архитектура табличных частей документов поступления или оприходования сложнее, чем кажется на первый взгляд. Поле Количество зачастую является производным или тесно связанным с полем КоличествоУпаковок.

Проанализируем программную логику: когда мы работаем с документом вручную, при вводе количества программа автоматически подставляет единицу измерения (упаковку) и рассчитывает общее количество. Однако при программном заполнении через внешнюю обработку эта автоматика может не срабатывать, если данные передаются только в одно из полей. Если в настройках сопоставления обработки указано только поле Количество, а поле КоличествоУпаковок (или Упаковка) остается пустым, система может очищать данные при попытке записи объекта, так как нарушается логическая целостность данных.

Решение №1: Сопоставление дублирующих колонок

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

  1. В окне обработки «Загрузка данных из табличного документа» перейдем к настройке соответствия полей.
  2. Найдем в списке доступных полей Количество и укажем для него номер колонки из нашего файла Excel.
  3. Затем найдем поле Количество упаковок (или аналогичное, в зависимости от версии обработки) и укажем для него тот же самый номер колонки.
  4. Убедимся, что также заполнено поле Упаковка (или Единица измерения). Если в исходном файле нет единиц измерения, можно использовать режим «Установить значение» и выбрать базовую единицу измерения (например, «шт»).

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

Решение №2: Использование формул для очистки данных

Иногда проблема кроется не в сопоставлении полей, а в качестве самих данных. Рассмотрим ситуацию, когда в ячейках Excel содержатся невидимые символы или неверные разделители. Проанализируем типичный случай: число «1 000,00» может содержать неразрывный пробел (код символа 160), который 1С не распознает как число.

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


// Очистка текста ячейки от пробелов и неразрывных пробелов
ТекстДляОбработки = СтрЗаменить(ТекстЯчейки, Символы.НПП, ""); 
ТекстДляОбработки = СтрЗаменить(ТекстДляОбработки, " ", "");
// Замена запятой на точку для универсальности (если требуется)
ТекстДляОбработки = СтрЗаменить(ТекстДляОбработки, ",", ".");
// Результат загрузки
Результат = Число(ТекстДляОбработки);

Использование подобных конструкций в колонке «Выражение» гарантирует, что в поле Количество попадет именно число, а не строка, что критично для корректной работы бизнес-логики документа.

Решение №3: Проверка функциональных опций и единиц измерения

Посмотрим на проблему шире. В «1С:Розница» использование упаковок регулируется функциональной опцией. Перейдем в раздел «Администрирование» -> «Настройки номенклатуры». Если флаг «Упаковки номенклатуры» включен, программа всегда будет ожидать заполнения справочника упаковок.

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

  1. Сначала загрузить справочник Номенклатура, обязательно заполнив БазоваяЕдиницаИзмерения.
  2. Убедиться, что для товаров созданы записи в регистре или справочнике упаковок (если они используются).
  3. Только после этого приступать к загрузке табличной части документа.

Решение №4: Выбор правильного типа документа для ввода остатков

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

Для корректного переноса начальных остатков из 7.7 в «1С:Розница 2.0» правильнее использовать документ «Оприходование товаров». Рассмотрим преимущества этого подхода:

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

Резюме и практические советы

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

Важные моменты, которые мы выяснили:

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

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

← На главную