Имя: Пароль:
1C
1С v8
Регистр сведений
0 den2308
 
15.05.12
12:35
Как данные с регистра сведений добавить в табличную часть документа
Пока делаю так но чтото не получяется

Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    МатериалыУслуг.Материал,
                  |    МатериалыУслуг.Услуга,
                  |    МатериалыУслуг.Количество
                  |ИЗ
                  |    РегистрСведений.МатериалыУслуг КАК МатериалыУслуг
                  |ГДЕ
                  |    МатериалыУслуг.Услуга = &Услуга";
   Запрос.УстановитьПараметр("Услуга",Элементы.УслугиМатериалы1.ДанныеСтроки("Услуга"));              
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       НовСтрока = Объект.УслугиМатериалы.Добавить();
       НовСтрока.Услуга = Выборка.Услуга;
       НовСтрока.Материал = Выборка.Материал;
       НовСтрока.Количество = Выборка.Количество;
   КонецЦикла;
1 salvator
 
15.05.12
12:36
1) Запрос отрабатывает?
2) Документ записываешь?
2 Grusswelle
 
15.05.12
12:37
(0) Телепатирую: 8.2 тонкий/web-клиент?
3 den2308
 
15.05.12
12:39
Да он оттрабатывает но данные не попадают в табличную часть УслугиМатериалы.Принцып такой есть две таб части Услуги и Материалы при выборе услуги материалы тянутся с регистра!!
4 Janna26
 
15.05.12
12:45
(3) Кинь всю процедуру.
5 Janna26
 
15.05.12
12:46
(3) скорее всего у тебя ссылка а не объект. Получи сначала объект документа, а потом в нем уже меняй. И не забудь записать :)
6 den2308
 
15.05.12
12:47
Это и вся процедура!

&НаКлиенте
Процедура Услуги1УслугаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    МатериалыУслуг.Материал,
                  |    МатериалыУслуг.Услуга,
                  |    МатериалыУслуг.Количество
                  |ИЗ
                  |    РегистрСведений.МатериалыУслуг КАК МатериалыУслуг
                  |ГДЕ
                  |    МатериалыУслуг.Услуга = &Услуга";
   Запрос.УстановитьПараметр("Услуга",Элементы.УслугиМатериалы1.ДанныеСтроки("Услуга"));              
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       НовСтрока = Объект.УслугиМатериалы.Добавить();
       НовСтрока.Услуга = Выборка.Услуга;
       НовСтрока.Материал = Выборка.Материал;
       НовСтрока.Количество = Выборка.Количество;
   КонецЦикла;
КонецПроцедуры
7 Ненавижу 1С
 
гуру
15.05.12
12:49
(6) вообще все это на сервере надо делать
8 Janna26
 
15.05.12
12:49
НовСтрока = Объект.УслугиМатериалы.Добавить(); Откуда берешь? Объект.УслугиМатериалы.Добавить()
9 Janna26
 
15.05.12
12:50
(8) все поняла. Добавь во первых на сервере. А во вторых
Типо

Ном = Объект.ПолучитьОбъект();
10 Janna26
 
15.05.12
12:50
Ну и после цикла Ном.Записать();
11 den2308
 
15.05.12
12:51
Да на сервере пробывал не работает!
12 Ненавижу 1С
 
гуру
15.05.12
12:52
(11) наверное форму надо обновить
13 Kuein
 
15.05.12
12:52
Запрос.УстановитьПараметр("Услуга",Элементы.УслугиМатериалы1.ДанныеСтроки("Услуга")); - вот это что?
В отладчике что тебе показывает Элементы.УслугиМатериалы1.ДанныеСтроки("Услуга") при установке?
14 Kuein
 
15.05.12
12:53
(13) *при установке параметра для запроса
15 Grusswelle
 
15.05.12
12:54
мляяяя...
1. На сервере нет формы
2. На клиенте нет запросов

v8: ДанныеФормыВЗначение, ЗначениеВДанныеФормы и тип ДанныеФормыДерево - вот, например.
16 Janna26
 
15.05.12
12:54
Элементы.УслугиМатериалы1.ДанныеСтроки("Услуга"));  если не ошибаюсь можно заменить на Элементы.ТекущиеДанные.Услуга.
17 den2308
 
15.05.12
12:55
Все норм я на сервере далаю передалал!
18 Ненавижу 1С
 
гуру
15.05.12
12:56
(15) на сервере есть форма, иначе зачем в модуле форме директива &НаСервере?
19 den2308
 
15.05.12
12:59
Janna26 не несработало Ном = Объект.ПолучитьОбъект();
Не поменять не надо тогда ругается
20 den2308
 
15.05.12
13:04
Kuein в отладчике показывает неопределено!Чем можно заменить?Элементы.ТекущиеДанные.Услуга говорит поле объекта не обнаружено!!
21 den2308
 
15.05.12
13:09
Запрос.УстановитьПараметр("Услуга",Элементы.УслугиМатериалы1.ДанныеСтроки("Услуга"));
Чем можно заменить Элементы.УслугиМатериалы1.ДанныеСтроки("Услуга") чтобы услуга поставилась та что с регистра!!!!
22 Kuein
 
15.05.12
13:13
ТекущаяСтрока = ЭлементыФормы.УслугиМатериалы1.ТекущиеДанные;
Запрос.УстановитьПараметр("Услуга",ТекущаяСтрока.Услуга);

И посмотреть что получится.
23 den2308
 
15.05.12
13:25
Все почти получилось теперь надо отсортиповать по услуге и все!Kuein
ТекущаяСтрока = Элементы.Услуги1.ТекущиеДанные;
ТекущаяСтрока.Услуга
От так получилось!!!
А не подскажешь сортировать по услуге лутше в цыкле?
24 den2308
 
15.05.12
13:34
Всем огромное спасибо кто откликнулся на мою тему!!!
25 Kuein
 
15.05.12
13:36
Так как я не понимаю что значит "сортировать по услуге" я не отвечу. Но базовый принцип - если что-то можно сделать в запросе, то лучше это сделать в запросе.
26 den2308
 
15.05.12
13:40
Не все я сделал и кстати все это делаю на клиенте и все работает!