Добрый день.
Сделал функционал, который проверяет состояние задачи и при определенном состоянии выполнял определенное действие. Если Status ID забивать грубо руками, то все отрабатывает в порядке.
В справочниках есть список состояний задач. Там есть параметры "Начальное состояние" и "Конечное состояние". В состоянии задачи "Открыта" стоит галочка на "Начальное состояние", а в "Исполнена и Отменена" галочка стоит на конечном состоянии. В настройках справочника нашел, что это ds_TaskStatus, нужные мне поля IsStart и IsFinish типа "Булейские".
Вот если делать проверку таким образом
var Dataset = Services.GetNewItemByUSI('ds_TaskStatus');
Dataset.Open();
IsStart = Dataset.Values('IsStart');
IsFinish = Dataset.Values('IsFinish');
if (IsStart == true)
{
var Value = null;
BaseDBEdit.Dataset.Values('ActualStartDate') = Value;
ShowInformationDialog(BaseDBEdit.Dataset.Values('ActualStartDate'));
//BaseDBEdit.Dataset.DataFields.ItemsByName('ActualStartDate').IsReadOnly=true;
}
else if (BaseDBEdit.Dataset.Values('ActualStartDate') == null)
{
if (BaseDBEdit.Dataset.Values('StatusID')== '{9E289E42-9A0E-4A9C-A57F-049754310D95}' )
{
BaseDBEdit.Dataset.DataFields.ItemsByName('ActualStartDate').IsReadOnly=false;
var Today = new Date();
var Value = Today.getVarDate();
BaseDBEdit.Dataset.Values('ActualStartDate') = Value;
}
else if (BaseDBEdit.Dataset.Values('StatusID')==('{F598ECDB-4EEF-4FA8-9E69-A36B053501E5}' ||
'{9A74B908-9FA8-4CC3-8916-BC3D2798AC3A}'))
{
BaseDBEdit.Dataset.DataFields.ItemsByName('ActualStartDate').IsReadOnly=false;
var Today = new Date();
var Value = Today.getVarDate();
BaseDBEdit.Dataset.Values('ActualStartDate') = Value;
}
}
}
то проверка не работает. Т.е. оно не проверяет стоит ли галка в справочнике. Может я не так делаю? подскажите пожалуйста
вот эта проверка не срабатывает
Нравится
Вы открываете датасет со всема даными справочника.
Попробуйте несколько изменить код функции:
var Dataset = Services.GetNewItemByUSI('ds_TaskStatus'); Dataset.Close(); EnableDatasetFilters(Dataset, false); ApplyDatasetFilter(Dataset, 'ID', BaseDBEdit.Dataset.Values('StatusID'), true); Dataset.Open(); var IsStart = !!Dataset.Values('IsStart'); var IsFinish = !!Dataset.Values('IsFinish');