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