Имя: Пароль:
1C
1С v8
Печать всех элементов из динамического списка
0 valerabyvis
 
07.06.23
13:26
Есть динамический список, который печатается при помощи подсистемы "печать" бсп. Проблема в том, что для отбора в результате запроса я использую МассивОбъектов в который передаются только выделенные документы из динамического списка, как сделать так, чтобы передавались все элементы динамического списка? Единственное решение, которое приходит мне на ум это перед нажатием выделять все элементы списка.
1 azernot
 
07.06.23
13:45
(0) Используйте для отбора результатов запроса отборы динамического списка.
2 Михаил Козлов
 
08.06.23
09:58
CtrlA нажать недолго.
3 valerabyvis
 
08.06.23
13:29
С ctrla я абсолютно согласен, но необходимо реализовать именно печать всех одной кнопкой.
Как можно получить параметры отбора пользователя для использования их в моём запросе?
4 timurhv
 
08.06.23
13:51
Необходимо добавить схему компоновки данных по выбору документов, перед печатью копировать отборы формы списка с эту схему, выполнять запрос и получать массив ссылок.


Процедура ПолучитьСсылкиДокументовЗаявка(Элементы, Список) Экспорт
    
    Попытка
        Схема = Документы.Заявка.ПолучитьМакет("СхемаКомпоновкиДанныхВыбораСсылок");
        Настройки = Схема.НастройкиПоУмолчанию;
        Настройки.Отбор.Элементы.Очистить();
        НастройкиДС = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
        ПеренестиОтборДинамическогоСписка(Настройки.Отбор, НастройкиДС.Отбор);
        
        КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
        МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
        
        ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,,Истина);
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
        Результат = Неопределено;
        ПроцессорВывода.УстановитьОбъект(Результат);
        Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
        
        Для Каждого СтрокаРезультат Из Результат Цикл
            <ТутРезультат>
        КонецЦикла;
    Исключение
        ОбщегоНазначения.СообщитьПользователю("ТекстОшибки");
    КонецПопытки;
    
КонецПроцедуры

Процедура ПеренестиОтборДинамическогоСписка(ОтборПриемник, ОтборИсточник) Экспорт
    
    Для Каждого ЭлементИсточник Из ОтборИсточник.Элементы Цикл
        Если ТипЗнч(ЭлементИсточник) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
            ИмяПоля = СокрЛП(ЭлементИсточник.ЛевоеЗначение);
            
            Если ПустаяСтрока(ИмяПоля) Тогда
                Продолжить;
            КонецЕсли;
            
            ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(
                    ОтборПриемник,
                    ИмяПоля,
                    ЭлементИсточник.ВидСравнения,
                    ЭлементИсточник.ПравоеЗначение,
                    ЭлементИсточник.Представление,
                    ЭлементИсточник.Использование,
                    ЭлементИсточник.РежимОтображения);
        ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
            ГруппаЭлементовОтбора = ОтборПриемник.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
            ГруппаЭлементовОтбора.ТипГруппы = ЭлементИсточник.ТипГруппы;
            ПеренестиОтборДинамическогоСписка(ГруппаЭлементовОтбора, ЭлементИсточник);
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры
5 mikecool
 
08.06.23
13:53
(3) "но необходимо реализовать именно печать всех одной кнопкой. " в лес такие хотелки
6 JanK
 
08.06.23
14:16
1. ПолучитьИсполняемуюСхему + ПолучитьИсполняемыеНастройки
2. Из настроек выкинуть все поля кроме ссылки (или даже проще просто выкинуть все поля и добавить ссылку)
3. Выполнить в таблицу значений, например