Добрый день!
Есть окно добавление прайс-листов, добавляю на него кнопку (хочу чтобы данные сохранялись по нажатию на эту кнопку, а не на кнопку "ок")
var wnd = Services.GetNewItemByUSI('wnd_PriceListsEdit');
var dl = wnd.ComponentsByName('dlData');
SaveChanges(dl, wnd); // не работает, т.е. не сохраняет прайс-лист
//----
SaveChanges(dlData, wnd); // k dlData привязан dataset ds_PriceLists, но этот вариант работает (т.е.
//сохраняет как и надо
На самом деле мне нужно сохранять эту форму в другом месте (поэтому я и получаю доступ к dlData через wnd.ComponentsByName('dlData')
т.к. в другом скрипте dlData - это не ds_PriceLists
Нравится
Александр, кнопка в том же окне которое нужно сохранить?
Если да, тогда всё просто:
dlData.Dataset.Post();
Если в другом окне - метод получения нового экземпляра окна и датасета не подойдет.
Нужно передавать в это окно ссылку на уже существующий обьект этого окна.
Т.е. в том окне, которое нужно сохранить:
Connector.Attributes('DatasetToSave') = dlData.Dataset;
В другом окне:
var DS = Connector.Attributes('DatasetToSave'); DS.Post();
Александр, на всякий случай, если вы не поняли ошибку, то строкой
var wnd = Services.GetNewItemByUSI('wnd_PriceListsEdit');
Вы получаете, не текущее окно, ни другое окно, а создаете принципиально новый экземпляр окна.
А если в дальнейшем вам понадобится получить объект текущего окна, то используйте
var wnd = Self;
Немного не понимаю "На самом деле мне нужно сохранять эту форму в другом месте (поэтому я и получаю доступ к dlData через wnd.ComponentsByName('dlData')"
Если просто сохранять, то лучше поставьте событие AfterPost на датасет, создать объект нужного датасета, найти нужную запись, использовав фильтры, измените и сохраните ее.
Если же необходимо обмениваться данными между открытыми окнами, то думаю надо взять совет Дмитрия и еще совместить с OnNotify.
Дмитрий, огромное спасибо!
Второй вариант - то что нужно.
"Сазанов Александр Владимирович" написал:Вы получаете, не текущее окно, ни другое окно
Спасибо! В этом то и была проблема. Мне нужно было получить объект одного окна, в скрипте другого окна. ( Self указывал бы на другое окно)