|
Прямой запрос к SQL. ВыбратьИерархически возможно? | ☑ | ||
---|---|---|---|---|
0
extrim-style
14.05.12
✎
11:30
|
Необходимо сделать автоматическую синхронизацию справочников между 7-кой SQL-ной и 8-кой файловой. Делаю прямой запрос к справочнику в SQL. В SQL есть поля ID (элемент, группа) и PARENTID (id родителя). Возможно ли получить выборку из SQL, аналогичную ВыбратьИерархически?
|
|||
1
fisher
14.05.12
✎
11:34
|
Возможно. Но проще работать через COM
|
|||
2
extrim-style
14.05.12
✎
11:42
|
(1) а как возможно, знаешь? Сильно сложно? Хотелось бы прямым запросом обойтись.
Проблема в установке родителей. Впринципе есть вариант перебирать сначала группы, потом элементы. Т.е. для элементов уже однозначно будут родители, но тогда с группами нужно повозиться. |
|||
3
extrim-style
14.05.12
✎
11:49
|
Через COM-соединение нужен регламентный пользователь. Не хотелось бы его заводить.
|
|||
4
extrim-style
14.05.12
✎
12:03
|
Подскажите как лучше синхронизировать справочник на 50 тыс элементов в каждом новом сеансе? Может завести реквизит ДатаСоздания элемента в 7-ке?
|
|||
5
Vakhrin
14.05.12
✎
12:05
|
нужны доп функция получения уровня элемента - и будет тебе счастье... относительное, т.к. замедляет достаточно сильно )
|
|||
6
Vakhrin
14.05.12
✎
12:06
|
(4) дату создания и дату редактирования можно добавить средствами 1С, а потом в скуле на триггерах заполнять
|
|||
7
extrim-style
14.05.12
✎
12:06
|
(5) групп не много, думаю рекурсивной функцией обойтись
|
|||
8
extrim-style
14.05.12
✎
12:09
|
(6) а триггер зачем? у меня 8-ка файловая
|
|||
9
fisher
14.05.12
✎
12:10
|
(2) В лоб - функции сиквельные внедрять.
(3) Поверь, это решение намного проще. А главное - легче сопровождается и масштабируется. (4) Интереснее всего использовать для этого механизм регистрации УРБД (табличку изменений после обмена чистить самому). Через триггера чуть хуже (они слетают после изменения конфы). Я бы делал именно через COM и УРБД. А еще лучше - прикрутил бы еще и КД. |
|||
10
fisher
14.05.12
✎
12:11
|
(8) А первоисточник кто? Или двунаправленный обмен надо?
|
|||
11
extrim-style
14.05.12
✎
12:13
|
(10) Источник 7-ка. В 8-ке все 7-шные + свои.
|
|||
12
rs_trade
14.05.12
✎
12:15
|
(0) я просто сортировал по ЭтоГруппа и коду. И верхние группы шли и загружались-создавались первыми. Это не супер универсально конечно, но просто и работает.
|
|||
13
extrim-style
14.05.12
✎
12:15
|
(9) У меня немного групп - порядка ста. Если я сделаю сначала синхронизацию групп через рекурсивную функцию, а затем синхронизацию элементов. Как такой подход? Если будет медленно, добавлю в 7-ку дату создания элемента и добавлю отбор в SQL.
COM не хочу из-за необходимости создания регламентного пользователя. |
|||
14
extrim-style
14.05.12
✎
12:18
|
Кстати, подскажите, а имена таблиц в 7-ке со временем не меняются? Регламентные процедуры типа реиндексации и реструктуризации не влияют? А то привяжусь, а потом абзац.
|
|||
15
rs_trade
14.05.12
✎
12:19
|
(14) нет
|
|||
16
extrim-style
14.05.12
✎
12:21
|
(15) спс
|
|||
17
КонецЦикла
14.05.12
✎
12:38
|
Тупое, но работает: левые соединения в кол-ве столько штук сколько уровней (по id родителя)
Зато нет функций уровня, полного кода и проч. |
|||
18
fisher
14.05.12
✎
12:40
|
(13) Что сказать... Работать будет. Но это решение далеко не лучшее и по масштабируемости и по удобству сопровождения. Лучше всего регистрировать изменения и синхронизировать средствами 1С.
|
|||
19
FN
14.05.12
✎
13:39
|
(0) тяни только элементы + функция ПолучитьРодителя(АйДи), которая запускается рекурсивно и при отсутствии родителя отдельными запросами перетягивает иерархию
|
|||
20
extrim-style
14.05.12
✎
13:53
|
(19) В таком случае придется просматривать родителей для всех элементов. Не думаю, что это оптимально.
|
|||
21
FN
14.05.12
✎
14:23
|
(20) если родитель есть в 8-ке то просто возврат Родитель.Ссылка, а если нет - то запрос к 7-ке + создание родителя в 8-ке.
загрузка родителей произойдет только один раз, дальнейшей синхронизации/загрузки родителей происходить не будет |
|||
22
extrim-style
14.05.12
✎
14:57
|
(21) вариант
|
|||
23
КонецЦикла
17.05.12
✎
00:30
|
(22) Угу, только не учтен перенос родителей в другую группу :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |