Как передать окну ссылку на окно редактирования

Здраствуйте! У меня такая задача: В окне контрагентов есть кнопка при нажатии на которую выводиться окно с гридом. Как мне назначить этому окну окно редактирования?? Вот код вызова окна :

function amiShowAccountsOT7ReportOnExecute(ActionMenuItem) {
var resultWindow = Services.GetNewItemByUSI('wnd_ReportAccountsOT7');

resultWindow.Prepare();
resultWindow.Show();
}

Нравится

26 комментариев

Если для окна 'wnd_ReportAccountsOT7' родительским окном является wnd_BaseGridArea, Вам достаточно перед Prepare установить атрибут EditWindowUSI : resultWindow.Attributes('EditWindowUSI') = 'EditWindow'.

rusultWindow.Attributes('EditWindowUSI') = '[Необходимое значение]'
(перед Prepare)

Ошибку выдает
[09.08.17 12.22.58.114] (E) Ошибка выполнения метода 'amiShowAccountsOT7ReportOnExecute'. OLE error 80020101 «Call Stack»

А если в скрипте этой формы прописать что нибудь типа форму редактирования?

У wnd_ReportAccountsOT7 какое окно родительское?

wnd_BaseGridArea.

А на какой именно строчке выдает ошибку?

rusultWindow.Attributes('EditWindowUSI') = 'wnd_AccountEdit'

А окно то создалось? И если создалось, то является ли то что получилось окном. Гляньте значение rusultWindow и если не пустое, то гляньте у него ServiceTypeCode.

Может точка с запятой ? может ошибка resultWindow rusultWindow
? я ошибся в первом коментарии.

Да действительно я сам тоже не посмотрел. Только теперь вылазиет окно отладки и все никакого эффекта. Непонятно почему? Может нужно еще что передать этому окну? Ведь там надо как то сделать чтобы оно по конкретной записи открывалось?

Это все умеет wnd_BaseGridArea. Убедитесь, чтобы у Вас запускался Prepare для базового окна. (Дайте листинг События OnPrepare для окна wnd_ReportAccountsOT7)

function wnd_ReportAccountsOT7OnPrepare(Window) {
scr_BaseGridArea.wnd_BaseGridAreaOnPrepare(Window);
}

Может выложить файлы сервисов?

Здравствуйте.

В этой ситуации, действительно, лучше посмотреть на сервисы.

Terrasoft Support Team.

Добрый день! Вот сервисы.

Попробуйте сделать так:

function amiShowAccountsOT7ReportOnExecute(ActionMenuItem) {
   var Attributes = GetNewDictionary();
   Attributes('EditWindowUSI') = 'wnd_AccountEdit';
   Attributes('NotifyObject') = Self;
   ShowEditWindowEx('wnd_ReportAccountsOT7', Attributes);
}

Нет так не работает) Выдает ошибку в скрипте scr_DB вот в этой функции

function GetDatasetFieldValue(Dataset, FieldName) {
if (!IsDatasetEmpty(Dataset)) {
var Field = Dataset.Datafields(FieldName);
return Field.Value;
} else {
return null;
}
}
на той строке которая выделена жирным)

Проверьте наличие в датасете поля, название которого передается в FieldName.

Стоп, мы назначаем гриду окно редактирования, или передаем в грид, показаный из карточки контрагента ссылку на эту карточку?

"Underscore a.k.a. _" написал:Стоп, мы назначаем гриду окно редактирования, или передаем в грид, показаный из карточки контрагента ссылку на эту карточку?

Первое)

"Кривонос Максим" написал: Attributes('EditWindowUSI&#039Eye-wink = 'wnd_AccountEdit';
Attributes('NotifyObject&#039Eye-wink = Self;

О, полезли баги из-за смайлов :)

Щас сервисы посмотрим...

У Вас там есть вьюха, я так понимаю. Дайте скрипт ее создания.

Максим, добрый день.

Возник вопрос, в какой момент должно возникать окно редактирования для Вашего грида. В стандартном функционале оно возникает при нажатии кнопки "Добавить", но в Вашем окне все кнопки грида скрыты вместе с содержащим их фреймом. Как только Вы установите хотя бы фрейму и кнопке "Добавить" свойства IsVisible = true, Вы сразу же сможете вызвать окно редактирования по кнопке "Добавить". По крайней мере, у меня получилось на предоставленных Вами сервисах.

По кнопке добавить вызываеться не редактирование а добавление новой записи) А при нажатии на кнопку изменить выдаеться окно отладки) притом там нет ни скрипта где произошла ошибка ни лог не выдаеться) И непонятно из за чего тут ошибка??????????

К сожалению, предоставленных Вами сервисов отчёта недостаточно для воспроизведения проблемы. Думаю, нужны ещё как минимум сервисы tbl_Account, tbl_Contract, tbl_Invoice и tbl_Cashflow. В общем, все те, которые используются в запросе отчёта.

Показать все комментарии