Запрос в динамическом списке обработки

1. Тильчик 16.12.16 08:00 Сейчас в теме
Всем привет. такая ситуация- есть обработка "Регистрация изменений обмена данными". Когда встаешь на один из элементов метаданных выдается сообщение "Обнаружено дублирование ключевых значений в колонке "Ссылка.Объект"". Посмотрел запрос, который формируется в динамическом списке форму этой обработке, действительно есть одинаковые ссылки но с разными счетчиками сообщений. Вопрос: Что теперь с этим делать?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. ImHunter 312 16.12.16 09:14 Сейчас в теме
Поискать другую обработку регистрации.
Или как-то дописать текущую. Как - не могу сказать. Свежие версии не смотрел, пользуюсь древней.
3. Тильчик 20.12.16 10:27 Сейчас в теме
так эта обработка штатная, и обновляется вместе с конфигурацией.
4. ImHunter 312 20.12.16 11:04 Сейчас в теме
(3) Ну так если не работает, то хоть какая она разштатная будет, все равно она на чем-то глючит. Значит нужно пробовать другие.
Нисколь не навязываю этот путь:) Но я бы так пошел. Хотя бы для того, чтобы убедиться, что есть работающие варианты, а не что-то на самом деле кривое в данных.
5. Тильчик 20.12.16 12:32 Сейчас в теме
может косяк какой в данных - сделал ее внешней обработкой, изменил условие - получилось вот такое : см.скрин
Прикрепленные файлы:
6. ImHunter 312 20.12.16 12:42 Сейчас в теме
Тут ведь уже что-то другое. Не дубли.
Ну зарегана битая ссылка... Вроде ничего криминального не должно быть. Понятно, что она просто не выгрузится в обмене, т.к. выгружать нечего. Но ничего от этого поломаться не должно.
7. Тильчик 20.12.16 12:51 Сейчас в теме
нет, дело в ней,
Запрос ДО
	СписокСсылок.ТекстЗапроса = "
		|ВЫБРАТЬ
		|	ТаблицаИзменений.Ссылка         КАК Ссылка,
		|	ТаблицаИзменений.НомерСообщения КАК НомерСообщения,
		|	ВЫБОР 
		|		КОГДА ТаблицаИзменений.НомерСообщения ЕСТЬ NULL ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ
		|	КОНЕЦ КАК НеВыгружалось,
		|
		|	ОсновнаяТаблица.Ссылка КАК СсылкаОбъекта
		|ИЗ
		|	" + ИмяТаблицы + " КАК ОсновнаяТаблица
		|Правое СОЕДИНЕНИЕ
		|	" + ИмяТаблицы + ".Изменения КАК ТаблицаИзменений
		|ПО
		|	ОсновнаяТаблица.Ссылка = ТаблицаИзменений.Ссылка
		|ГДЕ
		|	ТаблицаИзменений.Узел = &ВыбранныйУзел
		|";
Показать

поставил условие без NULL
	СписокСсылок.ТекстЗапроса = "
		|ВЫБРАТЬ
		|	ТаблицаИзменений.Ссылка         КАК Ссылка,
		|	ТаблицаИзменений.НомерСообщения КАК НомерСообщения,
		|	ВЫБОР 
		|		КОГДА ТаблицаИзменений.НомерСообщения ЕСТЬ NULL ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ
		|	КОНЕЦ КАК НеВыгружалось,
		|
		|	ОсновнаяТаблица.Ссылка КАК СсылкаОбъекта
		|ИЗ
		|	" + ИмяТаблицы + " КАК ОсновнаяТаблица
		|Правое СОЕДИНЕНИЕ
		|	" + ИмяТаблицы + ".Изменения КАК ТаблицаИзменений
		|ПО
		|	ОсновнаяТаблица.Ссылка = ТаблицаИзменений.Ссылка
		|ГДЕ
		|	ТаблицаИзменений.Узел = &ВыбранныйУзел И не ОсновнаяТаблица.Ссылка  is null
		|";
Показать


Заработало. Как теперь эти ссылку удалить? И откуда они вообще берутся?
8. ImHunter 312 20.12.16 13:29 Сейчас в теме
Был зареган в обмене какой-то элемент справочника. Потом его удалили. Но в таблице обмена запись с его ссылкой осталась.
Для удаления должна быть какая-то команда в форме. В моей, по-крайней мере, есть такое.Но опять же, ты эту битую ссылку скрыл запросом.
9. Тильчик 20.12.16 14:18 Сейчас в теме
вот какая команда? я бы ее вызывал и удалял битые ссылки перед формированием запроса. Как удалить битую ссылку из узла?
10. ImHunter 312 20.12.16 14:56 Сейчас в теме
Вижу у тебя подменю Отменить регистрацию. Вот ее использовать нужно.
Тут две непонятки.
У тебя битые сейчас не видны ведь? Для команды не будет данных, что удалять.
И, похоже, я ошибся. Точечно отменить регистрацию для битой ссылки нельзя, т.к. в этом случае нужно будет использовать метод ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, ЗначенияСписка.Значение), где вторым параметром нужно передать объект. А его уже нет. Поэтому для битых ссылок нужно зарегистрировать УдалениеОбъекта методом ПланыОбмена.ЗарегистрироватьИзменения(...). Это и логично. Получатели тоже должны знать, что какой-то объект удален. Но тоже странно. При авто-регистрации это должно было автоматически произойти. И скорее всего это и произошло.

Поэтому вернемся на момент чуть раньше. Ну видишь ты битые ссылки. И в чем криминал?
11. Тильчик 20.12.16 15:27 Сейчас в теме
При штатном запросе битые ссылки не видны. Список не выводится, выходит ошибка из сабжа. Увидел их только в консоле запросов и переделал запрос. Из-за них и возникает ошибка, потому чт значение Ссылкаобъект должно быть уникально а NULLов несколько
12. ImHunter 312 20.12.16 15:35 Сейчас в теме
Совсем "в лоб" если:) То можно в запросе дописать РАЗЛИЧНЫЕ
13. Тильчик 20.12.16 15:37 Сейчас в теме
количество не будет сходится в списке с итогом по метаданным в дереве
14. ImHunter 312 20.12.16 15:57 Сейчас в теме
Тогда для дин списка попробовать назначить основной таблицей - таблицу изменений. Хз, правда, к чему это приведет:) И получится ли вообще.
Открыл стандартную обработку. Там как раз ниже запроса идет присвоение.
15. Тильчик 21.12.16 07:40 Сейчас в теме
Нашли того, кто битые ссылки сделал. Сейчас прогоню ТИИ проблема должна исчезнуть
16. ImHunter 312 21.12.16 08:29 Сейчас в теме
Не факт. Вряд ли что-то в обменах затронется. Хотя, это интересно. Пиши!
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)