Копировать ссылку на страницу

Постановка задачи

Необходимо разработать сценарий для открытия справочника Поручения в виде списка с фильтром по контролеру – текущему пользователю. Контролер поручения хранится в реквизите Контролер (Работник). Если у текущего пользователя нет поручений или нет работников, связанных с текущим пользователем, то выдавать предупреждение.

Текст сценария

 

  // Нет работников, связанных с текущим пользователем.

  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)

© 2016 Компания DIRECTUM Сообщество пользователей DIRECTUM