Имя: Пароль:
1C
1C 7.7
v7: Прямой запрос и функция ПолныйКод()
0 ildary
 
25.12.18
12:21
Уважаемые специалисты, скажите пожалуйста, существует ли возможность делая прямой запрос к таблице 1С (через ADODB.Recordset), получить полный код элемента (аналог функции Спр.ПолныйКод())? Или единственный спобоб - это объединять таблицу справочника с собой же по полю PARENTID?
1 trad
 
25.12.18
12:44
1. только не объединить, а соединить. причем столько раз сколько уровней-1
2. написать ХП в которой цикл по уровням пока до верха не доберемся
2 trad
 
25.12.18
12:53
п.1 для спр в 4 уровня
select
  isnull(par3.code + '/', '') + isnull(par2.code + '/', '') + isnull(par1.code + '/', '') + spr.code
from scXX spr (nolock)
left join scXX par1 (nolock) on par1.id = spr.parentid
left join scXX par2 (nolock) on par2.id = par1.parentid
left join scXX par3 (nolock) on par3.id = par2.parentid
3 mikecool
 
25.12.18
13:03
(1) можно динамически собрать запрос по количеству уровней из метаданных )
4 trad
 
25.12.18
13:11
(3) можно
5 SleepyHead
 
гуру
25.12.18
13:11
(3) Почему-то я вспомнил про своего кота, у которого было много свободного времени.
6 ildary
 
25.12.18
13:27
(2) спасибо, примерно так я и сделаю.
7 ADirks
 
25.12.18
14:02
(5) Это достаточно сделать один раз, и запихать в библиотечку генерации текстов запросов.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший