В процессе работы в конфигурации 1С:Управление торговлей 10.3 пользователи часто сталкиваются с ситуацией, когда в отчетах (например, в «Ведомости товаров на складах» или «Ведомости по партиям товаров») возникает аномалия: количество товара равно нулю, а стоимостная оценка при этом остается положительной или отрицательной (например, 0 шт. стоимостью 100 рублей). Это классическая проблема партионного учета, которая особенно остро проявляется при использовании механизма распределения дополнительных расходов в цепочках перемещений между организациями (Intercompany).
В данной статье мы подробно разберем причины возникновения таких «кривых» остатков и рассмотрим пошаговые алгоритмы их исправления, начиная от типовых регламентных процедур и заканчивая ручной корректировкой регистров.
Для начала проанализируем ситуацию, описанную в теме. Основная причина кроется в нарушении временной последовательности документов и логике работы партионного учета. Рассмотрим стандартную цепочку событий:
ПоступлениеТоваровУслуг. Система фиксирует партию.ПеремещениеТоваров. На этот момент себестоимость перемещения рассчитывается исходя из текущих данных партии (например, 1000 руб.).ПоступлениеДопРасходов и привязывает его к первому поступлению на Организацию №1.В итоге на Организации №1 количество списано полностью (0 шт.), но доп. расходы в 100 руб. остались «висеть» на остатках организации-отправителя. Система видит, что партия пришла, но не была полностью распределена по стоимости.
Первое, что мы должны рассмотреть — это штатный механизм закрытия месяца. В УТ 10.3 предусмотрен специальный документ КорректировкаСтоимостиСписанияТоваров.
Разберем, как он работает:
Этот документ предназначен для усреднения стоимости списания по итогам месяца (если используется метод «По средней») или для доведения стоимости списания до актуальных значений (при методе FIFO). Если дополнительные расходы были введены в том же отчетном периоде, что и реализация/перемещение, данный документ должен автоматически «подтянуть» эти суммы.
Важный нюанс: Как было отмечено в обсуждении, этот документ хорошо справляется с доведением стоимости до документа РеализацияТоваровУслуг, но часто пасует перед цепочками перемещений между организациями. Если после формирования документа стоимость все равно остается на складе, перейдем к более глубоким методам.
Если групповое перепроведение всей базы занимает слишком много времени и блокирует работу пользователей, мы можем воспользоваться специализированным инструментом. В меню «Операции» — «Проведение документов» выберите вкладку «Восстановление последовательностей» или воспользуйтесь обработкой «Проведение по партиям».
Рассмотрим преимущества этого способа:
ПроведениеПоПартиям работает значительно быстрее, чем полное перепроведение.ПартииТоваровНаСкладах.Чтобы исправить ситуацию, необходимо установить границу последовательности на дату самого раннего документа ПоступлениеДопРасходов, который вызвал расхождение, и запустить процесс. После этого документ ПеремещениеТоваров увидит увеличившуюся стоимость партии и передаст её дальше в Организацию №2.
Если проблема носит разовый характер или возникла в далеком закрытом периоде, который категорически нельзя перепроводить, воспользуемся документом КорректировкаЗаписейРегистров. Это «хирургический» метод, позволяющий убрать только стоимостные хвосты.
Проанализируем ситуацию по шагам:
Номенклатура, Склад, Организация и Документ-регистратор (это критически важно).КорректировкаЗаписейРегистров.ПартииТоваровНаСкладах (Управленческий учет) (и Бухгалтерский, если учет ведется параллельно).Таким образом, мы принудительно списываем стоимость, не затрагивая количественный учет. После проведения документа отчет «Ведомость по партиям» станет чистым.
В УТ 10.3 при перемещении товара между организациями крайне важно соблюдать логику. Если вы распределяете доп. расходы на ОРГ1, а товар уже продан от лица ОРГ2, то стоимость должна пройти путь: Поступление (ОРГ1) -> Перемещение (ОРГ1->ОРГ2) -> Реализация (ОРГ2).
Рассмотрим пример кода, который мог бы использоваться в обработках для поиска таких «зависших» остатков (для разработчиков):
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПартииТоваровОстатки.Номенклатура,
| ПартииТоваровОстатки.Склад,
| ПартииТоваровОстатки.ДокументОприходования,
| ПартииТоваровОстатки.СтоимостьОстаток,
| ПартииТоваровОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаКонца, ) КАК ПартииТоваровОстатки
|ГДЕ
| ПартииТоваровОстатки.КоличествоОстаток = 0
| И ПартииТоваровОстатки.СтоимостьОстаток <> 0";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
// Логика автоматического создания документа КорректировкаЗаписейРегистров
КонецЦикла;
Для того чтобы не возвращаться к исправлению «кривых» остатков ежемесячно, рекомендуем придерживаться следующих правил в УТ 10.3:
ПоступлениеДопРасходов должен иметь дату позже, чем ПоступлениеТоваровУслуг, но обязательно раньше, чем любые документы списания или перемещения этой партии.ПрочиеЗатраты. Это сохранит чистоту себестоимости и избавит от необходимости перепроводить прошлые периоды.Количество = 0 и Стоимость <> 0. Это позволит находить ошибки до того, как они накопятся в огромный ком.Проанализировав ситуацию, мы видим, что проблема «зависшей» стоимости — это лишь следствие разрыва цепочки данных. Использование типового восстановления последовательности партионного учета или ручной корректировки регистров позволяет оперативно привести учет в порядок без необходимости полного перепроведения базы.