1.3.1.133: окно серий и строки одной аналитики суммируются, страна ГТД из остатка.
Проведение склада берёт максимум строки серии (#36). Строки с одной номенклатурой, характеристикой, серией и ГТД складываются до записи (#81). Пустая карточка ГТД получает код и страну из данных загрузки (#80). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -4,6 +4,15 @@
|
||||
|
||||
---
|
||||
|
||||
## 1.3.1.133 (2026-10-13)
|
||||
|
||||
### #36: окно серий сворачивается суммой перед записью ввода остатков
|
||||
|
||||
- Проведение склада для статусов серий 4, 6, 8 и 10 берёт максимум количества, а не сумму повторов одной серии.
|
||||
- Перед записью КБ строки окна серий с одной номенклатурой, характеристикой, назначением, серией и упаковкой складываются.
|
||||
- [#81](https://git.p7net.ru/rhana/crm3-migration/issues/81): строки товаров с одной номенклатурой, характеристикой, серией и ГТД суммируются, в том числе с заполненной характеристикой. Разный ГТД остаётся разными строками.
|
||||
- Загрузка остатков не создаёт элементы номеров ГТД. Если у найденной карточки пуст код, в него пишется номер из остатка. Пустая страна заполняется по коду страны из исходной базы.
|
||||
|
||||
## 1.3.1.132 (2026-10-13)
|
||||
|
||||
### #79: сумма без НДС при выключенном «Цена включает НДС»
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
<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="bece1f29a627db12ff29614e8e09b65e386e3272"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков" id="5922bda8-8f69-487c-823a-8b09e343f59a" configVersion="ee131b03d569514c81758f3c969877170a39f431">
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков" id="5922bda8-8f69-487c-823a-8b09e343f59a" configVersion="9dc6e94b758c1024e246a6080a87151007a64da0">
|
||||
<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"/>
|
||||
@@ -161,6 +161,7 @@
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеСобственныеТовары.Attribute.ХарактеристикаНаименование" id="8fa984e4-bbf2-4d38-a80d-33827c3645da"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеКомиссионныеТовары.Attribute.ВидЗапасовИдентификатор" id="91c330ed-7136-4788-8516-9a67b86b2189"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеКомиссионныеТовары.Attribute.КоличествоКОтгрузке" id="96d40d10-3374-40d1-9daf-3ddcb1cb6b7a"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеКомиссионныеТовары.Attribute.ГТДСтранаКод" id="9ffc6bfd-69fe-4490-8dc4-b4d80e60580b"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеСобственныеТовары.Attribute.СерияИдентификатор" id="a0b08c20-f11b-47bb-ab41-3c80166deab5"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ПолитикаУчетаНоменклатуры.Attribute.ТочностьУказанияСрокаГодностиСерии" id="a1296c97-525a-457d-870e-634d893cea01"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеСобственныеТовары.Attribute.ВидНоменклатурыНаименование" id="a1896aca-6eaf-46df-87dc-2e9f3ea8ae64"/>
|
||||
@@ -204,6 +205,7 @@
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.СозданныеДокументы.Attribute.ЭтоТест" id="d6f1b4c7-a45c-4b6e-9b83-f8d9201a3be5"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ПолитикаУчетаНоменклатуры" id="d8059437-d963-4b1b-8930-8ed7b9fd05fe"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Attribute.ПодключениеКСтороннейБазе" id="d8202194-9b79-46e4-b922-34f7c3add55c"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеСобственныеТовары.Attribute.ГТДСтранаКод" id="e1699ec9-b50f-4dd1-bb23-6fa9374444ff"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.СозданныеДокументы.Attribute.Соглашение" id="e1a6c9d2-5f07-4619-8c3e-a3847bc5e690"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Attribute.СоздаватьЗаглушкиСерий" id="e41a311b-b962-4888-ab06-c8ee29eb6351"/>
|
||||
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ПолитикаУчетаНоменклатуры.Attribute.ВидНоменклатурыНаименование" id="e4d84e8b-fbd4-4967-9f84-67622403de0a"/>
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
|
||||
</DefaultRoles>
|
||||
<Vendor/>
|
||||
<Version>1.3.1.132</Version>
|
||||
<Version>1.3.1.133</Version>
|
||||
<DefaultStyle/>
|
||||
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||||
<BriefInformation/>
|
||||
|
||||
@@ -1032,6 +1032,46 @@
|
||||
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||
</Properties>
|
||||
</Attribute>
|
||||
<Attribute uuid="e1699ec9-b50f-4dd1-bb23-6fa9374444ff">
|
||||
<Properties>
|
||||
<Name>ГТДСтранаКод</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Код страны ГТД</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>10</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
<PasswordMode>false</PasswordMode>
|
||||
<Format/>
|
||||
<EditFormat/>
|
||||
<ToolTip/>
|
||||
<MarkNegatives>false</MarkNegatives>
|
||||
<Mask/>
|
||||
<MultiLine>false</MultiLine>
|
||||
<ExtendedEdit>false</ExtendedEdit>
|
||||
<MinValue xsi:nil="true"/>
|
||||
<MaxValue xsi:nil="true"/>
|
||||
<FillFromFillingValue>false</FillFromFillingValue>
|
||||
<FillValue xsi:type="xs:string"/>
|
||||
<FillChecking>DontCheck</FillChecking>
|
||||
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||
<ChoiceParameterLinks/>
|
||||
<ChoiceParameters/>
|
||||
<QuickChoice>Auto</QuickChoice>
|
||||
<CreateOnInput>Auto</CreateOnInput>
|
||||
<ChoiceForm/>
|
||||
<LinkByType/>
|
||||
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||
</Properties>
|
||||
</Attribute>
|
||||
<Attribute uuid="b037736f-f398-4863-8734-45f0e88ee3c9">
|
||||
<Properties>
|
||||
<Name>ГТДИдентификатор</Name>
|
||||
@@ -2558,6 +2598,46 @@
|
||||
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||
</Properties>
|
||||
</Attribute>
|
||||
<Attribute uuid="9ffc6bfd-69fe-4490-8dc4-b4d80e60580b">
|
||||
<Properties>
|
||||
<Name>ГТДСтранаКод</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Код страны ГТД</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>10</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
<PasswordMode>false</PasswordMode>
|
||||
<Format/>
|
||||
<EditFormat/>
|
||||
<ToolTip/>
|
||||
<MarkNegatives>false</MarkNegatives>
|
||||
<Mask/>
|
||||
<MultiLine>false</MultiLine>
|
||||
<ExtendedEdit>false</ExtendedEdit>
|
||||
<MinValue xsi:nil="true"/>
|
||||
<MaxValue xsi:nil="true"/>
|
||||
<FillFromFillingValue>false</FillFromFillingValue>
|
||||
<FillValue xsi:type="xs:string"/>
|
||||
<FillChecking>DontCheck</FillChecking>
|
||||
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||
<ChoiceParameterLinks/>
|
||||
<ChoiceParameters/>
|
||||
<QuickChoice>Auto</QuickChoice>
|
||||
<CreateOnInput>Auto</CreateOnInput>
|
||||
<ChoiceForm/>
|
||||
<LinkByType/>
|
||||
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||
</Properties>
|
||||
</Attribute>
|
||||
<Attribute uuid="41d1148e-30d6-427c-9aa6-21feaa13873f">
|
||||
<Properties>
|
||||
<Name>ГТДИдентификатор</Name>
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьНомерГТДСтроки(СтрТ);
|
||||
ЗаполнитьНомерГТДСтроки(СтрТ, РежимТест);
|
||||
|
||||
СтрТ.Сопоставлено = Истина;
|
||||
Если ПустаяСтрока(СтрТ.КомментарийСопоставления) Тогда
|
||||
@@ -289,7 +289,7 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьНомерГТДСтроки(СтрТ);
|
||||
ЗаполнитьНомерГТДСтроки(СтрТ, РежимТест);
|
||||
|
||||
СтрТ.Сопоставлено = Истина;
|
||||
Если ПустаяСтрока(СтрТ.КомментарийСопоставления) Тогда
|
||||
@@ -1170,7 +1170,7 @@
|
||||
Исключение
|
||||
КонецПопытки;
|
||||
|
||||
СтрокиСклада = СвернутьСтрокиБезХарактеристики(СтрокиСклада);
|
||||
СтрокиСклада = СвернутьСтрокиОднойАналитики(СтрокиСклада);
|
||||
Для Каждого СтрТ Из СтрокиСклада Цикл
|
||||
ДобавитьСтрокуТоваровДокументаВвода(Док, СтрТ);
|
||||
КонецЦикла;
|
||||
@@ -1187,6 +1187,7 @@
|
||||
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Док, ПараметрыУказанияСерий);
|
||||
Исключение
|
||||
КонецПопытки;
|
||||
СвернутьСерииДокументаВвода(Док);
|
||||
|
||||
Док.ОбменДанными.Загрузка = Ложь;
|
||||
Док.Записать(РежимЗаписиДокумента.Запись);
|
||||
@@ -1245,7 +1246,7 @@
|
||||
Исключение
|
||||
КонецПопытки;
|
||||
|
||||
СтрокиГруппы = СвернутьСтрокиБезХарактеристики(СтрокиГруппы);
|
||||
СтрокиГруппы = СвернутьСтрокиОднойАналитики(СтрокиГруппы);
|
||||
Для Каждого СтрТ Из СтрокиГруппы Цикл
|
||||
ДобавитьСтрокуТоваровДокументаВвода(Док, СтрТ);
|
||||
КонецЦикла;
|
||||
@@ -1262,6 +1263,7 @@
|
||||
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Док, ПараметрыУказанияСерий);
|
||||
Исключение
|
||||
КонецПопытки;
|
||||
СвернутьСерииДокументаВвода(Док);
|
||||
|
||||
Док.ОбменДанными.Загрузка = Ложь;
|
||||
Док.Записать(РежимЗаписиДокумента.Запись);
|
||||
@@ -1269,6 +1271,56 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проведение ТоварыНаСкладах для статусов 4, 6, 8, 10 берёт МАКСИМУМ количества
|
||||
// окна серий в разрезе номенклатуры, характеристики, назначения, серии и упаковки (#36).
|
||||
// Повторы одной серии из разных строк товаров схлопываются суммой до записи.
|
||||
//
|
||||
Процедура СвернутьСерииДокументаВвода(Док)
|
||||
|
||||
Если Док.Серии.Количество() < 2 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Индекс = Новый Соответствие;
|
||||
КУдалению = Новый Массив;
|
||||
Для Каждого СтрСер Из Док.Серии Цикл
|
||||
КлючХар = "";
|
||||
Если ЗначениеЗаполнено(СтрСер.Характеристика) Тогда
|
||||
КлючХар = Строка(СтрСер.Характеристика.УникальныйИдентификатор());
|
||||
КонецЕсли;
|
||||
КлючНазначения = "";
|
||||
Если ЗначениеЗаполнено(СтрСер.Назначение) Тогда
|
||||
КлючНазначения = Строка(СтрСер.Назначение.УникальныйИдентификатор());
|
||||
КонецЕсли;
|
||||
КлючУпаковки = "";
|
||||
Если ЗначениеЗаполнено(СтрСер.Упаковка) Тогда
|
||||
КлючУпаковки = Строка(СтрСер.Упаковка.УникальныйИдентификатор());
|
||||
КонецЕсли;
|
||||
КлючСерии = "";
|
||||
Если ЗначениеЗаполнено(СтрСер.Серия) Тогда
|
||||
КлючСерии = Строка(СтрСер.Серия.УникальныйИдентификатор());
|
||||
КонецЕсли;
|
||||
Ключ = Строка(СтрСер.Номенклатура.УникальныйИдентификатор())
|
||||
+ "|" + КлючХар
|
||||
+ "|" + КлючНазначения
|
||||
+ "|" + КлючСерии
|
||||
+ "|" + КлючУпаковки;
|
||||
Уже = Индекс.Получить(Ключ);
|
||||
Если Уже = Неопределено Тогда
|
||||
Индекс.Вставить(Ключ, СтрСер);
|
||||
Иначе
|
||||
Уже.Количество = Уже.Количество + СтрСер.Количество;
|
||||
Уже.КоличествоУпаковок = Уже.КоличествоУпаковок + СтрСер.КоличествоУпаковок;
|
||||
КУдалению.Добавить(СтрСер);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого СтрСер Из КУдалению Цикл
|
||||
Док.Серии.Удалить(СтрСер);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьСтрокуТоваровДокументаВвода(Док, СтрТ)
|
||||
|
||||
КолДок = СтрТ.КоличествоОрганизации;
|
||||
@@ -1375,22 +1427,39 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СвернутьСтрокиБезХарактеристики(Строки)
|
||||
// #81: одна аналитика — номенклатура, характеристика, серия и ГТД.
|
||||
// Разный ГТД не схлопывается. Без серии строка остаётся отдельной:
|
||||
// пустая колонка серии не отличает разные карточки окна.
|
||||
//
|
||||
Функция СвернутьСтрокиОднойАналитики(Строки)
|
||||
|
||||
Результат = Новый Массив;
|
||||
Индекс = Новый Соответствие;
|
||||
Для Каждого СтрТ Из Строки Цикл
|
||||
Если ЗначениеЗаполнено(СтрТ.Характеристика) Или Не ЗначениеЗаполнено(СтрТ.СерияСсылка) Тогда
|
||||
Если Не ЗначениеЗаполнено(СтрТ.СерияСсылка) Тогда
|
||||
Результат.Добавить(СтрТ);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
КлючХар = "";
|
||||
Если ЗначениеЗаполнено(СтрТ.Характеристика) Тогда
|
||||
КлючХар = Строка(СтрТ.Характеристика.УникальныйИдентификатор());
|
||||
КонецЕсли;
|
||||
КлючГТД = "";
|
||||
Если ЗначениеЗаполнено(СтрТ.НомерГТДСсылка) Тогда
|
||||
КлючГТД = Строка(СтрТ.НомерГТДСсылка.УникальныйИдентификатор());
|
||||
КонецЕсли;
|
||||
КлючНазначения = "";
|
||||
Попытка
|
||||
Если ЗначениеЗаполнено(СтрТ.НазначениеИдентификатор) Тогда
|
||||
КлючНазначения = Строка(СтрТ.НазначениеИдентификатор);
|
||||
КонецЕсли;
|
||||
Исключение
|
||||
КонецПопытки;
|
||||
Ключ = Строка(СтрТ.Номенклатура.УникальныйИдентификатор())
|
||||
+ "|" + КлючХар
|
||||
+ "|" + Строка(СтрТ.СерияСсылка.УникальныйИдентификатор())
|
||||
+ "|" + КлючГТД;
|
||||
+ "|" + КлючГТД
|
||||
+ "|" + КлючНазначения;
|
||||
Уже = Индекс.Получить(Ключ);
|
||||
Если Уже = Неопределено Тогда
|
||||
Индекс.Вставить(Ключ, СтрТ);
|
||||
@@ -1524,6 +1593,7 @@
|
||||
ГТДТекст = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "gtd_number", "")));
|
||||
КонецЕсли;
|
||||
НовСтр.ГТД = ГТДТекст;
|
||||
НовСтр.ГТДСтранаКод = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "gtd_country_code", "")));
|
||||
|
||||
НовСтр.ОрганизацияИдентификатор = UUIDИзСтроки(ЗначениеСвойства(СтрокаAPI, "organization_guid", ""));
|
||||
НовСтр.ОрганизацияНаименование = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "organization_name", "")));
|
||||
@@ -1680,28 +1750,117 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаполнитьНомерГТДСтроки(СтрТ)
|
||||
// Элементы НомераГТД обработка не создаёт. Пустой код даёт в документе «<>»:
|
||||
// представление справочника — код, а в списке виден регистрационный номер.
|
||||
// Из нескольких карточек одного номера берётся заполненная. Если код пуст,
|
||||
// в него пишется номер из остатка. Пустая страна берётся из кода страны исходной базы.
|
||||
//
|
||||
Процедура ЗаполнитьНомерГТДСтроки(СтрТ, РежимТест)
|
||||
|
||||
Если Не ЗначениеЗаполнено(СтрТ.ГТД) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КодГТД = СокрЛП(СтрТ.ГТД);
|
||||
СтрТ.НомерГТДСсылка = Справочники.НомераГТД.НайтиПоКоду(КодГТД);
|
||||
Если Не ЗначениеЗаполнено(СтрТ.НомерГТДСсылка) Тогда
|
||||
СтрТ.НомерГТДСсылка = Справочники.НомераГТД.НайтиПоРеквизиту("РегистрационныйНомер", КодГТД);
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(СтрТ.НомерГТДСсылка) Тогда
|
||||
СтрТ.НомерГТДСсылка = Справочники.НомераГТД.НайтиПоНаименованию(КодГТД, Истина);
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(СтрТ.НомерГТДСсылка) Тогда
|
||||
СсылкаГТД = СсылкаПоUUID(Справочники.НомераГТД, СтрТ.ГТДИдентификатор);
|
||||
Если ЗначениеЗаполнено(СсылкаГТД) И ОбщегоНазначения.СсылкаСуществует(СсылкаГТД) Тогда
|
||||
СтрТ.НомерГТДСсылка = СсылкаГТД;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
СтрТ.НомерГТДСсылка = ПодобратьКарточкуГТД(СокрЛП(СтрТ.ГТД), СтрТ.ГТДИдентификатор,
|
||||
СтрТ.ГТДСтранаКод, РежимТест);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПодобратьКарточкуГТД(КодГТД, Идентификатор, КодСтраныИсточника, РежимТест)
|
||||
|
||||
СсылкаПоГуид = СсылкаПоUUID(Справочники.НомераГТД, Идентификатор);
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("Номер", КодГТД);
|
||||
Запрос.УстановитьПараметр("Ссылка", СсылкаПоГуид);
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ГТД.Ссылка КАК Ссылка,
|
||||
| ГТД.Код КАК Код,
|
||||
| ГТД.РегистрационныйНомер КАК РегНомер,
|
||||
| ГТД.СтранаПроисхождения КАК Страна
|
||||
|ИЗ
|
||||
| Справочник.НомераГТД КАК ГТД
|
||||
|ГДЕ
|
||||
| НЕ ГТД.ПометкаУдаления
|
||||
| И (СОКРЛП(ГТД.Код) = &Номер
|
||||
| ИЛИ ГТД.РегистрационныйНомер = &Номер
|
||||
| ИЛИ ГТД.Ссылка = &Ссылка)";
|
||||
|
||||
Лучшая = Справочники.НомераГТД.ПустаяСсылка();
|
||||
ЛучшийБалл = -1;
|
||||
СтранаПолная = Справочники.СтраныМира.ПустаяСсылка();
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
НомерСовпадает = СокрЛП(Выборка.Код) = КодГТД Или СокрЛП(Выборка.РегНомер) = КодГТД;
|
||||
Если Не НомерСовпадает Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Балл = 0;
|
||||
Если ЗначениеЗаполнено(СокрЛП(Выборка.Код)) Тогда
|
||||
Балл = Балл + 2;
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(Выборка.Страна) Тогда
|
||||
Балл = Балл + 1;
|
||||
Если Не ЗначениеЗаполнено(СтранаПолная) Тогда
|
||||
СтранаПолная = Выборка.Страна;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Если Балл > ЛучшийБалл Тогда
|
||||
ЛучшийБалл = Балл;
|
||||
Лучшая = Выборка.Ссылка;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Лучшая) Тогда
|
||||
Возврат Справочники.НомераГТД.ПустаяСсылка();
|
||||
КонецЕсли;
|
||||
|
||||
СтранаИсточника = СтранаМираПоКоду(КодСтраныИсточника);
|
||||
Если ЗначениеЗаполнено(СтранаИсточника) Тогда
|
||||
СтранаПолная = СтранаИсточника;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ДополнитьПустуюКарточкуГТД(Лучшая, КодГТД, СтранаПолная, РежимТест);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СтранаМираПоКоду(КодСтраны)
|
||||
|
||||
Код = СокрЛП(КодСтраны);
|
||||
Если ПустаяСтрока(Код) Тогда
|
||||
Возврат Справочники.СтраныМира.ПустаяСсылка();
|
||||
КонецЕсли;
|
||||
Возврат Справочники.СтраныМира.НайтиПоКоду(Код);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДополнитьПустуюКарточкуГТД(СсылкаГТД, КодГТД, СтранаПолная, РежимТест)
|
||||
|
||||
КодКарточки = СокрЛП(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаГТД, "Код"));
|
||||
СтранаКарточки = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаГТД, "СтранаПроисхождения");
|
||||
НуженКод = Не ЗначениеЗаполнено(КодКарточки);
|
||||
НужнаСтрана = Не ЗначениеЗаполнено(СтранаКарточки) И ЗначениеЗаполнено(СтранаПолная);
|
||||
Если РежимТест Или (Не НуженКод И Не НужнаСтрана) Тогда
|
||||
Возврат СсылкаГТД;
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектГТД = СсылкаГТД.ПолучитьОбъект();
|
||||
Если НуженКод Тогда
|
||||
ОбъектГТД.Код = КодГТД;
|
||||
Если Не ЗначениеЗаполнено(ОбъектГТД.РегистрационныйНомер) Тогда
|
||||
ОбъектГТД.РегистрационныйНомер = КодГТД;
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(ОбъектГТД.ТипНомераГТД) Тогда
|
||||
ОбъектГТД.ТипНомераГТД = Перечисления.ТипыНомеровГТД.НомерГТД;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Если НужнаСтрана Тогда
|
||||
ОбъектГТД.СтранаПроисхождения = СтранаПолная;
|
||||
КонецЕсли;
|
||||
ОбъектГТД.Записать();
|
||||
Возврат ОбъектГТД.Ссылка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// A4a (#24 comment-893/897): plain dev «Основное соглашение по договорам» (продажи) →
|
||||
// индивидуальное соглашение комиссии Поварова в target (не типовое 1448bf7f:
|
||||
// ввод на основании типового соглашения в Заказ/Реализация запрещён).
|
||||
|
||||
Reference in New Issue
Block a user