Экспорт QUIK: очистка таблиц-срезов (ClearTables) для включённых пакетов

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-09-17 21:56:10 +03:00
parent 10e765b5b1
commit 1f12167946
2 changed files with 40 additions and 0 deletions
+14
View File
@@ -540,9 +540,23 @@ func quikExportRenderExportINI(s QuikExportSettings) (string, error) {
t = iniSet(t, "General", "LimitKinds", s.LimitKinds)
t = iniSet(t, "Files", "LogDepth", "3")
t = iniOutputTables(t, s.Tables)
t = iniClearTables(t, s.Tables)
return t, nil
}
// iniClearTables — [ClearTables]: таблицы-срезы экспортёр очищает в начале сессии. Без этого повторная
// загрузка бьётся о первичный ключ (ошибки вставки текут памятью, как было с Portfolio) либо копит
// дубликаты. Portfolio не очищаем — на нём история НПР; журналы изменений очищать нельзя по смыслу.
func iniClearTables(text string, enabled []string) string {
for _, name := range enabled {
if name == "Portfolio" || strings.HasSuffix(name, "Journal") {
continue
}
text = iniSet(text, "ClearTables", name, "1")
}
return text
}
func quikExportRenderInfoINI(s QuikExportSettings) (string, error) {
b, err := quikExportFS.ReadFile("web/quikexport/info.ini.tmpl")
if err != nil {