Имя: Пароль:
1C
1С v8
Выбор макета для печати
0 Chuvaschow
 
14.03.16
12:51
Здравствуйте!

Подскажите, пожалуйста, как правильно написать: на форме есть кнопка с процедурой

&НаКлиенте
Процедура ВыборПечати()
    
    Меню = Новый СписокЗначений;
    Если Объект.Техника = ПредопределенноеЗначение("Перечисление.ВидДокументаПутевойЛист.Трактор") Тогда
        Меню.Добавить(1,"Путевой лист трактора (412-АПК)");
        Меню.Добавить(2,"Путевой лист тракториста (411-АПК)");
    Иначе
        Меню.Добавить(3,"Путевой лист автомобиля (412-АПК)");
        Меню.Добавить(4,"Путевой лист автомобиля 2 (411-АПК)");
    КонецЕсли;
    
    ВыбратьЗначение = Меню.ВыбратьЭлемент();
    
    Если ВыбратьЗначение = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Если ВыбратьЗначение.Значение = 1 Тогда
        ЭтаФорма.Команды.ПЛТрактора(1);
    Иначе
        Если ВыбратьЗначение.Значение=2 Тогда
            Команды.ПЛТракториста(2);
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Диалог выбора открывается, но на печать не отправляет, ругается что нет такой процедуры ПЛТракториста(2). Как правильно обращаться к командам из модуля формы? Или вцелом решение не верно?
1 mehfk
 
14.03.16
12:52
А на это не ругается?
ЭтаФорма.Команды.ПЛТрактора(1);
2 Cyberhawk
 
14.03.16
12:53
"Как правильно обращаться к командам из модуля формы?" // Обращайся к процедуре-обработчику, которая привязана к команде
3 Chuvaschow
 
14.03.16
12:53
Да, ругается. Пробовал по разному :)
4 Chuvaschow
 
14.03.16
12:54
Команды сделаны с помощью конструктора печати
Обращаться к модулю менеджера?
5 Chuvaschow
 
15.03.16
09:37
Господа, подскажите, правда не понимаю...
6 Chuvaschow
 
15.03.16
15:49
Сделал так (Модуль формы):

&НаКлиенте
Процедура ВыборПечати()
    
    Меню = Новый СписокЗначений;
    Если Объект.Техника = ПредопределенноеЗначение("Перечисление.ВидДокументаПутевойЛист.Трактор") Тогда
        Меню.Добавить(1,"Путевой лист трактора (412-АПК)");
        Меню.Добавить(2,"Путевой лист тракториста (411-АПК)");
    Иначе
        Меню.Добавить(3,"Путевой лист грузового автомобиля (4-П)");
        Меню.Добавить(4,"Путевой лист грузового автомобиля (4-С)");
    КонецЕсли;
    
    ВыбратьЗначение = Меню.ВыбратьЭлемент();
    
    Если ВыбратьЗначение = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Если ВыбратьЗначение.Значение = 1 Тогда
         ВызовПЛТрактора();
     ИначеЕсли ВыбратьЗначение.Значение = 2 Тогда
         ВызовПЛТракториста();
    //ИначеЕсли ВыбратьЗначение.Значение = 3 Тогда
    //     ВызовПЛГрузовогоПовременная();
    //ИначеЕсли ВыбратьЗначение.Значение = 4 Тогда
    //     ВызовПЛГрузовогоСдельная();
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура ВызовПЛТрактора()
    
    ТабДок = Новый ТабличныйДокумент;
    ПечатьПЛТрактора(ТабДок,Объект.Ссылка);

    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать("Форма N 412-АПК");
    
КонецПроцедуры

&НаСервере
Процедура ПечатьПЛТрактора(ТабДок,Ссылка)
    Документы.ПутевойЛист2.ПЛТрактора(ТабДок,Ссылка);
КонецПроцедуры

Работает :) Попинаете?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший