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