При ведении позаказного учета и обособленного обеспечения потребностей пользователи нередко сталкиваются с ситуацией, когда товар был закуплен под конкретный заказ клиента, отгружен, затем возвращен покупателем, а после этого его требуется вернуть поставщику. На этапе проведения документа Возврат товаров поставщику система выдает ошибки контроля остатков или превышения закупленного количества.
Разберем детально механизм возникновения этой коллизии в типовой логике конфигураций 1С:Управление торговлей 11, 1С:Комплексная автоматизация 2 и 1С:ERP, выясним причину по коду проверок и рассмотрим варианты решения.
Проанализируем цепочку движения номенклатуры при обособленном обеспечении:
Назначение. Товар обособлен под заказ.Назначение), так как отгрузка была фактически отменена, а заказ клиента уже считается выполненным или расторгнутым.Когда мы пытаемся создать документ Возврат товаров поставщику на основании исходного поступления, в системе срабатывает двухконтурный контроль:
Товары организаций и Товары на складах сообщают о нехватке товара, так как на остатке числится товар без назначения.Назначение в строке возврата, система пытается сопоставить строку с исходным документом приобретения. В исходной накладной закупка числится с назначением, а возврат оформляется без назначения. В результате запрос контроля партий не находит соответствия и выдает ошибку вида: «Возврат по номенклатуре ... превышает количество закупленных товаров по документу поступления на N шт».Посмотрим на фрагмент типового запроса проверки закупки, где четко видно строгое соединение по полю Назначение:
ВЫБРАТЬ
ПроверяемыеТовары.Номенклатура КАК Номенклатура,
ЕСТЬNULL(ДанныеПоступления.Количество, 0) - ЕСТЬNULL(ДанныеДокументовВозврата.Количество, 0) - ЕСТЬNULL(ПроверяемыеТовары.Количество, 0) КАК Количество,
ПроверяемыеТовары.Характеристика КАК Характеристика,
ПроверяемыеТовары.Серия КАК Серия,
ПроверяемыеТовары.Назначение КАК Назначение,
ПроверяемыеТовары.ДокументПоступления КАК ДокументПоступления
ИЗ
ДанныеПоступления КАК ДанныеПоступления
ПОЛНОЕ СОЕДИНЕНИЕ ПроверяемыеТовары КАК ПроверяемыеТовары
ПО ДанныеПоступления.ДокументПоступления = ПроверяемыеТовары.ДокументПоступления
И ДанныеПоступления.Номенклатура = ПроверяемыеТовары.Номенклатура
И ДанныеПоступления.Характеристика = ПроверяемыеТовары.Характеристика
И ДанныеПоступления.Серия = ПроверяемыеТовары.Серия
И ДанныеПоступления.Назначение = ПроверяемыеТовары.Назначение
ГДЕ
ЕСТЬNULL(ДанныеПоступления.Количество, 0) - ЕСТЬNULL(ДанныеДокументовВозврата.Количество, 0) - ЕСТЬNULL(ПроверяемыеТовары.Количество, 0) < 0
Из-за несовпадения аналитики Назначение разность уходит в минус, и транзакция проведения прерывается.
Рассмотрим штатный и методически наиболее корректный способ решения, позволяющий сохранить привязку к исходному документу поступления:
Корректировка назначения товаров.Назначение (исходный заказ клиента). Источником в данном случае будет выступать свободный остаток.Товары организаций свободный остаток будет перенесен на требуемое назначение.Возврат товаров поставщику, укажем исходное поступление и заполним Назначение. Документ успешно проведется, так как оба контроля (наличие на складе и соответствие партии закупки) будут удовлетворены.Разберем альтернативный вариант, который применяется, когда не требуется жестко контролировать первичный документ в строке возврата:
Возврат товаров поставщику в табличной части Товары очистим реквизиты Документ поступления и Назначение.Расчет себестоимости товаров.Проанализируем дополнительные системные настройки, которые могут упростить работу с обособленными позициями:
Не контролировать превышение обособленного обеспечения. Это снижает строгость блокировки при списаниях.Возврат товаров поставщику можно открыть форму редактирования видов запасов через команду Указать виды запасов вручную и проверить, под какую аналитику запасов подбирается остаток.