{
  "version": "08",
  "date": "2026-11-06",
  "inputs": [
    [
      "length",
      "Длина фасада, м",
      6,
      "Задано"
    ],
    [
      "depth",
      "Глубина, м",
      5.2,
      "Задано"
    ],
    [
      "h",
      "Высота задней стены, м",
      2.7,
      "Эскиз v08, задняя стена"
    ],
    [
      "clear_h",
      "Чистая высота, м",
      2.4,
      "Предложение"
    ],
    [
      "strip",
      "Складская полоса, м",
      1.33,
      "Задано"
    ],
    [
      "outer",
      "Наружная стена, м",
      0.25,
      "Эскиз"
    ],
    [
      "part",
      "Перегородка, м",
      0.13,
      "Эскиз"
    ],
    [
      "rooms",
      "Санузлов",
      2,
      "Задано"
    ],
    [
      "wc_per",
      "Кабинок и унитазов на санузел",
      2,
      "Уточнение Пети 06.11.2026"
    ],
    [
      "basin_per",
      "Раковин на санузел",
      1,
      "Предложение"
    ],
    [
      "door_w",
      "Наружный проём М/Ж, м",
      1,
      "По эскизу"
    ],
    [
      "door_h",
      "Высота проёма, м",
      2.1,
      "По эскизу"
    ],
    [
      "store_door_w",
      "Проём склада, м",
      0.9,
      "Существующая серая дверь"
    ],
    [
      "overhang",
      "Свес с каждой из четырёх сторон, м",
      0.15,
      "Эскиз v08"
    ],
    [
      "stock",
      "Длина пиломатериала, м",
      6,
      "Закупочный формат"
    ],
    [
      "waste",
      "Запас раскроя",
      0.1,
      "Общий; целые упаковки округляются вверх"
    ],
    [
      "frame_studs",
      "Промежуточных стоек 50x50, шт",
      58,
      "Укрупнённый подсчёт, не карта раскроя"
    ],
    [
      "stud_len",
      "Длина промежуточной стойки, м",
      2.8,
      "Средняя бюджетная длина стоек при односкатной крыше; не карта раскроя"
    ],
    [
      "blocking",
      "Перемычки/распорки 50x50, м",
      60,
      "Предварительная ведомость"
    ],
    [
      "opening_bars",
      "Обрамление проёмов 50x50, м",
      20,
      "Предварительная ведомость"
    ],
    [
      "post_count",
      "Несущих стоек 100x100, шт",
      21,
      "Три опорные линии по 7 стоек; вариант для бюджета"
    ],
    [
      "post_len",
      "Бюджетный отрезок задней стойки, м",
      2.7,
      "7 задних стоек по 2,7 м; остальные по принятой схеме раскроя"
    ],
    [
      "roof_step",
      "Шаг балок покрытия, м",
      0.3,
      "Предварительный подбор"
    ],
    [
      "floor_step",
      "Шаг балок пола, м",
      0.3,
      "Предварительный подбор"
    ],
    [
      "wall_xps",
      "XPS в стенах, м",
      0.1,
      "Предварительная теплотехника"
    ],
    [
      "floor_xps",
      "XPS в полу, м",
      0.15,
      "Предварительная теплотехника"
    ],
    [
      "ceil_xps",
      "XPS над потолком, м",
      0.2,
      "Предварительная теплотехника"
    ],
    [
      "xps50_pack",
      "XPS 50 мм: площадь пачки, м²",
      4.852575,
      "7 плит 1185x585"
    ],
    [
      "sheet",
      "Лист OSB, м²",
      3.125,
      "1250x2500"
    ],
    [
      "csp_sheet",
      "Лист ЦСП, м²",
      4,
      "1250x3200"
    ],
    [
      "gkl_sheet",
      "Лист ГКЛВ/ГВЛВ, м²",
      3,
      "1200x2500"
    ],
    [
      "mem_roll",
      "Мембрана: рулон, м²",
      70,
      "Условный закупочный формат"
    ],
    [
      "reserve",
      "Денежный резерв",
      0.1,
      "Непредвиденные материалы, сверх раскроя"
    ],
    [
      "low_band",
      "Нижняя граница бюджета",
      0.15,
      "Оценочный разброс, не скидка поставщика"
    ],
    [
      "high_band",
      "Верхняя граница бюджета",
      0.25,
      "Оценочный разброс, не оферта"
    ],
    [
      "delivery",
      "Доставка и разгрузка, руб",
      35000,
      "Резерв; местной котировки нет"
    ],
    [
      "foundation",
      "Основание/усиление, руб",
      100000,
      "Резерв; тип и объёмы не определены"
    ],
    [
      "Tin",
      "Внутри для расчёта, °C",
      18,
      "Склад допускает уставку +10, здесь консервативно +18"
    ],
    [
      "Tout",
      "Снаружи для расчёта, °C",
      -25,
      "Расчётный сценарий, не климатическая справка Архыза"
    ],
    [
      "air",
      "Вытяжка всего, м³/ч",
      200,
      "По 100 на помещение; подбор вентиляторов по сети"
    ],
    [
      "infil",
      "Дополнительный воздухообмен, м³/ч",
      30,
      "Условно на входы и неплотности"
    ],
    [
      "heat_res",
      "Запас мощности отопления",
      0.2,
      "Дополнительно к теплопотерям"
    ],
    [
      "Sg",
      "Снег на земле для проверочного сценария, кПа",
      6,
      "Условная нагрузка, не установленное значение для участка"
    ],
    [
      "G_roof",
      "Собственный вес кровли, кПа",
      0.8,
      "Укрупнённо с запасом"
    ],
    [
      "E",
      "Модуль упругости для сравнения, МПа",
      8000,
      "Условно пониженный, не присвоение сорта древесины"
    ],
    [
      "R_b",
      "Проверочный предел напряжений, МПа",
      8,
      "Условный консервативный порог, не полный расчёт СП"
    ],
    [
      "roof_b",
      "Ширина балки покрытия, мм",
      50,
      "Предварительный подбор"
    ],
    [
      "roof_h",
      "Высота балки покрытия, мм",
      300,
      "Предварительный подбор"
    ],
    [
      "span",
      "Длинный пролёт при опоре у склада, м",
      3.87,
      "Ось перегородки является несущей в этом варианте"
    ],
    [
      "deflim",
      "Предел прогиба L/n",
      250,
      "Принято для предварительного сравнения"
    ],
    [
      "G_floor",
      "Собственный вес пола, кПа",
      1,
      "Предварительно"
    ],
    [
      "P_floor",
      "Равномерная нагрузка на пол, кПа",
      4,
      "Сценарий, содержимое склада не задано"
    ],
    [
      "floor_b",
      "Ширина балки пола, мм",
      50,
      "Предварительно"
    ],
    [
      "floor_h",
      "Высота балки пола, мм",
      250,
      "Предварительно"
    ],
    [
      "roof_angle",
      "Уклон односкатной крыши к тылу, °",
      5,
      "Геометрия эскиза, совместимость кровли с 5° не подтверждена"
    ],
    [
      "fascia_depth",
      "Ширина полосы подшивки по периметру, м",
      0.3,
      "Бюджетная площадь по заданной формуле"
    ],
    [
      "post_front_cut",
      "Бюджетный отрезок высокой стойки, м",
      3.15,
      "7 шт; округлённая длина для сметы, не монтажная отметка"
    ],
    [
      "post_mid_cut",
      "Бюджетный отрезок средней стойки, м",
      2.82,
      "7 шт; отметки опорной линии уточнить по рабочей геометрии"
    ]
  ],
  "derived": [
    [
      "area",
      "Площадь контура, м²",
      "{length}*{depth}"
    ],
    [
      "wc_count",
      "Всего кабинок и унитазов",
      "{rooms}*{wc_per}"
    ],
    [
      "basin_count",
      "Всего раковин",
      "{rooms}*{basin_per}"
    ],
    [
      "perim",
      "Периметр контура, м",
      "2*({length}+{depth})"
    ],
    [
      "exposed",
      "Три открытых фасада, м",
      "2*{length}+{depth}"
    ],
    [
      "h_back",
      "Высота задней стены, м",
      "{h}"
    ],
    [
      "h_front",
      "Высота передней стены, м",
      "{h}+{depth}*TAN({roof_angle}*PI()/180)"
    ],
    [
      "h_avg",
      "Средняя высота боковой стены, м",
      "{h}+{depth}/2*TAN({roof_angle}*PI()/180)"
    ],
    [
      "facade",
      "Три открытых фасада, нетто, м²",
      "{length}*({h_front}+{h_back})+{depth}*{h_avg}-{rooms}*{door_w}*{door_h}"
    ],
    [
      "shared",
      "Общая стена, нетто, м²",
      "{depth}*{h_avg}-{store_door_w}*{door_h}"
    ],
    [
      "envelope",
      "Все стены тёплого контура, м²",
      "{facade}+{shared}"
    ],
    [
      "roof_area",
      "Наклонная площадь кровли со свесами с четырёх сторон, м²",
      "({length}+2*{overhang})*({depth}+2*{overhang})/COS({roof_angle}*PI()/180)"
    ],
    [
      "ceiling_area",
      "Наклонная площадь утеплённого потолка, м²",
      "{area}/COS({roof_angle}*PI()/180)"
    ],
    [
      "fascia_area",
      "Подшивка крыши по периметру, м²",
      "{fascia_depth}*2*(({length}+2*{overhang})+({depth}+2*{overhang}))"
    ],
    [
      "partition_len",
      "Длина основных перегородок, м",
      "({length}-2*{outer})+({depth}-{strip}-{part}/2-{outer})"
    ],
    [
      "inner_outer",
      "Внутренняя облицовка трёх фасадов, м²",
      "(2*({length}-2*{outer})+({depth}-2*{outer}))*{clear_h}-{rooms}*{door_w}*{door_h}"
    ],
    [
      "inner_shared",
      "Внутренняя облицовка общей стены, м²",
      "{depth}*{clear_h}-{store_door_w}*{door_h}"
    ],
    [
      "wall_finish",
      "Отделка стен, все лица, м²",
      "{inner_outer}+{inner_shared}+2*{partition_len}*{clear_h}"
    ],
    [
      "useful",
      "Полезная площадь по эскизу, м²",
      "24.67285"
    ],
    [
      "frame_m",
      "50x50: стойки, обвязки, перемычки, м",
      "{frame_studs}*{stud_len}+2*({exposed}+{partition_len})+{blocking}+{opening_bars}"
    ],
    [
      "post_stock_net",
      "Заготовки 100x100x6000 до запаса, шт",
      "{post_count}/3+ROUNDUP(({post_count}/3)/2,0)"
    ],
    [
      "roof_lines",
      "Рядов балок покрытия",
      "ROUNDUP({length}/{roof_step},0)+1"
    ],
    [
      "floor_lines",
      "Рядов балок пола",
      "ROUNDUP({length}/{floor_step},0)+1"
    ],
    [
      "lights",
      "Встроенных светильников",
      "{rooms}*4+2"
    ],
    [
      "skirting",
      "Плинтус/галтель пола, м",
      "38"
    ],
    [
      "uwall",
      "U стен с запасом на мостики, Вт/(м²·К)",
      "1.3/(0.17+{wall_xps}/0.034)"
    ],
    [
      "ufloor",
      "U пола, Вт/(м²·К)",
      "1.2/(0.17+{floor_xps}/0.034)"
    ],
    [
      "uceil",
      "U потолка, Вт/(м²·К)",
      "1.15/(0.17+{ceil_xps}/0.034)"
    ],
    [
      "door_area",
      "Площадь дверей на границе тепла, м²",
      "{rooms}*{door_w}*{door_h}+{store_door_w}*{door_h}"
    ],
    [
      "heat_fabric",
      "Через ограждения, Вт",
      "({envelope}*{uwall}+{area}*{ufloor}+{ceiling_area}*{uceil}+{door_area}*2.5)*({Tin}-{Tout})"
    ],
    [
      "heat_air",
      "На воздух, Вт",
      "0.335*({air}+{infil})*({Tin}-{Tout})"
    ],
    [
      "heat_total",
      "Требуется с запасом, Вт",
      "({heat_fabric}+{heat_air})*(1+{heat_res})"
    ]
  ],
  "values": {
    "length": 6,
    "depth": 5.2,
    "h": 2.7,
    "clear_h": 2.4,
    "strip": 1.33,
    "outer": 0.25,
    "part": 0.13,
    "rooms": 2,
    "wc_per": 2,
    "basin_per": 1,
    "door_w": 1,
    "door_h": 2.1,
    "store_door_w": 0.9,
    "overhang": 0.15,
    "stock": 6,
    "waste": 0.1,
    "frame_studs": 58,
    "stud_len": 2.8,
    "blocking": 60,
    "opening_bars": 20,
    "post_count": 21,
    "post_len": 2.7,
    "roof_step": 0.3,
    "floor_step": 0.3,
    "wall_xps": 0.1,
    "floor_xps": 0.15,
    "ceil_xps": 0.2,
    "xps50_pack": 4.852575,
    "sheet": 3.125,
    "csp_sheet": 4,
    "gkl_sheet": 3,
    "mem_roll": 70,
    "reserve": 0.1,
    "low_band": 0.15,
    "high_band": 0.25,
    "delivery": 35000,
    "foundation": 100000,
    "Tin": 18,
    "Tout": -25,
    "air": 200,
    "infil": 30,
    "heat_res": 0.2,
    "Sg": 6,
    "G_roof": 0.8,
    "E": 8000,
    "R_b": 8,
    "roof_b": 50,
    "roof_h": 300,
    "span": 3.87,
    "deflim": 250,
    "G_floor": 1,
    "P_floor": 4,
    "floor_b": 50,
    "floor_h": 250,
    "roof_angle": 5,
    "fascia_depth": 0.3,
    "post_front_cut": 3.15,
    "post_mid_cut": 2.82,
    "area": 31.200000000000003,
    "wc_count": 4,
    "basin_count": 2,
    "perim": 22.4,
    "exposed": 17.2,
    "h_back": 2.7,
    "h_front": 3.154941050334805,
    "h_avg": 2.9274705251674025,
    "facade": 46.15249303287932,
    "shared": 13.332846730870493,
    "envelope": 59.48533976374981,
    "roof_area": 34.78235737087699,
    "ceiling_area": 31.31917893135244,
    "fascia_area": 7.08,
    "partition_len": 9.055,
    "inner_outer": 33.48,
    "inner_shared": 10.59,
    "wall_finish": 87.53399999999999,
    "useful": 24.67285,
    "frame_m": 294.90999999999997,
    "post_stock_net": 11.0,
    "roof_lines": 21.0,
    "floor_lines": 21.0,
    "lights": 10,
    "skirting": 38,
    "uwall": 0.417848364530157,
    "ufloor": 0.2619078187187059,
    "uceil": 0.19000874720575373,
    "door_area": 6.09,
    "heat_fabric": 2330.741634693711,
    "heat_air": 3313.1500000000005,
    "heat_total": 6772.669961632453
  },
  "rows": [
    {
      "code": "W01",
      "group": "Дерево",
      "name": "Брусок 50x50x6000, сухой",
      "unit": "шт",
      "qty_formula": "{frame_m}/{stock}",
      "price": 480,
      "source": "S01",
      "reserve": 0.1,
      "pack": 1,
      "note": "Заполнение/подсистема. Цена 32000/м³ — расчётная для сухого материала, не прайс сырого бруса.",
      "qty_net": 49.151666666666664,
      "buy": 55,
      "cost": 26400
    },
    {
      "code": "W02",
      "group": "Дерево",
      "name": "Стойки 100x100x6000",
      "unit": "шт",
      "qty_formula": "{post_stock_net}",
      "price": 1920,
      "source": "S01",
      "reserve": 0.1,
      "pack": 1,
      "note": "21 стойка по 3 линиям по 7. Для бюджета: 7 заготовок по 6 м дают пары 3,15+2,82 м; 7 задних отрезков по 2,7 м требуют ещё 4 заготовки. Итого 11 нетто, с 10% запасом 13 к покупке. Округлённые отрезки не являются картой раскроя; отметки опор и припуски проверить.",
      "qty_net": 11.0,
      "buy": 13,
      "cost": 24960
    },
    {
      "code": "W03",
      "group": "Дерево",
      "name": "Обвязки/прогоны 100x200x6000",
      "unit": "шт",
      "qty_formula": "10",
      "price": 3840,
      "source": "S01",
      "reserve": 0.1,
      "pack": 1,
      "note": "3 верхних + 3 нижних продольных, 4 поперечных; предв. схема.",
      "qty_net": 10,
      "buy": 11,
      "cost": 42240
    },
    {
      "code": "W04",
      "group": "Дерево",
      "name": "Балки пола 50x250x6000",
      "unit": "шт",
      "qty_formula": "{floor_lines}",
      "price": 2400,
      "source": "S01",
      "reserve": 0.1,
      "pack": 1,
      "note": "Шаг 300, промежуточная опора под границей склада. Размер для бюджета.",
      "qty_net": 21.0,
      "buy": 24,
      "cost": 57600
    },
    {
      "code": "W05",
      "group": "Дерево",
      "name": "Балки покрытия 50x300x6000",
      "unit": "шт",
      "qty_formula": "{roof_lines}",
      "price": 3240,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "Сухая древесина, резерв 36000/м³. При Sg=6 и пролёте до 3,87; полный расчёт отдельно. Sg=6 кПа — условный сценарий, не установленная снеговая нагрузка Архыза.",
      "qty_net": 21.0,
      "buy": 24,
      "cost": 77760
    },
    {
      "code": "W06",
      "group": "Дерево",
      "name": "Доска кровельного настила 30x150x6000",
      "unit": "шт",
      "qty_formula": "{roof_area}/0.9",
      "price": 810,
      "source": "S01",
      "reserve": 0.1,
      "pack": 1,
      "note": "Сплошной настил, 0,9 м²/доску; размер и зазоры уточнить по кровельному узлу.",
      "qty_net": 38.647063745418876,
      "buy": 43,
      "cost": 34830
    },
    {
      "code": "W07",
      "group": "Дерево",
      "name": "Рейка вентзазора 25x50x3000",
      "unit": "шт",
      "qty_formula": "({facade}/0.6+{roof_area}/0.6)/3",
      "price": 120,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "",
      "qty_net": 44.96380577986462,
      "buy": 50,
      "cost": 6000
    },
    {
      "code": "W08",
      "group": "Дерево",
      "name": "Антисептик, 10 л",
      "unit": "кан",
      "qty_formula": "4",
      "price": 1800,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Расход уточнить по марке, обработать торцы. Огнезащита не заменяет пожарный расчёт.",
      "qty_net": 4,
      "buy": 4,
      "cost": 7200
    },
    {
      "code": "W09",
      "group": "Дерево",
      "name": "Защита деревянных элементов, 10 л",
      "unit": "кан",
      "qty_formula": "3",
      "price": 2300,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Резерв на выбранную систему защитной обработки.",
      "qty_net": 3,
      "buy": 3,
      "cost": 6900
    },
    {
      "code": "F01",
      "group": "Крепёж",
      "name": "Уголок усиленный 50x50x35, 2 мм",
      "unit": "шт",
      "qty_formula": "{frame_studs}*4+{rooms}*{wc_per}*4+80",
      "price": 25,
      "source": "S04",
      "reserve": 0.1,
      "pack": 1,
      "note": "По 2 уголка на конец стойки + обвязки/проёмы; уточнить раскладкой узлов.",
      "qty_net": 328,
      "buy": 361,
      "cost": 9025
    },
    {
      "code": "F02",
      "group": "Крепёж",
      "name": "Уголок усиленный 90x90x65, 2,5 мм",
      "unit": "шт",
      "qty_formula": "{post_count}*4+({roof_lines}+{floor_lines})*4",
      "price": 80,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "Для стоек и балок. Балки опираются на древесину, уголки фиксируют, не подвешивают всю реакцию.",
      "qty_net": 252.0,
      "buy": 278,
      "cost": 22240
    },
    {
      "code": "F03",
      "group": "Крепёж",
      "name": "Конструкционные шурупы для перфокрепежа 5x40",
      "unit": "шт",
      "qty_formula": "7000",
      "price": 2.5,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Ориентир 8 на малый/12 на большой уголок с запасом; схема и паспорт крепежа обязательны.",
      "qty_net": 7000,
      "buy": 7000,
      "cost": 17500.0
    },
    {
      "code": "F04",
      "group": "Крепёж",
      "name": "Конструкционные шурупы 6x100/120",
      "unit": "шт",
      "qty_formula": "1000",
      "price": 4,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1000,
      "buy": 1000,
      "cost": 4000
    },
    {
      "code": "F05",
      "group": "Крепёж",
      "name": "Болт М10, гайка, 2 шайбы",
      "unit": "компл",
      "qty_formula": "100",
      "price": 60,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Резерв по узлам, длины 120–160 по факту.",
      "qty_net": 100,
      "buy": 100,
      "cost": 6000
    },
    {
      "code": "F06",
      "group": "Крепёж",
      "name": "Металлическая опора стойки 100 мм",
      "unit": "шт",
      "qty_formula": "{post_count}",
      "price": 800,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Тип анкеровки после обследования основания.",
      "qty_net": 21,
      "buy": 21,
      "cost": 16800
    },
    {
      "code": "F07",
      "group": "Крепёж",
      "name": "Анкер/крепление основания",
      "unit": "шт",
      "qty_formula": "{post_count}*2",
      "price": 150,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "Тип и несущая способность не назначены; бюджетная позиция.",
      "qty_net": 42,
      "buy": 47,
      "cost": 7050
    },
    {
      "code": "F08",
      "group": "Крепёж",
      "name": "Саморезы листовой обшивки",
      "unit": "шт",
      "qty_formula": "2500",
      "price": 1.4,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 2500,
      "buy": 2500,
      "cost": 3500.0
    },
    {
      "code": "F09",
      "group": "Крепёж",
      "name": "Кляймеры/оцинкованный крепёж вагонки",
      "unit": "компл",
      "qty_formula": "1",
      "price": 3000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 3000
    },
    {
      "code": "F10",
      "group": "Крепёж",
      "name": "Кровельные саморезы с EPDM",
      "unit": "шт",
      "qty_formula": "{roof_area}*10",
      "price": 3.5,
      "source": "RES",
      "reserve": 0.15,
      "pack": 50,
      "note": "",
      "qty_net": 347.82357370876986,
      "buy": 400,
      "cost": 1400.0
    },
    {
      "code": "F11",
      "group": "Крепёж",
      "name": "Скобы, свёрла, биты и расходники",
      "unit": "компл",
      "qty_formula": "1",
      "price": 3000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 3000
    },
    {
      "code": "E01",
      "group": "Обшивка фасада",
      "name": "OSB-3 12 мм, 1250x2500",
      "unit": "лист",
      "qty_formula": "{envelope}/{sheet}",
      "price": 1100,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "Жёсткая обшивка нового каркаса; схема крепления и раскосы по расчёту.",
      "qty_net": 19.03530872439994,
      "buy": 21,
      "cost": 23100
    },
    {
      "code": "E02",
      "group": "Обшивка фасада",
      "name": "Вагонка хвойная 14–16 мм — фасад и подшивка крыши",
      "unit": "м²",
      "qty_formula": "{facade}+{fascia_area}",
      "price": 850,
      "source": "S09",
      "reserve": 0.12,
      "pack": 1,
      "note": "Фасад нетто плюс подшивка крыши: полоса 0,3 м по периметру 6,3x5,5 м. По полезной ширине, запас 12%. Ставка 850 руб/м² резервная; местная котировка не получена.",
      "qty_net": 53.23249303287932,
      "buy": 60,
      "cost": 51000
    },
    {
      "code": "E03",
      "group": "Обшивка фасада",
      "name": "Наружное покрытие вагонки, 10 л",
      "unit": "кан",
      "qty_formula": "2",
      "price": 4200,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 2,
      "buy": 2,
      "cost": 8400
    },
    {
      "code": "E04",
      "group": "Обшивка фасада",
      "name": "Углы, нащельники, цокольные отливы",
      "unit": "м",
      "qty_formula": "45",
      "price": 250,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "Бюджетная длина 45 м нетто, запас 10%; закупка 50 м после округления вверх. Деталировку углов, нащельников и отливов уточнить.",
      "qty_net": 45,
      "buy": 50,
      "cost": 12500
    },
    {
      "code": "I01",
      "group": "Утепление",
      "name": "XPS 50 мм, пачка 4,8526 м² — стены 100 мм",
      "unit": "уп",
      "qty_formula": "{envelope}*({wall_xps}/0.05)/{xps50_pack}",
      "price": 2900,
      "source": "S02",
      "reserve": 0.1,
      "pack": 1,
      "note": "Два слоя 50 мм; общая стена с условно холодным зданием включена.",
      "qty_net": 24.517020247497385,
      "buy": 27,
      "cost": 78300
    },
    {
      "code": "I02",
      "group": "Утепление",
      "name": "XPS 50 мм — пол 150 мм",
      "unit": "уп",
      "qty_formula": "{area}*({floor_xps}/0.05)/{xps50_pack}",
      "price": 2900,
      "source": "S02",
      "reserve": 0.1,
      "pack": 1,
      "note": "",
      "qty_net": 19.288728149487643,
      "buy": 22,
      "cost": 63800
    },
    {
      "code": "I03",
      "group": "Утепление",
      "name": "XPS 50 мм — потолок 200 мм",
      "unit": "уп",
      "qty_formula": "{ceiling_area}*({ceil_xps}/0.05)/{xps50_pack}",
      "price": 2900,
      "source": "S02",
      "reserve": 0.1,
      "pack": 1,
      "note": "XPS горючий Г4: закрытая сборка и пожарные свойства требуют проверки для общественного объекта. Площадь утеплённого потолка взята по скату 5°; отделочный потолок оставлен плоским.",
      "qty_net": 25.81654394324864,
      "buy": 29,
      "cost": 84100
    },
    {
      "code": "I04",
      "group": "Утепление",
      "name": "Ветрозащита стен/низа пола, 70 м²",
      "unit": "рул",
      "qty_formula": "({facade}+{area})/{mem_roll}",
      "price": 3500,
      "source": "RES",
      "reserve": 0.15,
      "pack": 1,
      "note": "",
      "qty_net": 1.105035614755419,
      "buy": 2,
      "cost": 7000
    },
    {
      "code": "I05",
      "group": "Утепление",
      "name": "Пароизоляция стен, пола и потолка, 70 м²",
      "unit": "рул",
      "qty_formula": "({envelope}+{area}+{ceiling_area})/{mem_roll}",
      "price": 3000,
      "source": "RES",
      "reserve": 0.15,
      "pack": 1,
      "note": "Положение слоёв и влагорежим уточнить теплотехнической проверкой. Утеплённый потолок по скату, отделочный потолок плоский.",
      "qty_net": 1.742921695644318,
      "buy": 3,
      "cost": 9000
    },
    {
      "code": "I06",
      "group": "Утепление",
      "name": "Ленты герметизации мембран, 25 м",
      "unit": "рул",
      "qty_formula": "8",
      "price": 800,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 8,
      "buy": 8,
      "cost": 6400
    },
    {
      "code": "I07",
      "group": "Утепление",
      "name": "Клей-пена, пена для XPS, 750 мл",
      "unit": "бал",
      "qty_formula": "12",
      "price": 700,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Без растворителей, совместимая с XPS.",
      "qty_net": 12,
      "buy": 12,
      "cost": 8400
    },
    {
      "code": "R01",
      "group": "Кровля",
      "name": "Профлист кровельный, окрашенный 0,5 мм",
      "unit": "м²",
      "qty_formula": "{roof_area}",
      "price": 850,
      "source": "S02",
      "reserve": 0.12,
      "pack": 1,
      "note": "Цена за закупочную площадь, раскладка по полезной ширине; профиль и уклон по проекту. Уклон эскиза 5°: допустимость конкретного профиля, нахлёстов и герметизации требует отдельного подтверждения изготовителя/проектировщика.",
      "qty_net": 34.78235737087699,
      "buy": 39,
      "cost": 33150
    },
    {
      "code": "R02",
      "group": "Кровля",
      "name": "Подкровельная мембрана, 70 м²",
      "unit": "рул",
      "qty_formula": "{roof_area}/{mem_roll}",
      "price": 4500,
      "source": "RES",
      "reserve": 0.15,
      "pack": 1,
      "note": "",
      "qty_net": 0.496890819583957,
      "buy": 1,
      "cost": 4500
    },
    {
      "code": "R03",
      "group": "Кровля",
      "name": "Примыкания, карниз, торцевые планки",
      "unit": "м",
      "qty_formula": "24",
      "price": 450,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "",
      "qty_net": 24,
      "buy": 27,
      "cost": 12150
    },
    {
      "code": "R04",
      "group": "Кровля",
      "name": "Водосточный жёлоб с креплением",
      "unit": "м",
      "qty_formula": "9",
      "price": 650,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 9,
      "buy": 9,
      "cost": 5850
    },
    {
      "code": "R05",
      "group": "Кровля",
      "name": "Водосточная труба с комплектующими",
      "unit": "м",
      "qty_formula": "6",
      "price": 700,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 6,
      "buy": 6,
      "cost": 4200
    },
    {
      "code": "R06",
      "group": "Кровля",
      "name": "Снегозадержание, 3 м",
      "unit": "компл",
      "qty_formula": "2",
      "price": 5000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Узлы и число опор под снег и профиль производителя.",
      "qty_net": 2,
      "buy": 2,
      "cost": 10000
    },
    {
      "code": "R07",
      "group": "Кровля",
      "name": "Уплотнители/бутиловая лента/герметик",
      "unit": "компл",
      "qty_formula": "1",
      "price": 4500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 4500
    },
    {
      "code": "D01",
      "group": "Двери и кабинки",
      "name": "Простой утеплённый наружный блок М/Ж",
      "unit": "шт",
      "qty_formula": "{rooms}",
      "price": 16000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Размер под проём 1000x2100, без установки.",
      "qty_net": 2,
      "buy": 2,
      "cost": 32000
    },
    {
      "code": "D02",
      "group": "Двери и кабинки",
      "name": "Новая дверь доступа в старое здание",
      "unit": "шт",
      "qty_formula": "1",
      "price": 13000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "По прежнему указанию. Существующая серая дверь склада сохраняется, не покупается заново.",
      "qty_net": 1,
      "buy": 1,
      "cost": 13000
    },
    {
      "code": "D03",
      "group": "Двери и кабинки",
      "name": "Кабинка ВЛДСП16 в алюминиевом профиле",
      "unit": "компл",
      "qty_formula": "{wc_count}",
      "price": 12000,
      "source": "S06",
      "reserve": 0,
      "pack": 1,
      "note": "Дверь, петли, опоры, защёлка включены. Бюджетный комплект, не для душевых/полива водой.",
      "qty_net": 4,
      "buy": 4,
      "cost": 48000
    },
    {
      "code": "D04",
      "group": "Двери и кабинки",
      "name": "Доводчики/уплотнения наружных дверей",
      "unit": "компл",
      "qty_formula": "{rooms}",
      "price": 1500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 2,
      "buy": 2,
      "cost": 3000
    },
    {
      "code": "P01",
      "group": "Пол",
      "name": "OSB-3 22 мм, 1250x2500",
      "unit": "лист",
      "qty_formula": "{area}/{sheet}",
      "price": 2200,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "",
      "qty_net": 9.984000000000002,
      "buy": 11,
      "cost": 24200
    },
    {
      "code": "P02",
      "group": "Пол",
      "name": "ГВЛВ 10 мм под покрытие, 1200x2500",
      "unit": "лист",
      "qty_formula": "{area}/{gkl_sheet}",
      "price": 1200,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "Система основания и подготовка по изготовителю покрытия.",
      "qty_net": 10.4,
      "buy": 12,
      "cost": 14400
    },
    {
      "code": "P03",
      "group": "Пол",
      "name": "Гидроизоляция пола с лентой/манжетами",
      "unit": "компл",
      "qty_formula": "1",
      "price": 8500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 8500
    },
    {
      "code": "P04",
      "group": "Пол",
      "name": "Коммерческий ПВХ-линолеум без войлока",
      "unit": "м²",
      "qty_formula": "36",
      "price": 1200,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Раскрой рулона 2 м: четыре отреза 2x3 на М/Ж и 2x6 на склад. Марка под влажную уборку.",
      "qty_net": 36,
      "buy": 36,
      "cost": 43200
    },
    {
      "code": "P05",
      "group": "Пол",
      "name": "Клей для ПВХ-покрытия, 14 кг",
      "unit": "вед",
      "qty_formula": "1",
      "price": 5500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 5500
    },
    {
      "code": "P06",
      "group": "Пол",
      "name": "Шнур/герметизация швов покрытия",
      "unit": "компл",
      "qty_formula": "1",
      "price": 2500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 2500
    },
    {
      "code": "P07",
      "group": "Пол",
      "name": "Галтель/плинтус с герметизацией",
      "unit": "м",
      "qty_formula": "{skirting}",
      "price": 250,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "",
      "qty_net": 38,
      "buy": 42,
      "cost": 10500
    },
    {
      "code": "P08",
      "group": "Пол",
      "name": "Выравнивание/грунт основания под линолеум",
      "unit": "компл",
      "qty_formula": "1",
      "price": 4500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 4500
    },
    {
      "code": "N01",
      "group": "Стены и потолок",
      "name": "ЦСП 10 мм, 1250x3200 — стены",
      "unit": "лист",
      "qty_formula": "{wall_finish}/{csp_sheet}",
      "price": 2400,
      "source": "S07",
      "reserve": 0.1,
      "pack": 1,
      "note": "Все лица основных перегородок; облицовка кабинок уже в их комплектах.",
      "qty_net": 21.883499999999998,
      "buy": 25,
      "cost": 60000
    },
    {
      "code": "N02",
      "group": "Стены и потолок",
      "name": "Грунт, 10 л",
      "unit": "кан",
      "qty_formula": "3",
      "price": 1200,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 3,
      "buy": 3,
      "cost": 3600
    },
    {
      "code": "N03",
      "group": "Стены и потолок",
      "name": "Моющаяся краска для влажных зон, 10 л",
      "unit": "кан",
      "qty_formula": "({wall_finish}+{area})*0.25/10",
      "price": 4200,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "Ориентир два слоя, общий расход 0,25 л/м²; уточнить по основанию. Для краски сохранён плоский отделочный потолок 31,2 м².",
      "qty_net": 2.96835,
      "buy": 4,
      "cost": 16800
    },
    {
      "code": "N04",
      "group": "Стены и потолок",
      "name": "Составы швов/сетка/эластичный герметик",
      "unit": "компл",
      "qty_formula": "1",
      "price": 6500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Система для ЦСП с учётом деформаций деревянного каркаса.",
      "qty_net": 1,
      "buy": 1,
      "cost": 6500
    },
    {
      "code": "N05",
      "group": "Стены и потолок",
      "name": "ГКЛВ 12,5 мм, 1200x2500 — потолок",
      "unit": "лист",
      "qty_formula": "{area}/{gkl_sheet}",
      "price": 1000,
      "source": "S08",
      "reserve": 0.1,
      "pack": 1,
      "note": "Плоский отделочный потолок 31,2 м² при чистой высоте 2,4 м; утеплённая плоскость выше идёт по скату.",
      "qty_net": 10.4,
      "buy": 12,
      "cost": 12000
    },
    {
      "code": "N06",
      "group": "Стены и потолок",
      "name": "Профиль потолка ПП, 3 м",
      "unit": "шт",
      "qty_formula": "{area}/0.6/3",
      "price": 280,
      "source": "RES",
      "reserve": 0.15,
      "pack": 1,
      "note": "Плоский отделочный потолок, площадь 31,2 м²; раскладку профиля уточнить.",
      "qty_net": 17.333333333333336,
      "buy": 20,
      "cost": 5600
    },
    {
      "code": "N07",
      "group": "Стены и потолок",
      "name": "Направляющий профиль, 3 м",
      "unit": "шт",
      "qty_formula": "38/3",
      "price": 220,
      "source": "RES",
      "reserve": 0.1,
      "pack": 1,
      "note": "",
      "qty_net": 12.666666666666666,
      "buy": 14,
      "cost": 3080
    },
    {
      "code": "N08",
      "group": "Стены и потолок",
      "name": "Подвесы и крепёж потолка",
      "unit": "компл",
      "qty_formula": "1",
      "price": 2500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 2500
    },
    {
      "code": "N09",
      "group": "Стены и потолок",
      "name": "Сервисный люк потолка",
      "unit": "шт",
      "qty_formula": "1",
      "price": 1500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 1500
    },
    {
      "code": "S01",
      "group": "Сантехника",
      "name": "Унитаз-компакт с бачком и сиденьем",
      "unit": "компл",
      "qty_formula": "{wc_count}",
      "price": 6500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 4,
      "buy": 4,
      "cost": 26000
    },
    {
      "code": "S02",
      "group": "Сантехника",
      "name": "Раковина с креплением",
      "unit": "шт",
      "qty_formula": "{basin_count}",
      "price": 3000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 2,
      "buy": 2,
      "cost": 6000
    },
    {
      "code": "S03",
      "group": "Сантехника",
      "name": "Смеситель и подводки",
      "unit": "компл",
      "qty_formula": "{basin_count}",
      "price": 3000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 2,
      "buy": 2,
      "cost": 6000
    },
    {
      "code": "S04",
      "group": "Сантехника",
      "name": "Сифон и слив раковины",
      "unit": "компл",
      "qty_formula": "{basin_count}",
      "price": 800,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 2,
      "buy": 2,
      "cost": 1600
    },
    {
      "code": "S05",
      "group": "Сантехника",
      "name": "Бойлер 50 л, около 2 кВт",
      "unit": "шт",
      "qty_formula": "1",
      "price": 13000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 13000
    },
    {
      "code": "S06",
      "group": "Сантехника",
      "name": "Холодная/горячая труба с фитингами",
      "unit": "компл",
      "qty_formula": "1",
      "price": 8500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Условно 40 м труб + фасонные элементы; трасса не обмерена.",
      "qty_net": 1,
      "buy": 1,
      "cost": 8500
    },
    {
      "code": "S07",
      "group": "Сантехника",
      "name": "Краны/коллектор/аварийный слив",
      "unit": "компл",
      "qty_formula": "1",
      "price": 6000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 6000
    },
    {
      "code": "S08",
      "group": "Сантехника",
      "name": "Канализация 110/50 с фасонными",
      "unit": "компл",
      "qty_formula": "1",
      "price": 15000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Условно 20 м 110 и 10 м 50; есть резерв на наружный участок.",
      "qty_net": 1,
      "buy": 1,
      "cost": 15000
    },
    {
      "code": "S09",
      "group": "Сантехника",
      "name": "Фановая часть и кровельная проходка",
      "unit": "компл",
      "qty_formula": "1",
      "price": 4500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 4500
    },
    {
      "code": "S10",
      "group": "Сантехника",
      "name": "Мелкая оснастка: зеркала, дозаторы, держатели",
      "unit": "компл",
      "qty_formula": "{rooms}",
      "price": 2500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 2,
      "buy": 2,
      "cost": 5000
    },
    {
      "code": "H01",
      "group": "Тепло и защита труб",
      "name": "Настенный конвектор 2,5 кВт, IP24",
      "unit": "шт",
      "qty_formula": "2",
      "price": 9500,
      "source": "S11",
      "reserve": 0,
      "pack": 1,
      "note": "На каждый М/Ж; ставка для мощности 2,5 кВт резервная.",
      "qty_net": 2,
      "buy": 2,
      "cost": 19000
    },
    {
      "code": "H02",
      "group": "Тепло и защита труб",
      "name": "Настенный конвектор 2 кВт, IP24",
      "unit": "шт",
      "qty_formula": "1",
      "price": 9000,
      "source": "S11",
      "reserve": 0,
      "pack": 1,
      "note": "Склад. Всего отопление 7 кВт, уставки раздельные.",
      "qty_net": 1,
      "buy": 1,
      "cost": 9000
    },
    {
      "code": "H03",
      "group": "Тепло и защита труб",
      "name": "Греющий кабель для водопровода 16 Вт/м",
      "unit": "м",
      "qty_formula": "10",
      "price": 550,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Совместимый с пластиковой трубой, по сертификату изделия.",
      "qty_net": 10,
      "buy": 10,
      "cost": 5500
    },
    {
      "code": "H04",
      "group": "Тепло и защита труб",
      "name": "Греющий кабель канализации 30 Вт/м",
      "unit": "м",
      "qty_formula": "10",
      "price": 650,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 10,
      "buy": 10,
      "cost": 6500
    },
    {
      "code": "H05",
      "group": "Тепло и защита труб",
      "name": "Греющий кабель водостока 30 Вт/м",
      "unit": "м",
      "qty_formula": "12",
      "price": 650,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 12,
      "buy": 12,
      "cost": 7800
    },
    {
      "code": "H06",
      "group": "Тепло и защита труб",
      "name": "Терморегулятор, датчик, соединительный комплект",
      "unit": "компл",
      "qty_formula": "3",
      "price": 3000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 3,
      "buy": 3,
      "cost": 9000
    },
    {
      "code": "H07",
      "group": "Тепло и защита труб",
      "name": "Теплоизоляция труб с наружной защитой",
      "unit": "м",
      "qty_formula": "25",
      "price": 300,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 25,
      "buy": 25,
      "cost": 7500
    },
    {
      "code": "H08",
      "group": "Тепло и защита труб",
      "name": "Контроль низкой температуры/сигнализация",
      "unit": "компл",
      "qty_formula": "1",
      "price": 5000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Оповещение о снижении температуры; не резервное питание.",
      "qty_net": 1,
      "buy": 1,
      "cost": 5000
    },
    {
      "code": "V01",
      "group": "Вентиляция",
      "name": "Вытяжной вентилятор с обратным клапаном",
      "unit": "шт",
      "qty_formula": "{rooms}",
      "price": 4000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "По фактическим 100 м³/ч на помещение после сопротивления сети, не только свободный расход.",
      "qty_net": 2,
      "buy": 2,
      "cost": 8000
    },
    {
      "code": "V02",
      "group": "Вентиляция",
      "name": "Воздуховоды/решётки/приток/крепление",
      "unit": "компл",
      "qty_formula": "1",
      "price": 6500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 6500
    },
    {
      "code": "L01",
      "group": "Электрика и свет",
      "name": "Встраиваемый LED, 10–12 Вт, IP44/выше",
      "unit": "шт",
      "qty_formula": "{lights}",
      "price": 900,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "4 на санузел: 2 над кабинками, 2 общий свет; 2 склад. Поток/освещённость уточнить.",
      "qty_net": 10,
      "buy": 10,
      "cost": 9000
    },
    {
      "code": "L02",
      "group": "Электрика и свет",
      "name": "Защитные чаши/узлы для светильников",
      "unit": "шт",
      "qty_formula": "{lights}",
      "price": 350,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Сервисный зазор, драйверы и светильники не прижимаются к XPS. Совместимость по паспорту.",
      "qty_net": 10,
      "buy": 10,
      "cost": 3500
    },
    {
      "code": "L03",
      "group": "Электрика и свет",
      "name": "Кабель освещения 3x1,5",
      "unit": "м",
      "qty_formula": "70",
      "price": 90,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 70,
      "buy": 70,
      "cost": 6300
    },
    {
      "code": "L04",
      "group": "Электрика и свет",
      "name": "Кабель силовых линий 3x2,5",
      "unit": "м",
      "qty_formula": "100",
      "price": 140,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 100,
      "buy": 100,
      "cost": 14000
    },
    {
      "code": "L05",
      "group": "Электрика и свет",
      "name": "Питающая линия, резерв 5x6",
      "unit": "м",
      "qty_formula": "15",
      "price": 450,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Сечение, фазы и трассу определить по выделенной мощности; здесь цена для бюджета.",
      "qty_net": 15,
      "buy": 15,
      "cost": 6750
    },
    {
      "code": "L06",
      "group": "Электрика и свет",
      "name": "Металлические трубы и коробки скрытой проводки",
      "unit": "компл",
      "qty_formula": "1",
      "price": 17000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "Защита в деревянных конструкциях по электропроекту; не одна ПВХ-гофра.",
      "qty_net": 1,
      "buy": 1,
      "cost": 17000
    },
    {
      "code": "L07",
      "group": "Электрика и свет",
      "name": "Щит IP54, аппараты защиты, шины",
      "unit": "компл",
      "qty_formula": "1",
      "price": 19000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "УЗО/дифзащита влажных помещений; номиналы после схемы и расчёта линий.",
      "qty_net": 1,
      "buy": 1,
      "cost": 19000
    },
    {
      "code": "L08",
      "group": "Электрика и свет",
      "name": "Розетки/выключатели/датчики присутствия",
      "unit": "компл",
      "qty_formula": "1",
      "price": 5500,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 5500
    },
    {
      "code": "L09",
      "group": "Электрика и свет",
      "name": "Заземление/уравнивание потенциалов",
      "unit": "компл",
      "qty_formula": "1",
      "price": 6000,
      "source": "RES",
      "reserve": 0,
      "pack": 1,
      "note": "",
      "qty_net": 1,
      "buy": 1,
      "cost": 6000
    }
  ],
  "sources": [
    [
      "S01",
      "Лесосклад24, обрезные пиломатериалы",
      "https://lesosklad24.ru/brus",
      "Москва, рыночный ориентир",
      "50x50x6000 336 руб; 100x100x6000 1230 руб. Для сухого материала в смете повышенная расчётная ставка."
    ],
    [
      "S02",
      "Кровельный центр, прайс 27.05.2026",
      "https://krovlya.biz/userfls/ufiles/27.05.2026_.pdf",
      "Сеть, есть Пятигорск/Ставрополь",
      "Публичный прайс: XPS50 419 руб/плита; профлист полиэстер 0,5 около 810 руб/м². Округлённые ставки, наличие не подтверждено."
    ],
    [
      "S03",
      "ПЕНОПЛЭКС КОМФОРТ, техданные",
      "https://www.penoplex.ru/katalog/komfort/",
      "Производитель",
      "1185x585, 7 плит по 50 мм; горючесть Г4. Применимость сборки в общественном здании требует проверки."
    ],
    [
      "S04",
      "Петрович, уголок 50x50x36x2",
      "https://rf.petrovich.ru/product/108824/",
      "РФ, ориентир",
      "23 руб/шт без карты при просмотре. В бюджет принято 25."
    ],
    [
      "S05",
      "Петрович, уголок 70x70x55x2",
      "https://rf.petrovich.ru/product/108825/",
      "РФ, ориентир",
      "39 руб/шт. В смете более крупный 90x90x65: отдельная резервная ставка 80, не эта котировка."
    ],
    [
      "S06",
      "СТП, сантехнические перегородки",
      "https://www.stpwc.ru/price",
      "Производитель, не местная котировка",
      "Влагостойкая ЛДСП от 6300/кабину. Для размера 1,1x1,55 в бюджет 12000 с дверью/фурнитурой, без монтажа."
    ],
    [
      "S07",
      "ЦСП 10 мм, ПСК Модуль",
      "https://pskmod.ru/catalog/drevesno_plitnye_materialy/tsementno_struzhechnaya_plita_tssp/10mm/",
      "Москва, ориентир",
      "3200x1250x10 от 1810/лист. В бюджет 2400 с региональным резервом."
    ],
    [
      "S08",
      "ГКЛВ, XSNAB Ставрополь",
      "https://stv.xsnab.ru/catalog/c/vnutrennyaya-otdelka/gipsokarton-i-komplektuyuschie/gipsokartonnyy-list",
      "Ставрополь",
      "ГКЛВ Хабез 2500x1200x12,5 925,74 руб. Бюджет 1000."
    ],
    [
      "S09",
      "Вагонка, Дом и лес",
      "https://domiles26.ru/catalog/vagonka",
      "Ставрополь",
      "Есть сосна 14x96x3000. Публичной цены не получено; ставка 850/м² — резерв, не котировка."
    ],
    [
      "S10",
      "Укладка и уход, Tarkett",
      "https://www.tarkett.ru/hub/vidy-napolnykh-pokrytiy/ukladka-linoleuma-i-ukhod/",
      "Производитель",
      "Линолеум рассчитан на соответствующий режим уборки. Пролив водой не закладывается; швы и примыкания герметизируются."
    ],
    [
      "S11",
      "Конвектор Electrolux 2 кВт, дилер",
      "https://electrolux-home.ru/electrolux/obogrevateli-i-teplovye-zavesy/konvektor-electrolux-ech-as2-2000-mr.html",
      "РФ, ориентир",
      "8930 руб, IP24. Для других мощностей в смете резервные ставки."
    ],
    [
      "S12",
      "Профлист С21, Ставрополь",
      "https://stavropol.met-trans.ru/stal/profnastil-ocinkovannyy-s21-0-5h1000-mm",
      "Ставрополь",
      "Оцинкованный 0,5 мм в разных позициях 533–685 руб/м². В базе окрашенный кровельный профиль по S02."
    ],
    [
      "T01",
      "СП20, текст с изменениями",
      "https://meganorm.ru/mega_doc/norm_update_04112024/pravila/0/sp_20_13330_2016_svod_pravil_nagruzki_i_vozdeystviya.html",
      "Нормативный текст",
      "Для горного рельефа снег зависит от местных условий/высоты. Sg=6 кПа здесь — сценарий, не справка для участка."
    ],
    [
      "T02",
      "СП64, Деревянные конструкции",
      "https://base.garant.ru/77679289/",
      "Нормативный текст",
      "Итоговый подбор по сорту, влажности, длительности нагрузки, устойчивости, узлам и основаниям отдельно. В таблице — упрощённая проверка."
    ],
    [
      "T03",
      "Монтаж кровельного профнастила",
      "https://znpo.lipetsk.ru/installation_profnastil.Htm",
      "Производитель",
      "Нулевой уклон под профлист не принимается. Рабочая разуклонка и примыкание по системе изготовителя."
    ],
    [
      "RES",
      "Резервная ставка составителя",
      "",
      "Черкесск/Ставрополь/Пятигорск: нужна котировка",
      "Ненайденные локальные цены обозначены резервом. Проверено 06.11.2026, без обращения к продавцам."
    ]
  ],
  "groups": {
    "Дерево": 283890,
    "Крепёж": 93515.0,
    "Обшивка фасада": 95000,
    "Утепление": 257000,
    "Кровля": 74350,
    "Двери и кабинки": 96000,
    "Пол": 113300,
    "Стены и потолок": 111580,
    "Сантехника": 91600,
    "Тепло и защита труб": 69300,
    "Вентиляция": 14500,
    "Электрика и свет": 87050
  },
  "summary": {
    "materials": 1387085.0,
    "contingency": 138708.5,
    "delivery": 35000,
    "foundation": 100000,
    "budget": 1660793.5,
    "low": 1411674.4749999999,
    "high": 2075991.875
  },
  "beams": [
    {
      "label": "50x50, полный пролёт",
      "b": 50,
      "h": 50,
      "span": 5.2,
      "step": 0.3,
      "qd": 2.784,
      "qs": 2.04,
      "W": 20833.333333333332,
      "J": 520833.3333333333,
      "M": 9.40992,
      "sigma": 451.67616000000004,
      "deflection": 4661.155199999999,
      "limit": 20.8,
      "pass_stress": false,
      "pass_deflection": false
    },
    {
      "label": "50x300, полный пролёт",
      "b": 50,
      "h": 300,
      "span": 5.2,
      "step": 0.3,
      "qd": 2.784,
      "qs": 2.04,
      "W": 750000.0,
      "J": 112500000.0,
      "M": 9.40992,
      "sigma": 12.54656,
      "deflection": 21.57942222222222,
      "limit": 20.8,
      "pass_stress": false,
      "pass_deflection": false
    },
    {
      "label": "50x300, промежуточная опора",
      "b": 50,
      "h": 300,
      "span": 3.87,
      "step": 0.3,
      "qd": 2.784,
      "qs": 2.04,
      "W": 750000.0,
      "J": 112500000.0,
      "M": 5.2119612,
      "sigma": 6.9492816,
      "deflection": 6.62018762390625,
      "limit": 15.48,
      "pass_stress": true,
      "pass_deflection": true
    },
    {
      "label": "100x300, полный пролёт",
      "b": 100,
      "h": 300,
      "span": 5.2,
      "step": 0.3,
      "qd": 2.784,
      "qs": 2.04,
      "W": 1500000.0,
      "J": 225000000.0,
      "M": 9.40992,
      "sigma": 6.27328,
      "deflection": 10.78971111111111,
      "limit": 20.8,
      "pass_stress": true,
      "pass_deflection": true
    }
  ],
  "snow_cases": [
    {
      "snow": 2,
      "qd": 1.1039999999999999,
      "qs": 0.84,
      "W": 750000.0,
      "J": 112500000.0,
      "M": 2.0668121999999998,
      "sigma": 2.7557495999999997,
      "deflection": 2.72595960984375,
      "limit": 15.48,
      "pass_stress": true,
      "pass_deflection": true
    },
    {
      "snow": 4,
      "qd": 1.9439999999999997,
      "qs": 1.44,
      "W": 750000.0,
      "J": 112500000.0,
      "M": 3.6393866999999998,
      "sigma": 4.852515599999999,
      "deflection": 4.673073616875,
      "limit": 15.48,
      "pass_stress": true,
      "pass_deflection": true
    },
    {
      "snow": 6,
      "qd": 2.784,
      "qs": 2.04,
      "W": 750000.0,
      "J": 112500000.0,
      "M": 5.2119612,
      "sigma": 6.9492816,
      "deflection": 6.62018762390625,
      "limit": 15.48,
      "pass_stress": true,
      "pass_deflection": true
    },
    {
      "snow": 8,
      "qd": 3.6239999999999997,
      "qs": 2.64,
      "W": 750000.0,
      "J": 112500000.0,
      "M": 6.7845357,
      "sigma": 9.0460476,
      "deflection": 8.5673016309375,
      "limit": 15.48,
      "pass_stress": false,
      "pass_deflection": true
    }
  ],
  "heat_cases": [
    {
      "outside": -15,
      "need": 5197.630435671418
    },
    {
      "outside": -25,
      "need": 6772.669961632453
    },
    {
      "outside": -35,
      "need": 8347.709487593489
    }
  ],
  "sourceVersion": "05",
  "roof_info": {
    "angle_deg": 5,
    "fall_direction": "к тылу",
    "h_front": 3.154941050334805,
    "h_back": 2.7,
    "h_avg": 2.9274705251674025,
    "overhang_each_side": 0.15,
    "roof_width": 6.3,
    "roof_depth": 5.5,
    "roof_area": 34.78235737087699,
    "ceiling_area": 31.31917893135244,
    "flat_finish_ceiling_area": 31.200000000000003,
    "fascia_area": 7.08,
    "post_lines": 3,
    "posts_per_line": 7,
    "post_front_cut": 3.15,
    "post_mid_cut": 2.82,
    "post_back_cut": 2.7,
    "post_stock_net": 11.0,
    "post_stock_buy": 13,
    "note": "Геометрия и отрезки предварительные. 3,15/2,82/2,70 м — бюджетный раскрой, не монтажные длины. Свесы с четырёх сторон учтены. Совместимость профлиста с уклоном 5° не подтверждена."
  },
  "assumptions": [
    "Эскизная смета материалов на 06.11.2026; не рабочий проект и не полный конструктивный/теплотехнический/пожарный расчёт.",
    "Сохранены 88 позиций и прежние ставки. Источники перенесены из версии 05 без новой проверки; цены — ориентиры или резервы, наличие и реальные котировки Черкесска, Ставрополя и Пятигорска не подтверждены.",
    "План 6x5,2 м; 2 санузла, 4 унитаза/кабинки, 2 раковины. Существующая серая дверь склада 0,9x2,1 м не покупается заново; D02 сохранена отдельной позицией доступа в старое здание.",
    "Односкатная крыша 5° к тылу, задняя стена 2,7 м; передняя и боковые площади пересчитаны по уклону. Общая стена включена в тёплый контур как граница с условно холодным зданием.",
    "Наружная вагонка включает фасад и подшивку крыши; полоса подшивки 0,3 м по периметру 6,3x5,5 м — заданная бюджетная формула.",
    "Промежуточные 50x50: средняя длина 2,8 м. Несущие 100x100: 21 стойка по 3 линиям, 11 шестиметровых заготовок нетто, 13 с запасом. Отрезки 3,15+2,82 м и 2,7 м предварительные; реальные отметки опор, уклон, припуски и раскрой ещё не согласованы.",
    "XPS и пароизоляция утеплённого потолка учтены по наклонной площади; ГКЛВ, профиль и краска отделочного потолка сохранены по плоской площади 31,2 м². Пожарная применимость XPS Г4 и всего узла требует проверки для общественного объекта.",
    "Тепло: упрощённые U, мостики и воздухообмен 200+30 м³/ч, +18°C внутри, сценарии -15/-25/-35°C снаружи и 20% запас. Без динамики открывания дверей, локальных мостиков, подбора сети и зонального теплового баланса.",
    "Отопление 7 кВт в закупке сохранено; расчётный сценарий при -35°C требует больше 7 кВт. Это не климатическая справка и не подтверждение достаточности оборудования.",
    "Sg=6 кПа — условный проверочный сценарий, не установленная снеговая нагрузка для участка в Архызе. Таблицы beams/snow_cases перенесены без изменения корректных единиц и формул исходника; предварительная схема с промежуточной опорой не заменяет расчёт узлов, сорта древесины, устойчивости и основания.",
    "Уклон 5° — геометрия эскиза; пригодность выбранного кровельного профиля и водонепроницаемость системы на таком уклоне не подтверждены.",
    "К каждой позиции применяется её запас, затем закупка округляется вверх до pack. Дополнительно 10% денежный резерв на материалы; доставка 35 000 руб и основание 100 000 руб — отдельные условные резервы. Диапазон -15%/+25% от всего бюджета, не оферта.",
    "Монтаж, обследования, проектирование, согласования и точная стоимость внешних подключений не определены этой ведомостью; резерв основания не подтверждает его пригодность."
  ]
}