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