Постановка задачи
Необходимо разработать сценарий для открытия справочника Поручения в виде списка с фильтром по контролеру – текущему пользователю. Контролер поручения хранится в реквизите Контролер (Работник). Если у текущего пользователя нет поручений или нет работников, связанных с текущим пользователем, то выдавать предупреждение.
Текст сценария
// Нет работников, связанных с текущим пользователем.
NO_EMPLOYEES_FOR_USER = LoadString(
'DIR970F1E36_1900_4AE5_B03B_C4924E523FC9';'RM')
// Контролируемые поручения.
FORM_TITLE = LoadString('DIRD6C89183_E648_4759_994D_7566616B3876'; 'RM')
// Нет контролируемых поручений.
NO_CONTROL_ASSIGNMENTS = LoadString(
'DIR5EB1F21E_7CF0_4899_B811_1D3F621C9297'; 'RM')
// Получить текущего пользователя.
CurrentUserName = Application.Connection.UserName
CurrentUserID = ServiceFactory.GetUserByName(CurrentUserName).ID
// Получить работников для текущего пользователя.
EmployeesList = GetEmployeesByUserID(CurrentUserID; FALSE; FALSE)
if EmployeesList.Count = 0
ShowMessage(NO_EMPLOYEES_FOR_USER)
Exit()
endif
EmployeesList.Delimiter = ','
AssignmentsRef = CreateReference('RRCAssignments')
// Отфильтровать по Контролёру.
AddWhere1 = Format("%s.%s in (%s)"; ArrayOf(AssignmentsRef.TableName;
AssignmentsRef.Requisites('Работник').SQLFieldName;
EmployeesList.DelimitedText))
AddWhereID1 = AssignmentsRef.AddWhere(AddWhere1)
AssignmentsRef.Open
if AssignmentsRef.RecordCount > 0
// Показать форму-список справочника "Поручения".
// К заголовку формы добавить строку ' – контролируемые поручения'.
Form = AssignmentsRef.ComponentForm
Form.Title.BasePart = Form.Title.BasePart & " - " & FORM_TITLE
Form.Show
else
ShowMessage(NO_CONTROL_ASSIGNMENTS)
endif
AssignmentsRef.Close
AssignmentsRef.DelWhere(AddWhereID1)
Как разработать для веб-доступа
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |