Здравствуйте, уважаемые форумчане.
Вопрос следующий:
По результатам выполнения «Тестирования и исправления инф. базы» было выявлено несколько ошибок:
«Тестирование начато
Проверка логической целостности расширений конфигурации
• Проверка логической целостности. Справочник.ФормыСтатистики Форма 1-предприниматель (утверждена приказом Росстата от 17.08.2020 № 469)
Не определен владелец
• Проверка логической целостности. Справочник.ФормыСтатистики Форма ТЗВ-МП (утверждена приказом Росстата от 29.07.2016 № 373)
Не определен владелец
...
• КлючиДоступаКРегистрам. Имеются записи с одинаковыми измерениями
Тестирование закончено»
Меня интересует именно последняя ошибка, так как есть подозрение, что она создает критическую проблему с данными по хранению на складе (но это только догадки).
По статьям с форумов пытался писать запрос через «Консоль запросов» на поиск дублей, но всё без толку (скорее всего неверно задаю запрос):
ВЫБРАТЬ
КлючиДоступаКРегистрам.ВариантДоступа КАК ВариантДоступа,
КлючиДоступаКРегистрам.КлючДоступа.Ссылка КАК КлючДоступаСсылка1,
КлючиДоступаКРегистрам.Поле1.Дата КАК Поле1Дата1,
КлючиДоступаКРегистрам.Поле1.Ссылка КАК Поле1Ссылка1,
КлючиДоступаКРегистрам.Регистр.Ссылка КАК РегистрСсылка1,
КлючиДоступаКРегистрам.Поле2.Ссылка КАК Поле2Ссылка1,
КлючиДоступаКРегистрам.Поле1.ИдентификаторДокумента КАК Поле1ИдентификаторДокумента
ИЗ
РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам
Показать
В случае такого запроса вываливается около полумиллиона строк, которые проверить невозможно. Пытался группировать результаты, тоже выхлопа не получил.
Подскажите, что можно сделать в этой ситуации, может быть как-то скорректировать запрос или же совершенно по другому искать эти дубли?
ВЫБРАТЬ
СУММА(1),
ВариантДоступа КАК ВариантДоступа,
КлючДоступа.Ссылка КАК КлючДоступаСсылка1,
Поле1.Дата КАК Поле1Дата1,
Поле1.Ссылка КАК Поле1Ссылка1,
Регистр.Ссылка КАК РегистрСсылка1,
Поле2.Ссылка КАК Поле2Ссылка1,
Поле1.ИдентификаторДокумента КАК Поле1ИдентификаторДокумента
ИЗ
РегистрСведений.КлючиДоступаКРегистрам
СГРУППИРОВАТЬ ПО
ВариантДоступа,
КлючДоступа.Ссылка,
Поле1.Дата,
Поле1.Ссылка,
Регистр.Ссылка,
Поле2.Ссылка,
Поле1.ИдентификаторДокумента
ИМЕЮЩИЕ СУММА(1) > 1
(3) Благодарю Вас за помощь с кодом запроса, но тут возникла проблема, результатом запроса оказалось 100 строк с разными ключами доступа. Подскажите. как среди них можно определить дубликаты?
По статьям с форумов пытался писать запрос через «Консоль запросов» на поиск дублей
Запрос странный, для поиска записей с одинаковыми измерениями запрос должен быть следующим:
ВЫБРАТЬ
СУММА(1) КАК сч,
МАКСИМУМ(КлючиДоступаКРегистрам.КлючДоступа) КАК КлючДоступа,
КлючиДоступаКРегистрам.Регистр КАК Регистр,
КлючиДоступаКРегистрам.ВариантДоступа КАК ВариантДоступа,
КлючиДоступаКРегистрам.Поле1 КАК Поле1,
КлючиДоступаКРегистрам.Поле2 КАК Поле2,
КлючиДоступаКРегистрам.Поле3 КАК Поле3,
КлючиДоступаКРегистрам.Поле4 КАК Поле4,
КлючиДоступаКРегистрам.Поле5 КАК Поле5
ИЗ
РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам
СГРУППИРОВАТЬ ПО
КлючиДоступаКРегистрам.Регистр,
КлючиДоступаКРегистрам.Поле1,
КлючиДоступаКРегистрам.Поле2,
КлючиДоступаКРегистрам.Поле3,
КлючиДоступаКРегистрам.Поле4,
КлючиДоступаКРегистрам.Поле5,
КлючиДоступаКРегистрам.ВариантДоступа
ИМЕЮЩИЕ
СУММА(1) > 1
Показать
Запрос выдает только дубликаты.
Для исправления:
Выборка = Запрос.Выполнить.Выбрать();
Пока Выборка.Следующий() Цикл
НаборЗаписей=РегистрыСведений.КлючиДоступаКРегистрам.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистр.Установить(Выборка.Регистр);
НаборЗаписей.Отбор.ВариантДоступа.Установить(Выборка.ВариантДоступа);
НаборЗаписей.Отбор.Поле1.Установить(Выборка.Поле1);
НаборЗаписей.Отбор.Поле2.Установить(Выборка.Поле2);
НаборЗаписей.Отбор.Поле3.Установить(Выборка.Поле3);
НаборЗаписей.Отбор.Поле4.Установить(Выборка.Поле4);
НаборЗаписей.Отбор.Поле5.Установить(Выборка.Поле5);
Запись = НаборЗаписей.Добавить();
ЗаполнитьЗначенияСвойств(Запись, Выборка);
НаборЗаписей.Записать();
КонецЦикла
(5) Можете еще подсказать, данный код запроса и цикла нужно как отдельную внешнюю обработку использовать в качестве подключаемого файла или же всё-таки добавить в код в качестве расширения модуля для «РегистрыСведени.КлючиДоступаКРегистрам»? В качестве расширения пытался несколько раз через модуль менеджера выполнить, не получилось.