Почему в 1С:Комплексная автоматизация товар списывается с другой организации и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Управленческий учет Торговля и дистрибуция
← На главную

При работе в современных конфигурациях на платформе 1С:Предприятие 8.3, таких как 1С:Комплексная автоматизация (КА) или 1С:ERP Управление предприятием, пользователи часто сталкиваетесь с неочевидным поведением системы: при отгрузке товаров списание происходит с организации, отличной от указанной в шапке документа. Более того, программа делает движения по регистру накопления ТоварыОрганизацийКПередаче (или резервирует товары), даже если функциональная опция передачи товаров между организациями (Intercompany) полностью отключена.

В этой статье мы подробно разберем, почему возникает эта техническая проблема, как устроен механизм видов запасов и какими способами можно исправить ситуацию — как для одного документа, так и для всей информационной базы в целом.

---

Выясним причину: почему система игнорирует настройки и списывает товар с чужой фирмы?

Главным виновником такого поведения является встроенный механизм партионного и финансового учета — Виды запасов. Давайте проанализируем, как он функционирует:

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

---

Решение 1. Ручное исправление видов запасов в документе

Если некорректно проводящихся документов немного, проще всего исправить их вручную. Рассмотрим, как это сделать по шагам:

  1. Откройте проблемный документ отгрузки или списания.
  2. В правом верхнем углу нажмите кнопку Еще и выберите пункт Открыть виды запасов. Если этого пункта нет, убедитесь, что у вас достаточно прав для редактирования технической информации документа.
  3. В открывшейся форме вы увидите таблицу распределения товаров по организациям и источникам происхождения. Нажмите кнопку Указать виды запасов вручную.
  4. В колонке Вид запасов выберите или создайте элемент, жестко привязанный к организации, которая указана в шапке вашего документа.
  5. Перенесите изменения в документ и проведите его.

После этого движения по регистру ТоварыОрганизацийКПередаче исчезнут, а списание в регистре ТоварыОрганизаций произойдет строго по нужной компании.

---

Решение 2. Штатный способ сброса кэша без ручной правки

Для перезаполнения скрытой табличной части видов запасов без необходимости ручного подбора можно использовать встроенные триггеры системы:

  1. Отмените проведение (распроведите) проблемного документа.
  2. В шапке документа временно измените реквизит Организация на любое другое юридическое лицо.
  3. Запишите документ (но не проводите). Это действие заставит систему принудительно очистить скрытую таблицу ВидыЗапасов, так как сменился ключевой аналитический реквизит.
  4. Верните исходную (правильную) организацию обратно в шапку документа.
  5. Проведите документ.

При проведении система сформирует виды запасов с чистого листа, ориентируясь на текущие (уже отключенные) настройки передачи товаров. Списания с чужой организации больше не произойдет.

---

Решение 3. Групповое исправление документов через программный код

Если некорректных документов в базе накопились десятки или сотни, ручная обработка неэффективна. В этом случае программисту или администратору базы данных целесообразно использовать внешнюю обработку или написать обработчик в групповом изменении реквизитов, который очистит скрытые табличные части.

Рассмотрим пример кода на языке 1С для программной очистки видов запасов и последующего перепроведения документов:


Выборка = Документы.РеализацияТоваровУслуг.Выбрать(НачалоПериода, КонецПериода);

Пока Выборка.Следующий() Цикл
    Если Выборка.Проведен Тогда
        ДокументОбъект = Выборка.ПолучитьОбъект();
        
        // Очищаем скрытую табличную часть видов запасов
        ДокументОбъект.ВидыЗапасов.Очистить();
        
        // Записываем документ в режиме проведения, чтобы система заново рассчитала партии
        Попытка
            ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
            Сообщить("Документ " + Строка(Выборка) + " успешно перепроведен с очисткой кэша.");
        Исключение
            Сообщить("Ошибка проведения документа " + Строка(Выборка) + ": " + ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
КонецЦикла;

Важное предупреждение: Перед запуском групповых обработок обязательно сделайте резервную копию информационной базы!

---

Решение 4. Соблюдение хронологии и использование «Закрытия месяца»

В конфигурациях 1С:КА и 1С:ERP правильность подбора видов запасов напрямую зависит от хронологической последовательности занесения документов в базу. Если вы исправляли документы задним числом, рекомендуем придерживаться следующего алгоритма:

  1. Убедитесь, что все документы поступления (прихода) товаров заведены корректно, и в них указаны правильные организации-получатели.
  2. Запустите процедуру Закрытие месяца (раздел Финансовый результат и контроллинг — Закрытие месяца).
  3. В рамках регламентных операций система автоматически выполнит шаг «Исправление ошибок в данных и остатках товаров». Встроенный помощник найдет расхождения в регистрах организаций и предложит автоматически скорректировать виды запасов в расходных документах.

Для предотвращения подобных проблем в будущем обязательно включите опцию Контроль остатков товаров организаций в разделе НСИ и администрирование — Настройка НСИ и разделов — Финансовый результат и контроллинг — Учет товаров. Это заблокирует проведение расходных документов, если по выбранной организации физически нет остатков на складе, и не позволит системе самовольно заимствовать товар у других юридических лиц вашего холдинга.

← На главную