diff --git a/src/widgets/DocumentReview/ColumnHeader.tsx b/src/widgets/DocumentReview/ColumnHeader.tsx
new file mode 100644
index 0000000..7c44e3f
--- /dev/null
+++ b/src/widgets/DocumentReview/ColumnHeader.tsx
@@ -0,0 +1,60 @@
+import { Button, Input, Tooltip } from 'antd';
+import type { ColumnOut, IssueOut } from '../../types/api';
+import { SeverityIcon } from './IssuesPanel';
+import { columnDateEditable } from './editRules';
+import { worstSeverity } from './issuePlaces';
+import { columnTitle } from './reviewView';
+
+type Props = {
+ col: ColumnOut;
+ issues: IssueOut[];
+ editing: boolean;
+ /** введённая, но не сохранённая дата колонки */
+ draftDate?: string;
+ error?: boolean;
+ onDateChange?: (columnId: string, text: string) => void;
+ /** «Подтвердить дату»: кладёт в черновик текущую дату колонки */
+ onConfirmDate?: (col: ColumnOut) => void;
+};
+
+/** Заголовок колонки: подпись, значок предупреждения и (в режиме правки) поле даты ГГГГ-ММ-ДД с подтверждением. */
+export function ColumnHeader({ col, issues, editing, draftDate, error = false, onDateChange, onConfirmDate }: Props) {
+ const worst = worstSeverity(issues);
+ const title = (
+
+ {worst && }
+ {columnTitle(col)}
+
+ );
+ const withTip = worst ? (
+ (
+ {i.message}
+ ))}>
+ {title}
+
+ ) : (
+ title
+ );
+ const { editable, canConfirm } = columnDateEditable(col, issues);
+ if (!editing || !editable) return withTip;
+ const pending = canConfirm && draftDate !== undefined && draftDate === col.period_date;
+ return (
+
+ {withTip}
+ onDateChange?.(col.id, e.target.value)}
+ style={{ marginTop: 4, fontWeight: 400 }}
+ />
+ {canConfirm && (
+
+ )}
+
+ );
+}
diff --git a/src/widgets/DocumentReview/StatementHeaderBlock.tsx b/src/widgets/DocumentReview/StatementHeaderBlock.tsx
index c4411a1..950fb88 100644
--- a/src/widgets/DocumentReview/StatementHeaderBlock.tsx
+++ b/src/widgets/DocumentReview/StatementHeaderBlock.tsx
@@ -73,8 +73,8 @@ export function StatementHeaderBlock({ header, documentType, editing, draft, onD
onChange={(e) => onDraftChange(r.field, e.target.value)}
/>
{r.canConfirm && onConfirmDate && (
-