Разберем ситуацию, с которой часто сталкиваются разработчики и аналитики 1С при проектировании складских и бухгалтерских отчетов. Задача звучит следующим образом: необходимо добавить отчет по регистру (например, ТоварыНаСкладах), который позволяет видеть остатки товара организаций в подразделениях в разрезе документов движения, а также имеет возможность отбирать те документы, после которых в подразделении образовался минусовой остаток. Проанализируем, как правильно трактовать такую задачу, выявим подводные камни и посмотрим, как методически верно реализовать подобный инструмент.
Рассмотрим подробнее, почему вообще возникает потребность разворачивать остатки до документов движения. Минус на складе может быть временным, так называемым «плавающим». Если мы посмотрим остатки стандартными ведомостями только на конец месяца, мы можем не увидеть минусов вообще. Например, товар мог уйти в минус 15-го числа из-за преждевременной реализации, а 20-го числа пришло поступление, которое этот минус перекрыло.
Именно поэтому формулировка задачи требует выводить остатки в разрезе документов движения. Это единственный надежный способ поймать внутрипериодные разрывы хронологии, когда расход отражен до фактического поступления номенклатуры.
Проанализируем спорный пункт задачи: «отбирать те документы, после которых в подразделении минусовой остаток». Как мы можем это визуализировать и обработать?
В нормализованном случае, чтобы отчет не был бесполезным списком последних документов, которым «не хватило» остатка, нам надо получить все движения по проблемной связке «Подразделение - Номенклатура» и к каждому движению приделать дату проведения и пользователя, создавшего документ. Так мы создадим полноценный инструмент для разбора полетов.
Выясним причину, по которой документ уводит остаток в минус. Чаще всего на практике это сводится к поиску первого документа в хронологической цепочке. Разберем по шагам основные причины возникновения таких ситуаций:
РеализацияТоваровУслуг или ОтчетПроизводстваЗаСмену) и прихода выписаны одним числом, но приход по времени (в секундах) стоит позже расхода.При разработке подобного отчета посмотрим на проблему шире. Отрицательный остаток бывает не только количественным. В 1С часто встречаются ситуации, которые тоже требуют оперативного разбора бухгалтером:
Такие суммовые «хвосты» критически ломают расчет себестоимости при выполнении обработки ЗакрытиеМесяца. Отчет, который покажет не только количество, но и суммы, будет гораздо ценнее для бизнеса.
Напомним, что в современных конфигурациях (таких как 1С:Управление торговлей, 1С:ERP) уже встроен типовой отчет «Контроль отрицательных остатков». Он формирует список номенклатуры с минусами и показывает документы-регистраторы, вызвавшие проблему. Требуемая доработка — это, как правило, адаптация этого типового механизма с акцентом на специфическую аналитику, например, на подразделения, если учет там ведется обособленно.
Также проанализируем ситуацию: почему система вообще дает списывать в минус? Наличие таких отчетов актуально только для баз, где в настройках осознанно установлена галочка «Разрешить списание запасов при отсутствии остатков по данным учета». Компании включают ее намеренно, чтобы не останавливать отгрузки клиентам, если первичные документы от поставщиков задерживаются. Следовательно, разрабатываемый нами отчет — это не разовая задача, а регулярный рабочий инструмент для закрытия месяца и исправления красных остатков.