При работе в программе 1С:Управление торговлей 11 пользователи часто сталкиваются с ситуацией, когда в подменю Печать документа Реализация товаров и услуг отсутствует пункт Счет на оплату. Разберем архитектурные особенности типовой конфигурации, выясним причину такого поведения и рассмотрим все доступные варианты решения задачи.
Проанализируем структуру типового решения. В конфигурациях линейки 1С:УТ 11, 1С:ERP и 1С:КА печатная форма Счет на оплату по умолчанию не привязана к документу реализации. Архитектурно она встроена в два других объекта:
Если торговый процесс строится без использования заказов, а покупателю требуется выставить счет на основании уже оформленной накладной, система предполагает ввод документа Счет на оплату клиенту на основании Реализации товаров и услуг. После создания счета печатная форма становится доступной из созданного документа.
Прежде чем приступать к доработкам, проверим системные настройки видимости документов и команд:
Если специфика учета требует печатать счет непосредственно из формы документа Реализация товаров и услуг без создания промежуточного документа Счет на оплату клиенту, рассмотрим несколько практических способов реализации этой возможности.
Это наиболее универсальный и рекомендуемый способ, не требующий изменения конфигурации и не создающий проблем при последующих обновлениях системы. Разберем создание внешней обработки по технологии БСП:
СведенияОВнешнейОбработке().Назначение указываем строку "Документ.РеализацияТоваровУслуг".Посмотрим на пример структуры функции регистрации в модуле объекта обработки:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Информация", "Печать счета на оплату из реализации");
Назначение = Новый Массив;
Назначение.Добавить("Документ.РеализацияТоваровУслуг");
ПараметрыРегистрации.Вставить("Назначение", Назначение);
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
СтрокаКоманды = Команды.Добавить();
СтрокаКоманды.Представление = "Счет на оплату";
СтрокаКоманды.Идентификатор = "СчетНаОплатуИзРеализации";
СтрокаКоманды.Использование = "ВызовСерверногоМетода";
СтрокаКоманды.ПоказыватьОповещение = Ложь;
ПараметрыРегистрации.Вставить("Команды", Команды);
Возврат ПараметрыРегистрации;
КонецФункции
После создания файла обработки перейдем в НСИ и администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, добавим файл в список и укажем размещение в документе реализации. Команда сразу появится в общем меню Печать.
Если на предприятии используется механизм расширений (.cfe), можно добавить команду формирования счета без изменения типовой конфигурации поставщика:
РеализацияТоваровУслуг.ДобавитьКомандыПечати() (с аннотацией &После или &Вместо), добавляя вызов формирования табличного документа счета по данным табличной части реализации.При формировании счета из документа реализации важно проверить заполнение ключевых реквизитов: