Вход | Регистрация

1С:Предприятие ::

Метки: 

v7: Имена полей в AccountsRecordsetV3

Я
   DES
 
06.07.18 - 18:00
Кто знает как добиться своего имени поля в запросе?
"SELECT Субконто1 [Субконто1 $Субконто]
    |, Субконто1_вид
    |FROM $БИОбороты.Основной(:НачДата, :КонДата ~
    |,
    |,
    |,(Счет = :ВыбСчет661) OR (Счет = :ВыбСчет641) 
    |,(ЛицевыеСчета)
    |,
    |,(КорСчет = :ВыбСчет50) OR (КорСчет = :ВыбСчет51)
    |) БИОборотыОсновной
    |";
хочу так
"SELECT Субконто1 [ЛицевойСчет $Субконто]
...
а оно ругается
 Для типизации поля "ЛицевыеСчета", не найдено дополнительное типизирующее поле.
И еще вопрос.
Можно ли делать 
select * from (здесь верхний селект)
тоже ругается на завершающую скобку.
 
 
   Salimbek
 
1 - 06.07.18 - 21:34
1) "SELECT Субконто1 [Субконто1 $Субконто]
    |, Субконто1_вид
попробуй поменять на
"SELECT Субконто1 [ЛицевойСчет $Субконто]
    |, Субконто1_вид ЛицевойСчет_вид

2) select * from (здесь верхний селект) as v
   DES
 
2 - 06.07.18 - 22:50
спс . взлетело
А можно как то вытащить атрибуты субконто1?
"SELECT Субконто1 [ЛицевойСчет $Субконто]
|, Субконто1_вид [ЛицевойСчет_вид]
|, Субконто1.ADR [адр $Справочник.Адреса]
чето не хочет...
   Salimbek
 
3 - 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 ...
   DES
 
4 - 06.07.18 - 23:04
ок, спс
   DES
 
5 - 07.07.18 - 11:45
что то не получается выбрать из подзапроса, пишу:
Select V.* from
(
SELECT
  Субконто1 [ЛС $Субконто]
  , Субконто1_вид ЛС_вид
) as V

Все норм
А если

Select V.ЛС [ЛС $Субконто],  V.ЛС_вид [ЛС_вид]
from
(
 SELECT 
  Субконто1 [ЛС $Субконто]
  , Субконто1_вид ЛС_вид
) as V


Недопустимое имя столбца "Лс"
   Salimbek
 
6 - 07.07.18 - 11:57
(5) Опять же, объясняю: Когда ты пишешь [ЛС $Субконто], то на выходе из этого запроса тебе SQL возвращает поле с именем "ЛС $Субконто", а далее 1C++ когда видит такие странные поля включает свою логику - переименовывает поле в "ЛС" и вместо ИД-шника (который там лежит по факту) вставляет ссылку на элемент справочника или чего там еще. Т.е. такое именование полей нужно ТОЛЬКО в самой верхней выборке, когда результат будет уходить в 1С-ку. Во внутренних подзапросах такое именование - бесполезно.
Исходя из этого понимания - вывод:
(
SELECT
  Субконто1 [ЛС $Субконто]
  , Субконто1_вид ЛС_вид
) as V

вот тут вот такое именование полей не нужно, достаточно просто: Субконто1 ЛС и тогда в селекте сможешь указать V.ЛС
   DES
 
7 - 07.07.18 - 22:58
а как работает условие счета и корсчета?
    
| FROM $БИОбороты.Основной(:НачДата, :КонДата ~
    |, Месяц
    |, 
    |, (Счет = :Счет661) 
    |, Субконто1
    |, Субконто1 = :ВыбрСубк
    |, (КорСчет <> :Счет661)  
так не работает,
 т.е. строки с одинаковым счетом и корсчетом попадают в выборку
   Salimbek
 
8 - 09.07.18 - 09:35
(7) Можно, наверное, и просто:
...
| FROM $БИОбороты.Основной(:НачДата, :КонДата ~
    |, Месяц
    |, 
    |, (Счет = :Счет661) AND (Счет<>КорСчет)
...
Детальнее не скажу, я с бух. данными плотно дела не имел.


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует