|
Выбрать 1 запросом | ☑ | ||
---|---|---|---|---|
0
skupidom
11.07.18
✎
12:55
|
У элемента справочника есть табличная часть.
Нужно 1 запросом выбрать сначала сам элемент, а во 2 группировке все его элементы табличной части |
|||
1
los_hooliganos
11.07.18
✎
12:56
|
Попробуйте левое соединение
|
|||
2
novichok79
11.07.18
✎
12:57
|
ИТОГИ ПО ССЫЛКА
|
|||
3
los_hooliganos
11.07.18
✎
12:57
|
Но не забывайте, что объединить все будет быстрее
|
|||
4
alexshape
11.07.18
✎
12:57
|
(0) что за вторая группировка? поле может?
|
|||
5
skupidom
11.07.18
✎
13:01
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | КонтрагентыТЧ.Ссылка КАК Ссылка |ИЗ | Справочник.КонтрагентыТЧ КАК КонтрагентыТЧ |ГДЕ | КонтрагентыТЧ.Ссылка = &перем"; Запрос.УстановитьПараметр("Перем",Контрагшент); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Об = Выборка.Ссылка.ПолучитьОбъект(); ЗапросТЧ = Новый Запрос; ЗапросТЧ.Текст = "ВЫБРАТЬ | КонтрагентыТЧСостав.GUID_1 КАК GUID_1, | КонтрагентыТЧСостав.GUID_2 КАК GUID_2, | КонтрагентыТЧСостав.GUID_3 КАК GUID_3, | КонтрагентыТЧСостав.GUID_4 КАК GUID_4 |ИЗ | Справочник.КонтрагентыТЧ.Состав КАК КонтрагентыТЧСостав |ГДЕ | КонтрагентыТЧСостав.Ссылка = &эл"; ЗапросТЧ.УстановитьПараметр("эл",Выборка.Ссылка); ВыборкаТЧ = ЗапросТЧ.Выполнить().Выбрать(); Пока ВыборкаТЧ.Следующий() Цикл Если ЗначениеЗаполнено(ВыборкаТЧ.GUID_1) Тогда ЗначGUID_1 = ВыборкаТЧ.GUID_1; КонецЕсли; Если ЗначениеЗаполнено(ВыборкаТЧ.GUID_2) Тогда ЗначGUID_2 = ВыборкаТЧ.GUID_2; КонецЕсли; Если ЗначениеЗаполнено(ВыборкаТЧ.GUID_3) Тогда ЗначGUID_3 = ВыборкаТЧ.GUID_3; КонецЕсли; Если ЗначениеЗаполнено(ВыборкаТЧ.GUID_4) Тогда ЗначGUID_4 = ВыборкаТЧ.GUID_4; КонецЕсли; КонецЦикла; Об.GUID_1 = ЗначGUID_1; Об.GUID_2 = ЗначGUID_2; Об.GUID_3 = ЗначGUID_3; Об.GUID_4 = ЗначGUID_4; Об.Записать(); КонецЦикла; |
|||
6
skupidom
11.07.18
✎
13:01
|
это тоЮ,что не хотелось бы, а можно пример 1 запросом ?
|
|||
7
skupidom
11.07.18
✎
13:12
|
это то,что не хотелось бы, а можно пример 1 запросом ?
|
|||
8
catena
11.07.18
✎
13:19
|
(7)->(2) и гугли обход выборки запроса по ГРппировкам.
|
|||
9
Мандалай
11.07.18
✎
13:30
|
Агонь!
Запрос в цикле, чувак, ты попал в правильное место, щас тебя закидают... |
|||
10
catena
11.07.18
✎
13:32
|
(9)Он пришел спросить, как делать не в цикле.
|
|||
11
novichok79
11.07.18
✎
13:38
|
(5) бзсходнсть...
|
|||
12
hhhh
11.07.18
✎
13:40
|
(7) "ВЫБРАТЬ
| КонтрагентыТЧСостав.Ссылка КАК Ссылка, | КонтрагентыТЧСостав.GUID_1 КАК GUID_1, | КонтрагентыТЧСостав.GUID_2 КАК GUID_2, | КонтрагентыТЧСостав.GUID_3 КАК GUID_3, | КонтрагентыТЧСостав.GUID_4 КАК GUID_4 |ИЗ | Справочник.КонтрагентыТЧ.Состав КАК КонтрагентыТЧСостав |ГДЕ | КонтрагентыТЧСостав.Ссылка = &перем"; Запрос.УстановитьПараметр("Перем",Контрагшент); с тебя 500 руб в кассу мисты |
|||
13
novichok79
11.07.18
✎
13:46
|
накидал навскидку...
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Состав.Ссылка КАК Ссылка, | Состав.GUID_1 КАК GUID_1, | Состав.GUID_2 КАК GUID_2, | Состав.GUID_3 КАК GUID_3, | Состав.GUID_4 КАК GUID_4 |ИЗ | Справочник.КонтрагентыТЧ.Состав КАК Состав | |УПОРЯДОЧИТЬ ПО | Ссылка |ИТОГИ ПО | Ссылка |АВТОУПОРЯДОЧИВАНИЕ"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаСсылка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСсылка.Следующий() Цикл ЗначGUID_1 = ""; ЗначGUID_2 = ""; ЗначGUID_3 = ""; ЗначGUID_4 = ""; Пока ВыборкаСостав.Следующий() Цикл Если ЗначениеЗаполнено(ВыборкаСостав.GUID_1) И Не ЗначениеЗаполнено(ЗначGUID_1) Тогда ЗначGUID_1 = ВыборкаСостав.GUID_1; КонецЕсли; Если ЗначениеЗаполнено(ВыборкаСостав.GUID_2) И Не ЗначениеЗаполнено(ЗначGUID_2) Тогда ЗначGUID_2 = ВыборкаСостав.GUID_2; КонецЕсли; Если ЗначениеЗаполнено(ВыборкаСостав.GUID_3) И Не ЗначениеЗаполнено(ЗначGUID_3) Тогда ЗначGUID_3 = ВыборкаСостав.GUID_3; КонецЕсли; Если ЗначениеЗаполнено(ВыборкаСостав.GUID_4) И Не ЗначениеЗаполнено(ЗначGUID_4) Тогда ЗначGUID_4 = ВыборкаСостав.GUID_4; КонецЕсли; КонецЦикла; КонтрагентСсылка = ВыборкаСсылка.Ссылка; КонтрагентОбъект = КонтрагентСсылка.ПолучитьОбъект(); КонтрагентОбъект.GUID_1 = ЗначGUID_1; КонтрагентОбъект.GUID_2 = ЗначGUID_2; КонтрагентОбъект.GUID_3 = ЗначGUID_3; КонтрагентОбъект.GUID_4 = ЗначGUID_4; Попытка КонтрагентОбъект.Записать(); Исключение Сообщить(СтрШаблон("А король-то голый: %1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); КонецПопытки; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |