Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 00:43

Загрузка в табличную часть справочника регистра сведений

Автор andryus, 28 окт 2023, 23:23

0 Пользователей и 1 гость просматривают эту тему.

andryus

Есть регистр Сведений СоставКомпьютера. в котором Измерение-Компьютер, а ресурсы СистемныйБлок, Принтер, Монитор, ИБП. Задача открываем в справочнике компьютеры любой компьютер и в табличную часть этого справочника загружаются сведения о составе данного компьютера из регистра сведений (ну конечно идеально было бы это просто выводить в виде текстовой информации, но пока хотя-бы в табличную часть). Написал модуль, но не работает

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

Запрос.УстановитьПараметр("Компьютер", Компьютер);
   
    Результат = Запрос.Выполнить();
ВремТаб = Результат.Выгрузить();

Возврат  ВремТаб;

КонецФункции

&НаКлиенте
Процедура ПриОткрытии(Отказ)
Компьютер = Объект.Ссылка;

СоставКомпа = ЗаполнитьСоставКомпьютера(Компьютер);

КонецПроцедуры

Вообщем, возврат из функции не работает, типа не может передать разные объекты или что то в этом роде. В чем ошибка?

andryus

Сделал текст ошибка была в том что надо было делать на &НаСервере а не на &НаСервереБезКонтекста

&НаСервере
Процедура ЗаполнитьСоставКомпьютера() 
Объект.СоставКомпьютера.Очистить();

Компьютер = ОБъект.Ссылка;           

Запрос = Новый Запрос;
     Запрос.Текст = "ВЫБРАТЬ
| СоставКомпьютера.СистемныйБлок КАК СистемныйБлок,
| СоставКомпьютера.Монитор КАК Монитор,
| СоставКомпьютера.Принтер КАК Принтер,
| СоставКомпьютера.ИБП КАК ИБП
|ИЗ
| РегистрСведений.СоставКомпьютера КАК СоставКомпьютера
|ГДЕ
| СоставКомпьютера.Компьютер = &Компьютер";

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)

ЗаполнитьСоставКомпьютера();

КонецПроцедуры

Но это еще не все, теперь хочу сделать чтобы информация выводилась в справочнике при открытии просто текстом, то есть убрать табличную часть, она ни к чему. Как передать это в виде текста чтобы при открытии отображалось?

Максим75

andryus, так в текстовый реквизит формы заверните.
т.е. когда в цикле обходите, то не строку табличной части добавляете и заполняете, а заполняете этот текстовый реквизит. Там уже сами смотрите, он будет многострочный или в одну строку через пробелы.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск