Тема: Позиционирование в документообороте
как открыть архив для пользователя через Api и установить курсор на заданный ID документа.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
TechnologiCS → TechnologiCS → Использование TechnologiCS API → Позиционирование в документообороте
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
как открыть архив для пользователя через Api и установить курсор на заданный ID документа.
как открыть архив для пользователя через Api и установить курсор на заданный ID документа.
Для того чтобы, установить курсор на заданный ID документа нужно ещё знать ID дерева раздела архива, в котором этот документ хранится.
Поэтому примерный алгоритм будет выглядеть так:
С помощью TCSApp.SingleDoc( CSDN_Const.dspSearchDocByDocID, DocId) получить экземпляр документа.
Определить ID дерева раздела документа (свойство "TREE_ID").
Открыть архив (TCSApp.Archive).
В цикле "пройтись" по всем веткам первого уровня классификатора архива, считав у них свойство Count (это такая особенность дерева архива, без этого поиск узла по ID не сработает, пример можно посмотреть здесь).
Найти в дереве архива нужный узел и выделить его (DBTree.DBNodeByNodeID(TreeId).Selected = True)
Ну и наконец, можно искать документ по ID (Locate("ID", DocId, 0)) и показывать архив методом ShowModal(Caption).
Всё это сработает, если у пользователя гарантированно будет право на просмотр того раздела архива, в котором нужный документ хранится.
Ну и встречный вопрос - а не достаточно ли будет получить нужный документ методом TCSApp.SingleDoc и открыть карточку документа для просмотра/редактирования?
Спасибо за подробный разбор действий!
Дело в том, что в TCS 4.7 при открытии Архива методом
TCSapp.Archive.RunModuleForSelect
(прошу пользователя выбрать документ)
почему-то не функционирует поиск позиций
Окошечко поиска появляется, но ничего с ним поделать низя.
Думал написать свою функцию поиска, а затем открыть оно TCS для выбора позиции
Зачастую пользователь не точно знает обозначение документа, знает только часть,
поэтому хотелось открывать именно полный архив, что бы пользователь видел все близлежащие документы.
Даже не знаю, что вам посоветовать. В версии 4.7 сложновато это будет реализовать...
Разве что программно устанавливать на архив фильтр вида "СОДЕРЖИТ" или "НАЧИНАЕТСЯ" на поле "Обозначение", проходить по всем разделам архива, записывать все найденные совпадения в пользовательский UserGModule (интрерфейс IUserGModule) и выводить для выбора пользователем документа уже этот UserGModule. Сами понимаете, такое решение будет "тормозить".
В 5.7 или 6.2 такой поиск можно было бы упростить через пользовательские наборы данных.
Совсем никак нельзя убедить руководство перейти на более современные версии TechnologiCS? (возможно, что ошибка с TCSapp.Archive.RunModuleForSelect уже в этих версиях исправлена).
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
TechnologiCS → TechnologiCS → Использование TechnologiCS API → Позиционирование в документообороте