В типовой архитектуре 1С:ERP Управление предприятием склад рассматривается как физическое место хранения, которое само по себе не принадлежит конкретному юридическому лицу. Это позволяет использовать один и тот же склад для хранения товаров нескольких организаций в рамках одной информационной базы. Однако на практике часто возникает задача жестко закрепить склад за определенной организацией для автоматизации заполнения документов, разграничения прав доступа или упрощения работы кладовщиков. Особенно остро эта проблема встает при использовании ордерной схемы, где в документе Приходный товарный ордер реквизит Организация отсутствует по умолчанию.
В данной статье мы подробно разберем, как наиболее грамотно реализовать привязку склада к организации, используя как стандартные настройки системы, так и возможности расширения функционала.
Проанализируем логику работы ордерного склада. Документ Приходный товарный ордер (ПТО) не является финансовым документом, он лишь фиксирует факт физического поступления коробок на полки. Владелец товара (организация) определяется в документе-распоряжении. Распоряжением на приемку обычно выступают:
Заказ поставщикуПриобретение товаров и услугЗаказ на перемещениеВ этих документах реквизит Организация является обязательным. Если в вашей компании принято правило, что один склад обслуживает только одну организацию, мы можем программно обращаться к распоряжению, чтобы получить информацию о владельце товара. Рассмотрим пример функции, которую можно использовать в расширении для автоматического определения организации по складскому ордеру:
Функция ПолучитьОрганизациюИзРаспоряжения(СсылкаНаОрдер) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ТИПЗНАЧЕНИЯ(СкладскойОрдер.Распоряжение) КАК ТипРаспоряжения,
| СкладскойОрдер.Распоряжение КАК СсылкаРаспоряжение
|ИЗ
| Документ.ПриходныйТоварныйОрдер КАК СкладскойОрдер
|ГДЕ
| СкладскойОрдер.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОрдер);
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
// Динамическое обращение к реквизиту Организация документа-распоряжения
Попытка
Возврат Результат.СсылкаРаспоряжение.Организация;
Исключение
Возврат Справочники.Организации.ПустаяСсылка();
КонецПопытки;
КонецЕсли;
Возврат Справочники.Организации.ПустаяСсылка();
КонецФункции
Такой подход позволяет не вносить изменения в структуру данных, а использовать существующие связи в информационной базе.
Выясним, как штатно закрепить организацию за складом без программирования. В 1С:ERP существует механизм Ответственного хранения. Если в карточке склада (раздел «Настройки складской обработки») установить флаг «Использовать ответственное хранение», система потребует указать организацию-хранителя.
Разберем по шагам, как это работает:
Важный момент: использование этого механизма накладывает определенные ограничения на складской учет и может потребовать оформления дополнительных документов (например, актов о приеме на ответственное хранение), поэтому данный способ подходит не всем бизнес-процессам.
Проанализируем структуру справочника Склады. В настройках каждого склада можно указать Подразделение. В большинстве компаний структура подразделений (управленческая структура) создается в привязке к организациям (юридической структуре). Если мы установим для склада конкретное подразделение, которое входит в иерархию только одной организации, мы получим косвенную, но однозначную связь.
При создании приходных документов (например, Приобретение товаров и услуг) после выбора склада система может автоматически подставлять подразделение, а через него — и организацию, если настроить соответствующие правила заполнения в модуле менеджера документа или через Механизм заполнения реквизитов (в новых версиях ERP).
Чтобы избежать ошибок, когда бухгалтер организации «А» случайно выбирает склад организации «Б», необходимо использовать механизм RLS (Record Level Security). Рассмотрим, как ограничить список доступных складов:
Это самый надежный способ исключить «перекрестное» использование складов разными организациями на уровне интерфейса пользователя.
Если вам необходимо хранить ссылку на организацию непосредственно в карточке склада для аналитических отчетов, но вы не хотите менять конфигурацию, оптимальным решением станет использование Дополнительных реквизитов.
Процесс настройки выглядит следующим образом:
Склады.СправочникСсылка.Организации.После этого в карточке склада появится новое поле. Его можно использовать в схемах компоновки данных (СКД) при построении отчетов, а также обращаться к нему программно:
// Пример получения организации из доп. реквизита
ЗначениеОрганизации = УправлениеСвойствами.ЗначениеСвойства(СсылкаНаСклад, "ОрганизацияВладелец");
Рассмотрим ситуацию, когда склад физически один, но товары на нем принадлежат разным организациям, и вам нужно, чтобы при продаже от имени организации «Б» товар автоматически «закупался» у организации «А». В 1С:ERP для этого предназначен механизм Интеркампани.
В этом случае склад остается общим (не привязанным к одной организации), но в настройках передачи товаров между организациями указывается владелец запасов. Это позволяет системе автоматически формировать документы Передача товаров между организациями в конце месяца, закрывая отрицательные остатки по конкретным юрлицам.
Резюмируем: Наиболее «грамотным» с точки зрения методологии 1С:ERP является использование склада как места хранения без жесткой привязки, с использованием Интеркампани. Однако, если бизнес-процесс требует жесткого закрепления, рекомендуется сочетать Группы доступа (для безопасности) и Дополнительные реквизиты (для аналитики), либо использовать связь через Подразделение.