|
v7: В списке спр. Номенклатура по нажатию "Найти в дереве" думает 5с. и вываливается | ☑ | ||
---|---|---|---|---|
0
vladimir-boy
20.10.12
✎
18:50
|
Есть 1с 7.7 27 версия и база в файловом варианте и в ней справочник "Номенклатура" с 15 000 позиций.
Когда в его списке (при откл. режиме вывода по группам) первый раз кликаешь на иконку "Найти в дереве", то всегда находит и показывает маркером слева в дереве папку-родитель, НО стоит ещё выбрать в списке любую другую позицию и второй раз "Найти в дереве", то 1с думает 5-7 сек. и тупо вываливается без каких либо предупреждений. Пробовал уже всё: Исправление и тестирование базы, удаление и пересоздание индексов, удаление и пересоздание DD-файла, НО ничего не помагает. Грешит на ОС и на 1С не могу, так как в другой папке есть аналогичная файловая база с 18 000 позициями, которая команду "Найти в дереве" отрабатывает на все 100%. Подскажите пожалуйста куда копать и в чём может быть проблема? Спасибо за ответы. |
|||
1
Ursus maritimus
20.10.12
✎
18:52
|
Зациклен родитель
|
|||
2
vladimir-boy
20.10.12
✎
18:56
|
(1) В смысле. Это как? Можно по-подробней пожалуйста.
|
|||
3
Ursus maritimus
20.10.12
✎
18:58
|
У группа1 родитель группа2, а у группа2 группа1.
Может быть через какие-то промежуточные элементы |
|||
4
aleks-id
20.10.12
✎
19:00
|
7.7 гамно. переходите на 8
|
|||
5
vladimir-boy
20.10.12
✎
19:03
|
(3) А как такое 1с позволяет делать?
(4) Когда будет (8.Финальная версия) так и сразу будем переходить |
|||
6
aleks-id
20.10.12
✎
19:05
|
(5) да? а чо, 7-ка была "финальная"? да это всю несознательную жизнь был инвалид, которого утыкали костылями как кактус иголками.
|
|||
7
vladimir-boy
20.10.12
✎
19:07
|
(6) Непросто слезть с 7-ки уж много плюшек в ней прикручено.
|
|||
8
vladimir-boy
20.10.12
✎
19:13
|
(0) Повторюсь, что ЛЮБУЮ позицию находит в дереве с первой попытки, вторая попытка - КРАХ 1С.
|
|||
9
Базис
naïve
20.10.12
✎
19:14
|
Выгрузи и загрузи БД. (Ещё хорошо бы сравнить исходную и полученную, но готовых инструментов я не видел).
|
|||
10
vladimir-boy
20.10.12
✎
19:17
|
(9) Уже пробую
|
|||
11
КонецЦикла
20.10.12
✎
19:17
|
(0) Очень интересно
А если второй выбрать ту позицию, которая первый раз прокатывает? Т.е. дело именно во втором разе? |
|||
12
КонецЦикла
20.10.12
✎
19:19
|
(6) Ты сам-то имел дело с 7.7 в сознательном возрасте?
Там есть ООП и проч. в виде "палок и иголок", которого нет в 8.х до сих пор |
|||
13
vladimir-boy
20.10.12
✎
19:39
|
(9) НЕ ПОМОГЛО, к сожаленью
(11) Не зависит от конкретной позиции, а зависит от самого раза (со второго - "ЧАУ"),позиция которая находилась в дереве с первого раза в любом варианте, если будет выбрана для поиска в дереве вторым разом вылет 1С обеспечен. Кстати смотрю утилитой монитора файлов от systernals, то вижу что буксуется 2 файла sc135.dbf и sc135.cdx (в DD - Номенклатура) , но как писал выше убивание cdx и пересоздание оного положительного результата нет. |
|||
14
aleks-id
20.10.12
✎
19:43
|
(12) ой-ой.. ну-ка поведай нам, а то я что-то упустил
|
|||
15
Chai Nic
20.10.12
✎
19:45
|
(3) 1c так не позволяет делать. Но бывают глюки. Даже на sql-базе пару раз ловили такое зацикливание.
|
|||
16
DGorgoN
20.10.12
✎
19:45
|
(13) Напиши обработку по поиску зацикленного родителя
|
|||
17
DGorgoN
20.10.12
✎
19:46
|
Вообще по доброму - сделать бэкап, все элементы перенести в корневую группу.
|
|||
18
DGorgoN
20.10.12
✎
19:47
|
В смысле на копии сделать (17). Отписать сюда.
|
|||
19
Chai Nic
20.10.12
✎
19:47
|
(16) Или sql-запросом удалить все строки, у которых родитель равен идентификатору. Для dbf можно использовать даже древний фокспро.
|
|||
20
NS
20.10.12
✎
19:48
|
Для дбф можно даже использовать саму 1с.
Xbase еще никто не отменял. |
|||
21
vladimir-boy
20.10.12
✎
19:51
|
(16), (19), (20) Пробую уже..
|
|||
22
DGorgoN
20.10.12
✎
19:57
|
(19) тут может быть и по другому. Пусть сначала сделать всем корневого родителя. Потом уже будем посмотреть!
|
|||
23
Chai Nic
20.10.12
✎
19:58
|
(20) foxpro умеет sql, что намного упрощает)
|
|||
24
vladimir-boy
20.10.12
✎
20:06
|
(23) Fox - это моя любимая среда до встречи с 1С
Вообщем нет пока видимости причины: Вердикт фокса: USE e:\work\1c\7.7\postavka_base\sc135.dbf SHARED BROWSE SELECT * FROM sc135 WHERE id=parenid // печатает весь справочник SELECT COUNT(*) FROM sc135 // печатает 14673 SELECT * FROM sc135 WHERE id=parentid // ничего нет SELECT COUNT(*) FROM sc135 WHERE id=parentid // печатает 0 |
|||
25
vladimir-boy
20.10.12
✎
20:08
|
(24) Сори за описку : SELECT * FROM sc135 WHERE id=parenid // печатает весь справочник
Там комент предполагался для browse, то есть так browse // печатает весь справочник |
|||
26
hhhh
20.10.12
✎
20:19
|
(0) а оно это вам надо, "найти в дереве"? Столько лет работаю, никогда даже не слышал о такой кнопке. Есть же нормальные средства работы там в семерке, что вы так прикипели к этой придурочной функции? К тому же и не работающей.
|
|||
27
vladimir-boy
20.10.12
✎
20:35
|
(26) Конечно, не самое важное, но есть осадок и нет уверенности, что всё в жизни заМЕЧТАтельно. :)))))))
|
|||
28
Tatitutu
20.10.12
✎
20:36
|
Проверка на заЦИКЛивание элементов (групп) справочников конфигурации
http://infostart.ru/public/85714/ |
|||
29
vladimir-boy
20.10.12
✎
20:46
|
(28) Спасибо, но ФОКС с единственным запросом ( SELECT * FROM sc135 spr WHERE spr.id=spr.parentid // ПУСТАЯ выборка ) опроверг подозрение-гипотезу о таком случае.
|
|||
30
kiruha
20.10.12
✎
20:54
|
(0)
Выгрузка и загрузка в пустую - исправляет баги в спр Но зацикливание более вероятно. Сталкивался. Оно не обязано быть вида сам на себя Может через несколько промежуточных |
|||
31
kiruha
20.10.12
✎
21:03
|
SELECT DISTINCT sp2.parentid FROM
(SELECT DISTINCT sp1.parentid FROM (SELECT DISTINCT spr0.parentid FROM (SELECT DISTINCT spr.parentid FROM sc135 spr )spr0 )spr1 )spr2 ну и так допустимыхуровней+1 - если не пусто - зацикл |
|||
32
kiruha
20.10.12
✎
21:04
|
очепятка sp spr
|
|||
33
vladimir-boy
20.10.12
✎
21:04
|
(30) Выгружал и загружал 3(!) раза, причём и на другой комп и плюс с другой ОС. НЕ помогло.
Вопрос скорей всего кроется в особенности обработки платформой 1С в данном случае конкретной этой базы, где у неё случается "Потеря сознания". В других базах на этом же компе, с этой же 1с-кой "найти в дереве" работает на УРА хоть 100 раз осуществляй эту функцию! А здесь адзын раз и накрывается медным тазом. (31) Спасибо попробую! |
|||
34
kiruha
20.10.12
✎
21:06
|
(33)
не - неправильный запрос, уже подзабыл Ну идея понятна |
|||
35
vladimir-boy
20.10.12
✎
21:19
|
(34) Я понял. Самый вложенный Запрос выводит список групп-родителей, а все остальные по иерархии запросы делают тоже самое.
|
|||
36
kiruha
20.10.12
✎
21:22
|
что вроде этого для 2-х уровнего
SELECT DISTINCT SC3.parentid FROM (SELECT DISTINCT SC2.parentid FROM (SELECT DISTINCT SC1.parentid FROM (SELECT DISTINCT spr.parentid FROM sc135 spr )spr0 Left JOIN sc135 SC1 ON spr0.parentid =SC1.id )spr1 Left JOIN sc135 SC2 ON spr1.parentid =SC2.id )spr2 Left JOIN sc135 SC3 ON spr1.parentid =SC3.id |
|||
37
vladimir-boy
20.10.12
✎
21:31
|
(36) Спасибо огромное за помощь, но к сожаленью надо отлучиться. Реализация идеи ясна, что для каждого уровня у элементов есть только ОДИН непосредственный родитель. Ваш пример обязательно опробую и о результатах отпишусь!
|
|||
38
vladimir-boy
21.10.12
✎
01:10
|
(0) ОТВЕТ найден и был ещё озвучен в (1) посте и далее.
Немного радостно, но в тоже время и грустно и прискорбно за зря потраченное время и силы форумчан, за что конечно огромная им БЛАГОДАРНОСТЬ. Но тут как говорится: "Неверующая Фома не поверит пока не проверит". НАшлась папка на третьем уровне с ID=0(!). Непонятно откуда ей 1С присвоило такое странное значение. Даже несколько раз пытался создавать пустую базу, но там ID всегда начинается с 1. Но как известно в корневом катологе справочника все элементы и группы имеют ParentID=0; Вот оно и зацикливалось! Ёпть. Ксати после XP даже на Windows 7 умудрился зарядить, где она хоть как-то нарисовала ошибку при падении: Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: 1cv7s.exe Версия приложения: 7.70.0.27 Отметка времени приложения: 4573fcd8 Имя модуля с ошибкой: MFC42.DLL Версия модуля с ошибкой: 6.6.8063.0 Отметка времени модуля с ошибкой: 4a5bda30 Код исключения: c00000fd Смещение исключения: 00013779 Версия ОС: 6.1.7601.2.1.0.256.1 Код языка: 1049 Дополнительные сведения 1: 585e Дополнительные сведения 2: 585ef2312291978d8ea132aceae065eb Дополнительные сведения 3: 40ca Дополнительные сведения 4: 40ca51e68e1af2bc8c975a12a0ef9834 Ознакомьтесь с заявлением о конфиденциальности в Интернете: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419 Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом: C:\Windows\system32\ru-RU\erofflps.txt |
|||
39
vladimir-boy
21.10.12
✎
07:27
|
Кстати пардон, что торопился ответить и забыл написать как же собственно ответ получил:
Если запрос вернул хоть одну зацикленную парочку(2 записи), то дело плохо SELECT spr1.id, spr1.parentid FROM sc135 as spr1 JOIN (select spr2.parentid, spr2.id FROM sc135 as spr2) spr2 ON ((spr1.id=spr2.parentid) AND (spr1.parentid = spr2.id)) |
|||
40
0xFFFFFF
21.10.12
✎
09:29
|
(5)
"Когда будет (8.Финальная версия) так и сразу будем переходить" бугага |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |