# История изменений crm3-26.rhana Формат версии: `1.3.0.NNN` / `1.3.1.NNN` (синхронизируется с `VERSION` и `Configuration.xml`). --- ## 1.3.1.128 (2026-10-12) ### #76: партия ввода остатков - Перед записью КБ загрузчик находит или создаёт один документ «Первичный документ» типа «Внутренняя накладная» на организацию и дату ввода, записывает и проводит его без режима загрузки. - Ссылка ставится в шапку собственных документов и комиссии 2.5. ### #77: сумма регл. не по курсу даты - У документа «Ввод остатков товаров» в расширении реквизит «Не пересчитывать сумму регл. по курсу даты». По умолчанию выключен, выведен в шапку формы. - При включённом признаке смена количества берёт курс строки (сумма регл. / сумма без НДС), а если его нет — курс даты документа. Смена даты сумму регл. и НДС регл. не меняет. - Загрузчик включает признак у создаваемых КБ. Принадлежность реквизита в выгрузке — Native. ## 1.3.1.127 (2026-10-12) ### #36: серии ввода остатков без идентификатора строки - В `ВводОстатковТоваров` табличная часть «Серии» не имеет `ИдентификаторСтроки`. Связь со строкой товаров — номенклатура, характеристика и назначение. Запись идентификатора роняла создание всех 12 документов. - Предупреждение формы при ошибке заполнения больше не говорит, что нет сопоставленных строк. ## 1.3.1.126 (2026-10-09) ### #36: серии ввода остатков - Тип «учёт себестоимости по сериям» (лаеннек) — серия в колонке строки. - Тип «управление остатками серий» — колонка пустая, количество в табличной части «Серии» с тем же идентификатором строки. - Строки без характеристики с одной серией и одним ГТД сворачиваются. ## 1.3.1.125 (2026-10-07) ### #68: явный отказ партнёр-веток вне узла crm3-dev В `РК_УстановитьПартнераДоговораПоКодуСтаройБазы` — выход, если узел не «Рабочая CRM3» (обмен с БП и др.). ## 1.3.1.124 (2026-10-07) ### ED договоры: партнёр по РК_КодСтаройБазы ([#68](https://git.p7net.ru/rhana/crm3-migration/issues/68)) - Код партнёра из `AdditionalInfo` при получении договора (общий хук `ПриКонвертацииДанныхXDTO`). - Перед записью и после `ОтложеннаяОбработка_ДоговорыКонтрагентов`: установка `Партнер` по `РК_КодСтаройБазы` (+ Transfer API fallback, как #67). - Только узел crm3-dev ↔ crm3-26 (`РК_ЭтоОбменС_Crm3Dev`); Бухгалтерия не затрагивается. ## 1.3.1.123 (2026-10-07) ### Fix: журнал при fallback партнёра ED ([#67](https://git.p7net.ru/rhana/crm3-migration/issues/67) comment-1632) - `ЗаписатьОшибкуВЖурналРегистрации` больше не вызывается с `Неопределено` (падение `.Метаданные` при create отсутствующего партнёра). - В предупреждение попадают meta/results `partners/load`; `update_existing=true` чтобы дописать `РК_КодСтаройБазы` при match по имени. ## 1.3.1.122 (2026-10-07) ### ED: fallback партнёра через Transfer API ([#67](https://git.p7net.ru/rhana/crm3-migration/issues/67)) - Если партнёр не найден по `РК_КодСтаройБазы`: `partners/export` на исходной ИБ через константу `РК_РабочееПодключениеЧерезАПИ` (как в `РК_ЗагрузкаОстатков`), затем `РВС_TransferAPIПартнеры.ВыполнитьЗагрузку` в целевой (без create контрагентов). - `РК_ОбменСВнешнейБазой.ПартнерыВнешнейБазы` — обёртка `POST /v1/partners/export`. - Кеш загруженных партнёров по коду в рамках сессии обмена. ## 1.3.1.121 (2026-10-07) ### Обмен ED crm3-dev → crm3-26: партнёр контрагента без дублей ([#67](https://git.p7net.ru/rhana/crm3-migration/issues/67)) - При получении контрагента: код партнёра исходной ИБ из `AdditionalInfo.РК_КодСтаройБазы` (кеш сессии обмена). - `&Перед` `ОтложеннаяОбработка_Контрагенты`: поиск партнёра по доп. реквизиту `РК_КодСтаройБазы`, подстановка ссылки до типового создания. - `&После`: запись `РК_КодСтаройБазы` на партнёре, созданном обменом (только если пусто). ## 1.3.1.120 (2026-09-04) ### РК_ЗагрузкаОстатков — ДатаСрокаГодностиПоУмолчанию (#46) - Сохраняемый реквизит `ДатаСрокаГодностиПоУмолчанию` + поле на вкладке Настройки. - Fallback `ГоденДо` при создании серии без `series_expire` / даты в имени — из реквизита, **не** из даты среза. - Пустой реквизит: заглушка `Перенос_*` не создаётся (комментарий сопоставления). - `ДатаПроизводства` по-прежнему = дата среза остатков. ## 1.3.1.119 (2026-09-04) ### РК_ЗагрузкаОстатков — порядок команд + версия на форме (#40) - Кнопка «Свернуть комиссионные остатки» в командной панели перед «Сопоставить» (порядок: загрузить → свернуть → сопоставить → создать). - Служебная строка с именем/версией расширения `crm326RHANA` под шапкой формы. ## 1.3.1.118 (2026-09-04) ### РК_ЗагрузкаОстатков — fix create-лога + автоотбор (#40) - Fix: не вызывать `ЗначениеЗаполнено()` для `ДокументОбъект` (ошибка «Проверка мутабельных значений…» ломала `[DOC]`/`[SPEC]`/CSV docs после успешной записи). - CSV спецификации пишется до протокола строк. - При открытии формы — авто `ЗаполнитьСправочникиОтбора` (если задано подключение). - Дефолтные отметки (только если нет сохранённого отбора): все склады кроме «Не использовать»; организации «Управленческая организация» и «ФК РАНА». - Отметки складов/организаций сохраняются между сеансами. ## 1.3.1.117 (2026-09-04) ### РК_ЗагрузкаОстатков — заполнение «Документы ввода» и диагностика create (#40) - ТЧ `СозданныеДокументы` на форме заполняется явно из результата создания (не только через `ЗначениеВРеквизитФормы`). - Если документов 0 — предупреждение: нужно сначала «Сопоставить». - В лог create: диагностика ТЧ (всего / сопоставлено / готово qty>0) для own и comm. - Проверка успешного создания документа: `ДокументОбъект` + заполненная ссылка. ## 1.3.1.116 (2026-09-04) ### РК_ЗагрузкаОстатков — детальный лог и CSV созданных документов (#29, #30) - При «Писать логи в папку»: лог сопоставления (`match`) с `[SERIES]` (номер, имя, ГоденДо, ДатаПроизводства, номенклатура). - Лог «Создать документы»: `[WRITE]`/`[DOC]` (номер, дата, шапка), до 30 строк `[SPEC]`, `[POST]` (проведение пока не выполняется командой). - CSV спецификации созданных документов: `rk_load_balances_docs_*.csv` (own/comm, артикул, серии, суммы/НДС, GUID источника). - `[WARN]`, если нет сопоставленных строк — документы не создаются. ## 1.3.1.115 (2026-09-03) ### РК_ЗагрузкаОстатков — автовыгрузка CSV таблиц (#29) - Реквизит `ВыгружатьДанныеТаблиц` (сохраняется): при включении после загрузки / сопоставления / свёртки / создания документов пишет CSV в каталог выгрузки. - Фиксированные имена: `crm-dev_to_crm3-26_own.csv`, `crm-dev_to_crm3-26_comm.csv` (перезапись). - «Свернуть комиссионные остатки» — перезапись только `*_comm.csv`. - Ручная «Выгрузить таблицы в CSV» по-прежнему с уникальными timestamp-именами. - Клиент/сервер — как у ручной выгрузки; без пути при включённом флаге — предупреждение. ## 1.3.1.114 (2026-09-03) ### РК_ЗагрузкаОстатков — раскладка вкладки Настройки (#29) - Вкладка «Отбор» → **Настройки**. - Группа `ГруппаНастройки`: логи/путь/режим записи, заглушки серий, перезапись документов. - `ГруппаДвеКолонки` с заголовком **Отбор**. ## 1.3.1.113 (2026-09-03) ### РК_ЗагрузкаОстатков — расчёт НДС в строках ввода (#33) - После заполнения ТЧ own/comm: `СуммаНДС`, `СуммаСНДС`, `СуммаБезНДС`, `НДСРегл` через `ПакетнаяОбработкаТабличнойЧасти` (fallback — `УчетНДСУПКлиентСервер.РассчитатьСуммуНДС`). - Учитывает `ЦенаВключаетНДС` / `НалогообложениеНДС` / ставку «Без НДС» и процентные ставки. ## 1.3.1.112 (2026-09-03) ### РК_ЗагрузкаОстатков — CSV таблиц и файловый лог (#29) - Реквизит `ПутьКФайламВыгрузкиТаблиц` (сохраняется между сеансами) + выбор каталога. - Реквизит `РежимЗаписиФайловВыгрузки`: **Клиент** / **Сервер** (сохраняется); CSV и логи пишутся на выбранной стороне. - Команда «Выгрузить таблицы в CSV»: own + comm, UTF-8, уникальные имена `crm-dev_to_crm3-26_*_yyyy-MM-dd_HHmmss.csv`. - Флажок формы `ПисатьЛогиВПапку` (не сохраняется, по умолчанию выкл.): подробный протокол «Создать документы» (тест/запись) в `.log` в том же каталоге. - Режим «Сервер»: путь — каталог/UNC, доступный серверу 1С; диалог выбора каталога клиента недоступен (подсказка). ## 1.3.1.111 (2026-09-03) ### РК_ЗагрузкаОстатков — договор комиссии 2.5 (#34) - Поиск договора `ПередачаНаКомиссию` по партнёру/контрагенту/организации (предпочтительно `КомиссионныеПродажи25`). - Соглашение не содержит реквизит `Договор`; API не отдаёт `contract_*`. - Сопоставление и создание документа без договора — ошибка с понятным текстом. ## 1.3.1.110 (2026-09-02) ### РК_ЗагрузкаОстатков — серии: ГоденДо и заглушки по номенклатуре (#30, #31) - `series_expire` из API → реквизит ТЧ `СерияГоденДо`; при создании серии заполняются `ГоденДо`, `ДатаПроизводства`, `ВидНоменклатуры`. - Fallback срока из имени серии (`до DD.MM.YY`); при отсутствии данных — дата среза cutover. - Заглушки: ключ `ВидСер + Номенклатура + ГоденДо`, номер `Перенос_{код номенклатуры}_{yyyyMMdd}` (не одна серия на склад). ## 1.3.1.109 (2026-09-01) ### РК_ЗагрузкаОстатков — маппинг соглашений комиссии cutover (#24) - Dev GUID → target GUID для marketplace и plain «Основное соглашение по договорам» → individual Поварова (`189cf86f…`, не типовое). - Plain без маппинга: не подставлять типовое продажи по наименованию. - Fallback партнёра из `Контрагент.Партнер`, если в API пусто. - Канон: `docs/transfer/mapping/map_commission_agreements_cutover_20260801.csv`. ## 1.3.1.106 (2026-08-31) ### РК_ЗагрузкаОстатков — ГТД вне ключа схлопывания (#19) - `КлючАналитикиКомиссионнойСтроки`: поле **ГТД** исключено из ключа (как серия). - Пары −/+ с пустой ГТД в отрицательной строке и заполненной в положительной теперь схлопываются (PLR-041047 и аналоги). ## 1.3.1.105 (2026-08-31) ### РК_ЗагрузкаОстатков — fix дубли id Form.xml (#19) - Команда «Свернуть комиссионные остатки» использовала id **1518/1519/1521**, уже занятые таблицей `ОтборГруппНоменклатур` → дерево групп не заполнялось. - Новые id кнопок: **1566–1569**. ## 1.3.1.104 (2026-08-31) ### РК_ЗагрузкаОстатков — fix компиляции Abs (#19) - `Abs()` заменён на `?(СуммаКол >= 0, СуммаКол, -СуммаКол)` — в BSL 1С нет глобальной функции `Abs`. ## 1.3.1.103 (2026-08-31) ### РК_ЗагрузкаОстатков — fix загрузки Form.xml (#19) - Удалён невалидный `StdPicture.CollapseTree` у команды «Свернуть комиссионные остатки» (ошибка XDTO Picture при загрузке из файлов). ## 1.3.1.102 (2026-08-31) ### РК_ЗагрузкаОстатков — свернуть комиссионные остатки (#19, crm3-migration#24) - Команда **«Свернуть комиссионные остатки»** на форме и на вкладке комиссии. - Алгоритм: пары «−qty без серии / +qty с серией» при равных |qty|; затем группы с net qty ≈ 0. - Экспорт `СвернутьКомиссионныеОстатки()` в ObjectModule. ## 1.3.1.101 (2026-08-21) ### РК_ПроверкаСерий — отображение пометки удаления дублей (#15) - В `ФормаИзмененияМастерСерии` добавлена колонка **Пометка удаления**; в списке видны и помеченные серии. - После объединения при включённой настройке пометки — оповещение и сообщение пользователю о числе помеченных дублей; комментарий в строке группы. - В поиске дублей не учитываются серии с пометкой удаления и без остатков. ## 1.3.1.100 (2026-08-20) ### РК_ПроверкаСерий — пометка дублей на удаление (#15) - Добавлен сохраняемый реквизит формы `Помечать дубли серии на удаление`. - При объединении (не в режиме теста), если настройка включена, после `ЗаменитьСсылки` не-мастер серии помечаются на удаление. ## 1.3.1.99 (2026-08-20) ### РК_ЗагрузкаЦен — актуальные цены из исходной ИБ (#18) - Обработка `РК_ЗагрузкаЦен` в подсистеме «Обмен с внешней базой»: срез цен на дату через Transfer API (`POST /v1/prices/types`, `POST /v1/prices/slice`, нужен **ws-rhana ≥ 0.0.0.44** на исходной ИБ). - Сопоставление и при необходимости создание видов цен; сопоставление номенклатуры (артикул → GUID → код → наименование). - Документы `УстановкаЦенНоменклатуры` (ТЧ `Товары2_5` при ЦО 2.5, `СерияЦО` пустая — в источнике цены без серии). - В таблице входящих цен — признаки посерийного складского учёта и ключа цен по серии в цели, текущая цена цели. ## 1.3.1.98 (2026-08-20) ### РК_ПроверкаСерий — доработка объединения дублей (#15) - Исправлен ложный отказ «Отметьте группы для объединения»: перед проверкой завершается редактирование строки, колонка `Отметка` переведена в `EditMode=Directly`, уточнены сообщения (в т.ч. когда отмеченные группы уже объединены). - При поиске дублей заполняется `ИдентификаторСерии` (UUID мастер-серии). - Для таблицы `ГруппыДублей` добавлены сортировка по текущей колонке и открытие формы мастер-серии по событию `Выбор`. - Команда **Выбрать другую мастер серию** (`Ctrl+C`) открывает `ФормаИзмененияМастерСерии` со списком серий группы; после выбора пересчитываются мастер, остатки и детали строки. ## 1.3.1.97 (2026-08-20) ### РК_ПроверкаСерий — заготовки UI объединения дублей (#15) - Добавлены `ГруппыДублейДеталиОстатков1`, реквизит `ИдентификаторСерии`, пустая форма `ФормаИзмененияМастерСерии` (доработаны в 1.3.1.98). ## 1.3.1.96 (2026-08-20) ### РК_ПроверкаСерий — исправление события двойного клика (#17) - Открытие формы серии привязано к событию таблицы `Выбор` (`Selection`), а не к `ОбработкаВыбора` (`ChoiceProcessing`). - `ПроблемныеСерииПриАктивизацииСтроки` по-прежнему только обновляет UUID выбранной серии. ## 1.3.1.95 (2026-08-19) ### РК_ПроверкаСерий — открытие формы серии по событию выбора (#17) - Открытие формы элемента серии переведено с `ПриАктивацииСтроки` на событие `Выбор` таблицы `ПроблемныеСерии`. - Обработчик активации строки оставлен только для обновления UUID выбранной серии под таблицей. ## 1.3.1.89f (2026-08-19) ### РК_ПроверкаСерий — открытие формы серии без двойного клика (#17) - Открытие формы элемента серии переведено на обработчик активации строки `ПроблемныеСерии`, чтобы не зависеть от повторной активации той же строки. ## 1.3.1.90 (2026-08-19, отменена) ### РК_ПроверкаСерий — критичные замечания (#17) - В расширение добавлены зависимости на справочники `СерииНоменклатуры`, `Номенклатура`, `ВидыНоменклатуры`, чтобы в ТЧ `ПроблемныеСерии` корректно подтягивалось описание типов значений. - Версия отменена; итоговая рабочая публикация перенесена в `1.3.1.89f`. ## 1.3.1.89 (2026-08-19) ### РК_ПроверкаСерий — UUID в форме и исправление записи (#17) - На странице заполнения под таблицей `ПроблемныеСерии` добавлено отображение UUID выбранной серии, а `ТекстПоследнейОшибки` перенесён на отдельную страницу `Отчетность`. - Новые строки таблицы проблем теперь создаются с `Отметка = Ложь`. - `Исправить отмеченные` теперь определяет необходимость записи по реальному объекту `СерииНоменклатуры` из базы, а не по уже заполненной строке формы после `ЗаполнитьПоПредложениям`. ## 1.3.1.88 (2026-08-19) ### РК_ПроверкаСерий — НГ/КГ по ссылке серии (#17) - Группировка строк `НГ` / `КГ` переведена с представления серии на саму ссылку `Серия`, чтобы разные элементы справочника с одинаковым текстом не объединялись в одну группу. ## 1.3.1.87 (2026-08-19) ### РК_ПроверкаСерий — группы строк серии и синхронизация значений (#17 / #14) - В таблицу `ПроблемныеСерии` добавлены колонки `НГ` и `КГ`: номер группы уникальной серии и количество строк этой серии в таблице. - После применения предложенных значений и после исправления строки значения серии (`Номер`, `ГоденДо`, `Наименование`, предложенные поля, признак исправления) синхронизируются во всех строках той же серии. ## 1.3.1.86 (2026-08-19) ### РК_ПроверкаСерий — приоритет автономера из срока (#17) - Если `Номер` пустой и есть срок годности (включая **Срок годности по умолчанию**), то предложенный номер формируется как `a-YYMMDD` из даты срока в приоритете над разбором `Наименование`. ## 1.3.1.85 (2026-08-19) ### РК_ПроверкаСерий — номер/наименование при «Пустой срок годности» (#17 / #14) - Для сценария, когда строка проблемы содержит только «Пустой срок годности», автономер `a-YYMMDD` и связанное `Наименование` (из даты срока) теперь применяются также на этапе «Исправить отмеченные». ## 1.3.1.84 (2026-08-19) ### РК_ПроверкаСерий — автономер при «Пустой срок годности» (#17 / #14) - Если `Номер` пустой и по политике вида номер обязателен, то предложение номера `a-YYMMDD` формируется из даты срока (в т.ч. из **«Срок годности по умолчанию»**), даже когда строка проблемы содержит только «Пустой срок годности». ## 1.3.1.83 (2026-08-18) ### РК_ПроверкаСерий — автономер из срока годности (#17) - Для «Пустой номер» (номер обязателен по политике вида): если из наименования не извлекли — номер `a-YYMMDD` из срока (фактического или предложенного). - Пример: срок 01.02.2027 → номер `a-270201`, наименование `a-270201 до 01.02.2027` (если наименование пустое). - Префикс `a-` — автоматически сгенерированный номер для исправления серии. ## 1.3.1.82 (2026-08-18) ### РК_ПроверкаСерий — сохранение срока годности по умолчанию - Для формы включён автосохранение значений (`AutoSaveDataInSettings`). - Реквизит `ГоденДоПоУмолчанию` на форме отмечен как сохраняемый. ## 1.3.1.81 (2026-08-18) ### РК_ПроверкаСерий — срок годности по умолчанию (#15 / #14) - На вкладке «Заполнение реквизитов» поле **Срок годности по умолчанию**. - Для проблемы «Пустой срок годности» (срок обязателен по политике вида): сначала дата из наименования, если не разобралась — значение поля. - Используется при «Найти проблемы», «Сформировать предложения» и «Заполнить по предложениям». ## 1.3.1.80 (2026-08-17) ### РК_ПроверкаСерий — ключ дублей (#15) - Группа дублей: вид + номер + срок годности. `ДатаПроизводства` не входит в ключ (политика вида у РАНА не используется). - #14 заполняет номер из наименования, не нумератором; уникальные номера разбили бы группы с пустым номером. ## 1.3.1.79 (2026-08-17) ### Исправление - Компиляция формы: `ДеньМесяца` заменён на платформенный `День()`; локальные переменные даты переименованы, чтобы не затенять функции. ## 1.3.1.78 (2026-08-17) ### РК_ПроверкаСерий — анализ таблицы проблем - Отбор **Только с остатком**, поиск по строке в командной панели таблицы, сортировка по остатку и по текущей колонке. - Номенклатура заполняется из `ТоварыНаСкладах` (при отсутствии остатка — из `ДвиженияСерийТоваров`). - Кнопка **Сформировать предложения** — отдельная генерация предложенных номера/срока/наименования из наименования серии. - Разбор срока: не только шаблон «до …», но и дата в тексте (`dd.MM.yy`, `MM.yyyy`). ## 1.3.1.77 (2026-08-17) ### Исправление - Остатки по сериям: `ДвиженияСерийТоваров` — оборотный регистр (нет `.Остатки`); используется `ТоварыНаСкладах.Остатки` (`ВНаличииОстаток`). ## 1.3.1.76 (2026-08-17) ### Исправление - `ПроблемныеСерии`: реквизит `НомерСтроки` переименован в `ПорядковыйНомер` (имя `НомерСтроки` зарезервировано платформой для ТЧ). ## 1.3.1.75 (2026-08-17) ### РК_ПроверкаСерий — вкладка «Заполнение реквизитов» - ТЧ `ПроблемныеСерии`: колонки **№** (`ПорядковыйНомер`) и **Остаток** (`ТоварыНаСкладах.Остатки`). - Команда **Заполнить по предложениям** — перенос предложенных значений в колонки таблицы для отмеченных строк (без записи в ИБ). - **Исправить отмеченные** — запись из колонок таблицы (или предложений, если колонки пусты). ## 1.3.1.74 (2026-08-17) ### РК_ПроверкаСерий — парсинг наименования из выборки - Исправлена ошибка «Поле объекта недоступно для записи (Наименование)» при «Найти проблемы»: параметры функций парсинга не перезаписываются. ## 1.3.1.73 (2026-08-17) ### РК_ПроверкаСерий — исправление поиска проблем - Запрос: убрано несуществующее поле `Сер.Владелец` (в crm3-26 серии не подчинены номенклатуре). - Поле формы **Последняя ошибка** — полный текст ошибки для копирования; дублируется в окно сообщений. ## 1.3.1.72 (2026-08-17) ### Исправление - `РК_ПроверкаСерий.xml`: опечатка `<` XML-ответа платформы) для формы проверки. --- ## 1.3.1.53 (2026-08-11) ### Исправлено - Заимствован `CommonModule.ОбщегоНазначения` (Adopted, без доработки модуля) — компилятор расширения видит только объекты расширения и заимствованные объекты хоста. - В менеджере `РК_НастройкиПодключенияКВнешнейБазе` и `РК_ОбменСВнешнейБазой` снова `ОбщегоНазначения.ЗначенияРеквизитовОбъекта` (как в `РК_ЗагрузкаОстатков` / `crm3-dev.rhana`). --- ## 1.3.1.52 (2026-08-11) ### Исправлено - Модуль менеджера `РК_НастройкиПодключенияКВнешнейБазе` и `РК_ОбменСВнешнейБазой`: убраны вызовы `ОбщегоНазначения.ЗначенияРеквизитовОбъекта` (модуль не заимствован в расширении) — чтение реквизитов через ссылку/объект справочника. --- ## 1.3.1.51 (2026-08-11) ### РК_НастройкиПодключенияКВнешнейБазе - Проверка соединения вынесена в модуль менеджера: `ПроверитьСоединение(Источник)`. - Источник: ссылка, объект справочника или структура полей формы (без проверки «Активно»). - Возврат: `Успех`, `Текст`, `Ответ`, `Ошибка` — для UI и вызова из кода. - `СоединениеАктивно(Ссылка)` — «Активно» + совпадение `ИмяТекущейБазы` с текущей ИБ. - `ИмяТекущейИнформационнойБазы()` — общее API менеджера. --- ## 1.3.1.50 (2026-08-11) ### РК_НастройкиПодключенияКВнешнейБазе - Форма элемента: «Обновить имя текущей базы» — из `Ref=` / `File=` строки соединения. - Форма элемента: «Проверить» — `GET /v1/health` по полям формы (без записи, без проверки «Активно»). - `РК_ОбменСВнешнейБазой`: `ПроверитьСоединение`, `ВыполнитьGET`; токен передаётся в `X-Transfer-Token` (совместимо с Basic Auth). --- ## 1.3.1.49 (2026-08-10) ### Обработка РК_ЗагрузкаОстатков — подбор складов и предварительные остатки - Общий модуль `РК_ОбменСВнешнейБазой`: HTTP-клиент Transfer API по `РК_НастройкиПодключенияКВнешнейБазе`. - Подбор складов исходной ИБ (`POST /v1/stock/warehouses`) в отбор на форме. - Загрузка остатков (`POST /v1/stock/balances`, mode=`combined`) в ТЧ `ВходящиеДанные` с детализацией (кол-во, артикул, код, характеристика, серия/ГТД GUID, вид, политика, организация). - Шаг «Сопоставить»: поиск НСИ + создание серий-заглушек `Перенос_<склад>_<дата>` по логике BSL-переноса остатков (тест / запись). - Создание документов ввода остатков — следующий шаг (пока не реализовано). Пара: `ws-rhana` 0.0.0.30 (endpoint складов + `nomenclature_article`). --- ## 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 |