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

Для документов: ЛС
// Способ применения индивидуальных индексов
// где <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; Примеры использования в макросах: Единые индексы в итогах, Изменение способа учёта индексов в смете
Параметры сметы, раздел Индексы – К позициям

Для документов: ЛС
Список индексов к позициям
Для работы со списком индексов в документе используется коллекция 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);
Примеры использования в макросах: Загрузка данных из сметы, Индексы для позиций, Индексы по графам ОС
Параметры сметы, раздел Индексы – К ресурсам

Для документов: ЛС
// Загрузка списка индексов к ресурсам из документа url
Document.LoadIndexesRes(url); Примеры использования в макросах: Загрузка данных из сметы, Индексы для позиций
Параметры сметы, раздел Индексы – Доп. начисления

Для документов: ЛС
Список дополнительных начислений к индексам
Для работы со списком индексов в документе используется коллекция 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;
Далее введённые дополнительные начисления добавляются к строкам индексов со своими числовыми значениями

Список допначислений, применённых к индексу
Для работы со списком индексов в документе используется коллекция 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); Примеры использования в макросах: Загрузка данных из сметы, Индексы для позиций
Параметры сметы, раздел Тендерный к-т

Для документов: ЛС
// Применять тендерный коэффициент при расчете базисно-индексным методе по методике 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); Пример использования в макросе: Скопировать индексы из сметы

