Продажи.Задачи

Здраствуйте. Как при событии "ОнКлик" батона "Скопировать" (во вкладке Продажи.Задачи) реализовать изминение(подстановку "своих" ) данных (окно "Задача(Новая задача)" в различных поля?
Зарание благодарен.

Нравится

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

var Attributes = GetNewDictionary();
Attributes.Add('RecordID', GUID_NULL);
Attributes.Add('NotifyObject', NotifyObject);

var DefaultValues = GetNewDictionary();
DefaultValues.Add('AccountID', AccountID);
DefaultValues.Add('ContactID', PrimaryContactID);

ShowEditWindowEx(EditWindowUSI, Attributes, DefaultValues);

Но лучше это делать на событие новой кнопки, а не "копировать". А то слово утратит свой смысл.

Спасибо за оперативность!

"Но лучше это делать на событие новой кнопки, а не "копировать". А то слово утратит свой смысл."

Мне надо:
1. Скопировать задачу.
2. Изменить некоторые поля за своим усмотрением
3. Это всё происходит при одном событии. Нажатии батона "Копировать"(при выбраном в таблице задании) выше написаного местоположения.

Есть несколько путей решения такой задачи. Один из них состоит в том, чтобы не менять базовую функцию копирования, а написать "свое" копирование.
1) Получить текущую запись в гриде.
2) Скопировать нужные поля из текущей записи в гриде в DefaultValues
3) Использовать ShowEditWindowEx

а можно еще в событии dlDataOnDatasetAfterAppend(Dataset) проверять значение атрибута Dataset.Attributes('IsCopy'):

function dlDataOnDatasetAfterAppend(Dataset){
...
  if (Dataset.Attributes('IsCopy')) {
    // здесь пишем перезаполнение полей
    Dataset('SomeParameter') = 'NewValue';
  }
...
}

Соответственно работать это заполнение полей будет только если копируем запись, для создания новой записи все будет по-прежнему

ООО "Лайнсервис"
www.ls-crm.ru

Еще надо в скрипте раздела передать параметр в окно детали. И потом обеспечить дальнейшую передачу этого параметра из кона грида в окно редактирования (ну или в датасет этого окна). и нанализировать значение этого параметра, а не IsCopy.

"Underscore a.k.a. _" написал:Еще надо в скрипте раздела передать параметр в окно детали. И потом обеспечить дальнейшую передачу этого параметра из кона грида в окно редактирования (ну или в датасет этого окна)

если кнопка на штатной/рукотворной закладке, для которой Template назначен wnd_BaseGridArea - все передается по-умолчанию как надо. Если без темплейта - то да, надо передавать/назначать самому.

Dataset.Attributes('IsCopy') это вполне достаточный параметр из темплейта, указывающий на копию записи

ООО "Лайнсервис"
www.ls-crm.ru

Я просто понял, что нужно в одном конкретном разделе такую фичу реализовать.

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