Цитата:
Сообщение от
сНЕЖНЫЙ_бес
Как попроще решить такую задачу.
Пусть есть таблица Т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 есть Триггер-функции, которые позволяют отслеживать именения данных в таблицах.
Если в разных: строить репликацию. Вариантов много.
ЗЫ: хорошая на тестовая задачка для начала предметного разговора на обеседовании