Как настроить автоматическое заполнение номенклатурной группы в документах реализации в 1С:Бухгалтерия 3.0?

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

При ведении учета в программе 1С:Бухгалтерия 8 (редакция 3.0) бухгалтеры часто сталкиваются с необходимостью разделения доходов и расходов по различным видам деятельности. Для этих целей в программе используется субконто Номенклатурные группы. При оформлении документов Реализация товаров и услуг (РТиУ) ручной выбор номенклатурной группы для каждой строки табличной части может занимать огромное количество времени, особенно при больших объемах номенклатуры.

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

Архитектурная логика 1С: почему номенклатурная группа не привязана к счету учета

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

Проанализируем эту взаимосвязь подробнее:

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

Стандартное решение: правильная настройка заполнения реквизитов

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

Рассмотрим ситуацию на практическом примере:

  1. У нас есть вид деятельности «Услуги», который должен отражаться по счету доходов 90.01.1 с номенклатурной группой «Консультационные услуги».
  2. У нас есть вид деятельности «Продажа товаров» (например, Автомобилей), который должен отражаться по счету учета 41.01 и счету доходов 90.01.1 с номенклатурной группой «Продажа».

Чтобы система работала автоматически, мы должны разделить справочник Номенклатура на две соответствующие папки (группы): «Услуги» и «Автомобили». Для каждой из этих папок необходимо настроить автоматическую подстановку счетов учета в регистре Счета учета номенклатуры. После этого в каждой карточке номенклатуры внутри этих папок должна быть указана своя номенклатурная группа.

Инструкция по массовому заполнению номенклатурных групп

Часто пользователи отказываются от заполнения номенклатурных групп в карточках товаров, ссылаясь на то, что «товара слишком много и заносить группу в каждую карточку вручную нереально». В 1С:Бухгалтерии эта рутинная задача решается за пару минут с помощью стандартного инструмента Групповое изменение реквизитов.

Разберем по шагам, как быстро прописать номенклатурные группы для тысяч товаров одновременно:

  1. Перейдем в раздел Администрирование, далее выберем пункт Обслуживание.
  2. В открывшемся окне развернем подраздел Корректировка данных и перейдем по ссылке Групповое изменение реквизитов.
  3. В поле Выбирать элементы укажем справочник Номенклатура.
  4. Нам необходимо изменить реквизиты не у всей номенклатуры в базе, а только у определенной категории. Для этого нажмем на ссылку Все элементы в блоке отбора.
  5. В появившемся окне настройки условий добавим новый элемент отбора: в колонке «Поле» выберем Ссылка.Родитель (или просто В группе), в колонке «Вид сравнения» укажем В группе, а в значении выберем нужную папку (например, папка «Автомобили»). Нажмем ОК.
  6. В основной табличной части обработки найдем строку с реквизитом Номенклатурная группа. Установим напротив нее флаг активности.
  7. В колонке «Новое значение» выберем целевую номенклатурную группу (например, «Продажа»).
  8. Нажмем кнопку Изменить реквизиты в нижней части формы. Программа за несколько секунд обработает все карточки номенклатуры, находящиеся в выбранной папке, и установит для них нужную группу.
  9. Повторим аналогичную процедуру для папки «Услуги», выбрав для нее номенклатурную группу «Консультационные услуги».

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

Решение для разработчиков: автоматическое заполнение при создании новых элементов

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

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

Пример кода для реализации этой логики в модуле расширения:


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

Такой подход гарантирует, что при создании любого нового автомобиля или новой услуги соответствующее субконто всегда будет заполнено корректно, а бухгалтерские проводки по счетам доходов и расходов (субсчета счета 90) сформируются без аналитических перекосов.

Важные нюансы работы с номенклатурными группами в 1С

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

← На главную