При ведении многофирменного учета в программе 1С:Бухгалтерия предприятия 3.0 часто возникает ситуация, когда одна собственная организация продает товары или услуги другой собственной организации. Обе фирмы заведены в общей информационной базе, однако стандартный механизм Ввести на основании из документа Реализация (акт, накладная, УПД) не позволяет автоматически сформировать зеркальный документ Поступление (акт, накладная, УПД) для организации-покупателя. Разберем, с чем связано это архитектурное ограничение типовой конфигурации и какими способами можно автоматизировать данную операцию.
Выясним причину, по которой разработчики типовой конфигурации не предусмотрели сквозной ввод на основании для межфирменных продаж:
Поступление $\rightarrow$ Реализация или Счет на оплату $\rightarrow$ Реализация).Организации. При этом в документах расчетов контрагентом выступает элемент справочника Контрагенты. В типовой конфигурации отсутствует жесткая автоматическая кросс-связка между этими справочниками.62.01 на 60.01) и счета учета номенклатуры (например, 41.01, 10.01).Если документов межфирменной перепродажи немного, рассмотрим самый простой типовой вариант переноса позиций без доработки конфигурации:
Реализация (акт, накладная, УПД) в организации-продавце.Поступление (акт, накладная, УПД), указываем организацию-получателя, контрагента-продавца и договор с видом С поставщиком.Проанализируем типовой инструмент, полностью исключающий ручной ввод при межфирменных операциях. Если обе организации подключены к встроенному сервису электронного документооборота:
Поступление (акт, накладная, УПД) с правильными реквизитами шапки и табличной части.Для создания полноценного ввода на основании без снятия базы с типовой поддержки оптимально использовать механизм Дополнительных отчетов и обработок по стандартам Библиотеки стандартных подсистем (БСП) или расширение конфигурации.
Посмотрим на пример логики, которую выполняет программный модуль при создании документа поступления из реализации:
// Пример фрагмента создания поступления на основании реализации
НовыйДокумент = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
НовыйДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.Товары;
НовыйДокумент.Дата = ДокументРеализации.Дата;
// Сопоставление организации-получателя и контрагента-поставщика по ИНН/КПП
НовыйДокумент.Организация = ПолучитьОрганизациюПоКонтрагенту(ДокументРеализации.Контрагент);
НовыйДокумент.Контрагент = ПолучитьКонтрагентаПоОрганизации(ДокументРеализации.Организация);
НовыйДокумент.ДоговорКонтрагента = ПолучитьОсновнойДоговор(НовыйДокумент.Контрагент,
НовыйДокумент.Организация,
ВидДоговораПоставщика);
НовыйДокумент.Склад = ДокументРеализации.Склад;
// Перенос строк номенклатуры
Для Каждого Стр Из ДокументРеализации.Товары Цикл
НоваяСтрока = НовыйДокумент.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Стр, "Номенклатура, Количество, Цена, Сумма, СтавкаНДС, СуммаНДС");
// Автоматическое заполнение счетов учета номенклатуры по правилам базы
ЗаполнитьСчетаУчетаВСтрокеТабЧасти(НовыйДокумент, НоваяСтрока);
КонецЦикла;
НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);
Преимущества такого подхода: