v3.add_budget_line (ветка сателлитов AHR_RENT/AHR_UTILITY/AHR_SECURITY) искала любую существующую строку статьи без ORDER BY и без исключения ручных/уже привязанных строк, и переиспользовала её как заготовку для новой записи. Если у статьи ещё не было строк в v3.form2_ahr_satellite_line_source (типично — первая запись при наличии ручной строки той же статьи), sync переименовывал и перезаписывал план/факт чужой ручной строки, блокируя её для правки. Теперь для каждой новой записи сателлита всегда создаётся отдельная пустая строка-заготовка — sync забирает её как строку именно этой записи. Заодно удалён мёртвый код (_ensure_form2_ahr_sync_line, _upsert_form2_ahr_sync_values), не имевший вызывающих мест. AURORA-1907 (лимитная часть) и AURORA-1887 (статьи 314/24/779 в коде) — отдельные задачи, не затронуты. Closes #265. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Generic single-database configuration.