Создание внешней печатной формы, подключаемой к документу 1с

Задача:Необходимо создать печатную форму “Спецификация” к документу Реализация товаров и услуг.

1.Создаем внешнюю обработку

Создание внешней обработки 1с

2.Добавляем  реквизит СсылкаНаОбъект с типом  необходимого документа (в моем случае ДокументСсылка.РеализацияТоваровУслуг)

Добавление реквизита 1с

3.Добавляем в обработку форму для облегчения дальнейшей отладки

Добавление обычной формы 1с

4.Размещаем на форме реквизит СсылкаНаОбъект

Размещение реквизитов на форме 1с

5.В модуле обработки создаем функцию печать(с пометкой экспорт) и назначаем ее на кнопку ‘Выполнить’ в форме обработке

код модуля:

код формы:

6. Уже можно подключать обработку к документу. Добавляем ее в дополнительные  печатные формы и определяем принадлежность к документу.

Регистрация внешней печатной формы

7.Теперь из документа “Реализация Товаров и Услуг” по команде печать можно выбрать и запустить эту обработку, результатом будет выполнение команд в  Функции ПечатьСпецификации()

8. Теперь можно приступить непосредственно к созданию макета печатной формы(текст, параметры, оформление, области). Подробнее почитать можно в статье Пример создания внешнего отчета в 1с

Макет печатной формы

9.Для обращения к данным документа как раз и используется реквизит СсылкаНаОбъект, который будет равняться  ссылке на документ из которого вы хотите распечатать.

10. Не забудьте обновить печатную форму в справочнике “Дополнительные печатные формы и обработки”.

Поделиться ссылкой:

Похожие записи

Создание внешней печатной формы, подключаемой к документу 1с

Создание внешней печатной формы, подключаемой к документу 1с: 2 комментария

  • 22 января, 2020 в 12:06
    Permalink

    Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;

    ПараметрыРегистрации.Вставить(“Вид”, “ДополнительнаяОбработка”);
    ПараметрыРегистрации.Вставить(“Назначение”, МассивНазначений);
    ПараметрыРегистрации.Вставить(“Наименование”, “ВыгрузкаПоименногоСписка”);
    //ПараметрыРегистрации.Вставить(“ИспользоватьДляФормыОбъекта”, Истина);
    ПараметрыРегистрации.Вставить(“Версия”, “1.0”);
    ПараметрыРегистрации.Вставить(“БезопасныйРежим”, Ложь);
    ПараметрыРегистрации.Вставить(“Информация”, “1”);

    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    ДобавитьКоманду(ТаблицаКоманд, “ВыгрузкаПоименногоСписка”, “Форма”, “ОткрытиеФормы”, , “”);
    ПараметрыРегистрации.Вставить(“Команды”, ТаблицаКоманд);
    Возврат ПараметрыРегистрации;
    КонецФункции

    Функция ПолучитьТаблицуКоманд()

    // Создадим пустую таблицу команд и колонки в ней
    Команды = Новый ТаблицаЗначений;

    // Как будет выглядеть описание печатной формы для пользователя
    Команды.Колонки.Добавить(“Представление”, Новый ОписаниеТипов(“Строка”));

    // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
    Команды.Колонки.Добавить(“Идентификатор”, Новый ОписаниеТипов(“Строка”));

    // Тут задается, как должна вызваться команда обработки
    // Возможные варианты:
    // – ОткрытиеФормы – в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
    // – ВызовКлиентскогоМетода – вызвать клиентскую экспортную процедуру из модуля формы обработки
    // – ВызовСерверногоМетода – вызвать серверную экспортную процедуру из модуля объекта обработки
    Команды.Колонки.Добавить(“Использование”, Новый ОписаниеТипов(“Строка”));

    // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
    Команды.Колонки.Добавить(“ПоказыватьОповещение”, Новый ОписаниеТипов(“Булево”));

    // Для печатной формы должен содержать строку ПечатьMXL
    Команды.Колонки.Добавить(“Модификатор”, Новый ОписаниеТипов(“Строка”));
    Возврат Команды;
    КонецФункции

    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = “”)
    // Добавляем команду в таблицу команд по переданному описанию.
    // Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    КонецПроцедуры

    Ответить
  • 22 января, 2020 в 12:06
    Permalink

    Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;

    // МассивНазначений.Добавить(“подсистема.CRMИМАРКЕТИНГ”); //Указываем документ к которому делаем внешнюю печ. форму
    ПараметрыРегистрации.Вставить(“Вид”, “ДополнительныйОтчет”); //может быть – ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов…
    // ПараметрыРегистрации.Вставить(“Назначение”, МассивНазначений);
    ПараметрыРегистрации.Вставить(“Наименование”, “ОтчетПоПричинамУвольнений”); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить(“БезопасныйРежим”,ИСТИНА);
    ПараметрыРегистрации.Вставить(“Информация”, “ОтчетПоПричинамУвольнений”);
    ПараметрыРегистрации.Вставить(“Версия”, “1.0”);

    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, “ОтчетПоПричинамУвольнений”, “ОтчетПоПричинамУвольнений”, “ОткрытиеФормы”);
    ПараметрыРегистрации.Вставить(“Команды”, ТаблицаКоманд);

    Возврат ПараметрыРегистрации;

    КонецФункции

    Функция ПолучитьТаблицуКоманд()
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить(“Представление”, Новый ОписаниеТипов(“Строка”));//как будет выглядеть описание печ.формы для пользователя
    Команды.Колонки.Добавить(“Идентификатор”, Новый ОписаниеТипов(“Строка”)); //имя макета печ.формы
    Команды.Колонки.Добавить(“Использование”, Новый ОписаниеТипов(“Строка”)); //ВызовСерверногоМетода
    Команды.Колонки.Добавить(“ПоказыватьОповещение”, Новый ОписаниеТипов(“Булево”));
    Команды.Колонки.Добавить(“Модификатор”, Новый ОписаниеТипов(“Строка”));

    Возврат Команды;
    КонецФункции

    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = “”)

    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

    КонецПроцедуры

    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    КонецПроцедуры // Печать()

    Ответить

Добавить комментарий

Ваш адрес email не будет опубликован.