8.3 управляемое приложение БП
Пытаюсь просто добавить кнопку.
Пишу в модуле менеджера!
Пытаюсь просто добавить кнопку.
Пишу в модуле менеджера!
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
// <Описание процедуры>
//
// Параметры:
// <Параметр1> - <Тип.Вид> - <описание параметра>
// <продолжение описания параметра>
// <Параметр2> - <Тип.Вид> - <описание параметра>
// <продолжение описания параметра>
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
//Накладная
КомандыПечати = КомандыПечати.Добавить();
КомандыПечати.Идентификатор = "Накладная";
КомандыПечати.Представление = НСтр("ru = 'Накладная'");
КомандыПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КонецПроцедуры // ДобавитьКомандыПечати(КомандыПечати)()
#КонецЕсли
ПоказатьПо теме из базы знаний
- Подсистема универсальной печати с помощью MS Word (управляемые формы).
- Добавление команд печати в свои документы в Бухгалтерии 3.0
- Внедрение счет-фактуры в конфигурацию 1С 8.3 Отчетность предпринимателя, редакция 2.0
- Комплексная печать КМ-6 и КМ-7 для 1С Бухгалтерия 8.3 (управляемая форма)
- Cчет с QR кодом и УПД с QR кодом + отключение печати QR - для УТ 10.3, УПП 1.3. УТ 11.5 и 11.4, КА 2.5, ERP 2.5, Бухгалтерия 3, Розница 3, УНФ 3
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) вопрос в том что не фига не работает:(
этот код я взяла с типового документа, пишу в НЕ типовом, не понимаю эту строчку , это ссылка на процедуру в общем модуле..а как нужно у меня? не понимаю...
этот код я взяла с типового документа, пишу в НЕ типовом, не понимаю эту строчку
КомандыПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
"УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати"
(3) И у тебя также.
Только в менеджере там 2 процедуры надо делать
пример из перемещения товаров
мне кажется все прозрачно и понятно. По идентификатору определяется какая функция заполнения ТАБдока вызывается
Только в менеджере там 2 процедуры надо делать
пример из перемещения товаров
мне кажется все прозрачно и понятно. По идентификатору определяется какая функция заполнения ТАБдока вызывается
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ПЕЧАТИ
// Заполняет список команд печати.
//
// Параметры:
// КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Перемещение товаров
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Накладная";
КомандаПечати.Представление = НСтр("ru = 'Перемещение товаров'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
// Накладная на внутреннее перемещение (ТОРГ-13)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ТОРГ13";
КомандаПечати.Представление = НСтр("ru = 'Накладная на внутреннее перемещение (ТОРГ-13)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КонецПроцедуры
// Функция формирует табличный документ с печатной формой накладной,
// разработанной методистами
//
// Возвращаемое значение:
// Табличный документ - печатная форма накладной
//
Функция ПечатьПеремещениеТоваров(МассивОбъектов, ОбъектыПечати)
Возврат ТабличныйДокумент;
КонецФункции // ПечатьПеремещениеТоваров()
// Формирует табличный документ по унифицированной форме ТОРГ-13
//
// Возвращаемое значение
// Табличный документ - унифицированная форма ТОРГ-13
//
Функция ПечатьТОРГ13(МассивОбъектов, ОбъектыПечати)
Возврат ТабличныйДокумент;
КонецФункции
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// Проверяем, нужно ли для макета Накладная формировать табличный документ.
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Накладная") Тогда
// Формируем табличный документ и добавляем его в коллекцию печатных форм.
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Накладная", "Перемещение товаров",
ПечатьПеремещениеТоваров(МассивОбъектов, ОбъектыПечати), , "Документ.ПеремещениеТоваров.ПФ_MXL_Накладная");
КонецЕсли;
// Проверяем, нужно ли для макета ТОРГ13 формировать табличный документ.
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТОРГ13") Тогда
// Формируем табличный документ и добавляем его в коллекцию печатных форм.
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТОРГ13", "ТОРГ-13 (Накладная на внутреннее перемещение)",
ПечатьТОРГ13(МассивОбъектов, ОбъектыПечати), , "ОбщийМакет.ПФ_MXL_ТОРГ13");
КонецЕсли;
ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры
Показать
(7) да :) Просто документы обычно когда новые запиливают, сразу делают по стандартам, чтобы потом проблем не было.
Там ведь правила есть и структуру подчиненности смотреть, и движения документов, и команды печати, и доп реквизиты, и подключаемые обработки заполнения табличных частей.
Все должно быть изначально грамотно сделано, чтобы потом просто пользовать все стандартные фишки подсистем.
Там ведь правила есть и структуру подчиненности смотреть, и движения документов, и команды печати, и доп реквизиты, и подключаемые обработки заполнения табличных частей.
Все должно быть изначально грамотно сделано, чтобы потом просто пользовать все стандартные фишки подсистем.
в нетиповом надо еще документ сделать в соответствии с подсистемами.
Там в зависимости от подсистем, надо сначала в модуле формы причесать в соответствии с текущими подсистемами. А именно, там надо процедуры подключаемых команд скопипастить,
В процедурах при открытии и при создании на сервере вызвать обработчики из общих модулей.
И еще на форме элементы формы надо повторить, и обозвать также как в типовом документе. Там по имени ищется - например в комендной панели "ПодменюПечать".
А уж потом в менеджере добавлять
Там в зависимости от подсистем, надо сначала в модуле формы причесать в соответствии с текущими подсистемами. А именно, там надо процедуры подключаемых команд скопипастить,
В процедурах при открытии и при создании на сервере вызвать обработчики из общих модулей.
И еще на форме элементы формы надо повторить, и обозвать также как в типовом документе. Там по имени ищется - например в комендной панели "ПодменюПечать".
А уж потом в менеджере добавлять
(11)
У меня кнопка печати в нетиповом документе выводится так:
В модуле менеджера прописать ЭТО:
В модуле Формы прописать ЭТО:
(7)
Да.
(8)
ВАШ документ надо делать по шаблону, который используется в типовой конфигурации.
) да!
У меня кнопка печати в нетиповом документе выводится так:
В модуле менеджера прописать ЭТО:
// Заполняет список команд печати.
//
// Параметры:
// КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Заявка-дог. клиента
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ЗаявкаДоговорКлиента";
КомандаПечати.Представление = НСтр("ru = 'Заявка-дог. клиента (без печати и подписи)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаДокументаУпр";
КонецПроцедуры
// Сформировать печатные формы объектов
//
// ВХОДЯЩИЕ:
// ИменаМакетов - Строка - Имена макетов, перечисленные через запятую
// МассивОбъектов - Массив - Массив ссылок на объекты которые нужно распечатать
// ПараметрыПечати - Структура - Структура дополнительных параметров печати
//
// ИСХОДЯЩИЕ:
// КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
// ПараметрыВывода - Структура - Параметры сформированных табличных документов
//
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЗаявкаДоговорКлиента") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ЗаявкаДоговорКлиента", "Заявка-дог. клиента",
ПечатьЗаявкаДоговор(МассивОбъектов, ОбъектыПечати,"Клиент"),,"Документ.ЗаявкаНаПеревозкуГруза.ЗаявкаНовая");
КонецЕсли;
ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры
// Заполняет список команд отправки по электронной почте.
//
// Параметры:
// КомандыОтправки - ТаблицаЗначений - состав полей см. в функции ОтправкаПочтовыхСообщений.КомандыОтправки
//
Процедура ДобавитьКомандыОтправки(КомандыОтправки) Экспорт
// Счет на оплату
КомандаОтправки = КомандыОтправки.Добавить();
КомандаОтправки.Идентификатор = "ЗаявкаДоговорКлиентаСПеч";
КомандаОтправки.Представление = НСтр("ru='Заявка-дог. клиента (с печатью и подписью)'");
КомандаОтправки.Порядок = 10;
КонецПроцедуры
ПоказатьВ модуле Формы прописать ЭТО:
// Хранит дерево макетов печатных форм
Перем мДеревоМакетов;
// Хранит элемент управления подменю печати
Перем мПодменюПечати;
// Хранит элемент управления кнопку печать по умолчанию
Перем мПечатьПоУмолчанию;
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.Печать
//Размещает команды печати на форме
УправлениеПечатью.ПриСозданииНаСервере(ЭтотОбъект, );
// Конец СтандартныеПодсистемы.Печать
// ДополнительныеОтчетыИОбработки
ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере(ЭтотОбъект);
// Конец ДополнительныеОтчетыИОбработки
// СтандартныеПодсистемы.ВерсионированиеОбъектов
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
КонецПроцедуры
// СтандартныеПодсистемы.Печать
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Печать
Показать(7)
это, извиняюсь, всё нужно сделать для того чтобы добавить одну кнопку программно ????????
Да.
(8)
вот это совсем не поняла:( какой еще документ нужно делать?
ВАШ документ надо делать по шаблону, который используется в типовой конфигурации.
В нетиповом документе добавляла в модуль формы
в модуле менеджера документа
в общий модуль УправлениеПечатьюПереопределяемый в процедуру Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт созданный документ
Да, и еще, как отмечено выше на форму документа вывести Группу кнопок ГруппаКнопкиКоманднойПанели и подменю ГруппаПечать. Это лучше посмотреть у типовых докуметах
#Область ПодключениеСтандартныхПодсистемДополнительныеОтчетыИОбработкиПечать
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
#КонецОбласти
Показатьв модуле менеджера документа
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КонецПроцедуры
в общий модуль УправлениеПечатьюПереопределяемый в процедуру Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт созданный документ
Да, и еще, как отмечено выше на форму документа вывести Группу кнопок ГруппаКнопкиКоманднойПанели и подменю ГруппаПечать. Это лучше посмотреть у типовых докуметах

Выше код приведён для устаревшего БСП.
В БСП 2.4.3 + нужны другие процедуры в модуле формы документа и в модуле формы списка. А самое главное теперь нужно вносить изменения в Общий модуль "УправлениеПечатьюПереопределяемый"
В модуле формы документа:
В модуле формы списка:
В форме списка может всплывать ошибка "Команда не может быть выполнена для указанного объекта". Вам надо в форму списка вывести реквизит "Ссылка" и сделать его видимым, тогда ошибка пропадёт.
В модуле менеджера нужно вносить такие же изменения, как в предыдущем сообщении
В БСП 2.4.3 + нужны другие процедуры в модуле формы документа и в модуле формы списка. А самое главное теперь нужно вносить изменения в Общий модуль "УправлениеПечатьюПереопределяемый"
Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
....
СписокОбъектов.Добавить(Документы.ФормированиеЗаписейРаздела7ДекларацииНДС);
//Добавим свои документы
СписокОбъектов.Добавить(Документы.Документ1);
СписокОбъектов.Добавить(Документы.Документ2);
....
КонецПроцедуры
В модуле формы документа:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
ПоказатьВ модуле формы списка:
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Элементы.Список)
КонецПроцедуры
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
Если Команда.Имя = "ПодменюПечатьОбычное_Реестр" Тогда
НастройкиДинамическогоСписка();
КонецЕсли;
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
ПоказатьВ форме списка может всплывать ошибка "Команда не может быть выполнена для указанного объекта". Вам надо в форму списка вывести реквизит "Ссылка" и сделать его видимым, тогда ошибка пропадёт.
В модуле менеджера нужно вносить такие же изменения, как в предыдущем сообщении
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот