Hare.ru @ Коллективный разум / Hare.ru @ Дикое место |
Архив hare.ru | ||||
Мысли, конвертированные в текст | |||||
Собственные руки TMИзменение документа без перепроведения. Когда это нужно и как это сделать?Фёдор Езеев (февраль 2003) Иногда возникает необходимость внести незначительные изменения в уже проведенный документ. "Незначительные" в данном контексте означает такие изменения, которые не влияют на движения регистров (и вообще на любые процедуры, выполняемые в процессе проведения документа). Самым простым примером может служить изменение поля "Комментарий".Однако движку V7 абсолютно безразлично, влияют ли внесённые в документ изменения на состояние регистров, или нет. Если документ был изменен его надо перепровести. Ну а где проведение задним числом, там и восстановление границы последовательности, и прочие маленькие радости администраторов баз данных V7. В статье описан технический прием, позволяющий обойти обозначенную проблему.
Для решения, очевидно, нужно использовать методы
Так же нужно не забыть проверить состояние документа перед изменением нашего поля. Если документ уже был изменен очевидно, записывать его без перепроведения было бы некорректно. Это тоже просто:
К сожалению, "просто" не всегда означает "правильно". Такая схема не работает, поскольку при изменении любого реквизита движок V7 сразу же ставит флажок модифицированности. То есть в нашей процедуре метод Модифицированность() вернет единицу в любом случае. Но и этого можно избежать, правда, принеся в жертву наглядность. Поле для редактирования реквизита заменяем на текстовое поле, которое изображает текущее состояние реквизита (в поле "формула" нужно занести идентификатор реквизита, в нашем случае "Комментарий"). И рядом добавляем кнопку, на которую вешаем нашу процедуру. Но нам еще нужно будет организовать изменение реквизита. Окончательный результат:
Таким же образом можно разделаться с реквизитами любого типа: процедура будет такой же, только блок выбора значения для реквизита будет немного различаться (а если подойти творчески, то можно написать универсальную процедуру, которая сама определяет тип и выдаёт нужный диалог). Кроме достоинства (оно действительно работает), у описанной техники есть и недостатки. Их два:
|
Партнеры: Также может быть интересно: Канал Россия 1 на http://spbtvonline.ru/ |
||||
Сайт поддерживается за счет партнеров: | |||||
:::... Сайт содержит архив двух версий hare.ru | Карта сайта |