![]() |
![]() |
![]() |
|
v7: Имена полей в AccountsRecordsetV3 | ☑ | ||
---|---|---|---|---|
0
DES
06.07.18
✎
18:00
|
Кто знает как добиться своего имени поля в запросе?
"SELECT Субконто1 [Субконто1 $Субконто] |, Субконто1_вид |FROM $БИОбороты.Основной(:НачДата, :КонДата ~ |, |, |,(Счет = :ВыбСчет661) OR (Счет = :ВыбСчет641) |,(ЛицевыеСчета) |, |,(КорСчет = :ВыбСчет50) OR (КорСчет = :ВыбСчет51) |) БИОборотыОсновной |"; хочу так "SELECT Субконто1 [ЛицевойСчет $Субконто] ... а оно ругается Для типизации поля "ЛицевыеСчета", не найдено дополнительное типизирующее поле. И еще вопрос. Можно ли делать select * from (здесь верхний селект) тоже ругается на завершающую скобку. |
|||
1
Salimbek
06.07.18
✎
21:34
|
1) "SELECT Субконто1 [Субконто1 $Субконто]
|, Субконто1_вид попробуй поменять на "SELECT Субконто1 [ЛицевойСчет $Субконто] |, Субконто1_вид ЛицевойСчет_вид 2) select * from (здесь верхний селект) as v |
|||
2
DES
06.07.18
✎
22:50
|
спс . взлетело
А можно как то вытащить атрибуты субконто1? "SELECT Субконто1 [ЛицевойСчет $Субконто] |, Субконто1_вид [ЛицевойСчет_вид] |, Субконто1.ADR [адр $Справочник.Адреса] чето не хочет... |
|||
3
Salimbek
06.07.18
✎
23:02
|
(2) Давай я тебя научу. Вот смотри - делаешь:
SELECT top 1 * FROM ... и смотришь - какие поля у тебя есть. Если нужного тебе поля нет, но оно есть в другой таблице, значит надо связать таблички. Тут думаешь - как связывать LEFT или INNER и пишешь соединение. Например: INNER JOIN $Справочник.Что_то as Spr ON v.Субконто1=Spr.Id И тогда уже можешь добавлять в SELECT поля этой таблицы в виде Spr.Адрес. Тут еще надо понимать - а вдруг это Субконто может быть разных типов, тогда с таким соединением ты получишь хрень полную. И тогда надо ставить условие на Вид субконто. Но понять это все можешь только ты и на твоих данных, анализируя SELECT top 1 * FROM ... |
|||
4
DES
06.07.18
✎
23:04
|
ок, спс
|
|||
5
DES
07.07.18
✎
11:45
|
что то не получается выбрать из подзапроса, пишу:
Select V.* from ( SELECT Субконто1 [ЛС $Субконто] , Субконто1_вид ЛС_вид ) as V Все норм А если Select V.ЛС [ЛС $Субконто], V.ЛС_вид [ЛС_вид] from ( SELECT Субконто1 [ЛС $Субконто] , Субконто1_вид ЛС_вид ) as V Недопустимое имя столбца "Лс" |
|||
6
Salimbek
07.07.18
✎
11:57
|
(5) Опять же, объясняю: Когда ты пишешь [ЛС $Субконто], то на выходе из этого запроса тебе SQL возвращает поле с именем "ЛС $Субконто", а далее 1C++ когда видит такие странные поля включает свою логику - переименовывает поле в "ЛС" и вместо ИД-шника (который там лежит по факту) вставляет ссылку на элемент справочника или чего там еще. Т.е. такое именование полей нужно ТОЛЬКО в самой верхней выборке, когда результат будет уходить в 1С-ку. Во внутренних подзапросах такое именование - бесполезно.
Исходя из этого понимания - вывод: ( SELECT Субконто1 [ЛС $Субконто] , Субконто1_вид ЛС_вид ) as V вот тут вот такое именование полей не нужно, достаточно просто: Субконто1 ЛС и тогда в селекте сможешь указать V.ЛС |
|||
7
DES
07.07.18
✎
22:58
|
а как работает условие счета и корсчета?
| FROM $БИОбороты.Основной(:НачДата, :КонДата ~ |, Месяц |, |, (Счет = :Счет661) |, Субконто1 |, Субконто1 = :ВыбрСубк |, (КорСчет <> :Счет661) так не работает, т.е. строки с одинаковым счетом и корсчетом попадают в выборку |
|||
8
Salimbek
09.07.18
✎
09:35
|
(7) Можно, наверное, и просто:
... | FROM $БИОбороты.Основной(:НачДата, :КонДата ~ |, Месяц |, |, (Счет = :Счет661) AND (Счет<>КорСчет) ... Детальнее не скажу, я с бух. данными плотно дела не имел. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |