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