В процессе работы с системой Terrasoft возникает необходимость всячески ускорить процесс введения данных в карточки. Например, при введении значения в поле "Город" было бы неплохо заполнять автоматически не только поле "Страна", но и "Регион". Естественно, что без внесения изменений в конфигурацию приложения не обойтись.
Для реализации подобной функциональности предлагаю следующий вариант решения.
В скрипте scr_Account нужно внести изменения в функцию function SelfOnDatasetDataChange(DataField). Готовый и протестированный код привожу ниже:

var CountryDataField = Self.DataFields.ItemsByName('CountryID');
                var CityDataField = Self.DataFields.ItemsByName('CityID');
                var StateDataField = Self.DataFields.ItemsByName('StateID');
        Self.DataFields.ParentDataset.DisableEvents();
                if (FieldName == 'CityID') {
                        if (!IsEmptyValue(DataField.Value)) {
                                var CityInfo = GetDatasetFieldValuesByID('ds_City', DataField.Value,
                                        'CountryID', 'StateID');
                                Self('StateID') = CityInfo('StateID');
                                Self('CountryID') = CityInfo('CountryID');
                        }

                }

Общая схема доработки такова: необходимо прописать условие по полю «Город», if (FieldName == 'CityID'). Если в этом поле есть значение – то заполнять поля «Страна» и «Регион».

После сохранения внесенных изменений, перезапуска рабочего приложения Terrasoft CRM Вы будете счастливым обладателем удобного функционала в системе!

Желаю удачи!

С уважением,
Мельникова Екатерина

Нравится

Поделиться

1 комментарий

"Мельникова Екатерина" написал:Self.DataFields.ParentDataset.DisableEvents();

Жжете :)
И в компанию к DisableEvents() кажется чего-то не хватает.

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