Замена элементов в реквизитах и проводках документов, реквизитах справочников и движениях регистров. (SQL)

Опубликовал Дмитрий Дрейцер (MadDAD) в раздел Администрирование - Чистка базы

Иногда возникает необходимость заменить один элемент справочника на другой по всей конфигурации. При этом нежелательно перепроводить документы.
Эта разработка позволит проделать такую операцию на SQL-базах

Посик ссылок успешно нашел нам все ссылки на элемент справочника, и возникла необходимость этот элемент заменить на другой. Перепроводить документы нельзя.Типовая замена элемента не подошла т.к. нужно было заменить элемент не только в реквизитах но и в проводках а так же в движениях по регистрам. Так родилась эта обработка.

 

- Поиск ссылок на объекты осуществляется с помощью прямых запросов.

- Замена ссылок в рекивзитах документов и справочников происходит при помощи штатной замены значения реквизита.

- В проводках реквизиты так же меняются в штатном режиме.

- В регистрах замена значений происходит при помощи прямого запроса.

- После замены необходим пересчет итогов по регистрам.

 

 

Скачать файлы

Наименование Файл Версия Размер
Замена Элемента.ert
.ert 105,00Kb
20.08.14
255
.ert 105,00Kb 255 Скачать бесплатно

См. также

Комментарии
1. Ёпрст (Ёпрст) 1017 26.10.10 09:36 Сейчас в теме
Ага, зачет менять измерение регистра в движениях, при этом не заботясь об итогах регистра.
2. Ёпрст (Ёпрст) 1017 26.10.10 09:43 Сейчас в теме
СпрДоговоры = СоздатьОбъект("Справочник.Договора");
{ЗАМЕНА.ERT(504)}: Неудачная попытка создания объекта (Справочник.Договора)
3. Дмитрий Дрейцер (MadDAD) 116 26.10.10 09:44 Сейчас в теме
(1) Не учел. Спасибо за замечание. Значит потребуется пересчет итогов.
4. Ёпрст (Ёпрст) 1017 26.10.10 09:45 Сейчас в теме
Опер = СоздатьОбъект("Операция");
{ЗАМЕНА.ERT(516)}: Неудачная попытка создания объекта (Операция)
5. Дмитрий Дрейцер (MadDAD) 116 26.10.10 09:46 Сейчас в теме
(2) Не до конца от своей задачи отвязал. Прошу прощения. Обновил версию.
6. Ёпрст (Ёпрст) 1017 26.10.10 09:46 Сейчас в теме
+ Не учитываются периодические величины, установленные документом.
Их тоже нужно прямым запросом апдейтить.
7. Ёпрст (Ёпрст) 1017 26.10.10 09:47 Сейчас в теме
Да, пересчет нужен как регистров, так и бух итогов..
Либо толкай их сам прямым запросом.
8. Ёпрст (Ёпрст) 1017 26.10.10 09:48 Сейчас в теме
Да и, замену ссылок во всех табличках лучше тоже проапдейтить прямым запросом - всё быстрее.
9. Алексей Плутенко (Noy) 1054 26.10.10 14:07 Сейчас в теме
10. Алексей Плутенко (Noy) 1054 26.10.10 14:32 Сейчас в теме
(0) Добавь функцию глРазложить - а то попробовать обработку не могу :(
11. Дмитрий Дрейцер (MadDAD) 116 26.10.10 16:03 Сейчас в теме
12. Алексей Плутенко (Noy) 1054 26.10.10 16:31 Сейчас в теме
(11) В целом довольно таки шустро. Правильность не анализировал, но смутили два момента:
1. Обработка не проходит синтакс.контроль... (мелочь конечно, но все-таки...)
2. State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'DTSC3'.

Сорри, но на плюс не тянет :(
13. Дмитрий Дрейцер (MadDAD) 116 26.10.10 16:51 Сейчас в теме
(12) 1. Исправлена синтаксическая ошибка. Ночь у нас уже :)
2. Добавил определение максимального количества субконто.
14. misha226 (misha226) 20 27.10.10 15:50 Сейчас в теме
:cry:
Опер = СоздатьОбъект("Операция");
{ЗАМЕНА.ERT(516)}: Неудачная попытка создания объекта (Операция)
А так конечно + :)
15. Ламия 02.07.12 10:15 Сейчас в теме
тзРеквизитовПроверки = СоздатьОбъект("ИндексированнаяТаблица");
{C:\USERS\АДМИНИСТРАТОР\DESKTOP\ЗАМЕНА ЭЛЕМЕНТА.ERT(346)}: Неудачная попытка создания объекта (ИндексированнаяТаблица)
прям беда(((
16. Дмитрий Дрейцер (MadDAD) 116 03.07.12 02:09 Сейчас в теме
(15) Обработка использует 1С++, без этого замена и поиск ссылок работать не будет. Предполагается, что компонента запускается при старте базы.