|
Заполнить / объединить таблицы | ☑ | ||
---|---|---|---|---|
0
mauar115
01.12.15
✎
13:25
|
Есть запрос, из него заполняются 3 таблицы:
Пока Выборка.Следующий() Цикл Если ЗначениеЗаполнено(Выборка.Ссылка1) Тогда Если ТипЗнч(Выборка.Ссылка1)=ТипЗнч(Документы.ргАктФактическогоВыполнения.ПустаяСсылка()) И Выборка.Ссылка1.ПометкаУдаления = Ложь Тогда ТЗАкт = ТЗВывестиАкт.Добавить(); ТЗАкт.Акт = Выборка.Ссылка1; ТЗАкт.Контрагент = КонтрагентПечати; ИначеЕсли ТипЗнч(Выборка.Ссылка1)=ТипЗнч(Документы.СчетНаОплату.ПустаяСсылка()) И Выборка.Ссылка1.ПометкаУдаления = Ложь Тогда ТЗСчет = ТЗВывестиСчетНаОплату.Добавить(); ТЗСчет.Контрагент = КонтрагентПечати; ТЗСчет.СчетНаОплату = Выборка.Ссылка1; ИначеЕсли ТипЗнч(Выборка.Ссылка1)=ТипЗнч(Документы.СчетФактура.ПустаяСсылка()) И Выборка.Ссылка1.ПометкаУдаления = Ложь Тогда ТЗФактура = ТЗВывестиСчетФактура.Добавить(); ТЗФактура.Контрагент = КонтрагентПечати; ТЗФактура.СчетФактура = Выборка.Ссылка1; КонецЕсли; КонецЕсли; КонецЦикла; Теперь надо эти 3 таблицы вывести в одну таблицу на основании контрагента, циклом не получается: Для каждого СтраАкт ИЗ ТЗВывестиАкт Цикл ДЛя каждого стрСчет ИЗ ТЗВывестиСчетНаОплату Цикл ТЗ.СчетНаОплату = стрСчет.СчетНаОплату; КонецЦикла; ДЛя каждого стрФакт ИЗ ТЗФактура КонецЦикла; |
|||
1
Горогуля
01.12.15
✎
13:25
|
бедолага
|
|||
2
mauar115
01.12.15
✎
13:28
|
Ну такой умный, расскажи ))
|
|||
3
Горогуля
01.12.15
✎
13:29
|
чего рассказать? как не приходить к идиотским вопросам?
|
|||
4
Горогуля
01.12.15
✎
13:29
|
(3) *ситуациям
|
|||
5
User_Agronom
01.12.15
✎
13:31
|
(0) ...циклом не получается...
Не правда. Циклом должно получится. |
|||
6
palpetrovich
01.12.15
✎
13:34
|
(0) что именно "циклом не получается" ?
|
|||
7
ibreiter
01.12.15
✎
13:35
|
За условием еще одну таблицу формировать и в нее все подряд записывать,..как вариант
|
|||
8
Ёпрст
01.12.15
✎
13:36
|
(0) сделай итоги в тексте запроса и выводи по группировкам сразу, минуя 3 таблички..
Ну или скд заюзай или построительотчета, что ле.. |
|||
9
mauar115
01.12.15
✎
13:53
|
Там итоги не надо, тут прикол в том что эти 3 таблицы должны быть также, и четвертая со всеми запиясями
Для каждого СтраАкт ИЗ ТЗВывестиАкт Цикл ТЗ = ТЗСписок.Добавить(); ТЗ.Контрагент = СтраАкт.Контрагент; ТЗ.Акт = СтраАкт.Акт; Для каждого стрСчет ИЗ ТЗВывестиСчетНаОплату Цикл Для каждого стрФакт ИЗ ТЗВывестиСчетФактура Цикл Если СтраАкт.Контрагент = стрСчет.Контрагент Тогда ТЗ.СчетНаОплату = стрСчет.СчетНаОплату; КонецЕсли; Если СтраАкт.Контрагент = стрФакт.Контрагент Тогда ТЗ.СчетФактура = стрФакт.СчетФактура; КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; |
|||
10
Горогуля
01.12.15
✎
13:55
|
какой-то неправильный у тебя велосипед
|
|||
11
ibreiter
01.12.15
✎
14:00
|
(10) ;)
|
|||
12
Ёпрст
01.12.15
✎
14:04
|
(9) Так, ну и зачем вам 3 таблички ?
ЗЫ: их тоже можно получить сразу, выполнив, например, пакетный запрос. |
|||
13
aleks_default
01.12.15
✎
14:11
|
Сделай запросе сразу и четвертую таблицу
|
|||
14
sash-ml
01.12.15
✎
14:19
|
Для каждого СтраАкт ИЗ ТЗВывестиАкт Цикл
ТЗ = ТЗСписок.Добавить(); ТЗ.Контрагент = СтраАкт.Контрагент; ТЗ.Акт = СтраАкт.Акт; ТЗ.СчетНаОплату = ТЗВывестиСчетНаОплату.Найти(СтраАкт.Контрагент).СчетНаОплату; ТЗ.СчетФактура = ТЗВывестиСчетФактура.Найти(СтраАкт.Контрагент).СчетФактура; КонецЦикла; |
|||
15
mauar115
01.12.15
✎
15:50
|
не работает (15)
|
|||
16
Niveus
01.12.15
✎
16:27
|
(10) Какой умный занятый человек, для сарказма времени есть, помочь нет) зато самоутвержаешся. Удачи по жизни задрипыш
|
|||
17
mauar115
01.12.15
✎
17:10
|
Niveus, забей!
Я для себя просто хочу разобрать эту тему на будущее. Для саморазвития. Для каждого СтраАкт ИЗ ТЗВывестиАкт ТЗ = ТЗСписок.Добавить(); ТЗ.Контрагент = СтраАкт.Контрагент; ТЗ.Акт = СтраАкт.Акт; ТЗ.СчетНаОплату = ТЗВывестиСчетНаОплату.Найти(СтраАкт.Контрагент).СчетНаОплату; ТЗ.СчетФактура = ТЗВывестиСчетФактура.Найти(СтраАкт.Контрагент).СчетФактура; КонецЦикла; Проблема возникает в том что не хочет получать найденную строку у двух вторых таблиц ТЗВывестиСчетНаОплату.Найти(СтраАкт.Контрагент).СчетНаОплату; через параметры отбора также ругается на СчетНаОплату, в этой строчке ТЗВывестиСчетНаОплату.Найти(СтраАкт.Контрагент).СчетНаОплату; а счет на оплату там это реквизит есть и он типо документ.счетнаоплату |
|||
18
aleks_default
01.12.15
✎
17:14
|
(16) Если человек не дает себе труда подумать прежде чем создавать тему на форуме, то сарказм это еще не самое плохое чем его могут наградить.
Вот что мы видим в первом посте? Обход выборки в цикле и заполнение трех таблиц. А потом спрашивает как объединить эти три таблицы в одну. Так почему бы сразу в обходе выборки сразу не создавать и четвертую КАРЛ!ЧЕТВЕРТУЮ!!! таблицу? Как это можно назвать если не МАРАЗМ! КАРЛ! МАРАЗМ! |
|||
19
Mirnin
01.12.15
✎
17:18
|
Ну и пометку удаления на этапе запроса лучше отфильтровать.
|
|||
20
hhhh
01.12.15
✎
17:34
|
(17) почитай в синтакс-помощнике про метод Найти()
|
|||
21
Мимохожий Однако
01.12.15
✎
17:39
|
(0)Делай одним пакетным запросом. Остальное - от лукавого. В чём конечная цель получения разных таблиц?
|
|||
22
mauar115
02.12.15
✎
11:30
|
Тема закрыта, сделал таки запросом )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |