gifts2017

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

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

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

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

 

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

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

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

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

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

 

 

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

Наименование Файл Версия Размер
Замена Элемента.ert 249
.ert 105,00Kb
20.08.14
249
.ert 105,00Kb Бесплатно

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Епрст (Ёпрст) 26.10.10 09:36
Ага, зачет менять измерение регистра в движениях, при этом не заботясь об итогах регистра.
2. Епрст (Ёпрст) 26.10.10 09:43
СпрДоговоры = СоздатьОбъект("Справочник.Договора");
{ЗАМЕНА.ERT(504)}: Неудачная попытка создания объекта (Справочник.Договора)
3. Дмитрий Дрейцер (MadDAD) 26.10.10 09:44
(1) Не учел. Спасибо за замечание. Значит потребуется пересчет итогов.
4. Епрст (Ёпрст) 26.10.10 09:45
Опер = СоздатьОбъект("Операция");
{ЗАМЕНА.ERT(516)}: Неудачная попытка создания объекта (Операция)
5. Дмитрий Дрейцер (MadDAD) 26.10.10 09:46
(2) Не до конца от своей задачи отвязал. Прошу прощения. Обновил версию.
6. Епрст (Ёпрст) 26.10.10 09:46
+ Не учитываются периодические величины, установленные документом.
Их тоже нужно прямым запросом апдейтить.
7. Епрст (Ёпрст) 26.10.10 09:47
Да, пересчет нужен как регистров, так и бух итогов..
Либо толкай их сам прямым запросом.
8. Епрст (Ёпрст) 26.10.10 09:48
Да и, замену ссылок во всех табличках лучше тоже проапдейтить прямым запросом - всё быстрее.
9. Алексей Плутенко (Noy) 26.10.10 14:07
10. Алексей Плутенко (Noy) 26.10.10 14:32
(0) Добавь функцию глРазложить - а то попробовать обработку не могу :(
11. Дмитрий Дрейцер (MadDAD) 26.10.10 16:03
12. Алексей Плутенко (Noy) 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) 26.10.10 16:51
(12) 1. Исправлена синтаксическая ошибка. Ночь у нас уже :)
2. Добавил определение максимального количества субконто.
14. misha226 (misha226) 27.10.10 15:50
:cry:
Опер = СоздатьОбъект("Операция");
{ЗАМЕНА.ERT(516)}: Неудачная попытка создания объекта (Операция)
А так конечно + :)
15. Ламия 02.07.12 10:15
тзРеквизитовПроверки = СоздатьОбъект("ИндексированнаяТаблица");
{C:\USERS\АДМИНИСТРАТОР\DESKTOP\ЗАМЕНА ЭЛЕМЕНТА.ERT(346)}: Неудачная попытка создания объекта (ИндексированнаяТаблица)
прям беда(((
16. Дмитрий Дрейцер (MadDAD) 03.07.12 02:09
(15) Обработка использует 1С++, без этого замена и поиск ссылок работать не будет. Предполагается, что компонента запускается при старте базы.