OnlyGoRush
@OnlyGoRush
Студент

Как создать модульное окно ввода данных для формирования по ним отчета?

Здравствуйте, создал отчет по данным справочника ИнформацияОбУчениках, который выводит список всех учеников данного класса. Вот только, чтобы задать класс приходиться каждый раз менять в коде переменную НужныйКласс, а это совсем-совсем нехорошо. И вот я озадачился проблемой создания модального окна с вводом данных класса, по которому хочу сформировать отчет, пытался это сделать при помощи команды ВвестиСтроку, однако выскакивает ошибка, что процедура или функция с именем ВвестиСтроку не определена. Возможно модульные окна вообще не делаются на стороне сервера и их как-то надо пытаться реализовать на клиенте, а может команду не ту использую. Будьте добры, скажите как разрешить вопрос.
Вот код который я нашкрябал:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	// модальное окно с запросом ввода класса
	НужныйКласс = ""; //Перем НужныйКласс
	ВвестиСтроку(НужныйКласс, "Введите класс.", 2, Ложь); 
	
	Выборка = Справочники.ИнформацияОбУчениках.Выбрать(,,,"Наименование");
	
	Макет = Отчеты.УченикиВКлассе.ПолучитьМакет("Макет");
	ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
	ОбластьНазвЭлементов = Макет.ПолучитьОбласть("НазвЭлементов");
	ОбластьЭлементы = Макет.ПолучитьОбласть("Элементы");
	
	ТабДок.Вывести(ОбластьШапка);
	ТабДок.Область("R1C1:R1C4").Текст = "Ученики в " + НужныйКласс + " классе";
	ТабДок.Вывести(ОбластьНазвЭлементов);
	
	Пока Выборка.Следующий() Цикл		
		Если Выборка.Класс.Наименование = НужныйКласс Тогда
			ОбластьЭлементы.Параметры.Заполнить(Выборка);
			ТабДок.Вывести(ОбластьЭлементы);
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры
  • Вопрос задан
  • 269 просмотров
Решения вопроса 1
nki
@nki
bezkart.ru готовая система лояльности
Как вы представляете себе ввод строки на сервере? Это однозначно должно выполняться на клиенте.
Данные о классе получайте запросом. Ваш вариант перебором очень не оптимальный.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Dementor
программист, архитектор, аналитик
ВвестиСтроку() - вариант для интерфейса на обычных формах для толстого клиента
Вам нужно использовать ПоказатьВводСтроки() - для клиент-серверной работы в интерфейсе управляемого приложения.

Прочел ваш код - ужас. Почему вы не хотите сделать форму для вашего отчета? Свой класс можете вводить через реквизит формы, а результат выводить на поле табличного документа.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы