Задание значений некоторых полей в карточке редактирования по умолчанию

Здравствуйте. Заранее извиняюсь, если такая тема уже поднималась на форуме. При заполнении карточки редактирования добавления нового контрагента необходимо, чтобыбы в поле Страна уже стояло определенное значение (в моем случае Беларусь). Подскажите, как это сделать.

Нравится

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

Если у вас поле не предполагает наличие пустой строки, на OnPrepare можно поставить:
if (dlData.Dataset('Country') == null) { //Пустое поле, при создании, оно естественно пустое
dlData.Dataset('Country') = "Беларусь";
}

На OnPrepare окна редактирования контрагента? Если да, то не получается.

В сервисе scr_AccountEdit:

в функцию wnd_AccountEditOnPrepare добавьте

var Dataset = dlData.Dataset;
if (Dataset.State == dstInsert){
Dataset.Values('CountryID') = '{8DE1DE57-C698-4155-B191-38A36F4A7C8D}';
}

'{8DE1DE57-C698-4155-B191-38A36F4A7C8D}' - идентификатор страны

"Sergey Karpenko" написал:

В сервисе scr_AccountEdit:

в функцию wnd_AccountEditOnPrepare добавьте

var Dataset = dlData.Dataset;

if (Dataset.State == dstInsert){

Dataset.Values('CountryID') = '{8DE1DE57-C698-4155-B191-38A36F4A7C8D}';

}

'{8DE1DE57-C698-4155-B191-38A36F4A7C8D}' - идентификатор страны


Попробовал. Теперь, конечно, по умолчанию стоит действительно Беларусь, но при попытке выбрать другую страну из списка стран список стран вообще пуст, кроме Беларуси. При попытке добавить новую страну террасофт ведет себя неадекватно.

И так, давайте последовательно, конкретно по Вашему примеру (выбираем Беларусь)

1) заходим в sq_Country

2) определяем необходимый ID страны

3) переходим в сервис scr_AccountEdit:
в функцию wnd_AccountEditOnPrepare
вносим изменения

if (dlData.Dataset.State == dstInsert){ 
	if (IsEmptyValue(dlData.Dataset.Values('CountryID'))) {
		edtCountry.UnprepareDropDownList();
	}
	dlData.Dataset.Values('CountryID') = '{E66E4C45-6AC0-4FCD-BD15-14C4642B70E5}';
}

наслаждаемся результатом!
Приятной работы с Террасофт!

"Sergey Karpenko" написал:

И так, давайте последовательно, конкретно по Вашему примеру (выбираем Беларусь)

1) заходим в sq_Country

2) определяем необходимый ID страны

3) переходим в сервис scr_AccountEdit:

в функцию wnd_AccountEditOnPrepare

вносим изменения

if (dlData.Dataset.State == dstInsert){

        if (IsEmptyValue(dlData.Dataset.Values('CountryID'))) {

                edtCountry.UnprepareDropDownList();

        }

        dlData.Dataset.Values('CountryID') = '{E66E4C45-6AC0-4FCD-BD15-14C4642B70E5}';

}

наслаждаемся результатом!

Приятной работы с Террасофт!


А теперь после Вашего кода попробуйте войти в клиент и заполнить карточку контрагента, указав другую страну, чем та, что стоит по умолчанию. У меня почему-то список других стран после сего кода пропал.

Алексей!
при выборе страны, подставляется и территория, по ней идет фильтр.

Уберите территорию, все будет работать.

Все. Спасибо всем большое. Разобрался.

Поле территория в моем окне редактирования скрыто. Соответственно сбросить значение фильтра мне из окна редактирования нет возможности. Как можно этот фильтр обойти?

приведите функцию function ProcessAddressFieldChanged(DataField) в сервисе scr_AddressUtils

к такому виду :

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