При работе в современных конфигурациях на платформе 1С:Предприятие 8.3, таких как 1С:Комплексная автоматизация (КА) или 1С:ERP Управление предприятием, пользователи часто сталкиваетесь с неочевидным поведением системы: при отгрузке товаров списание происходит с организации, отличной от указанной в шапке документа. Более того, программа делает движения по регистру накопления ТоварыОрганизацийКПередаче (или резервирует товары), даже если функциональная опция передачи товаров между организациями (Intercompany) полностью отключена.
В этой статье мы подробно разберем, почему возникает эта техническая проблема, как устроен механизм видов запасов и какими способами можно исправить ситуацию — как для одного документа, так и для всей информационной базы в целом.
---
Главным виновником такого поведения является встроенный механизм партионного и финансового учета — Виды запасов. Давайте проанализируем, как он функционирует:
Реализация товаров и услуг или Списание недостач товаров) есть скрытая табличная часть ВидыЗапасов. При первом проведении документа система автоматически подбирает наиболее подходящие партии (виды запасов) с учетом действующих настроек межфирменных продаж. Если в момент проведения в системе была активна настройка «Интеркампани», программа запишет в эту скрытую таблицу виды запасов другой организации.Настройка передачи товаров между организациями, для уже созданных документов это ничего не изменит. При обычном перепроведении система стремится сохранить ранее подобранные виды запасов, чтобы не нарушать себестоимость и последовательность партий. Программа обращается к скрытому кэшу документа и снова делает движения по организации-владельцу партии, а также по регистру ТоварыОрганизацийКПередаче.Контроль остатков товаров организаций, программа может без предупреждений списывать товары чужой фирмы «в минус». Это приводит к хаосу в остатках по юридическим лицам, хотя общий остаток по складу может оставаться корректным.---
Если некорректно проводящихся документов немного, проще всего исправить их вручную. Рассмотрим, как это сделать по шагам:
Вид запасов выберите или создайте элемент, жестко привязанный к организации, которая указана в шапке вашего документа.После этого движения по регистру ТоварыОрганизацийКПередаче исчезнут, а списание в регистре ТоварыОрганизаций произойдет строго по нужной компании.
---
Для перезаполнения скрытой табличной части видов запасов без необходимости ручного подбора можно использовать встроенные триггеры системы:
Организация на любое другое юридическое лицо.ВидыЗапасов, так как сменился ключевой аналитический реквизит.При проведении система сформирует виды запасов с чистого листа, ориентируясь на текущие (уже отключенные) настройки передачи товаров. Списания с чужой организации больше не произойдет.
---
Если некорректных документов в базе накопились десятки или сотни, ручная обработка неэффективна. В этом случае программисту или администратору базы данных целесообразно использовать внешнюю обработку или написать обработчик в групповом изменении реквизитов, который очистит скрытые табличные части.
Рассмотрим пример кода на языке 1С для программной очистки видов запасов и последующего перепроведения документов:
Выборка = Документы.РеализацияТоваровУслуг.Выбрать(НачалоПериода, КонецПериода);
Пока Выборка.Следующий() Цикл
Если Выборка.Проведен Тогда
ДокументОбъект = Выборка.ПолучитьОбъект();
// Очищаем скрытую табличную часть видов запасов
ДокументОбъект.ВидыЗапасов.Очистить();
// Записываем документ в режиме проведения, чтобы система заново рассчитала партии
Попытка
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
Сообщить("Документ " + Строка(Выборка) + " успешно перепроведен с очисткой кэша.");
Исключение
Сообщить("Ошибка проведения документа " + Строка(Выборка) + ": " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
Важное предупреждение: Перед запуском групповых обработок обязательно сделайте резервную копию информационной базы!
---
В конфигурациях 1С:КА и 1С:ERP правильность подбора видов запасов напрямую зависит от хронологической последовательности занесения документов в базу. Если вы исправляли документы задним числом, рекомендуем придерживаться следующего алгоритма:
Для предотвращения подобных проблем в будущем обязательно включите опцию Контроль остатков товаров организаций в разделе НСИ и администрирование — Настройка НСИ и разделов — Финансовый результат и контроллинг — Учет товаров. Это заблокирует проведение расходных документов, если по выбранной организации физически нет остатков на складе, и не позволит системе самовольно заимствовать товар у других юридических лиц вашего холдинга.