При работе в программе 1С:Управление нашей фирмой (УНФ) многие пользователи сталкиваются с неприятной ситуацией: товар зарезервирован под конкретного клиента документом Заказ покупателя, но кассир в розничной точке спокойно пробивает этот же товар через Чек ККМ. Проблема обнаруживается только в конце смены, когда документ Отчет о розничных продажах отказывается проводиться, выдавая ошибку об отсутствии свободного остатка. Рассмотрим подробно, почему так происходит, как устроена внутренняя логика программы и какими способами можно навести порядок в учете.
Для начала разберем внутреннее устройство системы учета запасов в 1С:УНФ. В отличие от более простых конфигураций, здесь используется двухсвязная система регистров накопления, каждый из которых отвечает за свой разрез учета. Проанализируем их функции:
Запасы на складах: Этот регистр отвечает за сугубо физическое наличие товара. В нем нет аналитики по заказам или резервам. Когда кассир открывает документ Чек ККМ и подбирает товар, система делает запрос именно к этому регистру. Если на складе физически лежит 10 единиц товара, Чек позволит их продать, даже если все они «обещаны» кому-то другому.Запасы: Это основной управленческий регистр. Именно в нем хранится информация о том, является ли товар свободным или он зарезервирован под Заказ покупателя. Резерв в 1С:УНФ — это запись в данном регистре с заполненным измерением Заказ покупателя.Выясним причину конфликта: документ Чек ККМ делает движения (расход) только по регистру Запасы на складах. Он не делает движений по регистру Запасы, так как считается «черновиком» до момента закрытия кассовой смены. Проблема «всплывает», когда формируется Отчет о розничных продажах (ОРП). Этот документ пытается списать товар по обоим регистрам сразу. И если по «складам» товар списался чеком, то по регистру Запасы система видит, что свободного (не зарезервированного) товара нет. В итоге ОРП не проводится, а учет «зависает».
Рассмотрим ситуацию с точки зрения методологии розничных продаж. Розничная торговля предполагает обслуживание анонимного покупателя по принципу «кто первый пришел, того и товар». Предполагается, что если товар физически находится на полке в торговом зале, он доступен для продажи любому человеку, подошедшему к кассе. Программа считает приоритетом факт физического отпуска товара.
Логика 1С заключается в следующем: если товар зарезервирован под конкретного клиента по Заказу покупателя, он не должен находиться в зоне свободной досягаемости розничного покупателя и кассира. Если кассир смог взять товар и пробить его, значит, резерв фактически был нарушен в реальности, и программа лишь констатирует этот факт при попытке закрыть смену.
Самый эффективный технический способ решения проблемы — внедрение механизма складских ячеек. Разберем по шагам, как это настроить:
Торговый зал и Зона резерва.Торговый зал.Заказа покупателя и резервировании товара делайте перемещение этого товара в ячейку Зона резерва.При такой схеме кассир просто не увидит остатков зарезервированного товара в подборе Чека ККМ, так как программа будет фильтровать остатки по разрешенной ячейке Торговый зал. Это исключает человеческий фактор и ошибки при закрытии смены.
Если ячеистый склад кажется слишком сложным, проанализируем вариант с разделением складов. Вы можете создать отдельный склад Розничный магазин и склад Оптовый склад (Резерв).
Процесс будет выглядеть так:
Оптовый склад.Перемещение запасов на Розничный магазин.Оптовом складе.В этом случае Чек ККМ, привязанный к розничному складу, физически не сможет «увидеть» товары, которые зарезервированы на оптовом подразделении.
Часто путаница возникает, когда зарезервированный товар пришел забирать именно тот клиент, под которого создавался резерв, но кассир по ошибке пробивает его как обычный Чек ККМ.
Выясним, как действовать правильно в такой ситуации:
Если клиент забирает зарезервированный товар, кассир не должен создавать новый Чек ККМ «с нуля». Вместо этого необходимо использовать документ Расходная накладная с видом операции «Продажа по заказу». В этой накладной обязательно указывается конкретный Заказ покупателя. В таком случае система корректно «схлопнет» резерв в регистре Запасы, и при оплате через кассу (документом Поступление в кассу или через фискализацию накладной) никаких конфликтов не возникнет.
Чтобы окончательно понять, как документ влияет на остатки, мы рекомендуем пользоваться отчетом Движения документа. Посмотрим, на что обратить внимание в регистре Запасы:
// Пример логики записей в регистре Запасы:
// 1. При резервировании Заказом покупателя:
ВидДвижения: Приход
Организация: НашаФирма
Номенклатура: Товар1
ЗаказПокупателя: Заказ_№001
Количество: 1
// 2. При продаже Чеком ККМ (через ОРП):
ВидДвижения: Расход
Организация: НашаФирма
Номенклатура: Товар1
ЗаказПокупателя: <Пусто>
Количество: 1
Как мы видим из этого примера, Заказ покупателя создает «приход» в разрез заказа (резервирует), а Отчет о розничных продажах пытается сделать «расход» по пустому заказу (свободный остаток). Если свободного остатка нет (все в резерве), документ не проведется. Важно помнить: сумма остатков по всем заказам и по «пустому» заказу в этом регистре должна соответствовать физическому количеству на складе.
Подводя итог нашему анализу, можно сказать, что поведение 1С:УНФ не является ошибкой программы, а отражает жесткую управленческую логику. Чтобы избежать проблем с проведением документов:
Используя эти методы, вы обеспечите бесперебойную работу розничной точки и корректность управленческого учета в 1С:УНФ.