Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказПокупателя"); //Указываем документ к которому делаем внешнюю печ. форму
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Счет договор"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Эту ВПФ мы сделали для того что бы посмотреть возможности БСП ");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, "Счет договор", "СчетНаОплатуВРТУ", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции // СведенияОВнешнейОбработке()()
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВРТУ", "Счет договор", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
КонецПроцедуры // Печать()
ПоказатьНе догоняю как правильно сделать чтобы печатная форма запускалась с двух команд ( одна с факсимиле, другая без) как добавить еще одну команду?
По теме из базы знаний
Найденные решения
Короче те-же грабли, прочитайте комментарии в модуле! И ничего не меняйте!
Прикрепленные файлы:
СчетДоговорФаксимиле.epf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ну во первых следует использовать БСП:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Назначение.Добавить("Документ.ПриходнаяНакладная");
ПараметрыРегистрации.Наименование = НСтр("ru='Печатная форма'");
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.Информация = НСтр("ru = 'Печатная форма'");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru='Форма 1'");
НоваяКоманда.Идентификатор = "ПечатнаяФорма1";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Возврат ПараметрыРегистрации;
КонецФункции
Показать
Во вторых, добавляем команду:
в третьих процедуру "печать" нужно оформить должным образом
Код |
---|
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru='Форма 2''");
НоваяКоманда.Идентификатор = "ПечатнаяФорма2";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Показать полностью |
в третьих процедуру "печать" нужно оформить должным образом
Код |
---|
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм();
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Форма1") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Форма1", "Печатная форма 1", СформироватьПечатнаяФорма1(МассивОбъектов, ОбъектыПечати, КодЯзыкаПечать));
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Форма2") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Форма2", "Печатная форма 2", СформироватьПечатнаяФорма2(МассивОбъектов, ОбъектыПечати, КодЯзыкаПечать));
КонецЕсли;
// параметры отправки печатных форм по электронной почте
УправлениеНебольшойФирмойСервер.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);
КонецПроцедуры
Показать полностью |
(11) блин, ну разве по коду непонятно, что Форма1 это идентификатор команды а "Форма 1" это ее представление, команды 2? как вы сделаете в процедуре "Печать" выбирать вам можно вызывать одну и туже функция формирования таб документ только добавить в нее 4 параметр "ЕстьФаксимиле(булево)" и внутри уже в зависимости от значения выводить его или нет
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ФормаСФаксимиле") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ФормаСФаксимиле", "Печатная форма 1", СформироватьПечатнаяФорма(МассивОбъектов, ОбъектыПечати, КодЯзыкаПечать, Истина));
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ФормаБезФаксимиле") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ФормаБезФаксимиле", "Печатная форма 2", СформироватьПечатнаяФорма(МассивОбъектов, ОбъектыПечати, КодЯзыкаПечать, Ложь));
КонецЕсли;
(12)Не получается( Не появляется команда
Можете сравнить с моим кодом? Я что-то явно не так делаю
Можете сравнить с моим кодом? Я что-то явно не так делаю
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказПокупателя"); //Указываем документ к которому делаем внешнюю печ. форму
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Счет договор"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Эту ВПФ мы сделали для того что бы посмотреть возможности БСП ");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, "Счет договор (факсимиле)", "СчетНаОплатуВРТУ", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ДобавитьКоманду(ТаблицаКоманд, "Счет договор", "СчетНаОплатуВРТУ", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
//ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
//ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
//ПараметрыРегистрации.Назначение.Добавить("Документ.ЗаказПокупателя");
//ПараметрыРегистрации.Наименование = НСтр("Счет договор");
//ПараметрыРегистрации.Версия = "1.0";
//ПараметрыРегистрации.Информация = НСтр("ru = 'Счет договор""'""'");
//НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
//НоваяКоманда.Представление = НСтр("ru='Счет договор (факсимиле)''");
//НоваяКоманда.Идентификатор = "СчетДоговор";
//НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
//
//НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
//НоваяКоманда.Представление = НСтр("ru='Счет договор''");
//НоваяКоманда.Идентификатор = "СчетДоговор";
//НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
//
//Возврат ПараметрыРегистрации;
КонецФункции // СведенияОВнешнейОбработке()()
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
//КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм();
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Счет договор (факсимиле)") Тогда
СФаксимиле = Истина;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетДоговор", "Счет договор", СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, СФаксимиле)); //СформироватьПечатнаяФорма(МассивОбъектов, ОбъектыПечати, КодЯзыкаПечать));
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Счет договор") Тогда
СФаксимиле = Ложь;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетДоговор", "Счет договор", СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, СФаксимиле));
КонецЕсли;
// параметры отправки печатных форм по электронной почте
//УправлениеНебольшойФирмойСервер.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);
//УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВРТУ", "Счет договор", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
КонецПроцедуры // Печать()
Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати, СФаксимиле)
Показать
я же вам дал краткий код процедуры "СведенияОВнешнейОбработке" использующий вызовы БСП, во вторых идентификатор команды у вас одинаковый! "СчетНаОплатуВРТУ" и я сомневаюсь что он придуман вами должнобыть два разных "я_ДоговорСчет" и "я_ДоговорСчетФаксимиле"
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Назначение.Добавить("Документ.ЗаказПокупателя");
ПараметрыРегистрации.Наименование = НСтр("ru='Счет договор'");
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.Информация = НСтр("ru = 'Это моя печ форма'");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru='Счет договор'");
НоваяКоманда.Идентификатор = "_СчетДоговор";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru='Счет договор (факсимиле)'");
НоваяКоманда.Идентификатор = "_СчетДоговорФаксимиле";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Возврат ПараметрыРегистрации;
КонецФункции
Показатьэто раз
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "_СчетДоговор") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "_СчетДоговор", НСтр("ru='Счет договор'"), СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, Ложь));
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "_СчетДоговорФаксимиле") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "_СчетДоговорФаксимиле", НСтр("ru='Счет договор (факсимиле)'"), СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, Истина));
КонецЕсли;
КонецПроцедуры
ПоказатьЭто два!
(19)
Все равно не работает, нет двух команд, так и осталась только одна и ошибку выдает почему-то
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "_СчетДоговор") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "_СчетДоговор", НСтр("ru='Счет договор'"), СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, Ложь));
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "_СчетДоговорФаксимиле") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "_СчетДоговорФаксимиле", НСтр("ru='Счет договор (факсимиле)'"), СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, Истина));
КонецЕсли;
КоллекцияПечатныхФорм);
КонецПроцедуры
ПоказатьЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "_СчетДоговор") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "_СчетДоговор", НСтр("ru='Счет договор'"), СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, Ложь));
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "_СчетДоговорФаксимиле") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "_СчетДоговорФаксимиле", НСтр("ru='Счет договор (факсимиле)'"), СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, Истина));
КонецЕсли;
КоллекцияПечатныхФорм);
КонецПроцедуры
Все равно не работает, нет двух команд, так и осталась только одна и ошибку выдает почему-то
Прикрепленные файлы:
Короче те-же грабли, прочитайте комментарии в модуле! И ничего не меняйте!
Прикрепленные файлы:
СчетДоговорФаксимиле.epf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот