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