форма 1

This commit is contained in:
PotapovaA 2026-05-22 17:30:28 +03:00
parent 76ce3702f5
commit a92df7ae14
36 changed files with 28889 additions and 4809 deletions

View File

@ -1,20 +1,23 @@
import api from './client'; import api from "./client";
export const TasksApi = { export const TasksApi = {
getById(taskId) {
return api.get(`/form/${taskId}`).then((r) => r.data);
},
list(params = {}) { list(params = {}) {
return api.get('/form/', { params }).then((r) => r.data); return api.get("/form/", { params }).then((r) => r.data);
}, },
getSheets(taskId) { getSheets(taskId) {
return api.get(`/form/${taskId}/sheets`).then((r) => r.data); return api.get(`/form/${taskId}/sheets`).then((r) => r.data);
}, },
getById(formId){ getById(formId) {
return api.get(`/form/${formId}`).then((r) => r.data); return api.get(`/form/${formId}`).then((r) => r.data);
}, },
getTaskStages(taskId) { getTaskStages(taskId) {
return api.get(`/tasks/${taskId}/stages`).then((r) => r.data); return api.get(`/tasks/${taskId}/stages`).then((r) => r.data);
}, },
create(payload) { create(payload) {
return api.put('/tasks/', payload).then((r) => r.data); return api.put("/tasks/", payload).then((r) => r.data);
}, },
editTask(taskId, payload = {}) { editTask(taskId, payload = {}) {
return api.patch(`/tasks/${taskId}`, payload).then((r) => r.data); return api.patch(`/tasks/${taskId}`, payload).then((r) => r.data);
@ -32,12 +35,12 @@ export const TasksApi = {
}, },
exportTask(taskId) { exportTask(taskId) {
return api.get(`export/task/${taskId}`, { return api.get(`export/task/${taskId}`, {
responseType: 'blob', responseType: "blob",
}); });
}, },
exportTasks(payload) { exportTasks(payload) {
return api.post(`export/bulk`, payload, { return api.post(`export/bulk`, payload, {
responseType: 'blob', responseType: "blob",
}); });
}, },
}; };

View File

@ -40,7 +40,7 @@ const highlightText = (text, searchQuery) => {
); );
}; };
const Cell = React.memo(({ cell, onClick, globalFilter, color }) => { const Cell = React.memo(({ cell, onClick, globalFilter, backgroundColor, color }) => {
const cellValue = cell.getValue(); const cellValue = cell.getValue();
const textValue = String(cellValue || ''); const textValue = String(cellValue || '');
@ -66,7 +66,8 @@ const Cell = React.memo(({ cell, onClick, globalFilter, color }) => {
bottom: 0, bottom: 0,
border: '2px solid transparent', border: '2px solid transparent',
padding: '8px', padding: '8px',
backgroundColor: color, backgroundColor: backgroundColor,
color: color,
}} }}
onClick={onClick} onClick={onClick}
> >

View File

@ -1,123 +1,7 @@
import { useState, useRef, useEffect } from 'react'; import { useState, useRef, useEffect } from 'react';
import { Box, Chip, Divider, styled, alpha, Stack } from '@mui/material'; import { Box, Chip, Divider, alpha, Stack } from '@mui/material';
import { StageInfoForTooltip } from '../../../Stages/StageInfoForTooltip'; import { StageInfoForTooltip } from '../../../Stages/StageInfoForTooltip';
const TooltipContainer = styled(Box, {
shouldForwardProp: (prop) => prop !== 'left' && prop !== 'translateY',
})(({ theme, left, translateY }) => ({
position: 'absolute',
left: `${left}px`,
transform: `translateY(${translateY}px)`,
top: '3rem',
border: `1px solid ${theme.palette.divider}`,
borderRadius: '1rem',
padding: '1.25rem',
width: '22rem',
boxShadow: theme.shadows[2],
zIndex: theme.zIndex.tooltip,
display: 'flex',
flexDirection: 'column',
gap: '1rem',
background: 'white',
alignContent: 'center',
}));
const SectionTitle = styled(Box)(({ theme }) => ({
color: theme.palette.text.primary,
fontWeight: 600,
fontSize: '0.813rem',
lineHeight: 1.2,
}));
const TypeChip = styled(Chip, {
shouldForwardProp: (prop) => prop !== 'chipType',
})(({ theme, chipType }) => {
const typeColors = {
formula: {
bg: alpha(theme.palette.primary.main, 0.1),
color: theme.palette.primary.main,
border: alpha(theme.palette.primary.main, 0.3),
},
number: {
bg: alpha(theme.palette.success.main, 0.1),
color: theme.palette.success.main,
border: alpha(theme.palette.success.main, 0.3),
},
string: {
bg: alpha(theme.palette.warning.main, 0.1),
color: theme.palette.warning.dark,
border: alpha(theme.palette.warning.main, 0.3),
},
numeric: {
bg: alpha(theme.palette.success.main, 0.1),
color: theme.palette.success.main,
border: alpha(theme.palette.success.main, 0.3),
},
text: {
bg: alpha(theme.palette.warning.main, 0.1),
color: theme.palette.warning.dark,
border: alpha(theme.palette.warning.main, 0.3),
},
default: {
bg: theme.palette.grey[100],
color: theme.palette.grey[700],
border: theme.palette.divider,
},
};
const colors = typeColors[chipType] || typeColors.default;
return {
backgroundColor: colors.bg,
color: colors.color,
border: `1px solid ${colors.border}`,
borderRadius: theme.shape.borderRadius,
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
};
});
const StatusChip = styled(Chip, {
shouldForwardProp: (prop) => prop !== 'danger' || prop !== 'warning',
})(({ theme, danger, warning }) => ({
backgroundColor: danger
? alpha(theme.palette.error.main, 0.1)
: warning
? alpha(theme.palette.warning.main, 0.1)
: alpha(theme.palette.success.main, 0.1),
color: danger
? theme.palette.error.main
: warning
? theme.palette.warning.color
: theme.palette.success.main,
border: `1px solid ${
danger
? alpha(theme.palette.error.main, 0.3)
: warning
? alpha(theme.palette.warning.main, 0.3)
: alpha(theme.palette.success.main, 0.3)
}`,
borderRadius: theme.shape.borderRadius,
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
width: 'max-content',
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
}));
export const TooltipBox = ({ export const TooltipBox = ({
left, left,
translateY, translateY,
@ -167,38 +51,160 @@ export const TooltipBox = ({
return typeMap[type] || 'Другое'; return typeMap[type] || 'Другое';
}; };
const getTypeColors = (chipType, theme) => {
const typeColors = {
formula: {
bg: alpha(theme.palette.primary.main, 0.1),
color: theme.palette.primary.main,
border: alpha(theme.palette.primary.main, 0.3),
},
number: {
bg: alpha(theme.palette.success.main, 0.1),
color: theme.palette.success.main,
border: alpha(theme.palette.success.main, 0.3),
},
string: {
bg: alpha(theme.palette.warning.main, 0.1),
color: theme.palette.warning.dark,
border: alpha(theme.palette.warning.main, 0.3),
},
numeric: {
bg: alpha(theme.palette.success.main, 0.1),
color: theme.palette.success.main,
border: alpha(theme.palette.success.main, 0.3),
},
text: {
bg: alpha(theme.palette.warning.main, 0.1),
color: theme.palette.warning.dark,
border: alpha(theme.palette.warning.main, 0.3),
},
default: {
bg: theme.palette.grey[100],
color: theme.palette.grey[700],
border: theme.palette.divider,
},
};
return typeColors[chipType] || typeColors.default;
};
const getStatusColors = (theme, danger, warning) => ({
backgroundColor: danger
? alpha(theme.palette.error.main, 0.1)
: warning
? alpha(theme.palette.warning.main, 0.1)
: alpha(theme.palette.success.main, 0.1),
color: danger
? theme.palette.error.main
: warning
? theme.palette.warning.color
: theme.palette.success.main,
border: `1px solid ${
danger
? alpha(theme.palette.error.main, 0.3)
: warning
? alpha(theme.palette.warning.main, 0.3)
: alpha(theme.palette.success.main, 0.3)
}`,
});
const isBlocked = blocked; const isBlocked = blocked;
return ( return (
<TooltipContainer <Box
left={left}
translateY={translateY}
ref={tooltipRef} ref={tooltipRef}
sx={{ sx={(theme) => ({
position: 'absolute',
left: `${left}px`,
transform: `translateY(${translateY}px)`,
top: '3rem',
border: `1px solid ${theme.palette.divider}`,
borderRadius: '1rem',
padding: '1.25rem',
width: '22rem',
boxShadow: theme.shadows[2],
zIndex: theme.zIndex.tooltip,
display: 'flex',
flexDirection: 'column',
gap: '1rem',
background: 'white',
alignContent: 'center',
...(flipPosition && { ...(flipPosition && {
left: left - width + 110, left: left - width + 110,
}), }),
}} })}
> >
<Box display="flex" flexDirection="column" gap="0.375rem"> <Box sx={{ display: 'flex', flexDirection: 'column', gap: '0.375rem' }}>
<SectionTitle>Свойства ячейки</SectionTitle> <Box
<Stack direction="row" spacing={0.5} flexWrap="wrap" useFlexGap> sx={(theme) => ({
<TypeChip color: theme.palette.text.primary,
fontWeight: 600,
fontSize: '0.813rem',
lineHeight: 1.2,
})}
>
Свойства ячейки
</Box>
<Stack sx={{ flexDirection: 'row', gap: 0.5, flexWrap: 'wrap' }}>
<Chip
label={getTypeDisplayName(type)} label={getTypeDisplayName(type)}
chipType={type}
size="small" size="small"
sx={(theme) => {
const colors = getTypeColors(type, theme);
return {
backgroundColor: colors.bg,
color: colors.color,
border: `1px solid ${colors.border}`,
borderRadius: theme.shape.borderRadius,
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
};
}}
/> />
<StatusChip <Chip
label={isBlocked ? 'Заблокирована' : 'Редактируемая'} label={isBlocked ? 'Заблокирована' : 'Редактируемая'}
danger={isBlocked}
size="small" size="small"
sx={(theme) => ({
...getStatusColors(theme, isBlocked, false),
borderRadius: theme.shape.borderRadius,
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
width: 'max-content',
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
})}
/> />
</Stack> </Stack>
{editor && ( {editor && (
<StatusChip <Chip
label={'Редактируется другим пользователем'} label={'Редактируется другим пользователем'}
warning={true}
size="small" size="small"
sx={(theme) => ({
...getStatusColors(theme, false, true),
borderRadius: theme.shape.borderRadius,
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
width: 'max-content',
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
})}
/> />
)} )}
</Box> </Box>
@ -208,11 +214,12 @@ export const TooltipBox = ({
<> <>
<Divider sx={{ marginTop: '0 !important' }} /> <Divider sx={{ marginTop: '0 !important' }} />
<Stack <Stack
spacing={0.75} sx={{
flexDirection={'row'} flexDirection: 'row',
flexWrap="wrap" flexWrap: 'wrap',
gap={'.5rem'} gap: '.5rem',
margin="0 !important" margin: '0 !important',
}}
> >
<Box <Box
component="span" component="span"
@ -245,6 +252,6 @@ export const TooltipBox = ({
<StageInfoForTooltip stageData={stageData} /> <StageInfoForTooltip stageData={stageData} />
</> </>
)} )}
</TooltipContainer> </Box>
); );
}; };

View File

@ -89,7 +89,7 @@ const RealtimeTable = ({ formType, formId, sheetName }) => {
data, data,
// data: [], // data: [],
columnVirtualizerInstanceRef, columnVirtualizerInstanceRef,
enableRowVirtualization: true, enableRowVirtualization: false,
onColumnSizingChange: setColumnSizing, onColumnSizingChange: setColumnSizing,
onColumnPinningChange: setColumnPinning, onColumnPinningChange: setColumnPinning,
onGlobalFilterChange: setGlobalFilter, onGlobalFilterChange: setGlobalFilter,

View File

@ -114,10 +114,9 @@ const HeaderCell = ({ header, table, onClick, hightlight, onChangeWidth }) => {
const isPinned = isColumnPin(table, header); const isPinned = isColumnPin(table, header);
const leftOffset = calculateLeftOffset(table, header); const leftOffset = calculateLeftOffset(table, header);
// Получаем цвет из muiTableHeadCellProps
const customBgColor = column.columnDef?.muiTableHeadCellProps?.sx?.backgroundColor; const customBgColor = column.columnDef?.muiTableHeadCellProps?.sx?.backgroundColor;
const color = column.columnDef?.muiTableHeadCellProps?.sx?.color || '#000000';
// Определяем итоговый цвет: если есть кастомный - используем его, иначе стандартный
const backgroundColor = customBgColor const backgroundColor = customBgColor
? customBgColor ? customBgColor
: (hightlight ? '#cbccce' : 'rgba(243, 244, 246, 1)'); : (hightlight ? '#cbccce' : 'rgba(243, 244, 246, 1)');
@ -188,6 +187,7 @@ const HeaderCell = ({ header, table, onClick, hightlight, onChangeWidth }) => {
paddingRight: '0.5rem', paddingRight: '0.5rem',
paddingLeft: '0.5rem', paddingLeft: '0.5rem',
backgroundColor: backgroundColor, backgroundColor: backgroundColor,
color: color,
}} }}
> >
{header.isPlaceholder ? null : column.columnDef.header} {header.isPlaceholder ? null : column.columnDef.header}

View File

@ -3,7 +3,6 @@ import {
Box, Box,
Chip, Chip,
Divider, Divider,
styled,
alpha, alpha,
Stack, Stack,
Popover, Popover,
@ -13,63 +12,6 @@ import {
import { useSharedTableState } from '../../TableContext'; import { useSharedTableState } from '../../TableContext';
import { StageInfoForTooltip } from '../../../../Stages/StageInfoForTooltip'; import { StageInfoForTooltip } from '../../../../Stages/StageInfoForTooltip';
const ContentContainer = styled(Box)(({ theme }) => ({
display: 'flex',
flexDirection: 'column',
gap: '1rem',
background: 'white',
borderRadius: '1rem',
padding: '1.25rem',
width: '30rem',
maxWidth: '90vw',
}));
const SectionTitle = styled(Box)(({ theme }) => ({
color: theme.palette.text.primary,
fontWeight: 600,
fontSize: '0.813rem',
lineHeight: 1.2,
}));
const StatusChip = styled(Chip, {
shouldForwardProp: (prop) => prop !== 'isCurrent' && prop !== 'isAdminOnly',
})(({ theme, isAdminOnly }) => ({
backgroundColor: isAdminOnly
? alpha(theme.palette.warning.main, 0.1)
: alpha(theme.palette.info.main, 0.1),
color: isAdminOnly ? theme.palette.warning.main : theme.palette.info.main,
border: `1px solid ${
isAdminOnly
? alpha(theme.palette.warning.main, 0.3)
: alpha(theme.palette.info.main, 0.3)
}`,
borderRadius: '0.5rem',
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
}));
const LetterChip = styled(Chip)(({ theme }) => ({
borderRadius: '0.5rem',
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
background: 'white',
border: `1px solid rgba(0, 0, 0, 0.1)`,
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
}));
export const ColumnTooltipBox = ({ export const ColumnTooltipBox = ({
anchorEl, anchorEl,
open, open,
@ -232,25 +174,75 @@ export const ColumnTooltipBox = ({
onMouseEnter={(e) => e.stopPropagation()} onMouseEnter={(e) => e.stopPropagation()}
onMouseLeave={onClose} onMouseLeave={onClose}
> >
<ContentContainer> <Box
sx={(theme) => ({
display: 'flex',
flexDirection: 'column',
gap: '1rem',
background: 'white',
borderRadius: '1rem',
padding: '1.25rem',
width: '30rem',
maxWidth: '90vw',
})}
>
{/* Заголовок и статус */} {/* Заголовок и статус */}
<Box display="flex" flexDirection="column" gap="0.375rem"> <Box sx={{ display: 'flex', flexDirection: 'column', gap: '0.375rem' }}>
<SectionTitle variant="subtitle2" fontSize={'1rem !important'}> <Box
Настройки столбца sx={(theme) => ({
</SectionTitle> color: theme.palette.text.primary,
<Stack fontWeight: 600,
direction="row" fontSize: '1rem !important',
spacing={'0.5rem'} lineHeight: 1.2,
flexWrap="wrap" })}
useFlexGap variant="subtitle2"
paddingTop={'.5rem'}
> >
<LetterChip label={textCol} /> Настройки столбца
</Box>
<Stack
sx={{
flexDirection: 'row',
gap: '0.5rem',
flexWrap: 'wrap',
paddingTop: '.5rem',
}}
>
<Chip
label={textCol}
sx={(theme) => ({
borderRadius: '0.5rem',
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
background: 'white',
border: '1px solid rgba(0, 0, 0, 0.1)',
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
})}
/>
{colData.is_admin_only && ( {colData.is_admin_only && (
<StatusChip <Chip
label="Только для админов" label="Только для админов"
isAdminOnly={colData.is_admin_only}
size="small" size="small"
sx={(theme) => ({
backgroundColor: alpha(theme.palette.warning.main, 0.1),
color: theme.palette.warning.main,
border: `1px solid ${alpha(theme.palette.warning.main, 0.3)}`,
borderRadius: '0.5rem',
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
})}
/> />
)} )}
</Stack> </Stack>
@ -280,7 +272,7 @@ export const ColumnTooltipBox = ({
инструментов инструментов
</Box> </Box>
</Box> </Box>
</ContentContainer> </Box>
</Box> </Box>
</Popover> </Popover>
); );

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -23,9 +23,9 @@ export const config = {
color_type: whiteColumn, color_type: whiteColumn,
accessorKey: "obekt_obekt_obekt_neobkhodimo_vybrat_iz_spiska", accessorKey: "obekt_obekt_obekt_neobkhodimo_vybrat_iz_spiska",
}, },
nomer_dogovora_nomer_dogovora_nomer_dogovora: { nomer_dogovora_nomer_dogovora_nomer_dogovora_field: {
color_type: whiteColumn, color_type: whiteColumn,
accessorKey: "nomer_dogovora_nomer_dogovora_nomer_dogovora", accessorKey: "nomer_dogovora_nomer_dogovora_nomer_dogovora_field",
}, },
srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod: srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod:
{ {
@ -33,25 +33,25 @@ export const config = {
accessorKey: accessorKey:
"srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod", "srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod",
}, },
planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal: { planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field: {
color_type: whiteColumn, color_type: whiteColumn,
accessorKey: accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal", "planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field",
}, },
planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal: { planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field: {
color_type: whiteColumn, color_type: whiteColumn,
accessorKey: accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal", "planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field",
}, },
planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal: { planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field: {
color_type: whiteColumn, color_type: whiteColumn,
accessorKey: accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal", "planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field",
}, },
planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal: { planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field: {
color_type: whiteColumn, color_type: whiteColumn,
accessorKey: accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal", "planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field",
}, },
kommentariy_kommentariy_kommentariy_kommentariy: { kommentariy_kommentariy_kommentariy_kommentariy: {
color_type: whiteColumn, color_type: whiteColumn,
@ -172,6 +172,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Адрес объекта *", header: "Адрес объекта *",
@ -194,7 +200,8 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#D8D8D8",
color: "#000000",
}, },
}, },
}, },
@ -203,6 +210,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Объект **", header: "Объект **",
@ -224,7 +237,8 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#D8D8D8",
color: "#000000",
}, },
}, },
}, },
@ -233,23 +247,37 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: " ", header: "Номер договора",
accessorKey: "nomer_dogovora",
columns: [ columns: [
{ {
header: "Номер договора", header: "Номер договора",
accessorKey: "nomer_dogovora", accessorKey: "nomer_dogovora_nomer_dogovora",
columns: [ columns: [
{ {
header: "Номер договора", header: "Номер договора",
accessorKey: "nomer_dogovora_nomer_dogovora", accessorKey: "nomer_dogovora_nomer_dogovora_nomer_dogovora",
columns: [ columns: [
{ {
header: "Номер договора", header: "",
accessorKey: "nomer_dogovora_nomer_dogovora_nomer_dogovora", accessorKey:
"nomer_dogovora_nomer_dogovora_nomer_dogovora_field",
size: 150, size: 150,
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#D8D8D8",
color: "#000000",
},
},
}, },
], ],
}, },
@ -258,7 +286,8 @@ export const config = {
], ],
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#f5f5f5", backgroundColor: "#A5A5A5",
color: "#000000",
}, },
}, },
}, },
@ -283,7 +312,8 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#D8D8D8",
color: "#000000",
}, },
}, },
}, },
@ -292,76 +322,132 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: " ", header: "Планируемая сумма расходов на 2026 год",
accessorKey: "planiruemaya_summa_raskhodov_na_2026_god",
columns: [ columns: [
{ {
header: "Планируемая сумма расходов на 2026 год", header: "I квартал",
accessorKey: "planiruemaya_summa_raskhodov_na_2026_god", accessorKey: "planiruemaya_summa_raskhodov_na_2026_god_i_kvartal",
columns: [ columns: [
{ {
header: "I квартал", header: "I квартал",
accessorKey: accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal", "planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal",
columns: [ columns: [
{ {
header: "I квартал", header: "",
accessorKey: accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal", "planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field",
size: 150, size: 150,
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#D8D8D8",
color: "#000000",
},
},
}, },
], ],
}, },
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "II квартал",
accessorKey: "planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal",
columns: [
{ {
header: "II квартал", header: "II квартал",
accessorKey: accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal", "planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
columns: [ columns: [
{ {
header: "II квартал", header: "",
accessorKey: accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal", "planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field",
size: 150,
filterFn: "contains",
},
],
},
{
header: "III квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "IV квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
size: 150, size: 150,
filterFn: "contains", filterFn: "contains",
}, },
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "III квартал",
accessorKey: "planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
columns: [
{
header: "",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field",
size: 150,
filterFn: "contains",
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "IV квартал",
accessorKey: "planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
columns: [
{
header: "",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field",
size: 150,
filterFn: "contains",
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
], ],
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#f5f5f5", backgroundColor: "#A5A5A5",
color: "#000000",
}, },
}, },
}, },
@ -389,6 +475,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Фактические расходы за I кв 2026 года", header: "Фактические расходы за I кв 2026 года",
@ -411,13 +503,20 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#D8D8D8",
color: "#000000",
}, },
}, },
}, },
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "февраль", header: "февраль",
@ -438,6 +537,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "март", header: "март",
@ -458,6 +563,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Итог I кв", header: "Итог I кв",
@ -478,8 +589,20 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Фактические расходы за II кв 2026 года", header: "Фактические расходы за II кв 2026 года",
@ -502,13 +625,20 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#D8D8D8",
color: "#000000",
}, },
}, },
}, },
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "май", header: "май",
@ -528,6 +658,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "июнь", header: "июнь",
@ -548,6 +684,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Итог II кв", header: "Итог II кв",
@ -568,8 +710,20 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Фактические расходы за III кв 2026 года", header: "Фактические расходы за III кв 2026 года",
@ -592,13 +746,20 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#D8D8D8",
color: "#000000",
}, },
}, },
}, },
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "август", header: "август",
@ -619,6 +780,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "сентябрь", header: "сентябрь",
@ -639,6 +806,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Итог III кв", header: "Итог III кв",
@ -660,8 +833,20 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Фактические расходы за IV кв 2026 года", header: "Фактические расходы за IV кв 2026 года",
@ -684,13 +869,20 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#D8D8D8",
color: "#000000",
}, },
}, },
}, },
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "ноябрь", header: "ноябрь",
@ -711,6 +903,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "декабрь", header: "декабрь",
@ -731,6 +929,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "СПОД", header: "СПОД",
@ -751,6 +955,12 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Итог IV кв", header: "Итог IV кв",
@ -771,8 +981,20 @@ export const config = {
], ],
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
], ],
}, },

View File

@ -76,11 +76,16 @@ export const config = {
{ {
header: "N п/п", header: "N п/п",
accessorKey: "n_pp_n_pp", accessorKey: "n_pp_n_pp",
exampleValue: "1",
size: 150, size: 150,
filterFn: "contains", filterFn: "contains",
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "ID статьи / группы номенклатуры", header: "ID статьи / группы номенклатуры",
@ -94,6 +99,12 @@ export const config = {
filterFn: "contains", filterFn: "contains",
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Наименование статей расходов", header: "Наименование статей расходов",
@ -103,12 +114,16 @@ export const config = {
header: "Наименование статей расходов", header: "Наименование статей расходов",
accessorKey: accessorKey:
"naimenovanie_statey_raskhodov_naimenovanie_statey_raskhodov", "naimenovanie_statey_raskhodov_naimenovanie_statey_raskhodov",
exampleValue:
"Телефонные, почтовые, телеграфные расходы и др. услуги связи",
size: 150, size: 150,
filterFn: "contains", filterFn: "contains",
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Нормируемая единица", header: "Нормируемая единица",
@ -121,6 +136,12 @@ export const config = {
filterFn: "contains", filterFn: "contains",
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Лимит, в руб.(с учетом НДС)", header: "Лимит, в руб.(с учетом НДС)",
@ -133,6 +154,12 @@ export const config = {
filterFn: "contains", filterFn: "contains",
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "Лимит, в руб.(без учета НДС)", header: "Лимит, в руб.(без учета НДС)",
@ -145,6 +172,12 @@ export const config = {
filterFn: "contains", filterFn: "contains",
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "I квартал 2026 г.", header: "I квартал 2026 г.",
@ -157,7 +190,8 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#A5A5A5",
color: "#000000",
}, },
}, },
}, },
@ -168,11 +202,18 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#A5A5A5",
color: "#000000",
}, },
}, },
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "II квартал 2026 г.", header: "II квартал 2026 г.",
@ -185,7 +226,8 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#A5A5A5",
color: "#000000",
}, },
}, },
}, },
@ -196,11 +238,18 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#A5A5A5",
color: "#000000",
}, },
}, },
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "III квартал 2026 г.", header: "III квартал 2026 г.",
@ -213,7 +262,8 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#A5A5A5",
color: "#000000",
}, },
}, },
}, },
@ -224,11 +274,18 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#A5A5A5",
color: "#000000",
}, },
}, },
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
{ {
header: "IV квартал 2026 г.", header: "IV квартал 2026 г.",
@ -241,7 +298,8 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#A5A5A5",
color: "#000000",
}, },
}, },
}, },
@ -252,11 +310,18 @@ export const config = {
filterFn: "contains", filterFn: "contains",
muiTableHeadCellProps: { muiTableHeadCellProps: {
sx: { sx: {
backgroundColor: "#FFFFFF", backgroundColor: "#A5A5A5",
color: "#000000",
}, },
}, },
}, },
], ],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
}, },
], ],
}, },

View File

@ -30,25 +30,25 @@
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod" "accessorKey":"srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod"
}, },
"nomer_dogovora_nomer_dogovora_nomer_dogovora":{ "nomer_dogovora_nomer_dogovora_nomer_dogovora_field":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora" "accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora_field"
}, },
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal":{ "planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal" "accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field"
}, },
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal":{ "planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal" "accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field"
}, },
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal":{ "planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal" "accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field"
}, },
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal":{ "planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal" "accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field"
}, },
"kommentariy_kommentariy_kommentariy_kommentariy":{ "kommentariy_kommentariy_kommentariy_kommentariy":{
"color_type":whiteColumn, "color_type":whiteColumn,
@ -146,7 +146,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Адрес арендуемого помещения *", "header":"Адрес арендуемого помещения *",
@ -167,7 +173,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
@ -175,7 +182,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Объект **", "header":"Объект **",
@ -196,7 +209,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
@ -204,7 +218,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Арендуемая площадь", "header":"Арендуемая площадь",
@ -225,7 +245,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
@ -233,7 +254,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Срок окончания договора", "header":"Срок окончания договора",
@ -254,7 +281,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
@ -262,88 +290,37 @@
} }
] ]
} }
]
},
{
"header":" ",
"columns":[
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora",
"columns":[
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora_nomer_dogovora",
"columns":[
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora",
"size":150,
"filterFn":"contains"
}
]
}
]
}
], ],
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#f5f5f5" "backgroundColor":"#A5A5A5",
"color":"#000000"
} }
} }
}, },
{ {
"header":" ", "header":"Номер договора",
"accessorKey":"nomer_dogovora",
"columns":[ "columns":[
{ {
"header":"Планируемая сумма расходов на 2026 год", "header":"Номер договора",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god", "accessorKey":"nomer_dogovora_nomer_dogovora",
"columns":[ "columns":[
{ {
"header":"I квартал", "header":"Номер договора",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal", "accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora",
"columns":[ "columns":[
{ {
"header":"I квартал", "header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal", "accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora_field",
"size":150, "size":150,
"filterFn":"contains" "filterFn":"contains",
} "muiTableHeadCellProps":{
] "sx":{
}, "backgroundColor":"#D8D8D8",
{ "color":"#000000"
"header":"II квартал", }
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal", }
"columns":[
{
"header":"II квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
"size":150,
"filterFn":"contains"
}
]
},
{
"header":"III квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
"size":150,
"filterFn":"contains"
}
]
},
{
"header":"IV квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
"size":150,
"filterFn":"contains"
} }
] ]
} }
@ -352,7 +329,122 @@
], ],
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#f5f5f5" "backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Планируемая сумма расходов на 2026 год",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god",
"columns":[
{
"header":"I квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal",
"columns":[
{
"header":"I квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field",
"size":150,
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"II квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal",
"columns":[
{
"header":"II квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"III квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"IV квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
} }
} }
}, },
@ -378,7 +470,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Фактические расходы за I кв 2026 года", "header":"Фактические расходы за I кв 2026 года",
@ -399,13 +497,20 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"февраль", "header":"февраль",
@ -423,7 +528,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"март", "header":"март",
@ -441,7 +552,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Итог I кв", "header":"Итог I кв",
@ -459,9 +576,21 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Фактические расходы за II кв 2026 года", "header":"Фактические расходы за II кв 2026 года",
@ -482,13 +611,20 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"май", "header":"май",
@ -506,7 +642,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"июнь", "header":"июнь",
@ -524,7 +666,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Итог II кв", "header":"Итог II кв",
@ -542,9 +690,21 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Фактические расходы за III кв 2026 года", "header":"Фактические расходы за III кв 2026 года",
@ -565,13 +725,20 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"август", "header":"август",
@ -589,7 +756,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"сентябрь", "header":"сентябрь",
@ -607,7 +780,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Итог III кв", "header":"Итог III кв",
@ -625,9 +804,21 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Фактические расходы за IV кв 2026 года", "header":"Фактические расходы за IV кв 2026 года",
@ -648,13 +839,20 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"ноябрь", "header":"ноябрь",
@ -672,7 +870,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"декабрь", "header":"декабрь",
@ -690,7 +894,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"СПОД", "header":"СПОД",
@ -708,7 +918,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Итог IV кв", "header":"Итог IV кв",
@ -726,9 +942,21 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
} }
] ]
} }

View File

@ -22,29 +22,29 @@
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"obekt_obekt_obekt_neobkhodimo_vybrat_iz_spiska" "accessorKey":"obekt_obekt_obekt_neobkhodimo_vybrat_iz_spiska"
}, },
"nomer_dogovora_nomer_dogovora_nomer_dogovora":{ "nomer_dogovora_nomer_dogovora_nomer_dogovora_field":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora" "accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora_field"
}, },
"srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod":{ "srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod" "accessorKey":"srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod"
}, },
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal":{ "planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal" "accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field"
}, },
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal":{ "planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal" "accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field"
}, },
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal":{ "planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal" "accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field"
}, },
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal":{ "planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal" "accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field"
}, },
"kommentariy_kommentariy_kommentariy_kommentariy":{ "kommentariy_kommentariy_kommentariy_kommentariy":{
"color_type":whiteColumn, "color_type":whiteColumn,
@ -142,7 +142,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Адрес охраняемого объекта *", "header":"Адрес охраняемого объекта *",
@ -163,7 +169,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
@ -171,7 +178,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Объект **", "header":"Объект **",
@ -192,7 +205,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
@ -200,33 +214,47 @@
} }
] ]
} }
]
},
{
"header":" ",
"columns":[
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora",
"columns":[
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora_nomer_dogovora",
"columns":[
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora",
"size":150,
"filterFn":"contains"
}
]
}
]
}
], ],
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#f5f5f5" "backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora",
"columns":[
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora_nomer_dogovora",
"columns":[
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora",
"columns":[
{
"header":"",
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora_field",
"size":150,
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
} }
} }
}, },
@ -249,7 +277,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
@ -257,69 +286,125 @@
} }
] ]
} }
]
},
{
"header":" ",
"columns":[
{
"header":"Планируемая сумма расходов на 2026 год",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god",
"columns":[
{
"header":"I квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal",
"columns":[
{
"header":"I квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal",
"size":150,
"filterFn":"contains"
}
]
},
{
"header":"II квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal",
"columns":[
{
"header":"II квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
"size":150,
"filterFn":"contains"
}
]
},
{
"header":"III квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
"size":150,
"filterFn":"contains"
}
]
},
{
"header":"IV квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
"size":150,
"filterFn":"contains"
}
]
}
]
}
], ],
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#f5f5f5" "backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Планируемая сумма расходов на 2026 год",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god",
"columns":[
{
"header":"I квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal",
"columns":[
{
"header":"I квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field",
"size":150,
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"II квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal",
"columns":[
{
"header":"II квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"III квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"IV квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
} }
} }
}, },
@ -345,7 +430,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Фактические расходы за I кв 2026 года", "header":"Фактические расходы за I кв 2026 года",
@ -366,13 +457,20 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"февраль", "header":"февраль",
@ -390,7 +488,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"март", "header":"март",
@ -408,7 +512,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Итог I кв", "header":"Итог I кв",
@ -426,9 +536,21 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Фактические расходы за II кв 2026 года", "header":"Фактические расходы за II кв 2026 года",
@ -449,13 +571,20 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"май", "header":"май",
@ -473,7 +602,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"июнь", "header":"июнь",
@ -491,7 +626,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Итог II кв", "header":"Итог II кв",
@ -509,9 +650,21 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Фактические расходы за III кв 2026 года", "header":"Фактические расходы за III кв 2026 года",
@ -532,13 +685,20 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"август", "header":"август",
@ -556,7 +716,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"сентябрь", "header":"сентябрь",
@ -574,7 +740,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Итог III кв", "header":"Итог III кв",
@ -592,9 +764,21 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Фактические расходы за IV кв 2026 года", "header":"Фактические расходы за IV кв 2026 года",
@ -615,13 +799,20 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#D8D8D8",
"color":"#000000"
} }
} }
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"ноябрь", "header":"ноябрь",
@ -639,7 +830,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"декабрь", "header":"декабрь",
@ -657,7 +854,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"СПОД", "header":"СПОД",
@ -675,7 +878,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}, },
{ {
"header":"Итог IV кв", "header":"Итог IV кв",
@ -693,9 +902,21 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
} }
] ]
} }

View File

@ -1,514 +0,0 @@
import {
greenColumn,
whiteColumn,
orangeColumn,
yellowColumn,
redColumn,
blueColumn,
} from "../columnColors";
export const config = {
config: {
colors: {
pp_pp_pp: {
color_type: whiteColumn,
accessorKey: "pp_pp_pp",
},
perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat:
{
color_type: whiteColumn,
accessorKey:
"perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat",
},
raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal: {
color_type: whiteColumn,
accessorKey: "raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal",
},
raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal: {
color_type: whiteColumn,
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal",
},
raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal: {
color_type: whiteColumn,
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal",
},
raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal: {
color_type: whiteColumn,
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal",
},
v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka:
{
color_type: whiteColumn,
accessorKey:
"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka",
},
v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka:
{
color_type: whiteColumn,
accessorKey:
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka",
},
v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka:
{
color_type: whiteColumn,
accessorKey:
"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka",
},
v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal:
{
color_type: whiteColumn,
accessorKey:
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
},
utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal: {
color_type: whiteColumn,
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal",
},
utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal: {
color_type: whiteColumn,
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal",
},
utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal: {
color_type: whiteColumn,
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal",
},
utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal: {
color_type: whiteColumn,
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal",
},
fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal: {
color_type: whiteColumn,
accessorKey: "fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal",
},
fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal: {
color_type: whiteColumn,
accessorKey: "fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal",
},
fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal: {
color_type: whiteColumn,
accessorKey:
"fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal",
},
fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal: {
color_type: whiteColumn,
accessorKey: "fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal",
},
skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal: {
color_type: whiteColumn,
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
},
skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal: {
color_type: whiteColumn,
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
},
},
columns: [
{
header: " ",
columns: [
{
header: "№ п/п",
accessorKey: "pp",
columns: [
{
header: "№ п/п",
accessorKey: "pp_pp",
columns: [
{
header: "№ п/п",
accessorKey: "pp_pp_pp",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
{
header: " ",
columns: [
{
header: "Перечень расходов и затрат",
accessorKey: "perechen_raskhodov_i_zatrat",
columns: [
{
header: "Перечень расходов и затрат",
accessorKey:
"perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat",
columns: [
{
header: "Перечень расходов и затрат",
accessorKey:
"perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
{
header: " ",
columns: [
{
header: "Расходы, планируемые РФ на 2026 год",
accessorKey: "raskhody_planiruemye_rf_na_2026_god",
columns: [
{
header: "I квартал",
accessorKey: "raskhody_planiruemye_rf_na_2026_god_i_kvartal",
columns: [
{
header: "I квартал",
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "II квартал",
accessorKey: "raskhody_planiruemye_rf_na_2026_god_ii_kvartal",
columns: [
{
header: "II квартал",
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "III квартал",
accessorKey: "raskhody_planiruemye_rf_na_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "IV квартал",
accessorKey: "raskhody_planiruemye_rf_na_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
{
header: "в тыс. рублей",
accessorKey: "v_tys_rubley",
columns: [
{
header: "Расходы, планируемые РФ на 2026 год",
accessorKey: "v_tys_rubley_raskhody_planiruemye_rf_na_2026_god",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka",
size: 150,
filterFn: "contains",
},
],
},
],
},
{
header: "Утвержденные базовые расходы на 2026 год",
accessorKey:
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka",
size: 150,
filterFn: "contains",
},
],
},
],
},
{
header: "Фактические расходы за 2026 год",
accessorKey: "v_tys_rubley_fakticheskie_raskhody_za_2026_god",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka",
size: 150,
filterFn: "contains",
},
],
},
],
},
{
header: "Скорректированная смета расходов на 2026 год",
accessorKey:
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god",
columns: [
{
header: "IV квартал",
accessorKey:
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
},
{
header: " ",
columns: [
{
header: "Утвержденные базовые расходы на 2026 год",
accessorKey: "utverzhdennye_bazovye_raskhody_na_2026_god",
columns: [
{
header: "I квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal",
columns: [
{
header: "I квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "II квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal",
columns: [
{
header: "II квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "III квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "IV квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
{
header: " ",
columns: [
{
header: "Фактические расходы за 2026 год",
accessorKey: "fakticheskie_raskhody_za_2026_god",
columns: [
{
header: "I квартал",
accessorKey: "fakticheskie_raskhody_za_2026_god_i_kvartal",
columns: [
{
header: "I квартал",
accessorKey:
"fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "II квартал",
accessorKey: "fakticheskie_raskhody_za_2026_god_ii_kvartal",
columns: [
{
header: "II квартал",
accessorKey:
"fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "III квартал",
accessorKey: "fakticheskie_raskhody_za_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "IV квартал",
accessorKey: "fakticheskie_raskhody_za_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
{
header: " ",
columns: [
{
header: "Скорректированная смета расходов на 2026 год",
accessorKey: "skorrektirovannaya_smeta_raskhodov_na_2026_god",
columns: [
{
header: "II квартал",
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal",
columns: [
{
header: "II квартал",
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "III квартал",
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
],
},
};

View File

@ -10,9 +10,9 @@
export const config = { export const config = {
"config":{ "config":{
"colors":{ "colors":{
"eslilevsimvb1713b17eslid170stsepitc17_d17c17":{ "field_eslilevsimvb1713b17eslid170stsepitc17_d17c17_field":{
"color_type":whiteColumn, "color_type":whiteColumn,
"accessorKey":"eslilevsimvb1713b17eslid170stsepitc17_d17c17" "accessorKey":"field_eslilevsimvb1713b17eslid170stsepitc17_d17c17_field"
}, },
"kod_razdela_kod_razdela_kod_razdela":{ "kod_razdela_kod_razdela_kod_razdela":{
"color_type":whiteColumn, "color_type":whiteColumn,
@ -31,112 +31,92 @@
"accessorKey":"naimenovanie_oborudovaniya_naimenovanie_oborudovaniya_naimenovanie_oborudovaniya" "accessorKey":"naimenovanie_oborudovaniya_naimenovanie_oborudovaniya_naimenovanie_oborudovaniya"
}, },
"60401_60404_vkhodyaschiy_ostatok_kol_vo_sht":{ "60401_60404_vkhodyaschiy_ostatok_kol_vo_sht":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60401_60404_vkhodyaschiy_ostatok_kol_vo_sht" "accessorKey":"60401_60404_vkhodyaschiy_ostatok_kol_vo_sht"
}, },
"60401_60404_vkhodyaschiy_ostatok_summa_tys_rub":{ "60401_60404_vkhodyaschiy_ostatok_summa_tys_rub":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60401_60404_vkhodyaschiy_ostatok_summa_tys_rub" "accessorKey":"60401_60404_vkhodyaschiy_ostatok_summa_tys_rub"
}, },
"60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht":{ "60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht" "accessorKey":"60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht"
}, },
"60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub":{ "60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub" "accessorKey":"60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub"
}, },
"60401_60404_vybytie_v_otchetnom_mesyatse_kol_vo_sht":{ "60401_60404_vybytie_v_otchetnom_mesyatse_kol_vo_sht":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60401_60404_vybytie_v_otchetnom_mesyatse_kol_vo_sht" "accessorKey":"60401_60404_vybytie_v_otchetnom_mesyatse_kol_vo_sht"
}, },
"60401_60404_vybytie_v_otchetnom_mesyatse_summa_tys_rub":{ "60401_60404_vybytie_v_otchetnom_mesyatse_summa_tys_rub":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60401_60404_vybytie_v_otchetnom_mesyatse_summa_tys_rub" "accessorKey":"60401_60404_vybytie_v_otchetnom_mesyatse_summa_tys_rub"
}, },
"60415_vkhodyaschiy_ostatok_kol_vo_sht":{ "60415_vkhodyaschiy_ostatok_kol_vo_sht":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60415_vkhodyaschiy_ostatok_kol_vo_sht" "accessorKey":"60415_vkhodyaschiy_ostatok_kol_vo_sht"
}, },
"60415_vkhodyaschiy_ostatok_summa_tys_rub":{ "60415_vkhodyaschiy_ostatok_summa_tys_rub":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60415_vkhodyaschiy_ostatok_summa_tys_rub" "accessorKey":"60415_vkhodyaschiy_ostatok_summa_tys_rub"
}, },
"60415_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht":{ "60415_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60415_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht" "accessorKey":"60415_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht"
}, },
"60415_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub":{ "60415_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60415_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub" "accessorKey":"60415_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub"
}, },
"60415_pereneseno_na_bschet_604_kol_vo_sht":{ "60415_pereneseno_na_bschet_604_kol_vo_sht":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60415_pereneseno_na_bschet_604_kol_vo_sht" "accessorKey":"60415_pereneseno_na_bschet_604_kol_vo_sht"
}, },
"60415_pereneseno_na_bschet_604_summa_tys_rub":{ "60415_pereneseno_na_bschet_604_summa_tys_rub":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"60415_pereneseno_na_bschet_604_summa_tys_rub" "accessorKey":"60415_pereneseno_na_bschet_604_summa_tys_rub"
}, },
"itogo_fakticheski_priobreteno_v_otchetnom_mesyatse_tys_rub":{ "itogo_fakticheski_priobreteno_v_otchetnom_mesyatse_tys_rub":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"itogo_fakticheski_priobreteno_v_otchetnom_mesyatse_tys_rub" "accessorKey":"itogo_fakticheski_priobreteno_v_otchetnom_mesyatse_tys_rub"
}, },
"itogo_sredstva_tolko_po_balansuiz_go_so_znakom_tys_rub":{ "itogo_sredstva_tolko_po_balansuiz_go_so_znakom_tys_rub":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"itogo_sredstva_tolko_po_balansuiz_go_so_znakom_tys_rub" "accessorKey":"itogo_sredstva_tolko_po_balansuiz_go_so_znakom_tys_rub"
}, },
"itogo_vybytie_v_otchetnom_mesyatse_tys_rub":{ "itogo_vybytie_v_otchetnom_mesyatse_tys_rub":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"itogo_vybytie_v_otchetnom_mesyatse_tys_rub" "accessorKey":"itogo_vybytie_v_otchetnom_mesyatse_tys_rub"
}, },
"itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_kol_vo_sht":{ "itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_kol_vo_sht":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_kol_vo_sht" "accessorKey":"itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_kol_vo_sht"
}, },
"itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_summa_tys_rub":{ "itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_summa_tys_rub":{
"color_type":whiteColumn, "color_type":orangeColumn,
"accessorKey":"itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_summa_tys_rub" "accessorKey":"itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_summa_tys_rub"
} }
}, },
"columns":[ "columns":[
{ {
"header":" ", "header":"",
"accessorKey":"field",
"columns":[ "columns":[
{ {
"header":" ", "header":"=ЕСЛИ(ЛЕВСИМВ(B17;1)="3";B17;ЕСЛИ(D17<>0;СЦЕПИТЬ(C17;"_";D17);C17))",
"accessorKey":"field_eslilevsimvb1713b17eslid170stsepitc17_d17c17",
"columns":[ "columns":[
{ {
"header":"=ЕСЛИ(ЛЕВСИМВ(B17;1)="3";B17;ЕСЛИ(D17<>0;СЦЕПИТЬ(C17;"_";D17);C17))", "header":"",
"accessorKey":"eslilevsimvb1713b17eslid170stsepitc17_d17c17", "accessorKey":"field_eslilevsimvb1713b17eslid170stsepitc17_d17c17_field",
"exampleValue":"3.00.",
"size":150, "size":150,
"filterFn":"contains", "filterFn":"contains"
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
}
}
} }
], ]
"exampleValue":"3.00.",
"size":150,
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#f5f5f5"
}
}
} }
], ]
"exampleValue":"3.00.",
"size":150,
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#f5f5f5"
}
}
}, },
{ {
"header":"Код раздела", "header":"Код раздела",
@ -149,13 +129,18 @@
{ {
"header":"Код раздела", "header":"Код раздела",
"accessorKey":"kod_razdela_kod_razdela_kod_razdela", "accessorKey":"kod_razdela_kod_razdela_kod_razdela",
"exampleValue":"3.00.",
"size":150, "size":150,
"filterFn":"contains" "filterFn":"contains"
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"ID статьи", "header":"ID статьи",
@ -173,7 +158,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"ID группы номенклатуры", "header":"ID группы номенклатуры",
@ -191,7 +182,13 @@
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"Наименование оборудования", "header":"Наименование оборудования",
@ -204,13 +201,18 @@
{ {
"header":"Наименование оборудования", "header":"Наименование оборудования",
"accessorKey":"naimenovanie_oborudovaniya_naimenovanie_oborudovaniya_naimenovanie_oborudovaniya", "accessorKey":"naimenovanie_oborudovaniya_naimenovanie_oborudovaniya_naimenovanie_oborudovaniya",
"exampleValue":"Затраты капитального характера (капитальные вложения) ",
"size":150, "size":150,
"filterFn":"contains" "filterFn":"contains"
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"60401, 60404", "header":"60401, 60404",
@ -227,7 +229,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
}, },
@ -238,11 +241,18 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"фактически приобретено в отчетном месяце", "header":"фактически приобретено в отчетном месяце",
@ -255,7 +265,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
}, },
@ -266,11 +277,18 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"Выбытие в отчетном месяце", "header":"Выбытие в отчетном месяце",
@ -283,7 +301,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
}, },
@ -294,13 +313,26 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"60415*", "header":"60415*",
@ -317,7 +349,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
}, },
@ -328,11 +361,18 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"фактически приобретено в отчетном месяце", "header":"фактически приобретено в отчетном месяце",
@ -345,7 +385,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
}, },
@ -356,11 +397,18 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"Перенесено на б/счет 604", "header":"Перенесено на б/счет 604",
@ -373,7 +421,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
}, },
@ -384,13 +433,26 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"ИТОГО", "header":"ИТОГО",
@ -407,11 +469,18 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"средства только по балансу(из ГО) со знаком " - "", "header":"средства только по балансу(из ГО) со знаком " - "",
@ -424,11 +493,18 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FFFFFF",
"color":"#000000"
} }
} }
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF",
"color":"#000000"
}
}
}, },
{ {
"header":"Выбытие в отчетном месяце", "header":"Выбытие в отчетном месяце",
@ -441,13 +517,26 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}, },
{ {
"header":"ИТОГО основные средства на балансе на отчетную дату", "header":"ИТОГО основные средства на балансе на отчетную дату",
@ -464,7 +553,8 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
}, },
@ -475,13 +565,20 @@
"filterFn":"contains", "filterFn":"contains",
"muiTableHeadCellProps":{ "muiTableHeadCellProps":{
"sx":{ "sx":{
"backgroundColor":"#FFFFFF" "backgroundColor":"#FABF8F",
"color":"#000000"
} }
} }
} }
] ]
} }
] ],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
} }
] ]
} }

View File

@ -0,0 +1,565 @@
import {
greenColumn,
whiteColumn,
orangeColumn,
yellowColumn,
redColumn,
blueColumn,
} from '../columnColors';
export const config = {
"config":{
"colors":{
"field_pp_pp_pp":{
"color_type":whiteColumn,
"accessorKey":"field_pp_pp_pp"
},
"field_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat":{
"color_type":whiteColumn,
"accessorKey":"field_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat"
},
"field_raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal"
},
"field_raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal"
},
"field_raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal"
},
"field_raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal"
},
"field_utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal"
},
"field_utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal"
},
"field_utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal"
},
"field_utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal"
},
"field_fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal"
},
"field_fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal"
},
"field_fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal"
},
"field_fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal"
},
"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal"
},
"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal"
},
"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka":{
"color_type":whiteColumn,
"accessorKey":"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka"
},
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka":{
"color_type":whiteColumn,
"accessorKey":"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka"
},
"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka":{
"color_type":whiteColumn,
"accessorKey":"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka"
},
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal":{
"color_type":whiteColumn,
"accessorKey":"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal"
}
},
"columns":[
{
"header":"",
"accessorKey":"field",
"columns":[
{
"header":"№ п/п",
"accessorKey":"field_pp",
"columns":[
{
"header":"№ п/п",
"accessorKey":"field_pp_pp",
"columns":[
{
"header":"№ п/п",
"accessorKey":"field_pp_pp_pp",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"Перечень расходов и затрат",
"accessorKey":"field_perechen_raskhodov_i_zatrat",
"columns":[
{
"header":"Перечень расходов и затрат",
"accessorKey":"field_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat",
"columns":[
{
"header":"Перечень расходов и затрат",
"accessorKey":"field_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"Расходы, планируемые РФ на 2026 год",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_i_kvartal",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"II квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_ii_kvartal",
"columns":[
{
"header":"II квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"III квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"IV квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"Утвержденные базовые расходы на 2026 год",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"II квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal",
"columns":[
{
"header":"II квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"III квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"IV квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"Фактические расходы за 2026 год",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_i_kvartal",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"II квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_ii_kvartal",
"columns":[
{
"header":"II квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"III квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"IV квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"Скорректированная смета расходов на 2026 год",
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god",
"columns":[
{
"header":"II квартал",
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal",
"columns":[
{
"header":"II квартал",
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"III квартал",
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF",
"color":"#000000"
}
}
},
{
"header":"в тыс. рублей",
"accessorKey":"v_tys_rubley",
"columns":[
{
"header":"Расходы, планируемые РФ на 2026 год",
"accessorKey":"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
]
},
{
"header":"Утвержденные базовые расходы на 2026 год",
"accessorKey":"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
]
},
{
"header":"Фактические расходы за 2026 год",
"accessorKey":"v_tys_rubley_fakticheskie_raskhody_za_2026_god",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
]
},
{
"header":"Скорректированная смета расходов на 2026 год",
"accessorKey":"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god",
"columns":[
{
"header":"IV квартал",
"accessorKey":"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF",
"color":"#000000"
}
}
}
]
}
}

View File

@ -4,6 +4,7 @@ export const greenColumn = {
ITEM: "#EAF0DD", ITEM: "#EAF0DD",
SUB_ITEM: "#FFFFFF", SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF", INPUT: "#FFFFFF",
COLOR: "#000000",
}; };
export const orangeColumn = { export const orangeColumn = {
@ -12,14 +13,16 @@ export const orangeColumn = {
ITEM: "#FAEBDC", ITEM: "#FAEBDC",
SUB_ITEM: "#FFFFFF", SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF", INPUT: "#FFFFFF",
COLOR: "#000000",
}; };
export const whiteColumn = { export const whiteColumn = {
ROOT: "#FFFFFF", ROOT: "#FFFFFF",
GROUP: "#FFFFFF", GROUP: "#FFFFFF",
ITEM: "#FFFFFF", ITEM: "#ffffff",
SUB_ITEM: "#FFFFFF", SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF", INPUT: "#FFFFFF",
COLOR: "#000000",
}; };
export const redColumn = { export const redColumn = {
@ -28,6 +31,7 @@ export const redColumn = {
ITEM: "#E5B7B6", // самый светлый ITEM: "#E5B7B6", // самый светлый
SUB_ITEM: "#FFFFFF", SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF", INPUT: "#FFFFFF",
COLOR: "#ffffff",
}; };
export const blueColumn = { export const blueColumn = {
@ -36,6 +40,7 @@ export const blueColumn = {
ITEM: "#C5D8F0", // самый светлый ITEM: "#C5D8F0", // самый светлый
SUB_ITEM: "#FFFFFF", SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF", INPUT: "#FFFFFF",
COLOR: "#000000",
}; };
export const yellowColumn = { export const yellowColumn = {
@ -44,4 +49,5 @@ export const yellowColumn = {
ITEM: "#FFFFCC", ITEM: "#FFFFCC",
SUB_ITEM: "#FFFFFF", SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF", INPUT: "#FFFFFF",
COLOR: "#000000",
}; };

View File

@ -53,4 +53,3 @@ export const getTablePaperStyles = () => ({
}, },
}); });
export const rowHeight = 32;

View File

@ -1,7 +1,8 @@
import { useState, useMemo, useEffect } from "react"; import { useState, useMemo, useEffect } from "react";
import { loadFromStorage, saveToStorage } from "../utils/localStorageUtils"; import { loadFromStorage, saveToStorage } from "../utils/localStorageUtils";
import { rowBaseOffset } from "../constants/tableConfig";
export const useTableScale = (tableRef, isLoading) => { export const useTableScale = () => {
const [sizeMult, setSizeMult] = useState(() => const [sizeMult, setSizeMult] = useState(() =>
loadFromStorage("sizeMult", 1.5), loadFromStorage("sizeMult", 1.5),
); );
@ -10,7 +11,6 @@ export const useTableScale = (tableRef, isLoading) => {
saveToStorage("sizeMult", sizeMult); saveToStorage("sizeMult", sizeMult);
}, [sizeMult]); }, [sizeMult]);
const tableScaleStyle = useMemo( const tableScaleStyle = useMemo(
() => ({ () => ({
transform: `scale(${sizeMult})`, transform: `scale(${sizeMult})`,

View File

@ -2,11 +2,7 @@ import React, { useEffect, useRef, useState } from 'react';
import { createPortal } from 'react-dom'; import { createPortal } from 'react-dom';
import { columns as mockColumns } from '../../mocks/mockTable'; import { columns as mockColumns } from '../../mocks/mockTable';
import { config } from './constants/FORM_2/AHR'; import { config } from './constants/FORM_2/AHR';
// import { columns as mockColumns } from './constants/headers/AHR';
// import { columns as mockColumns } from './constants/headers/KV';
// import { columnColors } from './constants/columnColors';
// Create a proper React component for the edit functionality
function EditCellPortal({ cell, table, EditCell, onChange }) { function EditCellPortal({ cell, table, EditCell, onChange }) {
const ref = useRef(null); const ref = useRef(null);
const [refTbody, setRefTbody] = useState(false); const [refTbody, setRefTbody] = useState(false);
@ -52,22 +48,6 @@ export const getTableColumns = ({ Cell, EditCell, columnsConfig }) => {
const columnColors = { ...columnsConfig.colors }; const columnColors = { ...columnsConfig.colors };
console.log(columnColors) console.log(columnColors)
const columns = [...columnsConfig.columns]; const columns = [...columnsConfig.columns];
// for (const col of columns) {
// const childTheme = col.columns[0].columns[0].accessorKey;
// for (const c of col.columns) {
// c['muiTableHeadCellProps'] = { sx: { backgroundColor: columnColors[childTheme].color_type.ROOT } }
// console.log(c);
// for (const cc of c.columns) {
// cc['muiTableHeadCellProps'] = { sx: { backgroundColor: columnColors[childTheme].color_type.ROOT } }
// }
// }
// // col['muiTableHeadCellProps'] = {sx:{backgroundColor: "#B0A2C4"}}
// }
// console.log(JSON.stringify(columns))
// console.log(columns)
const processColumns = (columns, EditCell, Cell) => { const processColumns = (columns, EditCell, Cell) => {
columns.forEach((col) => { columns.forEach((col) => {
@ -78,10 +58,12 @@ export const getTableColumns = ({ Cell, EditCell, columnsConfig }) => {
globalFilter={ globalFilter={
table.getState().globalFilter || column.getFilterValue() table.getState().globalFilter || column.getFilterValue()
} }
color={columnColors[column.id] ? columnColors[column.id].color_type[row.original.row_type] : 'black'} backgroundColor={columnColors[column.id].color_type[row.original.row_type]}
color={columnColors[column.id].color_type['COLOR']}
/> />
</> </>
); );
col.Edit = ({ cell, table, row, column }) => ( col.Edit = ({ cell, table, row, column }) => (
<EditCellPortal <EditCellPortal

View File

@ -1,22 +1,7 @@
import { Box, Divider, styled, Stack } from '@mui/material'; import { Box, Divider, Stack } from '@mui/material';
import { UnLockedSvg } from '../common/icons/icons'; import { UnLockedSvg } from '../common/icons/icons';
import { ROLES_ID_RUSSIAN_NAME, EDIT_ACCESS_RUSSIAN } from '../../constants'; import { ROLES_ID_RUSSIAN_NAME, EDIT_ACCESS_RUSSIAN } from '../../constants';
const AccessItem = styled(Box)({
display: 'flex',
gap: '.5rem',
'& *': {
fontSize: '0.88rem !important',
color: '#4a5565',
},
});
const StageInfoContainer = styled(Box)({
display: 'flex',
flexDirection: 'row',
gap: '.5rem',
});
export const StageInfoForTooltip = ({ stageData = [] }) => { export const StageInfoForTooltip = ({ stageData = [] }) => {
const accessData = stageData[0] || []; const accessData = stageData[0] || [];
const stagesData = stageData[1] || []; const stagesData = stageData[1] || [];
@ -91,10 +76,23 @@ export const StageInfoForTooltip = ({ stageData = [] }) => {
{stagesData.length > 0 && ( {stagesData.length > 0 && (
<> <>
<Divider sx={{ marginTop: '0 !important' }} /> <Divider sx={{ marginTop: '0 !important' }} />
<Box display="flex" flexDirection="column" gap="0.375rem"> <Box sx={{ display: 'flex', flexDirection: 'column', gap: '0.375rem' }}>
<Stack spacing={0.75} flexDirection={'row'} flexWrap="wrap" gap={1}> <Stack
sx={{
flexDirection: 'row',
flexWrap: 'wrap',
gap: 1,
}}
>
{stagesInfo.map((stage, index) => ( {stagesInfo.map((stage, index) => (
<StageInfoContainer key={stage.id || index}> <Box
key={stage.id || index}
sx={{
display: 'flex',
flexDirection: 'row',
gap: '.5rem',
}}
>
<Box <Box
sx={{ sx={{
fontWeight: '400', fontWeight: '400',
@ -114,7 +112,7 @@ export const StageInfoForTooltip = ({ stageData = [] }) => {
> >
{stage.period} {stage.period}
</Box> </Box>
</StageInfoContainer> </Box>
))} ))}
</Stack> </Stack>
</Box> </Box>
@ -141,16 +139,28 @@ export const StageInfoForTooltip = ({ stageData = [] }) => {
</Box> </Box>
<Box <Box
display="flex" sx={{
flexDirection="column" display: 'flex',
gap="0.3rem" flexDirection: 'column',
justifyContent="start" gap: '0.3rem',
justifyContent: 'start',
}}
> >
{accessInfo.map((access, index) => ( {accessInfo.map((access, index) => (
<AccessItem key={index}> <Box
key={index}
sx={{
display: 'flex',
gap: '.5rem',
'& *': {
fontSize: '0.88rem !important',
color: '#4a5565',
},
}}
>
<Box>{access.accessLevel}&nbsp;&nbsp;</Box> <Box>{access.accessLevel}&nbsp;&nbsp;</Box>
<Box color="black">{access.roleName}</Box> <Box sx={{ color: 'black' }}>{access.roleName}</Box>
</AccessItem> </Box>
))} ))}
</Box> </Box>
</Box> </Box>

View File

@ -1,5 +1,4 @@
import { Box, Button, Stack } from '@mui/material'; import { Box, Button, Stack } from '@mui/material';
import { styled } from '@mui/material';
import { ExitSvg, ExportSvg } from '../icons/icons'; import { ExitSvg, ExportSvg } from '../icons/icons';
import { import {
DangerOutlinedButton, DangerOutlinedButton,
@ -32,7 +31,7 @@ export const ExportButton = (props) => {
export const ExportWithTextButton = (props) => { export const ExportWithTextButton = (props) => {
return ( return (
<PrimaryOutlinedButton {...props}> <PrimaryOutlinedButton {...props}>
<Stack direction={'row'} alignItems={'center'} spacing={'.375rem'}> <Stack sx={{ flexDirection: 'row', alignItems: 'center', gap: '.375rem' }}>
<ExportSvg size="1rem" color="#45881c" strokeWidth={'.33px'} /> <ExportSvg size="1rem" color="#45881c" strokeWidth={'.33px'} />
<span style={{ fontSize: '.88rem' }}> <span style={{ fontSize: '.88rem' }}>
{props?.text || 'Экспорт в Excel'} {props?.text || 'Экспорт в Excel'}
@ -45,7 +44,7 @@ export const ExportWithTextButton = (props) => {
export const ExportExitButton = (props) => { export const ExportExitButton = (props) => {
return ( return (
<DangerOutlinedButton {...props}> <DangerOutlinedButton {...props}>
<Stack direction={'row'} alignItems={'center'} spacing={'.375rem'}> <Stack sx={{ flexDirection: 'row', alignItems: 'center', gap: '.375rem' }}>
<ExitSvg size="1rem" /> <ExitSvg size="1rem" />
<span>Выйти из режима экспорта</span> <span>Выйти из режима экспорта</span>
</Stack> </Stack>
@ -56,7 +55,7 @@ export const ExportExitButton = (props) => {
export const ExportDefaultButton = (props) => { export const ExportDefaultButton = (props) => {
return ( return (
<DefaultOutlinedButton {...props}> <DefaultOutlinedButton {...props}>
<Stack direction={'row'} alignItems={'center'} spacing={'.375rem'}> <Stack sx={{ flexDirection: 'row', alignItems: 'center', gap: '.375rem' }}>
<ExportSvg color="#4a5565" strokeWidth={'.33'} size="1rem" /> <ExportSvg color="#4a5565" strokeWidth={'.33'} size="1rem" />
<span>{props?.text || 'Экспорт в Excel'}</span> <span>{props?.text || 'Экспорт в Excel'}</span>
</Stack> </Stack>

View File

@ -1,139 +1,8 @@
import { useState, useRef, useEffect } from 'react'; import { useState, useRef, useEffect } from 'react';
import styled from '@emotion/styled';
import { Box, Typography, IconButton, OutlinedInput } from '@mui/material'; import { Box, Typography, IconButton, OutlinedInput } from '@mui/material';
import CloseIcon from '@mui/icons-material/Close'; import CloseIcon from '@mui/icons-material/Close';
import { PrimaryButton } from '../common/Buttons/Buttons'; import { PrimaryButton } from '../common/Buttons/Buttons';
const Container = styled(Box)`
border: 1px dashed #e0dfe0;
border-radius: 0.75rem;
padding: 1rem;
min-height: 6rem;
max-height: max-content;
background: #fafafa;
flex: 1;
display: flex;
flex-direction: column;
`;
const InputWrapper = styled(Box)`
border: 1px solid #e0dfe0;
border-radius: 0.5rem;
padding: 0.38rem 0.75rem;
width: 100%;
position: relative;
border: 1px solid
${({ _theme, focused }) => (focused ? '#a6ce39' : '#e0dfe0')};
box-shadow: ${({ _theme, focused }) =>
focused ? '0 0 0 2px rgba(166, 206, 57, 0.15)' : ''};
border: 1px solid #e0dfe0;
border-radius: 0.5rem;
padding: 0.38rem 0.75rem;
min-height: 3.25rem;
height: max-content;
cursor: text;
background-color: white;
transition: all 0.2s ease;
&:hover {
border-color: ${({ _theme, focused }) => (focused ? '#a6ce39' : '#e0dfe0')};
}
`;
const TagsContainer = styled(Box)`
display: flex;
flex-wrap: wrap;
gap: 0.25rem;
row-gap: 0.25rem;
padding: 0;
min-height: 3.25rem;
`;
const StyledChip = styled(Box)`
display: flex;
gap: 0.375rem;
border: 1px solid #e0dfe0;
border-radius: 624.94rem;
padding: 0.12rem 0.75rem;
height: 1.25rem;
&:hover {
transition: all 0.2s ease;
transform: scale(1.05);
}
`;
const CloseButton = styled.button`
background: none;
border: none;
padding: 0;
width: 0.875rem;
height: max-content;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
svg {
width: 0.875rem;
height: 0.875rem;
}
`;
const TagText = styled(Typography)`
font-weight: 400;
font-size: 0.75rem;
line-height: 133%;
color: #323031;
padding: 0;
opacity: 0.8;
`;
const HiddenInput = styled(OutlinedInput)`
height: 1.25rem;
& fieldset {
border: none !important;
}
& .MuiOutlinedInput-input {
padding: 0;
flex: 1;
font-size: 0.88rem;
width: 15rem !important;
f &:focus {
outline: none;
}
}
`;
const ClearAllButton = styled(IconButton)`
position: absolute;
top: 0.5rem;
right: 0.5rem;
width: 1.5rem;
height: 1.5rem;
padding: 0.25rem;
background-color: #fff;
opacity: ${({ show }) => (show ? 1 : 0)};
visibility: ${({ show }) => (show ? 'visible' : 'hidden')};
transition: all 0.2s ease;
z-index: 1;
opacity: 0.7;
&:hover {
opacity: 1;
}
svg {
width: 0.875rem;
height: 0.875rem;
color: #666;
}
`;
const InlineTagInput = ({ onSaveTags }) => { const InlineTagInput = ({ onSaveTags }) => {
const [tags, setTags] = useState([]); const [tags, setTags] = useState([]);
const [inputValue, setInputValue] = useState(''); const [inputValue, setInputValue] = useState('');
@ -218,18 +87,96 @@ const InlineTagInput = ({ onSaveTags }) => {
const shouldShowClearButton = tags.length > 0 || inputValue.length > 0; const shouldShowClearButton = tags.length > 0 || inputValue.length > 0;
return ( return (
<Container> <Box
<Box display="flex" gap=".75rem" alignItems="flex-start"> sx={{
<InputWrapper border: '1px dashed #e0dfe0',
borderRadius: '0.75rem',
padding: '1rem',
minHeight: '6rem',
maxHeight: 'max-content',
background: '#fafafa',
flex: 1,
display: 'flex',
flexDirection: 'column',
}}
>
<Box sx={{ display: 'flex', gap: '.75rem', alignItems: 'flex-start' }}>
<Box
ref={wrapperRef} ref={wrapperRef}
focused={isFocused.toString()} sx={{
border: '1px solid #e0dfe0',
borderRadius: '0.5rem',
padding: '0.38rem 0.75rem',
width: '100%',
position: 'relative',
borderColor: isFocused ? '#a6ce39' : '#e0dfe0',
boxShadow: isFocused ? '0 0 0 2px rgba(166, 206, 57, 0.15)' : '',
minHeight: '3.25rem',
height: 'max-content',
cursor: 'text',
backgroundColor: 'white',
transition: 'all 0.2s ease',
'&:hover': {
borderColor: isFocused ? '#a6ce39' : '#e0dfe0',
},
}}
onClick={handleWrapperClick} onClick={handleWrapperClick}
> >
<TagsContainer> <Box
sx={{
display: 'flex',
flexWrap: 'wrap',
gap: '0.25rem',
rowGap: '0.25rem',
padding: 0,
minHeight: '3.25rem',
}}
>
{tags.map((tag, index) => ( {tags.map((tag, index) => (
<StyledChip key={index}> <Box
<TagText>{tag}</TagText> key={index}
<CloseButton sx={{
display: 'flex',
gap: '0.375rem',
border: '1px solid #e0dfe0',
borderRadius: '624.94rem',
padding: '0.12rem 0.75rem',
height: '1.25rem',
'&:hover': {
transition: 'all 0.2s ease',
transform: 'scale(1.05)',
},
}}
>
<Typography
sx={{
fontWeight: 400,
fontSize: '0.75rem',
lineHeight: '133%',
color: '#323031',
padding: 0,
opacity: 0.8,
}}
>
{tag}
</Typography>
<Box
component="button"
sx={{
background: 'none',
border: 'none',
padding: 0,
width: '0.875rem',
height: 'max-content',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
cursor: 'pointer',
'& svg': {
width: '0.875rem',
height: '0.875rem',
},
}}
onClick={(e) => { onClick={(e) => {
e.stopPropagation(); e.stopPropagation();
removeTag(index); removeTag(index);
@ -237,11 +184,11 @@ const InlineTagInput = ({ onSaveTags }) => {
aria-label={`Удалить ${tag}`} aria-label={`Удалить ${tag}`}
> >
<CloseIcon /> <CloseIcon />
</CloseButton> </Box>
</StyledChip> </Box>
))} ))}
<HiddenInput <OutlinedInput
inputRef={inputRef} inputRef={inputRef}
value={inputValue} value={inputValue}
onChange={handleInputChange} onChange={handleInputChange}
@ -251,18 +198,54 @@ const InlineTagInput = ({ onSaveTags }) => {
onBlur={handleBlur} onBlur={handleBlur}
placeholder={tags.length === 0 ? 'Укажите пользователя(ей)' : ''} placeholder={tags.length === 0 ? 'Укажите пользователя(ей)' : ''}
autoComplete="off" autoComplete="off"
sx={{
height: '1.25rem',
'& fieldset': {
border: 'none !important',
},
'& .MuiOutlinedInput-input': {
padding: 0,
flex: 1,
fontSize: '0.88rem',
width: '15rem !important',
'&:focus': {
outline: 'none',
},
},
}}
/> />
</TagsContainer> </Box>
<ClearAllButton <IconButton
show={shouldShowClearButton.toString()} sx={{
position: 'absolute',
top: '0.5rem',
right: '0.5rem',
width: '1.5rem',
height: '1.5rem',
padding: '0.25rem',
backgroundColor: '#fff',
opacity: shouldShowClearButton ? 1 : 0,
visibility: shouldShowClearButton ? 'visible' : 'hidden',
transition: 'all 0.2s ease',
zIndex: 1,
opacity: shouldShowClearButton ? 0.7 : 0,
'&:hover': {
opacity: 1,
},
'& svg': {
width: '0.875rem',
height: '0.875rem',
color: '#666',
},
}}
onClick={(e) => { onClick={(e) => {
e.stopPropagation(); e.stopPropagation();
handleClearAll(); handleClearAll();
}} }}
> >
<CloseIcon /> <CloseIcon />
</ClearAllButton> </IconButton>
</InputWrapper> </Box>
{onSaveTags && ( {onSaveTags && (
<PrimaryButton <PrimaryButton
onClick={handleSaveTags} onClick={handleSaveTags}
@ -275,17 +258,17 @@ const InlineTagInput = ({ onSaveTags }) => {
<Typography <Typography
variant="caption" variant="caption"
color="#323031"
sx={{ sx={{
margin: 0, margin: 0,
padding: 0, padding: 0,
fontSize: '0.75rem', fontSize: '0.75rem',
opacity: '0.8', color: '#323031',
opacity: 0.8,
}} }}
> >
Введите логины через запятую и нажмите + или Enter Введите логины через запятую и нажмите + или Enter
</Typography> </Typography>
</Container> </Box>
); );
}; };

View File

@ -2,6 +2,7 @@ import React from 'react';
import { Box, Stack, Typography } from '@mui/material'; import { Box, Stack, Typography } from '@mui/material';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import TableCard from '../TableCard/TableCard'; import TableCard from '../TableCard/TableCard';
import { toast } from 'react-toastify';
const TablesList = ({ const TablesList = ({
filteredTables, filteredTables,
@ -16,14 +17,16 @@ const TablesList = ({
navigate(path); navigate(path);
}; };
const renderTableCard = (table) => { const renderTableCard = (table, formInfo) => {
//пока нет ручки //пока нет ручки
formInfo = {form_type_code: 'FORM_2', id: 4} if (!formInfo){
return;
}
const path = `${basePath}/form/${formInfo.id}/form-type/${formInfo.form_type_code}/${table.sheet}`; const path = `${basePath}/form/${formInfo.id}/form-type/${formInfo.form_type_code}/${table.sheet}`;
return ( return (
<TableCard <TableCard
key={table} key={table.sheet}
onNavigate={() => handleNavigate(path)} onNavigate={() => handleNavigate(path)}
table={table} table={table}
/> />
@ -54,7 +57,7 @@ const TablesList = ({
)} )}
{filteredTables.map( {filteredTables.map(
(table) => renderTableCard(table), (table) => renderTableCard(table, formInfo),
)} )}
</Box> </Box>
); );

View File

@ -217,10 +217,13 @@ export const TaskCardComponent = ({
</Box> </Box>
<Stack <Stack
direction={'row'} sx={{
justifyContent={'space-between'} direction:'row',
width={'100%'} justifyContent:'space-between',
alignItems={'end'} width:'100%',
alignItems:'end',
}}
> >
<CardBody> <CardBody>

View File

@ -93,7 +93,7 @@ const AuditLogsTable = ({
size: 190, size: 190,
Cell: ({ row }) => ( Cell: ({ row }) => (
<Chip <Chip
label={ROLES_ID_RUSSIAN_NAME[row.original.user.role_id]} label={row.original.user ? ROLES_ID_RUSSIAN_NAME[row.original.user.role_id] : ''}
sx={{ sx={{
border: '0.53px solid #D1D5DC', border: '0.53px solid #D1D5DC',
borderRadius: '0.5rem', borderRadius: '0.5rem',

View File

@ -8,7 +8,7 @@ import {
Typography, Typography,
FormControlLabel, FormControlLabel,
Radio, Radio,
RadioGroup, // Добавьте этот импорт RadioGroup,
} from '@mui/material'; } from '@mui/material';
import { UsersApi } from '../../../api/users'; import { UsersApi } from '../../../api/users';
import { AutocompleteForChangeOptions } from '../components/AutocompleteForChangeOptions'; import { AutocompleteForChangeOptions } from '../components/AutocompleteForChangeOptions';
@ -19,6 +19,7 @@ export const ModalAddSsp = ({ open, onClose, onSave }) => {
const [type, setType] = useState('ssp'); const [type, setType] = useState('ssp');
const [usersData, setUsersData] = useState({ update: [], delete: [] }); const [usersData, setUsersData] = useState({ update: [], delete: [] });
const [allUsers, setAllUsers] = useState([]); const [allUsers, setAllUsers] = useState([]);
useEffect(() => { useEffect(() => {
UsersApi.getAll() UsersApi.getAll()
.then((data) => { .then((data) => {
@ -54,21 +55,25 @@ export const ModalAddSsp = ({ open, onClose, onSave }) => {
onClose={onClose} onClose={onClose}
actions={ actions={
<> <>
<Button variant="grey" onClick={onClose} style={{ height: '2.5rem' }}> <Button
variant="grey"
onClick={onClose}
sx={{ height: '2.5rem' }}
>
Отменить Отменить
</Button> </Button>
<Button <Button
variant="contained" variant="contained"
onClick={handleClickSave} onClick={handleClickSave}
style={{ height: '2.5rem' }} sx={{ height: '2.5rem' }}
> >
Сохранить Сохранить
</Button> </Button>
</> </>
} }
> >
<Box display="flex" flexDirection="column" gap="1rem"> <Box sx={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
<Box display="flex" flexDirection="column" gap="0.5rem"> <Box sx={{ display: 'flex', flexDirection: 'column', gap: '0.5rem' }}>
<Typography <Typography
sx={{ sx={{
fontWeight: '400', fontWeight: '400',
@ -108,13 +113,13 @@ export const ModalAddSsp = ({ open, onClose, onSave }) => {
row row
value={type} value={type}
onChange={handleTypeChange} onChange={handleTypeChange}
sx={{ gap: '1.5rem' }} sx={{ gap: '1.5rem', flexDirection: 'row' }}
> >
<FormControlLabel <FormControlLabel
value="ssp" value="ssp"
control={<Radio size="small" />} control={<Radio size="small" />}
label={ label={
<Box display="flex" alignItems="center" gap="0.5rem"> <Box sx={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
<Typography sx={{ fontSize: '0.875rem' }}>ССП</Typography> <Typography sx={{ fontSize: '0.875rem' }}>ССП</Typography>
</Box> </Box>
} }
@ -123,7 +128,7 @@ export const ModalAddSsp = ({ open, onClose, onSave }) => {
value="regional" value="regional"
control={<Radio size="small" />} control={<Radio size="small" />}
label={ label={
<Box display="flex" alignItems="center" gap="0.5rem"> <Box sx={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
<Typography sx={{ fontSize: '0.875rem' }}> <Typography sx={{ fontSize: '0.875rem' }}>
Региональный филиал Региональный филиал
</Typography> </Typography>

View File

@ -48,21 +48,25 @@ export const ModalEditSsp = ({ open, onClose, ssp, onEdit }) => {
onClose={onClose} onClose={onClose}
actions={ actions={
<> <>
<Button variant="grey" onClick={onClose} style={{ height: '2.5rem' }}> <Button
variant="grey"
onClick={onClose}
sx={{ height: '2.5rem' }}
>
Отменить Отменить
</Button> </Button>
<Button <Button
variant="contained" variant="contained"
onClick={handleClickSave} onClick={handleClickSave}
style={{ height: '2.5rem' }} sx={{ height: '2.5rem' }}
> >
Сохранить Сохранить
</Button> </Button>
</> </>
} }
> >
<Box display="flex" flexDirection="column" gap="1rem"> <Box sx={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
<Box display="flex" flexDirection="column" gap="0.5rem"> <Box sx={{ display: 'flex', flexDirection: 'column', gap: '0.5rem' }}>
<Typography <Typography
sx={{ sx={{
fontWeight: '400', fontWeight: '400',
@ -102,13 +106,13 @@ export const ModalEditSsp = ({ open, onClose, ssp, onEdit }) => {
row row
value={type} value={type}
onChange={handleTypeChange} onChange={handleTypeChange}
sx={{ gap: '1.5rem' }} sx={{ gap: '1.5rem', flexDirection: 'row' }}
> >
<FormControlLabel <FormControlLabel
value="ssp" value="ssp"
control={<Radio size="small" />} control={<Radio size="small" />}
label={ label={
<Box display="flex" alignItems="center" gap="0.5rem"> <Box sx={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
<Typography sx={{ fontSize: '0.875rem' }}>ССП</Typography> <Typography sx={{ fontSize: '0.875rem' }}>ССП</Typography>
</Box> </Box>
} }
@ -117,7 +121,7 @@ export const ModalEditSsp = ({ open, onClose, ssp, onEdit }) => {
value="regional" value="regional"
control={<Radio size="small" />} control={<Radio size="small" />}
label={ label={
<Box display="flex" alignItems="center" gap="0.5rem"> <Box sx={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
<Typography sx={{ fontSize: '0.875rem' }}> <Typography sx={{ fontSize: '0.875rem' }}>
Региональный филиал Региональный филиал
</Typography> </Typography>

View File

@ -6,7 +6,6 @@ import { Button, Stack } from '@mui/material';
import Select from '@mui/material/Select'; import Select from '@mui/material/Select';
import Box from '@mui/material/Box'; import Box from '@mui/material/Box';
import Typography from '@mui/material/Typography'; import Typography from '@mui/material/Typography';
import { styled } from '@mui/material/styles';
import { ROLES_ID_RUSSIAN_NAME } from '../../../constants'; import { ROLES_ID_RUSSIAN_NAME } from '../../../constants';
import { UserIcon, TrashSvg } from '../../../components/common/icons/icons'; import { UserIcon, TrashSvg } from '../../../components/common/icons/icons';
import { import {
@ -14,45 +13,6 @@ import {
PrimaryOutlinedButton, PrimaryOutlinedButton,
} from '../../../components/common/Buttons/Buttons'; } from '../../../components/common/Buttons/Buttons';
const HorizontalContainer = styled(Box)({
border: '1px dashed #bedbff',
borderRadius: '0.75rem',
padding: '0.84rem 0.88rem 0.84rem 1.5rem',
maxHeight: '3.19rem',
display: 'flex',
flexDirection: 'row',
alignItems: 'center',
backgroundColor: '#e8f2ff',
gap: '2.5rem',
});
const StyledSelect = styled(Select)`
width: 11rem;
height: 1.5rem;
background-color: white;
& .MuiOutlinedInput-notchedOutline {
border-color: #bedbff;
border-radius: 0.5rem;
border: 1px solid rgba(0, 0, 0, 0.1);
}
&:hover .MuiOutlinedInput-notchedOutline {
border-color: #4dabf5;
}
&.Mui-focused .MuiOutlinedInput-notchedOutline {
border-color: #4dabf5;
}
.MuiSelect-select {
padding: 0;
padding-left: 0.75rem;
display: flex;
align-items: center;
min-height: 1.5rem;
}
`;
function UsersActionBar({ function UsersActionBar({
onClose, onClose,
onDelete, onDelete,
@ -95,8 +55,20 @@ function UsersActionBar({
}; };
return ( return (
<HorizontalContainer> <Box
<Box display="flex" alignItems="center" gap="1.5rem"> sx={{
border: '1px dashed #bedbff',
borderRadius: '0.75rem',
padding: '0.84rem 0.88rem 0.84rem 1.5rem',
maxHeight: '3.19rem',
display: 'flex',
flexDirection: 'row',
alignItems: 'center',
backgroundColor: '#e8f2ff',
gap: '2.5rem',
}}
>
<Box sx={{ display: 'flex', alignItems: 'center', gap: '1.5rem' }}>
<IconButton <IconButton
onClick={onClose} onClick={onClose}
aria-label="закрыть" aria-label="закрыть"
@ -122,20 +94,43 @@ function UsersActionBar({
}} }}
> >
<UserIcon /> <UserIcon />
<Typography fontSize=".88rem" color="#4a5565"> <Typography sx={{ fontSize: '.88rem', color: '#4a5565' }}>
Выбрано: Выбрано:
</Typography> </Typography>
<Typography fontSize=".88rem" color="#323031"> <Typography sx={{ fontSize: '.88rem', color: '#323031' }}>
{countUser} {countUser}
</Typography> </Typography>
</Box> </Box>
</Box> </Box>
<Stack spacing={'.5rem'} direction={'row'}> <Stack sx={{ gap: '.5rem', flexDirection: 'row' }}>
<StyledSelect <Select
value={role || ''} value={role || ''}
onChange={handleRoleChange} onChange={handleRoleChange}
displayEmpty displayEmpty
inputProps={{ 'aria-label': 'Выберите роль' }} inputProps={{ 'aria-label': 'Выберите роль' }}
sx={{
width: '11rem',
height: '1.5rem',
backgroundColor: 'white',
'& .MuiOutlinedInput-notchedOutline': {
borderColor: '#bedbff',
borderRadius: '0.5rem',
border: '1px solid rgba(0, 0, 0, 0.1)',
},
'&:hover .MuiOutlinedInput-notchedOutline': {
borderColor: '#4dabf5',
},
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
borderColor: '#4dabf5',
},
'& .MuiSelect-select': {
padding: 0,
paddingLeft: '0.75rem',
display: 'flex',
alignItems: 'center',
minHeight: '1.5rem',
},
}}
> >
<MenuItem value="" disabled> <MenuItem value="" disabled>
<Typography <Typography
@ -152,13 +147,36 @@ function UsersActionBar({
</Typography> </Typography>
</MenuItem> </MenuItem>
))} ))}
</StyledSelect> </Select>
<StyledSelect <Select
value={ssp || ''} value={ssp || ''}
onChange={handleSspChange} onChange={handleSspChange}
displayEmpty displayEmpty
inputProps={{ 'aria-label': 'Выберите ССП' }} inputProps={{ 'aria-label': 'Выберите ССП' }}
sx={{
width: '11rem',
height: '1.5rem',
backgroundColor: 'white',
'& .MuiOutlinedInput-notchedOutline': {
borderColor: '#bedbff',
borderRadius: '0.5rem',
border: '1px solid rgba(0, 0, 0, 0.1)',
},
'&:hover .MuiOutlinedInput-notchedOutline': {
borderColor: '#4dabf5',
},
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
borderColor: '#4dabf5',
},
'& .MuiSelect-select': {
padding: 0,
paddingLeft: '0.75rem',
display: 'flex',
alignItems: 'center',
minHeight: '1.5rem',
},
}}
> >
<MenuItem value="" disabled> <MenuItem value="" disabled>
<Typography <Typography
@ -175,12 +193,12 @@ function UsersActionBar({
</Typography> </Typography>
</MenuItem> </MenuItem>
))} ))}
</StyledSelect> </Select>
</Stack> </Stack>
<Stack spacing={'.5rem'} direction={'row'}> <Stack sx={{ gap: '.5rem', flexDirection: 'row' }}>
<DangerOutlinedButton onClick={onDelete}> <DangerOutlinedButton onClick={onDelete}>
<Stack direction={'row'} spacing={'.5rem'} alignItems={'center'}> <Stack sx={{ flexDirection: 'row', gap: '.5rem', alignItems: 'center' }}>
<p>Удалить</p> <p>Удалить</p>
</Stack> </Stack>
</DangerOutlinedButton> </DangerOutlinedButton>
@ -189,7 +207,7 @@ function UsersActionBar({
<p>Сохранить</p> <p>Сохранить</p>
</PrimaryOutlinedButton> </PrimaryOutlinedButton>
</Stack> </Stack>
</HorizontalContainer> </Box>
); );
} }

View File

@ -82,7 +82,8 @@ export default function TaskPage() {
const getFormInfo = async () => { const getFormInfo = async () => {
setIsLoading(true); setIsLoading(true);
try { try {
// TasksApi. const data = await TasksApi.getById(id);
setTask(data.result)
} catch (error) { } catch (error) {
} finally { } finally {