Arta писал(а) 01. Мая 2008 :: 13:27:Миш, хочу вернуться к этому вопросу. Может сделать такой вариант, что если ИдПоле установлено, то возвращаются данные, если нет, то номер строки (по мне - так номер строки вообще не нужен)?
Можно сделать, но делать этого не нужно.
1. Возьмем ПоставщикДанныхТЗ.Что есть ИДПоле для ТЗ?
Ну, предположим, я могу тебе вернуть не номер строки, а значение некоего ИДПоля, это не проблема.
Но что мне делать, когда ты станешь передавать значение ИДПоля по записи для установки в ТП::ТекущаяСтрока?
Как позиционироваться? Перебором? На первую попавшуюся строку с совпадающим ключем?
Выигрыш - нету, наоборот.
2. Возьмем ПоставщикДанныхИТ.Все то же самое, только здесь можно таки сделать эффективное позиционирование.
Но для этого потребуется усложнить дизайн, потребовав наличие дополнительного индекса.
Причем индекса уникального, чтобы закрыть вопрос полностью.
Выигрыш - есть, заключается в несколько другом восстановлении ТП после потери строки в результате удаления строк по определенному алгоритму.
Только этот выигрыш и понять-то непросто, не то что заметить без подготовки.
Короче, Артем, при всем желании помочь, у меня есть мнение, что ты пытаешься изменить дизайн ТП не в интересах самого ТП, а в интересах своей конкретной задачи.
Надо искать другое решение, некий полиморфный механизм обработки данных текущей строки.
К примеру, использовать наследника от поставщика данных, который определит трансляцию значений текущей строки из формата ТП в формат необходимого ИДПоля (и обратно).