Фишки контрагентов с городами

Фишка первая. Удаление города меняет страну.

  1. Логинимся в систему
  2. Переходим в раздел Контрагенты
  3. Нажимаем Добавить
  4. В карточке редактирования выбираем какой-нибудь город. Например,Симферополь, тогда заполняется страна (Украина) и территория (Восточная Европа).
  5. Нажимаем Отмену, т.е. выходим из карточки без сохранения.
  6. Открываем карточку другого контрагента из другой страны, например, Казахстана.
  7. Выделяем и удаляем содержимое поля Город.
  8. Наблюдаем, что страна и территория поменялась на Украину и Восточную Европу.

Фишка вторая. Пропавший город.

  1. Проводим предварительную подготовку. Нужен один контрагент с заполненными городом и страной и пустым регионом (Например Украина, Киев). И второй из другой страны с регионом (например Россия, Центральный ФО, Москва).
  2. Выходим из системы
  3. Заходим в систему
  4. Переходим в раздел Контрагенты.
  5. Открываем карточку первого (киевского) контрагента
  6. Открываем справочник поля Город (там, естественно, только Киев).
  7. Закрываем справочник и карточку отменой.
  8. Открываем карточку второго (московского) контрагента.
  9. Открываем справочник поля Город. А там ничего...

Результаты получены на MS SQL демо-версии CRM 3.3.2.170 и на нескольких более ранних.

Нравится

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

Да, действительно данная некорректная работа Системы воспроизводится. Данное сообщение передано в отдел разработки. О решении мы Вас известим.

Работы по данному вопросу в отделе Разработки запланированы на апрель.

Решение по первому вопросу:

1) Необходимо внести следующие изменения в функцию FilterDatasetParentFieldByField скрипта scr_DB:

function FilterDatasetParentFieldByField(Dataset, Field, ParentField,
FieldValue, ParentFieldValue) {
if (Field.LookupDataset.State != dstInactive) {
if (GetDatasetFieldValue(Field.LookupDataset,
ParentField.Name) == ParentFieldValue ) {
return
}
if ((GetDatasetFieldValue(Field.LookupDataset,
ParentField.Name) == null) || IsEmptyValue(FieldValue)) {
Dataset.DataFields.ItemsByName(ParentField.Name).Value = null;
return
}
ParentField.Value = GetDatasetFieldValue(Field.LookupDataset,
ParentField.Name)
}
}

2) Необходимо внести изменения в функцию UpdateTerritoryIDByCountryID скрипта scr_AddressUtils:

function UpdateTerritoryIDByCountryID(Dataset, TerritoryFieldName,
CountryFieldName) {
var CountryDataField = Dataset.DataFields(CountryFieldName);
var CountryID = CountryDataField.Value;
if (CountryID) {
var CountryDataset = CountryDataField.LookupDataset;
if (CountryDataset.IsActive &&
(CountryDataset.Values('ID') == CountryID)) {
var TerritoryID =
GetFieldValueFromDisabledField(CountryDataField.LookupDataset,
'TerritoryID');
} else {
var CountryDataset = GetSingleItemByCode('ds_Country',
'AddressUtils');
if (CountryDataset.IsActive) {
CountryDataset.Close();
}
ApplyDatasetFilter(CountryDataset, 'ID', CountryID, true);
CountryDataset.Open();
var TerritoryID = CountryDataset.Values('TerritoryID');
CountryDataset.Close();
}
Dataset.Values(TerritoryFieldName) = TerritoryID;
} else {
Dataset.Values(TerritoryFieldName) = null;
}
}

"Смоляков Станислав Игоревич" написал:1) Необходимо внести следующие изменения в функцию FilterDatasetParentFieldByField скрипта scr_DB:

"Смоляков Станислав Игоревич" написал:2) Необходимо внести изменения в функцию UpdateTerritoryIDByCountryID скрипта scr_AddressUtils:

С этим нет больших проблем. На одной конкретной конфигурации внести изменение не трудно, но вот делать это от раза к разу...
Существуют ли на данный момент бинарники содержащие указанные корректировки?

Для решения второй части вопроса необходимо изменить функцию edtCityOnPrepareSelectWindow скрипта scr_AccountEdit:

function edtCityOnPrepareSelectWindow(LookupDataControl) {
FilterLookupDataControlLookupDatasetByState(LookupDataControl,
edtState.DataField.Value);
if (IsEmptyValue(edtState.DataField.Value)) {
FilterLookupDataControlLookupDatasetByCountry(LookupDataControl,
edtCountry.DataField.Value);
} else {
FilterLookupDataControlLookupDatasetByCountry(LookupDataControl, null);
}
}

В ближайшее время выйдут бинарники версии 3.3.2.193. В неё будут включены данные изменения.

"Смоляков Станислав Игоревич" написал:В ближайшее время выйдут бинарники версии 3.3.2.193. В неё будут включены данные изменения.

Таки бинарники или сборка базы самой? :wink: поведение самих контролов подправите или все ж скрипты?

Александр, изменения будут внесены в следующие собранные релизы, т.к. внести изменения запросов в исполняемые файлы невозможно. Для обновления же более ранних сборок будут созданы сервисы, которые нужно будет загрузить в текущую конфигурацию.
Спасибо за замечание.

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