Files
crm3_26.rhana/README.md
T
kma 3ff55d63b1 РК_ПроверкаСерий 1.3.1.82: сохранение срока годности по умолчанию.
Актуализирован README до текущей версии; выгрузка из конфигуратора со штатным ConfigDumpInfo.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 16:43:49 +03:00

163 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`** |