При переходе на новую версию конфигурации 1С, например, с более старой 1С:Торговля и Склад 7.7 или Управление торговлей 10.3 на 1С:Управление торговлей 11 (УТ 11.4/11.5), пользователи часто сталкиваются с вопросами по поведению системы. Один из таких вопросов касается автоматического заполнения артикулов номенклатуры. Давайте вместе разберемся, почему это происходит и что с этим делать.
Начнем с того, что автоматическая нумерация артикулов в типовом функционале конфигурации 1С:Управление торговлей отсутствует. Это ключевой момент, который нам предстоит выяснить. Если вы наблюдаете такое поведение, значит, в вашей системе присутствует некий механизм, который его реализует.
Прежде всего, давайте четко разграничим два важных понятия, которые часто путают: Артикул и Код номенклатуры.
Код номенклатуры:
Номенклатура.Код присваивается автоматически при создании новой позиции.Кода присутствует.Артикул номенклатуры:
Артикула номенклатуре отсутствует. Поле Артикул изначально предназначено для ручного ввода.Важно: Не путайте эти два поля. Если вы сталкиваетесь с автоматическим заполнением, речь, скорее всего, идет именно об Артикуле, и это указывает на наличие нетиповых доработок.
Если в вашей системе 1С:УТ вы наблюдаете автоматическое заполнение поля Артикул при создании новой номенклатурной позиции, это практически всегда является результатом следующих факторов:
Сам по себе процесс перехода из старых версий 1С не добавляет функционал автоматической нумерации артикулов в новую базу, если он не был реализован как кастомная доработка в старой базе и не был специфическим образом перенесен или разработан заново в новой конфигурации.
Доработки или расширения, реализующие автоматическое заполнение артикулов, обычно предлагают гибкие настройки. Давайте рассмотрим, как это может быть реализовано:
При создании новой позиции номенклатуры система может проверять, пусто ли поле Артикул, и если да, то генерировать его. Например, это может быть реализовано в обработчике события ПриСозданииНаСервере или ПередЗаписью объекта Справочник.Номенклатура.
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ЭтоНовый() И ЗначениеЗаполнено(Артикул) = Ложь Тогда
// Здесь будет логика формирования нового артикула
Артикул = СформироватьНовыйАртикул();
КонецЕсли;
КонецПроцедуры
Разработчики могут предусмотреть регистр сведений, где хранятся правила формирования артикулов. Эти правила могут учитывать:
Функция СформироватьНовыйАртикул() из примера выше могла бы выглядеть так:
Функция СформироватьНовыйАртикул()
// Пример простейшей логики: получаем последний артикул и увеличиваем его
// В реальной системе это будет более сложная логика с шаблонами
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Артикул ПОДОБНО ""АР-%""
|УПОРЯДОЧИТЬ ПО
| Номенклатура.Артикул УБЫВ";
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
ПоследнийНомерТекст = СтрЗаменить(Результат.Артикул, "АР-", "");
Если СтрЧислоВхождений(ПоследнийНомерТекст, Символы.НС) = 0 Тогда // Проверяем, что это число
ПоследнийНомер = Число(ПоследнийНомерТекст);
НовыйНомер = ПоследнийНомер + 1;
Возврат "АР-" + Формат(НовыйНомер, "ЧЦ=5; ЧВН=; ЧНЛ=0"); // АР-00001
КонецЕсли;
КонецЕсли;
Возврат "АР-00001"; // Начальный артикул
КонецФункции
Доработки могут также включать проверку уникальности сгенерированного артикула, чтобы избежать дублирования.
Иногда такие решения предоставляют обработки для массового изменения артикулов для выбранных позиций номенклатуры.
Если вы столкнулись с автоматическим заполнением Артикула, и это нежелательное поведение или вы не понимаете его логику, предлагаем вам следующие шаги:
В первую очередь, необходимо определить, каким образом реализован этот функционал. Рассмотрите следующие варианты:
Артикул справочника Номенклатура в модулях объектов или формах. Особое внимание уделите обработчикам событий ПриСозданииНаСервере, ПередЗаписью, ПриЗаписи для объекта Справочник.Номенклатура.Если вы обнаружили, что автоматическое заполнение Артикула является результатом доработки, выполненной внешними специалистами или внутренними программистами, настоятельно рекомендуем обратиться к ним. Они смогут объяснить логику работы, настроить ее или отключить при необходимости. Они также смогут подсказать, почему этот функционал был реализован при переходе из старой базы.
Возможно, этот функционал был реализован для решения определенной задачи, которая была актуальна в старой системе или при переходе. Проанализируйте, нужен ли вам автоматический Артикул сейчас. Если нет, его можно отключить или изменить логику.
Подводя итог, помните: автоматическая нумерация поля Артикул в 1С:Управление торговлей является не типовой функцией, а реализуется посредством дополнительных средств и доработок. Выявление и анализ этих доработок поможет вам понять причину такого поведения и управлять им.