×
×
Содержание




Параметры. Индексы (макрокоманды)

Параметры сметы, раздел Индексы

2025-03-11-11-36-57.png

Для документов: ЛС

// Способ применения индивидуальных индексов
//    где <Value> – одно из: simNone, simPosOne, simTotal, simSmr
Document.IndexesMode := Value;

// Единый индекс в итогах до начисления лимитированных затрат
// Применять или нет
Document.CommonIndexSmr.Active := True|False; 
// Обоснование индекса
Document.CommonIndexSmr.Code := Value;          
// Значение (формула)
Document.CommonIndexSmr.Formula := Value;    

// Единый индекс в итогах после начисления лимитированных затрат
// Применять или нет
Document.CommonIndexSmrLz.Active := True|False; 
// Обоснование индекса
Document.CommonIndexSmrLz.Code := Value;
// Значение (формула)
Document.CommonIndexSmrLz.Formula := Value;

// Дополнительная информация об индексах изменения сметной стоимости
// Тип объекта строительства
Document.IndexObjectType := Value;
// Отрасль народного хозяйства для оборудования
Document.IndexIndustryType := Value;

Примеры использования в макросах: Единые индексы в итогах, Изменение способа учёта индексов в смете

Параметры сметы, раздел Индексы – К позициям

2025-02-18-10-43-08.png

Для документов: ЛС

Список индексов к позициям

Для работы со списком индексов в документе используется коллекция Document.IndexesPos.

// Перебор индексов к позициям в документе
for i := 0 to Document.IndexesPos.Count - 1 do
begin
      ind := Document.IndexesPos.GetItem(i);
end;

Пример использования в макросе: Дополнительные начисления к индексам


Общие операции со списком индексов

// Загрузка списка индексов к позициям из документа url
Document.LoadIndexesPos(url);

// Привязка индексов, 
//    где <Value> одно из: silmDefault, silmVrs, silmChapters, silmOS, silmCategory
Document.IndexesLinkMode := Value;

// Дополнительно, при привязке по графам ОС
// Код индекса на Строительные
Document.SetOsGrafaIndex(osvSroy, code1);
// Код индекса на Монтажные
Document.SetOsGrafaIndex(osvMont, code2);
// Код индекса на Оборудование
Document.SetOsGrafaIndex(osvObor, code3);
// Код индекса на Прочие
Document.SetOsGrafaIndex(osvOther, code4);

// Дополнительно, при привязке по категориям
// Актуальный набор допустимых значений параметра <category> – в XML-схеме локальной сметы
// Прочитать код индекса для категории
code = smeta2.GetCategoryIndex(category);
// Установить код индекса для категории
Document.SetCategoryIndex(category, code);

Примеры использования в макросах: Загрузка данных из сметы, Индексы для позиций, Индексы по графам ОС

Параметры сметы, раздел Индексы – К ресурсам

2025-02-18-10-44-14.png

Для документов: ЛС

// Загрузка списка индексов к ресурсам из документа url
Document.LoadIndexesRes(url);

Примеры использования в макросах: Загрузка данных из сметы, Индексы для позиций

Параметры сметы, раздел Индексы – Доп. начисления

2025-02-18-10-50-48.png

Для документов: ЛС

Список дополнительных начислений к индексам

Для работы со списком индексов в документе используется коллекция Document.IndexAddOnType

// Перебор допначислений к индексам в документе
for a := 0 to Document.IndexesAddonTypes.Count - 1 do
begin
      addonType := Document.IndexesAddonTypes.GetItem(a);
end;

// Добавление новой строки допначисления
NewAddonType := AddonTypes.Add();
// Название допначисления
NewAddonType.Caption := Value;
// Уровень начисления
//   где <Value> целое число  
NewAddonType.Level := Value;
//  Где считать?
//    где <Value> одно из: 
//       iaptAsIndex – Как индекс, 
//       iaptItog – В итогах по статьям, 
//       iaptSmr – В итогах к СМР.
NewAddonType.Place := iaptAsIndex;
// Активность допначисления
NewAddonType.Active := True|False;


Далее введённые дополнительные начисления добавляются к строкам индексов со своими числовыми значениями

2026-06-18-16-39-57.png

Список допначислений, применённых к индексу

Для работы со списком индексов в документе используется коллекция Document.IndexesPos.IndexAddOn

// Перебор индексов и применённых к ним допначислений
for i := 0 to Document.IndexesPos.Count - 1 do
begin
      ind := Document.IndexesPos.GetItem(i);
      for j := 0 to ind.AddOns.Count - 1 do
      begin
            iaddon := ind.AddOns.GetItem(j);
      end;
end;

// Добавление допначисления к строке индекса
NewAddon := ind.AddOns.Add();
// Caption должен точно совпадать с Caption ранее добавленного типа.
// Тогда линковка произойдет автоматически
NewAddon.Caption := Value;
// Значения индексов по статьям затрат,
//   где <Value> - числовое значение Float
//   ОЗП, ЭМ, ЗПМ, МАТ, СМР
NewAddon.SetValue(svOsnZp, Value);
NewAddon.SetValue(svExMach, Value);
NewAddon.SetValue(svZpMach, Value);
NewAddon.SetValue(svMater, Value);
NewAddon.SetValue(svPrZatr, Value);
// Опция "Начислять индекс к чистой ЭМ, в виде К*(ЭМ-ЗПМ)"
NewAddon.SeparateEm := True|False;

Пример использования в макросе: Дополнительные начисления к индексам

Общие операции с допначислениями к индексам

// Загрузка списка допначислений к индексам из документа url
Document.LoadIndexesAddOnTypes(url);

Примеры использования в макросах: Загрузка данных из сметы, Индексы для позиций

Параметры сметы, раздел Тендерный к-т

2025-02-18-10-14-29.png

Для документов: ЛС

// Применять тендерный коэффициент при расчете базисно-индексным методе по методике 2020 г.
Document.CommonIndexBim2020.Active := True|False;
// Обоснование тендерного коэффициента БИМ по методике 2020
Document.CommonIndexBim2020.Code := Value;
// Значение тендерного коэффициента БИМ по методике 2020
Document.CommonIndexBim2020.Formula := Value;

// Применять тендерный коэффициент при расчете ресурсным методом
Document.CommonIndexRes.Active := True|False;
// Обоснование тендерного коэффициента РМ
Document.CommonIndexRes.Code := Value;
// Значение тендерного коэффициента РМ
Document.CommonIndexRes.Formula := Value;

Пример использования в макросе: Единые индексы в итогах

Удаление индексов

Для документов: ЛС

// Очистка списка индексов к позициям и индексов к ресурсам из документа
Document.ClearIndexes;
// Очистка неиспользуемых индексов к позициям
Document.DeleteUnusedIndexesPos;
// Очистка неиспользуемых индексов к ресурсам
Document.DeleteUnusedIndexesRes;

Пример использования в макросе: Удаление индексов

Индексы в режиме Акта

Для документов: ЛС

// Копирование индексов в акт из сметы (в режиме Акта), где 
//    logic1 - копировать индексы к позициям
//    logic2 - копировать индексы к ресурсам
//    logic3 - копировать способ применения индексов
Document.Acts.CopyIndexesFromSmeta(logic1, logic2, logic3);

Пример использования в макросе: Скопировать индексы из сметы




Теги: