diff --git a/VERSION b/VERSION
index da38598..7dc8bdf 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.3.1.63
+1.3.1.64
diff --git a/src/CommonModules/РК_ОбменСВнешнейБазой/Ext/Module.bsl b/src/CommonModules/РК_ОбменСВнешнейБазой/Ext/Module.bsl
index f712019..e491f7a 100644
--- a/src/CommonModules/РК_ОбменСВнешнейБазой/Ext/Module.bsl
+++ b/src/CommonModules/РК_ОбменСВнешнейБазой/Ext/Module.bsl
@@ -119,6 +119,18 @@
КонецФункции
+// POST /v1/stock/nomenclature-groups на исходной ИБ.
+//
+Функция СписокГруппНоменклатурыВнешнейБазы(Подключение, ПараметрыЗапроса = Неопределено) Экспорт
+
+ Если ПараметрыЗапроса = Неопределено Тогда
+ ПараметрыЗапроса = Новый Структура;
+ КонецЕсли;
+ Настройки = НастройкиПодключения(Подключение);
+ Возврат ВыполнитьPOST(Настройки, "v1/stock/nomenclature-groups", ПараметрыЗапроса);
+
+КонецФункции
+
// Универсальный GET к Transfer API.
//
Функция ВыполнитьGET(НастройкиПодключения, ОтносительныйПуть) Экспорт
diff --git a/src/ConfigDumpInfo.xml b/src/ConfigDumpInfo.xml
index 59061f1..24d0c0e 100644
--- a/src/ConfigDumpInfo.xml
+++ b/src/ConfigDumpInfo.xml
@@ -145,6 +145,14 @@
+
+
+
+
+
+
+
+
diff --git a/src/DataProcessors/РК_ЗагрузкаОстатков.xml b/src/DataProcessors/РК_ЗагрузкаОстатков.xml
index 1be6b57..f57088f 100644
--- a/src/DataProcessors/РК_ЗагрузкаОстатков.xml
+++ b/src/DataProcessors/РК_ЗагрузкаОстатков.xml
@@ -4694,6 +4694,124 @@
+
+
+
+ 9b25a39a-9e13-42b5-92ae-f65a08475332
+ 9d042f35-d49d-42b4-92af-c51a50db28bd
+
+
+ e7012345-a678-4bcd-9ef0-123456789abd
+ 383d7cb5-2b7e-439d-9703-be5c608aaa16
+
+
+
+ ОтборСкладовВнешнейБазы
+
+
+ ru
+ Отбор складов внешней базы
+
+
+
+
+ DontCheck
+
+
+
+
+ Идентификатор
+ ruИдентификатор
+
+ v8:UUID
+ falsefalsefalsefalse
+ falseDontCheck
+ ItemsAutoAutoAuto
+
+
+
+
+ Наименование
+ ruНаименование
+
+ xs:string0Variable
+ falsefalsefalsefalse
+ falseDontCheck
+ ItemsAutoAutoAuto
+
+
+
+
+ Отметка
+ ruОтметка
+
+ xs:boolean
+ falsefalsefalsefalse
+ falsefalseDontCheck
+ ItemsAutoAutoAuto
+
+
+
+
+
+
+
+ a8703c2c-bc4c-4f6e-8025-a664a8a234e7
+ e7ffea42-e739-4ecf-9732-d0387afea506
+
+
+ f8123456-b789-4cde-8fa1-234567890abd
+ a8cd129c-2184-4d08-bbd8-dc6961b5c74d
+
+
+
+ ОтборОрганизацийВнешнейБазы
+
+
+ ru
+ Отбор организаций внешней базы
+
+
+
+
+ DontCheck
+
+
+
+
+ Идентификатор
+ ruИдентификатор
+
+ v8:UUID
+ falsefalsefalsefalse
+ falseDontCheck
+ ItemsAutoAutoAuto
+
+
+
+
+ Наименование
+ ruНаименование
+
+ xs:string0Variable
+ falsefalsefalsefalse
+ falseDontCheck
+ ItemsAutoAutoAuto
+
+
+
+
+ Отметка
+ ruОтметка
+
+ xs:boolean
+ falsefalsefalsefalse
+ falsefalseDontCheck
+ ItemsAutoAutoAuto
+
+
+
+
diff --git a/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl b/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl
index 364f54f..6ca20c1 100644
--- a/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl
+++ b/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl
@@ -760,6 +760,7 @@
ВидИмя = ЗначениеСвойства(СтрокаAPI, "kind_name", ЗначениеСвойства(СтрокаAPI, "policy_kind_name", ""));
НовСтр.ВидНоменклатурыИдентификатор = UUIDИзСтроки(ВидGUID);
НовСтр.ВидНоменклатурыНаименование = СокрЛП(Строка(ВидИмя));
+ НовСтр.ра_ВидНоменклатурыCRM326 = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "kind_crm326_name", "")));
НовСтр.ПолитикаСерии = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "policy_use_series", "")));
НовСтр.ПолитикаХарактеристик = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "policy_use_characteristics", "")));
diff --git a/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form.xml b/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form.xml
index aaf515f..cb77351 100644
--- a/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form.xml
+++ b/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form.xml
@@ -165,7 +165,15 @@
Объект.ОтборГруппНоменклатур
-
+
+
+
+
+
@@ -228,7 +236,7 @@
true
true
true
- ОтборСкладовВнешнейБазы
+ Объект.ОтборСкладовВнешнейБазы
false
@@ -291,21 +299,21 @@
- ОтборСкладовВнешнейБазы.Отметка
+ Объект.ОтборСкладовВнешнейБазы.Отметка
EnterOnInput
Auto
- ОтборСкладовВнешнейБазы.Наименование
+ Объект.ОтборСкладовВнешнейБазы.Наименование
EnterOnInput
true
- ОтборСкладовВнешнейБазы.Идентификатор
+ Объект.ОтборСкладовВнешнейБазы.Идентификатор
false
EnterOnInput
@@ -337,7 +345,7 @@
true
true
true
- ОтборОрганизацийВнешнейБазы
+ Объект.ОтборОрганизацийВнешнейБазы
false
@@ -400,21 +408,21 @@
- ОтборОрганизацийВнешнейБазы.Отметка
+ Объект.ОтборОрганизацийВнешнейБазы.Отметка
EnterOnInput
Auto
- ОтборОрганизацийВнешнейБазы.Наименование
+ Объект.ОтборОрганизацийВнешнейБазы.Наименование
EnterOnInput
true
- ОтборОрганизацийВнешнейБазы.Идентификатор
+ Объект.ОтборОрганизацийВнешнейБазы.Идентификатор
false
EnterOnInput
@@ -768,6 +776,44 @@
+
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.ВидНоменклатурыНаименование
+ EnterOnInput
+
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.ра_ВидНоменклатурыCRM326
+ EnterOnInput
+ true
+
+
+
+
+
+
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.Артикул
+ EnterOnInput
+
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.НоменклатураКод
+ EnterOnInput
+
+
+
+
+
+
+
+
Объект.ВходящиеКомиссионныеТовары.НоменклатураНаименование
EnterOnInput
@@ -775,20 +821,31 @@
-
- Объект.ВходящиеКомиссионныеТовары.ЕдИзм
+
+ Объект.ВходящиеКомиссионныеТовары.ХарактеристикаНаименование
EnterOnInput
- true
-
-
+
+
-
- Объект.ВходящиеКомиссионныеТовары.ЕдИзмИдентификатор
- false
+
+
+
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.Количество
EnterOnInput
-
-
-
+
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.КоличествоОрганизации
+ EnterOnInput
+
+
+
+
+
Объект.ВходящиеКомиссионныеТовары.СкладНаименование
EnterOnInput
@@ -803,13 +860,9 @@
-
- Объект.ВходящиеКомиссионныеТовары.ГТД
- EnterOnInput
- true
-
-
-
+
+
+
Объект.ВходящиеКомиссионныеТовары.Серия
EnterOnInput
@@ -824,12 +877,22 @@
-
- Объект.ВходящиеКомиссионныеТовары.Количество
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.ЕдИзм
EnterOnInput
-
-
+ true
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.ЕдИзмИдентификатор
+ false
+ EnterOnInput
+
+
+
Объект.ВходящиеКомиссионныеТовары.Стоимость
EnterOnInput
@@ -842,6 +905,13 @@
+
+ Объект.ВходящиеКомиссионныеТовары.ГТД
+ EnterOnInput
+ true
+
+
+
Объект.ВходящиеКомиссионныеТовары.ВидЗапасов
EnterOnInput
@@ -860,30 +930,6 @@
-
- Объект.ВходящиеКомиссионныеТовары.Артикул
- EnterOnInput
-
-
-
-
- Объект.ВходящиеКомиссионныеТовары.НоменклатураКод
- EnterOnInput
-
-
-
-
- Объект.ВходящиеКомиссионныеТовары.ХарактеристикаНаименование
- EnterOnInput
-
-
-
-
- Объект.ВходящиеКомиссионныеТовары.ВидНоменклатурыНаименование
- EnterOnInput
-
-
-
Объект.ВходящиеКомиссионныеТовары.ОрганизацияНаименование
EnterOnInput
@@ -973,7 +1019,36 @@
-
+дящиеКомиссионныеТоварыКонтрагентКонтекстноеМеню" id="1197"/>
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.Сопоставлено
+ EnterOnInput
+ Auto
+
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.КомментарийСопоставления
+ EnterOnInput
+
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.ДокументВвода
+ EnterOnInput
+
+
+
+
+ Объект.ВходящиеКомиссионныеТовары.ЗагруженоВДокумент
+ EnterOnInput
+ Auto
+
+
+
+
@@ -1212,106 +1287,6 @@
-
-
-
- ru
- Отбор складов внешней базы
-
-
-
- v8:ValueTable
-
-
-
-
-
- ru
- Наименование
-
-
-
- xs:string
-
- 0
- Variable
-
-
-
-
-
-
- ru
- Идентификатор
-
-
-
- v8:UUID
-
-
-
-
-
- ru
- Отметка
-
-
-
- xs:boolean
-
-
-
-
-
-
-
- ru
- Отбор организаций внешней базы
-
-
-
- v8:ValueTable
-
-
-
-
-
- ru
- Наименование
-
-
-
- xs:string
-
- 0
- Variable
-
-
-
-
-
-
- ru
- Идентификатор
-
-
-
- v8:UUID
-
-
-
-
-
- ru
- Отметка
-
-
-
- xs:boolean
-
-
-
-
diff --git a/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form/Module.bsl b/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form/Module.bsl
index 76f055f..77d4ebc 100644
--- a/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form/Module.bsl
+++ b/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form/Module.bsl
@@ -1,12 +1,5 @@
-// TODO: Необходимо реквизит формы ОтборОрганизацийВнешнейБазы перенести в табличную часть объекта обработки РК_ЗагрузкаОстатков (Задача #3, https://git.p7net.ru/1c/crm3_26.rhana/issues/3)
-
-// TODO: Необходимо реквизит формы ОтборСкладовВнешнейБазы перенести в табличную часть объекта обработки РК_ЗагрузкаОстатков (задача #4, https://git.p7net.ru/1c/crm3_26.rhana/issues/4)
-
-// TODO: В баличных частях объекта обработки РК_ЗагрузкаОстатков и в соответствующих элементах форм (полей таблиц форм) необходимо в имени добавить "Исх" - для полей, заполняемых из исходной базы, "Цел" - для полей, значения в которых после сопоставления будут применяться для загрузки данных в целевую базу. (https://git.p7net.ru/1c/crm3_26.rhana/issues/8)
-
-// TODO: Таблицу на форме с товарами, переданными на комиссию (ВходящиеКомиссионныеТовары) в столбцах сгруппировать на подобии с ВходящиеСобственныеТовары (https://git.p7net.ru/1c/crm3_26.rhana/issues/9)
-
-// TODO: Актуализировать версию в ./VERSION репозитария.
+// TODO (#8): префиксы «Исх»/«Цел» в реквизитах ТЧ — отдельный рефакторинг метаданных.
+// https://git.p7net.ru/1c/crm3_26.rhana/issues/8
#Область ОбработчикиСобытийФормы
@@ -41,8 +34,8 @@
Возврат;
КонецЕсли;
- Если ОтборСкладовВнешнейБазы.Количество() = 0
- И ОтборОрганизацийВнешнейБазы.Количество() = 0
+ Если Объект.ОтборСкладовВнешнейБазы.Количество() = 0
+ И Объект.ОтборОрганизацийВнешнейБазы.Количество() = 0
И Объект.ВходящиеСобственныеТовары.Количество() = 0
И Объект.ВходящиеКомиссионныеТовары.Количество() = 0 Тогда
ПодключениеКСтороннейБазеПредыдущее = Объект.ПодключениеКСтороннейБазе;
@@ -132,9 +125,6 @@
&НаКлиенте
Процедура ЗагрузитьОстатки(Команда)
- // TODO: При загрузке остатков из исходной базы необходимо также наполнить ра_ВидНоменклатурыCRM326 из дополнительного свойства номенклатуры исходной базы. (задача #5, https://git.p7net.ru/1c/crm3_26.rhana/issues/5)
- // В том числе это надо сделать для таблицы для товаров, переданных на комиссию.
-
Если Не ЗначениеЗаполнено(Объект.ПодключениеКСтороннейБазе) Тогда
ПоказатьПредупреждение(, "Укажите подключение к сторонней базе");
Возврат;
@@ -240,7 +230,7 @@
Процедура УстановитьОтметкуВыделенныхСтрок(ИмяТаблицы, Отметка)
ТаблицаФормы = Элементы[ИмяТаблицы];
- ДанныеТаблицы = ЭтотОбъект[ИмяТаблицы];
+ ДанныеТаблицы = Объект[ИмяТаблицы];
Выделенные = ТаблицаФормы.ВыделенныеСтроки;
Если Выделенные.Количество() = 0 Тогда
ПоказатьПредупреждение(, "Выделите строки в таблице");
@@ -259,8 +249,8 @@
&НаКлиенте
Процедура ОчиститьДанныеВнешнейБазыНаКлиенте()
- ОтборСкладовВнешнейБазы.Очистить();
- ОтборОрганизацийВнешнейБазы.Очистить();
+ Объект.ОтборСкладовВнешнейБазы.Очистить();
+ Объект.ОтборОрганизацийВнешнейБазы.Очистить();
Объект.ВходящиеСобственныеТовары.Очистить();
Объект.ВходящиеКомиссионныеТовары.Очистить();
Объект.СозданныеДокументы.Очистить();
@@ -271,7 +261,7 @@
Процедура ПодобратьСкладыНаСервере()
Ответ = РК_ОбменСВнешнейБазой.СписокСкладовВнешнейБазы(Объект.ПодключениеКСтороннейБазе);
- ЗаполнитьТаблицуОтбораИзОтветаAPI(ОтборСкладовВнешнейБазы, Ответ, "/v1/stock/warehouses");
+ ЗаполнитьТаблицуОтбораИзОтветаAPI(Объект.ОтборСкладовВнешнейБазы, Ответ, "/v1/stock/warehouses");
КонецПроцедуры
@@ -279,7 +269,7 @@
Процедура ЗаполнитьОрганизацииНаСервере()
Ответ = РК_ОбменСВнешнейБазой.СписокОрганизацийВнешнейБазы(Объект.ПодключениеКСтороннейБазе);
- ЗаполнитьТаблицуОтбораИзОтветаAPI(ОтборОрганизацийВнешнейБазы, Ответ, "/v1/stock/organizations");
+ ЗаполнитьТаблицуОтбораИзОтветаAPI(Объект.ОтборОрганизацийВнешнейБазы, Ответ, "/v1/stock/organizations");
КонецПроцедуры
@@ -322,14 +312,14 @@
Функция ЗагрузитьОстаткиНаСервере()
СкладыGUID = Новый Массив;
- Для Каждого Стр Из ОтборСкладовВнешнейБазы Цикл
+ Для Каждого Стр Из Объект.ОтборСкладовВнешнейБазы Цикл
Если Стр.Отметка Тогда
СкладыGUID.Добавить(Строка(Стр.Идентификатор));
КонецЕсли;
КонецЦикла;
ОрганизацииGUID = Новый Массив;
- Для Каждого Стр Из ОтборОрганизацийВнешнейБазы Цикл
+ Для Каждого Стр Из Объект.ОтборОрганизацийВнешнейБазы Цикл
Если Стр.Отметка Тогда
ОрганизацииGUID.Добавить(Строка(Стр.Идентификатор));
КонецЕсли;
@@ -525,14 +515,71 @@
&НаСервере
Процедура ЗаполнитьГруппыНоменклатурНаСервере()
- // TODO: Необходимо запросить список групп номенклатур в исходной базе через ws-rhana и заполнить / перезаполнить ОтборГруппНоменклатур (задача #6, https://git.p7net.ru/1c/crm3_26.rhana/issues/6)
-
- // TODO: Надо уточнить. Возможно ли вывести таблицу групп номенклатур из исходной базы рекурсивно с сохранением вложенности в исходной базе? (https://git.p7net.ru/1c/crm3_26.rhana/issues/7)
+
+ Ответ = РК_ОбменСВнешнейБазой.СписокГруппНоменклатурыВнешнейБазы(Объект.ПодключениеКСтороннейБазе);
+ ЗаполнитьТаблицуГруппНоменклатурИзОтветаAPI(Объект.ОтборГруппНоменклатур, Ответ);
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ЗаполнитьТаблицуГруппНоменклатурИзОтветаAPI(ТаблицаОтбора, Ответ)
+
+ Строки = Неопределено;
+ Если ТипЗнч(Ответ) = Тип("Структура") Или ТипЗнч(Ответ) = Тип("Соответствие") Тогда
+ Строки = ЗначениеСвойстваОтвета(Ответ, "rows");
+ КонецЕсли;
+ Если ТипЗнч(Строки) <> Тип("Массив") Тогда
+ ВызватьИсключение "Некорректный ответ /v1/stock/nomenclature-groups";
+ КонецЕсли;
+
+ БылиОтметки = Новый Соответствие;
+ БылоРекурсивно = Новый Соответствие;
+ Для Каждого Стр Из ТаблицаОтбора Цикл
+ БылиОтметки.Вставить(Строка(Стр.Идентификатор), Стр.Отметка);
+ БылоРекурсивно.Вставить(Строка(Стр.Идентификатор), Стр.Рекурсивно);
+ КонецЦикла;
+
+ ТаблицаОтбора.Очистить();
+ Для Каждого СтрокаAPI Из Строки Цикл
+ ГуидТекст = СокрЛП(Строка(ЗначениеСвойстваОтвета(СтрокаAPI, "guid")));
+ Если ПустаяСтрока(ГуидТекст) Тогда
+ Продолжить;
+ КонецЕсли;
+ НовСтр = ТаблицаОтбора.Добавить();
+ ИмяОтображение = СокрЛП(Строка(ЗначениеСвойстваОтвета(СтрокаAPI, "name_display")));
+ Если ПустаяСтрока(ИмяОтображение) Тогда
+ ИмяОтображение = СокрЛП(Строка(ЗначениеСвойстваОтвета(СтрокаAPI, "name")));
+ КонецЕсли;
+ НовСтр.Наименование = ИмяОтображение;
+ Попытка
+ НовСтр.Идентификатор = Новый УникальныйИдентификатор(ГуидТекст);
+ Исключение
+ Продолжить;
+ КонецПопытки;
+ СтараяОтметка = БылиОтметки.Получить(Строка(НовСтр.Идентификатор));
+ НовСтр.Отметка = ?(СтараяОтметка = Неопределено, Ложь, СтараяОтметка = Истина);
+ СтароеРекурсивно = БылоРекурсивно.Получить(Строка(НовСтр.Идентификатор));
+ НовСтр.Рекурсивно = ?(СтароеРекурсивно = Неопределено, Истина, СтароеРекурсивно = Истина);
+ КонецЦикла;
+
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьГруппыНоменклатур(Команда)
- ЗаполнитьГруппыНоменклатурНаСервере();
+
+ Если Не ЗначениеЗаполнено(Объект.ПодключениеКСтороннейБазе) Тогда
+ ПоказатьПредупреждение(, "Укажите подключение к сторонней базе");
+ Возврат;
+ КонецЕсли;
+
+ Попытка
+ ЗаполнитьГруппыНоменклатурНаСервере();
+ Исключение
+ ПоказатьПредупреждение(, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
+ Возврат;
+ КонецПопытки;
+ Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаОтбор;
+
КонецПроцедуры
#КонецОбласти