1.3.1.111: договор комиссии 2.5 при сопоставлении/создании вводов (#34).

Поиск ПередачаНаКомиссию по партнёру; без договора — явная ошибка.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
mihailkudravcev
2026-09-03 11:00:29 +03:00
parent ae64d7b127
commit d35efb2b72
5 changed files with 82 additions and 11 deletions
+8
View File
@@ -4,6 +4,14 @@
---
## 1.3.1.111 (2026-09-03)
### РК_ЗагрузкаОстатков — договор комиссии 2.5 (#34)
- Поиск договора `ПередачаНаКомиссию` по партнёру/контрагенту/организации (предпочтительно `КомиссионныеПродажи25`).
- Соглашение не содержит реквизит `Договор`; API не отдаёт `contract_*`.
- Сопоставление и создание документа без договора — ошибка с понятным текстом.
## 1.3.1.110 (2026-09-02)
### РК_ЗагрузкаОстатков — серии: ГоденДо и заглушки по номенклатуре (#30, #31)
+1 -1
View File
@@ -1 +1 @@
1.3.1.110
1.3.1.111
+3 -3
View File
@@ -50,14 +50,14 @@
<Metadata name="CommonPicture.ПодписанЗашифрованСостояния" id="a0bd1007-a115-4d79-8160-d4f59cd57ffb" configVersion="08ed86b1653fc955004b703d7dce5d947956fdda"/>
<Metadata name="CommonPicture.СерииНоменклатурыКолонкаСтатусов" id="f2badc5e-4af7-4c05-be31-b4d5b7642ab5" configVersion="d070fbc999630568abec9d83770ed805666a24d9"/>
<Metadata name="CommonPicture.СтатусыУказанияСерий" id="cc5cab6d-e293-4890-a422-6e8cd2fb58bb" configVersion="17b11a4c6ec74254745177f7c136d38af0214bdf"/>
<Metadata name="Configuration.crm326RHANA" id="ef31d55b-3788-4972-affb-b7aefd3838aa" configVersion="c9a4e2b17f06d83a5c1e90b4d7f28a6e3b5c10d9"/>
<Metadata name="Configuration.crm326RHANA" id="ef31d55b-3788-4972-affb-b7aefd3838aa" configVersion="1d348e5f245451d870047d29a5a95ea894869b29"/>
<Metadata name="Constant.РК_РабочееПодключениеЧерезАПИ" id="47f107f1-41f6-4f00-bb8a-aa1cf8b60191" configVersion="132678198dbf6e5b884c9ba219f5523cb63f7f8a"/>
<Metadata name="Constant.РК_РежимОтладкиРана" id="32d682cc-7aeb-45c8-abc6-68fef7f36011" configVersion="a12fe879a2594e605228c43059bb3a72d30fa471"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзФайла" id="b6fd11ac-f702-4d13-b328-9a78b0874483" configVersion="c39312c21ebce9b1bb7a4df34e3e489203b3f8a8"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзФайла.Form.ЗагрузкаДанныхИзФайла" id="f47d02ff-17f2-4764-a151-627f4067a479" configVersion="247298ad849a4d46b1f412e90c0184fe64756489"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзФайла.Form.ЗагрузкаДанныхИзФайла.Form" id="f47d02ff-17f2-4764-a151-627f4067a479.0" configVersion="e853a6b3591994346f9ce1d3b7d5cf0daf864fb8"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзФайла.ManagerModule" id="b6fd11ac-f702-4d13-b328-9a78b0874483.2" configVersion="78276e2de46cee0ce6ddd3972858ba87a64b96c0"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков" id="5922bda8-8f69-487c-823a-8b09e343f59a" configVersion="153a9a8d7d574ab7d159818f9fe623770d339541">
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков" id="5922bda8-8f69-487c-823a-8b09e343f59a" configVersion="ee2ec7d46a31579a407dc18d2c6621f681d00561">
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеКомиссионныеТовары.Attribute.СтоимостьРегл" id="068e3fcc-0bd5-4af0-a192-d100909a8cc1"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеСобственныеТовары.Attribute.СкладИдентификатор" id="086673fd-91b2-4966-8472-144da87650e6"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеСобственныеТовары.Attribute.КомментарийСопоставления" id="09d80a73-1aa6-4ecc-a39a-c667e99e3084"/>
@@ -203,7 +203,7 @@
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.ПодборСкладов.Form" id="9dfcb2a8-bf22-44c3-97a7-a69f70ca4d61.0" configVersion="8cddcd809beef075b470c32dd5564aebb81e405c"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.Форма" id="dc49348d-9257-4545-9c29-70c138312177" configVersion="4541c8c382171c6c02021bcc8f500135f4358aa8"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.Форма.Form" id="dc49348d-9257-4545-9c29-70c138312177.0" configVersion="3f9b96e3b263b978e4086e5e52f6d507782d1219"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.ObjectModule" id="5922bda8-8f69-487c-823a-8b09e343f59a.0" configVersion="b8b7d78016833e5e413fe849b304ff1e52f286c0"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.ObjectModule" id="5922bda8-8f69-487c-823a-8b09e343f59a.0" configVersion="cba289096a89424fc3d851e10751d80517baf0e1"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен" id="a18e1801-18e0-4000-8000-000000000001" configVersion="800c7286acdc6bcc40d47f7aa70bdf0f18e2aa5d">
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.Attribute.ПодключениеКСтороннейБазе" id="a18e1801-18e0-4000-8000-000000000101"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.Attribute.ДатаЦен" id="a18e1801-18e0-4000-8000-000000000102"/>
+1 -1
View File
@@ -62,7 +62,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
</DefaultRoles>
<Vendor/>
<Version>1.3.1.110</Version>
<Version>1.3.1.111</Version>
<DefaultStyle/>
<DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation/>
@@ -240,6 +240,12 @@
Результат.НеСопоставлено = Результат.НеСопоставлено + 1;
Продолжить;
КонецЕсли;
Если Не ЗначениеЗаполнено(СтрТ.Договор) Тогда
СтрТ.КомментарийСопоставления = "Договор комиссии 2.5 не найден (партнёр: "
+ СокрЛП(Строка(СтрТ.Партнер)) + ")";
Результат.НеСопоставлено = Результат.НеСопоставлено + 1;
Продолжить;
КонецЕсли;
Хар = НайтиИлиСоздатьХарактеристику(СтрТ, Ном, РежимТест, Результат);
СтрТ.Характеристика = Хар;
@@ -700,6 +706,15 @@
Функция СоздатьДокументКомиссии(СтрокиГруппы, ТекстТега)
Первая = СтрокиГруппы[0];
ДоговорШапки = Первая.Договор;
Если Не ЗначениеЗаполнено(ДоговорШапки) Тогда
ДоговорШапки = НайтиДоговорКомиссии2_5(Первая.Партнер, Первая.Контрагент);
КонецЕсли;
Если Не ЗначениеЗаполнено(ДоговорШапки) Тогда
ВызватьИсключение "Договор комиссии 2.5 не заполнен (партнёр: "
+ СокрЛП(Строка(Первая.Партнер)) + "). См. #34.";
КонецЕсли;
Док = Документы.ВводОстатковТоваров.СоздатьДокумент();
Док.Дата = ДатаДокументовВвода;
Док.Организация = Организация;
@@ -707,7 +722,7 @@
Док.СоглашениеСКомиссионером = Первая.Соглашение;
Док.Партнер = Первая.Партнер;
Док.Контрагент = Первая.Контрагент;
Док.Договор = Первая.Договор;
Док.Договор = ДоговорШапки;
Док.Комментарий = ТекстТега + ", комиссия 2.5, " + СокрЛП(Строка(Первая.Партнер));
Док.ОтражатьВОперативномУчете = Истина;
Док.ОтражатьСебестоимость = ЕстьСтоимостьВСтроках(СтрокиГруппы);
@@ -1160,16 +1175,64 @@
Договор = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(ИмяДог, Истина);
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(Договор) И ЗначениеЗаполнено(Соглашение) Тогда
Попытка
Договор = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Соглашение, "Договор");
Исключение
КонецПопытки;
// У СоглашенияСКлиентами нет реквизита Договор (только ИспользуютсяДоговорыКонтрагентов).
// API комиссии не отдаёт contract_* — ищем договор ПередачаНаКомиссию по партнёру/контрагенту.
Если Не ЗначениеЗаполнено(Договор) Тогда
Договор = НайтиДоговорКомиссии2_5(Партнер, Контр);
КонецЕсли;
СтрТ.Договор = Договор;
КонецПроцедуры
// Договор для ввода остатков комиссии 2.5: ПередачаНаКомиссию у партнёра (предпочтительно CP25).
//
Функция НайтиДоговорКомиссии2_5(Партнер, Контрагент)
Если Не ЗначениеЗаполнено(Партнер) Тогда
Возврат Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Д.Ссылка КАК Ссылка
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК Д
|ГДЕ
| НЕ Д.ПометкаУдаления
| И Д.Партнер = &Партнер
| И Д.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| И (&Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ИЛИ Д.Контрагент = &Контрагент
| ИЛИ Д.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))
| И (&Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
| ИЛИ Д.Организация = &Организация
| ИЛИ Д.Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка))
|УПОРЯДОЧИТЬ ПО
| Д.КомиссионныеПродажи25 УБЫВ,
| ВЫБОР
| КОГДА &Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| И Д.Контрагент = &Контрагент
| ТОГДА 0
| ИНАЧЕ 1
| КОНЕЦ,
| Д.Дата УБЫВ,
| Д.Номер УБЫВ";
Запрос.УстановитьПараметр("Партнер", Партнер);
Запрос.УстановитьПараметр("Контрагент",
?(ЗначениеЗаполнено(Контрагент), Контрагент, Справочники.Контрагенты.ПустаяСсылка()));
Запрос.УстановитьПараметр("Организация",
?(ЗначениеЗаполнено(Организация), Организация, Справочники.Организации.ПустаяСсылка()));
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.Ссылка;
КонецЕсли;
Возврат Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецФункции
Функция ДатаИзSeriesExpire(СтрокаДаты)
Текст = СокрЛП(Строка(СтрокаДаты));