21.11.2007, 02:45
общий
это ответ
Здравствуйте, VOFFka_!
Для версии 8.0, как правильно заметила Яна, две табличные части не составляют проблемы. Поэтому пишу прореализацию в версии 7.7, где не все так тривиально.
На форме добавляете 2 реквизита диалога "Таблица значений", проставляете им идентификаторы ТЗ1 и ТЗ2 (к примеру). Далее в процедуре ПриОткрытии() заполняете ТЗ1 и указываете какие колонки будут у ТЗ2. На форме помещаете реквизит диалога "Текст", ставите ему признак невидимости, в свойствах в качестве формулы прописываете функцию СформироватьТЗ2() -- в результате она будет выполняться каждый раз когда на форме произойдут какие-то изменения, например курсор переместится с одной строки ТЗ1 на другую. В модуле прописываете эту функцию, возвращать она всегда будет пустую строку "", гораздо важнее то что она будет заполнять данными ТЗ2 в зависимости от того, на какой строке указатель в ТЗ1 (метод ТекущаяСтрока()). Предусмотрите, чтобы ТЗ2 перезаполнялась только если строка ТЗ1 действительно была изменена, для этого запоминайте на какой строке ТЗ1 курсор был в прошлый раз.
Для добавления строк в ТЗ2 добавьте на форме кнопку. Тогда и об удалении, кстати, стоило бы подумать, и об редактировании.
И ни в коем случае в модуле не должно быть строчек типа <i>Перем ТЗ1, ТЗ2;</i> или <i>ТЗ1=СоздатьОбъект("ТаблицаЗначений"); ТЗ2=СоздатьОбъект("ТаблицаЗначений");</i>, иначе потом будете голову ломать почему на экране ничего не меняется :)
Как видите, программный код будет не очень маленький, поэтому писать сам я его не стал (хотя года три назад реализовывал такую задачу, но исходники не сохранились). Однако задача вполне решаема, думаю Вам понравится результат :)