Имя: Пароль:
1C
1С v8
v8: 8.2 Заполнение документов по результату запроса
0 Анастасия_85
 
16.05.12
10:06
Здравствуйте
Есть 2 запроса: в итоге первого получается поля: лицевой счет и общая сумма по лицевому счету (сгруппировано по лицевому счету). Я эти поля добавляю в массив
Для 2-го запроса устанавливаю параметры массив (из 1-го запроса данные).
В результате второго запроса получаются поля: лицевой счет, период, сумма (детализировано по лицевому счету)
Если в результате первого запроса получается к примеру 15 строк, то в результате второго >15.
Мне нужно: создать количество документов = количество строк из первого запроса. (Получилось)
И потом заполнить табличную часть данными из второго запроса. На каждый лицевой счет - только 1 документ (не получается заполнить табличную часть существующего документа)
1 Wobland
 
16.05.12
10:08
отличный заголовок!
2 Aleksey
 
16.05.12
10:08
Долго над заголовком думала?
3 Wobland
 
16.05.12
10:09
(2) явно дольше, чем надо фото
4 Wobland
 
16.05.12
10:09
(3) экая фрейдовская оговорка ;)
5 salvator
 
16.05.12
10:12
(4) :)))
6 Анастасия_85
 
16.05.12
10:13
тема должна была звучать так: 82 как записать данные в табличную часть существующего документа. Уже к сожалению не изменить название темы
7 Wobland
 
16.05.12
10:15
(6) с заголовком разобрались. но только с заголовком
8 Азазелло
 
16.05.12
10:16
(0) а в чем именно сложность заполнения ТЧ _существующего_ документа?
9 Анастасия_85
 
16.05.12
10:20
делаю таким образом: (результат 2-го запроса)
Пока  выборка.следующий() цикл
       КУ_Претензия.НайтиПоРеквизиту("собственник",Выборка.ЛицевойСчет) тогда
       ЗаписьДок=документы.КУ_Претензия.НайтиПоРеквизиту("собственник",Выборка.ЛицевойСчет);
       строкаТч=ЗаписьДок.Задолженность.Добавить();
       СтрокаТЧ.ЛицевойСчет= Выборка.ЛицевойСчет;
       СтрокаТЧ.ВидУслуги = Выборка.ВидУслуги;
       СтрокаТЧ.ПериодВзаиморасчетов=Выборка.ПериодВзаиморасчетов;
       СтрокаТЧ.СуммаВсего=Выборка.СуммаВсего;
       СтрокаТЧ.СуммаДолга=Выборка.СуммаДолга;
       СтрокаТЧ.СуммаПени=Выборка.СуммаПени;
       Док.Записать();
КонецЦикла;//выборка.следующий() цикл
10 Wobland
 
16.05.12
10:20
КУ_Претензия.НайтиПоРеквизиту
а если их несколько? или нет?
11 Анастасия_85
 
16.05.12
10:22
должно быть 1 лицевой счет=1 претензия
12 Анастасия_85
 
16.05.12
10:24
также возможно сделать проверку, если есть уже для данного лицевого счета претензия и реквизит документа период совпадает с новым документом- тогда перезаписать, иначе создать новый
13 фросия
 
16.05.12
10:26
(0) в чем проблема? непонятно
(не получается заполнить табличную часть существующего документа)- это?
14 Азазелло
 
16.05.12
10:27
(10) а может тебе лучше в самом 1м запросе сразу делать джойн документа КУ_Претензия на лиц. счет?
(9) ЗаписьДок=документы.КУ_Претензия.НайтиПоРеквизиту("собственник",Выборка.ЛицевойСчет); - эта штука возвращает тебе Ссылку, а для добавления строк в ТЧ необходимо использовать Объект.
15 фросия
 
16.05.12
10:27
Записьдок- это ссылка на док, если хочешь в него что то записать, надо сделать .ПолучитьОбъект
16 Анастасия_85
 
16.05.12
10:39
Благодарю, сейчас попробую
17 Анастасия_85
 
16.05.12
12:23
Все получилось.
Изменила на:
собственник=Справочники.Контрагенты.НайтиПоНаименованию(выборка.ЛицевойСчет).Ссылка;
       
ЗаписьДок=документы.КУ_Претензия.НайтиПоРеквизиту("собственник",собственник).ПолучитьОбъект();

до этого вообще не выбирались документы, и при получить объект выскакивала ошибка, что элемент не выбран т.к.был другой тип данных собственника.
Еще раз благодарю за помощь :)