В процессе работы с программой «1С:Управление торговлей 11.4» пользователи часто сталкиваются с ситуацией, когда при проведении складских или торговых документов (например, таких как Расходный ордер на товары или Реализация товаров и услуг) система блокирует операцию. Ошибка звучит следующим образом: «Политика учета серий предусматривает, что количество по любой серии этого товара всегда будет равно 1». При этом в настройках номенклатуры может быть уже установлен партионный учет, а не экземплярный.
В этой статье мы подробно разберем причины возникновения данной ошибки, изучим внутренние механизмы системы и рассмотрим несколько способов решения проблемы — от ручного исправления до автоматизированных методов.
Рассмотрим первопричину. В 1С:УТ 11.4 политика учета серий может быть настроена по-разному. Существует два принципиально разных подхода:
Ошибка возникает тогда, когда в документе «застряли» старые настройки. Если раньше для Вида номенклатуры была установлена политика экземплярного учета, а затем ее изменили на партионную, система в уже созданных документах продолжает применять старые правила проверки.
Проанализируем ситуацию с технической стороны. В табличных частях документов УТ 11 существует скрытый служебный реквизит — СтатусУказанияСерий. Это числовое поле, которое не отображается на форме, но именно оно управляет логикой проведения.
Когда мы выбираем товар в строку документа, срабатывает программный код, который обращается к текущим настройкам Вида номенклатуры и Склада. На основе этих данных он вычисляет числовой код и записывает его в СтатусУказанияСерий.
Важный момент: Если вы изменили настройки политики в справочнике, это изменение автоматически не «пробросится» в старые документы. Статус в строках документов останется прежним, указывая системе, что здесь по-прежнему должен действовать экземплярный учет.
Это самый простой и быстрый способ, если документов немного. Посмотрим, как это сделать правильно:
Расходный ордер на товары).Как показывает практика, простого нажатия кнопки «Провести» недостаточно, так как система не пересчитывает СтатусУказанияСерий при каждом проведении из соображений производительности. Именно перевыбор инициирует обновление данных.
Выясним, что делать, если документов сотни. В этом случае поможет стандартная обработка Групповое изменение реквизитов. Однако будьте осторожны: это требует понимания структуры данных.
Проанализируем шаги:
Расходный ордер на товары (Товары) или другой нужный документ.Статус указания серий.Совет: Чтобы узнать правильный код статуса для вашей текущей настройки, создайте новый «чистый» документ, добавьте туда этот товар и посмотрите через «Изменить состав строк» или программно, какое число записалось в это поле.
Для разработчиков рассмотрим более надежный программный метод. Вместо ручной установки кодов лучше вызвать типовую процедуру системы, которая сама определит нужный статус согласно текущим настройкам.
В контексте документа или внешней обработки можно использовать следующий подход:
// Пример вызова типового механизма обновления статусов
Для Каждого СтрокаТовара Из Объект.Товары Цикл
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("Номенклатура", СтрокаТовара.Номенклатура);
СтруктураПараметров.Вставить("Склад", Объект.Склад);
// Добавьте другие необходимые параметры согласно контексту
НоменклатураСервер.ЗаполнитьСтатусУказанияСерий(СтрокаТовара, Объект);
КонецЦикла;
Этот метод гарантирует, что СтатусУказанияСерий будет заполнен корректно с учетом и Вида номенклатуры, и специфики конкретного Склада.
Рассмотрим ситуацию, упомянутую в обсуждении: разницу между упаковкой и единицей измерения. В УТ 11.4 серии всегда привязываются к количеству в базовых единицах хранения.
Если в политике учета серий указано, что количество по серии всегда равно 1, а вы пытаетесь продать 1 «Коробку» (в которой 10 штук), система увидит количество 10. Поскольку 10 больше 1, возникнет ошибка. Проверьте, чтобы при экземплярном учете вы не использовали упаковки, содержащие более одной базовой единицы, либо смените политику на «Учет партий».
Посмотрим на еще один важный аспект. В 1С:УТ 11 настройки серий могут переопределяться для каждого склада отдельно. Проверьте:
Резюмируем: Ошибка «Количество равно 1» чаще всего является следствием того, что документ был создан до изменения настроек учета. Решение заключается в обновлении скрытого реквизита СтатусУказанияСерий путем перевыбора номенклатуры или использования специализированных обработок. Помните, что система кэширует правила проверки, и в некоторых случаях после изменения глобальных настроек стоит перезапустить сеанс работы.