Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Внешння печатная форма и 2 команды печати , Нужна помощь в определении какая команда печати была выбрана          
Profi_1C77 Подменю пользователя
сообщение 07.04.25, 10:07
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 129
Из: Черкассы
Спасибо сказали: 31 раз
Рейтинг: 31

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

    
    
    
    Возврат ПараметрыРегистрации;

КонецФункции

Процедура Печать(МассивОбъектов,КоллекцияПечатныхФорм , ОбъектыПечати, ПараметрыВывода) Экспорт
    
        
    //      
    ТолькоСНДС = Истина; // печать только с НДС строк
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            ЭтотОбъект.Метаданные().Имя,
            НСтр("ru = 'Тест'"),
            СформироватьПечатнуюФормуАКТ(МассивОбъектов,ТолькоСНДС),
            ,
            );  
            
    
    //ФормированиеПечатныхФорм.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);

КонецПроцедуры


AnryMc Подменю пользователя
сообщение 07.04.25, 10:27
Сообщение #2

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 510
Спасибо сказали: 133 раз
Рейтинг: 135.4

Profi_1C77 @ Сегодня, 10:07 * ,
Для БСП

Сначала в функцию СведенияОВнешнейОбработке добавляем наши команды:
ДобавитьКоманду(ТаблицаКоманд, "Спецификация Стильвер", "СпецификацияСтильвер", "ВызовСерверногоМетода", Истина, "
ДобавитьКоманду(ТаблицаКоманд, "Спецификация Вайлдберриз", "СпецификацияВайлдберриз", "ВызовСерверногоМетода",

Потом меняем процедуру Печать:
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СпецификацияСтильвер") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"СпецификацияСтильвер",
"Спецификация Стильвер",
ПечатьФормы(МассивОбъектов, "ПФ_MXL_СпецификацияСтильвер"));
ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СпецификацияВайлдберриз") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"СпецификацияВайлдберриз",
"Спецификация Вайлдберриз",
ПечатьФормы(МассивОбъектов, "ПФ_MXL_СпецификацияВайлдберриз"));
КонецЕсли;
КонецПроцедуры

В функцию Печатьформы добавляем входной параметр ИмяМакета, и в зависимости от его значения переписываем
формирование табличного документа.
Функция ПечатьФормы(МассивОбъектов, ИмяМакета) Экспорт
ТабличныйДокумент = новый ТабличныйДокумент;
Макет = ПолучитьМакет(ИмяМакета);
....
КонецФункции


Signature
Я можу зробити цю роботу:
- Швидко
- Якісно
- Дешево

Виберіть 2 будь-які пункти

Profi_1C77 Подменю пользователя
сообщение 07.04.25, 10:35
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 129
Из: Черкассы
Спасибо сказали: 31 раз
Рейтинг: 31

Цитата(AnryMc @ 07.04.25, 11:27) *
ДобавитьКоманду(ТаблицаКоманд, "Спецификация Стильвер", "СпецификацияСтильвер", "ВызовСерверногоМетода", Истина, "
ДобавитьКоманду(ТаблицаКоманд, "Спецификация Вайлдберриз", "СпецификацияВайлдберриз", "ВызовСерверногоМетода",

тут не очень понимаю...
ТаблицаКоманд - как формируется?

AnryMc Подменю пользователя
сообщение 07.04.25, 10:42
Сообщение #4

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 510
Спасибо сказали: 133 раз
Рейтинг: 135.4

Profi_1C77 @ Сегодня, 10:35 * ,

Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    
    Наименование = УказатьНаименованиеВнешнейПечатнойФормы();
    
    МассивНазначений.Добавить(ПолучитьМетаданныеДокументаПечати());
    //может быть - ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("Наименование", Наименование);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    //так будет выглядеть описание печ.формы для пользователя
    ПараметрыРегистрации.Вставить("Информация", Наименование);
    
    [b]ТаблицаКоманд = ПолучитьТаблицуКоманд();[/b]
    ДобавитьКоманду(ТаблицаКоманд, Наименование, УказатьНаименованиеКомандыПечати(), "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

[b]Функция ПолучитьТаблицуКоманд()[/b]
    
    Команды = Новый ТаблицаЗначений;
    //как будет выглядеть описание печ.формы для пользователя
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    //имя макета печ.формы
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    //ВызовСерверногоМетода
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    
    Возврат Команды;
КонецФункции


Signature
Я можу зробити цю роботу:
- Швидко
- Якісно
- Дешево

Виберіть 2 будь-які пункти

Спасибо сказали: Profi_1C77,

sava1 Подменю пользователя
сообщение 07.04.25, 10:47
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2745
Из: Проскуров
Спасибо сказали: 705 раз
Рейтинг: 684.2

Цитата(AnryMc @ 07.04.25, 11:42) *
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = Синоним + " без ПДВ";
Команда.Идентификатор = ИмяОбработки;


идентификатор замените. а далее анализируем в Печать

Спасибо сказали: Profi_1C77,

Profi_1C77 Подменю пользователя
сообщение 07.04.25, 14:17
Сообщение #6

Завсегдатай
****
Группа: Пользователи
Сообщений: 129
Из: Черкассы
Спасибо сказали: 31 раз
Рейтинг: 31

Цитата(sava1 @ 07.04.25, 11:47) *
идентификатор замените. а далее анализируем в Печать

действительно
если
Команда.Идентификатор         = ИмяОбработки;

и
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм, ИмяОбработки,
            НСтр("ru = 'Тест'"),
            СформироватьПечатнуюФормуАКТ(МассивОбъектов,ТолькоСНДС),
            ,
            );  


и ....
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, ИмяОбработки)

работает

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.04.25, 10:02
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!