Почему единица измерения не проставляется автоматически при создании новой номенклатуры в 1С:Розница?

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

При создании нового элемента номенклатуры в 1С:Розница пользователи часто сталкиваются с ситуацией, когда, несмотря на заданные настройки, единица измерения не заполняется автоматически. Давайте вместе разберем эту проблему и найдем эффективные способы её решения.

Где настраивается единица измерения по умолчанию?

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

Рассмотрим по шагам, как проверить и настроить эти параметры:

  1. Перейдите в раздел НСИ (Нормативно-справочная информация).
  2. Выберите пункт Номенклатура.
  3. Откройте справочник Виды номенклатуры.
  4. Откройте карточку нужного вам вида номенклатуры (или создайте новый, если это необходимо).
  5. В карточке вида номенклатуры найдите вкладку Значения по умолчанию.
  6. На этой вкладке установите желаемую Единицу измерения. Также здесь можно настроить другие реквизиты, такие как Ставка НДС, которые будут автоматически подставляться при создании новой номенклатуры данного вида.

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

Выявление «типовой недоработки» в 1С:Розница 2.2

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

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

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

Как решить проблему с незаполнением единицы измерения?

Мы предлагаем несколько вариантов решения, от простых пользовательских до более сложных, требующих вмешательства программиста.

Вариант 1: Ручной перевыбор вида номенклатуры

Это самый простой и доступный способ, не требующий изменений в конфигурации. Если вы столкнулись с проблемой незаполнения единицы измерения, выполните следующие шаги:

  1. Откройте карточку нового элемента номенклатуры.
  2. Убедитесь, что поле Вид номенклатуры заполнено (даже если оно заполнилось автоматически).
  3. Нажмите на кнопку выбора (три точки) рядом с полем Вид номенклатуры или очистите его и выберите тот же самый вид номенклатуры заново из списка.
  4. После этого единица измерения и другие значения по умолчанию должны заполниться автоматически.

Этот метод является временным решением, но он позволяет продолжить работу без программных доработок.

Вариант 2: Программная доработка конфигурации (для разработчиков)

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

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

Рассмотрим гипотетический пример кода, который может быть добавлен в расширение. Этот код можно разместить в обработчике события формы нового элемента номенклатуры, например, ПриСозданииНаСервере или ПриЗаполнении, или же создать подписку на событие при записи нового элемента.


// В модуле формы элемента справочника "Номенклатура" или в расширении
// В обработчике события формы ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Проверяем, если вид номенклатуры уже установлен
    Если ЗначениеЗаполнено(Объект.ВидНоменклатуры) Тогда
        // Получаем объект вида номенклатуры для доступа к его реквизитам
        Попытка
            ВидНоменклатурыОбъект = Объект.ВидНоменклатуры.ПолучитьОбъект();
            Если ВидНоменклатурыОбъект <> Неопределено Тогда
                // Проверяем, задана ли единица измерения по умолчанию в виде номенклатуры
                // и что она не пустая
                Если ЗначениеЗаполнено(ВидНоменклатурыОбъект.ЕдиницаИзмерения) Тогда
                    // Устанавливаем единицу измерения для нового элемента номенклатуры
                    Объект.ЕдиницаИзмерения = ВидНоменклатурыОбъект.ЕдиницаИзмерения;
                КонецЕсли;

                // Дополнительно можно заполнить другие реквизиты,
                // например, ставку НДС, если она задана в виде номенклатуры
                // и не заполнена в новом элементе.
                Если ЗначениеЗаполнено(ВидНоменклатурыОбъект.СтавкаНДС)
                    И НЕ ЗначениеЗаполнено(Объект.СтавкаНДС) Тогда
                    Объект.СтавкаНДС = ВидНоменклатурыОбъект.СтавкаНДС;
                КонецЕсли;

                // Если есть другие реквизиты, которые должны заполняться по умолчанию,
                // их также можно добавить здесь по аналогии.
            КонецЕсли;
        Исключение
            // Обработка ошибок, если не удалось получить объект вида номенклатуры
            ЗаписатьСообщениеВЖурналРегистрации("Ошибка при заполнении реквизитов по умолчанию для номенклатуры: " + ОписаниеОшибки(),
                                                УровеньВажностиЖурналаСобытий.Ошибка);
        КонецПопытки;
    КонецЕсли;
КонецПроцедуры

В этом примере мы используем событие формы ПриСозданииНаСервере. Мы проверяем, установлен ли вид номенклатуры, и если да, то получаем его объект, чтобы получить доступ к его значениям по умолчанию. Затем мы программно присваиваем ЕдиницуИзмерения (и, при необходимости, другие реквизиты, такие как СтавкаНДС) новому элементу номенклатуры. Этот подход гарантирует автоматическое заполнение без необходимости ручного перевыбора.

Вариант 3: Обращение в службу поддержки 1С

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

Дополнительные аспекты работы с единицами измерения

Единица хранения и множественные единицы

Важно понимать, что для каждой позиции номенклатуры в 1С обязательным реквизитом является Единица хранения. Именно в ней учитываются остатки на складах. В конфигурациях 1С, таких как "Розница" и "Управление торговлей", существует мощный механизм работы с несколькими единицами измерения.

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

Особенности редактирования импортированной номенклатуры

В сообщении 12 пользователь упоминает о проблемах с редактированием единицы измерения и ставки НДС для импортированной номенклатуры. Это распространенная ситуация, которая может быть вызвана несколькими причинами:

  1. Наличие движений по товару: Если по номенклатуре уже были какие-либо движения (приходы, расходы, продажи), система часто не позволяет изменить базовую единицу хранения напрямую, чтобы избежать некорректного учета остатков.
  2. Особенности импорта: Иногда при импорте данные могут быть заблокированы для редактирования или не иметь необходимых связей.
  3. Права пользователя: Убедитесь, что у пользователя, выполняющего редактирование, есть полные права на изменение справочника "Номенклатура".
  4. Опции редактирования: В некоторых конфигурациях (например, 1С:УНФ) для редактирования определенных полей в карточке номенклатуры может потребоваться включить опцию Разрешить редактирование реквизитов (обычно находится в меню "Еще" или "Все действия").

Если изменение базовой единицы хранения невозможно из-за уже имеющихся движений, мы можем рассмотреть следующие подходы:

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

Контроль заполнения и обязательные реквизиты

Помимо единицы измерения, в "Видах номенклатуры" мы также можем настроить другие важные параметры, которые влияют на создание новых элементов:

  1. Какие реквизиты должны отображаться при создании нового элемента.
  2. Какие поля являются обязательными для заполнения (система будет требовать их ввода).
  3. Для каких реквизитов необходимо контролировать уникальность (например, артикул).

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

Важность обновлений конфигурации

Хотя пользователь в обсуждении обновил конфигурацию "Розница" до актуального релиза 2.2.9.19, проблема с автоматическим заполнением единицы измерения все равно сохранилась. Это подчеркивает, что некоторые особенности или "недоработки" могут присутствовать в разных версиях конфигурации и не всегда исправляются в следующих обновлениях. Тем не менее, всегда рекомендуется использовать самую актуальную версию конфигурации, чтобы иметь доступ ко всем исправлениям и новым функциям.

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

← На главную