РК_ЗагрузкаЦен 1.3.1.99: загрузка актуальных цен из исходной ИБ (#18)

Обработка в crm3-26.rhana вызывает Transfer API исходной базы, сопоставляет виды цен и номенклатуру и создаёт УстановкаЦенНоменклатуры. Канон: rhana/crm3-migration#20.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
mihailkudravcev
2026-08-20 14:35:24 +03:00
parent d2aa3cd03e
commit b07b7c96d6
13 changed files with 3427 additions and 6 deletions
+34
View File
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.20" >
<Catalog uuid="a18e1801-18e0-4000-8000-0000000000a1">
<InternalInfo>
<xr:GeneratedType name="CatalogObject.ВидыЦен" category="Object">
<xr:TypeId>9a696966-094f-42de-bdb8-e4577aa66fee</xr:TypeId>
<xr:ValueId>d3515b4e-7ae1-4825-b128-a4aafbf1aad0</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogRef.ВидыЦен" category="Ref">
<xr:TypeId>5eeef668-b52a-4624-a9c2-8ac6327dbc51</xr:TypeId>
<xr:ValueId>b9e564d6-9e64-4c33-9554-7887c144c9f1</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogSelection.ВидыЦен" category="Selection">
<xr:TypeId>0bb6746f-657e-4104-804e-f44488df01ce</xr:TypeId>
<xr:ValueId>0d3afe13-6130-479c-a693-d5ee1de1d0c5</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogList.ВидыЦен" category="List">
<xr:TypeId>a8c751e5-432f-4f85-99ca-51f5f01ada3a</xr:TypeId>
<xr:ValueId>a3050df9-e7b8-470f-8e2f-405389f1e8af</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogManager.ВидыЦен" category="Manager">
<xr:TypeId>75255bcb-6fb9-4f14-9abf-4788d1c78551</xr:TypeId>
<xr:ValueId>04959214-e939-4a2c-90d1-bba4b8e92881</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<ObjectBelonging>Adopted</ObjectBelonging>
<Name>ВидыЦен</Name>
<Comment/>
<ExtendedConfigurationObject>1a6593e1-d0c4-428d-af64-b1161601c46b</ExtendedConfigurationObject>
</Properties>
<ChildObjects/>
</Catalog>
</MetaDataObject>
@@ -131,6 +131,30 @@
КонецФункции
// POST /v1/prices/types на исходной ИБ.
//
Функция ВидыЦенВнешнейБазы(Подключение, ПараметрыЗапроса = Неопределено) Экспорт
Если ПараметрыЗапроса = Неопределено Тогда
ПараметрыЗапроса = Новый Структура;
КонецЕсли;
Настройки = НастройкиПодключения(Подключение);
Возврат ВыполнитьPOST(Настройки, "v1/prices/types", ПараметрыЗапроса);
КонецФункции
// POST /v1/prices/slice на исходной ИБ.
//
Функция ЦеныВнешнейБазы(Подключение, ПараметрыЗапроса) Экспорт
Если ПараметрыЗапроса = Неопределено Тогда
ПараметрыЗапроса = Новый Структура;
КонецЕсли;
Настройки = НастройкиПодключения(Подключение);
Возврат ВыполнитьPOST(Настройки, "v1/prices/slice", ПараметрыЗапроса);
КонецФункции
// Универсальный GET к Transfer API.
//
Функция ВыполнитьGET(НастройкиПодключения, ОтносительныйПуть) Экспорт
+57 -4
View File
@@ -2,6 +2,7 @@
<ConfigDumpInfo xmlns="http://v8.1c.ru/8.3/xcf/dumpinfo" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" format="Hierarchical" version="2.20">
<ConfigVersions>
<Metadata name="Catalog.ВидыНоменклатуры" id="b30fd43b-ad99-4f0a-b2d7-cc4b5b55f5ce" configVersion="fb3c852f781534c164731fdf565a8ed94adcea04"/>
<Metadata name="Catalog.ВидыЦен" id="a18e1801-18e0-4000-8000-0000000000a1" configVersion="5932501f94605147d76d89585b4b7ffdda58c530"/>
<Metadata name="Catalog.ДоговорыКонтрагентов" id="993b58b5-d228-4a08-92ac-6fd12cc60deb" configVersion="912a34da471ed07a2324f175789cdfcd3a7157f7"/>
<Metadata name="Catalog.ДоговорыКонтрагентов.Form.ФормаВыбора" id="d82ae63b-06bd-4463-a414-0fcdc8794703" configVersion="2ab274696219a21b932eff70ee518ff44c5a2f8f"/>
<Metadata name="Catalog.ДоговорыКонтрагентов.Form.ФормаВыбора.Form" id="d82ae63b-06bd-4463-a414-0fcdc8794703.0" configVersion="feeed4e9ae733a451f2e3ea89d0d62fab8a86b26"/>
@@ -33,7 +34,7 @@
<Metadata name="CommonModule.ПартнерыИКонтрагентыЛокализация" id="204641bf-09d1-470a-9d72-3eb46439556d" configVersion="1d1ab54a348ef06148f77bcf0e5a66998b9e54ed"/>
<Metadata name="CommonModule.ПартнерыИКонтрагентыЛокализация.Module" id="204641bf-09d1-470a-9d72-3eb46439556d.0" configVersion="01702052735de1033e47c78bfa9dc357e246f987"/>
<Metadata name="CommonModule.РК_ОбменСВнешнейБазой" id="c0610707-f5d6-4026-9679-2330d831a986" configVersion="08b9643947e617a6ef11e3623794f371fba45283"/>
<Metadata name="CommonModule.РК_ОбменСВнешнейБазой.Module" id="c0610707-f5d6-4026-9679-2330d831a986.0" configVersion="e0d6a3c5add56b43a85340f4af93ac86a8b3580d"/>
<Metadata name="CommonModule.РК_ОбменСВнешнейБазой.Module" id="c0610707-f5d6-4026-9679-2330d831a986.0" configVersion="b5e8c1a04d2f6e9a7c3b0d184f52a6e8c91d3b70"/>
<Metadata name="CommonModule.РК_ОбщегоНазначения" id="6bfc7b15-6995-43ad-96c6-a97569f2d5a4" configVersion="c11a335f853a42165758cfe7995f2ee06a9010f7"/>
<Metadata name="CommonModule.РК_ОбщегоНазначенияВызовСервера" id="845d7b2e-e411-4515-98ba-cf4f9fa2cb0f" configVersion="9a84ca5309ab5d1f2ea6331e02ac19191b2ae8d1"/>
<Metadata name="CommonModule.РК_ОбщегоНазначенияВызовСервера.Module" id="845d7b2e-e411-4515-98ba-cf4f9fa2cb0f.0" configVersion="ad986ba13b126c39e9573978bbd3c02c736f0e33"/>
@@ -49,7 +50,7 @@
<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="ef48c85a47daba765c3e55c6945f9dfcaf358f5c"/>
<Metadata name="Configuration.crm326RHANA" id="ef31d55b-3788-4972-affb-b7aefd3838aa" configVersion="c9a4e2b17f06d83a5c1e90b4d7f28a6e3b5c10d9"/>
<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"/>
@@ -201,6 +202,58 @@
<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="7d05f2c1f47ed05f17d7eeefd806150befbae784"/>
<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"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.Attribute.ДатаДокументов" id="a18e1801-18e0-4000-8000-000000000103"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.Attribute.СоздаватьОтсутствующиеВидыЦен" id="a18e1801-18e0-4000-8000-000000000104"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.Attribute.КомментарийДокументов" id="a18e1801-18e0-4000-8000-000000000105"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника" id="a18e1801-18e0-4000-8000-00000000012d"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.Отметка" id="a18e1801-18e0-4000-8000-000000000106"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.Идентификатор" id="a18e1801-18e0-4000-8000-000000000107"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.Наименование" id="a18e1801-18e0-4000-8000-000000000108"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.ВалютаКод" id="a18e1801-18e0-4000-8000-000000000109"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.ЦенаВключаетНДС" id="a18e1801-18e0-4000-8000-00000000010a"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.СпособЗаданияЦены" id="a18e1801-18e0-4000-8000-00000000010b"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.БазовыйВидЦеныНаименование" id="a18e1801-18e0-4000-8000-00000000010c"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.Наценка" id="a18e1801-18e0-4000-8000-00000000010d"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.ИспользоватьПриПродаже" id="a18e1801-18e0-4000-8000-00000000010e"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.ПометкаУдаления" id="a18e1801-18e0-4000-8000-00000000010f"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.ВидЦены" id="a18e1801-18e0-4000-8000-000000000110"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.СтатусСопоставления" id="a18e1801-18e0-4000-8000-000000000111"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВидыЦенИсточника.Attribute.Комментарий" id="a18e1801-18e0-4000-8000-000000000112"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены" id="a18e1801-18e0-4000-8000-00000000012e"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.Период" id="a18e1801-18e0-4000-8000-000000000113"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.НоменклатураИдентификатор" id="a18e1801-18e0-4000-8000-000000000114"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.Артикул" id="a18e1801-18e0-4000-8000-000000000115"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.НоменклатураКод" id="a18e1801-18e0-4000-8000-000000000116"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.НоменклатураНаименование" id="a18e1801-18e0-4000-8000-000000000117"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.ХарактеристикаИдентификатор" id="a18e1801-18e0-4000-8000-000000000118"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.ХарактеристикаНаименование" id="a18e1801-18e0-4000-8000-000000000119"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.ВидЦеныИдентификатор" id="a18e1801-18e0-4000-8000-00000000011a"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.ВидЦеныНаименование" id="a18e1801-18e0-4000-8000-00000000011b"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.Цена" id="a18e1801-18e0-4000-8000-00000000011c"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.ВалютаКод" id="a18e1801-18e0-4000-8000-00000000011d"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.УпаковкаНаименование" id="a18e1801-18e0-4000-8000-00000000011e"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.Номенклатура" id="a18e1801-18e0-4000-8000-00000000011f"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.ВидЦены" id="a18e1801-18e0-4000-8000-000000000120"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.Сопоставлено" id="a18e1801-18e0-4000-8000-000000000121"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.КомментарийСопоставления" id="a18e1801-18e0-4000-8000-000000000122"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.ИспользоватьСерииСклад" id="a18e1801-18e0-4000-8000-000000000123"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.КлючЦенПоСерии" id="a18e1801-18e0-4000-8000-000000000124"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.РазрывДетализации" id="a18e1801-18e0-4000-8000-000000000125"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.ТекущаяЦенаЦель" id="a18e1801-18e0-4000-8000-000000000126"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.ДокументПредставление" id="a18e1801-18e0-4000-8000-000000000127"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.ВходящиеЦены.Attribute.ЗагруженоВДокумент" id="a18e1801-18e0-4000-8000-000000000128"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.СозданныеДокументы" id="a18e1801-18e0-4000-8000-00000000012f"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.СозданныеДокументы.Attribute.ДокументПредставление" id="a18e1801-18e0-4000-8000-000000000129"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.СозданныеДокументы.Attribute.ВидЦены" id="a18e1801-18e0-4000-8000-00000000012a"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.СозданныеДокументы.Attribute.КоличествоСтрок" id="a18e1801-18e0-4000-8000-00000000012b"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.TabularSection.СозданныеДокументы.Attribute.Комментарий" id="a18e1801-18e0-4000-8000-00000000012c"/>
</Metadata>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.ObjectModule" id="a18e1801-18e0-4000-8000-000000000001.0" configVersion="26973d622f8f05f686cd2e0fbbf2bb03ceb373d0"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.Form.Форма" id="a18e1801-18e0-4000-8000-000000000002" configVersion="ceb13877b94502390c33dd857cc11e5357230c64"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.Form.Форма.Form" id="a18e1801-18e0-4000-8000-000000000002.0" configVersion="67e94223f122d78fcd0249f62684f9e5e3f9aed1"/>
<Metadata name="DataProcessor.РК_ОбработкаПарнеровКонтрагентов" id="323c24ca-5279-461a-b03a-9571cb4f0911" configVersion="61642f5832ac2ff8e4ddfeebbb89bcf83e000868"/>
<Metadata name="DataProcessor.РК_ОбработкаПарнеровКонтрагентов.ManagerModule" id="323c24ca-5279-461a-b03a-9571cb4f0911.2" configVersion="35694db05f1ede17b8637991f57ab64fe4a448cc"/>
<Metadata name="DataProcessor.РК_ПроверкаСерий" id="dfe0cb7f-a442-4f22-9f10-bf20a425b4d9" configVersion="efc5431400950b1c558bb7bec707bef589de91a5">
@@ -299,7 +352,7 @@
<Metadata name="FunctionalOption.РК_ФункциональнаяОпцияРежимаОтладки" id="5a2768ce-cddd-4126-bc6f-aa9aee904fee" configVersion="ec037b80c784d83ef696365788eddc3f9f5a2963"/>
<Metadata name="Language.Русский" id="4f6908d0-adbb-4ee7-a6d9-c0ff144e81da" configVersion="58c550359e219a4f54f6b31ee61d09a83fc82ee1"/>
<Metadata name="Role.РК_ОбщаяРольРасширения" id="0bf63003-e58b-47cb-9385-0a5ca6de3a6d" configVersion="e8bdeb55dc91ddc07237757365e36383d7372bbd"/>
<Metadata name="Role.РК_ОбщаяРольРасширения.Rights" id="0bf63003-e58b-47cb-9385-0a5ca6de3a6d.0" configVersion="8e51a2ac35902a7b78f8c884a39f2b7ca76377c3"/>
<Metadata name="Role.РК_ОбщаяРольРасширения.Rights" id="0bf63003-e58b-47cb-9385-0a5ca6de3a6d.0" configVersion="a7c1e4d09b26f83e5d0a9c4b8f17e3a6d52b80c1"/>
<Metadata name="Role.РК_ОсновнаяРоль" id="9cf7026c-635c-4a6b-bb98-cc4d34018fe0" configVersion="c535cfb29ef4378b5e1d64c91c81dbdd785b239c"/>
<Metadata name="Role.РК_ОсновнаяРоль.Rights" id="9cf7026c-635c-4a6b-bb98-cc4d34018fe0.0" configVersion="945ca08e5fa00dd442aaa42b9afe0f4ca7f73d26"/>
<Metadata name="Role.РК_ОтладкаОтображение" id="df2cfcd4-a4fe-44bf-9666-a564d9ce27e1" configVersion="4c0e2ffc2530eb52add9e96ecb1e0c40f7bfb68b"/>
@@ -308,7 +361,7 @@
<Metadata name="Role.РК_ОтладкаУправление.Rights" id="b5325e35-72ba-49f6-a223-4209a963b7b2.0" configVersion="8f18dc83818c11b5d5d94399bacb4763c0e5d32f"/>
<Metadata name="StyleItem.ПоясняющийТекст" id="f8d4cce2-c61a-4b17-a37c-37b73301d9be" configVersion="d1dd8a215ae36042bc326384743f3599e6a27493"/>
<Metadata name="Subsystem.РК_РАНА" id="01566022-7bd2-4d26-92f0-98f53c96a7d4" configVersion="a244a3a3913488f634607aae76222815d732b4aa"/>
<Metadata name="Subsystem.РК_РАНА.Subsystem.РК_ОбменСВнешнейБазой" id="ac0fe2bc-d524-4b39-a345-04ec06dca5b8" configVersion="bde2e77da4dcdf9ff6584936aa606a237afe80ee"/>
<Metadata name="Subsystem.РК_РАНА.Subsystem.РК_ОбменСВнешнейБазой" id="ac0fe2bc-d524-4b39-a345-04ec06dca5b8" configVersion="a1c8e4d07b93f26e5d0a9c4b8f17e3a6d52b80c1"/>
<Metadata name="Subsystem.РК_РАНА.Subsystem.РК_Справочники" id="a5a628ff-57bb-404b-bcda-a14f7aafadfd" configVersion="84464576c2ecec7a3cee09ffe05bf0e1f1e1bdb7"/>
<Metadata name="Subsystem.РК_РАНА326" id="ca0c3a8e-d83f-42db-8de1-f9dd53a928f5" configVersion="94db2191c1040ad63711272934f2d16617970143"/>
<Metadata name="XDTOPackage.EnterpriseData_1_8_6" id="8279d677-ce87-4de6-8b71-13730d992e02" configVersion="34ae5b2d268535913553e2f23a8428ffa9cc36e8"/>
+3 -1
View File
@@ -62,7 +62,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
</DefaultRoles>
<Vendor/>
<Version>1.3.1.98</Version>
<Version>1.3.1.99</Version>
<DefaultStyle/>
<DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation/>
@@ -113,6 +113,7 @@
<Catalog>СерииНоменклатуры</Catalog>
<Catalog>Номенклатура</Catalog>
<Catalog>ВидыНоменклатуры</Catalog>
<Catalog>ВидыЦен</Catalog>
<Document>РеализацияТоваровУслуг</Document>
<Document>ЗаказКлиента</Document>
<Document>РасходныйОрдерНаТовары</Document>
@@ -127,6 +128,7 @@
<DataProcessor>ЗагрузкаДанныхИзФайла</DataProcessor>
<DataProcessor>РК_ОбработкаПарнеровКонтрагентов</DataProcessor>
<DataProcessor>РК_ЗагрузкаОстатков</DataProcessor>
<DataProcessor>РК_ЗагрузкаЦен</DataProcessor>
<DataProcessor>РК_ПроверкаСерий</DataProcessor>
<ChartOfCharacteristicTypes>ДополнительныеРеквизитыИСведения</ChartOfCharacteristicTypes>
</ChildObjects>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,584 @@
////////////////////////////////////////////////////////////////////////////////
// Загрузка актуальных цен продаж из исходной ИБ через Transfer API.
// https://git.p7net.ru/1c/crm3_26.rhana/issues/18
////////////////////////////////////////////////////////////////////////////////
#Область ПрограммныйИнтерфейс
Процедура ЗаполнитьВидыЦенИзОтветаAPI(Ответ, Очищать = Истина) Экспорт
Если Очищать Тогда
ВидыЦенИсточника.Очистить();
КонецЕсли;
Строки = ЗначениеСвойства(Ответ, "rows", Неопределено);
Если ТипЗнч(Строки) <> Тип("Массив") Тогда
Возврат;
КонецЕсли;
Для Каждого СтрокаAPI Из Строки Цикл
НовСтр = ВидыЦенИсточника.Добавить();
НовСтр.Отметка = Истина;
НовСтр.Идентификатор = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "guid", "")));
НовСтр.Наименование = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "name", "")));
НовСтр.ВалютаКод = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "currency_code", "")));
НовСтр.ЦенаВключаетНДС = БулевоИзЗначения(ЗначениеСвойства(СтрокаAPI, "vat_included", Ложь));
НовСтр.СпособЗаданияЦены = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "method", "")));
НовСтр.БазовыйВидЦеныНаименование = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "base_type_name", "")));
НовСтр.Наценка = ЧислоИзЗначения(ЗначениеСвойства(СтрокаAPI, "markup", 0), 0);
НовСтр.ИспользоватьПриПродаже = БулевоИзЗначения(ЗначениеСвойства(СтрокаAPI, "use_for_sale", Истина));
НовСтр.ПометкаУдаления = БулевоИзЗначения(ЗначениеСвойства(СтрокаAPI, "deletion_mark", Ложь));
НовСтр.СтатусСопоставления = "";
НовСтр.Комментарий = "";
КонецЦикла;
КонецПроцедуры
Функция СопоставитьВидыЦен(РежимТест) Экспорт
Найдено = 0;
Создано = 0;
НеНайдено = 0;
Для Каждого СтрТ Из ВидыЦенИсточника Цикл
ВЦ = НайтиВидЦеныСтроки(СтрТ);
Если ЗначениеЗаполнено(ВЦ) Тогда
СтрТ.ВидЦены = ВЦ;
СтрТ.СтатусСопоставления = "Найден";
СтрТ.Комментарий = "";
Найдено = Найдено + 1;
Продолжить;
КонецЕсли;
Если СоздаватьОтсутствующиеВидыЦен И СтрТ.Отметка Тогда
Если РежимТест Тогда
СтрТ.СтатусСопоставления = "К созданию";
СтрТ.Комментарий = "Будет создан вид цен «" + СтрТ.Наименование + "»";
Создано = Создано + 1;
Иначе
ВЦ = СоздатьВидЦеныСтроки(СтрТ);
Если ЗначениеЗаполнено(ВЦ) Тогда
СтрТ.ВидЦены = ВЦ;
СтрТ.СтатусСопоставления = "Создан";
СтрТ.Комментарий = "";
Создано = Создано + 1;
Иначе
СтрТ.СтатусСопоставления = "Ошибка создания";
НеНайдено = НеНайдено + 1;
КонецЕсли;
КонецЕсли;
Иначе
СтрТ.ВидЦены = Справочники.ВидыЦен.ПустаяСсылка();
СтрТ.СтатусСопоставления = "Не найден";
СтрТ.Комментарий = "Нет вида цен с наименованием «" + СтрТ.Наименование + "»";
НеНайдено = НеНайдено + 1;
КонецЕсли;
КонецЦикла;
Возврат "Видов цен: найдено " + Формат(Найдено, "ЧН=0; ЧГ=0")
+ ", создано/к созданию " + Формат(Создано, "ЧН=0; ЧГ=0")
+ ", не найдено " + Формат(НеНайдено, "ЧН=0; ЧГ=0");
КонецФункции
Процедура ЗаполнитьВходящиеЦеныИзОтветаAPI(Ответ, Очищать = Истина) Экспорт
Если Очищать Тогда
ВходящиеЦены.Очистить();
КонецЕсли;
Строки = ЗначениеСвойства(Ответ, "rows", Неопределено);
Если ТипЗнч(Строки) <> Тип("Массив") Тогда
Возврат;
КонецЕсли;
Для Каждого СтрокаAPI Из Строки Цикл
НовСтр = ВходящиеЦены.Добавить();
ПериодТекст = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "period", "")));
Если ЗначениеЗаполнено(ПериодТекст) Тогда
Попытка
НовСтр.Период = XMLЗначение(Тип("Дата"), ПериодТекст);
Исключение
КонецПопытки;
КонецЕсли;
НовСтр.НоменклатураИдентификатор = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "nomenclature_guid", "")));
НовСтр.Артикул = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "nomenclature_article", "")));
НовСтр.НоменклатураКод = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "nomenclature_code", "")));
НовСтр.НоменклатураНаименование = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "nomenclature_name", "")));
НовСтр.ХарактеристикаИдентификатор = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "characteristic_guid", "")));
НовСтр.ХарактеристикаНаименование = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "characteristic_name", "")));
НовСтр.ВидЦеныИдентификатор = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "price_type_guid", "")));
НовСтр.ВидЦеныНаименование = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "price_type_name", "")));
НовСтр.Цена = ЧислоИзЗначения(ЗначениеСвойства(СтрокаAPI, "price", 0), 0);
НовСтр.ВалютаКод = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "currency_code", "")));
НовСтр.УпаковкаНаименование = СокрЛП(Строка(ЗначениеСвойства(СтрокаAPI, "package_name", "")));
НовСтр.Сопоставлено = Ложь;
НовСтр.ЗагруженоВДокумент = Ложь;
КонецЦикла;
КонецПроцедуры
Функция СопоставитьВходящиеЦены() Экспорт
Сопоставлено = 0;
Пропущено = 0;
СРазрывом = 0;
КартаВидов = КартаВидовЦенИсточника();
Для Каждого СтрТ Из ВходящиеЦены Цикл
СтрТ.КомментарийСопоставления = "";
СтрТ.РазрывДетализации = "";
СтрТ.ИспользоватьСерииСклад = "";
СтрТ.КлючЦенПоСерии = "";
СтрТ.ТекущаяЦенаЦель = 0;
Ном = НайтиНоменклатуруСтроки(СтрТ);
СтрТ.Номенклатура = Ном;
Если Не ЗначениеЗаполнено(Ном) Тогда
СтрТ.Сопоставлено = Ложь;
Если ПустаяСтрока(СтрТ.КомментарийСопоставления) Тогда
СтрТ.КомментарийСопоставления = "Номенклатура не найдена";
КонецЕсли;
Пропущено = Пропущено + 1;
Продолжить;
КонецЕсли;
ВЦ = Неопределено;
КлючВЦ = НРег(СокрЛП(СтрТ.ВидЦеныИдентификатор));
Если ЗначениеЗаполнено(КлючВЦ) Тогда
ВЦ = КартаВидов.Получить(КлючВЦ);
КонецЕсли;
Если Не ЗначениеЗаполнено(ВЦ) Тогда
ВЦ = Справочники.ВидыЦен.НайтиПоНаименованию(СокрЛП(СтрТ.ВидЦеныНаименование), Истина);
КонецЕсли;
СтрТ.ВидЦены = ВЦ;
Если Не ЗначениеЗаполнено(ВЦ) Тогда
СтрТ.Сопоставлено = Ложь;
СтрТ.КомментарийСопоставления = "Вид цены не найден: " + СтрТ.ВидЦеныНаименование;
Пропущено = Пропущено + 1;
Продолжить;
КонецЕсли;
ЗаполнитьПолитикуСерийСтроки(СтрТ, Ном);
СтрТ.ТекущаяЦенаЦель = ТекущаяЦенаЦелевойИБ(Ном, ВЦ);
СтрТ.Сопоставлено = Истина;
Сопоставлено = Сопоставлено + 1;
Если ЗначениеЗаполнено(СтрТ.РазрывДетализации) Тогда
СРазрывом = СРазрывом + 1;
КонецЕсли;
КонецЦикла;
Возврат "Сопоставлено " + Формат(Сопоставлено, "ЧН=0; ЧГ=0")
+ ", пропущено " + Формат(Пропущено, "ЧН=0; ЧГ=0")
+ ", с разрывом серий/ключа цен " + Формат(СРазрывом, "ЧН=0; ЧГ=0");
КонецФункции
Функция СоздатьДокументыУстановкиЦен(РежимТест) Экспорт
ИспЦО25 = Ложь;
Попытка
ИспЦО25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
Исключение
ИспЦО25 = Ложь;
КонецПопытки;
ДатаУстановки = ДатаДокументов;
Если Не ЗначениеЗаполнено(ДатаУстановки) Тогда
ДатаУстановки = ТекущаяДатаСеанса();
КонецЕсли;
КомментарийБаза = СокрЛП(КомментарийДокументов);
Если ПустаяСтрока(КомментарийБаза) Тогда
КомментарийБаза = "Перенос цен из crm3-dev";
КонецЕсли;
Группы = Новый Соответствие;
ПорядокГрупп = Новый Массив;
Для Каждого СтрТ Из ВходящиеЦены Цикл
Если Не СтрТ.Сопоставлено Или СтрТ.ЗагруженоВДокумент Тогда
Продолжить;
КонецЕсли;
Если Не ЗначениеЗаполнено(СтрТ.Номенклатура) Или Не ЗначениеЗаполнено(СтрТ.ВидЦены) Тогда
Продолжить;
КонецЕсли;
КлючГр = Строка(СтрТ.ВидЦены);
Список = Группы.Получить(КлючГр);
Если Список = Неопределено Тогда
Список = Новый Массив;
Группы.Вставить(КлючГр, Список);
ПорядокГрупп.Добавить(СтрТ.ВидЦены);
КонецЕсли;
Список.Добавить(СтрТ);
КонецЦикла;
СозданоДок = 0;
ПропущеноСтрок = 0;
Ошибок = 0;
МаксСтрок = 500;
Если Не РежимТест Тогда
СозданныеДокументы.Очистить();
КонецЕсли;
Для Каждого ВидЦеныГр Из ПорядокГрупп Цикл
СтрокиГр = Группы.Получить(Строка(ВидЦеныГр));
Если СтрокиГр = Неопределено Или СтрокиГр.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
Индекс = 0;
НомерПакета = 0;
Пока Индекс < СтрокиГр.Количество() Цикл
НомерПакета = НомерПакета + 1;
КонецПакета = Мин(Индекс + МаксСтрок, СтрокиГр.Количество());
Пакет = Новый Массив;
Для Инд = Индекс По КонецПакета - 1 Цикл
Пакет.Добавить(СтрокиГр[Инд]);
КонецЦикла;
Индекс = КонецПакета;
Если РежимТест Тогда
СозданоДок = СозданоДок + 1;
Продолжить;
КонецЕсли;
Попытка
Док = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
Док.Дата = ДатаУстановки + (НомерПакета - 1);
Док.Комментарий = КомментарийБаза + " / " + Строка(ВидЦеныГр);
Док.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
Док.Согласован = Истина;
Док.Ответственный = Пользователи.ТекущийПользователь();
СтрВЦ = Док.ВидыЦен.Добавить();
СтрВЦ.ВидЦены = ВидЦеныГр;
КлючиВДок = Новый Соответствие;
Для Каждого СтрТ Из Пакет Цикл
КлючСтр = НРег(XMLСтрока(СтрТ.Номенклатура.УникальныйИдентификатор())) + "|"
+ НРег(СокрЛП(СтрТ.ХарактеристикаНаименование)) + "|"
+ НРег(XMLСтрока(СтрТ.ВидЦены.УникальныйИдентификатор()));
Если КлючиВДок.Получить(КлючСтр) <> Неопределено Тогда
ПропущеноСтрок = ПропущеноСтрок + 1;
Продолжить;
КонецЕсли;
КлючиВДок.Вставить(КлючСтр, Истина);
ВалютаСсылка = Справочники.Валюты.ПустаяСсылка();
Если ЗначениеЗаполнено(СтрТ.ВалютаКод) Тогда
ВалютаСсылка = Справочники.Валюты.НайтиПоКоду(СокрЛП(СтрТ.ВалютаКод));
КонецЕсли;
Упак = Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка();
Если ЗначениеЗаполнено(СтрТ.УпаковкаНаименование) Тогда
Упак = Справочники.УпаковкиЕдиницыИзмерения.НайтиПоНаименованию(СокрЛП(СтрТ.УпаковкаНаименование), Истина);
КонецЕсли;
Если ИспЦО25 Тогда
НовСтр = Док.Товары2_5.Добавить();
НовСтр.Номенклатура = СтрТ.Номенклатура;
НовСтр.ХарактеристикаЦО = Справочники.ХарактеристикиНоменклатурыДляЦенообразования.ПустаяСсылка();
НовСтр.СерияЦО = Справочники.СерииНоменклатурыДляЦенообразования.ПустаяСсылка();
НовСтр.УпаковкаЦО = Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка();
НовСтр.Упаковка = Упак;
НовСтр.ВидЦены = СтрТ.ВидЦены;
НовСтр.Цена = СтрТ.Цена;
НовСтр.Валюта = ВалютаСсылка;
НовСтр.ЦенаИзмененаВручную = Истина;
Иначе
НовСтр = Док.Товары.Добавить();
НовСтр.Номенклатура = СтрТ.Номенклатура;
НовСтр.Упаковка = Упак;
НовСтр.ВидЦены = СтрТ.ВидЦены;
НовСтр.Цена = СтрТ.Цена;
НовСтр.Валюта = ВалютаСсылка;
НовСтр.ЦенаИзмененаВручную = Истина;
Если ЗначениеЗаполнено(СтрТ.ХарактеристикаНаименование) Тогда
Хар = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(
СокрЛП(СтрТ.ХарактеристикаНаименование), Истина, , СтрТ.Номенклатура);
Если ЗначениеЗаполнено(Хар) Тогда
НовСтр.Характеристика = Хар;
КонецЕсли;
КонецЕсли;
КонецЕсли;
СтрТ.ЗагруженоВДокумент = Истина;
КонецЦикла;
Если (Док.Товары.Количество() + Док.Товары2_5.Количество()) = 0 Тогда
Продолжить;
КонецЕсли;
Док.Записать(РежимЗаписиДокумента.Проведение);
СозданоДок = СозданоДок + 1;
СтрДок = СозданныеДокументы.Добавить();
СтрДок.ДокументПредставление = Строка(Док);
СтрДок.ВидЦены = ВидЦеныГр;
СтрДок.КоличествоСтрок = Док.Товары.Количество() + Док.Товары2_5.Количество();
СтрДок.Комментарий = Док.Комментарий;
Для Каждого СтрТ Из Пакет Цикл
Если СтрТ.ЗагруженоВДокумент Тогда
СтрТ.ДокументПредставление = Строка(Док);
КонецЕсли;
КонецЦикла;
Исключение
Ошибок = Ошибок + 1;
ТекстОш = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Для Каждого СтрТ Из Пакет Цикл
СтрТ.ЗагруженоВДокумент = Ложь;
СтрТ.КомментарийСопоставления = СокрЛП(СтрТ.КомментарийСопоставления + " " + ТекстОш);
КонецЦикла;
КонецПопытки;
КонецЦикла;
КонецЦикла;
Возврат "Документов=" + Формат(СозданоДок, "ЧН=0; ЧГ=0")
+ ", пропущено строк=" + Формат(ПропущеноСтрок, "ЧН=0; ЧГ=0")
+ ", ошибок=" + Формат(Ошибок, "ЧН=0; ЧГ=0")
+ ", ЦО 2.5=" + ?(ИспЦО25, "Да", "Нет")
+ ?(РежимТест, " (тест)", "");
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция КартаВидовЦенИсточника()
Карта = Новый Соответствие;
Для Каждого СтрТ Из ВидыЦенИсточника Цикл
Если ЗначениеЗаполнено(СтрТ.ВидЦены) И ЗначениеЗаполнено(СтрТ.Идентификатор) Тогда
Карта.Вставить(НРег(СокрЛП(СтрТ.Идентификатор)), СтрТ.ВидЦены);
КонецЕсли;
КонецЦикла;
Возврат Карта;
КонецФункции
Функция НайтиВидЦеныСтроки(СтрТ)
Имя = СокрЛП(СтрТ.Наименование);
Если Не ЗначениеЗаполнено(Имя) Тогда
Возврат Справочники.ВидыЦен.ПустаяСсылка();
КонецЕсли;
ВЦ = Справочники.ВидыЦен.НайтиПоНаименованию(Имя, Истина);
Если ЗначениеЗаполнено(ВЦ) Тогда
Возврат ВЦ;
КонецЕсли;
Возврат Справочники.ВидыЦен.ПустаяСсылка();
КонецФункции
Функция СоздатьВидЦеныСтроки(СтрТ)
Попытка
ОбъектВЦ = Справочники.ВидыЦен.СоздатьЭлемент();
ОбъектВЦ.Наименование = СокрЛП(СтрТ.Наименование);
Если ЗначениеЗаполнено(СтрТ.ВалютаКод) Тогда
ВалютаСсылка = Справочники.Валюты.НайтиПоКоду(СокрЛП(СтрТ.ВалютаКод));
Если ЗначениеЗаполнено(ВалютаСсылка) Тогда
ОбъектВЦ.ВалютаЦены = ВалютаСсылка;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(СтрТ.СпособЗаданияЦены) Тогда
Попытка
ОбъектВЦ.СпособЗаданияЦены = Перечисления.СпособыЗаданияЦен[СтрТ.СпособЗаданияЦены];
Исключение
КонецПопытки;
КонецЕсли;
Если Не ЗначениеЗаполнено(ОбъектВЦ.СпособЗаданияЦены) Тогда
Попытка
ОбъектВЦ.СпособЗаданияЦены = Перечисления.СпособыЗаданияЦен.РучноеНазначение;
Исключение
КонецПопытки;
КонецЕсли;
Если ЗначениеЗаполнено(СтрТ.БазовыйВидЦеныНаименование) Тогда
Базовый = Справочники.ВидыЦен.НайтиПоНаименованию(СокрЛП(СтрТ.БазовыйВидЦеныНаименование), Истина);
Если ЗначениеЗаполнено(Базовый) Тогда
ОбъектВЦ.БазовыйВидЦены = Базовый;
КонецЕсли;
КонецЕсли;
ОбъектВЦ.Наценка = СтрТ.Наценка;
ОбъектВЦ.ЦенаВключаетНДС = СтрТ.ЦенаВключаетНДС;
ОбъектВЦ.ИспользоватьПриПродаже = СтрТ.ИспользоватьПриПродаже;
Попытка
ОбъектВЦ.Статус = Перечисления.СтатусыДействияВидовЦен.Действует;
Исключение
КонецПопытки;
ОбъектВЦ.Записать();
Возврат ОбъектВЦ.Ссылка;
Исключение
СтрТ.Комментарий = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Возврат Справочники.ВидыЦен.ПустаяСсылка();
КонецПопытки;
КонецФункции
Функция НайтиНоменклатуруСтроки(СтрТ)
Ном = Справочники.Номенклатура.ПустаяСсылка();
Арт = СокрЛП(СтрТ.Артикул);
ИмяНом = СокрЛП(СтрТ.НоменклатураНаименование);
КодНом = СокрЛП(СтрТ.НоменклатураКод);
Если ЗначениеЗаполнено(Арт) Тогда
Ном = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Арт);
КонецЕсли;
Если Не ЗначениеЗаполнено(Ном) И ЗначениеЗаполнено(СтрТ.НоменклатураИдентификатор) Тогда
Попытка
СсылкаПоГуид = Справочники.Номенклатура.ПолучитьСсылку(
Новый УникальныйИдентификатор(СтрТ.НоменклатураИдентификатор));
Если ОбщегоНазначения.СсылкаСуществует(СсылкаПоГуид) Тогда
Ном = СсылкаПоГуид;
КонецЕсли;
Исключение
КонецПопытки;
КонецЕсли;
Если Не ЗначениеЗаполнено(Ном) И ЗначениеЗаполнено(КодНом) Тогда
Ном = Справочники.Номенклатура.НайтиПоКоду(КодНом);
КонецЕсли;
Если Не ЗначениеЗаполнено(Ном) И ЗначениеЗаполнено(ИмяНом) Тогда
Ном = Справочники.Номенклатура.НайтиПоНаименованию(ИмяНом, Истина);
КонецЕсли;
Возврат Ном;
КонецФункции
Процедура ЗаполнитьПолитикуСерийСтроки(СтрТ, Ном)
ВидНом = Неопределено;
Попытка
ВидНом = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ном, "ВидНоменклатуры");
Исключение
Возврат;
КонецПопытки;
Если Не ЗначениеЗаполнено(ВидНом) Тогда
Возврат;
КонецЕсли;
ИспСерии = Ложь;
Попытка
ИспСерии = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидНом, "ИспользоватьСерии") = Истина;
Исключение
КонецПопытки;
СтрТ.ИспользоватьСерииСклад = ?(ИспСерии, "Да", "Нет");
КлючСерии = "";
Попытка
ЗначениеКлюча = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидНом, "НастройкиКлючаЦенПоСерии");
Если ЗначениеЗаполнено(ЗначениеКлюча) Тогда
КлючСерии = Строка(ЗначениеКлюча);
КонецЕсли;
Исключение
КонецПопытки;
СтрТ.КлючЦенПоСерии = КлючСерии;
Части = Новый Массив;
Если ИспСерии Тогда
Части.Добавить("в цели посерийный складской учёт, в источнике цена без серии");
КонецЕсли;
Если ЗначениеЗаполнено(КлючСерии) И НРег(КлючСерии) <> "не использовать" Тогда
Части.Добавить("ключ цен по серии=" + КлючСерии + "; цена будет общей (СерияЦО пустая)");
КонецЕсли;
СтрТ.РазрывДетализации = СтрСоединить(Части, "; ");
КонецПроцедуры
Функция ТекущаяЦенаЦелевойИБ(Ном, ВидЦены)
ДатаСреза = ДатаЦен;
Если Не ЗначениеЗаполнено(ДатаСреза) Тогда
ДатаСреза = ТекущаяДатаСеанса();
КонецЕсли;
ИспЦО25 = Ложь;
Попытка
ИспЦО25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
Исключение
ИспЦО25 = Ложь;
КонецПопытки;
Запрос = Новый Запрос;
Если ИспЦО25 Тогда
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Цены.Цена КАК Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры25.СрезПоследних(
| &Дата,
| Номенклатура = &Номенклатура
| И ВидЦены = &ВидЦены) КАК Цены
|
|УПОРЯДОЧИТЬ ПО
| Цены.Период УБЫВ";
Иначе
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Цены.Цена КАК Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &Дата,
| Номенклатура = &Номенклатура
| И ВидЦены = &ВидЦены) КАК Цены";
КонецЕсли;
Запрос.УстановитьПараметр("Дата", ДатаСреза);
Запрос.УстановитьПараметр("Номенклатура", Ном);
Запрос.УстановитьПараметр("ВидЦены", ВидЦены);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() И ТипЗнч(Выборка.Цена) = Тип("Число") Тогда
Возврат Выборка.Цена;
КонецЕсли;
Возврат 0;
КонецФункции
Функция ЗначениеСвойства(Источник, Имя, ПоУмолчанию)
Если Источник = Неопределено Тогда
Возврат ПоУмолчанию;
КонецЕсли;
Если ТипЗнч(Источник) = Тип("Структура") Или ТипЗнч(Источник) = Тип("ФиксированнаяСтруктура") Тогда
Если Источник.Свойство(Имя) Тогда
Возврат Источник[Имя];
КонецЕсли;
Возврат ПоУмолчанию;
КонецЕсли;
Если ТипЗнч(Источник) = Тип("Соответствие") Или ТипЗнч(Источник) = Тип("ФиксированноеСоответствие") Тогда
Значение = Источник.Получить(Имя);
Если Значение = Неопределено Тогда
Возврат ПоУмолчанию;
КонецЕсли;
Возврат Значение;
КонецЕсли;
Возврат ПоУмолчанию;
КонецФункции
Функция ЧислоИзЗначения(Значение, ПоУмолчанию)
Если Значение = Неопределено Или Значение = Null Тогда
Возврат ПоУмолчанию;
КонецЕсли;
Попытка
Возврат Число(Значение);
Исключение
Возврат ПоУмолчанию;
КонецПопытки;
КонецФункции
Функция БулевоИзЗначения(Значение)
Если ТипЗнч(Значение) = Тип("Булево") Тогда
Возврат Значение;
КонецЕсли;
Если Значение = Неопределено Или Значение = Null Тогда
Возврат Ложь;
КонецЕсли;
Стр = НРег(СокрЛП(Строка(Значение)));
Возврат Стр = "true" Или Стр = "1" Или Стр = "да" Или Стр = "истина";
КонецФункции
#КонецОбласти
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.20" >
<Form uuid="a18e1801-18e0-4000-8000-000000000002">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>
@@ -0,0 +1,539 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.20">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузка актуальных цен из исходной базы</v8:content>
</v8:item>
</Title>
<AutoSaveDataInSettings>Use</AutoSaveDataInSettings>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<Events>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<ChildItems>
<UsualGroup name="ГруппаШапка" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Параметры</v8:content>
</v8:item>
</Title>
<Group>AlwaysHorizontal</Group>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаШапкаРасширеннаяПодсказка" id="2"/>
<ChildItems>
<InputField name="ПодключениеКСтороннейБазе" id="3">
<DataPath>Объект.ПодключениеКСтороннейБазе</DataPath>
<ContextMenu name="ПодключениеКСтороннейБазеКонтекстноеМеню" id="4"/>
<ExtendedTooltip name="ПодключениеКСтороннейБазеРасширеннаяПодсказка" id="5"/>
</InputField>
<InputField name="ДатаЦен" id="6">
<DataPath>Объект.ДатаЦен</DataPath>
<ContextMenu name="ДатаЦенКонтекстноеМеню" id="7"/>
<ExtendedTooltip name="ДатаЦенРасширеннаяПодсказка" id="8"/>
</InputField>
<InputField name="ДатаДокументов" id="9">
<DataPath>Объект.ДатаДокументов</DataPath>
<ContextMenu name="ДатаДокументовКонтекстноеМеню" id="10"/>
<ExtendedTooltip name="ДатаДокументовРасширеннаяПодсказка" id="11"/>
</InputField>
<CheckBoxField name="СоздаватьОтсутствующиеВидыЦен" id="12">
<DataPath>Объект.СоздаватьОтсутствующиеВидыЦен</DataPath>
<TitleLocation>Right</TitleLocation>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="СоздаватьОтсутствующиеВидыЦенКонтекстноеМеню" id="13"/>
<ExtendedTooltip name="СоздаватьОтсутствующиеВидыЦенРасширеннаяПодсказка" id="14"/>
</CheckBoxField>
<InputField name="КомментарийДокументов" id="15">
<DataPath>Объект.КомментарийДокументов</DataPath>
<ContextMenu name="КомментарийДокументовКонтекстноеМеню" id="16"/>
<ExtendedTooltip name="КомментарийДокументовРасширеннаяПодсказка" id="17"/>
</InputField>
</ChildItems>
</UsualGroup>
<Pages name="ГруппаСтраницы" id="20">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Страницы</v8:content>
</v8:item>
</Title>
<PagesRepresentation>TabsOnTop</PagesRepresentation>
<ExtendedTooltip name="ГруппаСтраницыРасширеннаяПодсказка" id="21"/>
<ChildItems>
<Page name="ГруппаВидыЦен" id="22">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Виды цен</v8:content>
</v8:item>
</Title>
<ExtendedTooltip name="ГруппаВидыЦенРасширеннаяПодсказка" id="23"/>
<ChildItems>
<Table name="ВидыЦенИсточника" id="200">
<Representation>List</Representation>
<DataPath>Объект.ВидыЦенИсточника</DataPath>
<RowFilter xsi:nil="true"/>
<ContextMenu name="ВидыЦенИсточникаКонтекстноеМеню" id="201"/>
<AutoCommandBar name="ВидыЦенИсточникаКоманднаяПанель" id="202">
<ChildItems>
<Button name="ВидыЦенИсточникаЗагрузитьВидыЦен" id="250">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ЗагрузитьВидыЦен</CommandName>
<ExtendedTooltip name="ВидыЦенИсточникаЗагрузитьВидыЦенРасширеннаяПодсказка" id="251"/>
</Button>
<Button name="ВидыЦенИсточникаОтметитьВидыЦен" id="252">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ОтметитьВидыЦен</CommandName>
<ExtendedTooltip name="ВидыЦенИсточникаОтметитьВидыЦенРасширеннаяПодсказка" id="253"/>
</Button>
<Button name="ВидыЦенИсточникаСнятьОтметкуВидовЦен" id="254">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.СнятьОтметкуВидовЦен</CommandName>
<ExtendedTooltip name="ВидыЦенИсточникаСнятьОтметкуВидовЦенРасширеннаяПодсказка" id="255"/>
</Button>
<Button name="ВидыЦенИсточникаСоздатьОтсутствующиеВидыЦен" id="256">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.СоздатьОтсутствующиеВидыЦен</CommandName>
<ExtendedTooltip name="ВидыЦенИсточникаСоздатьОтсутствующиеВидыЦенРасширеннаяПодсказка" id="257"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ExtendedTooltip name="ВидыЦенИсточникаРасширеннаяПодсказка" id="203"/>
<SearchStringAddition name="ВидыЦенИсточникаСтрокаПоиска" id="204">
<AdditionSource>
<Item>ВидыЦенИсточника</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="ВидыЦенИсточникаСтрокаПоискаКонтекстноеМеню" id="205"/>
<ExtendedTooltip name="ВидыЦенИсточникаСтрокаПоискаРасширеннаяПодсказка" id="206"/>
</SearchStringAddition>
<ViewStatusAddition name="ВидыЦенИсточникаСостояниеПросмотра" id="207">
<AdditionSource>
<Item>ВидыЦенИсточника</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="ВидыЦенИсточникаСостояниеПросмотраКонтекстноеМеню" id="208"/>
<ExtendedTooltip name="ВидыЦенИсточникаСостояниеПросмотраРасширеннаяПодсказка" id="209"/>
</ViewStatusAddition>
<SearchControlAddition name="ВидыЦенИсточникаУправлениеПоиском" id="210">
<AdditionSource>
<Item>ВидыЦенИсточника</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="ВидыЦенИсточникаУправлениеПоискомКонтекстноеМеню" id="211"/>
<ExtendedTooltip name="ВидыЦенИсточникаУправлениеПоискомРасширеннаяПодсказка" id="212"/>
</SearchControlAddition>
<ChildItems>
<CheckBoxField name="ВидыЦенИсточникаОтметка" id="201">
<DataPath>Объект.ВидыЦенИсточника.Отметка</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>8</Width>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ВидыЦенИсточникаОтметкаКонтекстноеМеню" id="202"/>
<ExtendedTooltip name="ВидыЦенИсточникаОтметкаРасширеннаяПодсказка" id="203"/>
</CheckBoxField>
<InputField name="ВидыЦенИсточникаНаименование" id="204">
<DataPath>Объект.ВидыЦенИсточника.Наименование</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>20</Width>
<ContextMenu name="ВидыЦенИсточникаНаименованиеКонтекстноеМеню" id="205"/>
<ExtendedTooltip name="ВидыЦенИсточникаНаименованиеРасширеннаяПодсказка" id="206"/>
</InputField>
<InputField name="ВидыЦенИсточникаВалютаКод" id="207">
<DataPath>Объект.ВидыЦенИсточника.ВалютаКод</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>8</Width>
<ContextMenu name="ВидыЦенИсточникаВалютаКодКонтекстноеМеню" id="208"/>
<ExtendedTooltip name="ВидыЦенИсточникаВалютаКодРасширеннаяПодсказка" id="209"/>
</InputField>
<CheckBoxField name="ВидыЦенИсточникаЦенаВключаетНДС" id="210">
<DataPath>Объект.ВидыЦенИсточника.ЦенаВключаетНДС</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>10</Width>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ВидыЦенИсточникаЦенаВключаетНДСКонтекстноеМеню" id="211"/>
<ExtendedTooltip name="ВидыЦенИсточникаЦенаВключаетНДСРасширеннаяПодсказка" id="212"/>
</CheckBoxField>
<InputField name="ВидыЦенИсточникаСпособЗаданияЦены" id="213">
<DataPath>Объект.ВидыЦенИсточника.СпособЗаданияЦены</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>16</Width>
<ContextMenu name="ВидыЦенИсточникаСпособЗаданияЦеныКонтекстноеМеню" id="214"/>
<ExtendedTooltip name="ВидыЦенИсточникаСпособЗаданияЦеныРасширеннаяПодсказка" id="215"/>
</InputField>
<InputField name="ВидыЦенИсточникаВидЦены" id="216">
<DataPath>Объект.ВидыЦенИсточника.ВидЦены</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>20</Width>
<ContextMenu name="ВидыЦенИсточникаВидЦеныКонтекстноеМеню" id="217"/>
<ExtendedTooltip name="ВидыЦенИсточникаВидЦеныРасширеннаяПодсказка" id="218"/>
</InputField>
<InputField name="ВидыЦенИсточникаСтатусСопоставления" id="219">
<DataPath>Объект.ВидыЦенИсточника.СтатусСопоставления</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>14</Width>
<ContextMenu name="ВидыЦенИсточникаСтатусСопоставленияКонтекстноеМеню" id="220"/>
<ExtendedTooltip name="ВидыЦенИсточникаСтатусСопоставленияРасширеннаяПодсказка" id="221"/>
</InputField>
<InputField name="ВидыЦенИсточникаКомментарий" id="222">
<DataPath>Объект.ВидыЦенИсточника.Комментарий</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>24</Width>
<ContextMenu name="ВидыЦенИсточникаКомментарийКонтекстноеМеню" id="223"/>
<ExtendedTooltip name="ВидыЦенИсточникаКомментарийРасширеннаяПодсказка" id="224"/>
</InputField>
</ChildItems>
</Table>
</ChildItems>
</Page>
<Page name="ГруппаВходящиеЦены" id="24">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Входящие цены</v8:content>
</v8:item>
</Title>
<ExtendedTooltip name="ГруппаВходящиеЦеныРасширеннаяПодсказка" id="25"/>
<ChildItems>
<Table name="ВходящиеЦены" id="300">
<Representation>List</Representation>
<DataPath>Объект.ВходящиеЦены</DataPath>
<RowFilter xsi:nil="true"/>
<ContextMenu name="ВходящиеЦеныКонтекстноеМеню" id="301"/>
<AutoCommandBar name="ВходящиеЦеныКоманднаяПанель" id="302">
<ChildItems>
<Button name="ВходящиеЦеныЗагрузитьЦены" id="350">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ЗагрузитьЦены</CommandName>
<ExtendedTooltip name="ВходящиеЦеныЗагрузитьЦеныРасширеннаяПодсказка" id="351"/>
</Button>
<Button name="ВходящиеЦеныСопоставитьДанные" id="352">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.СопоставитьДанные</CommandName>
<ExtendedTooltip name="ВходящиеЦеныСопоставитьДанныеРасширеннаяПодсказка" id="353"/>
</Button>
<Button name="ВходящиеЦеныСоздатьДокументы" id="354">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.СоздатьДокументы</CommandName>
<ExtendedTooltip name="ВходящиеЦеныСоздатьДокументыРасширеннаяПодсказка" id="355"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ExtendedTooltip name="ВходящиеЦеныРасширеннаяПодсказка" id="303"/>
<SearchStringAddition name="ВходящиеЦеныСтрокаПоиска" id="304">
<AdditionSource>
<Item>ВходящиеЦены</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="ВходящиеЦеныСтрокаПоискаКонтекстноеМеню" id="305"/>
<ExtendedTooltip name="ВходящиеЦеныСтрокаПоискаРасширеннаяПодсказка" id="306"/>
</SearchStringAddition>
<ViewStatusAddition name="ВходящиеЦеныСостояниеПросмотра" id="307">
<AdditionSource>
<Item>ВходящиеЦены</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="ВходящиеЦеныСостояниеПросмотраКонтекстноеМеню" id="308"/>
<ExtendedTooltip name="ВходящиеЦеныСостояниеПросмотраРасширеннаяПодсказка" id="309"/>
</ViewStatusAddition>
<SearchControlAddition name="ВходящиеЦеныУправлениеПоиском" id="310">
<AdditionSource>
<Item>ВходящиеЦены</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="ВходящиеЦеныУправлениеПоискомКонтекстноеМеню" id="311"/>
<ExtendedTooltip name="ВходящиеЦеныУправлениеПоискомРасширеннаяПодсказка" id="312"/>
</SearchControlAddition>
<ChildItems>
<CheckBoxField name="ВходящиеЦеныСопоставлено" id="301">
<DataPath>Объект.ВходящиеЦены.Сопоставлено</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>8</Width>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ВходящиеЦеныСопоставленоКонтекстноеМеню" id="302"/>
<ExtendedTooltip name="ВходящиеЦеныСопоставленоРасширеннаяПодсказка" id="303"/>
</CheckBoxField>
<InputField name="ВходящиеЦеныАртикул" id="304">
<DataPath>Объект.ВходящиеЦены.Артикул</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>12</Width>
<ContextMenu name="ВходящиеЦеныАртикулКонтекстноеМеню" id="305"/>
<ExtendedTooltip name="ВходящиеЦеныАртикулРасширеннаяПодсказка" id="306"/>
</InputField>
<InputField name="ВходящиеЦеныНоменклатураНаименование" id="307">
<DataPath>Объект.ВходящиеЦены.НоменклатураНаименование</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>22</Width>
<ContextMenu name="ВходящиеЦеныНоменклатураНаименованиеКонтекстноеМеню" id="308"/>
<ExtendedTooltip name="ВходящиеЦеныНоменклатураНаименованиеРасширеннаяПодсказка" id="309"/>
</InputField>
<InputField name="ВходящиеЦеныНоменклатура" id="310">
<DataPath>Объект.ВходящиеЦены.Номенклатура</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>20</Width>
<ContextMenu name="ВходящиеЦеныНоменклатураКонтекстноеМеню" id="311"/>
<ExtendedTooltip name="ВходящиеЦеныНоменклатураРасширеннаяПодсказка" id="312"/>
</InputField>
<InputField name="ВходящиеЦеныХарактеристикаНаименование" id="313">
<DataPath>Объект.ВходящиеЦены.ХарактеристикаНаименование</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>14</Width>
<ContextMenu name="ВходящиеЦеныХарактеристикаНаименованиеКонтекстноеМеню" id="314"/>
<ExtendedTooltip name="ВходящиеЦеныХарактеристикаНаименованиеРасширеннаяПодсказка" id="315"/>
</InputField>
<InputField name="ВходящиеЦеныВидЦеныНаименование" id="316">
<DataPath>Объект.ВходящиеЦены.ВидЦеныНаименование</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>16</Width>
<ContextMenu name="ВходящиеЦеныВидЦеныНаименованиеКонтекстноеМеню" id="317"/>
<ExtendedTooltip name="ВходящиеЦеныВидЦеныНаименованиеРасширеннаяПодсказка" id="318"/>
</InputField>
<InputField name="ВходящиеЦеныВидЦены" id="319">
<DataPath>Объект.ВходящиеЦены.ВидЦены</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>16</Width>
<ContextMenu name="ВходящиеЦеныВидЦеныКонтекстноеМеню" id="320"/>
<ExtendedTooltip name="ВходящиеЦеныВидЦеныРасширеннаяПодсказка" id="321"/>
</InputField>
<InputField name="ВходящиеЦеныЦена" id="322">
<DataPath>Объект.ВходящиеЦены.Цена</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>10</Width>
<ContextMenu name="ВходящиеЦеныЦенаКонтекстноеМеню" id="323"/>
<ExtendedTooltip name="ВходящиеЦеныЦенаРасширеннаяПодсказка" id="324"/>
</InputField>
<InputField name="ВходящиеЦеныТекущаяЦенаЦель" id="325">
<DataPath>Объект.ВходящиеЦены.ТекущаяЦенаЦель</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>10</Width>
<ContextMenu name="ВходящиеЦеныТекущаяЦенаЦельКонтекстноеМеню" id="326"/>
<ExtendedTooltip name="ВходящиеЦеныТекущаяЦенаЦельРасширеннаяПодсказка" id="327"/>
</InputField>
<InputField name="ВходящиеЦеныВалютаКод" id="328">
<DataPath>Объект.ВходящиеЦены.ВалютаКод</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>8</Width>
<ContextMenu name="ВходящиеЦеныВалютаКодКонтекстноеМеню" id="329"/>
<ExtendedTooltip name="ВходящиеЦеныВалютаКодРасширеннаяПодсказка" id="330"/>
</InputField>
<InputField name="ВходящиеЦеныИспользоватьСерииСклад" id="331">
<DataPath>Объект.ВходящиеЦены.ИспользоватьСерииСклад</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>12</Width>
<ContextMenu name="ВходящиеЦеныИспользоватьСерииСкладКонтекстноеМеню" id="332"/>
<ExtendedTooltip name="ВходящиеЦеныИспользоватьСерииСкладРасширеннаяПодсказка" id="333"/>
</InputField>
<InputField name="ВходящиеЦеныКлючЦенПоСерии" id="334">
<DataPath>Объект.ВходящиеЦены.КлючЦенПоСерии</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>14</Width>
<ContextMenu name="ВходящиеЦеныКлючЦенПоСерииКонтекстноеМеню" id="335"/>
<ExtendedTooltip name="ВходящиеЦеныКлючЦенПоСерииРасширеннаяПодсказка" id="336"/>
</InputField>
<InputField name="ВходящиеЦеныРазрывДетализации" id="337">
<DataPath>Объект.ВходящиеЦены.РазрывДетализации</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>24</Width>
<ContextMenu name="ВходящиеЦеныРазрывДетализацииКонтекстноеМеню" id="338"/>
<ExtendedTooltip name="ВходящиеЦеныРазрывДетализацииРасширеннаяПодсказка" id="339"/>
</InputField>
<InputField name="ВходящиеЦеныКомментарийСопоставления" id="340">
<DataPath>Объект.ВходящиеЦены.КомментарийСопоставления</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>24</Width>
<ContextMenu name="ВходящиеЦеныКомментарийСопоставленияКонтекстноеМеню" id="341"/>
<ExtendedTooltip name="ВходящиеЦеныКомментарийСопоставленияРасширеннаяПодсказка" id="342"/>
</InputField>
<CheckBoxField name="ВходящиеЦеныЗагруженоВДокумент" id="343">
<DataPath>Объект.ВходящиеЦены.ЗагруженоВДокумент</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>8</Width>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ВходящиеЦеныЗагруженоВДокументКонтекстноеМеню" id="344"/>
<ExtendedTooltip name="ВходящиеЦеныЗагруженоВДокументРасширеннаяПодсказка" id="345"/>
</CheckBoxField>
</ChildItems>
</Table>
</ChildItems>
</Page>
<Page name="ГруппаСозданныеДокументы" id="26">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Документы установки</v8:content>
</v8:item>
</Title>
<ExtendedTooltip name="ГруппаСозданныеДокументыРасширеннаяПодсказка" id="27"/>
<ChildItems>
<Table name="СозданныеДокументы" id="400">
<Representation>List</Representation>
<DataPath>Объект.СозданныеДокументы</DataPath>
<RowFilter xsi:nil="true"/>
<ContextMenu name="СозданныеДокументыКонтекстноеМеню" id="401"/>
<AutoCommandBar name="СозданныеДокументыКоманднаяПанель" id="402">
<ChildItems>
</ChildItems>
</AutoCommandBar>
<ExtendedTooltip name="СозданныеДокументыРасширеннаяПодсказка" id="403"/>
<SearchStringAddition name="СозданныеДокументыСтрокаПоиска" id="404">
<AdditionSource>
<Item>СозданныеДокументы</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="СозданныеДокументыСтрокаПоискаКонтекстноеМеню" id="405"/>
<ExtendedTooltip name="СозданныеДокументыСтрокаПоискаРасширеннаяПодсказка" id="406"/>
</SearchStringAddition>
<ViewStatusAddition name="СозданныеДокументыСостояниеПросмотра" id="407">
<AdditionSource>
<Item>СозданныеДокументы</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="СозданныеДокументыСостояниеПросмотраКонтекстноеМеню" id="408"/>
<ExtendedTooltip name="СозданныеДокументыСостояниеПросмотраРасширеннаяПодсказка" id="409"/>
</ViewStatusAddition>
<SearchControlAddition name="СозданныеДокументыУправлениеПоиском" id="410">
<AdditionSource>
<Item>СозданныеДокументы</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="СозданныеДокументыУправлениеПоискомКонтекстноеМеню" id="411"/>
<ExtendedTooltip name="СозданныеДокументыУправлениеПоискомРасширеннаяПодсказка" id="412"/>
</SearchControlAddition>
<ChildItems>
<InputField name="СозданныеДокументыДокументПредставление" id="401">
<DataPath>Объект.СозданныеДокументы.ДокументПредставление</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>30</Width>
<ContextMenu name="СозданныеДокументыДокументПредставлениеКонтекстноеМеню" id="402"/>
<ExtendedTooltip name="СозданныеДокументыДокументПредставлениеРасширеннаяПодсказка" id="403"/>
</InputField>
<InputField name="СозданныеДокументыВидЦены" id="404">
<DataPath>Объект.СозданныеДокументы.ВидЦены</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>20</Width>
<ContextMenu name="СозданныеДокументыВидЦеныКонтекстноеМеню" id="405"/>
<ExtendedTooltip name="СозданныеДокументыВидЦеныРасширеннаяПодсказка" id="406"/>
</InputField>
<InputField name="СозданныеДокументыКоличествоСтрок" id="407">
<DataPath>Объект.СозданныеДокументы.КоличествоСтрок</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>10</Width>
<ContextMenu name="СозданныеДокументыКоличествоСтрокКонтекстноеМеню" id="408"/>
<ExtendedTooltip name="СозданныеДокументыКоличествоСтрокРасширеннаяПодсказка" id="409"/>
</InputField>
<InputField name="СозданныеДокументыКомментарий" id="410">
<DataPath>Объект.СозданныеДокументы.Комментарий</DataPath>
<EditMode>EnterOnInput</EditMode>
<Width>30</Width>
<ContextMenu name="СозданныеДокументыКомментарийКонтекстноеМеню" id="411"/>
<ExtendedTooltip name="СозданныеДокументыКомментарийРасширеннаяПодсказка" id="412"/>
</InputField>
</ChildItems>
</Table>
</ChildItems>
</Page>
</ChildItems>
</Pages>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="100001">
<Type>
<v8:Type>cfg:DataProcessorObject.РК_ЗагрузкаЦен</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
<Attribute name="ПодключениеКСтороннейБазеПредыдущее" id="100002">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Подключение предыдущее</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>cfg:CatalogRef.РК_НастройкиПодключенияКВнешнейБазе</v8:Type>
</Type>
</Attribute>
</Attributes>
<Commands>
<Command name="ЗагрузитьВидыЦен" id="501">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузить виды цен</v8:content>
</v8:item>
</Title>
<ToolTip/>
<Action>ЗагрузитьВидыЦен</Action>
<CurrentRowUse>Auto</CurrentRowUse>
</Command>
<Command name="ОтметитьВидыЦен" id="502">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отметить</v8:content>
</v8:item>
</Title>
<ToolTip/>
<Action>ОтметитьВидыЦен</Action>
<CurrentRowUse>Auto</CurrentRowUse>
</Command>
<Command name="СнятьОтметкуВидовЦен" id="503">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Снять отметку</v8:content>
</v8:item>
</Title>
<ToolTip/>
<Action>СнятьОтметкуВидовЦен</Action>
<CurrentRowUse>Auto</CurrentRowUse>
</Command>
<Command name="СоздатьОтсутствующиеВидыЦен" id="504">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Создать отсутствующие виды цен</v8:content>
</v8:item>
</Title>
<ToolTip/>
<Action>СоздатьОтсутствующиеВидыЦен</Action>
<CurrentRowUse>Auto</CurrentRowUse>
</Command>
<Command name="ЗагрузитьЦены" id="505">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузить цены</v8:content>
</v8:item>
</Title>
<ToolTip/>
<Action>ЗагрузитьЦены</Action>
<CurrentRowUse>Auto</CurrentRowUse>
</Command>
<Command name="СопоставитьДанные" id="506">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сопоставить</v8:content>
</v8:item>
</Title>
<ToolTip/>
<Action>СопоставитьДанные</Action>
<CurrentRowUse>Auto</CurrentRowUse>
</Command>
<Command name="СоздатьДокументы" id="507">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Создать документы установки</v8:content>
</v8:item>
</Title>
<ToolTip/>
<Action>СоздатьДокументы</Action>
<CurrentRowUse>Auto</CurrentRowUse>
</Command>
</Commands>
</Form>
@@ -0,0 +1,327 @@
////////////////////////////////////////////////////////////////////////////////
// Форма обработки РК_ЗагрузкаЦен.
// https://git.p7net.ru/1c/crm3_26.rhana/issues/18
////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не ЗначениеЗаполнено(Объект.ПодключениеКСтороннейБазе) Тогда
Попытка
Объект.ПодключениеКСтороннейБазе = Константы.РК_РабочееПодключениеЧерезАПИ.Получить();
Исключение
КонецПопытки;
КонецЕсли;
ПодключениеКСтороннейБазеПредыдущее = Объект.ПодключениеКСтороннейБазе;
Если Не ЗначениеЗаполнено(Объект.ДатаЦен) Тогда
Объект.ДатаЦен = ТекущаяДатаСеанса();
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.ДатаДокументов) Тогда
Объект.ДатаДокументов = Объект.ДатаЦен;
КонецЕсли;
Если ПустаяСтрока(Объект.КомментарийДокументов) Тогда
Объект.КомментарийДокументов = "Перенос цен из crm3-dev";
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗагрузитьВидыЦен(Команда)
Если Не ЗначениеЗаполнено(Объект.ПодключениеКСтороннейБазе) Тогда
ПоказатьПредупреждение(, "Укажите подключение к сторонней базе");
Возврат;
КонецЕсли;
Попытка
Текст = ЗагрузитьВидыЦенНаСервере();
Исключение
ПоказатьПредупреждение(, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат;
КонецПопытки;
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаВидыЦен;
ПоказатьОповещениеПользователя("Виды цен", , Текст);
КонецПроцедуры
&НаКлиенте
Процедура ОтметитьВидыЦен(Команда)
УстановитьОтметкуВыделенныхСтрок("ВидыЦенИсточника", Истина);
КонецПроцедуры
&НаКлиенте
Процедура СнятьОтметкуВидовЦен(Команда)
УстановитьОтметкуВыделенныхСтрок("ВидыЦенИсточника", Ложь);
КонецПроцедуры
&НаКлиенте
Процедура СоздатьОтсутствующиеВидыЦен(Команда)
Если Объект.ВидыЦенИсточника.Количество() = 0 Тогда
ПоказатьПредупреждение(, "Сначала загрузите виды цен");
Возврат;
КонецЕсли;
Описание = Новый ОписаниеОповещения("СоздатьОтсутствующиеВидыЦенПослеВопроса", ЭтотОбъект);
ПоказатьВопрос(Описание,
"Сопоставить виды цен и создать отсутствующие в целевой ИБ?" + Символы.ПС
+ "Да — запись; Нет — только проверка (тест); Отмена — прервать.",
РежимДиалогаВопрос.ДаНетОтмена);
КонецПроцедуры
&НаКлиенте
Процедура СоздатьОтсутствующиеВидыЦенПослеВопроса(РезультатВопроса, ДопПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Отмена Тогда
Возврат;
КонецЕсли;
РежимТест = (РезультатВопроса <> КодВозвратаДиалога.Да);
Попытка
Текст = СопоставитьВидыЦенНаСервере(РежимТест);
Исключение
ПоказатьПредупреждение(, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат;
КонецПопытки;
ПоказатьОповещениеПользователя("Виды цен", , Текст);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьЦены(Команда)
Если Не ЗначениеЗаполнено(Объект.ПодключениеКСтороннейБазе) Тогда
ПоказатьПредупреждение(, "Укажите подключение к сторонней базе");
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.ДатаЦен) Тогда
ПоказатьПредупреждение(, "Укажите дату среза цен");
Возврат;
КонецЕсли;
Попытка
Текст = ЗагрузитьЦеныНаСервере();
Исключение
ПоказатьПредупреждение(, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат;
КонецПопытки;
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаВходящиеЦены;
ПоказатьОповещениеПользователя("Входящие цены", , Текст);
КонецПроцедуры
&НаКлиенте
Процедура СопоставитьДанные(Команда)
Если Объект.ВходящиеЦены.Количество() = 0 Тогда
ПоказатьПредупреждение(, "Сначала загрузите цены");
Возврат;
КонецЕсли;
Попытка
Текст = СопоставитьЦеныНаСервере();
Исключение
ПоказатьПредупреждение(, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат;
КонецПопытки;
ПоказатьОповещениеПользователя("Сопоставление", , Текст);
КонецПроцедуры
&НаКлиенте
Процедура СоздатьДокументы(Команда)
Если Не ЗначениеЗаполнено(Объект.ДатаДокументов) Тогда
ПоказатьПредупреждение(, "Укажите дату документов установки");
Возврат;
КонецЕсли;
Описание = Новый ОписаниеОповещения("СоздатьДокументыПослеВопроса", ЭтотОбъект);
ПоказатьВопрос(Описание,
"Создать и провести документы «Установка цен номенклатуры»?" + Символы.ПС
+ "Да — запись; Нет — только подсчёт (тест); Отмена — прервать.",
РежимДиалогаВопрос.ДаНетОтмена);
КонецПроцедуры
&НаКлиенте
Процедура СоздатьДокументыПослеВопроса(РезультатВопроса, ДопПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Отмена Тогда
Возврат;
КонецЕсли;
РежимТест = (РезультатВопроса <> КодВозвратаДиалога.Да);
Попытка
Текст = СоздатьДокументыНаСервере(РежимТест);
Исключение
ПоказатьПредупреждение(, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат;
КонецПопытки;
Если Не РежимТест Тогда
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаСозданныеДокументы;
КонецЕсли;
ПоказатьОповещениеПользователя("Документы установки", , Текст);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура УстановитьОтметкуВыделенныхСтрок(ИмяТаблицы, Отметка)
ТаблицаФормы = Элементы[ИмяТаблицы];
ДанныеТаблицы = Объект[ИмяТаблицы];
Выделенные = ТаблицаФормы.ВыделенныеСтроки;
Если Выделенные.Количество() = 0 Тогда
ПоказатьПредупреждение(, "Выделите строки в таблице");
Возврат;
КонецЕсли;
Для Каждого ИдентификаторСтроки Из Выделенные Цикл
СтрокаТЗ = ДанныеТаблицы.НайтиПоИдентификатору(ИдентификаторСтроки);
Если СтрокаТЗ <> Неопределено Тогда
СтрокаТЗ.Отметка = Отметка;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ЗагрузитьВидыЦенНаСервере()
Ответ = РК_ОбменСВнешнейБазой.ВидыЦенВнешнейБазы(Объект.ПодключениеКСтороннейБазе);
ОбъектОбработки = РеквизитФормыВЗначение("Объект");
ОбъектОбработки.ЗаполнитьВидыЦенИзОтветаAPI(Ответ, Истина);
ТекстСопоставления = ОбъектОбработки.СопоставитьВидыЦен(Истина);
ЗначениеВРеквизитФормы(ОбъектОбработки, "Объект");
Возврат "Загружено " + Формат(Объект.ВидыЦенИсточника.Количество(), "ЧН=0; ЧГ=0")
+ ". " + ТекстСопоставления;
КонецФункции
&НаСервере
Функция СопоставитьВидыЦенНаСервере(РежимТест)
Объект.СоздаватьОтсутствующиеВидыЦен = Не РежимТест;
ОбъектОбработки = РеквизитФормыВЗначение("Объект");
Текст = ОбъектОбработки.СопоставитьВидыЦен(РежимТест);
ЗначениеВРеквизитФормы(ОбъектОбработки, "Объект");
Возврат Текст;
КонецФункции
&НаСервере
Функция ЗагрузитьЦеныНаСервере()
ВидыGUID = Новый Массив;
Для Каждого Стр Из Объект.ВидыЦенИсточника Цикл
Если Стр.Отметка И ЗначениеЗаполнено(Стр.Идентификатор) Тогда
ВидыGUID.Добавить(СокрЛП(Стр.Идентификатор));
КонецЕсли;
КонецЦикла;
Фильтры = Новый Структура;
Фильтры.Вставить("only_nonzero", Истина);
ПолныйОбход = Истина;
Если ВидыGUID.Количество() > 0 Тогда
Фильтры.Вставить("price_types", ВидыGUID);
ПолныйОбход = Ложь;
КонецЕсли;
ВсеСтроки = Новый Массив;
Курсор = "";
Лимит = 2000;
МаксСтраниц = 200;
Для НомерСтраницы = 1 По МаксСтраниц Цикл
ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("as_of", Формат(Объект.ДатаЦен, "ДФ=yyyy-MM-ddTHH:mm:ss"));
ПараметрыЗапроса.Вставить("limit", Лимит);
ПараметрыЗапроса.Вставить("filters", Фильтры);
Если ПолныйОбход Тогда
ПараметрыЗапроса.Вставить("allow_full_scan", Истина);
КонецЕсли;
Если Не ПустаяСтрока(Курсор) Тогда
ПараметрыЗапроса.Вставить("cursor", Курсор);
КонецЕсли;
Ответ = РК_ОбменСВнешнейБазой.ЦеныВнешнейБазы(Объект.ПодключениеКСтороннейБазе, ПараметрыЗапроса);
Строки = ЗначениеСвойстваОтвета(Ответ, "rows");
Если ТипЗнч(Строки) <> Тип("Массив") Тогда
ВызватьИсключение "Некорректный ответ /v1/prices/slice";
КонецЕсли;
Для Каждого СтрAPI Из Строки Цикл
ВсеСтроки.Добавить(СтрAPI);
КонецЦикла;
Мета = ЗначениеСвойстваОтвета(Ответ, "meta");
ЕстьЕще = Ложь;
Если ТипЗнч(Мета) = Тип("Структура") Или ТипЗнч(Мета) = Тип("Соответствие") Тогда
ЗначениеЕстьЕще = ЗначениеСвойстваОтвета(Мета, "has_more");
Если ТипЗнч(ЗначениеЕстьЕще) = Тип("Булево") Тогда
ЕстьЕще = ЗначениеЕстьЕще;
КонецЕсли;
КонецЕсли;
Курсор = СокрЛП(Строка(ЗначениеСвойстваОтвета(Ответ, "cursor")));
Если Не ЕстьЕще Или ПустаяСтрока(Курсор) Или Строки.Количество() = 0 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
ОбъектОбработки = РеквизитФормыВЗначение("Объект");
ОбъектОбработки.ЗаполнитьВходящиеЦеныИзОтветаAPI(Новый Структура("rows", ВсеСтроки), Истина);
ЗначениеВРеквизитФормы(ОбъектОбработки, "Объект");
Возврат "Загружено строк: " + Формат(Объект.ВходящиеЦены.Количество(), "ЧН=0; ЧГ=0");
КонецФункции
&НаСервере
Функция СопоставитьЦеныНаСервере()
ОбъектОбработки = РеквизитФормыВЗначение("Объект");
Текст = ОбъектОбработки.СопоставитьВходящиеЦены();
ЗначениеВРеквизитФормы(ОбъектОбработки, "Объект");
Возврат Текст;
КонецФункции
&НаСервере
Функция СоздатьДокументыНаСервере(РежимТест)
ОбъектОбработки = РеквизитФормыВЗначение("Объект");
Текст = ОбъектОбработки.СоздатьДокументыУстановкиЦен(РежимТест);
ЗначениеВРеквизитФормы(ОбъектОбработки, "Объект");
Возврат Текст;
КонецФункции
&НаСервере
Функция ЗначениеСвойстваОтвета(Источник, Имя)
Если Источник = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Если ТипЗнч(Источник) = Тип("Структура") Или ТипЗнч(Источник) = Тип("ФиксированнаяСтруктура") Тогда
Значение = Неопределено;
Если Источник.Свойство(Имя, Значение) Тогда
Возврат Значение;
КонецЕсли;
Возврат Неопределено;
КонецЕсли;
Если ТипЗнч(Источник) = Тип("Соответствие") Или ТипЗнч(Источник) = Тип("ФиксированноеСоответствие") Тогда
Возврат Источник.Получить(Имя);
КонецЕсли;
Возврат Неопределено;
КонецФункции
#КонецОбласти
@@ -14,6 +14,17 @@
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.РК_ЗагрузкаЦен</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.crm326RHANA</name>
<right>
@@ -20,6 +20,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Constant.РК_РабочееПодключениеЧерезАПИ</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.РК_ОбменСВнешнейБазой</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">DataProcessor.РК_ЗагрузкаОстатков</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">DataProcessor.РК_ЗагрузкаЦен</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">DataProcessor.РК_ОбработкаПарнеровКонтрагентов</xr:Item>
</Content>
</Properties>