Обработка заменяет ссылки на элементы справочника в константах, справочниках, периодических значениях, документах, движениях регистров и проводках.
Минусы:
- Замена ссылок только элементов справочника (в 90% случаев только это и необходимо)
- Не охваченным остался участок «Зарплата» — там замен не происходит.
- Требует пересчета итогов средствами конфигуратора или обработкой Установка_ТА_2_3.ert (если только регистры, без бухучета) — автор Дмитрий Ощепков с доработками pvase.
- В некоторых случаях требуется «пересчет служебных данных» (табличка 1SCRDOC), опять-таки из Конфигуратора.
Главный плюс — нет необходимости в перепроводке документов (для этого и писалась).
Есть возможность «частичной замены» — то есть, не во всех объектах БД.
Обработка ориентирована на опытных пользователей и администраторов БД, знающих структуру ИБ.
Требует загруженной 1cpp.dll
Схожие обработки:
-
repval.ert (на диске ИТС)
UPD 26/10/10 Добавил возможность удаления и поиска ссылок. Исправлен баг: не заменялись значения в реквизитах оборотного регистра.
хорошо, но хочется заменять в регистрах и другие агрегатные типы (перечисления, например)
Не качал…тупо апдейтишь все таблички ?…
А периодику ?
А почему в 1SCRDOC не меняешь ?… Там же всё — и графы отбора и подчиненность..
Посмотрел..
Так и не понял — нахрена там нужен обычный запрос для справочника, чтоб поиметь потом тот-же самый список Элементов в нём ?
(1)
с периодикой все чин-чином, и с со значениями типа «Неопределенный» или «Справочник» тоже.
А с 1SCRDOC — там сложнее: если установлен отбор по справочнику, ссылка на который присутствует в табличной части, то можно напороться на документ, в котором есть ссылка и на «оригинал» и на «замену» (а там уникальный индекс). Поэтому апдейт этой таблички не делаю, только чищу (Delete).
(3) Да. Пользователю легче выбрать группу, чем подбирать элементы.
пост в (4) — ответ на (2)
(5) а…про группы ка-то не подумал..
Для дбф тоже сойдёт.. имена табличек только поменять, да еще блоб обработать придёться..
Хотя, идея восстановления ссылок путём ТиИ -не комильфо.. как и само ТиИ.
(7) Доработаю на досуге….
но Тии все равно надо — для пересчета итогов. Можно конечно и самому попробовать пересчитать, но думаю что будет сложновато….
(8) Тии для пересчета итогов вовсе не обязательно — монопольно и так всё пересчитывается в предприятии..
Разве что итоги по колонкам пересчитываются еще.
Работаю над аналогичной обработкой. Только еще не требующей ТИИ. Регистры победил, с бух. итогами не получилось пока…
(10) Респект. Если нужна помощь — можешь на меня рассчитывать (только мой уровень знания скл пониже будет).
От помощи в тестировании не откажусь. 🙂 Но до этого еще дойти надо…
(12) Договорились.
(10) выкладывай. что ужо есть..
изначально все было расчитано на конкретную конфу. Потом поменяю, сделаю с выбором вида справочника. Без прекрас. Не трогает таблицу ссылок документов, т.к. интересующий вид справочника в графах не участвует, то и не заморачивался пока. Обычные таблицы делает апдейтом. Для регистров сделан перенос итогов с одного на другой. Качественно не тестировалось, но вроде работает верно. Родители и владельцы справочников обрабатываются.
По бухгалтерии была мысль надергать из SQL Profiler-а всякую чушь, что 1С выполняет при проведении документа и симулировать перезапись проводок. Чтобы вручную не писать обновление всяких итогов по субконто и прочее. Т.е. у меня пусть и коряво, но собираются ссылки на документы в проводках которых есть ссылки на убираемый объект. И с этими документами дальше махинации идут с вызовом хранимых 1с-овских процедур. Финт ушами не вышел, короче, что-то я упускаю… Итоги кривятся. Этот кусок закоментирован. Остановился пока на том, что документы, которые делают бух проводки, проводятся обычным Док.Провести(). Благо у меня в базе самые тяжелые документы по безумным регистрам двигаются. 🙂
В свободное время битву продолжаю.
Напомню, качественно ничего не тестировалось, это текущая рабочая версия. Точно вычищает все ссылки. А вот с итогами и корректностью этих итогов большие вопросы пока.
(15) с итогами регистров — норм, а вот с бух -засада ? На сколько я понял ?…
+16 неплохо бы еще удалять записи с нулевыми итогами (если такие получаются при суммировании) заодно…
(16) ну если только как бонус. 🙂 1С за этим сама не следит тоже. Тока при пересчете убираются. 🙂
С бух. итогами я не пробовал аналогичные запросы писать по объединению итогов. Плюс там таблицы отбора по субконто, итоги по счетам. Короче, темный лес. 🙂 Надо заняться, не думаю, что там что-то из разряда невозможного. Еще проблемы со сложными проводками. Я их не то что в скульной базе не видел, я их вообще один раз только в работающей 1С встречал. 🙂
Вообще-то подмена ссылок и автопересчет итогов в регистрах и бух.итогах довольно опасная штука. В том плане, что в логике проведения документа могут быть всякие нюансы, от которых зависят движения. И прямая замена движений может вызвать нелогичные движения. Взять тот же партионный учет в ТиС. При замене одной номенклатуры на другую будет получаться так, что списываться будут не те партии, которые должны по fifo. В результате будем иметь некорректный расчет доходности.
(19) ну да.. + партия будет от другой номенклатуры.
(20) ну у партии-то владелец подменится. 🙂
(19), (20) Я как раз для замены товаров обработку и использую. Первым запуском все «неактуальные» товары превращаю в один «Товар удален из базы» — у него появляется куча партий (владелец то меняется), а вторым проходом меняю все партии на одну. Конечно перепроводка старых документов даст неправильную себестоимость, но я удаляю товар, который уже более 2-х лет не имеет движений — соответственно документы за те периоды не будут перепроводится никогда.
Также поступаю и с клиентами.
Кстати на тестовой базе все прошло хорошо и размер таблиц с итогами (особенно «отбор проводок по субконто») ощутимо уменьшился.
Добавил возможность простого штатного поиска ссылок, и возможность непосредственного удаления элементов прямо из обработки.
Черкнул пару-другую строк в обработку zamena_elementa.ert
Для замены значений не во всей базе, а в документах-регистрах за определенный период времени.
Если интересно могу выслать или опубликовать.