Показать сообщение отдельно
Старый 20.10.2006, 16:45   #3  
Vukmut_imported is offline
Vukmut_imported
Участник
 
9 / 10 (1) +
Регистрация: 11.01.2005
Цитата:
Сообщение от сНЕЖНЫЙ_бес Посмотреть сообщение
Как попроще решить такую задачу.
Пусть есть таблица Т1 с полями a1, a2, ... , an
заполненная данными.
Нужно сождать таблицу Т2 напимер с полями a1, a2 и a3
так, чтобы туда сразу внеслись сооветствующие данные из T1.
При этом, если эти данные менялись бы в T1, то они автоматически менялись бы и в T2.
Можно ли это реализовать без codunit ?
А если надо писать codeunit то как его получше написать?
Если таблицы в одной базе, то:

Перенос данных таблицы, если в ней уже есть данные, можно поручить либо отчету типа "Processing Only", либо написать Codeunit, который выполнит перенос данных.

А для синхронизации (односторонней, насколько я понял из описания задачи) необходимо модифицировать триггеры OnInsert, OnModify и OnDelete исходной таблицы T1 и выполнять соответствующие измения в таблице Т2.

А по поводу "получше написать":
1. Цикл по перебору записей таблицы Т1 с вставкой записей в Т2
2. Подумать каким образом решить конфликт, если в таблице Т1 поля а1, а2, и а3 не являются альтернативным ключом таблицы, то есть можно найти две записи Т1, где значения полей а1, а2 и а3 совпадают. Это также относится и к синхронизации.

Могу ошибаться, но с версии 3.70 в Codeunit1 есть Триггер-функции, которые позволяют отслеживать именения данных в таблицах.

Если в разных: строить репликацию. Вариантов много.

ЗЫ: хорошая на тестовая задачка для начала предметного разговора на обеседовании