|
Перебор регистров сведений | ☑ | ||
---|---|---|---|---|
0
Wefast
30.11.14
✎
04:39
|
При попытке обновить УТ 11.0 на следующую версию, постоянно ругается на регистры сведений. Пишет что там есть не уникальные записи.
Перебирать все вручную слишком не благодарное занятие. Пытаюсь написать обработку которая их переберет, удалить все пустые строки(которые там есть) и удалит дубли если они есть. Перебор регистров делаю через метаданные. запросом беру все записи. Помещаю измерения в массив Для Каждого Элемент Из Метаданные.РегистрыСведений Цикл Строчка = ""; ИзмЗапроса = ""; Массив = Новый Массив; КолВо = Элемент.Измерения.Количество() - 1; // Здесь я помещаю все измерения текущего регистра в массив и сооружаю поля для запроса Пока КолВо >=0 Цикл Измерение = Элемент.Измерения.Получить(Колво); КолВо = КолВо - 1; //Сообщить(Измерение); Массив.Добавить(Измерение); Если СтрДлина(Строчка) = 0 Тогда Строчка = "" + Измерение.Имя Иначе Строчка = Строчка + ", " + Измерение.Имя; КонецЕсли; ИзмЗапроса = ИзмЗапроса + "регистр." + Измерение.Имя + "," + Символы.ПС; КонецЦикла; ИзмЗапроса = ИзмЗапроса + "| " + Измерение; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ" + Символы.ПС + ИзмЗапроса + " | 1 КАК Сумма |ИЗ | РегистрСведений."+Элемент.Имя+" КАК Регистр |"; ТаблицаЗначений = Запрос.Выполнить().Выгрузить(); ТаблицаЗначений.Свернуть(Строчка, "Сумма"); Для каждого СтрокаТабЗнач из ТаблицаЗначений Цикл //Создаю наборзаписей текущего регистра НЗ = РегистрыСведений[Элемент.Имя].СоздатьНаборЗаписей(); Счетчик = 0; //Здесь я ПЫТАЮСЬ добавить отбор по измерениям текущего регистра Для каждого СтрокаМассива из Массив Цикл // В общем я понятие не имею как устонавить правильно отбор НЗ.Отбор[СтрокаМассива].ТипЗначения.Устонавить(СтрокаТабЗнач[СтрокаМассива].Значение); Счетчик = Счетчик +1; КонецЦикла; НЗ.Прочитать(); НЗ.Добавить(СтрокаТабЗнач); //НЗ.Записать(); КонецЦикла; Нужна помощь в грамотной организации отбора или решения задачи в целом |
|||
1
Wefast
30.11.14
✎
04:44
|
Да, УТ полностью типовая без доработок. Версии при обновлении не перепрыгиваю. При тестировании так же ругается на какой нибудь регистр и останавливается на этом.
Пробовал очистить регистр и заново протестировать\обновить, начинает ругаться на другой регистр. База слишком объемная чтобы подобные пробные тестирования делать после каждого нового выявленного проблемного регистра. |
|||
2
Wobland
30.11.14
✎
05:02
|
комментарии доставляют. код, впрочем, тоже ;)
предлагаю выкинуть это к чертям и спокойно искать дубли каждого регистра (порегистрово) |
|||
3
Gbpltw
30.11.14
✎
05:11
|
дааа, удаление гланд через анус - любимое занятие ТС.
там-же в УТ есть процедура по поиску невалидных записей, ищи. |
|||
4
Wefast
30.11.14
✎
08:46
|
(3) Что то не нашел никакой стандартной обработки в УТ по поиску дублей в регистрах сведений.
|
|||
5
Wobland
30.11.14
✎
10:53
|
(4) бывает
|
|||
6
Wobland
30.11.14
✎
10:53
|
вообще, перестань гробить базу и позови специалиста
|
|||
7
Мимохожий Однако
30.11.14
✎
11:30
|
(4)включи полный поиск по слову "невалидн"
|
|||
8
Wefast
17.12.14
✎
16:37
|
Ну специалист мне и передал разобраться с этой проблемой.
В общем вручную выявил, что были задублированы пустые строки. Сделал поиск в регистрах по Неопределенно и удалил их. И так с каждым регистром на который начинало ругаться. Одна радость - регистров таких оказалось всего 3. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |