(изменено: Шишкина Наталия, 27 ноября 2020 10:21:53)

Тема: Проблема с уволенными пользователями

Здравствуйте.
Из номенклатурного справочника "Сборочные единицы" программно обращаюсь к справочнику "Пользователи", чтобы получить данные пользователя, создавшем записи в спецификации. Проблема в том, что уволенных пользователей команда
If TCSApp.Users.Locate("ID",Avtor,0) Then
просто игнорирует, как будто их нет в справочнике.

Re: Проблема с уволенными пользователями

Здравствуйте! Они по умолчанию скрыты! Выполните команду "Показать всех пользователей"

Re: Проблема с уволенными пользователями

ну это программно надо включить. Выведите саму форму - они там есть?

Спасибо сказали: Шишкина Наталия1

(изменено: Шишкина Наталия, 27 ноября 2020 11:20:37)

Re: Проблема с уволенными пользователями

Получилось, если показать всех пользователей, нажав кнопку вручную.
Проблема была в том, что было открыто несколько окон программы с разными положениями кнопки "Показать всех пользователей".
Как это сделать программно, пример кода можно?

Re: Проблема с уволенными пользователями

В АПи Explorer https://help.technologics.ru/7.9/TCSHelp/_800.htm закладка IDModule, там ActionList. Смотрите есть ли там эта команда. Если есть, так вроде даже Execute есть, после чего пример кода обычно остается в буфере обмена. Но такие имена специфичны к версии, так что имейте ввиду что в новых может отвалиться.
https://help.technologics.ru/7.9/TCSAPI … ist_13.htm
https://help.technologics.ru/7.9/TCSAPI … ctions.htm
https://help.technologics.ru/7.9/TCSAPI … cute_9.htm
https://help.technologics.ru/7.9/TCSAPI … ked_13.htm

Спасибо сказали: Шишкина Наталия1

Re: Проблема с уволенными пользователями

Вот код оттуда (с доработками как надо проверить)

Set A = TCSActiveModule.ActionList.ActionByName("ShowAllUsersAction")
If  Not A Is Nothing Then 
  if not A.Checked Then A.Execute
End If
Спасибо сказали: Шишкина Наталия1

Re: Проблема с уволенными пользователями

Команда такая есть. Этот код работает, если его запустить из справочника "Пользователи".
Если же это сделать из справочника "Номенклатура" вот так:

Set A = TCSApp.Users.ActionList.ActionByName("ShowAllUsersAction")
If Not A Is Nothing Then
  If Not A.Checked Then A.Execute
End If

то не получается.

Re: Проблема с уволенными пользователями

Да вроде все работает

Sub Test01
  if TCSApp.Users.ShowModal( "Start!" ) Then :
  Set A = TCSApp.Users.ActionList.ActionByName("ShowAllUsersAction")
  If Not A Is Nothing Then
    If Not A.Checked Then A.Execute
  End If
  if TCSApp.Users.ShowModal( "End!" ) Then :
End Sub
Спасибо сказали: Шишкина Наталия1

Re: Проблема с уволенными пользователями

Открываю справочник "Пользователи", отключаю кнопку "Показать всех пользователей", обновляю экран.
Проверяю, что уволенные пользователи не показываются, закрываю справочник "Пользователи".
Запускаю из номенклатурного справочника этот код.
Открывается окно справочника "Пользователи", в котором кнопка нажата, всё нормально.
После двух нажатий на кнопку "ОК" окно справочника "Пользователи" закрывается.
Снова открываю справочник "Пользователи" уже из меню. Кнопка отключена, уволенные пользователи не показываются.
У меня так.

Re: Проблема с уволенными пользователями

Справочник "Пользователи" в TechnologiCS и ваш в АПИ - это разные экземпляры этого справочника.
Видимо все работает, просто это код к своеку пристегните правильно.

(изменено: Шишкина Наталия, 30 ноября 2020 11:10:19)

Re: Проблема с уволенными пользователями

Заработало только после того, как перед этим кодом добавила программное снятие флажка "Отображать данные только текущей ветви":
TCSApp.ShowOneTreeNodeData = False

В справочнике кнопка всё так же отжата, но макрос отрабатывает верно.