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

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

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

Вариант 1. Использование дополнительных реквизитов и динамическое наименование

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

Разберем по шагам реализацию этого метода:

  1. Настройка реквизитов: В разделе "Администрирование" — "Общие настройки" включим использование дополнительных реквизитов. Добавим для справочника Номенклатура поля: "Дата партии", "Номер партии" и "Производитель".
  2. Автоматизация наименования: Чтобы пользователям было удобно выбирать нужную позицию в документах, мы реализуем программное формирование наименования через расширение. При записи карточки номенклатуры система должна объединять базовое название и данные из доп. реквизитов.

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


&После("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ)
    // Формируем наименование на основе доп. реквизитов
    ТекстПартии = "";
    Для Каждого Стр Из ЭтотОбъект.ДополнительныеРеквизиты Цикл
        Если Стр.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("НомерПартии") Тогда
            ТекстПартии = ТекстПартии + " №" + СокрЛП(Стр.Значение);
        КонецЕсли;
        Если Стр.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ДатаПартии") Тогда
            ТекстПартии = ТекстПартии + " от " + Формат(Стр.Значение, "ДФ=dd.MM.yyyy");
        КонецЕсли;
    КонецЦикла;
    
    Если ЗначениеЗаполнено(ТекстПартии) Тогда
        ЭтотОбъект.Наименование = ЭтотОбъект.НаименованиеПолное + ТекстПартии;
    КонецЕсли;
КонецПроцедуры

Преимущества: Полная совместимость с типовыми отчетами (ОСВ по счету 002 покажет все остатки), отсутствие необходимости менять план счетов.

Риски: Быстрое разрастание справочника Номенклатура. Если партий много, поиск товара может стать затруднительным.

Вариант 2. Создание собственного регистра накопления

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

Мы создадим новый объект метаданных — Регистр накопления ПартииНаОтветхранении (вид: Остатки). В качестве измерений укажем:

В самом объекте "Партия" или в измерениях регистра можно напрямую хранить производителя и даты. Основная сложность здесь заключается в том, что нам придется "подписаться" на проведение всех документов, затрагивающих счет 002, чтобы они делали движения по нашему регистру.

Проанализируем пример логики проведения в расширении:


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

Важно: При таком подходе необходимо разработать собственный отчет (на базе СКД), так как стандартная ОСВ ничего не будет знать о ваших разрезах в регистре накопления.

Вариант 3. Модификация плана счетов (Добавление Субконто)

Рассмотрим вариант, который кажется наиболее логичным для бухгалтера — изменение настроек счета 002. В БП 3.0 через расширение можно добавить новые виды субконто на существующие счета.

Выясним причину, почему это не всегда удобно: по умолчанию счет 002 имеет субконто Контрагенты и Номенклатура. Мы можем добавить третье субконто с типом Документ расчетов с контрагентом. Этот документ в системе 1С может выступать в роли "Партии".

Как это работает:

  1. В расширении открываем План счетов Хозрасчетный.
  2. Находим счет 002 и добавляем вид субконто ДокументыРасчетовСКонтрагентами.
  3. В документах поступления (с операцией "прием на хранение") необходимо будет заполнять это субконто ссылкой на сам этот документ.

Особенности: Номер партии, дату и производителя в этом случае мы будем хранить в дополнительных сведениях документа поступления. Когда вы формируете ОСВ по счету 002, вы увидите остатки в разрезе конкретных приходных накладных. Чтобы узнать производителя, достаточно будет открыть документ-партию из отчета.

Вариант 4. Использование характеристик (Адаптация)

Хотя в типовой БП 3.0 полноценного механизма характеристик (как в УТ или ERP) нет, мы можем попытаться его эмулировать. Однако, как отмечают эксперты, это самый трудозатратный путь. Он требует изменения структуры почти всех торговых документов и регистров бухгалтерии. Мы не рекомендуем этот путь для БП 3.0, так как он крайне затруднит последующие обновления конфигурации.

Итоги и рекомендации

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

Помните, что при использовании любого метода, связанного с расширениями, важно следить за корректностью заполнения данных в документах списания. Для забалансовых счетов 1С не всегда выполняет автоматический подбор партий по ФИФО, поэтому контроль остатков в разрезе партий (субконто или измерений регистра) придется дописывать программно в модуле проведения.

← На главную