|
1C и TECDOC | ☑ | ||
---|---|---|---|---|
0
kolts23381
31.12.14
✎
14:38
|
Пытаюсь связать TECDOC и 1с. Есть в интернете примеры да и запросы
текдока можно прослушать, но все равно нужно изучить таблицы. Пока пытаюсь наскоком решить. Нашел вот такой запрос который строит дерево запчастей, но это запрос к mysql. SELECT STR_ID, TEX_TEXT AS STR_DES_TEXT, IF( EXISTS( SELECT * FROM SEARCH_TREE AS SEARCH_TREE2 WHERE SEARCH_TREE2.STR_ID_PARENT <=> SEARCH_TREE.STR_ID LIMIT 1), 1, 0) AS DESCENDANTS FROM SEARCH_TREE INNER JOIN DESIGNATIONS ON DES_ID = STR_DES_ID INNER JOIN DES_TEXTS ON TEX_ID = DES_TEX_ID WHERE STR_ID_PARENT <=> @STR_ID AND DES_LNG_ID = @LNG_ID AND EXISTS ( SELECT * FROM LINK_GA_STR INNER JOIN LINK_LA_TYP ON LAT_TYP_ID = @TYP_ID AND LAT_GA_ID = LGS_GA_ID INNER JOIN LINK_ART ON LA_ID = LAT_LA_ID WHERE LGS_STR_ID = STR_ID LIMIT 1 ); Он выдает ошибку compile error: ')' expected, в той строке где IF. Каким должен быть правильный IF и что за знак <=> - не равно? Есть оригинальный запрос, но там тоже нелегко разобраться |
|||
1
Стальная Крыса
31.12.14
✎
16:03
|
все вроде верно синтаксически.
IF() аналог ?() в 1С оператор <=> - "безопасное сравнение", может сравнивать аргументы с NULL зы. текст более структурно сделать, может что и увидится |
|||
2
Стальная Крыса
31.12.14
✎
16:07
|
хз, но
может быть EXISTS нельзя использовать внутри IF() |
|||
3
Стальная Крыса
31.12.14
✎
16:10
|
попробовать вместо IF() использовать оператор CASE
|
|||
4
kolts23381
31.12.14
✎
18:01
|
SELECT STR_ID,
TEX_TEXT AS STR_DES_TEXT, IF(EXISTS(SELECT * FROM TOF_SEARCH_TREE AS SEARCH_TREE2 WHERE SEARCH_TREE2.STR_ID_PARENT <=> TOF_SEARCH_TREE.STR_ID LIMIT 1), 1, 0) AS DESCENDANTS FROM TOF_SEARCH_TREE INNER JOIN TOF_DESIGNATIONS ON DES_ID = STR_DES_ID INNER JOIN TOF_DES_TEXTS ON TEX_ID = DES_TEX_ID WHERE STR_ID_PARENT <> NULL AND DES_LNG_ID = 16 AND EXISTS ( SELECT * FROM TOF_LINK_GA_STR INNER JOIN TOF_LINK_LA_TYP ON LAT_TYP_ID = " + ЭлементыФормы.ТаблицаМодификаций.ТекущаяСтрока.ИД + " AND LAT_GA_ID = LGS_GA_ID INNER JOIN TOF_LINK_ART ON LA_ID = LAT_LA_ID WHERE LGS_STR_ID = STR_ID LIMIT 1)" Кто-то сделал сайт и перенес базу в mysql поэтому может быть запрос отличается. Буду ковырять дальше |
|||
5
kolts23381
31.12.14
✎
18:02
|
Нет предпросмотра чтоб нормально сделал. Может кто-то заморачивался этим вопросом и подскажет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |