Как изменить счет забалансового учета (МЦ.04 на МЦ.05) в документе «Передача материалов в эксплуатацию» в 1С:БП 3.0?

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

В типовой конфигурации «1С:Бухгалтерия предприятия 3.0» (БП 3.0) при передаче материалов в эксплуатацию (например, спецодежды или инвентаря) программа автоматически формирует проводки по забалансовым счетам серии МЦ. По умолчанию для большинства материалов используется счет МЦ.04 (Инвентарь и хозяйственные принадлежности в эксплуатации). Однако возникают ситуации, когда для определенных категорий ТМЦ, таких как автомобильные шины, требуется использование счета МЦ.05 (Особое оборудование, переданное в эксплуатацию) или иного специализированного счета.

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

Способ 1. Использование стандартного функционала (без программирования)

Прежде чем приступать к написанию кода, проанализируем, как система определяет счет учета. В 1С:БП 3.0 счет МЦ не зашит в программный код жестко. Он подтягивается из справочника НазначенияИспользования. Этот справочник привязан к конкретной номенклатуре в табличной части документа ПередачаМатериаловВЭксплуатацию.

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

  1. Откроем документ Передача материалов в эксплуатацию.
  2. В табличной части (например, на закладке «Инвентарь и хозяйственные принадлежности») найдем колонку Назначение использования. Если она скрыта, ее можно включить через «Изменить форму».
  3. Создадим для конкретной номенклатуры (например, для шин) новый элемент в справочнике Назначения использования.
  4. В карточке этого элемента найдем поле Счет учета (забалансовый).
  5. Установим в этом поле значение МЦ.05 вместо стандартного МЦ.04.

При проведении документа система проанализирует выбранное НазначениеИспользования и автоматически сформирует проводку в дебет счета МЦ.05. Это самый правильный и безопасный метод, рекомендуемый фирмой «1С».

Способ 2. Реализация через подписку на событие

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

Разберем алгоритм создания подписки:

  1. В конфигураторе создадим новый объект ПодпискаНаСобытие.
  2. В качестве источника выберем РегистрБухгалтерииНаборЗаписей.Хозрасчетный.
  3. Событие установим как ПередЗаписью.
  4. Создадим обработчик в общем модуле (модуль должен быть серверным с установленным флагом «Вызов сервера»).

Проанализируем пример кода, который нужно разместить в обработчике:


Процедура ПриЗаписиХозрасчетныйПередЗаписью(Источник, Отказ, Замещение) Экспорт
    
    // Проверяем, что записи принадлежат интересующему нас документу
    Если ТипЗнч(Источник.Отбор.Регистратор.Значение) = Тип("ДокументСсылка.ПередачаМатериаловВЭксплуатацию") Тогда
        
        // Перебираем все проводки, которые сформировал документ
        Для Каждого Запись Из Источник Цикл
            
            // Нас интересует только дебет счета МЦ.04
            Если Запись.СчетДт = ПланыСчетов.Хозрасчетный.МЦ04 Тогда
                
                // Получаем номенклатуру из Субконто1 (обычно это Номенклатура)
                НоменклатураСсылка = Запись.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура];
                
                // Проверяем, входит ли номенклатура в группу "Шины"
                // Для этого можно использовать проверку родителя или доп. реквизит
                Если НоменклатураСсылка.Родитель.Наименование = "Шины" Тогда
                    
                    // Меняем счет на МЦ.05
                    Запись.СчетДт = ПланыСчетов.Хозрасчетный.МЦ05;
                    
                КонецЕсли;
                
            КонецЕсли;
            
        КонецЦикла;
        
    КонецЕсли;
    
КонецПроцедуры

Важное примечание: При смене счета программным способом необходимо убедиться, что состав субконто (аналитики) на счетах МЦ.04 и МЦ.05 совпадает. В БП 3.0 они идентичны (Номенклатура, Партия, Физ. лицо), поэтому проблем с потерей данных не возникнет.

Способ 3. Использование расширений (современный подход)

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

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


&После("ОбработкаПроведения")
Процедура Расш_ОбработкаПроведения(Отказ, РежимПроведения)
    
    // Получаем набор записей регистра бухгалтерии из текущего объекта
    Проводки = ЭтотОбъект.Движения.Хозрасчетный;
    
    // Если проводки еще не прочитаны, прочитаем их
    Если Проводки.Количество() = 0 Тогда
        Проводки.Прочитать();
    КонецЕсли;
    
    Модифицировано = Ложь;
    
    Для Каждого Проводка Из Проводки Цикл
        // Проверяем условие для шин
        Если Проводка.СчетДт = ПланыСчетов.Хозрасчетный.МЦ04 
           И Проводка.СубконтоДт.Номенклатура.Наименование ПОДОБНО "%Шина%" Тогда
            
            Проводка.СчетДт = ПланыСчетов.Хозрасчетный.МЦ05;
            Модифицировано = Истина;
            
        КонецЕсли;
    КонецЦикла;
    
    // Если были изменения, записываем набор
    Если Модифицировано Тогда
        Проводки.Записать();
    КонецЕсли;
    
КонецПроцедуры

Как правильно идентифицировать ТМЦ в коде?

При написании кода крайне не рекомендуется завязываться на строковые наименования номенклатуры (например, "Шина"), так как пользователи могут изменить название товара. Рассмотрим более надежные способы идентификации:

Нюансы налогового учета

Посмотрим на ситуацию с точки зрения налогового учета (НУ). Забалансовые счета серии МЦ предназначены для оперативного контроля имущества, стоимость которого уже списана в расходы в бухгалтерском и налоговом учете. Следовательно, счета МЦ обычно не имеют признака налогового учета. Однако всегда проверяйте в Плане счетов, не установлены ли для выбранного вами счета специфические признаки, требующие заполнения ресурсов СуммаНУ_Дт или СуммаНУ_Кт. В типовой БП 3.0 для счетов МЦ.04 и МЦ.05 это не требуется, так как учет ведется только в количественном и суммовом выражении по БУ на забалансе.

Подведем итог: если вам нужно разовое или простое решение — используйте справочник Назначения использования. Если же требуется масштабная автоматизация для большого объема номенклатуры — используйте Подписки на события или Расширения, следуя приведенным выше примерам кода.

← На главную