|
Вопрос про поиск ссылок на объект | ☑ | ||
---|---|---|---|---|
0
f_vadim
16.05.14
✎
16:50
|
Есть обработка "поиск и замена значений" (итс или инфостарт - не помню). С помощью неё произвожу замену контрагента и его договора в ряде документов (включая движения).
После этого как поиск ссылок самой обработки, так и поиск ссылок встроенный находит в документах ссылки на старые значения. Причём глазами и запросами к этим документами и регистрам я их не нахожу. ТиИ делал с пересчетом итогов. Кто-нибудь с таким сталкивался? |
|||
1
John83
16.05.14
✎
16:58
|
почему в браузерах до сих пор не сделают проверку на пунктуацию?...
PS раз пять перечитал.. |
|||
2
f_vadim
16.05.14
✎
17:03
|
(1) Ну хоть суть-то ясна?
Могу чуток короче. Открываю документ - нет в нём такого договора, а НайтиПоСсылкам говорит, что есть. |
|||
3
DS
16.05.14
✎
17:12
|
Для вывода о том, что в документе нет такого договора, недостаточно открыть этот документ.
|
|||
4
mikecool
16.05.14
✎
17:13
|
(2)
- ты суслика видишь? - нет - а он там есть! |
|||
5
f_vadim
16.05.14
✎
17:16
|
(3) Всё верно.
Запросом выгребаю все поля из документа и из движений - нету такого. |
|||
6
hhhh
16.05.14
✎
17:24
|
(5) а из табличных частей?
|
|||
7
f_vadim
16.05.14
✎
17:29
|
(6) естественно.
|
|||
8
eddy_n
16.05.14
✎
18:02
|
Сталкивался. БП3. Платформа 8.3. Файловая ИБ. Поиск ссылок на объект - показывает на несуществующую ссылку. Полнотекстовый поиск при этом работает нормально - "левых" ссылок не показывает.
|
|||
9
eddy_n
16.05.14
✎
18:03
|
Не может 1с обеспечить целостность базы своим форматом.
|
|||
10
f_vadim
16.05.14
✎
18:24
|
(8)(9) Или вообще жесть или я чего-то не понял. мы об одном говорим?
Несуществующая ссылка - это не ссылка на несуществующий объект, а именно ссылка, которой не должно быть, но она есть? Это как-то можно побороть? Скажем, какие варианты удаления таких объектов, на которые присутствуют фантомные ссылки? База серверная с MS SQL. |
|||
11
bolobol
16.05.14
✎
18:59
|
Плохо смотрел. Не может быть есть того что нет.
|
|||
12
Infsams654
16.05.14
✎
19:26
|
(0) хочется спросить. В НайтиПоСсылкам
во Вторая колонка - ссылка на объект. Там тот документ, у которого якобы нет этого договора ? НайтиПоСсылкам (FindByRef) Синтаксис: НайтиПоСсылкам(<СписокСсылок>) Параметры: <СписокСсылок> (обязательный) Тип: Массив. Массив со списком ссылок на объекты, ссылки на которые нужно найти. Возвращаемое значение: Тип: ТаблицаЗначений. Возвращает ссылки на найденные объекты в виде ТаблицаЗначений. Первая колонка - исходная ссылка. Вторая колонка - ссылка на объект, если найденная ссылка соответствует объектной таблице или значение, олицетворяющее запись необъектной таблицы. Третья колонка - объект метаданных, которому соответствуют данные в которых найдена ссылка. Описание: Осуществляет поиск ссылок на объекты, переданные в параметре <СписокСсылок>. |
|||
13
f_vadim
16.05.14
✎
21:16
|
(12) именно
|
|||
14
f_vadim
16.05.14
✎
21:25
|
(11) Возможно я чего-то не углядел. Научи меня хорошо смотреть, у меня идеи кончились.
Хотя есть одна - залезть в базу напрямую, подсмотрев таблички профайлером. Но доступа пока нет. |
|||
15
f_vadim
19.05.14
✎
08:15
|
А-ап.
|
|||
16
lxndr
19.05.14
✎
08:29
|
(2) какой документ? Какой реквизит?
|
|||
17
f_vadim
19.05.14
✎
11:35
|
(16) Поступление на р/с и списание с р/с. Ссылки ищу на договор контрагента.
Какой реквизит - неизвестно, все заполнены новыми значениями. |
|||
18
DS
19.05.14
✎
13:18
|
Это не там, где кроме шапочного набора реквизитов есть еще и табличный ("РасшифровкаПлатежа" или что-то в этом духе)?
|
|||
19
f_vadim
19.05.14
✎
14:19
|
(18) Да, там. Все реквизиты, включая ТЧ, выбирались запросом.
|
|||
20
Анютик
19.05.14
✎
14:22
|
А точно все движение проверил? на тесте перепровести док контрольный и посмотреть.
Кстати, может быть тч зачет аванса еще. |
|||
21
FIXXXL
19.05.14
✎
14:22
|
(14) дерзкий? рескаай!
мой тебе совет: пакатай обработку раза три потом смотри :) |
|||
22
f_vadim
19.05.14
✎
14:54
|
(20) На тестовой базе перезаполнял и перепроводил. Даже в непроведенном документе ссылка присутствует.
(21) Катал-перекатал уже. Сама обработка не находит чего менять. Т.е. по кнопке "найти ссылки" - ссылки находятся, а когда смотришь отладчиком "выполнить замену значений" - до кода замены дело не доходит. |
|||
23
f_vadim
19.05.14
✎
14:59
|
Выгружаю документ вместе с движениями в XML (ВыгрузкаЗагрузкаДанныхXML82.epf). В файле присутствует только UID нового договора (старого нет).
|
|||
24
Анютик
19.05.14
✎
15:03
|
(22) быть такого не может. ТИИ, выгрузка-загрузка. Но я такого не видела
|
|||
25
f_vadim
19.05.14
✎
15:08
|
(24) сам не верю :).
ТИИ делал, выгрузка-загрузка в тестовую базу - эффекта ноль. |
|||
26
Анютик
19.05.14
✎
15:09
|
может, какие-то регистры сведений завязаны? и там не изменено? проверял?
|
|||
27
f_vadim
19.05.14
✎
15:25
|
(26) движения документа, регистры, ссылающиеся на этот документ и договор, проверил.
|
|||
28
f_vadim
19.05.14
✎
16:15
|
Прелесть просто.
Удалил документ "поступление на р/с" с фантомной ссылкой на договор. Делаю поиск ссылок на договор. Находит! Объект, содержащий ссылки: <объект не найден> (уид). Тип объекта: "поступление на р/с" O_o ЗЫ. ТИИ не предлагать. |
|||
29
hhhh
19.05.14
✎
16:18
|
(280 так надо закрыть эту обработку и опять открыть
|
|||
30
f_vadim
19.05.14
✎
16:27
|
(29) шутка?
Всё равно проверил - результат как в (28) |
|||
31
Анютик
19.05.14
✎
16:28
|
конфигурация какая? у всех регистров накопления этот реквизит ведущий?
|
|||
32
Анютик
19.05.14
✎
16:29
|
и вдогонку...через поиск ссылок на объект поискать - найдет?
|
|||
33
f_vadim
19.05.14
✎
16:44
|
(31) "Адаптированная" БП3. Второй вопрос не понял.
(32) Да. Находит <объект не найден>. |
|||
34
Анютик
20.05.14
✎
09:29
|
у регистров сведений, где используются эти данные взведен флажок "ведущее"
|
|||
35
f_vadim
20.05.14
✎
11:36
|
(34) В регистрах сведений (данные первичных документов) фигурирует только документ "поступление на р/с". Там есть флаг "ведущее".
Договор вместе с поступлением только в бух. проводке, а ссылка сохраняется после отмены проведения и удаления самого документа. |
|||
36
Анютик
20.05.14
✎
11:38
|
файловая база? может, chdbfl попробовать полечить?
|
|||
37
Пеппи
20.05.14
✎
11:43
|
(33) картинку выложи волшебник) именно из поиск ссылок
|
|||
38
f_vadim
20.05.14
✎
12:29
|
(36) серверная, для тестов выгружал в файловую - безрезультатно. chdbfl попробую
(37) ахалай-махалай https://drive.google.com/file/d/0BzRsBTCcQiXeZFFIVVlDWWVsUzA/edit?usp=sharing |
|||
39
f_vadim
20.05.14
✎
13:45
|
chdbfl - ошибок не обнаружено
|
|||
40
hhhh
20.05.14
✎
14:04
|
кеш чистил?
|
|||
41
f_vadim
20.05.14
✎
14:13
|
(40) почистил. эффекта - ноль
|
|||
42
hhhh
20.05.14
✎
15:45
|
(41) тогда проверьте права.
|
|||
43
f_vadim
20.05.14
✎
16:42
|
(42) всё с полными правами
|
|||
44
f_vadim
21.05.14
✎
12:22
|
Ап.
Краткое содержание проблемы: В документе "П1" заполнено поле договор - "Д1". Поиск ссылок на договор "Д2" находит тот же документ "П1" (в каком реквизите встречается "Д2" неизвестно, искал запросами). Если удалить документ "П1", ссылка сохраняется. https://drive.google.com/file/d/0BzRsBTCcQiXeZFFIVVlDWWVsUzA/edit?usp=sharing ТИИ не помогает. База серверная MS SQL. Загрузка в файловую проблемы не решает. CHdbfl без ошибок. |
|||
45
Анютик
21.05.14
✎
12:40
|
(38) в (37) не это просили, а из операции - поиск ссылок на объекты
|
|||
46
f_vadim
21.05.14
✎
13:38
|
(45) там тоже самое
https://drive.google.com/file/d/0BzRsBTCcQiXeT2RuX2F3eGJMY00/edit?usp=sharing |
|||
47
f_vadim
21.05.14
✎
15:12
|
Ссылку нашёл. Хранится в таблице _SeqB9957.
Гугле говорит, что это - таблица границ последовательностей. Кто подскажет как разрулить штатными средствами? Таких ссылок у меня порядка 2000. |
|||
48
f_vadim
21.05.14
✎
15:33
|
Всё нашёл.
В последовательности Взаиморасчеты.Границы. Т.е. поиск ссылок находит ссылку в последовательности, но показывает, что ссылка в документе. Как заставить систему перезаписать данные в последовательности? Или их как-то можно удалить? |
|||
49
Анютик
22.05.14
✎
08:55
|
ну ...как вариант, на копии, откатить дату последовательности раньше самого раннего документа, а потом восстановить. Должно перезаписаться, но надо опыты ставить, так сказать не готова. На Копии!!:)
|
|||
50
hhhh
22.05.14
✎
09:18
|
(48) ПоследовательностьНаборЗаписей.<Имя последовательности> (SequenceRecordSet.<Имя последовательности>)
Очистить (Clear) Синтаксис: Очистить() Описание: Удаляет все записи регистрации из набора. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
51
f_vadim
22.05.14
✎
09:50
|
(49) Ага, я поигрался вчера. В записях последовательностей все документы с кривыми ссылками заменились на пустой документ "авансовый отчёт" :) (как тут v8: Как можно удалить документ (пустую ссылку) из последовательности)
(50) Как очистить я знаю. Последствий никаких не будет? |
|||
52
hhhh
22.05.14
✎
10:03
|
а какие могут быть последствия? Ведь ничего не изменится.
|
|||
53
f_vadim
22.05.14
✎
10:33
|
С очисткой тоже проблема.
В последовательности "Последовательность.Взаиморасчеты" похоже всё нормально. Кривые записи в "Последовательность.Взаиморасчеты.Границы". Запросом отбираются по регистратор = пустая ссылка на авансовый отчет. Чтение набора записей по этому регистратору ни одной записи не находит. Т.е. надо как-то очистить записи в границах. Дату пробовал сдвинуть раньше первого документа - не помогает, записи остаются. |
|||
54
f_vadim
22.05.14
✎
10:43
|
Подмывает прихлопнуть эти записи средствами sql.
|
|||
55
hhhh
22.05.14
✎
10:51
|
(53)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Взаиморасчеты.Регистратор |ИЗ | Последовательность.Взаиморасчеты КАК Взаиморасчеты |ГДЕ | Взаиморасчеты.Регистратор.Дата ЕСТЬ NULL "; Таб = Запрос.Выполнить().Выгрузить(); Для Каждого Стр Из Таб Цикл Наб = Последовательности.Взаиморасчеты.СоздатьНаборЗаписей(); Наб.Отбор.Регистратор.Установить(Стр.Регистратор); Наб.ОбменДанными.Загрузка = Истина; Наб.Записать(); Сообщить("--- " + Стр.Регистратор); КонецЦикла; |
|||
56
f_vadim
22.05.14
✎
11:01
|
(55)
этот возвращается пустой
а этот находит нужные мне записи
|
|||
57
f_vadim
22.05.14
✎
12:08
|
Вобщем, похоже, что когда сдвигаешь границу на дату ранее первого документа, в таблице с границами остаются только битые ссылки.
|
|||
58
f_vadim
22.05.14
✎
13:18
|
Вобчем, я вычистил кривые записи из таблицы SeqB.
Границы подвигал - записи создаются. Посмотрю чего скажет ТиИ. |
|||
59
f_vadim
23.05.14
✎
14:00
|
ТиИ - без ошибок. База вроде живая.
Спасибо за внимание. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |