Имя: Пароль:
1C
1С v8
Программное заполнение ТЧ документа на основе запроса
0 ligatr
 
03.10.18
11:42
Добрый день!
Есть 1С 8.3 на управляемых формах.
Довольна долго бьюсь над вопросом как правильно заполнить табличную часть документа на основе запроса.
Перепробовал различные варианты, но так и не удается заполнить ТЧ.

Вот код:

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

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

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


А вот ошибка которая в итоге выдает система:
{Документ.ВводПоказанийСчетчиков.Форма.ФормаДокумента.Форма(34)}: Ошибка при установке значения атрибута контекста (ТЧВводПоказанийСчетчиков)
                ВД = ВыборкаДанных(Объект.ВидУслуг, Объект.ТЧВводПоказанийСчетчиков, "ТЧВводПоказанийСчетчиков");
по причине:
Нельзя изменять поле, содержащее объект данных формы

Как правильно заполнить ТЧ?
1 FIXXXL
 
03.10.18
11:46
(0) Объект.ВидУслуг, Объект.ТЧВводПоказанийСчетчиков - это все доступно на сервере...
2 ligatr
 
03.10.18
12:11
ОК
Понял.
Спасибо!