--- code: DOC-221280 title: "6. Справочник \"Группы компаний и организации\"" --- # 6. Справочник "Группы компаний и организации" ### Структура справочника: ссылка на модель данных: [2. Модель данных (сущности)](project/Document/DOC-019834) ### Статусная модель справочника: [4. Статусная модель](project/Document/DOC-037734) ### Ролевая модель справочника: [5. Ролевая модель](project/Document/DOC-036960) ### Визуальная форма справочника: Экран открывается из бокового меню, раздел "Справочники", пункт "Справочник: ГК и организации". Заголовок страницы "Группы компаний и организаций", справа кнопка "Импорт из файла". Ниже - панель фильтров, под ней рабочая область из двух панелей: * левая панель "Группы компаний" - список ГК; * правая панель - состав выбранной ГК с вкладками "ЮЛ", "ГСК", "ГСЗ". #### Фильтры: * Фильтр "Базовый РФ" - выпадающий список филиалов (значение по умолчанию "Все РФ"), ограничивает список ГК группами выбранного филиала; * Строка поиска "Поиск по наименованию или ID" - поиск по наименованию и CRM ID группы. #### Левая панель "Группы компаний": Панель отображает все Группы компаний по выбранным фильтрам, а также счетчик компаний и дает возможность создать ГК. Список ГК содержит - наименование ГК, ID ГК в CRM, счетчик организаций. #### Правая панель "Состав ГК" Показывает компании выбранной ГК. В панели существует несколько вкладок: * ЮЛ - таблица организаций выбранной ГК. Отображаются активные записи, есть возможность активировать чек-бокс "Архив", который делает видимыми архивные компании. На вкладке есть возможность создать новую компанию в выбранном ГК. * ГСК - таблица со всеми ГСК, входящих в выбранный ГК. На вкладке есть возможность создать новую ГСК в выбранном ГК. * ГСЗ - таблица со всеми ГСЗ, входящих в выбранный ГК. На вкладке есть возможность создать новую ГСЗ в выбранном ГК. ![](/files/obj/CmfDocument/CmfDocument%3Aaf4/CmfDocument%3Aaf4ceb56-9d30-11f1-a177-5e0a7cdca547/image2026-7-24_10-27-45.png?version=1) ### Модальные окна справочника: #### Создать / Изменить группу компаний | Поле | Системное наименование | Правила заполнения | Обязательность | | --- | --- | --- | --- | | Название ГК | name | ручной ввод | да | | ID ГК в CRM | crm\_id | ручной ввод при наличии ID из CRM | да, уникальное | | Базовый РФ ГК | base\_regional\_office\_id | выбор из regional\_office | да | ![](/files/obj/CmfDocument/CmfDocument%3Aaf4/CmfDocument%3Aaf4ceb56-9d30-11f1-a177-5e0a7cdca547/image2026-7-24_12-40-24.png?version=1) #### Создать / Изменить юридическое лицо | Поле | Системное наименование | Правила заполнения | Обязательность | | --- | --- | --- | --- | | ИНН | inn | ручной ввод | да, 10 знаков для ЮЛ и 12 для ИП | | ID ЮЛ в CRM | crm\_id | ручной ввод | уникальность | | Тип | entity\_type | выбор: ЮЛ / ИП | да | | Наименование организации | name | ручной ввод | да | | Альтернативные наименования | legal\_entity\_alias | ввод синонима (возможно несколько значений) | нет | | Входит в ГСК | related\_group\_member (kind = gsk) | выбор одной ГСК из групп текущей ГК | нет | | Входит в ГСЗ | related\_group\_member (kind = gsz) | выбор одной ГСЗ | нет | ![](/files/obj/CmfDocument/CmfDocument%3Aaf4/CmfDocument%3Aaf4ceb56-9d30-11f1-a177-5e0a7cdca547/image2026-7-24_13-6-28.png?version=1) #### Перевести ЮЛ в другую ГК Снимок прежнего состояния пишется в **legal\_entity\_history** , у записи меняется **company\_group\_id.** | Поле | Системное наименование | Правила заполнения | Обязательность | | --- | --- | --- | --- | | ЮЛ | legal\_entity.name | | нет | | Текущая ГК | company\_group.name | | нет | | Новая ГК | company\_group\_id | выбор из справочника ГК | да | | ?? Дата перевода | дата события | выбор даты | да | ![](/files/obj/CmfDocument/CmfDocument%3Aaf4/CmfDocument%3Aaf4ceb56-9d30-11f1-a177-5e0a7cdca547/image2026-7-24_13-24-45.png?version=1) #### Вывести ЮЛ из состава ГК Запись переходит в архив с выбранным событием, текущие версии нахождения в ГСК/ГСЗ закрываются. | Поле | Системное наименование | Правила заполнения | Обязательность | | --- | --- | --- | --- | | ЮЛ | legal\_entity.name | | - | | Событие | тип события | выбор: "Закрытие" / "Переход в другую ГК" | да | | Дата закрытия | close\_date | выбор даты | да | | Комментарий | комментарий события | текст | нет | ![](/files/obj/CmfDocument/CmfDocument%3Aaf4/CmfDocument%3Aaf4ceb56-9d30-11f1-a177-5e0a7cdca547/image2026-7-27_11-17-43.png?version=1) #### Создать / Изменить ГСК и ГСЗ Группа создается в рамках выбранной ГК. Состав участников ведется через поле "Входит в ГСК/ГСЗ" карточки ЮЛ. | Поле | Системное наименование | Правила заполнения | Обязательность | | --- | --- | --- | --- | | ID ГСК (ГСЗ) в CRM | related\_group.code | ручной ввод | уникальность | | Наименование | related\_group.name | ручной ввод | да | | Дата создания | related\_group.created\_date | выбор даты | да | ![](/files/obj/CmfDocument/CmfDocument%3Aaf4/CmfDocument%3Aaf4ceb56-9d30-11f1-a177-5e0a7cdca547/image2026-7-27_11-24-44.png?version=1) #### Импорт групп компаний из файла Маппинг: ИНН -> legal\_entity.inn, Наименование -> legal\_entity.name, Тип -> legal\_entity.entity\_type, Базовый РФ ГК -> regional\_office (поиск по наименованию), ID ГК -> company\_group.crm\_id (поиск существующей ГК, при отсутствии - создание). Строка с ошибкой не импортируется: сообщение пишется в лог, обработка продолжается со следующей строки. Дубль ИНН обрабатывается по выбранной стратегии - пропуск или обновление записи. ![](/files/obj/CmfDocument/CmfDocument%3Aaf4/CmfDocument%3Aaf4ceb56-9d30-11f1-a177-5e0a7cdca547/image2026-7-27_11-32-23.png?version=1) Итоговая визуальная форма созданных записей: | | | | | | | | | | --- | --- | --- | --- | --- | --- | --- | --- | | ИНН | iD ГК | Базовый РФ ГК в CRM | Группа компаний | Организация | входит в ГСК | входит в ГСЗ | Тип | | //поиск по полю | //поиск по полю | //поиск по полю | //поиск по полю | //поиск по полю | //поиск по полю | //поиск по полю | //поиск по полю | | 1626011106 | 1-5A6WW8Q | Татарстанский РФ | РМ Агро | ООО АПК "Продовольственная Программа" | да | да | ЮЛ | | 1626011089 | 1-5A6WW8Q | Татарстанский РФ | РМ Агро | ООО "РМ Агро" | да | да | ЮЛ | | 162600787296 | 1-5A6WW8Q | Татарстанский РФ | РМ Агро | ИП Мутигуллин Р.М. | да | | ИП | | 3606007641 | 1-5APQRQT | Воронежский РФ | Молвест | ООО Мамоновские фермы | да | входит в ГСЗ | ЮЛ | | 3601011500 | 1-5APQRQT | Воронежский РФ | Молвест | ООО ЭкоКорм | да | входит в ГСЗ | ЮЛ | | 3662104342 | 1-5APQRQT | Воронежский РФ | Молвест | ООО Партнер – МК | | | ЮЛ | | 3612007495 | 1-5APQRQT | Воронежский РФ | Молвест | ООО Новомарковское | | | ЮЛ | | 3606000283 | 1-5APQRQT | Воронежский РФ | Молвест | ОАО Завод молочный Верхнемамонский | | | ЮЛ | | 3603004667 | 1-5APQRQT | Воронежский РФ | Молвест | ОАО Богучармолоко | | | ЮЛ | | 3601011404 | 1-5APQRQT | Воронежский РФ | Молвест | ЗАО Агрокомбинат Николаевский | | | ЮЛ | | 7743096552 | 1-5APQRQT | Воронежский РФ | Молвест | ООО РОСОМУ | | | ЮЛ | | 3612006533 | 1-5APQRQT | Воронежский РФ | Молвест | ООО Продвижение | | | ЮЛ | | 2321003134 | 1-5APQRQT | Воронежский РФ | Молвест | ЗАО Сыркомбинат Тихорецкий | | | ЮЛ | | 7303004208 | 1-5APQRQT | Воронежский РФ | Молвест | ОАО Молочный завод | | | ЮЛ | | 3606007673 | 1-5APQRQT | Воронежский РФ | Молвест | ООО Луч | | | ЮЛ | ### Пользовательские сценарии: схема процесса ![](/files/obj/CmfDocument/CmfDocument%3Aaf4/CmfDocument%3Aaf4ceb56-9d30-11f1-a177-5e0a7cdca547/%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_with_overlays%20%282%29.png?version=1) UC-01 Добавление нового РФ ## UC-01: Добавление регионального филиала (Базовый РФ) ### Общая информация | Параметр | Значение | | --- | --- | | **ID** | UC-01 | | **Название** | Добавление регионального филиала (Базовый РФ) | | **Основной актер** | Администратор | | **Вторичные актеры** | Система, Администратор | | **Предусловия** | Пользователь авторизован, имеет роль `Администратор` или выше | ### Основной поток (Basic Flow) 1. Пользователь открывает справочник Состав групп компаний. 2. В тулбаре нажимает кнопку Добавить региональный филиал. 3. Система открывает модальное окно с формой: * region\_code (varchar(20)) — ручной ввод, обязательно, проверка на уникальность * region\_name (varchar(100)) — ручной ввод, обязательно * crm\_system\_id (varchar(50)) — ручной ввод, опционально * description (text) — опционально 4. Пользователь заполняет обязательные поля и нажимает Сохранить. 5. Система валидирует данные: * Проверка уникальности region\_code * Проверка формата полей 6. При успешной валидации система создает запись в ref\_crm\_region со статусом active. 7. Система закрывает модальное окно, обновляет список, показывает уведомление Региональный филиал успешно добавлен. 8. Система записывает действие в аудит-лог. ### Альтернативные потоки **A1: Ошибка валидации (дубликат region\_code)** * На шаге 5 система обнаруживает, что region\_code уже существует. * Система показывает ошибку: Код региона уже существует. * Пользователь исправляет значение или отменяет операцию. * Возврат к шагу 4. **A2: Отмена создания** * На шаге 4 пользователь нажимает `Отмена` . * Система закрывает модальное окно без сохранения. * Возврат к шагу 1. ### Постусловия * Новая запись в ref\_crm\_region доступна для выбора при создании группы компаний. * Запись отображается в справочнике с возможностью поиска. UC-02 Добавление новой ГК ## UC-02: Создание группы компаний ### Общая информация | Параметр | Значение | | --- | --- | | **ID** | UC-02 | | **Название** | Создание группы компаний | | **Основной актер** | Аналитик | | **Предусловия** | Пользователь авторизован; существует хотя бы один региональный филиал в `ref_crm_region` | ### Основной поток 1. Пользователь открывает справочник нажимает `Добавить группу компаний` . 2. Система открывает модальное окно с формой: | Поле | Системное имя | Тип | Обязательность | Валидация | | --- | --- | --- | --- | --- | | Идентификатор в справочнике | group\_id | auto | да | автогенерация (UUID или последовательность) | | ID Группы в CRM | crm\_group\_id | varchar(20) | нет | уникальность, формат ^1-[A-Z0-9]{7}$ | | Наименование группы | group\_name | varchar(200) | да | — | | Региональный филиал | region\_code | FK ref\_crm\_region | да | выбор из справочника | | Статус | status | enum | нет | по умолчанию active | 1. Пользователь заполняет данные нажимает Сохранить. 2. Система валидирует: * Уникальность crm\_group\_id (если заполнен) * Наличие region\_code в справочнике 3. Система показывает уведомление, обновляет список. Альтернативные потоки A1: CRM ID не соответствует формату * Если crm\_group\_id не соответствует паттерну ^1-[A-Z0-9]{7}$, система показывает предупреждение: ID группы в CRM должен иметь формат 1-XXXXXXX. * Пользователь может исправить или сохранить без CRM ID. A2: Группа с таким наименованием уже существует * Система проверяет уникальность group\_name в пределах region\_code. * При дубликате: ошибка Группа с таким именем уже существует в выбранном регионе. Постусловия * Группа создан, готова к добавлению организаций. * Запись доступна для редактирования и поиска. UC-03 Добавление организации ## UC-03: Добавление организации в группу ### Общая информация | Параметр | Значение | | --- | --- | | **ID** | UC-03 | | **Название** | Добавление организации в группу | | **Основной актер** | Аналитик | | **Предусловия** | Существует активная группа в `consolidation_group` ; пользователь имеет роль `Аналитик` | ### Основной поток 1. Пользователь нажимает кнопку Добавить организацию в тулбаре. 2. Система открывает модальное окно с формой: | Поле | Системное имя | Тип | Обязательность | Примечание | | --- | --- | --- | --- | --- | | Группа | group\_id | FK | да | выбор из consolidation\_group | | Наименование организации | full\_name | varchar(300) | да | — | | ИНН | inn | varchar(12) | да | уникальность, 10/12 знаков по типу | | Тип организации | org\_type\_code | FK ref\_org\_type | да | ЮЛ, ИП, ФЛ, нерез. | | Базовый РФ ГК | region\_code | FK ref\_crm\_region | да | автозаполнение из группы | | Флаг ГСК | is\_gsk | boolean | нет | по умолчанию false | | Флаг ГСЗ | is\_gsz | boolean | нет | по умолчанию false | 1. Пользователь заполняет форму нажимает Сохранить. 2. Система валидирует: * Уникальность inn в пределах Organizations * Соответствие длины ИНН типу организации (10 для ЮЛ, 12 для ИП) * Наличие group\_id в consolidation\_group 3. При успехе система: * Создает запись в Organizations (если ИНН новый) * Создает запись в group\_membership с membership\_from = CURRENT\_DATE 4. Система показывает уведомление, обновляет список. Альтернативные потоки A1: Организация с таким ИНН уже существует * Система находит существующую организацию по inn. * Предлагает пользователю: Организация с таким ИНН уже существует. A2: Некорректный формат ИНН * Если длина ИНН не соответствует типу (например, 11 знаков для ЮЛ), система показывает ошибку. * Пользователь исправляет или меняет тип организации. A3: Попытка добавить организацию в архивную группу * Если consolidation\_group.status = archived, система блокирует действие с сообщением: Нельзя добавить организацию в архивную группу. Постусловия * Организация привязана к группе через group\_membership. * Запись отображается в итоговой форме справочника. UC-04 Редактирование текущей организации ## UC-03: Редактирование карточки организации ### Общая информация | Параметр | Значение | | --- | --- | | **ID** | UC-03 | | **Название** | Редактирование карточки организации | | **Основной актер** | Аналитик | | **Предусловия** | Существует активная группа в `consolidation_group` ; пользователь имеет роль `Аналитик` | ### Основной поток 1. Пользователь выбирает в списочной форме запись с нужной организацией (поиск по ИНН, наименованию организации, наименованию текущей привязанной ГК и так далее) и двойным кликом по записи открывает запись 2. Система открывает модальное окно с формой: | Поле | Системное имя | Тип | Обязательность | Примечание | | --- | --- | --- | --- | --- | | Группа | group\_id | FK | да | выбор из consolidation\_group | | Наименование организации | full\_name | varchar(300) | да | — | | ИНН | inn | varchar(12) | да | уникальность, 10/12 знаков по типу | | Тип организации | org\_type\_code | FK ref\_org\_type | да | ЮЛ, ИП, ФЛ, нерез. | | Базовый РФ ГК | region\_code | FK ref\_crm\_region | да | автозаполнение из группы | | Флаг ГСК | is\_gsk | boolean | нет | по умолчанию false | | Флаг ГСЗ | is\_gsz | boolean | нет | по умолчанию false | 1. Пользователь редактирует форму (указывает иную ГК, меняет тип ЮЛ, редактирует ИНН, проставляет чекбоксы ГСК и ГСЗ) нажимает Сохранить. 2. Система валидирует: * Уникальность inn в пределах Organizations * Соответствие длины ИНН типу организации (10 для ЮЛ, 12 для ИП) * Наличие group\_id в consolidation\_group 3. При успехе система: * Создает запись в Organizations (если ИНН новый) 4. Система показывает уведомление, обновляет список. Альтернативные потоки A1: Организация с таким ИНН уже существует * Система находит существующую организацию по inn. * Предлагает пользователю: Организация с таким ИНН уже существует. A2: Некорректный формат ИНН * Если длина ИНН не соответствует типу (например, 11 знаков для ЮЛ), система показывает ошибку. * Пользователь исправляет или меняет тип организации. A3: Попытка добавить организацию в архивную группу * Если consolidation\_group.status = archived, система блокирует действие с сообщением: Нельзя добавить организацию в архивную группу. Постусловия * Организация привязана к группе через group\_membership. * Запись отображается в итоговой форме справочника. UC-05 Импорт записей справочника из внешней CRM ## UC-04: Импорт данных из Excel-файла ### Общая информация | Параметр | Значение | | --- | --- | | **ID** | UC-04 | | **Название** | Импорт данных из Excel-файла | | **Основной актер** | Администратор | | **Предусловия** | Файл подготовлен в формате `.xls/.xlsx` ; структура соответствует маппингу | ### Основной поток 1. Пользователь нажимает `кнопку Импорт`  в тулбаре. 2. Система открывает модальное окно выбора файла. 3. Пользователь выбирает файл нажимает `Загрузить` . 4. Система читает файл, отображает предпросмотр с маппингом колонок: | Колонка Excel | Целевое поле | Обязательность | | --- | --- | --- | | ИНН | `organization.inn` | да | | iD ГК | `consolidation_group.group_id` | да | | Базовый РФ ГК в CRM | `consolidation_group.region_code` | да | | Группа компаний | `consolidation_group.group_name` | да | | Организация | `organization.full_name` | да | | ГСК | `group_membership.is_gsk` | нет | | ГСЗ | `group_membership.is_gsz` | нет | | Тип | `organization.org_type_code` | да | 1. Пользователь подтверждает импорт система начинает обработку. 2. Для каждой строки файла: * Валидация обязательных полей * Проверка уникальности `inn` и `group_id` * Создание/обновление записей в `consolidation_group` , `organization` , `group_membership` * При ошибке: запись в лог, переход к следующей строке 3. По завершении система показывает отчет: 1 2 3 4. Пользователь может скачать детальный лог импорта. ### Альтернативные потоки **A1: Файл не соответствует формату** * Если файл не `.xls/.xlsx` или структура не соответствует маппингу, система возвращает ошибку на шаге 4. * Предложение: Скачать шаблон файла для импорта. **A2: Критическая ошибка валидации** * Если 20% строк содержат ошибки, система останавливает импорт и запрашивает подтверждение: Продолжить импорт с пропуском ошибочных строк? **A3: Конфликт данных (дубль ИНН)** * При обнаружении дубликата `inn` система: + Не создает новую организацию + Создает запись в `group_membership` для существующей организации (если группа другая) + Записывает предупреждение в лог ### Постусловия * Успешные строки отражены в справочнике. * Ошибочные строки зафиксированы в логе для ручной обработки. * Все изменения записаны в аудит. ### Бизнес-правила * Пустые значения в необязательных полях ( `is_gsk` , `is_gsz` ) интерпретируются как `false` .