Как настроить вывод адреса точки доставки при использовании головного контрагента в 1С:Управление торговлей

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

При работе в современных конфигурациях 1С, таких как Управление торговлей 11, ERP или Комплексная автоматизация, пользователи часто сталкиваются с концептуальным разделением справочников Партнеры и Контрагенты. Это разделение позволяет гибко настраивать управленческую структуру (кто заказывает, куда возить) отдельно от юридической (кто платит, на кого выписывать документы). Однако на практике возникают сложности: как сделать так, чтобы при одном плательщике-контрагенте в печатные формы (УПД, ТОРГ-12) подставлялись данные конкретной точки доставки (партнера)?

Рассмотрим детально, как устроена эта механика, проанализируем возможные схемы настройки и разберем по шагам, как добиться корректного заполнения документов без лишнего дублирования данных в бухгалтерии.

Понимание архитектуры: Партнеры против Контрагентов

Для начала выясним причину возникновения проблемы. В системе 1С заложены следующие функции для этих справочников:

  1. Партнеры — это управленческие сущности. Это могут быть холдинги, сети магазинов, конкретные торговые точки или даже отделы внутри организации. Именно по партнерам ведется управленческий учет, строятся отчеты по продажам и анализируется дебиторская задолженность в разрезе точек.
  2. Контрагенты — это юридические лица. Они хранят ИНН, КПП, банковские счета и юридические адреса. С точки зрения регламентированного учета (и синхронизации с 1С:Бухгалтерией) важен именно контрагент.

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

Решение 1: Использование реквизита Грузополучатель

Это самый правильный метод с точки зрения методологии 1С. В типовых печатных формах адрес берется не просто из карточки контрагента, а из данных грузополучателя. Разберем по шагам, как это настроить:

1. В документе Реализация товаров и услуг перейдем на вкладку Дополнительно (или Доставка, в зависимости от версии релиза). Там находятся поля Плательщик и Грузополучатель.

2. По умолчанию Грузополучатель совпадает с Плательщиком. Нам необходимо указать здесь либо другого контрагента (филиал с собственным КПП), либо того же контрагента, но с выбранным адресом доставки.

3. Чтобы адрес подтягивался автоматически, проверим настройки в карточке партнера. На вкладке Адреса и телефоны создадим запись с типом Адрес доставки.

Рассмотрим пример кода, который система использует при формировании данных печати (упрощенная логика подбора адреса):


ДанныеПечати = СформироватьДанныеДляПечатнойФормы(МассивОбъектов);
Для Каждого Строка Из ДанныеПечати Цикл
    Если ЗначениеЗаполнено(Строка.Грузополучатель) Тогда
        // Система приоритетно ищет адрес, указанный в поле доставки документа
        Строка.АдресГрузополучателя = ОбработкаАдресов.ПолучитьАдресИзДокумента(Строка.Ссылка);
    КонецЕсли;
КонецЦикла;

Решение 2: Настройка иерархии и независимого ведения

Если бизнес-процесс требует, чтобы у каждой точки был свой КПП (например, работа с обособленными подразделениями), нам придется завести несколько карточек в справочнике Контрагенты. Однако, чтобы в 1С:Бухгалтерии все данные собирались на одном основном лице, используем следующую схему:

  1. Включаем в настройках опцию Независимо вести партнеров и контрагентов.
  2. Для каждой точки создаем своего контрагента с тем же ИНН, но разными КПП и фактическими адресами.
  3. В карточке контрагента-филиала в поле Головной контрагент указываем нашу основную организацию.

Важный нюанс для синхронизации с БП: При такой настройке в 1С:Бухгалтерию 3.0 придут разные контрагенты. Если вы хотите видеть в бухгалтерии только одного контрагента, этот метод не подойдет. В таком случае стоит рассмотреть вариант Решения 3.

Решение 3: Использование Соглашений и Договоров

Проанализируем возможности автоматизации выбора данных. Чтобы пользователю не приходилось каждый раз вручную менять грузополучателя, мы можем зафиксировать его в Индивидуальном соглашении:

1. Создаем индивидуальное соглашение для конкретного подчиненного партнера (точки).

2. В соглашении на закладке Прочие условия можно указать конкретного Грузополучателя и даже Адрес доставки по умолчанию.

3. Теперь при выборе партнера в заказе или реализации система сама заполнит реквизиты доставки, исходя из настроек соглашения.

Решение 4: Доработка печатной формы через расширение

Если стандартные механизмы не подходят (например, нужно, чтобы в строке "Грузополучатель" выводилось не юридическое наименование, а именно управленческое название партнера — "Магазин у дома"), рекомендуем воспользоваться механизмом расширений. Это позволит изменить текст в печатной форме, не затрагивая ядро конфигурации.

Рассмотрим концептуальный пример кода для подмены наименования в расширении менеджера документа:


&Вместо("СформироватьДанныеГрузополучателя")
Функция Мой_СформироватьДанныеГрузополучателя(Объект)
    // Получаем управленческое наименование партнера вместо контрагента
    ПартнерНаименование = Объект.Партнер.НаименованиеПолное;
    ЮрАдрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзПартнера(Объект.Партнер);
    
    Результат = "Грузополучатель: " + ПартнерНаименование + ", адрес: " + ЮрАдрес;
    Возврат Результат;
КонецФункции

Выводы и рекомендации

Подводя итоги, отметим, что выбор схемы зависит от ваших приоритетов:

Как показал опыт автора темы, на начальном этапе внедрения допустимо использовать упрощенную схему Один партнер = Один контрагент с выключенной галочкой независимого ведения. Это минимизирует ошибки персонала, позволяя постепенно переходить к более сложным иерархическим структурам по мере роста потребностей бизнеса.

← На главную