Команды печати 1с бсп

Обновлено: 04.07.2024

Шаблон я заготовил еще на БСП 2.х, сейчас актуальна БСП 3.0.х – шаблон менял с развитием БСП. Сравнивая шаблоны получилось очень наглядно как «1С» реализует концепцию «вести разработку как бы сбоку, оставляя типовые объекты на поддержке, а в идеале на замке». Для этого развивает программный интерфейс подсистем БСП, что позволяет свести к минимуму количество объектов в расширении конфигурации.

Для БСП 2.х и БСП 3.0 макет табличного документа и алгоритм формирования печатной формы располагаю в объекте обработка, расширения конфигурации. «Обычно макет печатной формы располагается при объекте, но если макет является общим для двух и более объектов, то либо его следует располагать в обработке, либо это должен быть общий макет.» [ИТС, БСП гл. 3.38 Печать]. Для меня важно оставить конфигурацию «девственной» и минимум объектов заимствовать в расширение конфигурации, поэтому в обработке.

Если на БСП 2.х укладываемся в 7 шагов:

  1. Создаем Расширение;
  2. Создаем обработку;
  3. Создаем макет в обработке;
  4. Заимствуем сам объект (например, документ), для которого требуется добавить команду печати;
  5. Заимствуем Группу команд – «Печать»;
  6. Создаем команду у обработки и определяем свойства «Тип параметра команды» (шаг 4) и «Группа» (шаг 5);
  7. В модуле менеджера Обработки располагаем процедуру с кодом формирования печатной формы и методы подсистемы Печать.

После этого в командной панели формы объекта (например, документа) и формы журнала, в меню «Печать» появится созданная команда.


Рис. 1 Расширение конфигурации на БСП 2.х

то на БСП 3.0 получаем желаемое за 4-е шага

  1. Создаем Расширение;
  2. Создаем обработку;
  3. Создаем макет в обработке;
  4. В модуле менеджера Обработки располагаем процедуру с кодом формирования печатной формы и методы подсистемы Печать.

Благодаря развившемуся программному интерфейсу подсистемы «Печать» в расширении конфигурации ничего заимствовать более не нужно.


Рис. 2 Расширение конфигурации на БСП 3.0

Повинуясь ИТС, подсистему «ПодключаемыеОтчетыИОбработки» заимствуем и в нее включаем созданную обработку.

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

Процедуру формирования печатной формы располагаем в ММ обработки

До процедуры с кодом формирования конкретного табличного документа, я заворачиваю в метод «обертку» ПечатнаяФорма(), в который вынес общие действия характерные для формирования любого табличного документа и обработки массива ссылок, которые нужно распечатать.

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

  1. Определяю параметры печати и макет табличного документа;
  2. Запросом выбираю нужные данные;
  3. Результатами выборки заполняю структуру ДанныеПечати и таблицы значений данными табличных частей. Причем, имена ключей структуры и полей таблицы значений совпадают с именами параметров макета;
  4. Области макета собираю в массив и обхожу его заполняя параметры макета из созданных коллекций на предыдущем шаге, на каждом витке цикла выводя в результирующий табличный документ. Для повышения устойчивости кода заполняю методом ЗаполнитьЗначенияСвойств().

Такой прием позволяет в дальнейшем передвигать параметры по областям макета, не меняя код в процедуре и выглядит элегантно.

После того как я себе «зарубил на носу» разрабатывать «так», когда приходят задачи изменить печатные формы не «так» разработанные (например, мной давно) теперь я испытываю когнитивный диссонанс J . Собрал этот паттерн для себя, может, кто еще проникнется.

//тол+ Обновление публикации от 20.02.2020 г.

Клиентский контекст при формировании печатной формы

З арекся, не добавлять клиентский контекст, если не наберет +100, но статья набрала.

«В отдельных случаях для формирования некоторых печатных форм может потребоваться клиентский контекст. Например, для запроса дополнительных параметров печатной формы у пользователя непосредственно перед печатью» [ИТС, БСП гл. 3.38 Печать]

Как (было) на БСП 2.х?

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

Форму(ы) для клиентского контекста, располагаем в той же обработке в расширении. Нужные типы для реквизитов формы, заимствуем из основной конфигурации. Например, справочник «ВидыЦен».

Последовательность действий такая:

  1. Добавляем команду в обработку;
  2. Одной строкой кода, в обработчике команды открываем форму;
  3. Из формы возвращаем параметры;
  4. Передаем управление в метод Печать() модуля менеджера обработки, формируем табличный документ на сервере;


Рис. 3 Заход в клиентский контекст на БСП 2.0

Далее вендор объявил «священную войну» модальности, и я стал под эти знамена. Вроде ничего сложного, но в меня плохо зашел «отказ от модальности», может потому, что это «костыль» от самой 1С что бы подружиться с браузерами.

Отказ от модальности заставил усложнить код реализующий заход в клиентский контекст:

  1. В обработчике команды заменяем модальное открытие на не модальный вызов;
  2. В клиентской форме при создании блокируем окно владельца;


Рис. 4 Заход в клиентский контекст на БСП 2.0 + отказ от модальности

Как теперь можно на БСП 3.х?

  1. Достаточно в процессе создания команды, в модуле менеджера обработки в процедуре «ДобавитьКомандыПечати» определить свойство «Обработчик», указав имя экспортируемой функции модуля клиентской формы.
  2. Если предполагается формирование печатной формы на сервере, из клиентского контекста передаем управление в метод Печать() модуля менеджера обработки.


Рис. 5 Заход в клиентский контекст на БСП 3.х

Реквизит формы в расширении определяем кодом, ну что бы уже «ваще не гадить»


Рис. 6 Программное создание реквизита формы.

БСП 3.х. рулит!

П.С. Попытался сложить окна в EDT вертикально, что бы нарезать скрины … и не смог:( Конфигуратор forever!

1. В процедуре ПриСозданииНаСервере изменился код с:

Замечание: Подменю ГруппаПечать на форме теперь не нужно создавать и передавать в параметр.

2. В Форме Документа вместо процедуры

теперь целых три:

а в Формы Списка вместо:

(помним, что Объект заменяется на Элементы.Список )

3. И то, чего нет в указанной статье:

В общем модуле УправлениеПечатьюПереопределяемый, в процедуре ПриОпределенииОбъектовСКомандамиПечати нужно добавить свои созданные документы, для которых нужна печать:

В Модуле Менеджера всё остается без изменений.

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Было бы хорошо изменить заголовок публикации. Тема касается большего количества пользователей, чем может заинтересовать заголовок.

Было бы хорошо изменить заголовок публикации. Тема касается большего количества пользователей, чем может заинтересовать заголовок.

Большое спасибо за статью! Уже голову сломал как вернуть печать, все сделал кроме общего модуля

1. Что касается БП 3.0, то эта статья для тех кто не знает, что это можно прочитать в файле "UpdateSSLhtm" в каталоге, куда устанавливается БСП 2.4. Скачайте БСП 2.4 и получите порядок обновления этой подсистемы и прочих, которые поменялись в 2.4. К тому же 1С поставляет обработку, которая модифицирует код старой версии БСП в объектах, подключенных к БСП при внедрении.

Death_eye; Vyacheslav_Kochnev; user705522_constantin_h; berezdetsky; h00k; the1; + 6 – Ответить

У меня ругалось на ВыполнитьКоманду пока не глянул в параметры этой процедуры. Элементы.Список должен содержать поле - Ссылка. Версия БСП - 2.4.2.25

Огромное человеческое спасибо . особенно за.

В общем модуле УправлениеПечатьюПереопределяемый, в процедуре ПриОпределенииОбъектовСКомандамиПечати нужно добавить свои созданные документы, для которых нужна печать:

Есть косяк именно в бухгалтерии 3.0.52.*.
Для подключенных "Дополнительных отчетов и обработок" в "ФормеСписка" для документов пропала кнопка - "Отчеты. ".
Причем в БСП все нормально работает.
Глубоко не копал. Тестовую конфигурацию вылечил:

. "Включить возможность изменения"
Документы.ПлатежныеПоручения.ФормаСписка
ГруппаКоманднаяПанель добавил ПодменюПечать.

Сейчас пытаюсь написать дополнительную обработку которая по кнопке "Печать " восстановит кнопку "Отчеты. ". (Опять зубы через задницу лечить. )

Решил расширением конфигурации.
Общий модуль - Подключаемые команды
ОООООООО спасибо огромное! Методом тыка нашла лишние процедуры, теперь по вашей статье попробую до конца доделать Присоединяюсь к благодарившим, очень вовремя, просто спасли.

Добавлю свои 5 копеек.
Когда добавляете (переписываете) под БСП 2.4 свои объекты, по мимо действий указанных в статье, по крайней мере для ERP 2.4, необходимо проделать еще несколько манипуляций, что бы вся эта магия от 1С версии 2.4 заработала.
А конкретно надо сделать следующее:
Для Добавления команд Отчеты, ввод на основании надо указать БСП, что для этого объекта надо использовать механизм "стандартных подсистем". Делаем следующее:
- для отчетов: Общий модуль "ВариантыОтчетовПереопределяемый" процедура "ОпределитьОбъектыСКомандамиОтчетов" добавляем свой объект в массив.

- для Ввода на основании: Общий модуль "СозданиеНаОснованииПереопределяемый" процедура "ПриОпределенииОбъектовСКомандамиСозданияНаОсновании" добавляем свой объект в массив.

для печати, заполнения и проч. видимо тоже есть процедуры, но я их не искал и не использовал из-за ненадобности (пока еще) =).

надеюсь сэкономил полчаса работы.

Обе статьи актуальны, т.к. есть и самописаные конфы, созданные ещё во времена динозавров. Статья пригодилась, спасибо, как раз делали переход с КА 2.2 на 2.4
правда я так понял команда печати для формы регистра сведений это не прокатит, там идет сравнение типов, на этом все и рушится, по старой схеме раньше работало все. т.е. при следующем обновлении эта процедура затрется ПриОпределенииОбъектовСКомандамиПечати
И так отслеживать это постоянно. (17) Меня тоже это печалит. Уже несколько раз добавлял свои документы после обновления. Не возникло идей, каким образом можно избавиться от редактирования "ПриОпределенииОбъектовСКомандамиПечати" чтобы после обновления не пропадали печатные печатные формы в "своих" документах?

Такое ощущение, что студенты писали код
Как будто нельзя через Метаданные это сделать!
Супер универсальность.
т.е. если завтра у разработчиков будет новый объект, и если они забыли про этот модуль то печати не будет в этом объекте. КЛАСС.


Рассмотрена подсистема Контактная информация из библиотеки стандартных подсистем (БСП) 3.1.3.

Примеры приведены на конфигурации Управление торговлей 11.4.13.

В пользовательском режиме

Виды контактной информации

Виды контактной информации настраиваются в разделе НСИ и администрирование -> Общие настройки -> Контактная информация -> Виды контактной информации:


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


С помощью стрелок можно регулировать последовательность расположения контактной информации:



Также можно создать новый вид контактной информации:


Для каждого вида нужно указать тип контактной информации. Всего есть 7 типов:

  • Адрес
  • Телефон
  • Адрес электронной почты
  • Skype
  • Веб страница
  • Факс
  • Другое

Настройки видов контактной информации

Большинство настроек понятны из названия, рассмотрим основные:



Для адреса можно ввести произвольный комментарий, а также показать адрес на гугл или яндекс картах:


Контактную информацию можно выводить в формах списка или в отчетах через поле Ссылка. Для этого нужно выбрать в меню Еще -> Изменить форму и добавить нужную контактную информацию:



В конфигураторе

Получение контактной информации

Для получения контактной информации объекта можно использовать функцию ПредставлениеКонтактнойИнформацииОбъекта из общего модуля УправлениеКонтактнойИнформацией. Данная функция вернет контактную информацию в виде строки:

Дополнительные отчеты и обработки — подсистема 1С БСП, предназначена для расширения функционала без изменения конфигурации.

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

Что можно подключить

  • внешние обработки (файлы с расширением “epf”) ;
  • внешние отчеты (файлы с расширением «erf»).

Виды разработок

  • Дополнительная обработка.
  • Дополнительный отчет.
  • Заполнение объекта. Возможность установить свои кнопки по заполнению документа (ранее были только кнопки по заполнению табличной части).
  • Печатная форма. Дополнительная печатная форма. Добавляется кнопка «Дополнительные печатные формы».
  • Отчет. Прикрепляемый к справочникам и документам.
  • Создание связанных объектов. Свой ввод на основании. В пункт меню «Ввод на основании» добавляется кнопка «Создание связанных объектов…».

Возможности БСП:

  • В документах можно добавлять кнопки по заполнению всего документа, кнопки по вводу на основании.
  • Обработка может содержать несколько команд меню.
  • Вводить на основании и заполнять объекты сразу на основании нескольких объектов.
  • Задавать расписание выполнение серверных команд (на сервере).
  • Задавать режим «Безопасный» или «Небезопасный», т.е. запускать обработку с учетом ограничением прав или полные права
  • Задать режим использования: «Не использовать», «Отладка», «Использовать».
  • Включить использование в формах объекта и в форма списков
  • Привязать ко всем указанным объектам обработку или отчет.
  • Настроить быстрый доступ к определенным командам внешних обработок.
  • Возможность указать в каких разделах интерфейса должны появляться дополнительные обработки и отчеты.

Сведения о внешней обработке

Значение поле может принимать одно из значений, возвращаемых функциями: ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработки<Вид>().

Таблица. Поле «ВИД».

Строка. Подставляется в наименование при создании элемента справочника «Дополнительные отчеты и обработки». Если не заполнено, то используется синоним внешней обработки/отчета.

Таблица значений. Загружается в одноименную табличную часть элемента справочника «Дополнительные отчеты и обработки» при регистрации внешней обработки.

Эту табличную часть можно заполнить и вручную.

Колонки таблицы:

Идентификатор – строка (идентификатор команды).

Представление – описание команды.

ПоказыватьОповещение – окно оповещение будет появляться перед началом и после окончания выполнения (для команд клиентских и серверных без формы).

Использование – режим запуска обработки.

Наиболее часто используются процедуры Печать() и ВыполнитьКоманду(), а также открытие формы без обращения к методу.

Это поле может принимать одно из значений, возвращаемых функциями ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКоманды<Тип>(), например, ТипКомандыВызовСерверногоМетода().

Таблица. Возможные варианты использования в таблице.

Для типа команды ВызовКлиентскогоМетода необходимо создать форму в обработке, назначить ее основной и объявить экспортную процедуру.

«Версия БСП»

Строка, версия встроенной в конфигурации БСП. Необходима для поддержки совместимости. Можно не заполнять.

«Безопасный Режим»

Булево, отображает режим запуска обработка. В безопасном режиме недоступен привилегированный режим, COM-соединение, загрузка dll, доступ к файловой системе и интернету.

«Информация»

Строка, комментарий, который характеризует обработку.

«Версия»

Строка, версия обработки.

Подготовка разработки к подключению.

Для подключения разработки в базу необходимо задать параметры в экспортной функции модуля объекта «СведенияОВнешнейОбработке».

Пример

Подключение к базе.

Открываем справочник «Дополнительные отчеты и обработки». Кнопкой «Добавить» создаем элемент справочника. После чего система предложит прикрепить вашу разработку. Система автоматически заполнит поля формы функцией «СведенияОВнешнейОбработке.

Отладка

Единственный минус дополнительных отчетов и обработок заключается в том, что внутри них не работает встроенный в платформу отладчик.

Связано это в первую очередь с тем, что, запуская такую форму, система создает временный файл, и точки останова не срабатывают.

Читайте также: