Тема: Вопрос на рубль по веткам архива

Создаю номенклатуру, далее номенклатура должна связаться с одноименным создаваемым документом в определенном разделе архива(не сам архив).
Раздел архива выбрала, оказалось, что выбранный раздел архива не позволяет создание документов пользователю,
Как мне вычислить, что <<раздел архива>> не допускает создания документа?

Re: Вопрос на рубль по веткам архива

Евсеева Людмила пишет:

Создаю номенклатуру, далее номенклатура должна связаться с одноименным создаваемым документом в определенном разделе архива(не сам архив).
Раздел архива выбрала, оказалось, что выбранный раздел архива не позволяет создание документов пользователю,
Как мне вычислить, что <<раздел архива>> не допускает создания документа?

В догонку - кнопка на форме - выбираю раздел номенклатуры

Sub FormEvent_BitBtn_0_OnObjectClick( Form, ObjName )
'Form As ITCSForm, ObjName As String
   If TCSApp.ArchiveTree(True).ShowModal("Выберите раздел архива") <> 0 Then
      ArchTree = TCSApp.ArchiveTree(True).DbTree.Selected.Text
      Arch_ID  = TCSApp.ArchiveTree(True).DbTree.Selected.NodeID
      Form.c_Label_17.Caption = TCSApp.ArchiveTree(True).DbTree.Selected.Text
      Form.c_BitBtn_0.Tag = TCSApp.ArchiveTree(True).DbTree.Selected.NodeID

      Set Archiv = TCSApp.ArchiveTree(True)
      Archiv.DbTree.DbNodeByNodeId(Form.c_BitBtn_0.Tag).Selected = True

      set node = Archiv.DbTree.DbNodeByNodeId(Arch_ID)

      If Not node.AllowEdit Then
         Call TCSApp.ShowMessageBox("Сообщение", "В выбранном разделе архива нет прав на создание документов" + Chr(10) + "Обратитесь к администратору")
         Form.Close(200)
      End If
   End If
End Sub

Re: Вопрос на рубль по веткам архива

Евсеева Людмила пишет:
Евсеева Людмила пишет:

Создаю номенклатуру, далее номенклатура должна связаться с одноименным создаваемым документом в определенном разделе архива(не сам архив).
Раздел архива выбрала, оказалось, что выбранный раздел архива не позволяет создание документов пользователю,
Как мне вычислить, что <<раздел архива>> не допускает создания документа?

В догонку - кнопка на форме - выбираю раздел номенклатуры

Sub FormEvent_BitBtn_0_OnObjectClick( Form, ObjName )
'Form As ITCSForm, ObjName As String
   If TCSApp.ArchiveTree(True).ShowModal("Выберите раздел архива") <> 0 Then
      ArchTree = TCSApp.ArchiveTree(True).DbTree.Selected.Text
      Arch_ID  = TCSApp.ArchiveTree(True).DbTree.Selected.NodeID
      Form.c_Label_17.Caption = TCSApp.ArchiveTree(True).DbTree.Selected.Text
      Form.c_BitBtn_0.Tag = TCSApp.ArchiveTree(True).DbTree.Selected.NodeID

      Set Archiv = TCSApp.ArchiveTree(True)
      Archiv.DbTree.DbNodeByNodeId(Form.c_BitBtn_0.Tag).Selected = True

      set node = Archiv.DbTree.DbNodeByNodeId(Arch_ID)

      If Not node.AllowEdit Then
         Call TCSApp.ShowMessageBox("Сообщение", "В выбранном разделе архива нет прав на создание документов" + Chr(10) + "Обратитесь к администратору")
         Form.Close(200)
      End If
   End If
End Sub

Это не работает, хотелось бы правильный пример ...

Re: Вопрос на рубль по веткам архива

TCSApp.ArchiveTree - вообще не допускает изменения (Если не ошибаюсь). Вы можете всегда вывести модуль через ShowModal или изучить его в PropExplorer.

Создание обычно ведется в основном модуле - TCSApp.Archive, у него есть свойство DbTree, а уже у него есть AllowInsert

Re: Вопрос на рубль по веткам архива

If TCSApp.ArchiveTree(True).ShowModal("Выберите раздел архива") <> 0 Then
      ArchTree = TCSApp.ArchiveTree(True).DbTree.Selected.Text
      Arch_ID  = TCSApp.ArchiveTree(True).DbTree.Selected.NodeID
      Form.c_Label_17.Caption = TCSApp.ArchiveTree(True).DbTree.Selected.Text
      Form.c_BitBtn_0.Tag = TCSApp.ArchiveTree(True).DbTree.Selected.NodeID

      If Not TCSApp.Archive.DbTree.AllowInsert Then
         Call TCSApp.ShowMessageBox("Сообщение", "В выбранном разделе архива нет прав на создание документов" + Chr(10) + "Обратитесь к администратору")
         Form.Close(200)
      End If

   End If
У меня, допустим два раздела архива, в одном разделе есть право создавать документы, в другом нет, но есть просмотр
При выборе первого раздела это работает, при выборе второго раздела не говорит, что нет прав создавать документ, но когда создаю командой CreateDoc, выдается сообщение, что нет прав

Re: Вопрос на рубль по веткам архива

В документообороте много нюансов, там одной дополнительной проверкой вряд ли обойдешься. Но думаю нет особо смысла это делать.
Вы создаете документ, если не можете - получаете ошибку. Обрабатываете ее. Вопрос то в чем?

Я кстати неправ.  TCSApp.Archive.DbTree.AllowInsert - говорит что можно создавать классификатор в архиве (а не документы в архиве),
а вот theApp.ArchiveTree(True) вернет список архивов где разрешено создавать документы.

Re: Вопрос на рубль по веткам архива

Олег Зырянов пишет:

В документообороте много нюансов, там одной дополнительной проверкой вряд ли обойдешься. Но думаю нет особо смысла это делать.
Вы создаете документ, если не можете - получаете ошибку. Обрабатываете ее. Вопрос то в чем?

Я кстати неправ.  TCSApp.Archive.DbTree.AllowInsert - говорит что можно создавать классификатор в архиве (а не документы в архиве),
а вот theApp.ArchiveTree(True) вернет список архивов где разрешено создавать документы.

В том то и дело, что вывожу дерево, где предполагается, что есть права создавать документы, но не создается, потому, что есть права на просмотр, но нет прав на создание (в свойстве раздела, архива не поставлена галочка на создание) TCS7.1

Re: Вопрос на рубль по веткам архива

<<<В документообороте много нюансов, там одной дополнительной проверкой вряд ли обойдешься. Но думаю нет особо смысла это делать.>>>

Заказчик хочет, чтобы при выборе архива сразу выдавалось сообщение, что в этом разделе документ не создастся,
чтобы он мог выбрать другой раздел

Re: Вопрос на рубль по веткам архива

theApp.ArchiveTree(True) вернет список архивов где разрешено создавать документы

Здесь просто список архивов где можно создавать.

Если очень хочется ругаться, тогда берете общий список архивов, берете этот и сравниваете.