diff --git a/src/client/index.ts b/src/client/index.ts
index 4b2720f..679a199 100644
--- a/src/client/index.ts
+++ b/src/client/index.ts
@@ -232,6 +232,7 @@ export type { EditMessageResponse } from './models/EditMessageResponse';
 export type { EditMessageSchema } from './models/EditMessageSchema';
 export type { EditPlaceRequest } from './models/EditPlaceRequest';
 export type { EditPlaceResponse } from './models/EditPlaceResponse';
+export type { EditPlaceSchema } from './models/EditPlaceSchema';
 export type { EditPlaceTypeRequest } from './models/EditPlaceTypeRequest';
 export type { EditPlaceTypeResponse } from './models/EditPlaceTypeResponse';
 export type { FinishPauseByShiftIdResponse } from './models/FinishPauseByShiftIdResponse';
diff --git a/src/client/models/EditPlaceRequest.ts b/src/client/models/EditPlaceRequest.ts
index 6af5ebe..d936a8e 100644
--- a/src/client/models/EditPlaceRequest.ts
+++ b/src/client/models/EditPlaceRequest.ts
@@ -2,8 +2,8 @@
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
-import type { PlaceSchema } from './PlaceSchema';
+import type { EditPlaceSchema } from './EditPlaceSchema';
 export type EditPlaceRequest = {
-    place: PlaceSchema;
+    place: EditPlaceSchema;
 };
 
diff --git a/src/client/models/EditPlaceSchema.ts b/src/client/models/EditPlaceSchema.ts
new file mode 100644
index 0000000..10712f7
--- /dev/null
+++ b/src/client/models/EditPlaceSchema.ts
@@ -0,0 +1,11 @@
+/* generated using openapi-typescript-codegen -- do not edit */
+/* istanbul ignore file */
+/* tslint:disable */
+/* eslint-disable */
+export type EditPlaceSchema = {
+    parentId: (number | null);
+    placeTypeId: number;
+    id: number;
+    number: number;
+};
+
diff --git a/src/pages/AdminPage/tabs/WarehouseManagement/place/components/PlaceActions.tsx b/src/pages/AdminPage/tabs/WarehouseManagement/place/components/PlaceActions.tsx
index 3ac0dac..f910d4e 100644
--- a/src/pages/AdminPage/tabs/WarehouseManagement/place/components/PlaceActions.tsx
+++ b/src/pages/AdminPage/tabs/WarehouseManagement/place/components/PlaceActions.tsx
@@ -1,5 +1,5 @@
 import { PlaceSchema } from "../../../../../../client";
-import { IconPlaylistAdd, IconQrcode, IconTrash } from "@tabler/icons-react";
+import { IconEdit, IconPlaylistAdd, IconQrcode, IconTrash } from "@tabler/icons-react";
 import { ActionIcon, Flex, Tooltip } from "@mantine/core";
 import React, { ReactNode } from "react";
 import { useWarehouseManagementTabContext } from "../../placeType/contexts/WarehouseManagementTabContext.tsx";
@@ -10,7 +10,7 @@ type Props = {
 }
 
 const PlaceActions = ({ place }: Props) => {
-    const { placeCrud, onCreatePlace, generateQrCode } = useWarehouseManagementTabContext();
+    const { placeCrud, onCreatePlace, onEditPlace, generateQrCode } = useWarehouseManagementTabContext();
 
     const getAction = (
         label: string,
@@ -46,6 +46,11 @@ const PlaceActions = ({ place }: Props) => {
             ,
             place.placeType.childCount === 0,
         ),
+        getAction(
+            "Редактировать",
+            () => onEditPlace(place),
+            ,
+        ),
         getAction(
             "Удалить",
             () => placeCrud.onDelete && placeCrud.onDelete(place),
diff --git a/src/pages/AdminPage/tabs/WarehouseManagement/place/components/PlaceTypeSelect.tsx b/src/pages/AdminPage/tabs/WarehouseManagement/place/components/PlaceTypeSelect.tsx
index fe57cbc..4156275 100644
--- a/src/pages/AdminPage/tabs/WarehouseManagement/place/components/PlaceTypeSelect.tsx
+++ b/src/pages/AdminPage/tabs/WarehouseManagement/place/components/PlaceTypeSelect.tsx
@@ -1,9 +1,9 @@
 import { FC } from "react";
-import { FlatPlaceTypeSchema } from "../../../../../../client";
+import { FlatPlaceTypeSchema, PlaceTypeSchema } from "../../../../../../client";
 import ObjectSelect, { ObjectSelectProps } from "../../../../../../components/ObjectSelect/ObjectSelect.tsx";
 
 type Props = Omit<
-    ObjectSelectProps,
+    ObjectSelectProps,
     "getValueFn" | "getLabelFn"
 >;
 
diff --git a/src/pages/AdminPage/tabs/WarehouseManagement/place/hooks/usePlacesCrud.tsx b/src/pages/AdminPage/tabs/WarehouseManagement/place/hooks/usePlacesCrud.tsx
index 61f52fc..0889f10 100644
--- a/src/pages/AdminPage/tabs/WarehouseManagement/place/hooks/usePlacesCrud.tsx
+++ b/src/pages/AdminPage/tabs/WarehouseManagement/place/hooks/usePlacesCrud.tsx
@@ -1,12 +1,12 @@
 import { useCRUD } from "../../../../../../hooks/useCRUD.tsx";
-import { BasePlaceSchema, PlaceSchema, WmsService } from "../../../../../../client";
+import { BasePlaceSchema, EditPlaceSchema, PlaceSchema, WmsService } from "../../../../../../client";
 import { notifications } from "../../../../../../shared/lib/notifications.ts";
 
 
 export type PlaceCrud = {
     onCreate: (element: BasePlaceSchema) => void,
     onDelete: (element: PlaceSchema) => void,
-    onChange: (element: PlaceSchema) => void
+    onChange: (element: EditPlaceSchema) => void
 }
 
 type Props = {
@@ -14,8 +14,8 @@ type Props = {
 }
 
 const usePlacesCrud = ({ fetchPlaces }: Props): PlaceCrud => {
-    return useCRUD({
-        onChange: (place: PlaceSchema) => {
+    return useCRUD({
+        onChange: (place: EditPlaceSchema) => {
             WmsService.editPlace({
                 requestBody: { place },
             })
@@ -26,7 +26,7 @@ const usePlacesCrud = ({ fetchPlaces }: Props): PlaceCrud => {
                 })
                 .catch(err => console.log(err));
         },
-        onDelete: (place: PlaceSchema) => {
+        onDelete: (place: EditPlaceSchema) => {
             WmsService.deletePlace({
                 placeId: place.id,
             })
diff --git a/src/pages/AdminPage/tabs/WarehouseManagement/place/modals/PlaceModal.tsx b/src/pages/AdminPage/tabs/WarehouseManagement/place/modals/PlaceModal.tsx
index 792362a..9521cd3 100644
--- a/src/pages/AdminPage/tabs/WarehouseManagement/place/modals/PlaceModal.tsx
+++ b/src/pages/AdminPage/tabs/WarehouseManagement/place/modals/PlaceModal.tsx
@@ -1,6 +1,6 @@
 import { ContextModalProps } from "@mantine/modals";
-import { FlatPlaceTypeSchema, PlaceSchema } from "../../../../../../client";
-import { Button, Stack } from "@mantine/core";
+import { EditPlaceSchema, FlatPlaceTypeSchema, PlaceSchema, PlaceTypeSchema } from "../../../../../../client";
+import { Button, NumberInput, Stack } from "@mantine/core";
 import { useForm } from "@mantine/form";
 import { PlaceCrud } from "../hooks/usePlacesCrud.tsx";
 import PlaceTypeSelect from "../components/PlaceTypeSelect.tsx";
@@ -8,11 +8,13 @@ import PlaceTypeSelect from "../components/PlaceTypeSelect.tsx";
 type Props = {
     placeCrud: PlaceCrud;
     parent?: PlaceSchema;
-    placeTypes: FlatPlaceTypeSchema[];
+    placeTypes?: FlatPlaceTypeSchema[];
+    element?: EditPlaceSchema;
 }
 
 type PlaceModalForm = {
-    placeType: PlaceSchema | null;
+    placeType: PlaceTypeSchema | null;
+    placeNumber: number | null;
 }
 
 const PlaceModal = ({
@@ -20,6 +22,7 @@ const PlaceModal = ({
                         id,
                         innerProps,
                     }: ContextModalProps) => {
+    const isEditing = "element" in innerProps;
     const { parent, placeCrud, placeTypes } = innerProps;
 
     const closeModal = () => {
@@ -28,31 +31,54 @@ const PlaceModal = ({
 
     const initialValues: PlaceModalForm = {
         placeType: null,
+        placeNumber: innerProps.element?.number ?? null,
     };
     const form = useForm({
         initialValues,
         validate: {
-            placeType: placeType => !placeType && "Необходимо указать тип",
+            placeType: placeType => !isEditing && !placeType && "Необходимо указать тип",
+            placeNumber: placeNumber => isEditing && !placeNumber && "Необходимо ввести номер",
         },
     });
 
     const onSubmit = (values: PlaceModalForm) => {
-        if (!values.placeType) return;
-        placeCrud.onCreate({
-            placeTypeId: values.placeType.id,
-            parentId: parent?.id || null,
-        });
+        if (isEditing) {
+            const place = innerProps.element!;
+            placeCrud.onChange({
+                id: place.id,
+                placeTypeId: place.placeTypeId,
+                number: values.placeNumber!,
+                parentId: place.parentId,
+            });
+        } else {
+            if (!values.placeType) return;
+            placeCrud.onCreate({
+                placeTypeId: values.placeType.id,
+                parentId: parent?.id || null,
+            });
+        }
         closeModal();
     };
 
     return (