Передача элементов динамического списка в ПараметрКоманды
Приветствую всех!
При вызове процедуры печати из модуля менеджера документа, в ПараметрКоманды содержатся ссылки на выбранные элементы динамического списка.
Подскажите пожалуйста, как передать все значения(Документ.Ссылка) динамического списка в ПараметрКоманды, чтобы пользователь не прибегал к ручному выбору?
Спасибо.
При вызове процедуры печати из модуля менеджера документа, в ПараметрКоманды содержатся ссылки на выбранные элементы динамического списка.
Подскажите пожалуйста, как передать все значения(Документ.Ссылка) динамического списка в ПараметрКоманды, чтобы пользователь не прибегал к ручному выбору?
Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
А какие элементы списка задействованы? Если это выбранные строки, то у ДС есть метод ВыбранныеСтроки - массив в котором хранятся строки выделенные пользователем. Если же нужно что-то выбирать, то можно ДС преобразовать в ТЗ и там осуществлять поиск и вывод нужных строк/значений
(2) Задействованы выбранные строки. Сама задача передать не выбранные строки, а все строки динамического списка в "ПараметрКоманды".
В коде реализовано следующим образом:
В коде реализовано следующим образом:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ТабДок = Новый ТабличныйДокумент;
Печать(ТабДок, ПараметрКоманды);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать("Маршрутный лист");
//}}
КонецПроцедуры
&НаСервере
Процедура Печать(ТабДок, ПараметрКоманды)
Документы.Продажи.Печать(ТабДок, ПараметрКоманды);
КонецПроцедуры
Показать
Выводи ДС в таблицу значений и ее как параметр
&НаСервере
Функция ВТЗ()
//Получаем СКД с текстом запроса
СКД_запрос = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
//Получаем настройки пользователя (отборы, сортировки и т.п.)
Настройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
//Переводим динамический список в таблицу значений
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД_запрос, Настройки, , ,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
ПроцессорВыводаРезультата = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = ПроцессорВыводаРезультата.Вывести(ПроцессорКомпоновкиДанных);// Таблица значений
Возврат ТЗ();
КонецФункции
Показать
(4)
Прошу прощения, я некорректно сформировал вопрос, требуется передать ссылки на все документы содержащиеся в ДС.
В предложенной Вами реализации передаются только строки.
&НаСервере
Функция ВТЗ()
//Получаем СКД с текстом запроса
СКД_запрос = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
//Получаем настройки пользователя (отборы, сортировки и т.п.)
Настройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
//Переводим динамический список в таблицу значений
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД_запрос, Настройки, , ,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
ПроцессорВыводаРезультата = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = ПроцессорВыводаРезультата.Вывести(ПроцессорКомпоновкиДанных);// Таблица значений
Возврат ТЗ();
КонецФункции
ПоказатьФункция ВТЗ()
//Получаем СКД с текстом запроса
СКД_запрос = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
//Получаем настройки пользователя (отборы, сортировки и т.п.)
Настройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
//Переводим динамический список в таблицу значений
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД_запрос, Настройки, , ,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
ПроцессорВыводаРезультата = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = ПроцессорВыводаРезультата.Вывести(ПроцессорКомпоновкиДанных);// Таблица значений
Возврат ТЗ();
КонецФункции
Прошу прощения, я некорректно сформировал вопрос, требуется передать ссылки на все документы содержащиеся в ДС.
В предложенной Вами реализации передаются только строки.
(6) Полагаю годный вариант, спасибо за уделенное внимание и помощь.
Решил другим способом. Передал дату из "ПараметрыВыполненияКоманды" в модуль менеджера, и оттуда дернул запросом.
Возможно кому-то пригодится:
Решил другим способом. Передал дату из "ПараметрыВыполненияКоманды" в модуль менеджера, и оттуда дернул запросом.
Возможно кому-то пригодится:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ТабДок = Новый ТабличныйДокумент;
Если ПараметрыВыполненияКоманды.Источник.ПоказатьВсеПродажи <> Истина Тогда
Печать(ТабДок, ПараметрыВыполненияКоманды.Источник.ДеньПродаж);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать("Маршрутный лист");
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Печать маршрутного листа по всем продажам невозможна. Пожалуйста выберите необходимый день продаж.";
Сообщение.Сообщить();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Печать(ТабДок, ДеньПродаж)
Документы.Продажи.Печать(ТабДок, ДеньПродаж);
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот