Ваш браузер устарел, не поддерживает современные веб-стандарты и представляет угрозу Вашей безопасности. Для комфортной работы с порталом, пожалуйста, установите современыый браузер.
Портал технической поддержки

нумератор из индекса дела. делопроизводство

Комментарии

Комментариев: 11

  • XML карточки для номера выводится без связанных карточек и справочников, поэтому только варианты:

    1. Отказаться от стандартной выдачи номера вообще, формировать его вручную.

    2. Сделать в карточке динамическое поле и при сохранении скриптом писать туда этот индекс. Ну а в xslt использовать уже это поле.

    0
    Действия с комментариями Постоянная ссылка
  • подскажите, пожалуйста, как можно выцепить данные из связанных карточек? в руководстве по разработке ничего подобного не нашел.

    0
    Действия с комментариями Постоянная ссылка
  • Для нумератора связанные карточки не выводятся, только связанные строки справочников.

    Строка справочника получается по RowID, н-р, \\*\EmployeesRow[@RowID=\\CardDocument[0]\MainInfo\@Author]\@LastName
    - фамилия автора.

    Для прочих же карточек единственный вариант - вытащить их поля в скрытые динамические поля самого документа скриптом, н-р, на событии сохранения карточки.

    0
    Действия с комментариями Постоянная ссылка
  • я и пытаюсь написать такой скрипт. но как прочитать значение поля "Дело" - не понимаю. такое ощущение, что это не поле со значением, а просто какая то ссылка на карточку делопроизводства. 

    0
    Действия с комментариями Постоянная ссылка
  • посоветуете что-нибудь?

    0
    Действия с комментариями Постоянная ссылка
  • Если речь идет о поле MainInfo.CaseId в карточке документа, то там, действительно, не определено, на какую карточку это ссылка.

    Т.е., в XML данных дела вообще не будет, надо писать их в документ руками при его сохранении. Т.е., как и написал - делаем скрытое динамическое поле и в скрипте на сохранение заполняем его нужным значением, в данном случае, н-р, поиском по CaseId находим требуемое дело и считываем его название.

    0
    Действия с комментариями Постоянная ссылка
  • Можно поподробнее про поиск по CaseId? как найти дело и считать название.

    про динамическое поле: правильно ли я понял, что в конструкторе разметок, в редактировании метаданных нужно к одной из секций (например Основная информация) добавить еще одно поле. и в это поле уже копировать название дела?

    0
    Действия с комментариями Постоянная ссылка
  • Не очень уверен, на что именно оно ссылается, либо это строка из "Справочник номенклатуры дел 5", тогда получаем ее как строку соответствующей секции "Cases" по этому Id, название дела можно взять из поля "Case_Name" (карточку дела в этом случае можно получить из этой же строки, Id в поле Case).

    Если нет, то это ссылка на карточку дела, тогда получаем соответствующую карточку через GetCardData, название будет в разделе MainInfo, поле Name.

    А поле именно так и создать.

    0
    Действия с комментариями Постоянная ссылка
  • Очень долго мучился, но так и не получилось у меня это сделать. в "Справочнике номенклатуры дел 5" есть только одна секция "Years". Через DVExplorer нашел карточку дела, на которую ссылается документ. В секции "MainInfo" нет ни одной строки, содержимое которой совпадало бы со значением CaseId, которое сохраняется в XML-виде карточки документа.

    Подскажите, пожалуйста, как же все-таки получить индекс дела из карточки документа? Из-за неработающего нумератора запуск всего проекта под угрозой.

    0
    Действия с комментариями Постоянная ссылка
  • Остальные секции в этот справочнике подчиненные, у "Years" есть подчиненная секция "Sections", у "Sections" подчиненная секция "Cases".

    Собственно, в секции "Cases" RowID скорее всего и будет совпадать со значением поля в документе.

    В коде строка секции в любом случае получается методом GetRow из соответствующего раздела. Т.е. будет что-то вроде:

    // тип справочника
    private static readonly Guid RefCasesTypeId = new Guid("246197EA-846A-44DA-9EA3-0BCAE5500388");
    // секция дел
    private static readonly Guid RefCasesCasesId = new Guid("56AF8231-B918-42D4-AC15-90EC2E9A0725");
    ...
    ...
    // получили сам справочник
    CardData casesData = Session.CardManager.GetDictionaryData(RefCasesTypeId);
    // получили строчку нужного дела caseId
    RowData caseRow = casesData.Sections[RefCasesCasesId].GetRow(caseId);
    // получили название дела
    string caseName = caseRow.GetString("Case_Name");

    0
    Действия с комментариями Постоянная ссылка
  • все заработало. спасибо за помощь

    0
    Действия с комментариями Постоянная ссылка

Войдите в службу, чтобы оставить комментарий.