Показать сообщение отдельно
Старый 14.02.2013, 13:15   #15  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Для этого совсем не нужно вручную вызывать метод insert табличного курсора, т.к. он не делает вставку или тем более обновление текущей (редактируемой) записи, а делает как раз вставку новой (ещё одной) записи - отсюда у вас и задвоение.

Если вы хотите сохранить изменения в текущей записи, то вам нужно вызвать метод write() датасурса.

И курсор после этого не нужно никуда двигать он останется на этой же обновлённой/сохранённой записи.
Где Вы были раньше Лан, я понял Вас полностью, переделаю.
Видимо после вызова метода last(), т.к. я все-таки написал что-то в датасорс, аксапта пишет эту запись в таблицу, чтоб не потерять, а перед этим я инсертом вставляю еще одну. Вызов метода clear() удаляет, забывает просто напросто новую запись из ДС, что и решает мою проблему. Пролучается, что я создаю свою собственную запись, им удаляю ту, что создает сама аксапта, как только я присваиваю что-нибудь в какое-либо поле ДС, я так понял?

Кстати, в пользу того, что акспата записывает запись, чтобы не забыть говорит и то, что при закрытии формы дублирующая запись также записывается (если метод last не вызывать)

Тогда получается, что когда мы обращаемся к датасорсу в формате <название>_ds - это мы обращаемся ко всему хранилищу, а когда просто к <название> - это к текущей строке, на которую установлен курсор

Последний раз редактировалось Vasiliusis; 14.02.2013 в 13:49.