diff --git a/Boats/Boats/ExtentionBoat.cs b/Boats/Boats/ExtentionBoat.cs
new file mode 100644
index 0000000..6fb51bc
--- /dev/null
+++ b/Boats/Boats/ExtentionBoat.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Boats
+{
+ ///
+ /// Расширение для класса DrawingBoat
+ ///
+ internal static class ExtentionBoat
+ {
+ ///
+ /// Разделитель для записи информации по объекту в файл
+ ///
+ private static readonly char _separatorForObject = ':';
+ ///
+ /// Создание объекта из строки
+ ///
+ ///
+ ///
+ public static DrawingBoat CreateDraingBoat(this string info)
+ {
+ string[] strs = info.Split(_separatorForObject);
+ if (strs.Length == 3)
+ {
+ return new DrawingBoat(
+ Convert.ToInt32(strs[0]),
+ Convert.ToInt32(strs[1]),
+ Color.FromName(strs[2])
+ );
+ }
+ if (strs.Length == 6)
+ {
+ return new DrawingCatamaran(
+ Convert.ToInt32(strs[0]),
+ Convert.ToInt32(strs[1]),
+ Color.FromName(strs[2]),
+ Color.FromName(strs[3]),
+ Convert.ToBoolean(strs[4]),
+ Convert.ToBoolean(strs[5])
+ );
+ }
+ return null;
+ }
+ ///
+ /// Получение данных для сохранения в файл
+ ///
+ ///
+ ///
+ public static string GetDataForSave(this DrawingBoat drawingBoat)
+ {
+ var car = drawingBoat.Boat;
+ var str = $"{car.Speed}{_separatorForObject}{car.Weight}{_separatorForObject}{car.BodyColor.Name}";
+ if (car is not EntityCatamaran catamaran)
+ {
+ return str;
+ }
+ return $"{str}{_separatorForObject}{catamaran.DopColor.Name}{_separatorForObject}{catamaran.Bobbers}{_separatorForObject}{catamaran.Sail}";
+ }
+ }