Имя: Пароль:
1C
1С v8
Одна кнопка и несколько вариантов макета
0 gu_viktoria
 
17.08.18
11:37
Есть документ в нем два макета,в модуле менеджера описаны функции вывода в макет. Не знаю как и в каком месте сделать чтобы по нажатии кнопки печать выбор какой макет вывести.
Гугл не помог
1 gu_viktoria
 
17.08.18
11:38
выбрать*
2 Вафель
 
17.08.18
11:54
сделай просто 2 печатные формы. сами пускай выбирают
3 gu_viktoria
 
17.08.18
11:58
(2) Так и есть,не знаю как сделать чтобы можно было выбрать
4 Мимохожий Однако
 
17.08.18
12:03
(3) Две печатные формы сделала уже?
5 gu_viktoria
 
17.08.18
12:07
(4) Да
Вопрос только в том как при нажатии на кнопку "Печать" вывалился список какую печатку мне надо распечатать
6 Вафель
 
17.08.18
12:08
(5) посмотри как в типовых сделано
7 gu_viktoria
 
17.08.18
12:09
(6) Там БСП. Добавлять общий модуль надо итд. Может как-то проще сделать можно?
8 Мимохожий Однако
 
17.08.18
12:10
Если типовая конфигурация, то при подключении печатных форма настраиваешь названия кнопок.
9 gu_viktoria
 
17.08.18
12:12
(8) Самописная
10 shadow_sw
 
17.08.18
12:13
(7) в УТ10.3 посмотри..без БСП, документ РТиУ, к примеру
11 gu_viktoria
 
17.08.18
12:39
(10) Блин,у меня нет УТ
12 gu_viktoria
 
17.08.18
12:40
В Рознице нет такого?
13 Вафель
 
17.08.18
12:41
обычные формы?
14 gu_viktoria
 
17.08.18
12:42
(13) управляемые
15 gu_viktoria
 
17.08.18
13:22
up
16 Вафель
 
17.08.18
13:25
в упр формах можно группу кнопок сделать и будет меню
17 КоньЛапчатый
 
17.08.18
13:51
СписокПечатныхФорм = Новый СписокЗначений;
СписокПечатныхФорм.Добавить(1,"Договор);    
СписокПечатныхФорм.Добавить(2,"Товарный чек");
ВыбраннаяФорма = СписокПечатныхФорм.ВыбратьЭлемент("Выберите печатную форму.",);
18 Serg_1960
 
17.08.18
14:33
Лучше уж две кнопки (это уже много для юзверей, боитесь запутаются?), чем когда на сервере ответить некому будет на вопрос :)
19 gu_viktoria
 
17.08.18
15:08
(16) (18)  делаю с двумя кнопками, запуталась в передаваемых параметрах
20 gu_viktoria
 
17.08.18
15:10
&НаКлиенте
Процедура ПечатьОтчетБаланс(Команда)
    // Вставить содержимое обработчика.
КонецПроцедуры




Функция ПечатьОтчетБаланс(ТабДок, Ссылка) Экспорт
    
    Макет = Документы.КонсолидированныйБаланс.ПолучитьМакет("ОтчетБаланс");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    КонсолидированныйБаланс.Дата КАК Дата,
    |    КонсолидированныйБаланс.Номер КАК Номер,
    |    КонсолидированныйБаланс.Организация.НаимЮЛПол КАК НаимЮЛПол,
    |    КонсолидированныйБаланс.Организация.КодПоОКПО КАК КодПоОКПО,
    |    КонсолидированныйБаланс.Организация.ГКЭД КАК ГКЭД,
    |    КонсолидированныйБаланс.Организация.КодПравовойФормы КАК КодПравовойФормы,
    |    КонсолидированныйБаланс.Организация.НаимГКЭД КАК НаимГКЭД,
    |    КонсолидированныйБаланс.Организация.ОргПравФорм КАК ОргПравФорм,
    |    КонсолидированныйБаланс.Организация.ОрганУправления КАК ОрганУправления,
    |    КонсолидированныйБаланс.Организация.ИННЮЛ КАК ИННЮЛ,
    |    КонсолидированныйБаланс.Организация.АдрЮР КАК АдрЮР,
    |    КонсолидированныйБаланс.Организация.ТелГБ КАК ТелГБ,
    |    КонсолидированныйБаланс.Организация.ФИОРук КАК ФИОРук,
    |    КонсолидированныйБаланс.Организация.ФИОБух КАК ФИОБух,
    |    ПРЕДСТАВЛЕНИЕ(КонсолидированныйБаланс.Организация) КАК Предприятие,
    |    КонсолидированныйБаланс.ДатаНПП КАК ДатаН,
    |    КонсолидированныйБаланс.ДатаКПП КАК ДатаК,
    |    КонсолидированныйБаланс.Отчет.(
    |        Наименование КАК Наименование,
    |        НаименованиеК КАК НаименованиеК,
    |        Строка КАК Строка,
    |        Сумма КАК СуммаН,
    |        СуммаПП КАК СуммаК
    |    ) КАК Отчет
    |ИЗ
    |    Документ.КонсолидированныйБаланс КАК КонсолидированныйБаланс
    |ГДЕ
    |    КонсолидированныйБаланс.Ссылка В(&Ссылка)";
    
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьШапка = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьДетали = Макет.ПолучитьОбласть("Детали");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    
    ТабДок.Очистить();
    
    ВставлятьРазделительСтраниц = Ложь;
    Пока Выборка.Следующий() Цикл
        Если ВставлятьРазделительСтраниц Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        ТабДок.Вывести(ОбластьЗаголовок);
        
        ОбластьШапка.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(ОбластьШапка, Выборка.Уровень());
        
        
        ВыборкаОтчет = Выборка.Отчет.Выбрать();
        
        Пока ВыборкаОтчет.Следующий() Цикл
            ОбластьДетали.Параметры.Заполнить(ВыборкаОтчет);
            ТабДок.Вывести(ОбластьДетали, ВыборкаОтчет.Уровень());
        КонецЦикла;
        
        ОбластьПодвал.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(ОбластьПодвал);
        ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;
    
    Возврат ТабДок;
    
КонецФункции
21 gu_viktoria
 
17.08.18
15:10
Какие параметры ей нужны ?
22 gu_viktoria
 
17.08.18
15:56
Вопрос закрыт,всем большое спасибо
Что сделала:
Создала "Группы команд" на ветке "Общее"
В свойствах Категория:Командная панель формы

Было создано две стандартные команды печати конструктором
В свойствах:

Группа:Командная панель формы.<Имя группы>
Тип параметра команды: ДокументСсылка.<Имя Документа>
Режим Использования : Множественный

В модуле команды :

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

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


В модуле менеджера:
Функция ПечатьОтчетБаланс(ТабДок, Ссылка) Экспорт
    
    Макет = Документы.КонсолидированныйБаланс.ПолучитьМакет("ОтчетБаланс");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    КонсолидированныйБаланс.Дата КАК Дата,
    |    КонсолидированныйБаланс.Номер КАК Номер,
    |    КонсолидированныйБаланс.Организация.НаимЮЛПол КАК НаимЮЛПол,
    |    КонсолидированныйБаланс.Организация.КодПоОКПО КАК КодПоОКПО,
    |    КонсолидированныйБаланс.Организация.ГКЭД КАК ГКЭД,
    |    КонсолидированныйБаланс.Организация.КодПравовойФормы КАК КодПравовойФормы,
    |    КонсолидированныйБаланс.Организация.НаимГКЭД КАК НаимГКЭД,
    |    КонсолидированныйБаланс.Организация.ОргПравФорм КАК ОргПравФорм,
    |    КонсолидированныйБаланс.Организация.ОрганУправления КАК ОрганУправления,
    |    КонсолидированныйБаланс.Организация.ИННЮЛ КАК ИННЮЛ,
    |    КонсолидированныйБаланс.Организация.АдрЮР КАК АдрЮР,
    |    КонсолидированныйБаланс.Организация.ТелГБ КАК ТелГБ,
    |    КонсолидированныйБаланс.Организация.ФИОРук КАК ФИОРук,
    |    КонсолидированныйБаланс.Организация.ФИОБух КАК ФИОБух,
    |    ПРЕДСТАВЛЕНИЕ(КонсолидированныйБаланс.Организация) КАК Предприятие,
    |    КонсолидированныйБаланс.ДатаНПП КАК ДатаН,
    |    КонсолидированныйБаланс.ДатаКПП КАК ДатаК,
    |    КонсолидированныйБаланс.Отчет.(
    |        Наименование КАК Наименование,
    |        НаименованиеК КАК НаименованиеК,
    |        Строка КАК Строка,
    |        Сумма КАК СуммаН,
    |        СуммаПП КАК СуммаК
    |    ) КАК Отчет
    |ИЗ
    |    Документ.КонсолидированныйБаланс КАК КонсолидированныйБаланс
    |ГДЕ
    |    КонсолидированныйБаланс.Ссылка В(&Ссылка)";
    
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьШапка = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьДетали = Макет.ПолучитьОбласть("Детали");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    
    ТабДок.Очистить();
    
    ВставлятьРазделительСтраниц = Ложь;
    Пока Выборка.Следующий() Цикл
        Если ВставлятьРазделительСтраниц Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        ТабДок.Вывести(ОбластьЗаголовок);
        
        ОбластьШапка.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(ОбластьШапка, Выборка.Уровень());
        
        
        ВыборкаОтчет = Выборка.Отчет.Выбрать();
        
        Пока ВыборкаОтчет.Следующий() Цикл
            ОбластьДетали.Параметры.Заполнить(ВыборкаОтчет);
            ТабДок.Вывести(ОбластьДетали, ВыборкаОтчет.Уровень());
        КонецЦикла;
        
        ОбластьПодвал.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(ОбластьПодвал);
        ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;
    
    Возврат ТабДок;
    
КонецФункции
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн