---
name: onec-epf-delete-element-gotcha
description: "удаление одного элемента формы 1С (v8unpack, \"Дочерние элементы отдельно\") молча портит почти весь Form.elem.json при пересборке — надо удалять всю ветку"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 64a8561e-4bbf-40ab-b45c-41807f3c0a50
---

При переносе кнопки «Заполнить» в панель таблицы (обработка СписокЛПБезТуродниОтчета, DEVACC-755) удаление ОДНОГО элемента формы (data-ключ + узел `tree`), чей контейнер помечен «Дочерние элементы отдельно», привело не к явной ошибке, а к **немой массовой порче** — пересобранный `.epf` при обратной распаковке терял почти все остальные `data`-ключи формы. round-trip-diff показал расхождение чуть ли не по всем ключам сразу, что выглядело как катастрофа, а на деле — один конкретный баг v8unpack на опустевшей «отдельной» группе.

**Why:** v8unpack не проверяет и не ругается на пустую «Дочерние элементы отдельно» группу (0 детей) — просто ломает энкодер при последующей пересборке. Симптом обманчив: похоже на глобальную порчу, хотя причина точечная.

**How to apply:** при удалении такого элемента — всегда удалять **всю ветку целиком** (сам элемент + его родительскую группу-обёртку, если она становится пустой, вплоть до первого предка, у которого остаются другие дети), и из data, и из `tree`. Полный рецепт + диагностика — в скилле [[onec_epf_skill]], `reference/elem_json_format.md` §«ГРАБЛИ: удаление элемента с Дочерние элементы отдельно». Там же — грабли отдельно: `tree` верхнего уровня это ПЛОСКИЙ СПИСОК (не dict с child), рекурсивный фильтр по `node['child']` не уберёт узел, лежащий прямо в списке.

**Цвет кнопки (raw[19], BGR-int) — НЕ бери с одного донора.** Первая попытка взяла цвет с ОДНОЙ обработки (`УстановкаЮрЛицаИДоговораГостиницы`, зелёный `#70AD47`→`4697456`) — юзер отверг: «не такой зелёный, как в других обработках». Массовый скан ВСЕХ `.epf` в `ОбработкиЭкспорт/` дал реальный стандарт: зелёный `#C8E9C7`→`13101512` (14 вхождений на исполнительных кнопках), жёлтый `#FFE100`→`57855` (подтвердился, был единственным кандидатом). Правило: для «фирменного» атрибута (цвет, стиль) юзера — сканировать ВСЕ его обработки на частоту значения, не хватать с первого попавшегося образца.
