Доброго времени суток, коллеги!
Возникла недавно задача, добавить новый справочник в раздел "Задачи", именуемый как "Причины неудач", по аналогии как это сделано со справочником "Результаты задач": Причины неудач должны быть зависимы от типов задач.
Первым делом создал новый справочник: "Причины неудач". Его сервисы создались мастером автоматически:
- Tasks\Dictionaries\TaskFail\ds_TaskFail
- Tasks\Dictionaries\TaskFail\sq_TaskFail
- Tasks\Dictionaries\TaskFail\tbl_TaskFail
Далее будьте внимательны! Необходимо очень тщательно проверить все события, функции и их вызовы в следующих вновь созданных сервисах:
- Tasks\Dictionaries\TaskFail\wnd_TaskFailDictionary
- Tasks\Dictionaries\TaskFail\wnd_TaskFailDictionaryScript
- Tasks\Dictionaries\TaskFail\wnd_TaskFailGridArea
- Tasks\Dictionaries\TaskFail\wnd_TaskFailGridAreaScript
Также пришлось несколько доработать базовые сервисы:
Tasks\Dictionaries\TypeStatus\wnd_TypeStatusGridAreaScript – изменения в
if (Assigned(Window.ParentContainer)) {
var ParentDictionaryWindow = Window.ParentContainer.ParentWindow;
if (ParentDictionaryWindow.Name == 'wnd_TaskFailDictionary') {
SetAttribute(Window, 'ParentItemFieldName', 'FailID');
} else
if (ParentDictionaryWindow.Name == 'wnd_TaskResultDictionary') {
SetAttribute(Window, 'ParentItemFieldName', 'ResultID');
}
}
SetAttribute(Window, 'EditWindowUSI', 'wnd_TypeStatusEdit');
}
добавлено поле FailID в сервисы:
- Tasks\Dictionaries\TypeStatus\tbl_TypeStatus
- Tasks\Dictionaries\TypeStatus\ds_TypeStatus
- Tasks\Dictionaries\TypeStatus\sq_TypeStatus
в sq_TypeStatus также добавлен Параметр и Фильтр сравнения FailID.
После правильного применения всех изменений, в настройках справочников указываем окно реестра справочника "Причины неудач" как: Tasks\Dictionaries\TaskFail\wnd_TaskFailDictionary
Проверяем работу: TaskFail_3.png
Сервисы и скриншоты также прилагаются.
Эх, на пару дней бы раньше, а то мы велосипед изобретали :)