diff --git a/pkg/schema/field/array.go b/pkg/schema/field/array.go
index cc3a903d8b5eb91146b0e44c6836b81759041502..3d7fa47ba8facb7c2b632a262ef5879705e6ba86 100644
--- a/pkg/schema/field/array.go
+++ b/pkg/schema/field/array.go
@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"reflect"
 	"strconv"
+	"strings"
 
 	"git.perx.ru/perxis/perxis-go/pkg/errors"
 	"github.com/hashicorp/go-multierror"
@@ -138,8 +139,15 @@ func (ArrayType) Walk(ctx context.Context, field *Field, v interface{}, fn WalkF
 			return nil, false, fmt.Errorf("incorrect type: %s, expected array or slice", arr.Kind())
 		}
 
-		// При использовании опции WalkNonStrict преобразовываем в слайс
-		arr = reflect.ValueOf([]interface{}{v})
+		// При использовании опции WalkNonStrict
+		switch {
+		case arr.Kind() == reflect.String:
+			// В случае строки пытаемся разбить по пробелам
+			arr = reflect.ValueOf(strings.Split(arr.String(), " "))
+		default:
+			// По умолчанию преобразуем в слайс из одного элемента
+			arr = reflect.ValueOf([]interface{}{v})
+		}
 	}
 
 	var length int
diff --git a/pkg/schema/field/array_test.go b/pkg/schema/field/array_test.go
index 5685aa4ada41e33444c0ea589681cc2497dcc3f8..fcf73b1ff7c8664200ef91bc56669a157ff419a6 100644
--- a/pkg/schema/field/array_test.go
+++ b/pkg/schema/field/array_test.go
@@ -118,8 +118,15 @@ func TestArrayField_DecodeNonStrict(t *testing.T) {
 			false,
 		},
 		{
-			"Incorrect data type",
-			Array(Number(NumberFormatInt)),
+			"String array",
+			Array(Number(NumberFormatFloat)),
+			"1 2 3.5",
+			[]interface{}{1.0, 2.0, 3.5},
+			false,
+		},
+		{
+			"Incoorect type",
+			Array(Bool()),
 			"1 2 3",
 			nil,
 			true,