diff --git a/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs b/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs
index 1658910..ec8b5e8 100644
--- a/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs
+++ b/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs
@@ -554,5 +554,73 @@ namespace HostrelHeadwaiterApp.Controllers
             });
             Response.Redirect("ListConferenceBookings");
         }
+
+        /*--------------------Reports------------------------*/
+
+        [HttpGet]
+        public IActionResult ListDinnerRoomToFile()
+        {
+            if (APIClient.Headwaiter == null)
+            {
+                return Redirect("~/Home/Enter");
+            }
+            return View(APIClient.GetRequest<List<DinnerViewModel>>($"api/main/getdinnerlist?headwaiterId={APIClient.Headwaiter.Id}"));
+        }
+
+        [HttpPost]
+        public void ListDinnerRoomToFile(int[] Ids, string type)
+        {
+            if (APIClient.Headwaiter == null)
+            {
+                throw new Exception("Вы как суда попали? Суда вход только авторизованным");
+            }
+
+            if (Ids.Length <= 0)
+            {
+                throw new Exception("Количество должно быть больше 0");
+            }
+
+            if (string.IsNullOrEmpty(type))
+            {
+                throw new Exception("Неверный тип отчета");
+            }
+
+            List<int> res = new List<int>();
+
+            foreach (var item in Ids)
+            {
+                res.Add(item);
+            }
+
+            if (type == "docx")
+            {
+                APIClient.PostRequest("api/report/createheadwaiterreporttowordfile", new ReportHeadwaiterBindingModel
+                {
+                    Ids = res,
+                    FileName = "E:\\ReportsCourseWork\\wordfile.docx"
+                });
+                Response.Redirect("GetWordFile");
+            }
+            else
+            {
+                APIClient.PostRequest("api/report/createheadwaiterreporttoexcelfile", new ReportHeadwaiterBindingModel
+                {
+                    Ids = res,
+                    FileName = "E:\\ReportsCourseWork\\excelfile.xlsx"
+                });
+                Response.Redirect("GetExcelFile");
+            }
+        }
+
+        [HttpGet]
+        public IActionResult GetWordFile()
+        {
+            return new PhysicalFileResult("E:\\ReportsCourseWork\\wordfile.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
+        }
+
+        public IActionResult GetExcelFile()
+        {
+            return new PhysicalFileResult("E:\\ReportsCourseWork\\excelfile.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        }
     }
 }
\ No newline at end of file
diff --git a/Hotel/HostrelHeadwaiterApp/HotelHeadwaiterApp.csproj b/Hotel/HostrelHeadwaiterApp/HotelHeadwaiterApp.csproj
index b7c9b39..6dc593f 100644
--- a/Hotel/HostrelHeadwaiterApp/HotelHeadwaiterApp.csproj
+++ b/Hotel/HostrelHeadwaiterApp/HotelHeadwaiterApp.csproj
@@ -8,10 +8,12 @@
 
   <ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
+    <PackageReference Include="PdfSharp.MigraDoc.Standard" Version="1.51.15" />
   </ItemGroup>
 
   <ItemGroup>
     <ProjectReference Include="..\HotelContracts\HotelContracts.csproj" />
+	<ProjectReference Include="..\HotelDataModels\HotelDataModels.csproj" />
   </ItemGroup>
 
 </Project>
diff --git a/Hotel/HostrelHeadwaiterApp/Views/Home/ListDinnerRoomToFile.cshtml b/Hotel/HostrelHeadwaiterApp/Views/Home/ListDinnerRoomToFile.cshtml
new file mode 100644
index 0000000..69473fd
--- /dev/null
+++ b/Hotel/HostrelHeadwaiterApp/Views/Home/ListDinnerRoomToFile.cshtml
@@ -0,0 +1,73 @@
+@using HotelContracts.ViewModels
+
+@model List<DinnerViewModel>
+
+@{
+    ViewData["Title"] = "ListDinnerRoomToFile";
+}
+
+<div class="text-center">
+  <div class="title">
+    <h2>Создание отчета по обедам</h2>
+  </div>
+</div>
+
+<div class="text-center">
+  <form method="post">
+    <div class="file-format">
+        <label class="form-label">Выберите формат файла:</label>
+        <div class="form-check">
+          <input class="form-check-input" type="radio" name="type" value="docx" id="docx">
+          <label class="form-check-label" for="docx">Word-файл</label>
+        </div>
+        <div class="form-check">
+          <input class="form-check-input" type="radio" name="type" value="xlsx" id="xlsx" checked>
+          <label class="form-check-label" for="xlsx">Excel-файл</label>
+        </div>
+    </div>
+    <div class="table">
+      <table class="table table-hover">
+        <thead class="thead-light">
+          <tr>
+            <th scope="col"></th>
+            <th scope="col">Обед</th>
+            <th scope="col">Цена</th>
+          </tr>
+        </thead>
+        <tbody>
+            @foreach (var item in Model)
+            {
+              <tr>
+                <td>
+                  <div class="form-check">
+                    <input class="form-check-input" type="checkbox" name="Ids[]" value="@item.Id" id="@item.Id">
+                  </div>
+                </td>
+                <td>@Html.DisplayFor(modelItem => item.DinnerName)</td>
+                <td>@Html.DisplayFor(modelItem => item.DinnerPrice)</td>
+              </tr>
+            }
+        </tbody>
+      </table>
+    </div>
+        <br>
+<div class="d-flex justify-content-center">
+  <button type="submit" class="btn btn-block btn-outline-dark w-100">Создать</button>
+</div>
+  </form>
+</div>
+
+<style>
+  .title {
+    margin-top: 10px;
+    margin-bottom: 30px;
+  }
+  
+  .file-format {
+    margin-bottom: 30px;
+  }
+  
+  .table {
+    margin-bottom: 30px;
+  }
+</style> 
diff --git a/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml b/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml
index 6cbae9d..24a9fdc 100644
--- a/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml
+++ b/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml
@@ -37,6 +37,8 @@
 
                             <a class="nav-link " asp-area="" asp-controller="Home" asp-action="Enter">Аутентификация </a>
 
+                            <a class="nav-link " asp-area="" asp-controller="Home" asp-action="ListDinnerRoomToFile">Отчет (word/excel) </a>
+
                     </div>
                 </div>
             </div>
diff --git a/Hotel/HotelBusinessLogic/BusinessLogics/HeadwaiterLogic.cs b/Hotel/HotelBusinessLogic/BusinessLogics/HeadwaiterLogic.cs
index 0733463..38403cf 100644
--- a/Hotel/HotelBusinessLogic/BusinessLogics/HeadwaiterLogic.cs
+++ b/Hotel/HotelBusinessLogic/BusinessLogics/HeadwaiterLogic.cs
@@ -8,6 +8,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
+using System.Text.RegularExpressions;
 using System.Threading.Tasks;
 
 namespace HotelBusinessLogic.BusinessLogics
@@ -140,6 +141,11 @@ namespace HotelBusinessLogic.BusinessLogics
                 throw new ArgumentNullException("Нет номера телефона метродотеля", nameof(model.HeadwaiterNumber));
             }
 
+            if (model.HeadwaiterEmail.Length > _loginMaxLength || !Regex.IsMatch(model.HeadwaiterEmail, @"([a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+)"))
+            {
+                throw new Exception($"В качестве логина должна быть указана почта и иметь длинну не более {_loginMaxLength} символов");
+            }
+
             if (string.IsNullOrEmpty(model.HeadwaiterEmail))
             {
                 throw new ArgumentNullException("Нет почты метродотеля", nameof(model.HeadwaiterEmail));
@@ -150,21 +156,17 @@ namespace HotelBusinessLogic.BusinessLogics
                 throw new ArgumentNullException("Нет пароля метродотеля", nameof(model.HeadwaiterPassword));
             }
 
-            if (model.HeadwaiterPassword.Length < _passwordMinLength)
+            if (model.HeadwaiterPassword.Length > _passwordMaxLength || model.HeadwaiterPassword.Length < _passwordMinLength
+                           || !Regex.IsMatch(model.HeadwaiterPassword, @"^((\w+\d+\W+)|(\w+\W+\d+)|(\d+\w+\W+)|(\d+\W+\w+)|(\W+\w+\d+)|(\W+\d+\w+))[\w\d\W]*$"))
             {
-                throw new ArgumentNullException("Пароль слишком короткий", nameof(model.HeadwaiterPassword));
-            }
-
-            if (model.HeadwaiterPassword.Length > _passwordMaxLength)
-            {
-                throw new ArgumentNullException("Пароль слишком длинный", nameof(model.HeadwaiterPassword));
+                throw new Exception($"Пароль длиной от {_passwordMinLength} до {_passwordMaxLength} должен состоять из цифр, букв и небуквенных символов");
             }
 
             _logger.LogInformation("Headwaiter. HeadwaiterFIO: {HeadwaiterFIO}. HeadwaiterLogin: {HeadwaiterLogin}. Id: {Id}", model.HeadwaiterFIO, model.HeadwaiterLogin, model.Id);
 
             var element = _headwaiterStorage.GetElement(new HeadwaiterSearchModel
             {
-                HeadwaiterLogin = model.HeadwaiterLogin
+                HeadwaiterEmail = model.HeadwaiterEmail
             });
 
             if (element != null && element.Id != model.Id)
diff --git a/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs b/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs
index ef2dd77..77a459e 100644
--- a/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs
+++ b/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs
@@ -17,45 +17,48 @@ namespace HotelBusinessLogic.BusinessLogics
     {
         private readonly IRoomStorage _roomStorage;
         private readonly IDinnerStorage _dinnerStorage;
-        private readonly IMealPlanStorage _mealPlansStorage;
         private readonly IConferenceBookingStorage _conferenceBookingStorage;
         private readonly AbstractSaveToExcelHeadwaiter _saveToExcel;
         private readonly AbstractSaveToWordHeadwaitre _saveToWord;
         private readonly AbstractSaveToPdfHeadwaiter _saveToPdf;
-        public ReportLogicHeadwaiter(IRoomStorage roomStorage, IDinnerStorage dinnerStorage, IMealPlanStorage mealPlansStorage, IConferenceBookingStorage conferenceBookingStorage, AbstractSaveToExcelHeadwaiter saveToExcel, AbstractSaveToWordHeadwaitre saveToWord, AbstractSaveToPdfHeadwaiter saveToPdf)
+        public ReportLogicHeadwaiter(IRoomStorage roomStorage, IDinnerStorage dinnerStorage, IConferenceBookingStorage conferenceBookingStorage, AbstractSaveToExcelHeadwaiter saveToExcel, AbstractSaveToWordHeadwaitre saveToWord, AbstractSaveToPdfHeadwaiter saveToPdf)
         {
             _roomStorage = roomStorage;
             _dinnerStorage = dinnerStorage;
-            _mealPlansStorage = mealPlansStorage;
             _conferenceBookingStorage = conferenceBookingStorage;
             _saveToExcel = saveToExcel;
             _saveToWord = saveToWord;
             _saveToPdf = saveToPdf;
         }
-        public List<ReportMealPlanDinnerViewModel> GetMealPlanDinner()
+        public List<ReportDinnerRoomViewModel> GetDinnerRoom(List<int> Ids)
         {
-            var mealPlans = _mealPlansStorage.GetFullList();
-            var dinners = _dinnerStorage.GetFullList();
+            if (Ids == null)
+            {
+                return new List<ReportDinnerRoomViewModel>();
+            }
             var rooms = _roomStorage.GetFullList();
-            var list = new List<ReportMealPlanDinnerViewModel>();
+            List<DinnerViewModel> dinners = new List<DinnerViewModel>();
+            foreach (var memId in Ids)
+            {
+                var res = _dinnerStorage.GetElement(new DinnerSearchModel { Id = memId });
+                if (res != null)
+                {
+                    dinners.Add(res);
+                }
+            }
+            var list = new List<ReportDinnerRoomViewModel>();
             foreach (var dinner in dinners)
             {
-                var record = new ReportMealPlanDinnerViewModel
+                var record = new ReportDinnerRoomViewModel
                 {
                     DinnerName = dinner.DinnerName,
-                    MealPlans = new List<Tuple<string, double>>()
+                    Rooms = new List<Tuple<string, double>>()
                 };
                 foreach (var room in rooms)
                 {
                     if (room.RoomDinners.ContainsKey(dinner.Id))
                     {
-                        foreach (var mealPlan in mealPlans)
-                        {
-                            if (mealPlan.MealPlanRooms.ContainsKey(room.Id))
-                            {
-                                record.MealPlans.Add(new Tuple<string, double>(mealPlan.MealPlanName, mealPlan.MealPlanPrice));
-                            }
-                        }
+                        record.Rooms.Add(new Tuple<string, double>(room.RoomName, room.RoomPrice));
                     }
                 }
                 list.Add(record);
@@ -63,26 +66,34 @@ namespace HotelBusinessLogic.BusinessLogics
             return list;
         }
 
-        public List<ReportConferenceBindingRoomsViewModel> GetConferenceBindingRooms(ReportHeadwaiterBindingModel model)
+        public List<ReportDinnersViewModel> GetDinners(ReportHeadwaiterBindingModel model)
         {
-            var listAll = new List<ReportConferenceBindingRoomsViewModel>();
+            var listAll = new List<ReportDinnersViewModel>();
 
-            var listConferenceBinding = _conferenceBookingStorage.GetFilteredList(new ConferenceBookingSearchModel
+            var listСonferences = _roomStorage.GetFilteredList(new RoomSearchModel
             {
                 HeadwaiterId = model.HeadwaiterId,
-                DateFrom = model.DateFrom,
-                DateTo = model.DateTo
+                RoomName = model.RoomName,
             });
 
-            var listRooms = _roomStorage.GetFilteredList(new RoomSearchModel());
-
-            foreach (var room in listRooms)
+            foreach (var room in listСonferences)
             {
-                listAll.Add(new ReportConferenceBindingRoomsViewModel
+                foreach (var c in room.RoomDinners)
                 {
-                    RoomName = room.RoomName,
-                    RoomPrice = room.RoomPrice,
-                    RoomFrame = room.RoomFrame
+                    listAll.Add(new ReportDinnersViewModel
+                    {
+                        RoomName = room.RoomName,
+                        DinnerName = c.Value.DinnerName
+                    });
+                }
+            }
+            var listConferenceBookings = _conferenceBookingStorage.GetFilteredList(new ConferenceBookingSearchModel());
+
+            foreach (var conferenceBooking in listConferenceBookings)
+            {
+                listAll.Add(new ReportDinnersViewModel
+                {
+                    NameHall = conferenceBooking.NameHall
                 });
 
             }
@@ -90,35 +101,33 @@ namespace HotelBusinessLogic.BusinessLogics
             return listAll;
         }
 
-        public void SaveMealPlanDinnerToExcelFile(ReportHeadwaiterBindingModel model)
+        public void SaveDinnerRoomToExcelFile(ReportHeadwaiterBindingModel model)
         {
             _saveToExcel.CreateReport(new ExcelInfoHeadwaiter
             {
                 FileName = model.FileName,
-                Title = "Список участников",
-                MealPlanDinner = GetMealPlanDinner()
+                Title = "Список номеров",
+                DinnerRooms = GetDinnerRoom(model.Ids)
             });
         }
 
-        public void SaveMealPlanDinnerToWordFile(ReportHeadwaiterBindingModel model)
+        public void SaveDinnerRoomToWordFile(ReportHeadwaiterBindingModel model)
         {
             _saveToWord.CreateDoc(new WordInfoHeadwaiter
             {
                 FileName = model.FileName,
-                Title = "Список участников",
-                MealPlanDinner = GetMealPlanDinner()
+                Title = "Список номеров",
+                DinnerRooms = GetDinnerRoom(model.Ids)
             });
         }
 
-        public void SaveConferenceBindingRoomsToPdfFile(ReportHeadwaiterBindingModel model)
+        public void SaveDinnersToPdfFile(ReportHeadwaiterBindingModel model)
         {
             _saveToPdf.CreateDoc(new PdfInfoHeadwaiter
             {
                 FileName = model.FileName,
-                Title = "Список участников",
-                DateFrom = model.DateFrom!.Value,
-                DateTo = model.DateTo!.Value,
-                ConferenceBindingRooms = GetConferenceBindingRooms(model)
+                Title = "Список обедов",
+                Dinners = GetDinners(model)
             });
         }
     }
diff --git a/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToExcelHeadwaiter.cs b/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToExcelHeadwaiter.cs
index 0af9d13..84b7c3f 100644
--- a/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToExcelHeadwaiter.cs
+++ b/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToExcelHeadwaiter.cs
@@ -30,7 +30,7 @@ namespace HotelBusinessLogic.OfficePackage
 
             uint rowIndex = 2;
 
-            foreach (var mc in info.MealPlanDinner)
+            foreach (var mc in info.DinnerRooms)
             {
                 InsertCellInWorksheet(new ExcelCellParameters
                 {
@@ -42,7 +42,7 @@ namespace HotelBusinessLogic.OfficePackage
 
                 rowIndex++;
 
-                foreach (var mealPlan in mc.MealPlans)
+                foreach (var mealPlan in mc.Rooms)
                 {
                     InsertCellInWorksheet(new ExcelCellParameters
                     {
diff --git a/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfHeadwaiter.cs b/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfHeadwaiter.cs
index e46d9e1..b709298 100644
--- a/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfHeadwaiter.cs
+++ b/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToPdfHeadwaiter.cs
@@ -32,7 +32,7 @@ namespace HotelBusinessLogic.OfficePackage
                 Style = "NormalTitle",
                 ParagraphAlignment = PdfParagraphAlignmentType.Center
             });
-            foreach (var conferenceBindingRooms in info.ConferenceBindingRooms)
+            foreach (var conferenceBindingRooms in info.Dinners)
             {
                 CreateRow(new PdfRowParameters
                 {
@@ -43,7 +43,7 @@ namespace HotelBusinessLogic.OfficePackage
             }
             CreateParagraph(new PdfParagraph
             {
-                Text = $"Итого: {info.ConferenceBindingRooms.Sum(x => x.RoomPrice)}\t",
+                Text = $"Итого: {info.Dinners.Sum(x => x.RoomPrice)}\t",
                 Style = "Normal",
                 ParagraphAlignment = PdfParagraphAlignmentType.Rigth
             });
diff --git a/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToWordHeadwaiter.cs b/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToWordHeadwaiter.cs
index 568a543..387a752 100644
--- a/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToWordHeadwaiter.cs
+++ b/Hotel/HotelBusinessLogic/OfficePackage/AbstractSaveToWordHeadwaiter.cs
@@ -24,12 +24,12 @@ namespace HotelBusinessLogic.OfficePackage
                 }
             });
 
-            foreach (var mc in info.MealPlanDinner)
+            foreach (var mc in info.DinnerRooms)
             {
                 CreateParagraph(new WordParagraph
                 {
                     Texts = new List<(string, WordTextProperties)>
-                    { (mc.DinnerName+" - ", new WordTextProperties { Size = "24", Bold=true})},
+                    { (mc.DinnerName, new WordTextProperties { Size = "24", Bold=true})},
                     TextProperties = new WordTextProperties
                     {
                         Size = "24",
@@ -37,7 +37,7 @@ namespace HotelBusinessLogic.OfficePackage
                     }
                 });
 
-                foreach (var mealPlan in mc.MealPlans)
+                foreach (var mealPlan in mc.Rooms)
                 {
                     CreateParagraph(new WordParagraph
                     {
diff --git a/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/ExcelInfoHeadwaiter.cs b/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/ExcelInfoHeadwaiter.cs
index 9872e4e..7f4e462 100644
--- a/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/ExcelInfoHeadwaiter.cs
+++ b/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/ExcelInfoHeadwaiter.cs
@@ -11,7 +11,7 @@ namespace HotelBusinessLogic.OfficePackage.HelperModels
     {
         public string FileName { get; set; } = string.Empty;
         public string Title { get; set; } = string.Empty;
-        public List<ReportMealPlanDinnerViewModel> MealPlanDinner
+        public List<ReportDinnerRoomViewModel> DinnerRooms
         {
             get;
             set;
diff --git a/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/PdfInfoHeadwaiter.cs b/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/PdfInfoHeadwaiter.cs
index 73620d8..12262da 100644
--- a/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/PdfInfoHeadwaiter.cs
+++ b/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/PdfInfoHeadwaiter.cs
@@ -13,6 +13,6 @@ namespace HotelBusinessLogic.OfficePackage.HelperModels
         public string Title { get; set; } = string.Empty;
         public DateTime DateFrom { get; set; }
         public DateTime DateTo { get; set; }
-        public List<ReportConferenceBindingRoomsViewModel> ConferenceBindingRooms { get; set; } = new();
+        public List<ReportDinnersViewModel> Dinners { get; set; } = new();
     }
 }
diff --git a/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/WordInfoHeadwaiter.cs b/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/WordInfoHeadwaiter.cs
index 67ca4b0..b39521a 100644
--- a/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/WordInfoHeadwaiter.cs
+++ b/Hotel/HotelBusinessLogic/OfficePackage/HelperModels/WordInfoHeadwaiter.cs
@@ -11,6 +11,6 @@ namespace HotelBusinessLogic.OfficePackage.HelperModels
     {
         public string FileName { get; set; } = string.Empty;
         public string Title { get; set; } = string.Empty;
-        public List<ReportMealPlanDinnerViewModel> MealPlanDinner { get; set; } = new();
+        public List<ReportDinnerRoomViewModel> DinnerRooms { get; set; } = new();
     }
 }
diff --git a/Hotel/HotelBusinessLogic/OfficePackage/Implements/SaveToPdfHeadwaiter.cs b/Hotel/HotelBusinessLogic/OfficePackage/Implements/SaveToPdfHeadwaiter.cs
index 871ab00..c8e3350 100644
--- a/Hotel/HotelBusinessLogic/OfficePackage/Implements/SaveToPdfHeadwaiter.cs
+++ b/Hotel/HotelBusinessLogic/OfficePackage/Implements/SaveToPdfHeadwaiter.cs
@@ -11,7 +11,7 @@ using System.Threading.Tasks;
 
 namespace HotelBusinessLogic.OfficePackage.Implements
 {
-    internal class SaveToPdfHeadwaiter : AbstractSaveToPdfHeadwaiter
+    public class SaveToPdfHeadwaiter : AbstractSaveToPdfHeadwaiter
     {
         private Document? _document;
         private Section? _section;
diff --git a/Hotel/HotelContracts/BindingModels/ReportHeadwaiterBindingModel.cs.cs b/Hotel/HotelContracts/BindingModels/ReportHeadwaiterBindingModel.cs.cs
index 0e8bf74..9dbd4fd 100644
--- a/Hotel/HotelContracts/BindingModels/ReportHeadwaiterBindingModel.cs.cs
+++ b/Hotel/HotelContracts/BindingModels/ReportHeadwaiterBindingModel.cs.cs
@@ -9,8 +9,8 @@ namespace HotelContracts.BindingModels
     public class ReportHeadwaiterBindingModel
     {
         public string FileName { get; set; } = string.Empty;
-        public DateTime? DateFrom { get; set; }
-        public DateTime? DateTo { get; set; }
+        public string RoomName { get; set; } = string.Empty;
+        public List<int>? Ids { get; set; }
         public int HeadwaiterId { get; set; }
     }
 }
diff --git a/Hotel/HotelContracts/BusinessLogicsContracts/IReportHeadwaiterLogic.cs b/Hotel/HotelContracts/BusinessLogicsContracts/IReportHeadwaiterLogic.cs
index 7e0f69a..569619a 100644
--- a/Hotel/HotelContracts/BusinessLogicsContracts/IReportHeadwaiterLogic.cs
+++ b/Hotel/HotelContracts/BusinessLogicsContracts/IReportHeadwaiterLogic.cs
@@ -10,10 +10,10 @@ namespace HotelContracts.BusinessLogicsContracts
 {
     public interface IReportHeadwaiterLogic
     {
-        List<ReportMealPlanDinnerViewModel> GetMealPlanDinner();
-        List<ReportConferenceBindingRoomsViewModel> GetConferenceBindingRooms(ReportHeadwaiterBindingModel model);
-        void SaveMealPlanDinnerToWordFile(ReportHeadwaiterBindingModel model);
-        void SaveMealPlanDinnerToExcelFile(ReportHeadwaiterBindingModel model);
-        void SaveConferenceBindingRoomsToPdfFile(ReportHeadwaiterBindingModel model);
+        List<ReportDinnerRoomViewModel> GetDinnerRoom(List<int> Ids);
+        List<ReportDinnersViewModel> GetDinners(ReportHeadwaiterBindingModel model);
+        void SaveDinnerRoomToWordFile(ReportHeadwaiterBindingModel model);
+        void SaveDinnerRoomToExcelFile(ReportHeadwaiterBindingModel model);
+        void SaveDinnersToPdfFile(ReportHeadwaiterBindingModel model);
     }
 }
diff --git a/Hotel/HotelContracts/ViewModels/ReportMealPlanDinnerViewModel.cs b/Hotel/HotelContracts/ViewModels/ReportDinnerRoomViewModel.cs
similarity index 65%
rename from Hotel/HotelContracts/ViewModels/ReportMealPlanDinnerViewModel.cs
rename to Hotel/HotelContracts/ViewModels/ReportDinnerRoomViewModel.cs
index 2ea18cf..8523146 100644
--- a/Hotel/HotelContracts/ViewModels/ReportMealPlanDinnerViewModel.cs
+++ b/Hotel/HotelContracts/ViewModels/ReportDinnerRoomViewModel.cs
@@ -6,10 +6,10 @@ using System.Threading.Tasks;
 
 namespace HotelContracts.ViewModels
 {
-    public class ReportMealPlanDinnerViewModel
+    public class ReportDinnerRoomViewModel
     {
         public string DinnerName { get; set; } = string.Empty;
-        public List<Tuple<string, double>> MealPlans { get; set; } = new();
+        public List<Tuple<string, double>> Rooms { get; set; } = new();
 
     }
 }
diff --git a/Hotel/HotelContracts/ViewModels/ReportConferenceBindingRoomsViewModel.cs b/Hotel/HotelContracts/ViewModels/ReportDinnersViewModel.cs
similarity index 69%
rename from Hotel/HotelContracts/ViewModels/ReportConferenceBindingRoomsViewModel.cs
rename to Hotel/HotelContracts/ViewModels/ReportDinnersViewModel.cs
index 6e26c26..5fff054 100644
--- a/Hotel/HotelContracts/ViewModels/ReportConferenceBindingRoomsViewModel.cs
+++ b/Hotel/HotelContracts/ViewModels/ReportDinnersViewModel.cs
@@ -6,10 +6,12 @@ using System.Threading.Tasks;
 
 namespace HotelContracts.ViewModels
 {
-    public class ReportConferenceBindingRoomsViewModel
+    public class ReportDinnersViewModel
     {
         public int Id { get; set; }
         public string RoomName { get; set; } = string.Empty;
+        public string NameHall { get; set; } = string.Empty;
+        public string DinnerName { get; set; } = string.Empty;
         public double RoomPrice { get; set; }
         public string RoomFrame { get; set; } = string.Empty;
 
diff --git a/Hotel/HotelDataBaseImplement/HotelDataBase.cs b/Hotel/HotelDataBaseImplement/HotelDataBase.cs
index 6d7ccea..5f56ccf 100644
--- a/Hotel/HotelDataBaseImplement/HotelDataBase.cs
+++ b/Hotel/HotelDataBaseImplement/HotelDataBase.cs
@@ -9,7 +9,7 @@ namespace HotelDataBaseImplement
         {
             if (optionsBuilder.IsConfigured == false)
             {
-                optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-VG5USAH\SQLEXPRESS;Initial Catalog=HotelDataBaseFull;Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");
+                optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-V0ON61E\SQLEXPRESS;Initial Catalog=HotelDataBaseFu;Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");
             }
             base.OnConfiguring(optionsBuilder);
         }
diff --git a/Hotel/HotelRestApi/Controllers/ReportController.cs b/Hotel/HotelRestApi/Controllers/ReportController.cs
index 9819c6c..e25ef12 100644
--- a/Hotel/HotelRestApi/Controllers/ReportController.cs
+++ b/Hotel/HotelRestApi/Controllers/ReportController.cs
@@ -11,10 +11,12 @@ namespace HotelRestApi.Controllers
     {
         private readonly ILogger _logger;
         private readonly IReportOrganiserLogic _reportOrganiserLogic;
-        public ReportController(ILogger<ReportController> logger, IReportOrganiserLogic reportOrganiserLogic)
+        private readonly IReportHeadwaiterLogic _reportHeadwaiterLogic;
+        public ReportController(ILogger<ReportController> logger, IReportOrganiserLogic reportOrganiserLogic, IReportHeadwaiterLogic reportHeadwaiterLogic)
         {
             _logger = logger;
             _reportOrganiserLogic = reportOrganiserLogic;
+            _reportHeadwaiterLogic = reportHeadwaiterLogic;
         }
 
         [HttpPost]
@@ -64,5 +66,33 @@ namespace HotelRestApi.Controllers
                 throw;
             }
         }
+
+
+        [HttpPost]
+        public void CreateHeadwaiterReportToWordFile(ReportHeadwaiterBindingModel model)
+        {
+            try
+            {
+                _reportHeadwaiterLogic.SaveDinnerRoomToWordFile(model);
+            }
+            catch (Exception ex)
+            {
+                _logger.LogError(ex, "Ошибка создания отчета");
+                throw;
+            }
+        }
+        [HttpPost]
+        public void CreateHeadwaiterReportToExcelFile(ReportHeadwaiterBindingModel model)
+        {
+            try
+            {
+                _reportHeadwaiterLogic.SaveDinnerRoomToExcelFile(model);
+            }
+            catch (Exception ex)
+            {
+                _logger.LogError(ex, "Ошибка создания отчета");
+                throw;
+            }
+        }
     }
 }
diff --git a/Hotel/HotelRestApi/Program.cs b/Hotel/HotelRestApi/Program.cs
index 795e966..a67a1bc 100644
--- a/Hotel/HotelRestApi/Program.cs
+++ b/Hotel/HotelRestApi/Program.cs
@@ -24,11 +24,16 @@ builder.Services.AddTransient<IMealPlanLogic, MealPlanLogic>();
 builder.Services.AddTransient<IMemberLogic, MemberLogic>();
 builder.Services.AddTransient<IConferenceLogic, ConferenceLogic>();
 builder.Services.AddTransient<IReportOrganiserLogic, ReportLogicOrganiser>();
+builder.Services.AddTransient<IReportHeadwaiterLogic, ReportLogicHeadwaiter>();
 
 builder.Services.AddTransient<AbstractSaveToExcelOrganiser, SaveToExcelOrganiser>();
 builder.Services.AddTransient<AbstractSaveToWordOrganiser, SaveToWordOrganiser>();
 builder.Services.AddTransient<AbstractSaveToPdfOrganiser, SaveToPdfOrganiser>();
 
+builder.Services.AddTransient<AbstractSaveToExcelHeadwaiter, SaveToExcelHeadwaiter>();
+builder.Services.AddTransient<AbstractSaveToWordHeadwaitre, SaveToWordHeadwaiter>();
+builder.Services.AddTransient<AbstractSaveToPdfHeadwaiter, SaveToPdfHeadwaiter>();
+
 builder.Services.AddTransient<IHeadwaiterStorage, HeadwaiterStorage>();
 builder.Services.AddTransient<IDinnerStorage, DinnerStorage>();
 builder.Services.AddTransient<IRoomStorage, RoomStorage>();