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