|
Нужен совет по восстановлению справочника номенклатуры | ☑ | ||
---|---|---|---|---|
0
evgpinsk_
08.08.21
✎
20:46
|
Программно была запущена отлаженная процедура по переносу элементов справочника из одной папки в другую
код простой: Спр.Родитель = ПапкаПриёмник; Спр.Записать(); Но процедура подвисла, процесс пришлось убить. И после этого и подпапки и элементы видны только если справочник просматривать одноуровнево. Если же в разрезе групп, то эти элементы не видны Делаем вывод, что поле ParentID у них забилось не верной инфой. Октрываю DBF файл справочника напрямую. Вижу, что все мои "перенесённые" товары в поле ParentID имеют верное значение " GA7" https://prnt.sc/1l65ndd на скрине таких элементов 623 у элемента с ID=" GA7" его CODE=" 20886" https://prnt.sc/1l67btl т.е. по логике, когда в 1с я зайду в папку с кодом 20886, я должен там увидеть 623 элемента. Но по факту происходят какието глюки, когда я захожу в эту папку. Если опускаться стрелкой вниз, то увижу только 20 папок и всё. По клавише END я увижу свои "потерянные" элементы номенклатуры https://prnt.sc/1l7530a копия есть только 2хдневной давности, сложно просто перекинуть сам файл. Как варианты лечения? |
|||
1
ДенисЧ
08.08.21
✎
20:47
|
Индексы пробовал перестроить?
|
|||
2
nodrama
08.08.21
✎
20:53
|
Очень интересно. Но почему-то картинки не открываются.
Для начала я бы наладил копии, что бы делались каждый день. Сделал бы копию текущей базы и сделал бы там полное ТИИ. Почистил кеш, потому что на всякий случай. для профилактики. Потом бы смотрел дальше) |
|||
3
МихаилМ
08.08.21
✎
21:08
|
(0)
в белорусии впн запрещены |
|||
4
acanta
08.08.21
✎
21:33
|
Такое бывает, когда группа подчиненного элемента не совпадает с группой его родителя. Чтобы исправить глюк достаточно очистить поле родитель у всех и записать. А затем восстановить правильные данные о родителях из копии, например по оле.
|
|||
5
evgpinsk_
08.08.21
✎
22:37
|
(1) Да, те что перестраиваются при старте 1с, когда она ругается. Процедура длится примерно 5 минут. Не помогло.
Затем запустил в конфигураторе ТиИ ИБ: https://prnt.sc/1l8urhg и уже 4 часа идёт и не завершилось |
|||
6
evgpinsk_
08.08.21
✎
22:39
|
(2) Копии делаются каждый день, но как назло вчера не сделалась изза сбоя сети )
|
|||
7
evgpinsk_
08.08.21
✎
22:39
|
(4) Это не понял
|
|||
8
Злопчинский
08.08.21
✎
23:26
|
Возможно ПапкаПриёмник подсунулось значение не папки, а элемента
|
|||
9
evgpinsk_
09.08.21
✎
00:15
|
(8) Я разобрался в проблеме.
Мой алгоритм переноса всех элементов из "ПапкаОткуда" в "ПапкаПриёмник" не до конца верен. Вот он полностью: Процедура Выполнить() Спр1=СоздатьОбъект("Справочник.ТМЦ"); Список = СоздатьОбъект("СписокЗначений"); Спр1.ИспользоватьРодителя(ПапкаОткуда); Спр1.ВыбратьЭлементы(); Пока Спр1.ПолучитьЭлемент() = 1 Цикл Список.ДобавитьЗначение(Спр1.ТекущийЭлемент()); КонецЦикла; Для к=1 По Список.РазмерСписка() Цикл ТекЭл = Список.ПолучитьЗначение(к); Если Спр1.НайтиЭлемент(ТекЭл) = 1 Тогда Спр1.Родитель = ПапкаПриёмник; Спр1.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
10
evgpinsk_
09.08.21
✎
00:25
|
Он практически всегда работает правильно, кроме случая когда пользователь захочет перенести данные из "папки А" в любую подчинённую "папке А" папку.
В таком случае (согласно алгоритму) родителем подчинённой папки становится сама эта подчинённая папка. 1с технически пропускает такое действие. Но изза этого естественно "ломается" справочник. |
|||
11
Злопчинский
09.08.21
✎
00:32
|
все как всегда ;-) кривые руки ;-)
разобрался - и хорошо! |
|||
12
evgpinsk_
09.08.21
✎
00:32
|
Ну а глюки, которые я наблюдал, были изза плохого индексного файла справочника. Он поломался, когда сеанс 1с был убит, т.к. алгоритм естественно подвис.
А переиндексация, которая сама попросилась при следующем запуске 1с, не переиндексировала справочник номенклатуры (кстати я не знаю почему). И нужно было этот cdx файлик просто убить, чтобы он создался заново. Предварительно конечно сначала нужно было откорректировать в bdf файле поле ParentID "подчинённой папки". Изза неправильного алгоритма у этого элемента ID равнялся ParentID |
|||
13
hhhh
09.08.21
✎
01:10
|
(10) а писал "отлаженная процедура" ?
|
|||
14
d_monah
09.08.21
✎
01:20
|
Мдя,логика конечно у ТС своеобразная,если ветка сегодня не уйдет в туман,расжуем.
|
|||
15
evgpinsk_
09.08.21
✎
01:26
|
(13) Ну как оказалось "почти отлаженная" )
|
|||
16
evgpinsk_
09.08.21
✎
01:27
|
(14) интересно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |