В практике автоматизации нередко возникает требование руководства или складской службы организовать учет номенклатуры в разрезе серий, сроков годности или серийных номеров непосредственно в программе 1С:Бухгалтерия предприятия 3.0. Однако при попытке включить такую опцию в типовых настройках пользователи сталкиваются с тем, что подобный функционал в конфигурации не предусмотрен. Разберем архитектурные причины этого ограничения, типовые смежные возможности программы, а также все практические способы реализации серийного учета — от организационных методов без программирования до архитектуры собственного расширения и внедрения специализированных учетных систем.
Проанализируем структуру конфигурации и назначение программы. 1С:Бухгалтерия предприятия предназначена для ведения регламентированного (бухгалтерского и налогового) учета и сдачи отчетности. Для бухгалтерского учета движение ТМЦ необходимо оценивать в суммовом и количественном выражении, но детальный оперативный разрез по серийным номерам и срокам годности для формирования бухгалтерских проводок избыточен.
Основными техническими и методологическими препятствиями для серийного учета в БП 3.0 являются:
08, 10, 41, 43) уже занят весь стандартный максимум из трех субконто: Номенклатура, Склады (места хранения) и Партии (документы поступления при способе оценки ФИФО). Добавление четвертого субконто «Серии» не предусмотрено типовой логикой проведения и отчетов.Корректировка стоимости номенклатуры при закрытии месяца рассчитывает средневзвешенную или партионную себестоимость списания исключительно в разрезе номенклатуры, складов и документов оприходования. Любой учет по сериям в рамках регламентированного учета в БП 3.0 может носить только справочно-количественный характер, так как расчет себестоимости по сериям в типовой алгоритм не заложен.Прежде чем приступать к доработкам или смене архитектуры, выясним точную потребность бизнеса. Если под «сериями» понимается обязательный учет маркированных или подконтрольных государству товаров, в БП 3.0 уже есть готовые механизмы, которые не требуют изменения конфигурации:
Если специфика учета укладывается в одну из этих систем, достаточно включить соответствующий блок в меню Главное → Функциональность → Маркировка.
Рассмотрим простые способы, применяемые на небольших объемах номенклатуры, когда необходимо отслеживать серии без внесения изменений в конфигурацию.
Товар А (сер. 1024), Товар А (сер. 1025). При закрытии партии и нулевом остатке отработанная номенклатура переносится в архивную папку. Способ позволяет видеть остатки стандартными отчетами (оборотно-сальдовая ведомость, карточка счета), но приводит к разрастанию справочника.Наиболее правильным с точки зрения архитектуры 1С является разделение оперативного и бухгалтерского контуров. Серийный учет, контроль сроков годности, адресное хранение и FEFO-списание ведутся в специализированной конфигурации, а в 1С:Бухгалтерию 3.0 передаются готовые документы в свернутом виде.
Разберем наиболее распространенные связки:
EnterpriseData выгружает документы в БП 3.0 без серийной детализации, формируя корректные бухгалтерские проводки.Если приобретение и поддержка второй конфигурации нецелесообразны, а серийный учет требуется вести исключительно в количественном разрезе, задачу можно решить доработкой БП 3.0 в виде расширения конфигурации (без снятия с типовой поддержки).
Разберем по шагам архитектуру такого решения:
Номенклатура объект с реквизитами ГоденДо (Дата), НомерСерии (Строка), Производитель.Товары целевых документов (ПоступлениеТоваровУслуг, РеализацияТоваровУслуг, ПеремещениеТоваров, СписаниеТоваров, ОприходованиеТоваров, ВозвратТоваровПоставщику, ВозвратТоваровОтПокупателя) и добавляем реквизит Серия со ссылкой на созданный справочник.Организация, Склад, Номенклатура, Серия и ресурсом: Количество.ОбработкаПроведения для документов движения товаров.Посмотрим на пример логики формирования движений по регистру и контроля остатков при реализации товаров в обработчике проведения:
// В обработчике подписки на проведение документа РеализацияТоваровУслуг
Движения = ДокументОбъект.Движения;
ДвиженияСерии = Движения.ОстаткиНоменклатурыПоСериям;
ДвиженияСерии.Записывать = Истина;
Для Каждого СтрТовар Из ДокументОбъект.Товары Цикл
Если ЗначениеЗаполнено(СтрТовар.Серия) Тогда
Движение = ДвиженияСерии.ДобавитьРасход();
Движение.Период = ДокументОбъект.Дата;
Движение.Организация = ДокументОбъект.Организация;
Движение.Склад = ДокументОбъект.Склад;
Движение.Номенклатура = СтрТовар.Номенклатура;
Движение.Серия = СтрТовар.Серия;
Движение.Количество = СтрТовар.Количество;
КонецЕсли;
КонецЦикла;
При списании товаров обязательным этапом является контроль отрицательных остатков с помощью запроса к виртуальной таблице РегистрНакопления.ОстаткиНоменклатурыПоСериям.Остатки. В случае нехватки конкретной серии проведение документа отменяется с выводом понятного сообщения пользователю.
Важное предостережение: При ведении кастомного серийного учета в БП 3.0 любые ручные операции (документ Операция (бухгалтерский и налоговый учет)) или корректировки счетов (например, перемещение со счета 41.01 на 41.05) не затронут созданный регистр остатков по сериям. Пользователям потребуется строго соблюдать регламент и отражать складские события только через типовые складские документы.