Имя: Пароль:
1C
 
ВПФ УПД печать из реализации
0 program345
 
20.01.18
11:35
привет!
Сделал УПД: печатается из реализации (вид операции товары), ищет документ счет-фактура и печатает. Тут одна команда: упдВариант1, а как запихнуть вторую?


Товары в реализации:

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


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



Так же некрасиво:

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

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

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


рад подсказкам.
1 program345
 
20.01.18
12:37
ап
2 Borteg
 
20.01.18
12:42
(0) всмысле некрасиво?
3 program345
 
20.01.18
13:16
получается 2 кнопочки с печатью, в типовой то одна.
4 Borteg
 
20.01.18
13:38
(3) ну убери кнопку какую не надо ДобавитьКоманду(ТаблицаКоманд, "УПД (ред.)", "УПДСтатус2_981", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
5 program345
 
20.01.18
17:24
тогда не печатает Реализацию с услугами
6 Мимохожий Однако
 
20.01.18
17:49
На кнопке сделай меню, а в нём два действия
7 program345
 
26.01.18
14:18
Функция СведенияОВнешнейОбработке()Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
    МассивНазначений.Добавить("Документ.СчетФактураВыданный");
    
    //Указываем документ к которому делаем внешнюю печ. форму
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "УПД (ред.)");
    //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "УПД (ред.)");
    ТаблицаКоманд = Получить();
    ДобавитьКоманду(ТаблицаКоманд, "УПД (ред.)", "УПДСтатус2_981", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ДобавитьКоманду(ТаблицаКоманд, "УПД (ред.)", "УПДСтатус1_981", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

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

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

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Макет = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_УниверсальныйПередаточныйДокумент981");
    
    Если НужноПечататьМакет(КоллекцияПечатныхФорм, "УПДСтатус2_981") Тогда
        ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов = "";
        Для каждого Объект Из МассивОбъектов Цикл
            Если ТипЗнч(Объект) <> Тип("ДокументСсылка.СчетФактураВыданный") Тогда
                ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов =
                    //Документы[Объект.Метаданные().Имя].ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов(Истина);
                    Документы.РеализацияТоваровУслуг.ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов(Истина);
                Прервать;
            КонецЕсли;
        КонецЦикла;
        Если НЕ ПустаяСтрока(ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов) Тогда
            ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УПДСтатус2_981", "УПД (статус 2)",
                    ПечатьУниверсальныхПередаточныхДокументов981(МассивОбъектов, ОбъектыПечати,
                    ТекстЗапросаПечатьУниверсальныхПередаточныхДокументов, Истина),,
                    Макет);
        КонецЕсли;
    КонецЕсли;        
    
КонецПроцедуры // Печать()
8 program345
 
26.01.18
14:19
как эти две команды преобразовать в одну кнопочку?
    ДобавитьКоманду(ТаблицаКоманд, "УПД (ред.)", "УПДСтатус2_981", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ДобавитьКоманду(ТаблицаКоманд, "УПД (ред.)", "УПДСтатус1_981", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
9 program345
 
26.01.18
14:52
как в типовой, там же для разных статусов УПД одна кнопка
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший