Замена элемента справочника или документа на другой во всей базе (др. справочниках, документах, журналах расчетов, периодических реквизитах, бухгалтерских проводках и пр.)
Перепроведение документов НЕ ТРЕБУЕТСЯ!!!
Бесплатные
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Узнавайте о новых бесплатных решениях в нашей телеграм-группе
Инфостарт БЕСПЛАТНО
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
0% комиссии — оплата напрямую исполнителю;
Исполнители любого масштаба — от отдельных специалистов до команд под проект;
Прямой обмен контактами между заказчиком и исполнителем;
Безопасная сделка — при необходимости;
Рейтинги, кейсы и прозрачная система откликов.
Для работы необходима 1срр.dll + драйвер VFPOLEDB.
Бывает возникает необходимость, например, удалить какой-нибудь элемент справочника. Чтобы сделать это корректно, необходимо предварительно очистить все ссылки на него.
Или просто возникает необходимость заменить во всех документах один элемент на другой.
Для этого и написана данная обработка.
Установка:
1. 1срр.dll скопируйте в каталог BIN (находится в Program Files\1Cv77).
2. vfpoledb.exe запустите на выполнение, ОБЯЗАТЕЛЬНО выберите тип установки Typical, а не Minimal, как стоит по умолчанию
P.S. На данный момент не реализован только поиск ссылок в регистрах.
Приводится порядок действий для создания новой информационной базы на основе имеющейся файл-серверной "Торговля и Склад" ред.9.2, для учёта с нуля. В новую базу выполняется перенос справочников и остатков номенклатуры. Журналы документов, данные регистров, долги контрагентов, партии очищаются.
Архив различных обработок 1С 7.7 с открытым исходным кодом для работы с данными при свертке, выгрузке, исправлении, модификации информационной базы. Можно использовать любую обработку в качестве заготовки для добавления собственных функций.
Эта обработка позволяет удалить созданные системой элементы справочников. Например, когда элементы создаются при тестировании и исправлении базы с наименованиями, включающими строку "ФС". Обработка тестировалась на базе конфигурации Бухгалтерский учет для Казахстана, редакции 7.70.257.
Простая и удобная обработка предназначена для поиска и исправления задублированных (повторяющихся) номенклатурных штрихкодов справочника Единицы. Также она даёт возможность посмотреть номенклатурные остатки. Полезна в случаях, когда номенклатура сопоставляется по штрихкоду с другими внешними источниками, а именно с модулем "Обмент ГИСМТ".
Когда удаляются документы и элементы справочников в 1С 7.7 через удаление помеченных на удаление объектов,
запись из dbf файла не удаляется, она помечается как удаленная, но физически остается в файле.
Если эти помеченные на удаление записи удалить физически, то размер файлов значительно уменьшится.
Немножко подправил обработку:
1. теперь можно заменять ссылки не только на элемент справочника, но и на документ.
2. Теперь можно задать те объекты метаданных, в которых нужно искать и заметь ссылки.
Прошу обратить внимание на то, что нужно понимать: если вы заменяете какой-то элемент в документах, но сбросили "галочку" для изменения в Журнале расчетов, то получится так, что данные м/у документами и ЖР совпадать не будут.
Написал, что поиск нереализован только в Регистрах, потом спохватился и оказалось, что и в бух.итогах не ищет.
Теперь исправил.
Для кого актуально (а актуально всем, кто будет пользоваться данной обработкой в конфигурациях с компонентой "Бух.учет"), просьба перекочать себе УдалениеЭлемента.ert
Странно как-то: народ смотрит, качает, а не точто рейтинг повысить, а даже коментарий оставить "понравилось/не понравилось", "нужно/не нужно" не могут почему то (((
09.10.2007 обновил УдалениеЭлемента.ert.
Исправлен баг с подчинёнными справочниками и константами.
На вкладке Настройка теперь появились две доплнительные "галки". Стоит, например, "галка" переносить периодические реквизиты, тогда все реквизиты удаляемого элемента перенесутся на тот, которым замещается; если галка не стоит, то все переодические значения удаляемого элемента тоже будут удалены.
Будьте добры: пробуйте работу этой обработки сначала на копии.
у меня вопрос по поводу замены одного объекта (справочник, документ) на другой
- не проще ли заменить просто Id (для справочника) или IdDoc (для документа) , чем искать везде где он встечается и менять ссылку на другую
поясню ,
- был справочник "Контрагент1" нужно его поменять во всех документах, регистрах на "Контрагент2" (база огромная десятки, сотни тысяч документов за год)
- для "Контрагент1" Id = Z1 , для "Контрагент2" Id=Z5
проще в одном справочнике "Контрагенты" поменять Z1<->Z2 и во всех документах и регистрах в которых встречается "Контрагент1" будет "Контрагент2"
"Подчиненные справочники переносятся, но ссылки в других объектах не меняются."
Не совсем понял о чём речь.
А на счет (10) всё таки решил не переделовать свою обработку. Т.к. во первых, при придложенном варианте невозможно будет заменить объект в отдельных видах объектов, во-вторых, всё таки как то я засомневался (честно скажу - на практике не пробовал), но...Например, нужно заменить один док. на другой: что и где нужно заменить по способу (10)?
(10) Что-то не очень улавливается мысль...
Есть элемент 1 с id 1 и элемент 2 с id 2
Есть документы со ссылками на эти элементы
Док 1 ссылка 1
Док 2 ссылка 1
Док 3 ссылка 2
Требуется заменить ссылки первого элемента на второй
Что предлагаешь? Поставить первому элементу id 2 и получить неуникальный id?
Это же не восстановление удаленных элементов как в твоем случае
Я может не правильно понял, но если поменять у корня ID "контрагент1" то нормальные (ссылки полей на бъект) объекты потеряются.
Если создавать нового "контрагента2", а потом привязать к нему все документы вместо старого "контрагент1" получаеться все в порядке.
Если на "контрагента2" уже повешены ссылки то переименовка ID на ID "контрагента1" повлечет пустые ссылки "контрагента2"
>> Я может не правильно понял, но если поменять у корня ID "контрагент1" то нормальные (ссылки полей на бъект) объекты потеряются.
ничего не понял , что где должно потеряться если поменять местами id для
(Контрагент1 <-> Контрагент2)
реально делал на большой базе
- случайно удалили несколько контрагентов
- из-за того что база очень большая невозможно было подставлять нового контрагента в документы и перепроводить по времени
- исправлением Id проблема решилась в течении нескольких минут
(т.е. все ссылочки в документах , регистрах вернулись на место)
Подчиненные справочники переносятся, но ссылки в других объектах не меняются.
Менял контрагентов в два этапа - подчиненный справочник основания
после замены контрагента. Тогда все корректно.
Infossa, как поменял основания в объектах.
"Ищем ссылки ссылки" укоротил.
Елы-палы, наткнулся на эту обработку когда свою уже написал практически...
Ну что сказать...
Автор забыл о существовании общих реквизитов документов, регистрах, о том, что справочники бывают многоуровневые и т.п. :)
И зачем пометки на второй закладке если это в запросах не соблюдается?
Плюсану однако
А с SQL базой работает?
На dbf gопробовал удалить не нужные классификаторы единиц,
написал что "Заменены все возможные ссылки", а ничего при этом не сделал ???
Повторный запус ... пишет тоже самое
РеквТип=Рекв.Тип;
{..\УДАЛЕНИЕЭЛЕМЕНТА.ERT(377)}: Поле агрегатного объекта не обнаружено (Тип)
Это при попытке в ЗиК е 7.7 слить двух сотрудников. Ругается на графы отбора журнала расчетов
Ндя... и с SQL-базами видимо не работает
тз=РС.ВыполнитьИнструкцию(текст);
{..\УДАЛЕНИЕЭЛЕМЕНТА.ERT(77)}: FAILED! ICommandText::Execute(): File '1sjourn.dbf' does not exist.
ищет именно dbf-ки похоже
А пишет что заменил, но не заменяет это когда стоит галочка "Эмуляция". Если её убрать то работает
В dbf-ке да еще без поиска ссылок в регистрах без всяких заморочек с 1срр.dll можно было сделать, и без перепроведения (достаточно заменить в операциях документов)