Topic: Как создать новый документ на основе предыдущего?

В БД есть две таблицы - "Проекты" и "Спецификации проектов".
Для создания документа "Проект" на форме "Проект" вводятся реквизиты проекта (дата, номер, описание).
На этой же форме есть табличная часть, где указываются товары данного проекта.
Список всех проектов отображается на форме "Журнал проектов".
Надо иметь возможность создания нового проекта в который автоматом попадет все из проекта-основания.
Т.е. ставим на нужный проект курсор (активируем строку журнала проектов), нажимаем "копировать" - открывается форма добавления нового проекта, в которой уже заполнены все реквизиты и табличная часть товаров на основе проекта-основания.
Подскажите, есть ли какие-либо способы упростить написание кода для такой возможности или надо просто в лоб прописывать перенос значения компонентов из проекта-основания, и искать по таблицам в БД связи с проектом-основанием, чтобы заполнить табличную часть проекта?
Может есть какие-либо более элегантные способы для этого?

Re: Как создать новый документ на основе предыдущего?

Добрый день! У меня не ответ на Ваш вопрос, просто вспомнил, что в 1С-ке, в 7-х и 8-х версиях есть контекстная команда "Копировать", которая создаёт новый документ по образцу  выделенного, присваивая новый номер.  Может посмотреть, как это реализовано там?

Re: Как создать новый документ на основе предыдущего?

Посмотрите здесь
http://myvisualdatabase.com/forum/viewtopic.php?id=1072
а так, если полазить по форуму есть и примеры реализаций.

надо идти вперёд....

Re: Как создать новый документ на основе предыдущего?

Совет по 1С хорош - там же совершенно другое программирование.
По поводу примера, который есть на сайте - он простой, т.к. в нем создается копия только одной записи в одной таблице.
А у меня на форме штук тридцать взаимозависимых комбобоксов, три грида  и связи с кучей таблиц БД.

Re: Как создать новый документ на основе предыдущего?

К сожалению тут простого решения нет. Это можно сделать довольно сложным SQL запросом, либо множеством простых SQL запросами и скриптом.


Затем открывать форму редактирования для уже созданной записи (функция ShowRecord).

Dmitry.