Public Sub createTaskDoc () 'универсальный
		On Error GoTo ERROR_HANDLER
		GoTo START
ERROR_HANDLER:
		On Error GoTo 0
		Error Err, Error$ & Chr(10) & GetThreadInfo(1) & " (" & Erl & ")"
		Exit Sub
START:	
		Dim ws As New NotesUIWorkspace
		Dim view As NotesView
		Dim s As New NotesSession
		Dim taskdb As NotesDatabase
		Dim newDoc As NotesDocument    
		Dim tmpdoc As NotesDocument
		Dim col As NotesDocumentCollection   
		Dim form As String
		Set taskdb = getsettingmanager().crossGetDB("tasks")
		Dim flag As Integer
		Dim nam As NotesName
		Dim staffDB As NotesDatabase
		Dim staffdoc As NotesDocument
		Dim pickDoc As NotesDocument
		Dim db As NotesDatabase
		'
		Set newDoc = taskdb.Createdocument
		If getstaffmanager().isUser(True) = False Then
			Exit Sub
		End If
		If ws.Currentdocument Is Nothing Then
			If Not ws.Currentview Is Nothing Then
				'вызываем из представления
				If Not ws.Currentview.View.Getfirstdocument() Is Nothing Then 
					'получаем форму выделенного документа
					Set db = ws.CurrentDatabase.Database
					Dim doc As NotesDocument
					Set doc = db.GetDocumentByID(ws.CurrentView.CaretNoteID)
					Dim Field As String
					Field = doc.getitemvalue("Form")(0)
					'/получили форму документа
					'проверяем тип документа
					'выделен документ
					flag = MessageBox ("Хотите связать поручение с выделенным документом?", 4 , "")
					If flag = 6 Then
						'связать с документом
						Select Case Field
							Case "Task"
								If (doc.Getitemvalue("TaskStatus")(0) <> "На исполнении") Then
									MsgBox "Поручение можно создать только для поручений со статусом [На исполнении]"
									Exit Sub
								End If
								'для поручения со статусом на исполнении
								'создаем из поручения
								newDoc.Form = "Task"
								newDoc.TaskRegNumber = doc.Getitemvalue("TaskNum")(0)
								newDoc.DocRegNumber = doc.Getitemvalue("DocRegNumber")(0)
								newDoc.TaskAuthor = getstaffmanager().getName(False)
								newDoc.TaskAuthorNotes = getstaffmanager().getNotesName(False)
								newDoc.TaskStatus = "Черновик"
								'индивидуальная часть
								newDoc.DocUNID = doc.getitemvalue("DocUNID")(0)
								Call newDoc.MakeResponse( doc )
								Call newDoc.Save(True, True)
								Call ws.Editdocument(True, newDoc)
								'/
							Case "Execution" 'документ исполнения приказа
								If (doc.Getitemvalue("DocStatus")(0) <> "На исполнении") Then
									MsgBox "Поручение можно создать только для документов со статусом [На исполнении]"
									Exit Sub
								End If
								newDoc.Form = "Task"
								newDoc.DocRegNumber = doc.Getitemvalue("ExecutionDocRegNumber")(0)
								newDoc.TaskAuthor = getstaffmanager().getName(False)
								newDoc.TaskAuthorNotes = getstaffmanager().getNotesName(False)
								newDoc.TaskStatus = "Черновик"
								'индивидуальная часть
								newDoc.DocUNID = doc.getitemvalue("DocUNID")(0)
								newDoc.DocDB = Mid(db.Filename, 1, (Len(db.Filename) - 4))
								Call newDoc.Save(True, True)
								Call ws.Editdocument(True, newDoc)
							Case "Act", "Agreement", "CopyOrderAgreement" ,"CopyOrderExecution", "Order",_ 
							"Protocol", "Signing" 					
								MsgBox "К данному типу документов нельзя создавать поручения"
								Exit Sub
							Case Else
								MsgBox "Добавьте документ в метод createTaskDoc"
								Exit Sub
						End Select
					Else
						'не связывать с документом
						'стандартное создание
						newDoc.Form = "Task"
						'newDoc.DocRegNumber = curdoc.Getitemvalue("DocRegNumber")(0)
						newDoc.TaskAuthor = getstaffmanager().getName(False)
						newDoc.TaskAuthorNotes = getstaffmanager().getNotesName(False)
						newDoc.TaskStatus = "Черновик"
						Call newDoc.Save(True, True)
						Call ws.Editdocument(True, newDoc)
						'индивидуальная часть
						'newDoc.DocUNID = ""
						'/
					End If
				Else
					'документ не выделен (пустое представление)
					'стандартное создание
					newDoc.Form = "Task"
					'newDoc.DocRegNumber = curdoc.Getitemvalue("DocRegNumber")(0)
					newDoc.TaskAuthor = getstaffmanager().getName(False)
					newDoc.TaskAuthorNotes = getstaffmanager().getNotesName(False)
					newDoc.TaskStatus = "Черновик"
					Call newDoc.Save(True, True)
					Call ws.Editdocument(True, newDoc)
					'индивидуальная часть
					'newDoc.DocUNID = ""
					'/
				End If
			Else
				MsgBox "Ошибка - createTaskDoc: в принципе не должна появляться"
				'возможно, косяк может быть в отметках, но по идее - не должен быть
			End If
		Else
			'создаем внутри документа
			'получаем форму документа
			Set doc = ws.Currentdocument.Document
			If ( (doc.Getitemvalue("DocDB")(0) = "docs") Or (doc.Getitemvalue("DocDB")(0) = "office")) Then
				Set db = getsettingmanager().crossGetDB(doc.Getitemvalue("DocDB")(0))
			Else
				Set db = ws.Currentdatabase.Database
			End If
			Field = doc.getitemvalue("Form")(0)
			'/получили форму документа
			Select Case Field
				Case "Task"
					If (doc.Getitemvalue("TaskStatus")(0) <> "На исполнении") Then
						MsgBox "Поручение можно создать только для поручений со статусом [На исполнении]"
						Exit Sub
					End If
					'для поручения со статусом на исполнении
					'создаем из поручения
					newDoc.Form = "Task"
					newDoc.TaskRegNumber = doc.Getitemvalue("TaskNum")(0)
					newDoc.DocRegNumber = doc.Getitemvalue("DocRegNumber")(0)
					newDoc.TaskAuthor = getstaffmanager().getName(False)
					newDoc.TaskAuthorNotes = getstaffmanager().getNotesName(False)
					newDoc.TaskStatus = "Черновик"
					'индивидуальная часть
					newDoc.DocUNID = doc.getitemvalue("DocUNID")(0)
					Call newDoc.MakeResponse( doc )
					Call newDoc.Save(True, True)
					Call ws.Editdocument(True, newDoc)
					'/
				Case "Execution" 'документ исполнения приказа
					If (doc.Getitemvalue("ExecutionStatus")(0) <> "На исполнении") Then
						MsgBox "Поручение можно создать только для документов со статусом [На исполнении]"
						Exit Sub
					End If
					newDoc.Form = "Task"
					newDoc.DocRegNumber = doc.Getitemvalue("ExecutionDocRegNumber")(0)
					newDoc.TaskAuthor = getstaffmanager().getName(False)
					newDoc.TaskAuthorNotes = getstaffmanager().getNotesName(False)
					newDoc.TaskStatus = "Черновик"
					'индивидуальная часть
					newDoc.DocUNID = ws.Currentdocument.document.universalid
					newDoc.DocDB = Mid(db.Filename, 1, (Len(db.Filename) - 4))
					Call newDoc.Save(True, True)
					Call ws.Editdocument(True, newDoc)
				Case "Act", "Agreement", "CopyOrderAgreement" ,"CopyOrderExecution", "Order",_ 
				"Protocol", "Signing" 					
					MsgBox "К данному типу документов нельзя создавать поручения"
					Exit Sub
				Case Else
					MsgBox "Добавьте документ в метод createTaskDoc"
					Exit Sub
			End Select
		End If 
	End Sub