Изменение договора при докомпиляции

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
Max_Ural
партнер
Сообщения: 82
Зарегистрирован: Ср, 19/09/2007 08:35
Имя Фамилия: Максим Шагубаков
Откуда: Галактика-Урал
Контактная информация:

Изменение договора при докомпиляции

Сообщение Max_Ural »

Есть интерфейс DOGOVOR.
Мы докомпилировали кнопку Контрагент2
При этом запускается определенный функционал (какой именно - пока не важно)
После его работы нам необходимо изменить в договоре Контрагента2 (cOrg).

В докомпиляции я написал следующее:

Код: Выделить всё

            cmValue3:{
// 1 вариант               update current dogovor;
// 2 вариант               UpdateInsertDogovor;
                    RunInterface('L_Dogovor::i033Dogovor_Kontragent2', dogovor.nrec);
                    rereadrecord(#dogovor1);
                }
            }//cmValue3
Проблема в том, что если ввести новый договор, изменить у него Контрагент1, валюту и еще несколько полей - то после работы моей докомпиляции последние изменения теряются.
То же самое происходит, если открыть существующий договор, в нем поменять несколько полей и нажать Контрагент2.

Пробовал использовать описанную в интерфейсе функцию UpdateInsertDogovor.
Не помогло.
Подскажите пожалуйста, как сохранить состояние договора при нажатии на кнопку, чтобы я мог в докомпиляции изменять этот договор.
vadim
топ-софт
Сообщения: 197
Зарегистрирован: Чт, 06/09/2007 17:38
Имя Фамилия: Вадим Володько
Откуда: ТопСофт
Контактная информация:

Сообщение vadim »

во-первых, в приведенном фрагменте две закрывающиеся скобки.
возможно, где-то имеется несогласованность, возможно неудачно скопированный кусок примера.

во-вторых, результат работы update надо анализировать: в примере неизвестно, прошел update или нет, остается только догадываться

можно попробовать вообще примерно вот так

Код: Выделить всё

cmValue3:
  if (UpdateTable) 
    // выполнится событие cmCheckRecord и автоматически подходящее 
    // из cmUpdateRecord или cmInsertRecord
    {
      RunInterface('L_Dogovor::i033Dogovor_Kontragent2', dogovor.nrec);
      RereadRecord(#dogovor1);
      RescanPanel(#dogovor1);
    }
Ответить