Files
mihailkudravcev 78c25277c8 Обмен — приём СФ выданного без полей аванса в ТЧ (1.3.0.47).
Не писать СвойстваОтсутствующиеВПолученныхДанных в строку ТЧ без ДополнительныеСвойства.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 15:48:59 +03:00

221 lines
16 KiB
Markdown
Raw Permalink 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
Формат версии: `1.3.0.NNN` (синхронизируется с `VERSION` и `Configuration.xml`).
---
## 1.3.0.47 (2026-07-30)
### Обмен — приём СФ выданного без полей аванса в ТЧ
Модуль: `ОбменДаннымиXDTOСервер` (`&ИзменениеИКонтроль` `КонвертацияСвойстваСтруктурыОбъектаXDTO`).
Пакет из **crm3-dev** в `ПлатежноРасчетныеДокументы` передаёт только `ДатаДокумента` / `НомерДокумента`. Целевое ПКО также ждёт поля аванса (`ДатаИсправленияСчетаФактурыНаАванс` и др.). Типовой код при отсутствии свойства писал в `ПриемникДанных.ДополнительныеСвойства`, но у строки ТЧ этого поля нет → ошибка конвертации.
Исправление: фиксировать `СвойстваОтсутствующиеВПолученныхДанных` только если у приёмника есть `ДополнительныеСвойства`.
---
## 1.3.0.46 (2026-07-30)
### Обмен — приоритетный ВидНоменклатуры из ра_ВидНоменклатурыCRM326
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
При получении номенклатуры из **Рабочая CRM3**: если в пакете есть `AdditionalInfo.РК_ВидНоменклатурыCRM326`, `ВидНоменклатуры` сопоставляется по наименованию в целевой ИБ (перебивает защиту учётных реквизитов). Если значение не передано — действует прежний механизм обмена.
Пара с `crm3-dev.rhana` 1.0.1.342.
---
## 1.3.0.45 (2026-07-21)
### Обмен — ВидЦены строк из AdditionalInfo (Д1.3 / issue #10)
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
Заменяет дозаполнение из соглашения (1.3.0.44): передаём фактические виды цен из исходной ИБ.
- На отправке (`crm3-dev.rhana` 1.0.1.338): `AdditionalInfo.РК_ВидыЦенСтрок`.
- На приёме: сохранить карту при `*_ПриКонвертацииДанныхXDTO`; применить в `ОтложеннаяОбработка_*` по `ИндексВТЧ` (запасной ключ — `НомерСтроки`).
- Пустой вид цены в источнике остаётся пустым; цена/сумма не пересчитываются.
- Только узел **«Рабочая CRM3»**.
Refs: https://git.p7net.ru/rhana/crm3-migration/-/issues/10
---
## 1.3.0.44 (2026-07-21)
### Обмен — дозаполнение ВидЦены в строках ТЧ (Д1.3, вариант B)
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
ED 1.8 не передаёт `ВидЦены` / `ВидЦеныПоставщика` в строках табличных частей (XDTO-схема не меняется).
- `&После("ВыполнитьПроцедуруМодуляМенеджера")``РК_ВыполнитьПроцедуруМодуляМенеджера_ДозаполнитьВидЦены` для всех процедур `ОтложеннаяОбработка_*`.
- Универсально обходит все ТЧ документа; для пустых `ВидЦены``ЦеныПредприятияЗаполнениеСервер.ЗаполнитьЦены(ПоляЗаполнения = "ВидЦены")`; для `ВидЦеныПоставщика``ЦеныПартнеровЗаполнениеСервер` с тем же ограничением полей.
- Цена и сумма строк **не пересчитываются** (в отличие от `ЗаполнитьУсловияПродажПоСоглашению(Истина)`).
- Только для узла **«Рабочая CRM3»** (`РК_ЭтоОбменС_Crm3Dev`).
---
## 1.3.0.43 (2026-07-21)
### Серии номенклатуры — подбор по владельцу вида и сроку
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
- Для ПКО `Справочник_СерииНоменклатуры` добавлен подбор существующей серии с учетом
владельца серий вида номенклатуры в целевой ИБ:
- `ВладелецВида + Номер + ГоденДо`,
- `ВладелецВида + Номер`,
- при пустом номере: `ВладелецВида + ГоденДо`.
- Поиск теперь опирается на маппинг видов номенклатуры на target (через
`РК_ВладелецСерийДляВидаНоменклатуры`), что снимает конфликт, когда вид в source и target различается.
- При найденной серии с другим GUID создается предупреждение и запись из пакета пропускается
(без создания дубликата).
---
## 1.3.0.42 (2026-07-15)
### Обмен — этапы графика оплаты ЗаказКлиента (Д1.2)
База: **1.3.0.41** (ws-rhana + объекты расчётов 1.3.0.40).
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
- `&После("ОтложеннаяОбработка_ЗаказыПоставщикуКлиента")``РК_ОтложеннаяОбработка_ЗаказыПоставщикуКлиента_ЭтапыОплаты`.
- При «бедных» этапах из XDTO (пустые `ДатаПлатежа` / `ВариантОтсчета`) ТЧ очищается и перезаполняется типовым `ЭтапыОплатыСервер.ПроверитьЗаполнитьЭтапыГрафикаОплаты` по соглашению / графику оплаты / договору.
- При пустых реквизитах шапки из соглашения подставляются `ГрафикОплаты`, `ФормаОплаты`.
- Только для узла **«Рабочая CRM3»** (`РК_ЭтоОбменС_Crm3Dev`).
Данные уже загруженных заказов: `docs/transfer/Код_дозаполнения_этапов_оплаты_заказов_crm3-26.bsl` (монорепозиторий).
---
## 1.3.0.41 (2026-07-09)
### HTTP Transfer API перенесён в ws-rhana
Удалены объекты `РК_TransferAPI` и связанные модули/константы/роль.
Read-only HTTP API — в универсальном расширении [`ws-rhana`](https://git.p7net.ru/1c/ws-rhana.git) (`РВС_TransferAPI`).
---
## 1.3.0.40 (2026-07-08)
### Обмен — объекты расчётов по договорам
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
В UT 11.5 `ОбъектыРасчетов` — отдельный справочник; в XDTO 1.8 не передаётся. Типовой `ВзаиморасчетыСервер.ПередЗаписью` при обмене crm3-dev → crm3-26 может не создать ОР (пустой партнёр на договоре, сбой `СоздатьПоКлючу`).
| Процедура/функция | Назначение |
|-------------------|------------|
| `РК_ПартнерКонтрагентДляДоговора` | партнёр/контрагент из договора, подсказок заказа или последнего заказа |
| `РК_ОбеспечитьОбъектРасчетовПоДоговору` | создание ОР через `СоздатьЭлемент`, если не найден |
| `РК_ПКО_ДоговорыКонтрагентов_ДозаполнитьПартнера` | `&После` ПКО договора — дозаполнение партнёра из контрагента |
| `РК_ОтложеннаяОбработка_ДосоздатьОбъектыРасчетов` | `&После` типовой отложенной обработки — досоздание ОР по договорам из пакета |
Применяется только к узлу «Рабочая CRM3» (`РК_ЭтоОбменС_Crm3Dev`).
---
## 1.3.0.39 (2026-07-06)
### Контрагенты — уникальность ИНН/КПП
Модуль: `ПартнерыИКонтрагентыЛокализация` (заимствован).
В целевой конфигурации (crm3-26) проверка уникальности ИНН/КПП реализована в модуле локализации, а не в `ПартнерыИКонтрагенты` (как в crm3-dev). Функция возвращает структуру `НайденныеСовпадения` / `ДоступноСоздание` и учитывает `ЮрФизЛицо` (различение ИП и физлица).
| Процедура/функция | Изменение |
|-------------------|-----------|
| `ИННКППУжеИспользуетсяВИнформационнойБазе` | при поиске дублей исключаются контрагенты с `ПометкаУдаления = Истина` |
| `ПроверитьКорректностьЗаполненияКонтрагента` | для записываемого контрагента с `ПометкаУдаления` проверка уникальности ИНН/КПП **не выполняется** |
**Поведение** — аналогично `crm3-dev.rhana` v1.0.1.333:
- обычная запись — уникальность среди непомеченных на удаление;
- запись с пометкой удаления — проверка уникальности ИНН/КПП пропускается;
- дубль только у помеченного контрагента не блокирует активную карточку.
**Примечание:** отдельная CRM-функция `CRM_КлиентыСервер.ИННКППУжеИспользуетсяВИнформационнойБазе` (поиск по `Партнеры.CRM_ИНН`) не затронута — она относится к сценариям CRM, не к типовой записи справочника `Контрагенты`.
---
## 1.3.0.38 (2026-07-06)
### Обмен — фильтр узла «Рабочая CRM3»
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
| Функция | Назначение |
|---------|------------|
| `РК_УзелCrm3Dev_GUID()` | GUID узла исходной ИБ в целевой (`97cd20ee-bb06-11f0-8dac-0cc47a7d055f`) |
| `РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена)` | Истина только для обмена crm3-dev ↔ crm3-26 |
**Поведение:** доработки получения (защита учёта номенклатуры, пропуск обновления видов и складов, нормализация серий) применяются **только** к узлу **«Рабочая CRM3»**. Обмен с **Бухгалтерией** не затрагивается.
---
## 1.3.0.37 (2026-07-06)
### Обмен crm3-dev → crm3-26 — приём данных
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
#### Номенклатура
| Обработчик | Изменение |
|------------|-----------|
| `&Перед` / `&После` `ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных` | для существующей номенклатуры — снимок и восстановление учётных реквизитов целевой ИБ; для новой — заполнение по виду целевой ИБ |
| `&После` `ОтложеннаяОбработка_ЗаполнитьНоменклатуру` | повторное восстановление учёта после типовой отложенной обработки |
Защищаемые реквизиты: `ВидНоменклатуры`, `ОсобенностьУчета`, `ТипНоменклатуры`, `ИспользованиеХарактеристик`, `ВладелецСерий`, `ВладелецХарактеристик`, `ГруппаФинансовогоУчета`, `СкладскаяГруппа`.
#### Виды номенклатуры и склады
| Обработчик | Изменение |
|------------|-----------|
| `&ИзменениеИКонтроль` `ПКО_Справочник_ВидыНоменклатуры_ПередЗаписьюПолученныхДанных` | существующие виды не обновляются (сопоставление по GUID сохраняется) |
| `&ИзменениеИКонтроль` `ПКО_Справочник_Склады_Получение_ПередЗаписьюПолученныхДанных` | существующие склады не перезаписываются |
#### Серии номенклатуры
| Обработчик | Изменение |
|------------|-----------|
| `&После` `ДобавитьПКО_Справочник_СерииНоменклатуры` | подключение `РК_ПКО_Справочник_СерииНоменклатуры_ПередЗаписьюПолученныхДанных` |
| `РК_ПКО_Справочник_СерииНоменклатуры_ПередЗаписьюПолученныхДанных` | нормализация владельца серии по настройкам вида в целевой ИБ; пропуск при конфликте |
#### Ставки НДС 22%
| Обработчик | Изменение |
|------------|-----------|
| `&После` `ЗаполнитьПравилаКонвертацииПредопределенныхДанных` | ПКПД `Перечисление_СтавкиНДС`: значения `НДС22`, `НДС22_122` |
**Контекст:** политика защиты учётных настроек целевой ИБ при синхронизации с crm3-dev. Подробнее: `docs/transfer/Анализ_синхронизации_crm3-dev_crm3-26.md` в монорепозитории crm3-26.
---
## 1.3.0.36 (2026-07-01)
### Синхронизация — первичная защита учёта при получении
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
- Сохранение учётных реквизитов номенклатуры целевой ИБ при обновлении из crm3-dev.
- Существующие склады не перезаписываются данными из пакета обмена.
*Доработка развита в 1.3.0.37 (виды, серии, отложенная обработка, НДС22) и ограничена узлом CRM3 в 1.3.0.38.*
---
## Связанные объекты расширения (обмен)
| Модуль | Роль |
|--------|------|
| `МенеджерОбменаЧерезУниверсальныйФормат` | защита учёта при получении, фильтр узла, ПКПД НДС22 |