Private Function TriadToStr(ByVal Triad As Integer, Cl As Byte) As String
Dim N1 As Byte, N2 As Byte, N3 As Byte, TTS As String
	TriadToStr = ""
	If Triad = 0 Then Exit Function ' выход при нулевой триаде
	'----------------------------
	' Выделение разрядов триады.
	'----------------------------
	N1 = Triad Mod 10    ' единицы
	Triad = Int(Triad * 0.1)
	N2 = Triad Mod 10    ' сотни
	N3 = Int(Triad * 0.1)    ' тысячи
	'---------------------------------------
	' Формирование текстовой записи триады.
	'---------------------------------------
	TTS = ""    ' текстовая запись триады
	If N2 = 1 Then
		'--------------------------------------
		' Обработка разрядов десятков и единиц
		' для 9 < N2*10+N1 < 20.
		'--------------------------------------
		If N1 = 0 Then TTS = SN(1, 2) Else TTS = SN(N1, 4)
	Else
		'---------------------------
		' Обработка разряда единиц.
		'---------------------------
		If N1 > 0 Then
			If N1 = 1 Then
				Select Case Cl
					Case 0
						TTS = "одно"
					Case 1
						TTS = SN(N1, 1)
					Case 2
						TTS = "одна"
				End Select
			ElseIf N1 = 2 Then
				Select Case Cl
					Case 0, 1
						TTS = SN(N1, 1)
					Case 2
						TTS = "две"
				End Select
			Else
				TTS = SN(N1, 1)
			End If
		End If
		'-----------------------------
		' Обработка разряда десятков.
		'-----------------------------
		If N2 > 0 Then
			If N1 > 0 Then TTS = " " + TTS
			TTS = SN(N2, 2) + TTS
		End If
	End If
	'--------------------------
	' Обработка разряда сотен.
	'--------------------------
	If N3 > 0 Then
		If N1 > 0 Or N2 > 0 Then TTS = " " + TTS
		TTS = SN(N3, 3) + TTS
	End If
	TriadToStr = TTS
End Function

Private Function GetDeterm(ByVal Triad As Integer, Item1 As String, Item2 As String, Item3 As String) As String
Dim N1 As Byte, N2 As Byte
	N1 = Triad Mod 10
	Triad = Int(Triad * 0.1)
	N2 = Triad Mod 10
	If N2 <> 1 Then
		Select Case N1
			Case 1
				GetDeterm = Item1
			Case 2 To 4
				GetDeterm = Item2
			Case Else
				GetDeterm = Item3
		End Select
	Else
		GetDeterm = Item3
	End If
End Function