|
как объединить 2 элемента справочника? | ☑ | ||
---|---|---|---|---|
0
Мисти
02.04.20
✎
21:39
|
один из них встречается 500 тыс. раз, а второй немного поменьше.
Только поиск занял часов 10. |
|||
1
DTX 4th
02.04.20
✎
21:54
|
Один пометить на удаление, на второй перекинуть все остатки.
|
|||
2
Garykom
гуру
02.04.20
✎
21:59
|
(0) Если sql то прямой заменой ссылок в базе можно
|
|||
3
Сияющий в темноте
02.04.20
✎
22:01
|
(2) предположим,что в регистре сведений в измерениях встречаются оба этих справочника-и что сделает прчмая замена?
потом,в квалификацию на прямую замену создателя вопроса я просто не верю. |
|||
4
Мисти
02.04.20
✎
22:05
|
да знать бы рецепт! (3) встречается, и в регистрах сведений и везде. Хотя - надо посмотреть, может, и нет.
|
|||
5
Garykom
гуру
02.04.20
✎
22:06
|
(3) Надо смотреть понятно дело где ссылки на эти справочники используются.
|
|||
6
Garykom
гуру
02.04.20
✎
22:07
|
Могу еще посоветовать один метод, но он пока теоретический.
Есть такая штука погугли "data_dump.zip" если конфа типовая из списка облачных то повезло. |
|||
7
Garykom
гуру
02.04.20
✎
22:09
|
(6)+ По сути это zip архив а внутри все данные в виде xml.
Работать с xml можно на чем угодно и даже вручную Найти/Заменить )) |
|||
8
Garykom
гуру
02.04.20
✎
22:10
|
(6)+ Точнее повезло если сам объем базы не сильно большой и оно в разумные сроки выгружается/загружается в этом формате
|
|||
9
Garykom
гуру
02.04.20
✎
22:12
|
Какие знакомые имена Как достать базу из data_dump?
|
|||
10
mistеr
02.04.20
✎
23:21
|
(0) Обработка из ИР, "Поиск и замена ссылок".
|
|||
11
Мисти
03.04.20
✎
12:04
|
(10) я ж говорю, только поиск занял 10 часов, маловероятно, что этот объем обработается.
|
|||
12
Мисти
03.04.20
✎
12:05
|
(9) всё получилось в тот раз!
конфа теперь совсем нетиповая. |
|||
13
mistеr
03.04.20
✎
12:08
|
(11) Когда найдены все ссылки, можно отбирать по типам объектов. Это если не терпится.
|
|||
14
timeforlive
03.04.20
✎
12:16
|
Если нужно во всех документах и справочниках выполнить замену одного элемента справочника на другой, то я применяю следующий способ:
(об этом писали выше) 1. пометить на удаление заменяемый элемент 2. получить все ссылки на удаляемый элемент (код ниже) 3. выполнить условие замены. На примере с номенклатурой // получить результат запроса по удаляемому элементу. ТЗ = РезультатЗапроса.Выгрузить(); // Получить всю номенклатуру, помеченную на удаление МассивСсылок = ТЗ.ВыгрузитьКолонку("Ссылка"); ТабСсылок = НайтиПоСсылкам(МассивСсылок); ТабСсылок.Сортировать("Ссылка"); СписокНоменклатурыИсключение = Новый Массив; // Найти движения по документам. // Если есть движения, то номенклатуру не трогаем. Для Каждого Стр Из ТабСсылок Цикл Если СтрНайти(Стр.Метаданные.ПолноеИмя(), "Документ.") Тогда Сообщить(Стр.Ссылка); СписокНоменклатурыИсключение.Добавить(Стр.Ссылка); КонецЕсли; КонецЦикла; //Справочники.Спецификации.НайтиПоКоду("ФР-001589") = Стр.Ссылка // Удалить номенклатуру из списка, по которой есть движения Для Каждого Эл Из СписокНоменклатурыИсключение Цикл ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("Ссылка", Эл); МассивСтрок = ТабСсылок.НайтиСтроки(ПараметрыОтбора); Для Каждого ЭлСтр Из МассивСтрок Цикл ТабСсылок.Удалить(ЭлСтр); КонецЦикла; КонецЦикла; // Пометить на удаление все ссылки на номенклатуру Для Каждого Стр Из ТабСсылок Цикл // Справочник Если СтрНайти(Стр.Метаданные.ПолноеИмя(), "Справочник.") Тогда ПометитьОбъектНаУдаление(Стр.Данные.Ссылка); // Регистр ИначеЕсли СтрНайти(Стр.Метаданные.ПолноеИмя(), "РегистрСведений.") Тогда УдалитьЗаписьРегистра(Стр.Метаданные.Имя, Стр.Данные); ////МенеджерЗаписи=РегистрыСведений[Стр.Метаданные.Имя].СоздатьМенеджерЗаписи(); ////МенеджерЗаписи.Заполнить(Стр.Данные); ////МенеджерЗаписи.Удалить(); КонецЕсли; КонецЦикла; |
|||
15
timeforlive
03.04.20
✎
12:17
|
Коротко: используйте метод НайтиПоСсылкам()
|
|||
16
Мисти
03.04.20
✎
14:21
|
спасибо! Проблема просто в том, что очень большой объем, надо как-то порционно менять!
и потом - движения-то есть! Мне нужно и в движениях заменить. |
|||
17
Сияющий в темноте
04.04.20
✎
23:37
|
(16) так движения в регистре отбираются по регистратору и сразу видно,есть там нужный элемент и есть ли там второй.
просто,если элемент встречается в неиндексируемых полях,то для каждого реквизита это полное сканирование таблицы. |
|||
18
Креатив
05.04.20
✎
20:39
|
(0)Поиск и удаление дублей в современных конфигурациях есть. Долго, но надёжно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |