Как добавить команду печати в документ 1с
Перейти к содержимому

Как добавить команду печати в документ 1с

  • автор:

Нет кнопки печать в новой управляемой форме документа

1. В формах каждого объекта, где необходимо разместить команду печати, в процедуре ПриСозданииНаСервере добавить следующий код:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.Печать
УправлениеПечатью.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.Печать
КонецПроцедуры
По умолчанию команды печати располагаются в командной панели формы, но размещение можно переопределить, указав второй параметр в вызове УправлениеПечатью.ПриСозданииНаСервере:

УправлениеПечатью.ПриСозданииНаСервере(ЭтотОбъект, Элементы.ГруппаКомандПечати);
Динамическое создание команд печати на форме может замедлять ее открытие, поэтому размещать команды печати рекомендуется в статической группе команд вида Подменю.

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

// СтандартныеПодсистемы.Печать
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Печать
3. В формах списка объекта, куда размещается команда печати, добавить код подключаемого обработчика команды:

// СтандартныеПодсистемы.Печать
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Печать
Важно! Поле Ссылка динамического списка формы должно быть доступно в обработчике команды. Для этого необходимо у реквизита формы, содержащего динамический список, у поля Ссылка поставить флажок Использовать всегда.

4. Добавить экспортную процедуру ДобавитьКомандыПечати в модуль менеджера:

// Заполняет список команд печати.
//
// Параметры:
// КомандыПечати – ТаблицаЗначений – состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КонецПроцедуры
Разработка команд печати

Затем необходимо разработать описательную часть, перечислив команды печати для каждого объекта в процедуре ДобавитьКомандыПечати, указав представление, идентификатор и другие параметры (подробнее см. таблицу ниже). Например:

// Счет на оплату
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Документ._ДемоСчетНаОплатуПокупателю";
КомандаПечати.Идентификатор = "СчетЗаказ";
КомандаПечати.Представление = НСтр("ru = ‘Счет на оплату’");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;

(6) Спасибо тебе добрый человек!
Нужно было поправить список форм в процедуре ДобавитьКомандыПечати.

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати.СписокФорм = ФормаДокументаНОВАЯ,ФормаСписка,ФормаСпискаДокументов";

Добавление команд печати в свой документ на БСП 3.0.2.264

Добавление команд печати в данной версии БСП будет несколько отличаться от предыдущих версий.

1. Для начала необходимо прописать наш документ в общем модуле

в массив «ИменаДокументов»

Это надо будет сделать так же, чтоб подключать и другие команды к форме и форме списка нашего документа.

2. Для подключения команды печати к форме документа необходимо в процедуре «ПриСозданииНаСервере» добавить:

Добавление команд печати в конфигурации с БСП в 1С:Предприятие 8

Эта статья подойдет для любой конфигурации на основе БСП, так как использует возможности ее подсистемы «Печать»
В последних версия БСП реализация команд печати была существенно переработана.
Рассмотрим добавление команды печати в не типовой документ.

Возьмем наш документ. Добавим макет печатной формы.

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

Откроем форму документа и создадим обработчик ПриСозданииНаСервере. Скопируем в модуль формы следующий код (если он там отсутствует):

Теперь откроем Модуль менеджера и скопируем туда следующий код или дополним уже существующие процедуры и функции:

Все готово, в форме документа у нас теперь программно будут добавляться кнопки печати. Чтобы они появились и в форме списка, проделайте с ней тоже (в Модуле менеджера уже ничего менять не надо). Единственное отличие в третьем параметре функции ВыполнитьПодключаемуюКомандуПечати: вместо Объект нужно написать Элементы.Список. Также у этого списка обязательно основной таблицей должен быть наш документ.
Результат всего этого выглядит так:

Шпаргалка (БСП). Добавление в новый документ механизма печати дополнительных печатных форм

Для идеальности не хватает только указания версии БСП….

Автору огромный плюс!

чем вас не устроила ссылка на официальную документацию в избранном?

ИТС не предлагать?

1. Добавить Новый объект в Подписки на события «ЗаписатьВерсиюДокумента»

2. Добавить Новый объект в Определяемые типы «ВерсионируемыеДанные»

3. В режиме предприятия настроить хранение данных:

Администрирование -> Общие настройки -> История изменений -> Настройки хранения

В списке объектов найти новый объект и поставить напротив него «При записи»

(5)ахаха, вы сравнили, тут все четко разложено, там надо вникать. Я уверен на 100%, что вы у себя при разработке нового документа забиваете на все версионирования, даты запрета, рлс потому что неохота лезть на итс))

(6) Вы забыли про код в форме при создание на сервере

и другие нюансы, про которые незнаете и надо внимательно читать на ИТС

Как для этого такие «Подсказки» помогают, когда ночью уже голова не соображает, то такие пошаговые выручают, так как зачем это все помнить

(7)На чем основана Ваша 100% уверенность? На собственном неумении читать документацию?

Не увидел указания под какую версию БСП этот «склерозник»?

Как уже писали в комментариях, вам для каждой версии БСП придётся писать отдельные шпаргалки.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *