Имя: Пароль:
1C
1С v8
Управляемое приложение
,
0 SnikRu
 
24.10.12
10:48
Подскажите плиз почему в управляемой форме не работает простейший запрос с обработкой результата?

&НаСервере
Процедура Заполнить(Команда)
   // Вставить содержимое обработчика.
   //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   ТабДок = Новый ТабличныйДокумент;
   Макет = Документы.СписаниеОбразцов.ПолучитьМакет("Макет");
   Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ОбразцыДляАнализа.Препарат,
       |    ОбразцыДляАнализа.Лаборатория,
       |    ОбразцыДляАнализа.Количество,
       |    ОбразцыДляАнализа.Регистратор.ЕдИзм,
       |    ОбразцыДляАнализа.Регистратор.ХранитьДо
       |ИЗ
       |    РегистрНакопления.ОбразцыДляАнализа КАК ОбразцыДляАнализа
       |ГДЕ
       |    ОбразцыДляАнализа.Лаборатория = &Лаборатория
       |    И ОбразцыДляАнализа.Регистратор.ХранитьДо < &ХранитьДо";

   Запрос.УстановитьПараметр("Лаборатория", ЭтаФорма.Элементы.МестоХранения);
   Запрос.УстановитьПараметр("ХранитьДо", ЭтаФорма.Элементы.Дата);

   Результат = Запрос.Выполнить();

   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
   ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
   ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

   ТабДок.Очистить();
   ТабДок.Вывести(ОбластьЗаголовок);
   ТабДок.Вывести(ОбластьШапкаТаблицы);

   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
       ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
       ТабДок.Вывести(ОбластьДетальныхЗаписей);
   КонецЦикла;

   ТабДок.Вывести(ОбластьПодвалТаблицы);
   ТабДок.Вывести(ОбластьПодвал);
   ТабДок.Показать();

   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА




КонецПроцедуры
1 butterbean
 
24.10.12
10:48
что значит "не работает"??
2 and2
 
24.10.12
10:49
как то "Команда" на сервере - режет глаз...
3 Cube
 
24.10.12
10:49
(0) "ТабДок.Показать();"??? На сервере??? И кому ты его на сервере показать хотел? :)
4 Reset
 
24.10.12
10:51
Запрос.УстановитьПараметр("Лаборатория", ЭтаФорма.Элементы.МестоХранения);
   Запрос.УстановитьПараметр("ХранитьДо", ЭтаФорма.Элементы.Дата);
5 Wobland
 
24.10.12
10:51
+(3) его надо вернуть клиенту, а клиент уже пускай и показывает
6 Reset
 
24.10.12
10:51
ЭтаФорма.Элементы.МестоХранения
7 aleks-id
 
24.10.12
10:51
из процедуры сделай функцию, последней строкой - Возврат ТабДок; вместо ТабДок.Показать();
8 Reset
 
24.10.12
10:51
Формы стали управляемыми, а ошибки те же
9 and2
 
24.10.12
10:53
нет.
ошибки стали веселей и задорней....
10 aleks-id
 
24.10.12
10:53
(9) места петросянов сменили задорновы? )))
11 SnikRu
 
27.10.12
13:18
С управляемой разобрался. Особая благодарность добрым и отзывчивыв коллегам. Работоспособный код заполнения табличной части документа результатом запроса в управляемой форме. Может кому-то пригодится.

&НаКлиенте
Процедура Заполнить(Команда)
   РаботаНаСервере();
   
КонецПроцедуры

&НаСервере
Процедура РаботаНаСервере()
   Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ОбразцыДляАнализа.Препарат,
       |    ОбразцыДляАнализа.Лаборатория,
       |    ОбразцыДляАнализа.ХранитьДо,
       |    ОбразцыДляАнализа.Количество,
       |    ОбразцыДляАнализа.ЕдИзм
       |ИЗ
       |    РегистрНакопления.ОбразцыДляАнализа КАК ОбразцыДляАнализа
       |ГДЕ
       |    ОбразцыДляАнализа.Лаборатория = &Лаборатория
       |    И МЕСЯЦ(ОбразцыДляАнализа.ХранитьДо) = &ХранитьДо";


   Запрос.УстановитьПараметр("Лаборатория", Справочники.Лаборатории.НайтиПоНаименованию("Архив контрольных образцов"));
   Запрос.УстановитьПараметр("ХранитьДо",Месяц(ТекущаяДата()));
   Объект.ПолеСписания.Загрузить(Запрос.Выполнить().Выгрузить());
   КонецПроцедуры