Команды печати 1с бсп
Категории
- Метаданные
- Запросы
- Система компановки данных
- Обычный интерфейс
- Управляемый интерфейс
- Конвертация данных 2
- Конвертация данных 3
- Расширения
- БСП и прикладные решения
Встраиваем БСП в пустую конфигурацию(пошаговая инструкция)
- Качаем последнюю версию БСП с https://releases.1c.ru/project;
- Устанавливаем шаблон;
- Запускаем в любой базе, в режиме 1С предприятия обработку из каталога шаблонов: ПервоеВнедрениеБСП.epf и отмечаем необходимые в новой конфигурации подсистемы. После сохраняем настройки в файл xml;
- В пустой конфигурации для разработки выполняем сравнение-объединение с конфигурацией БСП из каталога шаблонов. При этом загружаем настройки объединения из файла xml, полученного на шаге 3. Выбираем поставить на поддержку конфигурацию;
- Устанавливаем имя конфигурации и версию в формате 1.0.0.1 и название поставщика конфигурации на закладке "Разработка";
- Копируем общий модуль "ОбновлениеИнформационнойБазыБСП", переменовываем его в "ОбновлениеИнформационнойБазыИМ"(меняем постфикс);
- Заменяем содержимое модуля на содержимое из документации, потом в модуле "ПриДобавленииПодсистемы" указываем имя и версию конфигурации;
- В ОМ "ПодсистемыКонфигурацииПереопределяемый", в процедуру "ПриДобавленииПодсистем" добавить строку "МодулиПодсистем.Добавить("ОбновлениеИнформационнойБазыИМ");". Предварительно надо включить возможность его редактирования;
- Пробуем обновить. При "ругани" на режим совместимости, устанавливаем подходящий.
- Запускаем в режиме предприятия, закрываем конфигуратор. Запускаем обработку ПервоеВнедрениеБСП.epf и выполняем "Удаление кода неиспользуемых модулей";
- Запускаем конфигуратор и обновляем базу;
Методика создания и подключения печатных форм (odt и doc) на основе офисных макетов
Методика разработки печатной формы с печатью "в файл"
1) Разработать внутреннюю печатную форму по методике подключения новых внутренних печатных форм (см. материалы 3 занятия).
Методика разработки печатной формы с печатью "в файл"
1) Разработать внутреннюю печатную форму по методике подключения новых внутренних печатных форм (см. материалы 3 занятия).
Методика разработки макетов печатных форм, автоматически подключемых к механизму хранения пользовательских макетов
Какой бы макет Вы не разработали - надо обязательно добавить к имени макета один из вариантов буквосочетаний:
Привет всем! В данной статье предлагаю рассмотреть методы вывода макета на печать любых документов (собственных или типовых) с помощью актуальной библиотеки стандартных подсистем (БСП). Данный небольшой обзор поможет снять вам вопросы типа "как прицепить макет печати к собственному документу или справочника?" или "как разместить кнопку печать на форме списка и форме документа или справочника". На момент написания статьи - середина февраля 2021 года - точка актуальности - это БСП версии 3.1.4.148.
Для кого-то этот материал не новшество, но отмечу, что данная статья будет полезна специалистам, желающим использовать последние возможности библиотеки стандартных подсистем в методах вывода на печать. Хорошо известно, что подсистема БСП постоянно меняется и усовершенствуется, и я могу сказать определенно, что старые методы и алгоритмы вывода на печать макетов печатных форм документов и справочников уже будут вряд ли применимы в современных конфигурациях на последних БСП.
Подготовка и настройка собственного документа конфигурации для использования в подсистеме печати в системе БСП.
Начнем с простого создания документа ТестоваяПечатьДокументов в конфигурации на БСП. В качестве конфигурации я беру чистую библиотеку стандартных подсистем версии 3.1.4.148. Разработка ведется на Платформе 1с 8.3.18.1208.
Основным и главным моментом после создания собственного документа будет необходимость прописать данный документ в общем модуле - процедуре УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
выглядит это вот так:
Далее, что нам потребуется. Создаем 2 формы в документе ТестоваяПечатьДокументов - это "ФормаСписка" и "ФормаДокумента". В каждой из этих форм создаем и привязываем процедуру ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
выглядит она вот так:
Далее, для "формы списка" добавляем внутренние БСП подключаемые процедуры:
А для "формы документа" добавляем вот такие внутренние БСП подключаемые процедуры:
Хочу отметить, что данные процедуры я копирую из типовых документов БСП - их будет достаточно, чтобы активировать кнопку системы печати на формах документа. Ничего лишнего добавлять не нужно.
Далее, заполним модуль менеджера нашего документа. Напишем в нем такой код:
Здесь функция - ПечатнаяФормаТестовогоДокумента(МассивОбъектов, ОбъектыПечати) - формирует заполненный макет печатной формы и возвращает пользователю.
Процедура - Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт - типовая процедура печати БСП.
Тут нет ничего сложного, но особое внимание хочу обратить на вот эту процедуру добавления команд
Открываем код БСП и смотрим какие возможности предоставляет нам функция УправлениеПечатью.СоздатьКоллекциюКомандПечати() - она используется для "наполнения" объекта КомандыПечати(). Возможности широчайшие:
Как мы видим, основные параметры - Идентификатор, Представление. Остальные являются необязательными.
Правильно разместив вышеуказанный код в конфигурации вы получите необходимый результат - вывод кнопки "Печать" для формы документа и формы списка для документа ТестоваяПечатьДокументов.
Перейдем к разделу заключений и выводов по данной статье.
Заключение и выводы
В данной статье мы рассмотрели основной алгоритм БСП для размещения команд печати на любых документах конфигурации, в основе которой лежит современная библиотека стандартных подсистем. Напомню, что разработка примера велась на "чистой" библиотеке стандартных подсистем версии 3.1.4.148 и Платформе 1с 8.3.18.1208.
Ну и конечно, знание данных методов позволит вам ускорить разработку и доработку любых типовых конфигураций 1с (БУХ, ЗУП, Розница, УНФ и т.п. ), основой которых является библиотека стандартных подсистем. И самое главное - это правильно и по стандарту профессиональных разработчиков.
Другие мои материалы по БСП
Если вам интересен мой практический подход и информация, которую вы сможете реально использовать, если у вас есть желание, чтобы данный комплекс статей наполнялся практическими материалы для программистов - я не откажусь от поддержки как данной статьи, так и всего комплекса статей в целом.
Так же прошу ознакомиться с другими моими статьями по функционалу библиотеки стандартных подсистем и типовым конфигурациям:
1. В процедуре ПриСозданииНаСервере изменился код с:
Замечание: Подменю ГруппаПечать на форме теперь не нужно создавать и передавать в параметр.
2. В Форме Документа вместо процедуры
теперь целых три:
а в Формы Списка вместо:
(помним, что Объект заменяется на Элементы.Список )
3. И то, чего нет в указанной статье:
В общем модуле УправлениеПечатьюПереопределяемый, в процедуре ПриОпределенииОбъектовСКомандамиПечати нужно добавить свои созданные документы, для которых нужна печать:
В Модуле Менеджера всё остается без изменений.
Специальные предложения
Было бы хорошо изменить заголовок публикации. Тема касается большего количества пользователей, чем может заинтересовать заголовок.
Было бы хорошо изменить заголовок публикации. Тема касается большего количества пользователей, чем может заинтересовать заголовок.
1. Что касается БП 3.0, то эта статья для тех кто не знает, что это можно прочитать в файле "UpdateSSLhtm" в каталоге, куда устанавливается БСП 2.4. Скачайте БСП 2.4 и получите порядок обновления этой подсистемы и прочих, которые поменялись в 2.4. К тому же 1С поставляет обработку, которая модифицирует код старой версии БСП в объектах, подключенных к БСП при внедрении.
У меня ругалось на ВыполнитьКоманду пока не глянул в параметры этой процедуры. Элементы.Список должен содержать поле - Ссылка. Версия БСП - 2.4.2.25
Огромное человеческое спасибо . особенно за.
В общем модуле УправлениеПечатьюПереопределяемый, в процедуре ПриОпределенииОбъектовСКомандамиПечати нужно добавить свои созданные документы, для которых нужна печать:
Есть косяк именно в бухгалтерии 3.0.52.*.
Для подключенных "Дополнительных отчетов и обработок" в "ФормеСписка" для документов пропала кнопка - "Отчеты. ".
Причем в БСП все нормально работает.
Глубоко не копал. Тестовую конфигурацию вылечил:
. "Включить возможность изменения"
Документы.ПлатежныеПоручения.ФормаСписка
ГруппаКоманднаяПанель добавил ПодменюПечать.
Сейчас пытаюсь написать дополнительную обработку которая по кнопке "Печать " восстановит кнопку "Отчеты. ". (Опять зубы через задницу лечить. )
ОООООООО спасибо огромное! Методом тыка нашла лишние процедуры, теперь по вашей статье попробую до конца доделать
Добавлю свои 5 копеек.
Когда добавляете (переписываете) под БСП 2.4 свои объекты, по мимо действий указанных в статье, по крайней мере для ERP 2.4, необходимо проделать еще несколько манипуляций, что бы вся эта магия от 1С версии 2.4 заработала.
А конкретно надо сделать следующее:
Для Добавления команд Отчеты, ввод на основании надо указать БСП, что для этого объекта надо использовать механизм "стандартных подсистем". Делаем следующее:
- для отчетов: Общий модуль "ВариантыОтчетовПереопределяемый" процедура "ОпределитьОбъектыСКомандамиОтчетов" добавляем свой объект в массив.
- для Ввода на основании: Общий модуль "СозданиеНаОснованииПереопределяемый" процедура "ПриОпределенииОбъектовСКомандамиСозданияНаОсновании" добавляем свой объект в массив.
для печати, заполнения и проч. видимо тоже есть процедуры, но я их не искал и не использовал из-за ненадобности (пока еще) =).
надеюсь сэкономил полчаса работы.
Статья пригодилась, спасибо, как раз делали переход с КА 2.2 на 2.4
правда я так понял команда печати для формы регистра сведений это не прокатит, там идет сравнение типов, на этом все и рушится, по старой схеме раньше работало все.
т.е. при следующем обновлении эта процедура затрется ПриОпределенииОбъектовСКомандамиПечати
И так отслеживать это постоянно.
(17) Меня тоже это печалит. Уже несколько раз добавлял свои документы после обновления. Не возникло идей, каким образом можно избавиться от редактирования "ПриОпределенииОбъектовСКомандамиПечати" чтобы после обновления не пропадали печатные печатные формы в "своих" документах?
Такое ощущение, что студенты писали код
Как будто нельзя через Метаданные это сделать!
Супер универсальность.
т.е. если завтра у разработчиков будет новый объект, и если они забыли про этот модуль то печати не будет в этом объекте. КЛАСС.
(18)не понятно зачем в принципе это фильтр делать если форма вызывает этот можудь значет ег нужно исполнить а не дополнительно фильтровтаь по обекту.
Спасибо. Добавлю еще неочевидный момент:
в форме списка в динамическом списке ОБЯЗАТЕЛЬНО должна быть Ссылка (писали выше). Но если ее видимость отключить в пользовательском режиме (или в конфигураторе - не важно), то печать перестает работать.
Выход: в настройках поля включить флаг "Использовать всегда".
Вот цитата с итс:
Внимание. Поле Ссылка динамического списка формы должно быть доступно в обработчике команды. Для этого необходимо в свойствах поля Ссылка, вложенного в реквизит формы типа ДинамическийСписок, включить флажок Использовать всегда.
При переходе на версию 1С БСП 2.4, приходится переписывать процедуру инициализации подключения стандартной подсистемы «Подключаемые команды». Если в предыдущих версиях использовались процедуры общих модулей «УправлениеПечатью», «ВводНаОснование», «МенюОтчеты», то в версии 2.4 требуется вызывать процедуры одного общего модуля «ПодключаемыеКоманды».
Рассмотрим по шагам, что надо сделать, чтобы подключаемые команды появились на формах добавленных (нетиповых) документов или справочников.
Далее приводятся примеры кода для версии БСП 2.4. Закомментированный код использовался для предыдущих версий БСП .
Инициализация подключаемых команд в процедуре «ПриСозданииНаСервере» в модуле формы объекта (или списка):
В вызываемой процедуре «ПодключаемыеКоманды.ПриСозданииНаСервере()» происходит:
а) программное добавление всех необходимых команд формы
б) расположение их в нужных подменю
Описание подключаемых команд в модуле формы объекта (списка).
В командной панели формы объекта (списка) должны присутствовать отмеченные пункты подменю. Это требование не изменилось в версии 2.4
В модуле менеджера объекта создаются экспортные процедуры для добавления нужных команды на формы объектов. В версии БСП 2.4 есть небольшие изменения, касающиеся параметров процедур.
ДобавитьКомандыСозданияНаОсновании() — экспортная процедура, в которой заполняется таблица «КомандыСозданияНаОсновании». Команды из этой таблицы выводятся на форму в «ПодменюСоздатьНаОсновании».
ДобавитьКомандуСоздатьНаОсновании() — экспортная функция, которая используется для добавления команды создания текущего объекта на основании других объектов.
ДобавитьКомандыОтчетов() — экспортная процедура, в которой заполняется таблица «КомандыОтчетов». Команды из этой таблицы выводятся на форму в «ПодменюОтчеты».
ДобавитьКомандыПечати() — экспортная процедура, в которой заполняется таблица «КомандыПечати». Команды из этой таблицы выводятся на форму в «ПодменюПечать».
Все предыдущие шаги можно сделать по аналогии типовых объектов. При переходе на версию БСП 2.4 во всех типовых объектах разработчики проводят указанные выше модификации. Но для вывода на форму своих (добавленных) объектов этого будет не достаточно, подключаемые команды не появятся на формах. В версии БСП 2.4 необходимо сделать еще следующие доработки:
Дополнительные отчеты и обработки — подсистема 1С БСП, предназначена для расширения функционала без изменения конфигурации.
Для более полного ознакомления можно развернуть демонстрационную конфигурацию по БСП. В ней есть необходимые примеры.
Что можно подключить
- внешние обработки (файлы с расширением “epf”) ;
- внешние отчеты (файлы с расширением «erf»).
Виды разработок
- Дополнительная обработка.
- Дополнительный отчет.
- Заполнение объекта. Возможность установить свои кнопки по заполнению документа (ранее были только кнопки по заполнению табличной части).
- Печатная форма. Дополнительная печатная форма. Добавляется кнопка «Дополнительные печатные формы».
- Отчет. Прикрепляемый к справочникам и документам.
- Создание связанных объектов. Свой ввод на основании. В пункт меню «Ввод на основании» добавляется кнопка «Создание связанных объектов…».
Возможности БСП:
- В документах можно добавлять кнопки по заполнению всего документа, кнопки по вводу на основании.
- Обработка может содержать несколько команд меню.
- Вводить на основании и заполнять объекты сразу на основании нескольких объектов.
- Задавать расписание выполнение серверных команд (на сервере).
- Задавать режим «Безопасный» или «Небезопасный», т.е. запускать обработку с учетом ограничением прав или полные права
- Задать режим использования: «Не использовать», «Отладка», «Использовать».
- Включить использование в формах объекта и в форма списков
- Привязать ко всем указанным объектам обработку или отчет.
- Настроить быстрый доступ к определенным командам внешних обработок.
- Возможность указать в каких разделах интерфейса должны появляться дополнительные обработки и отчеты.
Сведения о внешней обработке
«Вид»
Минимальным условием для регистрации разработки является заполнение поля «Вид».
Значение поле может принимать одно из значений, возвращаемых функциями: ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработки().
Таблица. Поле «ВИД».
«Назначение»
Содержит массив объектов конфигурации в формате «.», для которых будет назначен внешний отчет/обработка.
«Наименование»
Строка. Подставляется в наименование при создании элемента справочника «Дополнительные отчеты и обработки». Если не заполнено, то используется синоним внешней обработки/отчета.
«Команды»
Таблица значений. Загружается в одноименную табличную часть элемента справочника «Дополнительные отчеты и обработки» при регистрации внешней обработки.
Эту табличную часть можно заполнить и вручную.
Колонки таблицы:
Идентификатор – строка (идентификатор команды).
Представление – описание команды.
Модификатор — строка (используется для дополнительных печатных форм).
ПоказыватьОповещение – окно оповещение будет появляться перед началом и после окончания выполнения (для команд клиентских и серверных без формы).
Использование – режим запуска обработки.
В колонке «Использование» указывается тип вызываемой команды. По сочетанию Вид-Тип команды система определяет какая предопределенная процедура будет вызвана из внешней обработки/отчета, и где она будет объявлена — на клиенте или на сервере.
Наиболее часто используются процедуры Печать() и ВыполнитьКоманду(), а также открытие формы без обращения к методу.
Это поле может принимать одно из значений, возвращаемых функциями ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКоманды(), например, ТипКомандыВызовСерверногоМетода().
Таблица. Возможные варианты использования в таблице.
Тип команды | Значение поля «Вид» | Вызываемая экспортная процедура |
ВызовСерверногоМетода | ПечатнаяФорма | Печать( МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) |
ДополнительнаяОбработка ДополнительныйОтчет Отчет | ВыполнитьКоманду( ИдентификаторКоманды, ПараметрыВыполнения) | |
СозданиеСвязанныхОбъектов | ВыполнитьКоманду( ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты, ПараметрыВыполнения) | |
ЗаполнениеОбъекта | ВыполнитьКоманду( ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) | |
ВызовКлиентскогоМетода | ПечатнаяФорма | &НаКлиенте Печать( ИдентификаторКоманды, ОбъектыНазначенияМассив) |
ДополнительнаяОбработка ДополнительныйОтчет | &НаКлиенте ВыполнитьКоманду( ИдентификаторКоманды) | |
СозданиеСвязанныхОбъектов | &НаКлиенте ВыполнитьКоманду( ИдентификаторКоманды, ОбъектыНазначенияМассив, СозданныеОбъекты) | |
ЗаполнениеОбъекта Отчет | &НаКлиенте ВыполнитьКоманду( ИдентификаторКоманды, ОбъектыНазначенияМассив) | |
Для всех видов | в форму передается параметр ДополнительнаяОбработкаСсылка | |
ОткрытиеФормы | СозданиеСвязанныхОбъектов ЗаполнениеОбъекта Отчет | в форму передается дополнительный параметр ОбъектыНазначения |
Для всех видов | в форму передаются параметры ИдентификаторКоманды ДополнительнаяОбработкаСсылка ИмяФормы | |
Отчет | Отчет с макетом СКД может не иметь форму, тогда будет использована общая форма для отчетов по умолчанию | |
ЗаполнениеФормы | ЗаполнениеОбъекта | ВыполнитьКоманду( ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) |
СценарийВБезопасномРежиме | Для всех видов | см. описание в комментарии к функции ДополнительныеОтчетыИОбработкиКлиентСервер .ТипКомандыСценарийВБезопасномРежиме() |
ЗагрузкаДанныхИзФайла | ДополнительнаяОбработка | см. описание в комментарии к функции ДополнительныеОтчетыИОбработкиКлиентСервер .ТипКомандыЗагрузкаДанныхИзФайла() |
Для типа команды ВызовКлиентскогоМетода необходимо создать форму в обработке, назначить ее основной и объявить экспортную процедуру.
«Версия БСП»
Строка, версия встроенной в конфигурации БСП. Необходима для поддержки совместимости. Можно не заполнять.
«Безопасный Режим»
Булево, отображает режим запуска обработка. В безопасном режиме недоступен привилегированный режим, COM-соединение, загрузка dll, доступ к файловой системе и интернету.
«Информация»
Строка, комментарий, который характеризует обработку.
«Версия»
Строка, версия обработки.
Подготовка разработки к подключению.
Для подключения разработки в базу необходимо задать параметры в экспортной функции модуля объекта «СведенияОВнешнейОбработке».
Пример
Подключение к базе.
Открываем справочник «Дополнительные отчеты и обработки». Кнопкой «Добавить» создаем элемент справочника. После чего система предложит прикрепить вашу разработку. Система автоматически заполнит поля формы функцией «СведенияОВнешнейОбработке.
Отладка
Единственный минус дополнительных отчетов и обработок заключается в том, что внутри них не работает встроенный в платформу отладчик.
Связано это в первую очередь с тем, что, запуская такую форму, система создает временный файл, и точки останова не срабатывают.
Читайте также: