|
Обработка ПоискИЗаменаЗначений | ☑ | ||
---|---|---|---|---|
0
ezmemo
08.02.12
✎
14:44
|
Почему обработка ПоискИЗаменаЗначений
не ищет изменения и не исправляет регистры? Исправлять, так все! Например мне нужно во всей базе заменить одного Контрагента на другого. И хотелось бы после замены не перепроводить измененные документы. |
|||
1
МурЬка
08.02.12
✎
14:52
|
Почему не исправляет? Она вроде в движениях правит.
|
|||
2
МурЬка
08.02.12
✎
14:53
|
Абсолютно случайно она у меня даже и открыта...
Для Каждого Движение ИЗ СтрокаТаблицы.Метаданные.Движения Цикл ЭтоДвижениеРегистраБухгалтерии = Метаданные.РегистрыБухгалтерии.Содержит(Движение); ЕстьКорреспонденция = ЭтоДвижениеРегистраБухгалтерии и Параметры[Движение.Имя + "Корреспонденция"]; НаборЗаписей = Параметры.Объект.Движения[Движение.Имя]; НаборЗаписей.Прочитать(); НадоЗаписывать = Ложь; ТаблицаНабора = НаборЗаписей.Выгрузить(); Для Каждого Измерение ИЗ Движение.Измерения Цикл Если Измерение.Тип.СодержитТип(ТипЗнч(Ссылка)) Тогда СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Измерение.Имя); Пока СтрокаТабЧасти <> Неопределено Цикл СтрокаТабЧасти[Измерение.Имя] = ПравильныйЭлемент; НадоЗаписывать = Истина; СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Измерение.Имя); КонецЦикла; КонецЕсли; КонецЦикла; ЕСли Метаданные.РегистрыСведений.Содержит(Движение) Тогда Для Каждого Ресурс ИЗ Движение.Ресурсы Цикл Если Ресурс.Тип.СодержитТип(ТипЗнч(Ссылка)) Тогда СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Ресурс.Имя); Пока СтрокаТабЧасти <> Неопределено Цикл СтрокаТабЧасти[Ресурс.Имя] = ПравильныйЭлемент; НадоЗаписывать = Истина; СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Ресурс.Имя); КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; Для Каждого Реквизит ИЗ Движение.Реквизиты Цикл Если Реквизит.Тип.СодержитТип(ТипЗнч(Ссылка)) Тогда СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Реквизит.Имя); Пока СтрокаТабЧасти <> Неопределено Цикл СтрокаТабЧасти[Реквизит.Имя] = ПравильныйЭлемент; НадоЗаписывать = Истина; СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, Реквизит.Имя); КонецЦикла; КонецЕсли; КонецЦикла; Если Метаданные.РегистрыБухгалтерии.Содержит(Движение) Тогда Для ИндексСубконто = 1 по Параметры[Движение.Имя + "Субконто"] Цикл Если ЕстьКорреспонденция Тогда СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "СубконтоДт"+ИндексСубконто); Пока СтрокаТабЧасти <> Неопределено Цикл СтрокаТабЧасти["СубконтоДт"+ИндексСубконто] = ПравильныйЭлемент; НадоЗаписывать = Истина; СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "СубконтоДт"+ИндексСубконто); КонецЦикла; СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "СубконтоКт"+ИндексСубконто); Пока СтрокаТабЧасти <> Неопределено Цикл СтрокаТабЧасти["СубконтоКт"+ИндексСубконто] = ПравильныйЭлемент; НадоЗаписывать = Истина; СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "СубконтоКт"+ИндексСубконто); КонецЦикла; Иначе СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "Субконто"+ИндексСубконто); Пока СтрокаТабЧасти <> Неопределено Цикл СтрокаТабЧасти["Субконто"+ИндексСубконто] = ПравильныйЭлемент; НадоЗаписывать = Истина; СтрокаТабЧасти = ТаблицаНабора.Найти(Ссылка, "Субконто"+ИндексСубконто); КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; Если НадоЗаписывать Тогда НаборЗаписей.Загрузить(ТаблицаНабора); Если ОтключатьКонтрольЗаписи Тогда НаборЗаписей.ОбменДанными.Загрузка = Истина; КонецЕсли; Попытка НаборЗаписей.Записать(); Исключение БылиИсключения = Истина; Если ВыполнятьВТранзакции Тогда Перейти ~ОТКАТ; КонецЕсли; КонецПопытки; КонецЕсли; КонецЦикла; |
|||
3
ezmemo
08.02.12
✎
15:37
|
Наверно у меня старая версия.
Сейчас попробую. Результаты сообщу. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |