
Full Member

Покинул форум
Сообщений всего: 166
Дата рег-ции: Окт. 2009
Откуда: Moscow, Russia
Репутация: 0

|
Конкретные задачи -- объединение контрагентов, номенклатуры, счетов.
Объединение можно свести к замене ссылок с последующим удалением из словаря записи, на которую нет ссылок.
Я бы использовал словарь данных, как, например, в статье Проблема удаления дублей в табли цах Oracle
Нюанс. Объединение позиций в словарях Паруса 8, скорее, подразумевает работу с разделами, чем с отдельными таблицами. Например, в плане счетов у каждого счёта может быть спецификация -- аналитические счета. По идее, если мы тупо выполним описанную в статье процедуру, то аналитические счета от удаляемого счёта перепривяжутся к тому, который остаётся, однако при этом может быть нарушено ограничение целостности C_DICANLS_ANLNUMB_UK -- в случае, если у объединяемых счетов были одинаковые аналитические счета. Во избежание, можно перед переносом аналитического счёта проверить, нарушается ли ограничение уникальности, и, если нарушается, выполнить объединение (замену) для аналитического счёта.
У счетов спецификация одна (ну, две), и процедуру объединения (замены) можно описать вручную. У контрагентов спецификаций больше. И там, наверное, тоже прописаны ограничения уникальности. Возможно ли предотвращать их нарушение автоматически?
Думаю ещё том, чтобы оформить пользовательскую процедуру как пользовательский отчёт (наверное, Excel) -- в этом случае я смогу выводить более подробный отчёт о её работе, чем с помощью простого выходного параметра с визуализацией после выполнения. Можно предусмотреть формирование просто отчёта -- покажет, какие ссылки есть, однако, ничего изменять не будет. |