Как исправить ошибку «Количество по любой серии этого товара всегда будет равно 1» в 1С:УТ 11.4?

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

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

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

Почему возникает эта ошибка?

Рассмотрим первопричину. В 1С:УТ 11.4 политика учета серий может быть настроена по-разному. Существует два принципиально разных подхода:

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

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

Разберем скрытый механизм: Статус указания серий

Проанализируем ситуацию с технической стороны. В табличных частях документов УТ 11 существует скрытый служебный реквизит — СтатусУказанияСерий. Это числовое поле, которое не отображается на форме, но именно оно управляет логикой проведения.

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

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

Способ 1: Ручной перевыбор номенклатуры

Это самый простой и быстрый способ, если документов немного. Посмотрим, как это сделать правильно:

  1. Откройте проблемный документ (например, Расходный ордер на товары).
  2. Перейдите на закладку «Товары».
  3. Нажмите на поле с наименованием номенклатуры.
  4. Перевыберите ту же самую позицию из справочника.
  5. После этого статус серии в строке обновится автоматически.
  6. Проведите документ.

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

Способ 2: Групповое исправление реквизитов

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

Проанализируем шаги:

  1. Зайдите в раздел «НСИ и администрирование» — «Обслуживание» — «Корректировка данных» — «Групповое изменение реквизитов».
  2. В поле «Выбирать элементы типа» выберите Расходный ордер на товары (Товары) или другой нужный документ.
  3. Настройте фильтр по конкретной номенклатуре или периоду.
  4. Найдите в списке реквизитов Статус указания серий.
  5. Установите необходимое значение. Значение зависит от вашей политики (например, 0 — серии не используются, другие коды соответствуют партионному учету).

Совет: Чтобы узнать правильный код статуса для вашей текущей настройки, создайте новый «чистый» документ, добавьте туда этот товар и посмотрите через «Изменить состав строк» или программно, какое число записалось в это поле.

Способ 3: Программное обновление через серверный вызов

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

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


// Пример вызова типового механизма обновления статусов
Для Каждого СтрокаТовара Из Объект.Товары Цикл
    СтруктураПараметров = Новый Структура;
    СтруктураПараметров.Вставить("Номенклатура", СтрокаТовара.Номенклатура);
    СтруктураПараметров.Вставить("Склад", Объект.Склад);
    // Добавьте другие необходимые параметры согласно контексту
    
    НоменклатураСервер.ЗаполнитьСтатусУказанияСерий(СтрокаТовара, Объект);
КонецЦикла;

Этот метод гарантирует, что СтатусУказанияСерий будет заполнен корректно с учетом и Вида номенклатуры, и специфики конкретного Склада.

Нюансы использования упаковок

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

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

Проверка настроек склада

Посмотрим на еще один важный аспект. В 1С:УТ 11 настройки серий могут переопределяться для каждого склада отдельно. Проверьте:

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

← На главную