3ff55d63b1
Актуализирован README до текущей версии; выгрузка из конфигуратора со штатным ConfigDumpInfo. Co-authored-by: Cursor <cursoragent@cursor.com>
163 lines
12 KiB
Markdown
163 lines
12 KiB
Markdown
# crm3-26.rhana
|
||
|
||
Расширение РАНА для целевой конфигурации **crm3-26** (ИБ `crm3`, сервер `1c-srv.rhana.local`).
|
||
|
||
Текущая версия: **1.3.1.82** — см. [`VERSION`](VERSION) и `src/Configuration.xml`.
|
||
|
||
Префикс новых объектов расширения: **`РК_`**.
|
||
|
||
## Назначение
|
||
|
||
Доработки целевой CRM3 редакции 3.1, не входящие в типовую конфигурацию:
|
||
|
||
- **приём данных** при синхронизации **crm3-dev → crm3-26** (защита учётных настроек целевой ИБ);
|
||
- **НСИ и бизнес-логика** РАНА (контрагенты, договоры, реализация, заказы, отладка);
|
||
- **совместимость обмена** с исходной базой (EnterpriseData 1.8, ставки НДС 22%);
|
||
- **проверка и исправление серий** (`РК_ПроверкаСерий`: пустые реквизиты, дубли, срок годности).
|
||
|
||
Парное расширение исходной ИБ: [`crm3-dev.rhana`](../crm3-dev.rhana).
|
||
|
||
## Документация
|
||
|
||
| Документ | Содержание |
|
||
|----------|------------|
|
||
| [`CHANGELOG.md`](CHANGELOG.md) | история версий и описание доработок |
|
||
| [`../docs/transfer/Анализ_синхронизации_crm3-dev_crm3-26.md`](../docs/transfer/Анализ_синхронизации_crm3-dev_crm3-26.md) | полный анализ синхронизации (монорепозиторий crm3-26) |
|
||
| [`../docs/1c_standarts/Выгрузка_в_файлы_ConfigDumpInfo.md`](../docs/1c_standarts/Выгрузка_в_файлы_ConfigDumpInfo.md) | UUID и `configVersion` при выгрузке в файлы |
|
||
| [`../docs/meta/REPOSITORIES.md`](../docs/meta/REPOSITORIES.md) | связанные git-репозитории конфигураций |
|
||
|
||
## Синхронизация crm3-dev → crm3-26
|
||
|
||
### Разделение ответственности
|
||
|
||
| Сторона | Расширение | Роль |
|
||
|---------|------------|------|
|
||
| **Исходная** (`crm3_placentapharm`) | `crm3-dev.rhana` | совместимость **отправки** (XDTO 1.8, валюта банк.счетов, фильтр узла CRM3-26) |
|
||
| **Целевая** (`crm3`) | `crm3-26.rhana` | защита **приёма** (учёт номенклатуры, склады, виды, серии) |
|
||
|
||
Доработки обмена на каждой стороне применяются **только к узлу CRM3**, без влияния на обмен с Бухгалтерией.
|
||
|
||
### Ключевые функции (целевая ИБ)
|
||
|
||
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`, область `Синхронизация_crm3_dev_crm3_26`.
|
||
|
||
| Функция | Назначение |
|
||
|---------|------------|
|
||
| `РК_УзелCrm3Dev_GUID()` | GUID узла «Рабочая CRM3» (`97cd20ee-bb06-11f0-8dac-0cc47a7d055f`) |
|
||
| `РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена)` | Истина только для обмена с исходной CRM |
|
||
|
||
### Защита при получении (v1.3.0.37+)
|
||
|
||
| Объект | Поведение |
|
||
|--------|-----------|
|
||
| **Номенклатура** (существует) | снимок и восстановление учётных реквизитов целевой ИБ после типового `ПередЗаписью` и отложенной обработки |
|
||
| **Номенклатура** (новая) | заполнение учёта по виду номенклатуры **целевой** ИБ |
|
||
| **Виды номенклатуры** (существует) | пропуск обновления (сопоставление по GUID сохраняется) |
|
||
| **Склады** (существует) | пропуск перезаписи реквизитов |
|
||
| **Серии номенклатуры** | проверка владельца + подбор по `Номер/ГоденДо` в рамках владельца вида (v1.3.0.43+) |
|
||
| **Ставки НДС** | ПКПД: `НДС22`, `НДС22_122` |
|
||
|
||
Защищаемые реквизиты номенклатуры: `ВидНоменклатуры`, `ОсобенностьУчета`, `ТипНоменклатуры`, `ИспользованиеХарактеристик`, `ВладелецСерий`, `ВладелецХарактеристик`, `ГруппаФинансовогоУчета`, `СкладскаяГруппа`.
|
||
|
||
## Контрагенты — уникальность ИНН/КПП (v1.3.0.39)
|
||
|
||
В crm3-26 проверка реализована в **`ПартнерыИКонтрагентыЛокализация`** (не в `ПартнерыИКонтрагенты`, как в crm3-dev).
|
||
|
||
| Процедура/функция | Изменение |
|
||
|-------------------|-----------|
|
||
| `ИННКППУжеИспользуетсяВИнформационнойБазе` | дубли ищутся только среди контрагентов **без** пометки удаления |
|
||
| `ПроверитьКорректностьЗаполненияКонтрагента` | для контрагента с `ПометкаУдаления` проверка уникальности **не выполняется** |
|
||
|
||
Поведение согласовано с `crm3-dev.rhana` v1.0.1.333. Отдельная CRM-функция `CRM_КлиентыСервер.ИННКППУжеИспользуетсяВИнформационнойБазе` (поиск по `Партнеры.CRM_ИНН`) не затронута.
|
||
|
||
## Состав расширения (основное)
|
||
|
||
### Общие модули
|
||
|
||
| Модуль | Назначение |
|
||
|--------|------------|
|
||
| `МенеджерОбменаЧерезУниверсальныйФормат` | синхронизация crm3-dev, защита учёта при получении |
|
||
| `ПартнерыИКонтрагентыЛокализация` | уникальность ИНН/КПП контрагентов |
|
||
| `РК_ОбменСВнешнейБазой` | HTTP-клиент Transfer API (`ws-rhana`) по настройкам справочника |
|
||
| `РК_ОбщегоНазначения` / `РК_ОбщегоНазначенияВызовСервера` / `РК_ОбщегоНазначенияКлиентСервер` | инфраструктура РАНА (режим отладки и др.) |
|
||
| `ОбщегоНазначенияКлиентСервер` | доработки отборов динамических списков |
|
||
|
||
### Справочники и HTTP к исходной ИБ (v1.3.1.49+)
|
||
|
||
| Объект | Назначение |
|
||
|--------|------------|
|
||
| `РК_НастройкиПодключенияКВнешнейБазе` | адрес `/hs/transfer`, токен, логин/пароль, таймаут, `ИмяТекущейБазы`, `Активно` |
|
||
| Менеджер справочника | `ПроверитьСоединение(Источник)`, `СоединениеАктивно(Ссылка)`, `ИмяТекущейИнформационнойБазы()` |
|
||
| `РК_РабочееПодключениеЧерезАПИ` | константа — текущая рабочая настройка |
|
||
| `РК_ЗагрузкаОстатков` | дерево групп, склады/организации, свои и комиссия 2.5, два количества, ввод остатков |
|
||
|
||
**Проверка соединения** (форма элемента или любой код):
|
||
|
||
```bsl
|
||
// по ссылке
|
||
Р = Справочники.РК_НастройкиПодключенияКВнешнейБазе.ПроверитьСоединение(СсылкаНастройки);
|
||
// по полям формы / структуре (АдресПодключения|Адрес, Токен, …)
|
||
Р = Справочники.РК_НастройкиПодключенияКВнешнейБазе.ПроверитьСоединение(СтруктураПолей);
|
||
// Р.Успех, Р.Текст, Р.Ответ, Р.Ошибка — GET /v1/health через РК_ОбменСВнешнейБазой
|
||
```
|
||
|
||
HTTP-клиент передаёт `IBSession: start` (публикация с повторным использованием сеансов) и `X-Transfer-Token`.
|
||
|
||
Пара: расширение **`ws-rhana`** на исходной ИБ (**≥ 0.0.0.42** для дерева групп номенклатуры; комиссия 2.5 / серии — с 0.0.0.36–0.0.0.39).
|
||
|
||
### Обработки и формы
|
||
|
||
| Объект | Назначение |
|
||
|--------|------------|
|
||
| `РК_ЗагрузкаОстатков` | загрузка собственных и комиссионных (переданные 2.5) остатков через Transfer API |
|
||
| `РК_ПроверкаСерий` | поиск проблем в `СерииНоменклатуры`, заполнение реквизитов, объединение дублей (#14, #15) |
|
||
| `РК_ОбработкаПарнеровКонтрагентов` | работа с партнёрами и контрагентами |
|
||
| `РК_ФормаНастроекРана` | настройки расширения |
|
||
| `ЗагрузкаДанныхИзФайла` | доработки загрузки НСИ |
|
||
|
||
### РК_ПроверкаСерий (v1.3.1.70+)
|
||
|
||
Обработка по справочнику `СерииНоменклатуры` с учётом политики вида (`ИспользоватьНомерСерии`, `ИспользоватьСрокГодностиСерии`).
|
||
|
||
| Вкладка / действие | Поведение |
|
||
|--------------------|-----------|
|
||
| **Заполнение реквизитов** | проблемы: пустой номер, пустой срок, наименование не по шаблону; предложения из наименования; **срок годности по умолчанию** (сохраняется в настройках формы, v1.3.1.81–82) |
|
||
| **Найти проблемы** / **Сформировать предложения** / **Заполнить по предложениям** | без записи в ИБ, пока не нажато «Исправить отмеченные» |
|
||
| **Объединение дублей** | группы: вид + номер + срок годности (без даты производства); остатки из `ТоварыНаСкладах`; замена ссылок через `ОбщегоНазначения.ЗаменитьСсылки` |
|
||
| Режим тест | запись в ИБ не выполняется |
|
||
|
||
Ключевые issues: [crm3_26.rhana#14](https://git.p7net.ru/1c/crm3_26.rhana/issues/14), [#15](https://git.p7net.ru/1c/crm3_26.rhana/issues/15).
|
||
|
||
### Подсистемы
|
||
|
||
- `РК_РАНА` — общие доработки РАНА
|
||
- `РК_РАНА326` — доработки, специфичные для целевой конфигурации
|
||
|
||
## Репозиторий
|
||
|
||
```text
|
||
https://git.p7net.ru/1c/crm3_26.rhana.git
|
||
```
|
||
|
||
Каталог в монорепозитории: `crm3-26.rhana/`.
|
||
|
||
## Обновление из конфигуратора
|
||
|
||
После выгрузки из 1С EDT / конфигуратора:
|
||
|
||
```bash
|
||
scripts/normalize_1c_export.sh crm3-26.rhana # из корня crm3-26
|
||
cd crm3-26.rhana && git add -A && git status
|
||
```
|
||
|
||
В `src/ConfigDumpInfo.xml` атрибут `configVersion` — SHA-1, **ровно 40** hex. Кривая длина (41/42) при ручном добавлении объектов роняет конфигуратор при выгрузке поверх `src` без сообщения об ошибке. Подробнее: [`docs/1c_standarts/Выгрузка_в_файлы_ConfigDumpInfo.md`](../docs/1c_standarts/Выгрузка_в_файлы_ConfigDumpInfo.md), задача [crm3-migration#19](https://git.p7net.ru/rhana/crm3-migration/issues/19).
|
||
|
||
Синхронизация `.gitattributes` / `.editorconfig`: `scripts/sync_git_1c_config.sh` (см. [`tools/git_1c/README.md`](../tools/git_1c/README.md)).
|
||
|
||
## Связанные конфигурации
|
||
|
||
| Сторона | Конфигурация | ИБ | Расширение |
|
||
|---------|--------------|-----|------------|
|
||
| Исходная | `crm3-dev` | `crm3_placentapharm` | `crm3-dev.rhana` |
|
||
| Целевая | `crm3-26` | `crm3` | **`crm3-26.rhana`** |
|