diff --git a/Home.md b/Home.md
index 8b7bd78..39d2954 100644
--- a/Home.md
+++ b/Home.md
@@ -1 +1,8 @@
-Добро пожаловать в вики.
\ No newline at end of file
+Добро пожаловать в вики.
+
+
+
+## Документация (docs)
+
+- [docs/index](docs/index)
+
diff --git a/_Sidebar.md b/_Sidebar.md
new file mode 100644
index 0000000..acfcf20
--- /dev/null
+++ b/_Sidebar.md
@@ -0,0 +1,7 @@
+
+
+### Документация (docs)
+
+- [docs/index](docs/index)
+
+
diff --git a/docs/Checklist_5b_UPD_2026-04-21.md b/docs/Checklist_5b_UPD_2026-04-21.md
new file mode 100644
index 0000000..3e6441f
--- /dev/null
+++ b/docs/Checklist_5b_UPD_2026-04-21.md
@@ -0,0 +1,140 @@
+---
+title: Чек-лист внедрения графы 5б в УПД
+version: 1.0
+date_created: 2026-04-21
+date_modified: 2026-04-21
+author: Руководитель отдела ИТ Кудрявцев М.А. (kma@rhana.com)
+description: Рабочий чек-лист для разработки и приемки реализации графы 5б в УПД с приоритетом изменений через расширение crm3-dev.rhana.
+status: К выполнению
+based_on: ТЗ_минимальная_реализация_графы_5б_УПД_2026-04-21.md
+based_on_title: Техническое задание - минимальная реализация графы 5б в УПД (через расширение)
+based_on_version: 1.1
+show_metadata_block: true
+show_index_link: true
+show_toc: true
+---
+
+# Рабочий чек-лист внедрения
+
+## Ссылки на ТЗ
+
+- Базовый документ: [ТЗ по графе 5б](ТЗ_минимальная_реализация_графы_5б_УПД_2026-04-21.md)
+- Архитектурный принцип: см. раздел `2` ТЗ.
+- Карта объектов: см. раздел `4` ТЗ.
+- Детализация реализации: см. раздел `5` ТЗ.
+- Шаблоны кода: см. раздел `6` ТЗ.
+- Правила разработки: см. раздел `7` ТЗ.
+- План работ: см. раздел `8` ТЗ.
+- Критерии приемки: см. раздел `9` ТЗ.
+
+## 1. Подготовка
+
+- [ ] Подтвердить ветку разработки и стенд внедрения (см. разделы `1`, `2` ТЗ).
+- [ ] Зафиксировать версии:
+ - `crm3-dev`
+ - `crm3-dev.rhana`
+ - текущий рабочий макет УПД.
+- [ ] Создать резервные копии объектов:
+ - `Documents/СчетФактураВыданный`
+ - `DataProcessors/ПечатьОбщихФорм`
+ - макет УПД в расширении.
+- [ ] Проверить, что правила `&ИзменениеИКонтроль` применимы для целевых методов (см. раздел `7` ТЗ).
+
+## 2. Реализация в расширении документа `СчетФактураВыданный`
+
+Файл: `crm3-dev.rhana/src/Documents/СчетФактураВыданный/Ext/ManagerModule.bsl` (см. разделы `4.1`, `5.1`, `6.1`, `6.2`, `6.3`, `6.4` ТЗ)
+
+### 2.1. Функция формирования строки 5б
+- [ ] Добавить `упд5б_СтрокаАвансовыеСчетаФактуры(ПлатежноРасчетныеДокументы) Экспорт` (шаблон: раздел `6.1` ТЗ).
+- [ ] Проверить формат вывода:
+ - `№ %1 от %2, исправление № %3 от %4`
+ - разделитель нескольких значений: `; `.
+
+### 2.2. Временная таблица платежно-расчетных документов
+- [ ] Расширить `ПоместитьВременнуюТаблицуПлатежноРасчетныхДокументов(...)` (цельный блок с директивами, раздел `6.2` ТЗ).
+- [ ] Добавить колонку `СтрокаАвансовыеСчетаФактуры` (раздел `6.2` ТЗ).
+- [ ] Заполнять колонку через `упд5б_СтрокаАвансовыеСчетаФактуры(...)` (раздел `6.2` ТЗ).
+
+### 2.3. Запрос данных по оплатам/авансовым СФ
+- [ ] Расширить `ТекстЗапросаПолученияНомеровИДатПлатежноРасчетныхДокументов()` (цельный блок с директивами, раздел `6.3` ТЗ).
+- [ ] Добавить получение полей:
+ - `НомерСчетаФактурыНаАванс`
+ - `ДатаСчетаФактурыНаАванс`
+ - `НомерИсправленияСчетаФактурыНаАванс`
+ - `ДатаИсправленияСчетаФактурыНаАванс`.
+- [ ] Проверить, что используются связи с `Документ.СчетФактураВыданныйАванс`.
+
+### 2.4. Прокидывание в данные печати
+- [ ] Добавить в запрос шапки поле `ПредставлениеАвансовыеСчетаФактуры` (раздел `6.4` ТЗ).
+- [ ] Реализовать через `ЕСТЬNULL(...)` (ВТ/данные документа) (раздел `6.4` ТЗ).
+
+## 3. Реализация в расширении печати УПД
+
+Файл: `crm3-dev.rhana/src/DataProcessors/ПечатьОбщихФорм/Ext/ManagerModule.bsl` (см. разделы `4.1`, `5.2`, `6.5` ТЗ)
+
+### 3.1. Вставка в `р_ЗаполнитьТабличныйДокументУПД(...)`
+- [ ] Добавить получение `ДанныеПечати.ПредставлениеАвансовыеСчетаФактуры` (раздел `6.5` ТЗ).
+- [ ] Добавить fallback:
+ - `№ -- от --, исправление № -- от --`.
+- [ ] Заполнить параметр:
+ - `ОбластьШапка.Параметры.АвансовыеСчетаФактуры` (раздел `6.5` ТЗ).
+
+### 3.2. Контроль совместимости
+- [ ] Проверить, что при отсутствии поля/значения печать не падает.
+- [ ] Проверить, что прочие поля УПД не изменили поведение.
+
+## 4. Изменение макета УПД (в расширении)
+
+См. разделы `4.1`, `5.3`, `8` ТЗ.
+
+- [ ] Добавить параметр `АвансовыеСчетаФактуры` в область `Шапка` (строка 5б).
+- [ ] Проверить совпадение имени параметра в макете и коде.
+- [ ] Проверить перенос длинной строки в шапке.
+
+## 5. Стандарты и контроль качества кода
+
+См. раздел `7` ТЗ.
+
+- [ ] Все изменения в перехватываемых методах оформлены через `&ИзменениеИКонтроль`.
+- [ ] Новые блоки оформлены в `#Вставка` / `#Удаление`.
+- [ ] В `#Удаление` нет комментариев и нового текста.
+- [ ] Новые методы расширения имеют префикс `упд5б_`.
+- [ ] Проверка `check_ext` выполнена без критических несоответствий.
+
+## 6. Тестовые сценарии (минимум)
+
+См. разделы `8` и `9` ТЗ.
+
+### 6.1. Позитивные
+- [ ] Реализация с одним авансовым СФ -> 5б заполнена корректно.
+- [ ] Реализация с несколькими авансовыми СФ -> значения через `; `.
+- [ ] Реализация с исправленным авансовым СФ -> отображаются номер/дата исправления.
+
+### 6.2. Негативные и граничные
+- [ ] Нет авансовых СФ -> вывод fallback.
+- [ ] Старые документы без данных 5б печатаются без ошибок.
+- [ ] Пустые/частично заполненные значения не ломают формат строки.
+
+### 6.3. Регрессия
+- [ ] УПД без авансов печатается как до внедрения.
+- [ ] Графы 5а/6/7/8 работают корректно.
+- [ ] Печать из `РеализацияТоваровУслуг` без ошибок.
+
+## 7. Критерии готовности (Definition of Done)
+
+См. раздел `9` ТЗ.
+
+- [ ] В графе 5б выводятся авансовые СФ для закрываемой реализацией оплаты.
+- [ ] При отсутствии данных применяется fallback.
+- [ ] Изменения выполнены преимущественно в `crm3-dev.rhana`.
+- [ ] Протокол тестирования заполнен и подписан.
+- [ ] Подготовлен список фактически измененных объектов.
+
+## 8. Протокол сдачи
+
+См. разделы `10` и `11` ТЗ.
+
+- [ ] Передать перечень измененных объектов (файл/метод/тип изменения).
+- [ ] Передать скриншоты УПД по 3 ключевым кейсам (1 СФ, несколько СФ, fallback).
+- [ ] Передать результаты `check_ext`.
+- [ ] Передать итоговую оценку рисков (низкий/средний/высокий) и план отката.
diff --git a/docs/INDEX.md b/docs/INDEX.md
new file mode 100644
index 0000000..18a01eb
--- /dev/null
+++ b/docs/INDEX.md
@@ -0,0 +1,59 @@
+---
+title: Оглавление документов
+author: Руководитель отдела ИТ Кудрявцев М.А. (kma@rhana.com)
+version: 1.0
+date_created: 2026-01-04
+date_modified: 2026-01-04
+show_metadata_block: true
+show_index_link: false
+---
+
+# Оглавление документов
+
+Навигация по всем документам проекта.
+
+## Анализ и отчеты
+
+- [Анализ механизма перезаполнения CRM ЖурналДокументов](Анализ_механизма_перезаполнения_CRM_ЖурналДокументов.md)
+- [Анализ обработчиков обновления НДС 22](Анализ_обработчиков_обновления_НДС_22.md)
+- [Анализ ошибок обновления](Анализ_ошибок_обновления.md)
+- [Анализ печати пакета документов и складского учета (v3.0)](Анализ_печати_пакета_документов_и_складского_учета (v3.0).md)
+- [Анализ применения КредитНота (v1.1)](Анализ_применения_КредитНота (v1.1).md)
+- [Анализ применения реквизита Купон (v1.0)](Анализ_применения_реквизита_Купон (v1.0).md)
+- [Анализ рисков неуникальности CRM ЖурналДокументов](Анализ_рисков_неуникальности_CRM_ЖурналДокументов.md)
+- [Итоговый отчет анализа регистров](Итоговый_отчет_анализа_регистров.md)
+- [Отчет о конвертации](Отчет_о_конвертации.md)
+- [ФИНАЛЬНЫЙ ОТЧЕТ Анализ регистров](ФИНАЛЬНЫЙ_ОТЧЕТ_Анализ_регистров.md)
+
+## Инструкции
+
+- [Быстрое решение](Быстрое_решение.md)
+- [Инструкция добавления ролей в профиль](Инструкция_добавления_ролей_в_профиль.md)
+- [Инструкция по исправлению](Инструкция_по_исправлению.md)
+
+## Другое
+
+- [INDEX](INDEX.md)
+- [README md to html](README_md_to_html.md)
+- [instructions filter access groups](instructions_filter_access_groups.md)
+- [Выводы сравнения конфигураций](Выводы_сравнения_конфигураций.md)
+- [Глубинный анализ регистров](Глубинный_анализ_регистров.md)
+- [Оценка правок для переноса НДС 22 (v1.1)](Оценка_правок_для_переноса_НДС_22_(v1.1).md)
+- [Оценка правок для переноса НДС 22 (v1.3)](Оценка_правок_для_переноса_НДС_22_(v1.3).md)
+- [Оценка правок для переноса НДС 22 (v1.4)](Оценка_правок_для_переноса_НДС_22_(v1.4).md)
+- [Проблема неуникальности регистра CRM ЖурналДокументов](Проблема_неуникальности_регистра_CRM_ЖурналДокументов.md)
+- [Проверка ставки НДС 22](Проверка_ставки_НДС_22.md)
+- [РЕЗУЛЬТАТЫ КОНВЕРТАЦИИ](РЕЗУЛЬТАТЫ_КОНВЕРТАЦИИ.md)
+- [Роли для включения в новой системе](Роли_для_включения_в_новой_системе.md)
+- [Роли для отметки ДА осталось](Роли_для_отметки_ДА_осталось.md)
+- [Сверка ролей профиля](Сверка_ролей_профиля.md)
+- [Сверка ролей с учетом переименований](Сверка_ролей_с_учетом_переименований.md)
+- [Сводка рисков неуникальности](Сводка_рисков_неуникальности.md)
+- [Список объектов для удаления из подсистем](Список_объектов_для_удаления_из_подсистем.md)
+- [Список ролей для отметки ДА](Список_ролей_для_отметки_ДА.md)
+- [Улучшения скрипта проверки](Улучшения_скрипта_проверки.md)
+- [ФИНАЛЬНЫЙ СПИСОК РОЛЕЙ ДЛЯ ВКЛЮЧЕНИЯ](ФИНАЛЬНЫЙ_СПИСОК_РОЛЕЙ_ДЛЯ_ВКЛЮЧЕНИЯ.md)
+
+---
+
+*Этот файл автоматически сгенерирован скриптом конвертации.*
diff --git a/docs/test.md b/docs/test.md
new file mode 100644
index 0000000..f95d5a4
--- /dev/null
+++ b/docs/test.md
@@ -0,0 +1 @@
+# Проверка статей
\ No newline at end of file
diff --git a/docs/Анализ_ошибок_обновления.md b/docs/Анализ_ошибок_обновления.md
new file mode 100644
index 0000000..53fa8c6
--- /dev/null
+++ b/docs/Анализ_ошибок_обновления.md
@@ -0,0 +1,196 @@
+---
+title: Анализ ошибок обновления конфигурации 1С
+author: Руководитель отдела ИТ Кудрявцев М.А. (kma@rhana.com)
+version: 1.0
+date_created: 2025-12-09
+date_modified: 2025-12-09
+show_metadata_block: true
+show_index_link: true
+---
+
+# Анализ ошибок обновления конфигурации 1С
+
+> 📚 **См. также:** [Оглавление документов](INDEX.md) | [Глубинный анализ регистров](Глубинный_анализ_регистров.md) | [Быстрое решение](Быстрое_решение.md) | [Инструкция по исправлению](Инструкция_по_исправлению.md)
+
+## Проблема
+При попытке применить обновление из конфигурации `crm326/crm326_test` на проект `crmdevlocal` возникают ошибки о наличии ссылок на удаляемые объекты.
+
+## Категории удаляемых объектов
+
+### 1. Подсистемы (5 объектов)
+- `Подсистема.ЭлектронноеВзаимодействие.Подсистема.БизнесСеть`
+- `Подсистема.ЭлектронноеВзаимодействие.Подсистема.ИнтеграцияСЯндексКассой`
+- `Подсистема.ЭлектронноеВзаимодействие.Подсистема.РаботаСНоменклатурой`
+- `Подсистема.ЭлектронноеВзаимодействие.Подсистема.ТорговыеПредложения`
+- `Подсистема.ЭлектронноеВзаимодействие.Подсистема.СервисДоставки`
+
+**Ссылки:** Все ссылаются на `Подсистема.ЭлектронноеВзаимодействие.Справочная информация`
+
+### 2. Элементы стилей (1 объект)
+- `ЭлементСтиля.ЦветГиперссылки`
+
+**Ссылки:** Используется в формах справочников и документов
+
+### 3. Общие картинки (9 объектов)
+- `ОбщаяКартинка.CRM_ИерархияСправочника`
+- `ОбщаяКартинка.CRM_СостояниеАктивен`
+- `ОбщаяКартинка.CRM_СтатусЗаблокирован`
+- `ОбщаяКартинка.CRM_СтатусОтключен`
+- `ОбщаяКартинка.CRM_УНФ_СостояниеСделки`
+- `ОбщаяКартинка.ДлительнаяОперация85БЭД`
+- `ОбщаяКартинка.Комментарий`
+- `ОбщаяКартинка.НастройкаОбменаДаннымиОтключена`
+- `ОбщаяКартинка.ЭлектронныйДокументОшибкаПодписи`
+- И другие...
+
+### 4. Общие макеты (3 объекта)
+- `ОбщийМакет.Драйвер1ССканерШтрихкода`
+- `ОбщийМакет.ДрайверГексагонСканерыШтрихкода`
+- `ОбщийМакет.ДрайверККСДисплеиПокупателя`
+
+### 5. Общие модули (25+ объектов)
+- Модули обмена данными
+- Модули электронного взаимодействия
+- Модули работы с оборудованием
+- И другие...
+
+### 6. Подписки на события (3 объекта)
+- `ПодпискаНаСобытие.ИзменитьСостояниеВерсииПередЗаписьюЭД`
+- `ПодпискаНаСобытие.КонтрольОтраженияВУчетеЭДОПриЗаписиЭлектронногоДокумента`
+- `ПодпискаНаСобытие.ОбработатьЗаписьЭД`
+
+### 7. Общие команды (7 объектов)
+- Команды работы с ЭДО
+- Команды обмена данными
+
+### 8. Справочники и их элементы
+- Реквизиты справочников
+- Формы справочников
+- Команды справочников
+
+### 9. Документы и их элементы
+- Реквизиты документов
+- Табличные части
+- Формы документов
+- Команды документов
+
+### 10. Перечисления (5 объектов)
+- `Перечисление.ВидСервиса`
+- `Перечисление.Приоритеты`
+- `Перечисление.СокращенияЭД`
+- `Перечисление.СостоянияНаличия`
+- `Перечисление.ТипыПодключаемогоОборудования.ЗначениеПеречисления.ККМОфлайн`
+- `Перечисление.ФорматыХраненияОдностраничныхФайлов`
+
+### 11. Отчеты (5 объектов)
+- `Отчет.CRM_ПлановыеЗатратыПроектов`
+- `Отчет.АнализСебестоимостиТоваровРасширенный`
+- И другие...
+
+### 12. Обработки
+- Реквизиты обработок
+- Формы обработок
+- Команды обработок
+
+### 13. Регистры
+- Регистры сведений
+- Регистры накопления
+
+## Стратегия решения
+
+### Вариант 1: Удаление ссылок (Рекомендуется)
+Удалить все ссылки на удаляемые объекты из основной конфигурации перед обновлением.
+
+**Плюсы:**
+- Чистое решение
+- Конфигурация остается актуальной
+
+**Минусы:**
+- Требует ручной работы
+- Может нарушить функциональность
+
+### Вариант 2: Сохранение объектов в основной конфигурации
+Скопировать удаляемые объекты в основную конфигурацию перед обновлением.
+
+**Плюсы:**
+- Сохраняет функциональность
+- Меньше изменений в коде
+
+**Минусы:**
+- Дублирование объектов
+- Усложняет поддержку
+
+### Вариант 3: Поэтапное обновление
+1. Сначала удалить ссылки на объекты, которые точно не нужны
+2. Сохранить критичные объекты в основной конфигурации
+3. Постепенно мигрировать функциональность
+
+## План действий
+
+### Этап 1: Подготовка
+1. Создать резервную копию конфигурации `crmdevlocal`
+2. Экспортировать список всех ссылок на удаляемые объекты
+3. Проанализировать критичность каждого использования
+
+### Этап 2: Обработка по категориям
+
+#### 2.1. Подсистемы
+- Проверить использование подсистем в `Справочная информация`
+- Удалить или закомментировать ссылки
+- Альтернатива: создать собственные подсистемы-заглушки
+
+#### 2.2. Элементы стилей
+- Найти все использования `ЦветГиперссылки` в формах
+- Заменить на альтернативный стиль или удалить использование
+
+#### 2.3. Общие картинки
+- Найти все использования картинок в формах
+- Заменить на альтернативные картинки или удалить элементы интерфейса
+
+#### 2.4. Общие модули
+- Найти все вызовы методов из удаляемых модулей
+- Создать обертки или перенести необходимый функционал
+
+#### 2.5. Реквизиты справочников/документов
+- Удалить использование реквизитов из форм
+- Обновить код, использующий эти реквизиты
+
+#### 2.6. Перечисления
+- Найти все использования значений перечислений
+- Заменить на альтернативные решения или удалить функциональность
+
+### Этап 3: Тестирование
+1. Проверить компиляцию конфигурации
+2. Провести функциональное тестирование
+3. Проверить отсутствие ошибок при обновлении
+
+## Автоматизация
+
+Рекомендуется создать скрипт для:
+1. Поиска всех ссылок на удаляемые объекты
+2. Генерации отчета о использованиях
+3. Автоматического удаления/замены некритичных ссылок
+
+## Приоритеты исправления
+
+### Высокий приоритет (критичные объекты)
+- Общие модули, используемые в бизнес-логике
+- Реквизиты документов, используемые в проводках
+- Перечисления, используемые в типах данных
+
+### Средний приоритет
+- Формы и элементы интерфейса
+- Общие картинки
+- Команды
+
+### Низкий приоритет
+- Справочная информация
+- Вспомогательные подсистемы
+
+## Рекомендации
+
+1. **Начать с анализа**: Определить, какие объекты действительно используются активно
+2. **Создать план миграции**: Для каждого удаляемого объекта определить стратегию замены
+3. **Тестировать поэтапно**: После каждого этапа проверять возможность обновления
+4. **Документировать изменения**: Вести журнал всех изменений для последующего анализа
+
diff --git a/docs/Быстрое_решение.md b/docs/Быстрое_решение.md
new file mode 100644
index 0000000..44deacc
--- /dev/null
+++ b/docs/Быстрое_решение.md
@@ -0,0 +1,189 @@
+---
+title: Быстрое решение проблемы обновления
+author: Руководитель отдела ИТ Кудрявцев М.А. (kma@rhana.com)
+version: 1.0
+date_created: 2025-12-09
+date_modified: 2025-12-09
+show_metadata_block: true
+show_index_link: true
+---
+
+# Быстрое решение проблемы обновления
+
+> 📚 **См. также:** [Оглавление документов](INDEX.md) | [Анализ ошибок обновления](Анализ_ошибок_обновления.md) | [Инструкция по исправлению](Инструкция_по_исправлению.md) | [Глубинный анализ регистров](Глубинный_анализ_регистров.md)
+
+## Суть проблемы
+
+При обновлении из `crm326/crm326_test` на `crmdevlocal` система пытается удалить объекты, на которые есть ссылки в основной конфигурации.
+
+## Три варианта решения
+
+### Вариант 1: Быстрое (для тестирования)
+
+**Удалить все ссылки на удаляемые объекты**
+
+1. Запустите скрипт поиска:
+ ```bash
+ python find_references.py CRM3devLocal
+ ```
+
+2. Откройте `references_report.txt`
+
+3. Для каждого файла из отчета:
+ - Откройте файл в редакторе
+ - Найдите строки с удаляемыми объектами
+ - Закомментируйте или удалите эти строки
+
+4. Проверьте компиляцию
+
+**Время:** 2-4 часа
+**Риск:** Может нарушить функциональность
+
+### Вариант 2: Безопасное (рекомендуется)
+
+**Сохранить критичные объекты в основной конфигурации**
+
+1. Перед обновлением экспортируйте удаляемые объекты:
+ - Откройте конфигурацию `crm326_test`
+ - Экспортируйте нужные объекты в файлы
+ - Импортируйте их в `crmdevlocal`
+
+2. Примените обновление
+
+3. После обновления проверьте работоспособность
+
+**Время:** 4-6 часов
+**Риск:** Минимальный
+
+### Вариант 3: Поэтапное (для продакшена)
+
+**Исправить по приоритетам**
+
+#### Приоритет 1 (критично - исправить обязательно):
+- Общие модули, используемые в бизнес-логике
+- Реквизиты документов, влияющие на проводки
+- Перечисления в типах данных
+
+#### Приоритет 2 (важно):
+- Формы и элементы интерфейса
+- Общие картинки в часто используемых формах
+
+#### Приоритет 3 (можно отложить):
+- Справочная информация
+- Вспомогательные подсистемы
+
+**Время:** 1-2 недели
+**Риск:** Минимальный при правильном подходе
+
+## Топ-10 самых проблемных объектов
+
+1. **ОбщийМодуль.ОбменСКонтрагентами*** (10+ модулей)
+ - Используются в подсистеме обмена
+ - **Решение:** Создать обертки или удалить функциональность обмена
+
+2. **ОбщийМодуль.ЭлектронноеВзаимодействие*** (10+ модулей)
+ - Используются в подсистеме ЭДО
+ - **Решение:** Аналогично п.1
+
+3. **Перечисление.Приоритеты**
+ - Используется в 7 документах
+ - **Решение:** Удалить реквизит `УдалитьПриоритет` из документов
+
+4. **ОбщаяКартинка.Комментарий**
+ - Используется в 5 формах
+ - **Решение:** Заменить на альтернативную картинку или удалить
+
+5. **ОбщаяКартинка.ЭлектронныйДокументОшибкаПодписи**
+ - Используется в 5 формах
+ - **Решение:** Аналогично п.4
+
+6. **Справочник.Номенклатура.Реквизит.СтавкаНДС**
+ - Используется в форме
+ - **Решение:** Удалить из формы или использовать альтернативный источник
+
+7. **Справочник.УчетныеПолитикиОрганизаций** (множество реквизитов)
+ - Используется в форме элемента
+ - **Решение:** Удалить реквизиты из формы или заменить на альтернативные
+
+8. **Документ.УдалитьCRM_Сделка** (множество реквизитов)
+ - Используется в формах
+ - **Решение:** Удалить элементы формы, связанные с реквизитами
+
+9. **Документ.УдалитьCRM_Событие** (множество реквизитов)
+ - Используется в формах
+ - **Решение:** Аналогично п.8
+
+10. **Подсистемы ЭлектронноеВзаимодействие** (5 подсистем)
+ - Используются в справочной информации
+ - **Решение:** Удалить ссылки из справочной информации
+
+## Минимальный набор действий для быстрого старта
+
+1. **Создать резервную копию** (5 минут)
+ ```
+ Конфигурация → Сохранить конфигурацию в файлы...
+ ```
+
+2. **Запустить анализ** (10 минут)
+ ```bash
+ python find_references.py CRM3devLocal
+ ```
+
+3. **Исправить топ-3 проблемы** (2-3 часа)
+ - Перечисление.Приоритеты → удалить реквизиты
+ - Общие картинки → заменить/удалить
+ - Критичные модули → создать обертки
+
+4. **Проверить компиляцию** (5 минут)
+ ```
+ Конфигурация → Проверить конфигурацию
+ ```
+
+5. **Попробовать обновление** (10 минут)
+ ```
+ Конфигурация → Сравнить, объединить с конфигурацией из файла...
+ ```
+
+## Чек-лист быстрого исправления
+
+- [ ] Резервная копия создана
+- [ ] Скрипт анализа запущен
+- [ ] Отчет проанализирован
+- [ ] Перечисление.Приоритеты исправлено
+- [ ] Общие картинки исправлены
+- [ ] Критичные модули обработаны
+- [ ] Конфигурация компилируется
+- [ ] Обновление проходит без ошибок ссылок
+
+## Если ничего не помогает
+
+1. **Временное решение:** Отключить проверку ссылок при обновлении (не рекомендуется)
+
+2. **Радикальное решение:**
+ - Создать новую конфигурацию на базе `crm326_test`
+ - Перенести изменения из `crmdevlocal` вручную
+
+3. **Обратиться за помощью:**
+ - К команде разработки
+ - К поставщику конфигурации
+ - На форумы 1С
+
+## Полезные команды
+
+```bash
+# Поиск всех упоминаний объекта в файлах
+grep -r "ОбъектИмя" CRM3devLocal/src/
+
+# Подсчет количества упоминаний
+grep -r "ОбъектИмя" CRM3devLocal/src/ | wc -l
+
+# Поиск с контекстом (3 строки до и после)
+grep -r -A 3 -B 3 "ОбъектИмя" CRM3devLocal/src/
+```
+
+## Контакты и ресурсы
+
+- Документация 1С: https://its.1c.ru/
+- Форум 1С: https://forum.mista.ru/
+- Сообщество разработчиков: https://infostart.ru/
+
diff --git a/docs/Глубинный_анализ_регистров.md b/docs/Глубинный_анализ_регистров.md
new file mode 100644
index 0000000..34dfc9a
--- /dev/null
+++ b/docs/Глубинный_анализ_регистров.md
@@ -0,0 +1,296 @@
+---
+title: Глубинный анализ регистров на нарушение уникальности данных
+author: Руководитель отдела ИТ Кудрявцев М.А. (kma@rhana.com)
+version: 1.0
+date_created: 2025-12-09
+date_modified: 2025-12-09
+show_metadata_block: true
+show_index_link: true
+---
+
+# Глубинный анализ регистров на нарушение уникальности данных
+
+> 📚 **См. также:** [Оглавление документов](INDEX.md) | [Анализ ошибок обновления](Анализ_ошибок_обновления.md) | [ФИНАЛЬНЫЙ ОТЧЕТ](ФИНАЛЬНЫЙ_ОТЧЕТ_Анализ_регистров.md) | [Итоговый отчет](Итоговый_отчет_анализа_регистров.md)
+
+## Цель анализа
+
+Найти регистры сведений и регистры накопления, у которых из-за удаления нетиповых и старых объектов конфигурации, на которые ссылаются реквизиты измерений, после реструктуризации может быть нарушена уникальность данных по ключу измерений.
+
+## Методология
+
+1. Анализ всех регистров сведений и накопления в конфигурации `CRM3devLocal`
+2. Проверка измерений регистров на ссылки к удаляемым объектам
+3. Выявление рисков нарушения уникальности данных
+
+## Результаты анализа
+
+### Проанализировано
+- **Всего регистров:** 801
+- **Регистров сведений:** ~400
+- **Регистров накопления:** ~400
+
+### Найдено проблемных регистров: 3
+
+## Критические проблемы (CRITICAL)
+
+### 1. РегистрНакопления.ТМЦВЭксплуатации
+
+**Статус:** Весь регистр удаляется из конфигурации
+
+**Проблема:**
+- Регистр полностью удаляется при обновлении
+- Все данные регистра будут потеряны
+- Регистр используется для учета ТМЦ в эксплуатации
+
+**Измерения регистра:**
+- Организация (CatalogRef.Организации)
+- Подразделение (CatalogRef.СтруктураПредприятия)
+- ФизическоеЛицо (CatalogRef.ФизическиеЛица)
+- Номенклатура (CatalogRef.Номенклатура)
+- Характеристика (CatalogRef.ХарактеристикиНоменклатуры)
+- Партия (CatalogRef.ПартииТМЦВЭксплуатации)
+
+**Риск нарушения уникальности:** НЕТ (регистр полностью удаляется)
+
+**Рекомендации:**
+1. Перед обновлением экспортировать все данные из регистра
+2. Определить, нужны ли эти данные после обновления
+3. Если данные нужны - создать скрипт миграции в альтернативный регистр
+
+---
+
+### 2. РегистрСведений.УдалитьРеестрДокументов
+
+**Статус:** Весь регистр удаляется из конфигурации
+
+**Проблема:**
+- Регистр полностью удаляется при обновлении
+- Все данные регистра будут потеряны
+- Регистр используется для реестра документов
+
+**Измерения регистра:**
+- ТипСсылки (CatalogRef.ИдентификаторыОбъектовМетаданных)
+- Организация (CatalogRef.Организации)
+- ХозяйственнаяОперация (EnumRef.ХозяйственныеОперации)
+- Партнер (CatalogRef.Партнеры)
+- Контрагент (CatalogRef.Контрагенты)
+- НаправлениеДеятельности (CatalogRef.НаправленияДеятельности)
+- Подразделение (CatalogRef.СтруктураПредприятия)
+- МестоХранения (CatalogRef.СтруктураПредприятия, CatalogRef.БанковскиеСчетаОрганизаций, CatalogRef.Кассы, CatalogRef.Склады)
+- ДатаДокументаИБ (Date)
+- Ссылка (множество типов документов)
+- РазделительЗаписи (String)
+
+**Риск нарушения уникальности:** НЕТ (регистр полностью удаляется)
+
+**Рекомендации:**
+1. Перед обновлением экспортировать все данные из регистра
+2. Определить, нужны ли эти данные после обновления
+3. Если данные нужны - создать скрипт миграции в альтернативный регистр
+
+---
+
+### 3. РегистрСведений.РеестрДокументов
+
+**Статус:** Весь регистр удаляется из конфигурации (возможно, это альтернативное имя для УдалитьРеестрДокументов)
+
+**Проблема:**
+- Регистр полностью удаляется при обновлении
+- Все данные регистра будут потеряны
+
+**Риск нарушения уникальности:** НЕТ (регистр полностью удаляется)
+
+---
+
+## Высокий риск (HIGH)
+
+### РегистрНакопления.МатериалыИРаботыВПроизводстве
+
+**Статус:** Имеет удаляемое измерение
+
+**Проблема:**
+- Измерение `УдалитьАналитикаУчетаНоменклатуры` удаляется из регистра
+- Тип измерения: `CatalogRef.КлючиАналитикиУчетаНоменклатуры`
+- Измерение помечено как "(не используется)"
+
+**Измерения регистра:**
+1. Организация
+2. Номенклатура
+3. Характеристика
+4. Подразделение
+5. Серия
+6. Назначение
+7. **УдалитьАналитикаУчетаНоменклатуры** ⚠️ (удаляется)
+
+**Риск нарушения уникальности:** ВЫСОКИЙ
+
+**Почему это критично:**
+- После удаления измерения все записи с разными значениями `УдалитьАналитикаУчетаНоменклатуры` могут стать неразличимыми
+- Если в регистре есть записи с одинаковыми значениями всех остальных измерений, но разными значениями `УдалитьАналитикаУчетаНоменклатуры`, после удаления измерения возникнут дубликаты по ключу
+- Это нарушит уникальность данных регистра накопления
+
+**Пример проблемы:**
+```
+До удаления:
+Запись 1: Организация=ООО "А", Номенклатура=Товар1, УдалитьАналитикаУчетаНоменклатуры=Ключ1
+Запись 2: Организация=ООО "А", Номенклатура=Товар1, УдалитьАналитикаУчетаНоменклатуры=Ключ2
+
+После удаления измерения:
+Запись 1: Организация=ООО "А", Номенклатура=Товар1
+Запись 2: Организация=ООО "А", Номенклатура=Товар1
+→ ДУБЛИКАТ! Нарушение уникальности!
+```
+
+**Рекомендации:**
+
+1. **Перед обновлением:**
+ - Проверить наличие записей с одинаковыми значениями всех измерений, кроме `УдалитьАналитикаУчетаНоменклатуры`
+ - Если такие записи есть - определить стратегию обработки
+
+2. **Варианты решения:**
+
+ **Вариант А: Очистка данных**
+ - Удалить все записи, где `УдалитьАналитикаУчетаНоменклатуры` заполнено
+ - Применить обновление
+ - Проверить целостность данных
+
+ **Вариант Б: Объединение записей**
+ - Найти все группы записей с одинаковыми значениями измерений (кроме удаляемого)
+ - Объединить ресурсы этих записей
+ - Удалить дубликаты
+ - Применить обновление
+
+ **Вариант В: Замена на альтернативное измерение**
+ - Если измерение действительно не используется, можно просто удалить его
+ - Но необходимо убедиться, что нет конфликтов данных
+
+3. **Скрипт проверки:**
+```bsl
+// Проверка на дубликаты после удаления измерения
+Запрос = Новый Запрос;
+Запрос.Текст = "
+|ВЫБРАТЬ
+| МатериалыИРаботыВПроизводстве.Организация КАК Организация,
+| МатериалыИРаботыВПроизводстве.Номенклатура КАК Номенклатура,
+| МатериалыИРаботыВПроизводстве.Характеристика КАК Характеристика,
+| МатериалыИРаботыВПроизводстве.Подразделение КАК Подразделение,
+| МатериалыИРаботыВПроизводстве.Серия КАК Серия,
+| МатериалыИРаботыВПроизводстве.Назначение КАК Назначение,
+| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МатериалыИРаботыВПроизводстве.УдалитьАналитикаУчетаНоменклатуры) КАК КоличествоРазличныхЗначений
+|ИЗ
+| РегистрНакопления.МатериалыИРаботыВПроизводстве КАК МатериалыИРаботыВПроизводстве
+|
+|СГРУППИРОВАТЬ ПО
+| МатериалыИРаботыВПроизводстве.Организация,
+| МатериалыИРаботыВПроизводстве.Номенклатура,
+| МатериалыИРаботыВПроизводстве.Характеристика,
+| МатериалыИРаботыВПроизводстве.Подразделение,
+| МатериалыИРаботыВПроизводстве.Серия,
+| МатериалыИРаботыВПроизводстве.Назначение
+|
+|ИМЕЮЩИЕ
+| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МатериалыИРаботыВПроизводстве.УдалитьАналитикаУчетаНоменклатуры) > 1
+| И МатериалыИРаботыВПроизводстве.УдалитьАналитикаУчетаНоменклатуры НЕ РАВНО ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаНоменклатуры.ПустаяСсылка)
+|";
+Результат = Запрос.Выполнить();
+Если Результат.Пустой() Тогда
+ Сообщить("Дубликатов не найдено. Безопасно удалять измерение.");
+Иначе
+ Сообщить("ВНИМАНИЕ! Найдены дубликаты. Требуется обработка данных перед обновлением.");
+КонецЕсли;
+```
+
+---
+
+## Дополнительные проверки
+
+### Регистры, которые могут иметь проблемы
+
+Следующие регистры требуют дополнительной проверки, так как могут содержать ссылки на удаляемые объекты в измерениях:
+
+1. **Регистры с измерениями типа "Документ"** - могут ссылаться на удаляемые документы:
+ - УдалитьCRM_Сделка
+ - УдалитьCRM_Событие
+ - удалитьCRM_Мероприятие
+ - УдалитьВводОстатковПрослеживаемыхИмпортныхТоваров
+ - УдалитьКассовыйЧекКоррекции
+ - УдалитьПроизвольныйЭД
+
+2. **Регистры с измерениями типа "Справочник"** - могут ссылаться на удаляемые справочники:
+ - УдалитьCRM_ПериодыПланирования
+ - УдалитьНастройкиЯндексКассы
+ - УдалитьCRM_РазделыКарточекОбъектов
+
+3. **Регистры с измерениями типа "Перечисление"** - могут ссылаться на удаляемые перечисления:
+ - Приоритеты
+ - ВидСервиса
+ - СокращенияЭД
+ - СостоянияНаличия
+ - ФорматыХраненияОдностраничныхФайлов
+
+**Примечание:** Автоматический анализ не выявил таких регистров, но рекомендуется провести ручную проверку.
+
+---
+
+## План действий
+
+### Этап 1: Подготовка (КРИТИЧНО)
+
+1. ✅ Создать резервную копию базы данных
+2. ✅ Экспортировать данные из проблемных регистров:
+ - РегистрНакопления.ТМЦВЭксплуатации
+ - РегистрСведений.УдалитьРеестрДокументов
+ - РегистрСведений.РеестрДокументов
+3. ✅ Выполнить проверку на дубликаты для регистра МатериалыИРаботыВПроизводстве
+
+### Этап 2: Обработка данных
+
+1. Для регистра **МатериалыИРаботыВПроизводстве**:
+ - Запустить скрипт проверки на дубликаты
+ - Если дубликаты найдены - выполнить объединение записей или очистку
+ - Убедиться, что после обработки дубликатов нет
+
+2. Для удаляемых регистров:
+ - Определить, нужны ли данные после обновления
+ - Если нужны - создать скрипт миграции
+ - Если не нужны - можно просто удалить данные
+
+### Этап 3: Применение обновления
+
+1. Применить обновление конфигурации
+2. Проверить целостность данных
+3. Проверить отсутствие ошибок уникальности
+
+### Этап 4: Верификация
+
+1. Проверить работу регистра МатериалыИРаботыВПроизводстве
+2. Убедиться, что данные корректны
+3. Провести функциональное тестирование
+
+---
+
+## Выводы
+
+1. **Найдено 3 критических проблемы:**
+ - 2 регистра полностью удаляются (ТМЦВЭксплуатации, УдалитьРеестрДокументов)
+ - 1 регистр имеет удаляемое измерение (МатериалыИРаботыВПроизводстве)
+
+2. **Главный риск:** РегистрНакопления.МатериалыИРаботыВПроизводстве может потерять уникальность данных после удаления измерения
+
+3. **Рекомендация:** Обязательно выполнить проверку на дубликаты и обработку данных перед обновлением
+
+---
+
+## Инструменты
+
+Созданы следующие инструменты для анализа:
+
+1. **deep_register_analysis.py** - скрипт для автоматического анализа регистров
+2. **analyze_registers.py** - базовый скрипт анализа
+3. **find_references.py** - скрипт для поиска ссылок на удаляемые объекты
+
+Все отчеты сохраняются в файлы:
+- `deep_register_analysis_report.txt` - детальный отчет
+- `register_analysis_report.txt` - базовый отчет
+- `references_report.txt` - отчет о ссылках
+
diff --git a/docs/Инструкция_по_исправлению.md b/docs/Инструкция_по_исправлению.md
new file mode 100644
index 0000000..674ba1f
--- /dev/null
+++ b/docs/Инструкция_по_исправлению.md
@@ -0,0 +1,258 @@
+---
+title: Инструкция по исправлению ошибок обновления конфигурации 1С
+author: Руководитель отдела ИТ Кудрявцев М.А. (kma@rhana.com)
+version: 1.0
+date_created: 2025-12-09
+date_modified: 2025-12-09
+show_metadata_block: true
+show_index_link: true
+---
+
+# Инструкция по исправлению ошибок обновления конфигурации 1С
+
+> 📚 **См. также:** [Оглавление документов](INDEX.md) | [Анализ ошибок обновления](Анализ_ошибок_обновления.md) | [Быстрое решение](Быстрое_решение.md) | [Глубинный анализ регистров](Глубинный_анализ_регистров.md)
+
+## Шаг 1: Анализ проблемы
+
+### 1.1. Запуск скрипта поиска ссылок
+
+```bash
+python find_references.py CRM3devLocal
+```
+
+Скрипт создаст файл `references_report.txt` с детальным отчетом о всех найденных ссылках.
+
+### 1.2. Анализ отчета
+
+Откройте `references_report.txt` и проанализируйте:
+- Какие объекты используются наиболее часто
+- В каких файлах находятся ссылки
+- Критичность использования каждого объекта
+
+## Шаг 2: Подготовка к исправлению
+
+### 2.1. Создание резервной копии
+
+**ВАЖНО!** Перед любыми изменениями создайте резервную копию конфигурации:
+
+1. В конфигураторе 1С: `Конфигурация → Сохранить конфигурацию в файлы...`
+2. Сохраните в отдельную папку с датой (например, `CRM3devLocal_backup_2024`)
+
+### 2.2. Экспорт конфигурации для анализа
+
+Если конфигурация еще не экспортирована:
+1. `Конфигурация → Выгрузить конфигурацию в файлы...`
+2. Укажите папку `CRM3devLocal/src`
+
+## Шаг 3: Исправление по категориям
+
+### 3.1. Подсистемы
+
+**Проблема:** 5 подсистем ссылаются на `Подсистема.ЭлектронноеВзаимодействие.Справочная информация`
+
+**Решение:**
+1. Откройте файл справочной информации подсистемы
+2. Найдите ссылки на удаляемые подсистемы
+3. Удалите или закомментируйте эти ссылки
+
+**Файлы для проверки:**
+- `src/Subsystems/ЭлектронноеВзаимодействие/Subsystem/Information/`
+
+### 3.2. Элементы стилей
+
+**Проблема:** `ЭлементСтиля.ЦветГиперссылки` используется в формах
+
+**Решение:**
+1. Найдите все использования в формах (см. отчет)
+2. Замените на альтернативный стиль или удалите свойство
+
+**Файлы для проверки:**
+- `Справочник.Номенклатура.Форма.ПодобныеТовары.Форма`
+- `Справочник.ШаблоныДоговоров.Форма.ФормаПечати.Форма`
+- `Справочник.Партнеры.Форма.CRM_ФормаЭлемента.Форма`
+- `Документ.ЗаказПоставщику.Форма.ФормаЗакрытия.Форма`
+
+**Пример замены:**
+```xml
+
+
+ ЭлементСтиля.ЦветГиперссылки
+
+
+
+
+ #0000FF
+
+```
+
+### 3.3. Общие картинки
+
+**Проблема:** Множество картинок используется в формах
+
+**Решение:**
+1. Для каждой картинки определите, можно ли ее удалить
+2. Если нет - создайте альтернативную картинку или замените на текст
+
+**Приоритетные картинки:**
+- `ОбщаяКартинка.Комментарий` - используется в 5 формах
+- `ОбщаяКартинка.ЭлектронныйДокументОшибкаПодписи` - используется в 5 формах
+- Остальные - по необходимости
+
+### 3.4. Общие модули
+
+**Проблема:** 25+ модулей используются в коде
+
+**Решение:**
+
+#### Вариант А: Создание оберток (рекомендуется)
+
+1. Создайте новый общий модуль `ОбменДаннымиСВнешнимиСистемамиОбертка`
+2. Скопируйте необходимые методы из удаляемого модуля
+3. Замените вызовы в коде
+
+#### Вариант Б: Удаление функциональности
+
+1. Найдите все вызовы методов модуля
+2. Удалите или закомментируйте код, использующий эти методы
+3. Добавьте заглушки, если необходимо
+
+**Пример:**
+```bsl
+// Было
+ОбменДаннымиСВнешнимиСистемами.ОтправитьДанные(Параметры);
+
+// Стало (вариант А)
+ОбменДаннымиСВнешнимиСистемамиОбертка.ОтправитьДанные(Параметры);
+
+// Или (вариант Б)
+// Функциональность отключена
+// ОбменДаннымиСВнешнимиСистемами.ОтправитьДанные(Параметры);
+```
+
+### 3.5. Реквизиты справочников и документов
+
+**Проблема:** Множество реквизитов используется в формах
+
+**Решение:**
+1. Откройте каждую форму из отчета
+2. Удалите элементы формы, связанные с удаляемыми реквизитами
+3. Обновите код формы, если он использует эти реквизиты
+
+**Критичные реквизиты:**
+- `Справочник.Номенклатура.Реквизит.СтавкаНДС` - используется в форме
+- Реквизиты документов `УдалитьCRM_*` - используются в формах
+
+**Пример:**
+```bsl
+// В коде формы найти и удалить/закомментировать:
+// ЭлементыФормы.СтавкаНДС
+// Объект.СтавкаНДС
+```
+
+### 3.6. Перечисления
+
+**Проблема:** 5 перечислений используются в типах данных и коде
+
+**Решение:**
+
+#### Для `Перечисление.Приоритеты`:
+1. Найти все использования в документах
+2. Заменить на альтернативное перечисление или удалить реквизит
+
+**Документы с реквизитом `УдалитьПриоритет`:**
+- `Документ.ЗаданиеНаПеревозку`
+- `Документ.ЗаказКлиента`
+- `Документ.ЗаказПоставщику`
+- `Документ.ЗаявкаНаВозвратТоваровОтКлиента`
+- `Документ.ЗаявкаНаРасходованиеДенежныхСредств`
+- `Документ.ОрдерНаПеремещениеТоваров`
+- `Документ.РасходныйОрдерНаТовары`
+
+**Действия:**
+1. Удалить реквизит `УдалитьПриоритет` из этих документов
+2. Удалить элементы формы, связанные с этим реквизитом
+3. Обновить код, использующий этот реквизит
+
+#### Для других перечислений:
+Аналогично - найти использования и удалить/заменить
+
+### 3.7. Отчеты и обработки
+
+**Проблема:** Отчеты и обработки используются в интерфейсе
+
+**Решение:**
+1. Удалить команды, ссылающиеся на удаляемые отчеты/обработки
+2. Удалить пункты меню, связанные с ними
+3. Обновить интерфейсы
+
+## Шаг 4: Проверка и тестирование
+
+### 4.1. Компиляция конфигурации
+
+1. Откройте конфигуратор
+2. `Конфигурация → Проверить конфигурацию`
+3. Исправьте все ошибки компиляции
+
+### 4.2. Проверка обновления
+
+1. `Конфигурация → Сравнить, объединить с конфигурацией из файла...`
+2. Выберите конфигурацию `crm326/crm326_test`
+3. Проверьте, что ошибок о ссылках больше нет
+
+### 4.3. Функциональное тестирование
+
+1. Запустите конфигурацию в режиме предприятия
+2. Проверьте основные функции
+3. Убедитесь, что удаленные объекты не вызывают ошибок
+
+## Шаг 5: Применение обновления
+
+После исправления всех ошибок:
+
+1. `Конфигурация → Обновить конфигурацию базы данных...`
+2. Выберите конфигурацию `crm326/crm326_test`
+3. Следуйте инструкциям мастера обновления
+
+## Чек-лист исправлений
+
+- [ ] Создана резервная копия
+- [ ] Запущен скрипт поиска ссылок
+- [ ] Проанализирован отчет
+- [ ] Исправлены ссылки на подсистемы
+- [ ] Исправлены ссылки на элементы стилей
+- [ ] Исправлены ссылки на общие картинки
+- [ ] Исправлены ссылки на общие модули
+- [ ] Исправлены ссылки на реквизиты
+- [ ] Исправлены ссылки на перечисления
+- [ ] Исправлены ссылки на отчеты и обработки
+- [ ] Конфигурация компилируется без ошибок
+- [ ] Проверка обновления проходит успешно
+- [ ] Проведено функциональное тестирование
+
+## Дополнительные рекомендации
+
+1. **Ведите журнал изменений**: Записывайте все изменения для последующего анализа
+2. **Тестируйте поэтапно**: После исправления каждой категории проверяйте компиляцию
+3. **Используйте систему контроля версий**: Коммитьте изменения после каждого этапа
+4. **Консультируйтесь с командой**: При сомнениях в критичности объекта
+
+## Автоматизация (опционально)
+
+Для массовой замены можно использовать скрипты поиска и замены:
+
+```python
+# Пример скрипта для замены
+import re
+
+def replace_in_file(file_path, old_pattern, new_text):
+ with open(file_path, 'r', encoding='utf-8') as f:
+ content = f.read()
+
+ new_content = content.replace(old_pattern, new_text)
+
+ with open(file_path, 'w', encoding='utf-8') as f:
+ f.write(new_content)
+```
+
+**ВНИМАНИЕ:** Используйте автоматизацию с осторожностью и всегда проверяйте результаты!
+
diff --git a/docs/ТЗ_минимальная_реализация_графы_5б_УПД_2026-04-21.md b/docs/ТЗ_минимальная_реализация_графы_5б_УПД_2026-04-21.md
new file mode 100644
index 0000000..8ac1fca
--- /dev/null
+++ b/docs/ТЗ_минимальная_реализация_графы_5б_УПД_2026-04-21.md
@@ -0,0 +1,634 @@
+---
+title: Техническое задание - минимальная реализация графы 5б в УПД (через расширение)
+version: 1.1
+date_created: 2026-04-21
+date_modified: 2026-04-21
+author: Руководитель отдела ИТ Кудрявцев М.А. (kma@rhana.com)
+description: Детализированное техническое задание с конкретными объектами и кодовыми фрагментами для минимальной реализации графы 5б в УПД с приоритетом реализации через расширение crm3-dev.rhana.
+status: К реализации
+extension: CRM3devLocal / CRM3devLocal.Рана
+show_metadata_block: true
+show_index_link: true
+show_toc: true
+---
+
+# Техническое задание
+
+## 1. Общая информация
+
+### 1.1. Дата документа
+21.04.2026
+
+### 1.2. Основание
+Результаты повторного анализа `crm3-dev` + `crm3-dev.rhana` в сравнении с `crm3-26-promo` (версия `3.1.35.11`) по функционалу заполнения графы 5б в УПД.
+
+### 1.3. Цель
+Реализовать в старой конфигурации минимально необходимую логику заполнения графы **5б** в печатной форме УПД за счет перехода на новые макеты `ПФ_MXL_УниверсальныйПередаточныйДокумент2026` и `ПФ_MXL_УниверсальныйПередаточныйДокумент2026Прослеж` (из `crm3-26-promo`) и передачи в них параметра `АвансовыеСчетаФактуры`, с максимальной локализацией изменений в расширении `упд5б`.
+
+---
+
+## 2. Архитектурный принцип реализации
+
+### 2.1. Приоритет: расширение
+Реализация выполняется **в первую очередь через расширение** `crm3-dev.rhana`.
+
+Целевой порядок:
+1. Подготовка данных для графы 5б - в расширении документа `СчетФактураВыданный`.
+2. Вывод в печатную форму УПД - в расширении `ПечатьОбщихФорм`.
+3. Изменения в базе `crm3-dev` - только если конкретный метод нельзя корректно расширить.
+
+### 2.2. Допустимый fallback на базу
+Если нужная точка не расширяема:
+1. фиксируется причина технического ограничения;
+2. в базе делается минимальный точечный change;
+3. вся остальная логика остается в расширении.
+
+---
+
+## 3. Объем и ограничения
+
+### 3.1. Включено в объем работ
+1. Формирование представления авансовых счетов-фактур для графы 5б.
+2. Передача значения в набор данных печати УПД (`РезультатПоШапке`).
+3. Перенос в расширение `упд5б` макетов `ОбщийМакет.ПФ_MXL_УниверсальныйПередаточныйДокумент2026` и `ОбщийМакет.ПФ_MXL_УниверсальныйПередаточныйДокумент2026Прослеж` из `crm3-26-promo`.
+4. Вывод значения графы 5б в новых макетах 2026.
+5. Минимальные изменения, достаточные для работоспособности графы 5б без изменения логики старых веток макетов.
+
+### 3.2. Не включено в объем работ
+1. Полный перенос ветки печатных форм СФ/УПД/УКД 2.5.
+2. Перенос всех функциональных опций и макетов из `crm3-26-promo`.
+3. Масштабный рефакторинг печати УПД.
+4. Изменение логики выбора исторических макетов `..._ru`, `..._625_ru`, `...981_ru`, `...534_ru`.
+
+---
+
+## 4. Карта объектов и изменений
+
+### 4.1. Обязательные объекты в расширении
+
+1. `crm3-dev.rhana/src/Documents/СчетФактураВыданный/Ext/ManagerModule.bsl`
+ Назначение:
+ - формирование `ПредставлениеАвансовыеСчетаФактуры`;
+ - расширение подготовки данных для УПД.
+
+2. `crm3-dev.rhana/src/DataProcessors/ПечатьОбщихФорм/Ext/ManagerModule.bsl`
+ Назначение:
+ - чтение `ДанныеПечати.ПредставлениеАвансовыеСчетаФактуры`;
+ - заполнение `ОбластьШапка.Параметры.АвансовыеСчетаФактуры`.
+
+3. Макеты УПД в расширении `упд5б` (раздел `CommonTemplates`)
+ Назначение:
+ - перенос из `crm3-26-promo` макетов:
+ - `ПФ_MXL_УниверсальныйПередаточныйДокумент2026`;
+ - `ПФ_MXL_УниверсальныйПередаточныйДокумент2026Прослеж`;
+ - использование в печати УПД для периода 2026+.
+
+4. Макет УПД в расширении (`Templates` объекта `ПечатьОбщихФорм`)
+ Назначение:
+ - сохранить совместимость со старой веткой печати;
+ - без обязательной доработки исторических шаблонов в рамках минимальной задачи.
+
+### 4.2. Объекты базы (только при невозможности расширить)
+
+1. `crm3-dev/src/Documents/СчетФактураВыданный/Ext/ManagerModule.bsl`
+2. Базовый макет УПД.
+
+---
+
+## 5. Детализация реализации по объектам
+
+### 5.1. Расширение документа `СчетФактураВыданный`
+
+Файл: `crm3-dev.rhana/src/Documents/СчетФактураВыданный/Ext/ManagerModule.bsl`
+
+Необходимо расширить:
+1. `ПоместитьВременнуюТаблицуПлатежноРасчетныхДокументов(...)`
+ - добавить колонку `СтрокаАвансовыеСчетаФактуры`;
+ - заполнять ее из функции `упд5б_СтрокаАвансовыеСчетаФактуры(...)`;
+ - включить колонку в итоговую выгрузку в `ТаблицаПлатежноРасчетныеДокументы`.
+
+ Конкретный код (фрагмент для вставки по месту):
+
+```bsl
+// 1) Добавление колонки в сводную ТЗ
+ПлатежноРасчетныеДокументыСводно.Колонки.Добавить("СтрокаАвансовыеСчетаФактуры",
+ Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(1000)));
+
+// 2) Заполнение значения в цикле по счетам-фактурам
+НоваяСтрока = ПлатежноРасчетныеДокументыСводно.Добавить();
+НоваяСтрока.Ссылка = ВыборкаСчетФактур.СчетФактура;
+НоваяСтрока.СтрокаПлатежноРасчетныеДокументы = СтрокаРасчетноПлатежныхДокументов(ПлатежноРасчетныеДокументы);
+НоваяСтрока.СтрокаАвансовыеСчетаФактуры = упд5б_СтрокаАвансовыеСчетаФактуры(ПлатежноРасчетныеДокументы);
+
+// 3) Выгрузка в ВТ, чтобы поле было доступно в дальнейших запросах
+Запрос.Текст =
+"ВЫБРАТЬ
+| Таблица.Ссылка,
+| Таблица.СтрокаПлатежноРасчетныеДокументы,
+| Таблица.СтрокаАвансовыеСчетаФактуры
+|ПОМЕСТИТЬ ТаблицаПлатежноРасчетныеДокументы
+|ИЗ
+| &ПлатежноРасчетныеДокументы КАК Таблица";
+```
+
+2. `ТекстЗапросаПолученияНомеровИДатПлатежноРасчетныхДокументов()`
+ - добавить извлечение связанных авансовых СФ (`Документ.СчетФактураВыданныйАванс`);
+ - добавить поля:
+ - `НомерСчетаФактурыНаАванс`
+ - `ДатаСчетаФактурыНаАванс`
+ - `НомерИсправленияСчетаФактурыНаАванс`
+ - `ДатаИсправленияСчетаФактурыНаАванс`;
+ - внедрять как цельный расширяемый блок по шаблону из раздела `6.3`.
+
+3. Формирование поля в запросе шапки:
+ - `ПредставлениеАвансовыеСчетаФактуры`.
+
+4. Новая функция в расширении:
+ - `упд5б_СтрокаАвансовыеСчетаФактуры(...) Экспорт`.
+
+### 5.2. Расширение печати УПД
+
+Файл: `crm3-dev.rhana/src/DataProcessors/ПечатьОбщихФорм/Ext/ManagerModule.bsl`
+
+В `упд5б_ЗаполнитьТабличныйДокументУПД(...)` добавить:
+1. извлечение значения графы 5б из `ДанныеПечати`:
+ - `ПредставлениеАвансовыеСчетаФактуры`;
+2. fallback:
+ - `№ -- от --, исправление № -- от --`;
+3. заполнение параметра шапки:
+ - `ОбластьШапка.Параметры.АвансовыеСчетаФактуры`.
+
+### 5.3. Макет УПД
+
+По результатам глубокого анализа:
+1. в `crm3-26-promo` параметр 5б реализован в коде печати и применяется в ветке новых макетов:
+ - `ОбщийМакет.ПФ_MXL_УниверсальныйПередаточныйДокумент2026`;
+ - `ОбщийМакет.ПФ_MXL_УниверсальныйПередаточныйДокумент2026Прослеж`;
+2. в `crm3-dev` отсутствует раздел `CommonTemplates` с указанными макетами;
+3. в `crm3-dev.rhana` ветка 2026 сейчас переключается на `...1096_ru`, что не дает использовать новый шаблон 2026 с параметром 5б по эталонной схеме `crm3-26-promo`.
+
+Требование минимальной задачи по макетам:
+1. создать в расширении `упд5б` раздел `CommonTemplates` и перенести из `crm3-26-promo`:
+ - `ПФ_MXL_УниверсальныйПередаточныйДокумент2026`;
+ - `ПФ_MXL_УниверсальныйПередаточныйДокумент2026Прослеж`;
+2. в процедуре `ЗаполнитьТабличныйДокументУПД(...)` расширения `упд5б` для ветки 2026 использовать только эти новые макеты;
+3. логику выбора и применения исторических макетов (`..._ru`, `..._625_ru`, `...981_ru`, `...534_ru`) не менять;
+4. обеспечить установку `ОбластьШапка.Параметры.АвансовыеСчетаФактуры` в ветке печати, где используется макет 2026/2026Прослеж.
+
+Конкретный код для вставки приведен в разделе `6.5`.
+
+Требование по переносу доработок из текущего расширения `crm3-dev.rhana` в новое расширение `упд5б`:
+1. перенести только ветку выбора макета периода 2026;
+2. заменить использование `ПФ_MXL_УниверсальныйПередаточныйДокумент1096_ru` на `ОбщийМакет.ПФ_MXL_УниверсальныйПередаточныйДокумент2026` и `...2026Прослеж`;
+3. оставить существующие ветки до 2026 без изменений.
+
+---
+
+## 6. Конкретные кодовые фрагменты (шаблоны для внедрения)
+
+### 6.0. Общий шаблон расширяемого метода
+
+Все изменения в существующих методах выполнять в форме:
+
+```bsl
+&ИзменениеИКонтроль("ИмяМетодаБазы")
+Функция упд5б_ИмяМетодаБазы(...)
+
+ #Удаление
+ ТекстБазовогоКода = "...";
+ #КонецУдаления
+
+ #Вставка
+ // Новый или измененный фрагмент
+ #КонецВставки
+
+КонецФункции
+```
+
+### 6.1. Функция строкового представления графы 5б
+
+```bsl
+Функция упд5б_СтрокаАвансовыеСчетаФактуры(ПлатежноРасчетныеДокументы) Экспорт
+
+ СтрокаНомеровИДата = "";
+ Для каждого СтрокаДокумента Из ПлатежноРасчетныеДокументы Цикл
+ Если ЗначениеЗаполнено(СтрокаДокумента.НомерСчетаФактурыНаАванс) Тогда
+ ТекстСтроки = СтрШаблон(
+ НСтр("ru='№ %1 от %2, исправление № %3 от %4'"),
+ СтрокаДокумента.НомерСчетаФактурыНаАванс,
+ Формат(СтрокаДокумента.ДатаСчетаФактурыНаАванс, "ДФ=dd.MM.yyyy"),
+ ?(ЗначениеЗаполнено(СтрокаДокумента.НомерИсправленияСчетаФактурыНаАванс), СтрокаДокумента.НомерИсправленияСчетаФактурыНаАванс, "--"),
+ ?(ЗначениеЗаполнено(СтрокаДокумента.ДатаИсправленияСчетаФактурыНаАванс), Формат(СтрокаДокумента.ДатаИсправленияСчетаФактурыНаАванс, "ДФ=dd.MM.yyyy"), "--")
+ );
+ СтрокаНомеровИДата = СтрокаНомеровИДата
+ + ?(ПустаяСтрока(СтрокаНомеровИДата), "", "; ")
+ + ТекстСтроки;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат СтрокаНомеровИДата;
+
+КонецФункции
+```
+
+### 6.2. Расширение `ПоместитьВременнуюТаблицуПлатежноРасчетныхДокументов(...)`
+
+```bsl
+&ИзменениеИКонтроль("ПоместитьВременнуюТаблицуПлатежноРасчетныхДокументов")
+Функция упд5б_ПоместитьВременнуюТаблицуПлатежноРасчетныхДокументов(МенеджерВременныхТаблиц, МассивАналитикУчетаПоПартнерам)
+
+ #Удаление
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Таблица.Ссылка,
+ | Таблица.СтрокаПлатежноРасчетныеДокументы
+ |ПОМЕСТИТЬ ТаблицаПлатежноРасчетныеДокументы
+ |ИЗ
+ | &ПлатежноРасчетныеДокументы КАК Таблица";
+ #КонецУдаления
+
+ #Вставка
+ // [+] Добавляем отдельную колонку для текстового представления графы 5б
+ // во временную таблицу ТаблицаПлатежноРасчетныеДокументы.
+ // [+] Заполняем колонку через новую функцию
+ // упд5б_СтрокаАвансовыеСчетаФактуры(...).
+ // [+] Включаем колонку в финальный набор, который участвует в формировании шапки печати.
+ ПлатежноРасчетныеДокументыСводно.Колонки.Добавить("СтрокаАвансовыеСчетаФактуры",
+ Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(1000)));
+
+ НоваяСтрока.СтрокаАвансовыеСчетаФактуры =
+ упд5б_СтрокаАвансовыеСчетаФактуры(ПлатежноРасчетныеДокументы);
+
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Таблица.Ссылка,
+ | Таблица.СтрокаПлатежноРасчетныеДокументы,
+ | Таблица.СтрокаАвансовыеСчетаФактуры
+ |ПОМЕСТИТЬ ТаблицаПлатежноРасчетныеДокументы
+ |ИЗ
+ | &ПлатежноРасчетныеДокументы КАК Таблица";
+ #КонецВставки
+
+КонецФункции
+```
+
+### 6.3. Расширение `ТекстЗапросаПолученияНомеровИДатПлатежноРасчетныхДокументов()`
+
+```bsl
+&ИзменениеИКонтроль("ТекстЗапросаПолученияНомеровИДатПлатежноРасчетныхДокументов")
+Функция упд5б_ТекстЗапросаПолученияНомеровИДатПлатежноРасчетныхДокументов()
+
+ #Удаление
+ ТекстЗапроса =
+ "ВЫБРАТЬ РАЗЛИЧНЫЕ
+ | ДанныеПервичныхДокументов.Дата КАК ДатаВходящегоДокумента,
+ | ДанныеПервичныхДокументов.Номер КАК НомерВходящегоДокумента,
+ | ТаблицаДокументов.Ссылка КАК СчетФактура
+ |ИЗ
+ | РасчетыСКлиентами_ОснованияИДокументыОплаты КАК ПлатежныеДокументы
+ |
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ
+ | ТаблицаЗаполненияПлатежноРасчетныхДокументов КАК ТаблицаДокументов
+ | ПО
+ | ПлатежныеДокументы.ОснованиеОплаты = ТаблицаДокументов.ДокументОснование
+ | И ПлатежныеДокументы.АналитикаУчетаПоПартнерам В (&МассивАналитикУчетаПоПартнерам)
+ |
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ
+ | РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов
+ | ПО
+ | ПлатежныеДокументы.Организация = ДанныеПервичныхДокументов.Организация
+ | И ПлатежныеДокументы.ДокументОплаты = ДанныеПервичныхДокументов.Документ
+ |
+ |ГДЕ
+ | ТИПЗНАЧЕНИЯ(ПлатежныеДокументы.ДокументОплаты) <> ТИП(Документ.ВзаимозачетЗадолженности)
+ |
+ |ИТОГИ ПО
+ | СчетФактура
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |УНИЧТОЖИТЬ РасчетыСКлиентами_ОснованияИДокументыОплаты
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |УНИЧТОЖИТЬ ТаблицаЗаполненияПлатежноРасчетныхДокументов";
+ #КонецУдаления
+
+ #Вставка
+ // [+] Этап 1: формируем ВТ втДанныеПлатежноРасчетныхДокументов и
+ // добавляем РасчетныйДокумент для связи с авансовыми СФ.
+ // [+] Этап 2: определяем авансовый СФ и его исправление (если есть),
+ // сворачиваем по СчетФактура.
+ // [+] Этап 3: отдаём полный набор полей, требуемых для формирования строки 5б.
+ // [+] Этап 4: очищаем все созданные ВТ.
+ ТекстЗапроса =
+ "ВЫБРАТЬ РАЗЛИЧНЫЕ
+ | ДанныеПервичныхДокументов.Дата КАК ДатаВходящегоДокумента,
+ | ДанныеПервичныхДокументов.Номер КАК НомерВходящегоДокумента,
+ | ТаблицаДокументов.Ссылка КАК СчетФактура,
+ | ПлатежныеДокументы.РасчетныйДокумент КАК РасчетныйДокумент
+ |ПОМЕСТИТЬ втДанныеПлатежноРасчетныхДокументов
+ |ИЗ
+ | РасчетыСКлиентами_ОснованияИДокументыОплаты КАК ПлатежныеДокументы
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаЗаполненияПлатежноРасчетныхДокументов КАК ТаблицаДокументов
+ | ПО ПлатежныеДокументы.ОснованиеОплаты = ТаблицаДокументов.ДокументОснование
+ | И ПлатежныеДокументы.АналитикаУчетаПоПартнерам В (&МассивАналитикУчетаПоПартнерам)
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов
+ | ПО ПлатежныеДокументы.Организация = ДанныеПервичныхДокументов.Организация
+ | И ПлатежныеДокументы.ДокументОплаты = ДанныеПервичныхДокументов.Документ
+ |ГДЕ
+ | ТИПЗНАЧЕНИЯ(ПлатежныеДокументы.ДокументОплаты) <> ТИП(Документ.ВзаимозачетЗадолженности)
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | втДанныеПлатежноРасчетныхДокументов.РасчетныйДокумент КАК РасчетныйДокумент,
+ | втДанныеПлатежноРасчетныхДокументов.СчетФактура КАК СчетФактура,
+ | СчетФактураАванс.Ссылка КАК СчетФактураАванс,
+ | ЕСТЬNULL(ИсправленныйСчетФактураАванс.Ссылка, ЗНАЧЕНИЕ(Документ.СчетФактураВыданныйАванс.ПустаяСсылка)) КАК ИсправлениеСчетаФактурыАванс,
+ | МАКСИМУМ(СчетФактураАванс.НомерИсправления) КАК НомерИсправления
+ |ПОМЕСТИТЬ втНомераИсправленийСчетовФактурНаАванс
+ |ИЗ
+ | втДанныеПлатежноРасчетныхДокументов КАК втДанныеПлатежноРасчетныхДокументов
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданныйАванс КАК СчетФактураАванс
+ | ПО втДанныеПлатежноРасчетныхДокументов.РасчетныйДокумент = СчетФактураАванс.ДокументОснование
+ | И НЕ СчетФактураАванс.Корректировочный
+ | И СчетФактураАванс.Проведен
+ | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданныйАванс КАК ИсправленныйСчетФактураАванс
+ | ПО СчетФактураАванс.СчетФактураОснование = ИсправленныйСчетФактураАванс.Ссылка
+ | И СчетФактураАванс.Исправление
+ | И НЕ ИсправленныйСчетФактураАванс.Корректировочный
+ | И ИсправленныйСчетФактураАванс.Проведен
+ |СГРУППИРОВАТЬ ПО
+ | втДанныеПлатежноРасчетныхДокументов.РасчетныйДокумент,
+ | втДанныеПлатежноРасчетныхДокументов.СчетФактура,
+ | СчетФактураАванс.Ссылка,
+ | ЕСТЬNULL(ИсправленныйСчетФактураАванс.Ссылка, ЗНАЧЕНИЕ(Документ.СчетФактураВыданныйАванс.ПустаяСсылка))
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ДанныеПлатежноРасчетныхДокументов.РасчетныйДокумент КАК РасчетныйДокумент,
+ | ДанныеПлатежноРасчетныхДокументов.СчетФактура КАК СчетФактура,
+ | ДанныеПлатежноРасчетныхДокументов.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
+ | ДанныеПлатежноРасчетныхДокументов.НомерВходящегоДокумента КАК НомерВходящегоДокумента,
+ | ДанныеСчетаФактурыАванс.Номер КАК НомерСчетаФактурыНаАванс,
+ | ДанныеСчетаФактурыАванс.Дата КАК ДатаСчетаФактурыНаАванс,
+ | СчетаФактурыАванс.НомерИсправления КАК НомерИсправленияСчетаФактурыНаАванс,
+ | ДанныеИсправленияСчетаФактурыАванс.Дата КАК ДатаИсправленияСчетаФактурыНаАванс
+ |ИЗ
+ | втДанныеПлатежноРасчетныхДокументов КАК ДанныеПлатежноРасчетныхДокументов
+ | ЛЕВОЕ СОЕДИНЕНИЕ втНомераИсправленийСчетовФактурНаАванс КАК СчетаФактурыАванс
+ | ПО ДанныеПлатежноРасчетныхДокументов.РасчетныйДокумент = СчетаФактурыАванс.РасчетныйДокумент
+ | И ДанныеПлатежноРасчетныхДокументов.СчетФактура = СчетаФактурыАванс.СчетФактура
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеСчетаФактурыАванс
+ | ПО ДанныеСчетаФактурыАванс.Документ = СчетаФактурыАванс.СчетФактураАванс
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеИсправленияСчетаФактурыАванс
+ | ПО ДанныеИсправленияСчетаФактурыАванс.Документ = СчетаФактурыАванс.ИсправлениеСчетаФактурыАванс
+ |ИТОГИ ПО
+ | СчетФактура
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |УНИЧТОЖИТЬ втНомераИсправленийСчетовФактурНаАванс
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |УНИЧТОЖИТЬ втДанныеПлатежноРасчетныхДокументов
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |УНИЧТОЖИТЬ РасчетыСКлиентами_ОснованияИДокументыОплаты
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |УНИЧТОЖИТЬ ТаблицаЗаполненияПлатежноРасчетныхДокументов";
+ #КонецВставки
+
+ Возврат ТекстЗапроса;
+
+КонецФункции
+```
+
+### 6.4. Расширение `ТекстЗапросаДанныхШапкиДляПечатиСчетаФактуры(ПараметрыПечати)`
+
+```bsl
+&ИзменениеИКонтроль("ТекстЗапросаДанныхШапкиДляПечатиСчетаФактуры")
+Функция упд5б_ТекстЗапросаДанныхШапкиДляПечатиСчетаФактуры(ПараметрыПечати)
+
+ ТекстЗапроса = ТекстЗапроса + "
+ |/////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ДанныеДокумента.Ссылка КАК Ссылка,
+ | ...
+ | ДанныеДокумента.Корректировочный КАК КорректировочныйСчетФактура,
+ | ЕСТЬNULL(ТаблицаПлатежноРасчетныеДокументы.СтрокаПлатежноРасчетныеДокументы,
+ | ДанныеДокумента.СтрокаПлатежноРасчетныеДокументы) КАК СтрокаПоДокументу,
+ | ...
+ |ИЗ
+ | ...";
+
+ #Вставка
+ // [+] Вставлять сразу после базового присваивания ТекстЗапроса (до ветки Если...).
+ ТекстЗапроса = СтрЗаменить(
+ ТекстЗапроса,
+ "| ЕСТЬNULL(ТаблицаПлатежноРасчетныеДокументы.СтрокаПлатежноРасчетныеДокументы,
+ | ДанныеДокумента.СтрокаПлатежноРасчетныеДокументы) КАК СтрокаПоДокументу,",
+ "| ЕСТЬNULL(ТаблицаПлатежноРасчетныеДокументы.СтрокаПлатежноРасчетныеДокументы,
+ | ДанныеДокумента.СтрокаПлатежноРасчетныеДокументы) КАК СтрокаПоДокументу,
+ | ЕСТЬNULL(ТаблицаПлатежноРасчетныеДокументы.СтрокаАвансовыеСчетаФактуры,
+ | ДанныеДокумента.СтрокаАвансовыеСчетаФактуры) КАК ПредставлениеАвансовыеСчетаФактуры,");
+ #КонецВставки
+
+ Если ПечататьСчетаФактурыПолученные Тогда
+ ...
+ #Вставка
+ // [+] Вставлять внутри ветки Если... после формирования текста объединяемой части.
+ ТекстЗапроса = СтрЗаменить(
+ ТекстЗапроса,
+ "| """" КАК СтрокаПоДокументу,",
+ "| """" КАК СтрокаПоДокументу,
+ | """" КАК ПредставлениеАвансовыеСчетаФактуры,");
+ #КонецВставки
+ КонецЕсли;
+
+ Возврат ТекстЗапроса;
+
+КонецФункции
+```
+
+### 6.5. Расширение `ЗаполнитьТабличныйДокументУПД(...)` в `ПечатьОбщихФорм`
+
+Модуль: `crm3-dev.upd5b/src/DataProcessors/ПечатьОбщихФорм/Ext/ManagerModule.bsl`
+
+```bsl
+&ИзменениеИКонтроль("ЗаполнитьТабличныйДокументУПД")
+Процедура упд5б_ЗаполнитьТабличныйДокументУПД(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати)
+
+ #Вставка
+ // === [UPD5B] НАЧАЛО БЛОКА ВСТАВКИ ===
+ МакетУПД_2026 = УправлениеПечатью.МакетПечатнойФормы(
+ "Обработка.ПечатьОбщихФорм.ПФ_MXL_УниверсальныйПередаточныйДокумент2026");
+ МакетУПД_2026Прослеж = УправлениеПечатью.МакетПечатнойФормы(
+ "Обработка.ПечатьОбщихФорм.ПФ_MXL_УниверсальныйПередаточныйДокумент2026Прослеж");
+ ЕстьПостановление2026 = ЛОЖЬ;
+ // === [UPD5B] КОНЕЦ БЛОКА ВСТАВКИ ===
+ #КонецВставки
+
+ #Удаление
+ Если ДействуетПостановление534(ДанныеПечати.Дата, ДанныеПечати.ДатаИсправления) Тогда
+ Макет = МакетУПД_534;
+ ЕстьПостановление534 = Истина;
+ ИначеЕсли ДействуетПостановление981(ДанныеПечати.Дата, ДанныеПечати.ДатаИсправления) Тогда
+ Макет = МакетУПД_981;
+ ЕстьПостановление981 = Истина;
+ ИначеЕсли ВедетсяУчетНДСПоФЗ56(ДанныеПечати.Дата, ДанныеПечати.ДатаИсправления) Тогда
+ Макет = МакетУПД_625;
+ ЕстьПостановление1137_625 = Истина;
+ Иначе
+ Макет = МакетУПД;
+ ЕстьПостановление1137 = Истина;
+ КонецЕсли;
+ #КонецУдаления
+ #Вставка
+ // === [UPD5B] НАЧАЛО БЛОКА ВСТАВКИ ===
+ Если ?(ЗначениеЗаполнено(ДанныеПечати.ДатаИсправления), ДанныеПечати.ДатаИсправления, ДанныеПечати.Дата) >= '20260101' Тогда
+ ЕстьПрослеживаемыеТоварыВТабличнойЧасти = Ложь;
+ Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ДанныеПечати, "ЕстьПрослеживаемыеТоварыВТабличнойЧасти")
+ И ЗначениеЗаполнено(ДанныеПечати.ЕстьПрослеживаемыеТоварыВТабличнойЧасти) Тогда
+ ЕстьПрослеживаемыеТоварыВТабличнойЧасти = ДанныеПечати.ЕстьПрослеживаемыеТоварыВТабличнойЧасти;
+ КонецЕсли;
+
+ Если (ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ДанныеПечати, "ЕстьПрослеживаемыеТовары")
+ И ЗначениеЗаполнено(ДанныеПечати.ЕстьПрослеживаемыеТовары)
+ И ДанныеПечати.ЕстьПрослеживаемыеТовары)
+ Или ЕстьПрослеживаемыеТоварыВТабличнойЧасти Тогда
+ Макет = МакетУПД_2026Прослеж;
+ Иначе
+ Макет = МакетУПД_2026;
+ КонецЕсли;
+ ЕстьПостановление2026 = Истина;
+ ИначеЕсли ДействуетПостановление534(ДанныеПечати.Дата, ДанныеПечати.ДатаИсправления) Тогда
+ Макет = МакетУПД_534;
+ ЕстьПостановление534 = Истина;
+ ИначеЕсли ДействуетПостановление981(ДанныеПечати.Дата, ДанныеПечати.ДатаИсправления) Тогда
+ Макет = МакетУПД_981;
+ ЕстьПостановление981 = Истина;
+ ИначеЕсли ВедетсяУчетНДСПоФЗ56(ДанныеПечати.Дата, ДанныеПечати.ДатаИсправления) Тогда
+ Макет = МакетУПД_625;
+ ЕстьПостановление1137_625 = Истина;
+ Иначе
+ Макет = МакетУПД;
+ ЕстьПостановление1137 = Истина;
+ КонецЕсли;
+ // === [UPD5B] КОНЕЦ БЛОКА ВСТАВКИ ===
+ #КонецВставки
+
+ #Вставка
+ // === [UPD5B] НАЧАЛО БЛОКА ВСТАВКИ ===
+ АвансовыеСчетаФактуры =
+ ?(ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ДанныеПечати, "ПредставлениеАвансовыеСчетаФактуры")
+ И ЗначениеЗаполнено(ДанныеПечати.ПредставлениеАвансовыеСчетаФактуры),
+ ДанныеПечати.ПредставлениеАвансовыеСчетаФактуры,
+ НСтр("ru='№ -- от --, исправление № -- от --'"));
+
+ Если ЕстьПостановление2026 Тогда
+ ОбластьШапка.Параметры.АвансовыеСчетаФактуры = АвансовыеСчетаФактуры;
+ КонецЕсли;
+ // === [UPD5B] КОНЕЦ БЛОКА ВСТАВКИ ===
+ #КонецВставки
+
+КонецПроцедуры
+```
+
+---
+
+## 7. Правила разработки для расширения
+
+1. Все изменения в перехватываемых методах оформлять через `&ИзменениеИКонтроль`.
+2. Новый код помещать в `#Вставка`, удаляемый - в `#Удаление`.
+3. В блоках `#Удаление` не добавлять комментарии и новый текст.
+4. Новые методы расширения именовать с префиксом `упд5б_`.
+5. Сохранять совместимость со старыми документами (обязательный fallback).
+
+### 7.1. Правила `#Удаление` / `#Вставка` для многострочных текстов запроса
+
+1. Директивы применяются к **операторам языка 1С**, а не к частям строкового литерала.
+2. Если меняется многострочный SQL-текст (`ТекстЗапроса = "..."`), в `#Удаление` помещается **весь оператор присваивания**.
+3. Внутрь текста SQL (между кавычками) директивы `#Удаление/#Вставка` не вставляются.
+4. В `#Вставка` вставляется новый оператор присваивания целиком либо последовательность `СтрЗаменить(...)` над полным базовым текстом.
+5. Блок `#Удаление` содержит только удаляемый код (без поясняющих комментариев), комментарии допускаются в `#Вставка`.
+6. При изменении условных операторов (`Если ... Тогда ... Иначе ... КонецЕсли`) заменять **целостный блок управления** в `#Удаление/#Вставка` (от `Если` до `КонецЕсли`), а не отдельный заголовок условия.
+
+### 7.2. Анти-паттерны (что не делать)
+
+1. Не дублировать один и тот же код в `#Удаление` и `#Вставка` без фактических изменений.
+2. Не вставлять директивы `#Удаление/#Вставка` внутрь многострочного SQL-текста.
+3. Не оставлять в `#Удаление` текстовые ориентиры, пояснения и комментарии.
+4. Не менять состав колонок только в одной ветке запроса, если есть `ОБЪЕДИНИТЬ ВСЕ`.
+5. Не использовать имена полей в последующих частях запроса, если эти поля не сформированы в предыдущих `ПОМЕСТИТЬ`.
+
+---
+
+## 8. Поэтапный план реализации
+
+### Этап 1. Подготовка
+1. Создать/активировать объекты расширения:
+ - документ `СчетФактураВыданный`;
+ - обработка `ПечатьОбщихФорм`;
+ - макет УПД.
+2. Подтвердить, какие методы доступны для `&ИзменениеИКонтроль`.
+
+### Этап 2. Реализация данных 5б в расширении документа
+1. Добавить `упд5б_СтрокаАвансовыеСчетаФактуры`.
+2. Расширить ВТ платежно-расчетных документов.
+3. Расширить запрос получения номеров/дат.
+4. Прокинуть `ПредставлениеАвансовыеСчетаФактуры` в `РезультатПоШапке`.
+
+### Этап 3. Реализация вывода в расширении печати
+1. Доработать `р_ЗаполнитьТабличныйДокументУПД`.
+2. Заполнить `ОбластьШапка.Параметры.АвансовыеСчетаФактуры`.
+3. Проверить fallback при отсутствии данных.
+
+### Этап 4. Изменение макета
+1. Добавить параметр в строку 5б.
+2. Проверить визуальное отображение длинного значения.
+
+### Этап 5. Тестирование
+1. Один авансовый СФ.
+2. Несколько авансовых СФ.
+3. Исправленный авансовый СФ.
+4. Отсутствие авансовых СФ.
+5. Регрессия текущих форм УПД.
+
+---
+
+## 9. Критерии приемки
+
+1. Графа 5б заполняется корректными данными авансовых СФ.
+2. При отсутствии данных выводится fallback.
+3. Реализация локализована преимущественно в `crm3-dev.rhana`.
+4. Печатная форма УПД формируется без ошибок.
+5. Регрессии по действующим сценариям отсутствуют.
+
+---
+
+## 10. Оценка трудозатрат
+
+- Этап 1: 1-2 часа
+- Этап 2: 5-8 часов
+- Этап 3: 1-2 часа
+- Этап 4: 1-2 часа
+- Этап 5: 3-5 часов
+
+**Итого:** 11-19 часов.
+
+---
+
+## 11. Результаты поставки
+
+1. Измененные объекты расширения `crm3-dev.rhana` по разделу 4.
+2. Макет УПД расширения с поддержкой графы 5б.
+3. Протокол тестирования с результатами.
+4. Перечень фактических изменений по объектам и методам.
+---
diff --git a/manifest.export_docs.71ab8b6a.json b/manifest.export_docs.71ab8b6a.json
new file mode 100644
index 0000000..1e175f9
--- /dev/null
+++ b/manifest.export_docs.71ab8b6a.json
@@ -0,0 +1,20 @@
+{
+ "tool": "export_docs",
+ "version": "0.3.8",
+ "folder": "docs",
+ "files": [
+ "docs/Checklist_5b_UPD_2026-04-21.md",
+ "docs/INDEX.md",
+ "docs/test.md",
+ "docs/Анализ_ошибок_обновления.md",
+ "docs/Быстрое_решение.md",
+ "docs/Глубинный_анализ_регистров.md",
+ "docs/Инструкция_по_исправлению.md",
+ "docs/ТЗ_минимальная_реализация_графы_5б_УПД_2026-04-21.md"
+ ],
+ "sources": [
+ "/Users/mihailkudravcev/projects/crm3-26/docs/Checklist_5b_UPD_2026-04-21.md",
+ "/Users/mihailkudravcev/projects/crm3-26/docs/test.md",
+ "/Users/mihailkudravcev/projects/crm3-26/docs/Анализ_ошибок_обновления.md"
+ ]
+}