commit c0e6078491281a21430c8081dffb7accd8d9b0ce Author: kykaevv Date: Tue Sep 1 13:03:17 2026 +0300 Initial commit: конфигурация 1С ТСД заказов магазина diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0e542e7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.env +.env.* +*.log +Thumbs.db +Desktop.ini +.DS_Store diff --git a/Catalogs/ИБ.xml b/Catalogs/ИБ.xml new file mode 100644 index 0000000..cc2f7b1 --- /dev/null +++ b/Catalogs/ИБ.xml @@ -0,0 +1,91 @@ + + + + + + 9b67fd4b-d595-4a9d-a0c4-c0b0d731c283 + 23f40107-9be8-4fbd-a7f9-4df2bd73e166 + + + a259d190-ef3e-49b5-8126-471302dd61c3 + 3fc854f1-94f6-4383-82f0-543a9e9367a5 + + + 03f247c8-8d65-4ce1-8264-8e13fa3bffd2 + cd4f8110-0f6f-4d0c-891a-813d5e8c5746 + + + fde65d1d-80a2-43cd-b5a5-5a186c38c05e + 5fe0c60d-2f23-4ef0-8ab8-7167258808e1 + + + ab845b63-4a4f-4fa6-a2f2-0bf804a47d49 + e8990427-8ff5-45a3-a1e1-02bdd703b78b + + + + ИБ + + + ru + ИБ + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + true + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.ИБ.StandardAttribute.Description + Catalog.ИБ.StandardAttribute.Code + + Begin + DontUse + Directly + + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + \ No newline at end of file diff --git a/Catalogs/ИБ/Ext/Predefined.xml b/Catalogs/ИБ/Ext/Predefined.xml new file mode 100644 index 0000000..e6d276f --- /dev/null +++ b/Catalogs/ИБ/Ext/Predefined.xml @@ -0,0 +1,15 @@ + + + + tut11 + 000000002 + tut11 + false + + + ut11 + 000000001 + ut11 + false + + \ No newline at end of file diff --git a/Catalogs/Кассиры.xml b/Catalogs/Кассиры.xml new file mode 100644 index 0000000..c987481 --- /dev/null +++ b/Catalogs/Кассиры.xml @@ -0,0 +1,94 @@ + + + + + + 7110be2e-11e6-4817-8625-bf56c0ba8596 + 2ccc58c4-2120-4665-bada-5d08ab68e0aa + + + 4b1142f9-0e73-4f79-86d2-653d453495b2 + 9db99a0f-b3f7-4ac6-9d13-6a1fff37607c + + + 93486776-3a6e-4275-83e4-4df9ab1f3973 + 1d44615d-3176-43e3-8867-719783954062 + + + 62444f23-36e4-4d63-a926-effbc2e97ce1 + ebbc29c0-1eae-41c5-b4a5-3b0ebb955e61 + + + 660fc7df-d24b-4d62-9353-e27f97c7349b + 15ce19c5-020e-4153-90e7-f7aabe7298c9 + + + + Кассиры + + + ru + Кассиры + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + true + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Кассиры.StandardAttribute.Description + Catalog.Кассиры.StandardAttribute.Code + + Begin + DontUse + Directly + Catalog.Кассиры.Form.ФормаЭлемента + + Catalog.Кассиры.Form.ФормаСписка + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + +
ФормаЭлемента
+
ФормаСписка
+
+
+
\ No newline at end of file diff --git a/Catalogs/Кассиры/Forms/ФормаСписка.xml b/Catalogs/Кассиры/Forms/ФормаСписка.xml new file mode 100644 index 0000000..0e681a6 --- /dev/null +++ b/Catalogs/Кассиры/Forms/ФормаСписка.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаСписка + + + ru + Форма списка + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + Any + +
+
\ No newline at end of file diff --git a/Catalogs/Кассиры/Forms/ФормаСписка/Ext/Form.xml b/Catalogs/Кассиры/Forms/ФормаСписка/Ext/Form.xml new file mode 100644 index 0000000..3b8af5d --- /dev/null +++ b/Catalogs/Кассиры/Forms/ФормаСписка/Ext/Form.xml @@ -0,0 +1,115 @@ + +
+ + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + false + Vertical + WeakSeparation + false + + + + List + None + true + ExpandTopLevel + true + Список + Список.DefaultPicture + false + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + СписокКомпоновщикНастроекПользовательскиеНастройки + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + + + + + + Список + SearchControl + + + + + + + Список.Description + true + + + + + Список.Code + + + + +
+
+ + + + cfg:DynamicList + + true + + false + true + Catalog.Кассиры + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + \ No newline at end of file diff --git a/Catalogs/Кассиры/Forms/ФормаЭлемента.xml b/Catalogs/Кассиры/Forms/ФормаЭлемента.xml new file mode 100644 index 0000000..978f177 --- /dev/null +++ b/Catalogs/Кассиры/Forms/ФормаЭлемента.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаЭлемента + + + ru + Форма элемента + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + Any + +
+
\ No newline at end of file diff --git a/Catalogs/Кассиры/Forms/ФормаЭлемента/Ext/Form.xml b/Catalogs/Кассиры/Forms/ФормаЭлемента/Ext/Form.xml new file mode 100644 index 0000000..2dc3514 --- /dev/null +++ b/Catalogs/Кассиры/Forms/ФормаЭлемента/Ext/Form.xml @@ -0,0 +1,31 @@ + +
+ LockOwner + Items + + + + Объект.Code + EnterOnInput + true + + + + + Объект.Description + EnterOnInput + true + + + + + + + + cfg:CatalogObject.Кассиры + + true + true + + + \ No newline at end of file diff --git a/Catalogs/Магазины.xml b/Catalogs/Магазины.xml new file mode 100644 index 0000000..2c9da3c --- /dev/null +++ b/Catalogs/Магазины.xml @@ -0,0 +1,227 @@ + + + + + + b904505e-82e8-453e-8191-137bd561de5d + ad1387f5-3b0b-4da2-8fb3-36ae1a41ac16 + + + eecacc1a-3a60-4de3-b03a-f35105173c2f + a7a4d35c-d2a4-447a-b16e-4dfdea322252 + + + 4d66b712-357b-4d77-86ac-1e251e534587 + 6bd41415-65ec-4585-a2f6-386e1c9db7ef + + + d2f9cac3-efc6-4d8f-b026-21a4dffc99d8 + e06eb05c-aa93-4e4f-bd91-aa73e0330a98 + + + c1de4cf8-0f81-4f74-a3fd-735628dc307e + 75db454b-93a4-49f7-8852-c5a135968584 + + + + Магазины + + + ru + Магазины + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 50 + String + Variable + WholeCatalog + true + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Магазины.StandardAttribute.Description + Catalog.Магазины.StandardAttribute.Code + + Begin + DontUse + Directly + Catalog.Магазины.Form.ФормаЭлемента + + Catalog.Магазины.Form.ФормаСписка + Catalog.Магазины.Form.ФормаВыбора + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + + Логин + + + ru + Логин + + + + + xs:string + + 50 + Variable + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + ForItem + DontIndex + Use + Use + + + + + Пароль + + + ru + Пароль + + + + + xs:string + + 10 + Variable + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + ForItem + DontIndex + Use + Use + + + + + ПользовательИБ + + + ru + Пользователь ИБ + + + + + xs:string + + 10 + Variable + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + ForItem + DontIndex + Use + Use + + +
ФормаЭлемента
+
ФормаСписка
+
ФормаВыбора
+
+
+
\ No newline at end of file diff --git a/Catalogs/Магазины/Ext/ObjectModule.bsl b/Catalogs/Магазины/Ext/ObjectModule.bsl new file mode 100644 index 0000000..e12abba --- /dev/null +++ b/Catalogs/Магазины/Ext/ObjectModule.bsl @@ -0,0 +1,29 @@ +//Процедура ПередЗаписью() +// +// +// Если не ОбменДанными.Загрузка Тогда +// Пользователь=ПользователиИнформационнойБазы.НайтиПоИмени(ЭтотОбъект.ПользовательИБ); +// ЕСли не Пользователь=неопределено тогда Пользователь.Удалить(); конецЕСли; +// Пользователь=ПользователиИнформационнойБазы.НайтиПоИмени(ЭтотОбъект.Логин); +// Если Пользователь=неопределено Тогда +// Пользователь = ПользователиИнформационнойБазы.СоздатьПользователя(); +// КонецЕсли; +// Пользователь.Имя = ЭтотОбъект.Логин; +// Пользователь.ПолноеИмя = ЭтотОбъект.Наименование; +// Пользователь.АутентификацияСтандартная = Истина; +// // НовыйПользователь.ОсновнойИнтерфейс = Метаданные.Интерфейсы; +// Пользователь.Пароль = ЭтотОбъект.Пароль; +// Пользователь.Роли.Добавить(Метаданные.Роли.Магазин); +// Пользователь.ПоказыватьВСпискеВыбора = Истина; +// Пользователь.Язык = Метаданные.Языки.Русский; +// ЭтотОбъект.ПользовательИБ=ЭтотОбъект.Логин; +// +// +// Пользователь.Записать(); +// +// +// КонецЕСли; +// +// +// +//КонецПроцедуры \ No newline at end of file diff --git a/Catalogs/Магазины/Forms/ФормаВыбора.xml b/Catalogs/Магазины/Forms/ФормаВыбора.xml new file mode 100644 index 0000000..269d726 --- /dev/null +++ b/Catalogs/Магазины/Forms/ФормаВыбора.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаВыбора + + + ru + Форма выбора + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + Any + +
+
\ No newline at end of file diff --git a/Catalogs/Магазины/Forms/ФормаВыбора/Ext/Form.xml b/Catalogs/Магазины/Forms/ФормаВыбора/Ext/Form.xml new file mode 100644 index 0000000..3e99a0d --- /dev/null +++ b/Catalogs/Магазины/Forms/ФормаВыбора/Ext/Form.xml @@ -0,0 +1,186 @@ + +
+ LockOwner + Vertical + + + ПриСозданииНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + false + Vertical + WeakSeparation + false + + + + List + None + true + true + Cell + ExpandTopLevel + true + Список + Список.DefaultPicture + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + СписокКомпоновщикНастроекПользовательскиеНастройки + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + + + + + + Список + SearchControl + + + + + + + Список.Наименование + true + + + + + Список.Код + + + + +
+
+ + + + cfg:DynamicList + + true + + true + true + ВЫБРАТЬ + СправочникМагазины.Ссылка КАК Ссылка, + СправочникМагазины.ПометкаУдаления КАК ПометкаУдаления, + СправочникМагазины.Код КАК Код, + СправочникМагазины.Наименование КАК Наименование, + СправочникМагазины.Логин КАК Логин, + СправочникМагазины.Пароль КАК Пароль, + СправочникМагазины.ПользовательИБ КАК ПользовательИБ, + СправочникМагазины.Предопределенный КАК Предопределенный, + СправочникМагазины.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных +ИЗ + Справочник.Магазины КАК СправочникМагазины +ГДЕ + СправочникМагазины.Ссылка В(&Магазины) + + Ссылка + Ссылка + + + Логин + Логин + + + ПометкаУдаления + ПометкаУдаления + + + Код + Код + + + Пароль + Пароль + + + Наименование + Наименование + + + ПользовательИБ + ПользовательИБ + + + Предопределенный + Предопределенный + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + Магазины + + + ru + Магазины + + + + cfg:CatalogRef.Магазины + + + true + true + + Catalog.Магазины + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + \ No newline at end of file diff --git a/Catalogs/Магазины/Forms/ФормаВыбора/Ext/Form/Module.bsl b/Catalogs/Магазины/Forms/ФормаВыбора/Ext/Form/Module.bsl new file mode 100644 index 0000000..a6ab23a --- /dev/null +++ b/Catalogs/Магазины/Forms/ФормаВыбора/Ext/Form/Module.bsl @@ -0,0 +1,35 @@ + &НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + СписокМагазинов=Новый СписокЗначений(); + + Если не ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Содержит(Метаданные.Роли.Администратор) Тогда + + Пользователь=ОмСлужебный.ТекущийПользователь(); + Для каждого маг из Пользователь.Магазины цикл + СписокМагазинов.Добавить(маг.Магазин); + КонецЦикла; + Список.Параметры.УстановитьЗначениеПараметра("Магазины",СписокМагазинов); + + Иначе + + + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Магазины.Ссылка КАК Ссылка + |ИЗ + | Справочник.Магазины КАК Магазины"; + + РезультатЗапроса = Запрос.Выполнить(); + + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + СписокМагазинов.Добавить(ВыборкаДетальныеЗаписи.Ссылка); + КонецЦикла; + Список.Параметры.УстановитьЗначениеПараметра("Магазины",СписокМагазинов); + КонецЕсли; + +КонецПроцедуры diff --git a/Catalogs/Магазины/Forms/ФормаСписка.xml b/Catalogs/Магазины/Forms/ФормаСписка.xml new file mode 100644 index 0000000..276069c --- /dev/null +++ b/Catalogs/Магазины/Forms/ФормаСписка.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаСписка + + + ru + Форма списка + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + Any + +
+
\ No newline at end of file diff --git a/Catalogs/Магазины/Forms/ФормаСписка/Ext/Form.xml b/Catalogs/Магазины/Forms/ФормаСписка/Ext/Form.xml new file mode 100644 index 0000000..0d12534 --- /dev/null +++ b/Catalogs/Магазины/Forms/ФормаСписка/Ext/Form.xml @@ -0,0 +1,121 @@ + +
+ DontBlock + Vertical + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + false + Vertical + WeakSeparation + false + + + + List + None + true + Cell + ExpandTopLevel + true + Список + Список.DefaultPicture + + Copy + Create + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + СписокКомпоновщикНастроекПользовательскиеНастройки + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + + + + + + Список + SearchControl + + + + + + + Список.Description + true + + + + + Список.Code + + + + +
+
+ + + + cfg:DynamicList + + true + + false + true + Catalog.Магазины + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + \ No newline at end of file diff --git a/Catalogs/Магазины/Forms/ФормаЭлемента.xml b/Catalogs/Магазины/Forms/ФормаЭлемента.xml new file mode 100644 index 0000000..a275198 --- /dev/null +++ b/Catalogs/Магазины/Forms/ФормаЭлемента.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаЭлемента + + + ru + Форма элемента + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + Any + +
+
\ No newline at end of file diff --git a/Catalogs/Магазины/Forms/ФормаЭлемента/Ext/Form.xml b/Catalogs/Магазины/Forms/ФормаЭлемента/Ext/Form.xml new file mode 100644 index 0000000..4390258 --- /dev/null +++ b/Catalogs/Магазины/Forms/ФормаЭлемента/Ext/Form.xml @@ -0,0 +1,51 @@ + +
+ LockOwner + Vertical + Items + + + + Объект.Code + EnterOnInput + true + true + + + + + Объект.Description + false + EnterOnInput + true + true + + + + + Объект.Логин + EnterOnInput + true + true + + + + + Объект.Пароль + EnterOnInput + true + true + + + + + + + + cfg:CatalogObject.Магазины + + true + true + + + \ No newline at end of file diff --git a/Catalogs/Номенклатура.xml b/Catalogs/Номенклатура.xml new file mode 100644 index 0000000..613f73d --- /dev/null +++ b/Catalogs/Номенклатура.xml @@ -0,0 +1,218 @@ + + + + + + 9e54fd0e-6ad6-488a-9572-0066fc47b516 + 6eabbe27-cadd-4f36-bb62-b809391913dd + + + c7723ffb-7964-4acb-95e5-b942f594f727 + a3725d8d-4af4-4c64-a1db-054b6d23e869 + + + 2e35e2d7-a584-4990-a9bc-502538d2e9f8 + c6647b5c-a9b9-4934-b6ee-8d805c1f316e + + + d87c5a12-f4ae-406d-8395-b9e06a73a923 + 591ca5be-f08f-4308-967e-8e47f9fe0681 + + + e230bc2a-80be-4733-8232-246e5bb5b441 + 4317c4f6-7a3b-408b-b1aa-4ff0864a61dc + + + + Номенклатура + + + ru + Номенклатура + + + + true + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 0 + 100 + String + Variable + WholeCatalog + false + false + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Номенклатура.StandardAttribute.Description + + Begin + DontUse + Directly + + + Catalog.Номенклатура.Form.ФормаСписка + Catalog.Номенклатура.Form.ФормаПодбора + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + + КодOffline + + + ru + Код offline + + + + + xs:decimal + + 10 + 0 + Any + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + ForItem + DontIndex + Use + Use + + + + + ИБ + + + ru + ИБ + + + + + cfg:CatalogRef.ИБ + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + ForItem + DontIndex + Use + Use + + + + + Отображать + + + ru + Отображать + + + + + xs:boolean + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + ForFolderAndItem + DontIndex + Use + Use + + +
ФормаСписка
+
ФормаПодбора
+
+
+
\ No newline at end of file diff --git a/Catalogs/Номенклатура/Ext/ManagerModule.bsl b/Catalogs/Номенклатура/Ext/ManagerModule.bsl new file mode 100644 index 0000000..cc97577 --- /dev/null +++ b/Catalogs/Номенклатура/Ext/ManagerModule.bsl @@ -0,0 +1,127 @@ + +//Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) +// +// СтрокаПоиска = СтрЗаменить(Параметры.СтрокаПоиска, """", ""); // нормализация +// +// Если СтрокаПоиска <> "" Тогда //И Параметры.Свойство("ВводПоСтрокеРасширенный") Тогда +// +// МаксимумСтрокРезультата = 20; +// +// МассивСловПоиска = СтрРазделить(СтрокаПоиска, " ", Ложь); +// КоличествоСловПоиска = МассивСловПоиска.Количество(); +// +// Если КоличествоСловПоиска > 0 Тогда +// +// СтандартнаяОбработка = Ложь; +// СписокВыбора = Новый СписокЗначений; +// +// Запрос = Новый Запрос; +// +// УсловияПоиска = ""; +// ПриоритетСортировки = ""; +// Для НомерСловаПоиска = 1 По КоличествоСловПоиска Цикл +// +// СловоПоиска = МассивСловПоиска[НомерСловаПоиска - 1]; +// ДлинаСловаПоиска = СтрДлина(СловоПоиска); +// +// Запрос.УстановитьПараметр("СловоПоиска" + НомерСловаПоиска, "%" + СловоПоиска + "%"); +// УсловияПоиска = УсловияПоиска + " +// | И Номенклатура.Наименование ПОДОБНО &СловоПоиска" + НомерСловаПоиска; +// +// ПриоритетСортировки = ПриоритетСортировки + СтрШаблон(" +// | КОГДА ПОДСТРОКА(Номенклатура.Наименование, 1, %1) = ""%2"" +// | ТОГДА %3", Формат(ДлинаСловаПоиска, "ЧГ="), СловоПоиска, НомерСловаПоиска); +// +// КонецЦикла; +// +// Запрос.Текст = +// "ВЫБРАТЬ ПЕРВЫЕ " + МаксимумСтрокРезультата + " +// | Номенклатура.Ссылка КАК Ссылка, +// | Номенклатура.Наименование КАК Наименование, +// | Номенклатура.ПометкаУдаления КАК ПометкаУдаления, +// | ВЫБОР" + ПриоритетСортировки + " +// | ИНАЧЕ 9 +// | КОНЕЦ КАК ПриоритетСортировки +// |ИЗ +// | Справочник.Номенклатура КАК Номенклатура +// |ГДЕ +// | ИСТИНА" + УсловияПоиска + " +// |УПОРЯДОЧИТЬ ПО +// | ПриоритетСортировки, Наименование"; +// +// Выборка = Запрос.Выполнить().Выбрать(); +// Пока Выборка.Следующий() Цикл +// +// СписокВыбора.Добавить(Новый Структура("Значение, ПометкаУдаления", Выборка.Ссылка, Выборка.ПометкаУдаления), ПодсветитьСлова(Выборка.Наименование, МассивСловПоиска)); +// +// КонецЦикла; +// +// ДанныеВыбора = СписокВыбора; +// +// КонецЕсли; +// +// КонецЕсли; +// +//КонецПроцедуры + +//Функция ПодсветитьСлова(ИсходнаяСтрока, МассивСловПодсветки, Знач ШрифтПодсветки = Неопределено, Знач ЦветПодсветки = Неопределено) +// +// МассивРезультирующихСтрок = Новый Массив; +// +// Если ШрифтПодсветки = Неопределено Тогда +// ШрифтПодсветки = Новый Шрифт(,, Истина); // жирный +// КонецЕсли; +// +// Если ЦветПодсветки = Неопределено Тогда +// ЦветПодсветки = Новый Цвет(0, 153, 0); // светло-зеленый из стандартной подсветки ввода по строке +// КонецЕсли; +// +// ИсходнаяСтрокаНормализованная = НРег(ИсходнаяСтрока); // нормализация +// ДлинаИсходнойСтроки = СтрДлина(ИсходнаяСтрокаНормализованная); +// +// // получим список диапазонов символов для подсветки +// СписокДиапазонов = Новый СписокЗначений; +// Для НомерСлова = 1 По МассивСловПодсветки.Количество() Цикл +// СловоПодсветки = НРег(МассивСловПодсветки[НомерСлова - 1]); // нормализация +// ПозицияНачалаСлова = 1; +// ДлинаСлова = СтрДлина(СловоПодсветки); +// Пока ПозицияНачалаСлова <> 0 И ПозицияНачалаСлова <= ДлинаИсходнойСтроки Цикл +// ПозицияНачалаСлова = СтрНайти(ИсходнаяСтрокаНормализованная, СловоПодсветки, , ПозицияНачалаСлова); +// Если ПозицияНачалаСлова > 0 Тогда +// МассивДиапазона = Новый Массив; +// МассивДиапазона.Добавить(ПозицияНачалаСлова); +// МассивДиапазона.Добавить(ПозицияНачалаСлова + ДлинаСлова - 1); +// СписокДиапазонов.Добавить(МассивДиапазона, Формат(ПозицияНачалаСлова, "ЧЦ=3; ЧВН=")); +// ПозицияНачалаСлова = ПозицияНачалаСлова + ДлинаСлова; +// КонецЕсли; +// КонецЦикла; +// КонецЦикла; +// +// // отсортируем список диапазонов по возрастанию начал диапазонов +// СписокДиапазонов.СортироватьПоПредставлению(); +// +// // сформируем массив результирующих строк с разным оформлением (подсветкой) +// СтартоваяПозиция = 1; +// Для Каждого ЭлементДиапазона Из СписокДиапазонов Цикл +// НачалоДиапазона = ЭлементДиапазона.Значение[0]; +// КонецДиапазона = ЭлементДиапазона.Значение[1]; +// Если НачалоДиапазона > СтартоваяПозиция Тогда // часть строки без подсветки +// ЧастьБезВыделения = Сред(ИсходнаяСтрока, СтартоваяПозиция, НачалоДиапазона - СтартоваяПозиция); +// МассивРезультирующихСтрок.Добавить(Новый ФорматированнаяСтрока(ЧастьБезВыделения)); +// СтартоваяПозиция = НачалоДиапазона; +// КонецЕсли; +// Если КонецДиапазона >= СтартоваяПозиция Тогда // часть строки с подсветкой +// ЧастьВыделяемая = Сред(ИсходнаяСтрока, СтартоваяПозиция, КонецДиапазона - СтартоваяПозиция + 1); +// МассивРезультирующихСтрок.Добавить(Новый ФорматированнаяСтрока(ЧастьВыделяемая, ШрифтПодсветки, ЦветПодсветки)); +// СтартоваяПозиция = КонецДиапазона + 1; +// КонецЕсли; +// КонецЦикла; +// +// Если СтартоваяПозиция <= ДлинаИсходнойСтроки Тогда // "хвост" без выделения +// Хвост = Сред(ИсходнаяСтрока, СтартоваяПозиция, ДлинаИсходнойСтроки - СтартоваяПозиция + 1); +// МассивРезультирующихСтрок.Добавить(Новый ФорматированнаяСтрока(Хвост)); +// КонецЕсли; +// +// Возврат Новый ФорматированнаяСтрока(МассивРезультирующихСтрок); +// +//КонецФункции \ No newline at end of file diff --git a/Catalogs/Номенклатура/Forms/ФормаПодбора.xml b/Catalogs/Номенклатура/Forms/ФормаПодбора.xml new file mode 100644 index 0000000..1926849 --- /dev/null +++ b/Catalogs/Номенклатура/Forms/ФормаПодбора.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаПодбора + + + ru + Форма подбора + + + + Managed + false + + MobilePlatformApplication + + Any + +
+
\ No newline at end of file diff --git a/Catalogs/Номенклатура/Forms/ФормаПодбора/Ext/Form.xml b/Catalogs/Номенклатура/Forms/ФормаПодбора/Ext/Form.xml new file mode 100644 index 0000000..63837e3 --- /dev/null +++ b/Catalogs/Номенклатура/Forms/ФормаПодбора/Ext/Form.xml @@ -0,0 +1,875 @@ + +
+ LockOwner + false + Vertical + Bottom + false + true + + false + + + ПриОткрытии + ПриСозданииНаСервере + ПриЗакрытии + + + + true + false + Center + Top + Vertical + None + false + false + + + + СтрокаПоиска + None + false + 3 + false + true + false + true + + Search + + + ru + Поиск по названию... + + + + + + СтрокаПоискаПриИзменении + СтрокаПоискаИзменениеТекстаРедактирования + + + + ИскатьВТекущейПапке + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Искать только в текущей папке</v8:content> + </v8:item> + + Right + true + + + + ИскатьВТекущейПапкеПриИзменении + + + + + + true + true + Vertical + None + false + false + + + + false + true + true + Vertical + WeakSeparation + false + + + + ВыбраннаяНоменклатураНаименование + None + Center + 4 + false + true + + + + + + КоличествоВДокументе + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>В документе</v8:content> + </v8:item> + + Top + Center + true + #2E7D32 + + + + + + true + true + Vertical + Center + None + false + + + + true + Center + AlwaysHorizontal + None + false + + + + + КоличествоПодбора + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Количество</v8:content> + </v8:item> + + Top + Center + true + false + + + ru + ЧДЦ=0; ЧН=0; ЧГ= + + + + + ru + ЧДЦ=0; ЧН=0; ЧГ= + + + 0 + #2E7D32 + #FFF3E0 + + UseContentHeight + Done + + + + + + + + + + true + Bottom + AlwaysHorizontal + None + false + + + + + + + + + + List + None + true + false + false + false + 8 + UseHeightInFormRows + false + true + SingleRow + Row +
false
+ Список + Список.Картинка + None + PullFromTop + HideItemsByImportance + false + List + false + + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + + + + + + Список + SearchControl + + + + + + СписокВыбор + + + + + + + Top + Horizontal + + + + Список.Наименование + true + None + 4 + false + true + + + + + + Список.КоличествоПредставление + None + Center + Center + 12 + 4 + false + false + #2E7D32 + + + + + + + + + + + Список.КодOffline + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код</v8:content> + </v8:item> + + None + false + + + ru + ЧДЦ=0; ЧН=''; ЧГ= + + + + + + + + + + + +
+ + List + false + None + true + false + false + false + 8 + UseHeightInFormRows + true + SingleRow + Row +
false
+ false + РезультатыПоиска + None + HideItemsByImportance + false + List + false + + + + false + + + + + РезультатыПоиска + SearchStringRepresentation + + + + + + + РезультатыПоиска + ViewStatusRepresentation + + + + + + + РезультатыПоиска + SearchControl + + + + + + РезультатыПоискаВыбор + + + + + + + Horizontal + + + + РезультатыПоиска.Наименование + None + 4 + false + true + + + + + + РезультатыПоиска.Количество + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кол-во</v8:content> + </v8:item> + + Top + Center + Center + 12 + 4 + false + false + + + ru + ЧДЦ=0; ЧН=; ЧГ= + + + #2E7D32 + + + + + + + + + + + РезультатыПоиска.КодOffline + None + false + + + ru + ЧДЦ=0; ЧН=''; ЧГ= + + + + + + + + + + + +
+
+
+ +
+ + + + v8:ValueTable + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ссылка</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код offline</v8:content> + </v8:item> + + + xs:decimal + + 10 + 0 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Количество</v8:content> + </v8:item> + + + xs:decimal + + 10 + 0 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Количество представление</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Картинка</v8:content> + </v8:item> + + + v8ui:Picture + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это группа</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подсветка</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заказ</v8:content> + </v8:item> + + + cfg:DocumentRef.Заказ + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поиск</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Результаты поиска</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ссылка</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код offline</v8:content> + </v8:item> + + + xs:decimal + + 10 + 0 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Количество</v8:content> + </v8:item> + + + xs:decimal + + 10 + 0 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подсветка</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выбранная номенклатура</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Количество</v8:content> + </v8:item> + + + xs:decimal + + 10 + 0 + Nonnegative + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>В документе</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подсвеченная номенклатура</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Текущая группа</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Искать в текущей папке</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование текущей группы</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Готово</v8:content> + </v8:item> + + + + ru + Подтвердить количество + + + ПодтвердитьКоличество + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отмена</v8:content> + </v8:item> + + + + ru + Отменить ввод количества + + + ОтменитьКоличество + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>+</v8:content> + </v8:item> + + + + ru + Увеличить количество + + + УвеличитьКоличество + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>-</v8:content> + </v8:item> + + + + ru + Уменьшить количество + + + УменьшитьКоличество + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Назад</v8:content> + </v8:item> + + + + ru + Вернуться на уровень выше + + + НазадВГруппу + + + \ No newline at end of file diff --git a/Catalogs/Номенклатура/Forms/ФормаПодбора/Ext/Form/Module.bsl b/Catalogs/Номенклатура/Forms/ФормаПодбора/Ext/Form/Module.bsl new file mode 100644 index 0000000..e850770 --- /dev/null +++ b/Catalogs/Номенклатура/Forms/ФормаПодбора/Ext/Form/Module.bsl @@ -0,0 +1,747 @@ + +&НаКлиенте +Перем БлокироватьВыборПоиска; +&НаКлиенте +Перем НоменклатураДляПодсветки; +&НаКлиенте +Перем КартинкаПапкиКэш; + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("Заказ") Тогда + Заказ = Параметры["Заказ"]; + КонецЕсли; + + ПодсвеченнаяНоменклатура = Справочники.Номенклатура.ПустаяСсылка(); + УстановитьТекущуюГруппу(Справочники.Номенклатура.ПустаяСсылка()); + ЗагрузитьСписокНаСервере(); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьТекущуюГруппу(Группа) + + ТекущаяГруппа = Группа; + + Если ЗначениеЗаполнено(Группа) Тогда + НаименованиеТекущейГруппы = Группа.Наименование; + Иначе + НаименованиеТекущейГруппы = ""; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьПодсветкуСписка(Номенклатура) + + ПодсвеченнаяНоменклатура = Номенклатура; + +КонецПроцедуры + +&НаСервере +Процедура ЗагрузитьСписокНаСервере() + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Заказ", Заказ); + Запрос.УстановитьПараметр("Родитель", ТекущаяГруппа); + Запрос.УстановитьПараметр("НоменклатураПодсветки", ПодсвеченнаяНоменклатура); + Запрос.Текст = + "ВЫБРАТЬ + | СправочникНоменклатура.Ссылка КАК Ссылка, + | СправочникНоменклатура.Наименование КАК Наименование, + | СправочникНоменклатура.КодOffline КАК КодOffline, + | СправочникНоменклатура.ЭтоГруппа КАК ЭтоГруппа, + | ВЫБОР + | КОГДА СправочникНоменклатура.ЭтоГруппа + | ТОГДА NULL + | ИНАЧЕ ЕСТЬNULL(Товары.Количество, 0) + | КОНЕЦ КАК Количество, + | СправочникНоменклатура.Ссылка = &НоменклатураПодсветки КАК Подсветка + |ИЗ + | Справочник.Номенклатура КАК СправочникНоменклатура + | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ + | Корзина.Номенклатура КАК Номенклатура, + | СУММА(Корзина.Количество) КАК Количество + | ИЗ + | РегистрСведений.Корзина КАК Корзина + | ГДЕ + | Корзина.Заказ = &Заказ + | + | СГРУППИРОВАТЬ ПО + | Корзина.Номенклатура) КАК Товары + | ПО СправочникНоменклатура.Ссылка = Товары.Номенклатура + |ГДЕ + | СправочникНоменклатура.Отображать = ИСТИНА + | И СправочникНоменклатура.Родитель = &Родитель + | + |УПОРЯДОЧИТЬ ПО + | ВЫБОР + | КОГДА СправочникНоменклатура.ЭтоГруппа + | ТОГДА 0 + | ИНАЧЕ 1 + | КОНЕЦ, + | Наименование"; + + Список.Загрузить(Запрос.Выполнить().Выгрузить()); + ОформитьСтрокиСписка(); + +КонецПроцедуры + +&НаСервере +Процедура ОформитьСтрокиСписка() + + Для Каждого СтрокаСписка Из Список Цикл + + Если СтрокаСписка.ЭтоГруппа Тогда + СтрокаСписка.КоличествоПредставление = ""; + Иначе + СтрокаСписка.КоличествоПредставление = Формат(СтрокаСписка.Количество, "ЧДЦ=0; ЧН=0; ЧГ="); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + БлокироватьВыборПоиска = Ложь; + НоменклатураДляПодсветки = Неопределено; + КартинкаПапкиКэш = Неопределено; + ИскатьВТекущейПапке = Ложь; + Элементы.РезультатыПоиска.Видимость = Ложь; + Элементы.Список.Видимость = Истина; + СкрытьПанельКоличества(); + ОбновитьВидимостьОграниченияПоиска(); + ОформитьКартинкиГрупп(); + ОбновитьПанельНавигации(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСписокНаКлиенте() + + ЗагрузитьСписокНаСервере(); + ОформитьКартинкиГрупп(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОформитьКартинкиГрупп() + + КартинкаПапки = ПолучитьКартинкуПапки(); + + Для Каждого СтрокаСписка Из Список Цикл + + Если СтрокаСписка.ЭтоГруппа Тогда + СтрокаСписка.Картинка = КартинкаПапки; + Иначе + СтрокаСписка.Картинка = Неопределено; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Функция ПолучитьКартинкуПапки() + + Если КартинкаПапкиКэш <> Неопределено Тогда + Возврат КартинкаПапкиКэш; + КонецЕсли; + + Попытка + КартинкаПапкиКэш = БиблиотекаКартинок.СправочникГруппа; + Возврат КартинкаПапкиКэш; + Исключение + КонецПопытки; + + Попытка + КартинкаПапкиКэш = БиблиотекаКартинок.Группа; + Возврат КартинкаПапкиКэш; + Исключение + КонецПопытки; + + Попытка + КартинкаПапкиКэш = БиблиотекаКартинок.Каталог; + Возврат КартинкаПапкиКэш; + Исключение + КонецПопытки; + + Попытка + КартинкаПапкиКэш = БиблиотекаКартинок.Folder; + Возврат КартинкаПапкиКэш; + Исключение + КонецПопытки; + + Попытка + КартинкаПапкиКэш = БиблиотекаКартинок.Справочник; + Возврат КартинкаПапкиКэш; + Исключение + КонецПопытки; + + Возврат Неопределено; + +КонецФункции + +&НаКлиенте +Процедура ОбновитьПанельНавигации() + + ЕстьПоиск = СокрЛП(СтрокаПоиска) <> ""; + ПоказыватьНавигацию = Не ЕстьПоиск + И ЗначениеЗаполнено(ТекущаяГруппа) + И Не Элементы.ПанельКоличества.Видимость; + + Элементы.НазадВГруппу.Видимость = ПоказыватьНавигацию; + Элементы.ФормаКоманднаяПанель.Видимость = ПоказыватьНавигацию; + + Если ПоказыватьНавигацию Тогда + Элементы.НазадВГруппу.Заголовок = "← " + НаименованиеТекущейГруппы; + Иначе + Элементы.НазадВГруппу.Заголовок = "Назад"; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтрокаПоискаПриИзменении(Элемент) + + ВыполнитьПоиск(); + +КонецПроцедуры + +&НаКлиенте +Процедура СтрокаПоискаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка) + + СтрокаПоиска = Текст; + ВыполнитьПоиск(); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьПоиск() + + СкрытьПанельКоличества(); + + ЕстьПоиск = СокрЛП(СтрокаПоиска) <> ""; + + Если ЕстьПоиск Тогда + Элементы.Список.Видимость = Ложь; + Элементы.РезультатыПоиска.Видимость = Истина; + ОбновитьПанельНавигации(); + БлокироватьВыборПоиска = Истина; + ВыполнитьПоискНаСервере(СтрокаПоиска, ИскатьВТекущейПапке); + БлокироватьВыборПоиска = Ложь; + Иначе + Элементы.Список.Видимость = Истина; + Элементы.РезультатыПоиска.Видимость = Ложь; + РезультатыПоиска.Очистить(); + ОбновитьСписокНаКлиенте(); + ОбновитьПанельНавигации(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьПоискНаСервере(СтрокаПоискаЗначение, ОграничиватьТекущейПапкой = Ложь) + + МассивСлов = Новый Массив; + + Для Каждого Часть Из СтрРазделить(СокрЛП(СтрокаПоискаЗначение), " ", Ложь) Цикл + Часть = СокрЛП(Часть); + Если Часть <> "" Тогда + МассивСлов.Добавить(Часть); + КонецЕсли; + КонецЦикла; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Заказ", Заказ); + Запрос.УстановитьПараметр("НоменклатураПодсветки", ПодсвеченнаяНоменклатура); + Запрос.УстановитьПараметр("Родитель", ТекущаяГруппа); + + УсловияПоиска = ""; + + Для Номер = 0 По МассивСлов.ВГраница() Цикл + + Если Номер >= 5 Тогда + Прервать; + КонецЕсли; + + ИмяПараметра = "СловоПоиска" + (Номер + 1); + Запрос.УстановитьПараметр(ИмяПараметра, "%" + МассивСлов[Номер] + "%"); + УсловияПоиска = УсловияПоиска + " + | И СправочникНоменклатура.Наименование ПОДОБНО &" + ИмяПараметра; + + КонецЦикла; + + УсловиеПоПапке = ""; + Если ОграничиватьТекущейПапкой И ЗначениеЗаполнено(ТекущаяГруппа) Тогда + УсловиеПоПапке = " + | И СправочникНоменклатура.Родитель = &Родитель"; + КонецЕсли; + + Запрос.Текст = + "ВЫБРАТЬ + | СправочникНоменклатура.Ссылка КАК Ссылка, + | СправочникНоменклатура.Наименование КАК Наименование, + | СправочникНоменклатура.КодOffline КАК КодOffline, + | ЕСТЬNULL(Товары.Количество, 0) КАК Количество, + | СправочникНоменклатура.Ссылка = &НоменклатураПодсветки КАК Подсветка + |ИЗ + | Справочник.Номенклатура КАК СправочникНоменклатура + | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ + | Корзина.Номенклатура КАК Номенклатура, + | СУММА(Корзина.Количество) КАК Количество + | ИЗ + | РегистрСведений.Корзина КАК Корзина + | ГДЕ + | Корзина.Заказ = &Заказ + | + | СГРУППИРОВАТЬ ПО + | Корзина.Номенклатура) КАК Товары + | ПО СправочникНоменклатура.Ссылка = Товары.Номенклатура + |ГДЕ + | СправочникНоменклатура.Отображать = ИСТИНА +| И НЕ СправочникНоменклатура.ЭтоГруппа" + УсловиеПоПапке + УсловияПоиска + " + | + |УПОРЯДОЧИТЬ ПО + | Наименование"; + + РезультатыПоиска.Загрузить(Запрос.Выполнить().Выгрузить()); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ДанныеСтроки = ПолучитьДанныеСтрокиСписка(ВыбраннаяСтрока); + Если ДанныеСтроки = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ДанныеСтроки.ЭтоГруппа Тогда + ПерейтиВГруппу(ДанныеСтроки.Ссылка); + Возврат; + КонецЕсли; + + ОткрытьПанельКоличестваПоДаннымСтроки(ДанныеСтроки.Ссылка, ДанныеСтроки.Наименование, ДанныеСтроки.Количество); + +КонецПроцедуры + +&НаКлиенте +Функция ПолучитьДанныеСтрокиСписка(ИдентификаторСтроки) + + ТекущиеДанные = Элементы.Список.ТекущиеДанные; + Если ТекущиеДанные <> Неопределено И ЗначениеЗаполнено(ТекущиеДанные.Ссылка) Тогда + Возврат ТекущиеДанные; + КонецЕсли; + + Если ИдентификаторСтроки <> Неопределено Тогда + + СтрокаСписка = Список.НайтиПоИдентификатору(ИдентификаторСтроки); + Если СтрокаСписка <> Неопределено Тогда + Возврат СтрокаСписка; + КонецЕсли; + + КонецЕсли; + + ИдентификаторТекущейСтроки = Элементы.Список.ТекущаяСтрока; + Если ИдентификаторТекущейСтроки <> Неопределено Тогда + + СтрокаСписка = Список.НайтиПоИдентификатору(ИдентификаторТекущейСтроки); + Если СтрокаСписка <> Неопределено Тогда + Возврат СтрокаСписка; + КонецЕсли; + + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +&НаКлиенте +Процедура ПерейтиВГруппу(Группа) + + Если Не ЗначениеЗаполнено(Группа) Тогда + Возврат; + КонецЕсли; + + УстановитьТекущуюГруппуНаСервере(Группа); + ОбновитьВидимостьОграниченияПоиска(); + ОформитьКартинкиГрупп(); + ОбновитьПанельНавигации(); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьТекущуюГруппуНаСервере(Группа) + + УстановитьТекущуюГруппу(Группа); + ЗагрузитьСписокНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура НазадВГруппу(Команда) + + ВернутьсяНаУровеньВыше(); + +КонецПроцедуры + +&НаКлиенте +Процедура ВернутьсяНаУровеньВыше() + + ВернутьсяНаУровеньВышеНаСервере(); + ОбновитьВидимостьОграниченияПоиска(); + ОформитьКартинкиГрупп(); + ОбновитьПанельНавигации(); + +КонецПроцедуры + +&НаСервере +Процедура ВернутьсяНаУровеньВышеНаСервере() + + Если Не ЗначениеЗаполнено(ТекущаяГруппа) Тогда + Возврат; + КонецЕсли; + + УстановитьТекущуюГруппу(ТекущаяГруппа.Родитель); + ЗагрузитьСписокНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура РезультатыПоискаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ДанныеСтроки = ПолучитьДанныеСтрокиРезультатаПоиска(ВыбраннаяСтрока); + Если ДанныеСтроки = Неопределено Тогда + Возврат; + КонецЕсли; + + ОткрытьПанельКоличестваПоДаннымСтроки(ДанныеСтроки.Ссылка, ДанныеСтроки.Наименование, ДанныеСтроки.Количество); + +КонецПроцедуры + +&НаКлиенте +Функция ПолучитьДанныеСтрокиРезультатаПоиска(ИдентификаторСтроки) + + ТекущиеДанные = Элементы.РезультатыПоиска.ТекущиеДанные; + Если ТекущиеДанные <> Неопределено И ЗначениеЗаполнено(ТекущиеДанные.Ссылка) Тогда + Возврат ТекущиеДанные; + КонецЕсли; + + Если ИдентификаторСтроки <> Неопределено Тогда + + СтрокаРезультата = РезультатыПоиска.НайтиПоИдентификатору(ИдентификаторСтроки); + Если СтрокаРезультата <> Неопределено Тогда + Возврат СтрокаРезультата; + КонецЕсли; + + КонецЕсли; + + ИдентификаторТекущейСтроки = Элементы.РезультатыПоиска.ТекущаяСтрока; + Если ИдентификаторТекущейСтроки <> Неопределено Тогда + + СтрокаРезультата = РезультатыПоиска.НайтиПоИдентификатору(ИдентификаторТекущейСтроки); + Если СтрокаРезультата <> Неопределено Тогда + Возврат СтрокаРезультата; + КонецЕсли; + + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +&НаКлиенте +Процедура ОткрытьПанельКоличестваПоДаннымСтроки(Номенклатура, Наименование, КоличествоВДок) + + Если Не ЗначениеЗаполнено(Номенклатура) Тогда + Возврат; + КонецЕсли; + + ПоказатьПанельКоличества(Номенклатура, Наименование, КоличествоВДок); + +КонецПроцедуры + +&НаКлиенте +Процедура ПоказатьПанельКоличества(Номенклатура, Наименование = "", КоличествоВДок = Неопределено) + + ВыбраннаяНоменклатура = Номенклатура; + ДанныеПодбора = ПолучитьДанныеПодбораНаСервере(Номенклатура); + + Если Не ЗначениеЗаполнено(Наименование) Тогда + ВыбраннаяНоменклатураНаименование = ДанныеПодбора.Наименование; + Иначе + ВыбраннаяНоменклатураНаименование = Наименование; + КонецЕсли; + + КоличествоВДок = ДанныеПодбора.Количество; + КоличествоВДокументе = Формат(КоличествоВДок, "ЧДЦ=0; ЧН=0; ЧГ="); + КоличествоПодбора = 0; + + Элементы.Список.Видимость = Ложь; + Элементы.РезультатыПоиска.Видимость = Ложь; + Элементы.СтрокаПоиска.Видимость = Ложь; + Элементы.ПанельПоиска.Видимость = Ложь; + Элементы.ПанельКоличества.Видимость = Истина; + ОбновитьПанельНавигации(); + +КонецПроцедуры + +&НаСервере +Функция ПолучитьДанныеПодбораНаСервере(Номенклатура) + + Результат = Новый Структура("Наименование, Количество", "", 0); + Результат.Наименование = Номенклатура.Наименование; + Результат.Количество = ПолучитьКоличествоВКорзине(Номенклатура); + + Возврат Результат; + +КонецФункции + +&НаКлиенте +Процедура ПодтвердитьКоличество(Команда) + + Если Не ЗначениеЗаполнено(ВыбраннаяНоменклатура) Тогда + Возврат; + КонецЕсли; + + ЗаписатьВКорзинуНаСервере(ВыбраннаяНоменклатура, КоличествоПодбора); + НоменклатураДляПодсветки = ВыбраннаяНоменклатура; + ЗакрытьПанельКоличества(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОтменитьКоличество(Команда) + + НоменклатураДляПодсветки = Неопределено; + ЗакрытьПанельКоличества(); + +КонецПроцедуры + +&НаКлиенте +Процедура УвеличитьКоличество(Команда) + + КоличествоПодбора = КоличествоПодбора + 1; + +КонецПроцедуры + +&НаКлиенте +Процедура УменьшитьКоличество(Команда) + + Если КоличествоПодбора > 0 Тогда + КоличествоПодбора = КоличествоПодбора - 1; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗакрытьПанельКоличества() + + СкрытьПанельКоличества(); + + Если ЗначениеЗаполнено(НоменклатураДляПодсветки) Тогда + ПодключитьОбработчикОжидания("ПодсветитьПослеЗакрытияПанелиКоличества", 0.2, Истина); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодсветитьПослеЗакрытияПанелиКоличества() + + Если Не ЗначениеЗаполнено(НоменклатураДляПодсветки) Тогда + Возврат; + КонецЕсли; + + ПодсветитьЭлементСписка(НоменклатураДляПодсветки); + НоменклатураДляПодсветки = Неопределено; + +КонецПроцедуры + +&НаКлиенте +Процедура СкрытьПанельКоличества() + + Элементы.ПанельКоличества.Видимость = Ложь; + Элементы.СтрокаПоиска.Видимость = Истина; + Элементы.ПанельПоиска.Видимость = Истина; + ВыбраннаяНоменклатура = Неопределено; + ВыбраннаяНоменклатураНаименование = ""; + КоличествоВДокументе = ""; + КоличествоПодбора = 0; + ВосстановитьВидимостьСписков(); + +КонецПроцедуры + +&НаКлиенте +Процедура ВосстановитьВидимостьСписков() + + ЕстьПоиск = СокрЛП(СтрокаПоиска) <> ""; + Элементы.Список.Видимость = Не ЕстьПоиск; + Элементы.РезультатыПоиска.Видимость = ЕстьПоиск; + ОбновитьПанельНавигации(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСписки() + + Если СокрЛП(СтрокаПоиска) <> "" Тогда + БлокироватьВыборПоиска = Истина; + ВыполнитьПоискНаСервере(СтрокаПоиска, ИскатьВТекущейПапке); + БлокироватьВыборПоиска = Ложь; + Иначе + ОбновитьСписокНаКлиенте(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИскатьВТекущейПапкеПриИзменении(Элемент) + + ВыполнитьПоиск(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьВидимостьОграниченияПоиска() + + ПоказыватьФлажок = ЗначениеЗаполнено(ТекущаяГруппа); + Элементы.ИскатьВТекущейПапке.Видимость = ПоказыватьФлажок; + + Если Не ПоказыватьФлажок Тогда + ИскатьВТекущейПапке = Ложь; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция ПолучитьКоличествоВКорзине(Номенклатура) + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ЕСТЬNULL(СУММА(Корзина.Количество), 0) КАК Количество + |ИЗ + | РегистрСведений.Корзина КАК Корзина + |ГДЕ + | Корзина.Заказ = &Заказ + | И Корзина.Номенклатура = &Номенклатура"; + Запрос.УстановитьПараметр("Заказ", Заказ); + Запрос.УстановитьПараметр("Номенклатура", Номенклатура); + + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Возврат Выборка.Количество; + КонецЕсли; + + Возврат 0; + +КонецФункции + +&НаСервере +Процедура ЗаписатьВКорзинуНаСервере(Номенклатура, Количество) + + Если Номенклатура.ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + Если Количество <= 0 Тогда + + НаборЗаписей = РегистрыСведений.Корзина.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.Заказ.Установить(Заказ); + НаборЗаписей.Отбор.Номенклатура.Установить(Номенклатура); + НаборЗаписей.Записать(); + Возврат; + + КонецЕсли; + + МенеджерЗаписи = РегистрыСведений.Корзина.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.Заказ = Заказ; + МенеджерЗаписи.Номенклатура = Номенклатура; + МенеджерЗаписи.Количество = Количество; + МенеджерЗаписи.ДатаДобавления = ТекущаяДата(); + МенеджерЗаписи.Записать(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодсветитьЭлементСписка(Номенклатура) + + Если Не ЗначениеЗаполнено(Номенклатура) Тогда + Возврат; + КонецЕсли; + + ОтключитьОбработчикОжидания("СнятьПодсветкуЭлемента"); + УстановитьПодсветкуСпискаНаСервере(Номенклатура); + ОбновитьСписки(); + УстановитьТекущуюСтрокуСписка(Номенклатура); + ПодключитьОбработчикОжидания("СнятьПодсветкуЭлемента", 0.5, Истина); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьПодсветкуСпискаНаСервере(Номенклатура) + + УстановитьПодсветкуСписка(Номенклатура); + +КонецПроцедуры + +&НаКлиенте +Процедура СнятьПодсветкуЭлемента() + + ОчиститьПодсветкуСпискаНаСервере(); + ОбновитьСписки(); + +КонецПроцедуры + +&НаСервере +Процедура ОчиститьПодсветкуСпискаНаСервере() + + УстановитьПодсветкуСписка(Справочники.Номенклатура.ПустаяСсылка()); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьТекущуюСтрокуСписка(Номенклатура) + + Если СокрЛП(СтрокаПоиска) <> "" Тогда + + Для Каждого СтрокаРезультата Из РезультатыПоиска Цикл + + Если СтрокаРезультата.Ссылка = Номенклатура Тогда + Элементы.РезультатыПоиска.ТекущаяСтрока = СтрокаРезультата.ПолучитьИдентификатор(); + Прервать; + КонецЕсли; + + КонецЦикла; + + Иначе + + Для Каждого СтрокаСписка Из Список Цикл + + Если СтрокаСписка.Ссылка = Номенклатура Тогда + Элементы.Список.ТекущаяСтрока = СтрокаСписка.ПолучитьИдентификатор(); + Прервать; + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗакрытии(ЗавершениеРаботы) + + ОтключитьОбработчикОжидания("СнятьПодсветкуЭлемента"); + ОтключитьОбработчикОжидания("ПодсветитьПослеЗакрытияПанелиКоличества"); + Оповестить("ЗакрытиеПодбора"); + +КонецПроцедуры diff --git a/Catalogs/Номенклатура/Forms/ФормаСписка.xml b/Catalogs/Номенклатура/Forms/ФормаСписка.xml new file mode 100644 index 0000000..e60edee --- /dev/null +++ b/Catalogs/Номенклатура/Forms/ФормаСписка.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаСписка + + + ru + Форма списка + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + Any + +
+
\ No newline at end of file diff --git a/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form.xml b/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form.xml new file mode 100644 index 0000000..3c81135 --- /dev/null +++ b/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form.xml @@ -0,0 +1,229 @@ + +
+ DontBlock + Vertical + + false + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + false + Vertical + WeakSeparation + false + + + + true + true + SingleRow + Row + ExpandTopLevel + true + true + Список + Список.DefaultPicture + auto + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + СписокКомпоновщикНастроекПользовательскиеНастройки + true + + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + + + + + + Список + SearchControl + + + + + + + Список.КодOffline + Directly + + + + + Список.Наименование + true + + + + + Список.ИБ + true + + + + +
+
+ + + + cfg:DynamicList + + true + + true + true + ВЫБРАТЬ + СправочникНоменклатура.Ссылка КАК Ссылка, + СправочникНоменклатура.ПометкаУдаления КАК ПометкаУдаления, + СправочникНоменклатура.Родитель КАК Родитель, + СправочникНоменклатура.ЭтоГруппа КАК ЭтоГруппа, + СправочникНоменклатура.Наименование КАК Наименование, + СправочникНоменклатура.КодOffline КАК КодOffline, + СправочникНоменклатура.ИБ КАК ИБ, + СправочникНоменклатура.Отображать КАК Отображать, + СправочникНоменклатура.Предопределенный КАК Предопределенный, + СправочникНоменклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных +ИЗ + Справочник.Номенклатура КАК СправочникНоменклатура +ГДЕ + СправочникНоменклатура.Отображать = Истина + + ИБ + ИБ + + + Ссылка + Ссылка + + + КодOffline + КодOffline + + + ПометкаУдаления + ПометкаУдаления + + + Родитель + Родитель + + + ЭтоГруппа + ЭтоГруппа + + + Наименование + Наименование + + + Отображать + Отображать + + + Предопределенный + Предопределенный + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + Catalog.Номенклатура + + + + Отображать + Equal + true + + Normal + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + + + + + Отображать + Equal + false + + + + + Видимость + false + + + Отображать + false + + + + Normal + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подобрать</v8:content> + </v8:item> + + + + ru + Подобрать + + + Подобрать + + +
\ No newline at end of file diff --git a/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form/Module.bsl b/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form/Module.bsl new file mode 100644 index 0000000..1d9cb7c --- /dev/null +++ b/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form/Module.bsl @@ -0,0 +1,4 @@ + +&НаКлиенте +Процедура Подобрать(Команда) +КонецПроцедуры diff --git a/Catalogs/Пользователи.xml b/Catalogs/Пользователи.xml new file mode 100644 index 0000000..9de1e91 --- /dev/null +++ b/Catalogs/Пользователи.xml @@ -0,0 +1,447 @@ + + + + + + 33472a28-97b9-445c-988a-a020e6b73ab6 + 25b88094-d041-43b7-864c-0f02e0e81f6d + + + 6d327bb7-3eeb-44fa-aabc-e1659410f2f2 + 606cd24e-41bc-472f-b0ac-83c07a0198ef + + + 93ebaadd-cbbc-4c2e-82e0-b1d6fc1f208c + a0c9946e-c93c-46b5-ab94-ff0abed49eee + + + ae9edda9-7fff-435b-932a-5dbdce065370 + 66d7f7a6-59f5-4554-9d38-7fe764086da4 + + + a8cbf737-1541-4224-b7fe-de2453f39680 + 5adbef44-655b-4e61-8985-0db0b190d155 + + + + Пользователи + + + ru + Пользователи + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 50 + String + Variable + WholeCatalog + true + true + AsDescription + + + + DontCheck + false + false + Auto + TransformValues + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + TransformValues + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + TransformValues + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + TransformValues + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + TransformValues + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + ShowError + false + true + Auto + Deny + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + true + Auto + TransformValues + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + ShowError + false + false + Auto + TransformValues + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + TransformValues + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + Auto + InDialog + false + BothWays + + Catalog.Пользователи.StandardAttribute.Description + Catalog.Пользователи.StandardAttribute.Code + + Begin + DontUse + Directly + Catalog.Пользователи.Form.ФормаЭлемента + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + + Пароль + + + ru + Пароль + + + + + xs:string + + 10 + Variable + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + ForItem + DontIndex + Use + Use + + + + + + 8bf06ebb-836c-4d5c-826b-adad25320868 + fed70027-a1bf-49c4-9511-7cf03958274d + + + 38ddf540-1ef4-40f4-a143-8398c292b987 + edc88d91-1a30-4701-9f56-0cf657d13a1a + + + + Магазины + + + ru + Магазины + + + + + DontCheck + ForItem + 5 + + + + + Магазин + + + ru + Магазин + + + + + cfg:CatalogRef.Магазины + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + +
ФормаЭлемента
+
+
+
\ No newline at end of file diff --git a/Catalogs/Пользователи/Ext/ObjectModule.bsl b/Catalogs/Пользователи/Ext/ObjectModule.bsl new file mode 100644 index 0000000..eb2ea04 --- /dev/null +++ b/Catalogs/Пользователи/Ext/ObjectModule.bsl @@ -0,0 +1,7 @@ +Процедура ПередЗаписью() + + + + + +КонецПроцедуры \ No newline at end of file diff --git a/Catalogs/Пользователи/Forms/ФормаЭлемента.xml b/Catalogs/Пользователи/Forms/ФормаЭлемента.xml new file mode 100644 index 0000000..106f80d --- /dev/null +++ b/Catalogs/Пользователи/Forms/ФормаЭлемента.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаЭлемента + + + ru + Форма элемента + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + Any + +
+
\ No newline at end of file diff --git a/Catalogs/Пользователи/Forms/ФормаЭлемента/Ext/Form.xml b/Catalogs/Пользователи/Forms/ФормаЭлемента/Ext/Form.xml new file mode 100644 index 0000000..11b0928 --- /dev/null +++ b/Catalogs/Пользователи/Forms/ФормаЭлемента/Ext/Form.xml @@ -0,0 +1,128 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Логин</v8:content> + </v8:item> + + LockOwner + Vertical + Items + + + ПослеЗаписиНаСервере + ПриОткрытии + ПриСозданииНаСервере + + + + Объект.Code + EnterOnInput + true + true + + + + + Объект.Description + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Логин</v8:content> + </v8:item> + + EnterOnInput + true + true + + + + + Объект.Пароль + EnterOnInput + true + true + + + + + List + Cell + false + true + true + true + Объект.Магазины + + + + + + + Магазины + SearchStringRepresentation + + + + + + + Магазины + ViewStatusRepresentation + + + + + + + Магазины + SearchControl + + + + + + + Объект.Магазины.LineNumber + EnterOnInput + true + + + + + Объект.Магазины.Магазин + EnterOnInput + true + true + + + + +
+
+ + + + cfg:CatalogObject.Пользователи + + true + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Пользователь ИБ</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + \ No newline at end of file diff --git a/Catalogs/Пользователи/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/Catalogs/Пользователи/Forms/ФормаЭлемента/Ext/Form/Module.bsl new file mode 100644 index 0000000..0c5134b --- /dev/null +++ b/Catalogs/Пользователи/Forms/ФормаЭлемента/Ext/Form/Module.bsl @@ -0,0 +1,36 @@ + + + +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + Пользователь=неопределено; + Если ЗначениеЗаполнено(ПользовательИБ) Тогда + + Пользователь=ПользователиИнформационнойБазы.НайтиПоИмени(ПользовательИБ); + + КонецЕсли; + Если Пользователь=неопределено Тогда + Пользователь = ПользователиИнформационнойБазы.СоздатьПользователя(); + КонецЕсли; + Пользователь.Имя = Объект.Наименование; + Пользователь.ПолноеИмя = Объект.Наименование; + Пользователь.АутентификацияСтандартная = Истина; + // НовыйПользователь.ОсновнойИнтерфейс = Метаданные.Интерфейсы; + Пользователь.Пароль = Объект.Пароль; + Пользователь.Роли.Добавить(Метаданные.Роли.Магазин); + Пользователь.ПоказыватьВСпискеВыбора = Истина; + Пользователь.Язык = Метаданные.Языки.Русский; + ПользовательИБ=Объект.Наименование; + + Пользователь.Записать(); +КонецПроцедуры + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Пользователь=ПользователиИнформационнойБазы.НайтиПоИмени(Объект.Наименование); + ЕСли не Пользователь=неопределено Тогда + ПользовательИБ=Пользователь.Имя; + КонецЕСли; + +КонецПроцедуры diff --git a/CommonModules/ОмСлужебный.xml b/CommonModules/ОмСлужебный.xml new file mode 100644 index 0000000..d88bb86 --- /dev/null +++ b/CommonModules/ОмСлужебный.xml @@ -0,0 +1,23 @@ + + + + + ОмСлужебный + + + ru + Ом служебный + + + + false + false + true + true + false + false + false + DontUse + + + \ No newline at end of file diff --git a/CommonModules/ОмСлужебный/Ext/Module.bsl b/CommonModules/ОмСлужебный/Ext/Module.bsl new file mode 100644 index 0000000..3a06b94 --- /dev/null +++ b/CommonModules/ОмСлужебный/Ext/Module.bsl @@ -0,0 +1,35 @@ + +Функция ПодключениеУТ(ИБ) Экспорт + #Если не МобильноеПриложениеСервер Тогда + Соединение = Новый COMОбъект("V85.COMConnector"); + //СтрокаСоединения = "File = ""C:\Base""; Usr = ; Pwd= "; + СтрокаСоединения = "Srvr=""TRM2:1541"";"+"Ref="""+ИБ.Наименование+""";Usr=""Админ"";Pwd=""A400943@!"";"; + Попытка + Подключение = Соединение.Connect(СтрокаСоединения); + Исключение + Сообщение = Новый СообщениеПользователю; + Сообщение.Текст = "Не удалось подключиться" + ОписаниеОшибки(); + Сообщение.Сообщить(); + Возврат Неопределено; + КонецПопытки; + + +Возврат Подключение; + #Иначе +Возврат Неопределено; + #КонецЕСли + +КонецФункции + + +Функция ТекущийМагазин() Экспорт + Магазин=Справочники.Магазины.НайтиПоРеквизиту("Логин",ПользователиИнформационнойБазы.ТекущийПользователь().Имя); + Возврат Магазин; +КонецФункции + + + +Функция ТекущийПользователь() Экспорт + Пользователь=Справочники.Пользователи.НайтиПоНаименованию(ПользователиИнформационнойБазы.ТекущийПользователь().Имя,Истина); + Возврат Пользователь; +КонецФункции \ No newline at end of file diff --git a/CommonPictures/ВыдТовСостояния.xml b/CommonPictures/ВыдТовСостояния.xml new file mode 100644 index 0000000..bad0761 --- /dev/null +++ b/CommonPictures/ВыдТовСостояния.xml @@ -0,0 +1,17 @@ + + + + + ВыдТовСостояния + + + ru + Состояния выделения товара + + + 48x24: индекс 0 — выбрано, индекс 1 — не выбрано + true + false + + + \ No newline at end of file diff --git a/CommonPictures/ВыдТовСостояния/Ext/Picture.xml b/CommonPictures/ВыдТовСостояния/Ext/Picture.xml new file mode 100644 index 0000000..aba3f04 --- /dev/null +++ b/CommonPictures/ВыдТовСостояния/Ext/Picture.xml @@ -0,0 +1,7 @@ + + + + Picture.png + true + + \ No newline at end of file diff --git a/CommonPictures/ВыдТовСостояния/Ext/Picture/Picture.png b/CommonPictures/ВыдТовСостояния/Ext/Picture/Picture.png new file mode 100644 index 0000000..6c7545c Binary files /dev/null and b/CommonPictures/ВыдТовСостояния/Ext/Picture/Picture.png differ diff --git a/ConfigDumpInfo.xml b/ConfigDumpInfo.xml new file mode 100644 index 0000000..ae34735 --- /dev/null +++ b/ConfigDumpInfo.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Configuration.xml b/Configuration.xml new file mode 100644 index 0000000..f618f83 --- /dev/null +++ b/Configuration.xml @@ -0,0 +1,287 @@ + + + + + + 9cd510cd-abfc-11d4-9434-004095e12fc7 + cdc5b451-f3a9-410d-b121-4d911643c3c5 + + + 9fcd25a0-4822-11d4-9414-008048da11f9 + 0cd1a191-e91a-4bbf-a7e6-4d736d18d7a2 + + + e3687481-0a87-462c-a166-9f34594f9bba + d25ecf62-43e4-4184-8656-c8b84b791897 + + + 9de14907-ec23-4a07-96f0-85521cb6b53b + 1ad98904-df75-47a3-92e3-7d61807f5b02 + + + 51f2d5d8-ea4d-4064-8892-82951750031e + 6e7f9fa0-a796-4b1b-a682-1e9006b860ad + + + e68182ea-4237-4383-967f-90c1e3370bc7 + e9a6f1c4-6cf2-4dbe-8b13-a14648bc938b + + + fb282519-d103-4dd3-bc12-cb271d631dfc + c2b23e91-72cb-44fd-854a-d06610f2f7e1 + + + + ЗаказыМагазин + + + ru + Заказы: Магазин + + + + + Version8_5_1 + ManagedApplication + + PlatformApplication + MobilePlatformApplication + + Russian + + + + + false + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Biometrics + true + + + Location + false + + + BackgroundLocation + false + + + BluetoothPrinters + false + + + WiFiPrinters + false + + + Contacts + false + + + Calendars + false + + + PushNotifications + false + + + LocalNotifications + false + + + InAppPurchases + false + + + PersonalComputerFileExchange + false + + + Ads + false + + + NumberDialing + false + + + CallProcessing + false + + + CallLog + false + + + AutoSendSMS + false + + + ReceiveSMS + false + + + SMSLog + false + + + Camera + false + + + Microphone + false + + + MusicLibrary + false + + + PictureAndVideoLibraries + false + + + AudioPlaybackAndVibration + false + + + BackgroundAudioPlaybackAndVibration + false + + + InstallPackages + false + + + OSBackup + true + + + ApplicationUsageStatistics + false + + + BarcodeScanning + false + + + BackgroundAudioRecording + false + + + AllFilesAccess + false + + + Videoconferences + false + + + NFC + false + + + DocumentScanning + false + + + SpeechToText + false + + + Geofences + false + + + IncomingShareRequests + false + + + AllIncomingShareRequestsTypesProcessing + false + + + TextToSpeech + false + + + + + + NavigationLeft + Auto + Normal + OpenDataInDialogs + + + + + Language.Русский + + + + + + Managed + NotAutoFree + DontUse + DontUse + Version8_5 + Use + DontUse + Version8_3_25 + + + + Русский + Закупка + Настройка + ВыдТовСостояния + ТекущийМагазин + Администратор + Магазин + ОмСлужебный + Номенклатура + Магазины + ИБ + Пользователи + Кассиры + Заказ + Статусы + Синхронизация + ИзменитьЗаказ + Корзина + + + \ No newline at end of file diff --git a/DataProcessors/ИзменитьЗаказ.xml b/DataProcessors/ИзменитьЗаказ.xml new file mode 100644 index 0000000..fcb69e1 --- /dev/null +++ b/DataProcessors/ИзменитьЗаказ.xml @@ -0,0 +1,34 @@ + + + + + + 5e17d9d7-06cc-4227-a3e8-4f929b29ab15 + 5f831ab5-98db-4888-a3ce-9509b10b7503 + + + 49f77c26-2a30-404b-901d-de1f0bdd294d + db63ace5-704f-437d-a386-a6b2ed5648a9 + + + + ИзменитьЗаказ + + + ru + Изменить заказ + + + + true + DataProcessor.ИзменитьЗаказ.Form.Форма + + false + + + + +
Форма
+
+
+
\ No newline at end of file diff --git a/DataProcessors/ИзменитьЗаказ/Forms/Форма.xml b/DataProcessors/ИзменитьЗаказ/Forms/Форма.xml new file mode 100644 index 0000000..0ec65c6 --- /dev/null +++ b/DataProcessors/ИзменитьЗаказ/Forms/Форма.xml @@ -0,0 +1,23 @@ + + +
+ + Форма + + + ru + Форма + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + Any + + +
+
\ No newline at end of file diff --git a/DataProcessors/ИзменитьЗаказ/Forms/Форма/Ext/Form.xml b/DataProcessors/ИзменитьЗаказ/Forms/Форма/Ext/Form.xml new file mode 100644 index 0000000..2111db0 --- /dev/null +++ b/DataProcessors/ИзменитьЗаказ/Forms/Форма/Ext/Form.xml @@ -0,0 +1,92 @@ + +
+ DontBlock + Vertical + + + + Заказ + true + + + + ЗаказПриИзменении + + + + Магазин + true + + + + + Статус + true + + + + + + + + + cfg:DataProcessorObject.ИзменитьЗаказ + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Статус</v8:content> + </v8:item> + + + cfg:EnumRef.Статусы + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Магазин</v8:content> + </v8:item> + + + cfg:CatalogRef.Магазины + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заказ</v8:content> + </v8:item> + + + cfg:DocumentRef.Заказ + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выполнить обработку</v8:content> + </v8:item> + + + + ru + Выполнить обработку + + + ВыполнитьОбработку + + + \ No newline at end of file diff --git a/DataProcessors/ИзменитьЗаказ/Forms/Форма/Ext/Form/Module.bsl b/DataProcessors/ИзменитьЗаказ/Forms/Форма/Ext/Form/Module.bsl new file mode 100644 index 0000000..60798b3 --- /dev/null +++ b/DataProcessors/ИзменитьЗаказ/Forms/Форма/Ext/Form/Module.bsl @@ -0,0 +1,31 @@ + +&НаКлиенте +Процедура ВыполнитьОбработку(Команда) + ВыполнитьНаСервере(); +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьНаСервере() + Если ЗначениеЗаполнено(Заказ) Тогда + док=Заказ.ПолучитьОбъект(); + док.Статус=статус; + док.магазин=магазин; + док.ОбменДанными.Загрузка=истина; + док.записать(); + КонецЕСли; +КонецПроцедуры + +&НаКлиенте +Процедура ЗаказПриИзменении(Элемент) + ЗаказПриИзмененииСервер(); +КонецПроцедуры + + +&НаСервере +Процедура ЗаказПриИзмененииСервер() + + Статус=Заказ.Статус; + Магазин=Заказ.Магазин; + + +КонецПроцедуры \ No newline at end of file diff --git a/DataProcessors/Синхронизация.xml b/DataProcessors/Синхронизация.xml new file mode 100644 index 0000000..9957342 --- /dev/null +++ b/DataProcessors/Синхронизация.xml @@ -0,0 +1,34 @@ + + + + + + f22a326a-7dee-4680-9409-2c5ec34d82ee + 0896cb37-5c8a-406e-ba4a-d6df86c263bf + + + ee8ae3e6-35a4-41c7-8477-7953e5cde4ed + 22f133d2-0a68-4165-bb19-80a926501493 + + + + Синхронизация + + + ru + Синхронизация + + + + true + DataProcessor.Синхронизация.Form.Форма + + false + + + + +
Форма
+
+
+
\ No newline at end of file diff --git a/DataProcessors/Синхронизация/Forms/Форма.xml b/DataProcessors/Синхронизация/Forms/Форма.xml new file mode 100644 index 0000000..795d18c --- /dev/null +++ b/DataProcessors/Синхронизация/Forms/Форма.xml @@ -0,0 +1,23 @@ + + +
+ + Форма + + + ru + Форма + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + Any + + +
+
\ No newline at end of file diff --git a/DataProcessors/Синхронизация/Forms/Форма/Ext/Form.xml b/DataProcessors/Синхронизация/Forms/Форма/Ext/Form.xml new file mode 100644 index 0000000..bfdcf0f --- /dev/null +++ b/DataProcessors/Синхронизация/Forms/Форма/Ext/Form.xml @@ -0,0 +1,109 @@ + +
+ DontBlock + Vertical + + + + + + 5 + HorizontalIfPossible + Double + WeakSeparation + + + + + + + + + + cfg:DataProcessorObject.Синхронизация + + true + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Обновить номенклатуру</v8:content> + </v8:item> + + + + ru + Обновить номенклатуру + + + ОбновитьНоменклатуру + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Очистить номенклатуру</v8:content> + </v8:item> + + + + ru + Очистить номенклатуру + + + ОчиститьНоменклатуру + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Удалить помеченные</v8:content> + </v8:item> + + + + ru + Удалить помеченные + + + УдалитьПомеченные + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заполнить ПМ</v8:content> + </v8:item> + + + + ru + Заполнить ПМ + + + ЗаполнитьПМ + + + \ No newline at end of file diff --git a/DataProcessors/Синхронизация/Forms/Форма/Ext/Form/Module.bsl b/DataProcessors/Синхронизация/Forms/Форма/Ext/Form/Module.bsl new file mode 100644 index 0000000..c34e7c4 --- /dev/null +++ b/DataProcessors/Синхронизация/Forms/Форма/Ext/Form/Module.bsl @@ -0,0 +1,218 @@ + +&НаКлиенте +Процедура ОбновитьНоменклатуру(Команда) + ОбновитьНоменклатуруНаСервере(ПредопределенноеЗначение("Справочник.ИБ.ut11")); + ОбновитьНоменклатуруНаСервере(ПредопределенноеЗначение("Справочник.ИБ.tut11")); + ОбновитьМагазиныНаСервере(); + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьМагазиныНаСервере() +Подключение=ОмСлужебный.ПодключениеУТ(справочники.ИБ.ut11); +Запрос=Подключение.NewObject("Запрос"); +Запрос.Текст="ВЫБРАТЬ + | Партнеры.Ссылка КАК Ссылка + |ИЗ + | Справочник.Партнеры КАК Партнеры + |ГДЕ + | Партнеры.Магазин = Истина"; + + + ТЗ = Запрос.Выполнить().Выгрузить(); + Для каждого строкаТЗ из ТЗ цикл + СсылкаМаг=ПолучитьМагазин(строкаТЗ.ссылка,справочники.ИБ.ut11,подключение); + КонецЦикла; + Сообщить("Обновление магазинов завершено."); + +КонецПроцедуры + + +&НаСервере +Функция ПолучитьМагазин(ссылка,иб,подключение) + //Подключение=ОмСлужебный.ПодключениеУТ(иб); + #Если не МобильноеПриложениеСервер Тогда + уи=Подключение.String(ссылка.УникальныйИдентификатор()); + СсылкаМаг=Справочники.Магазины.ПолучитьСсылку(Новый УникальныйИдентификатор(уи)); + маг=СсылкаМаг.ПолучитьОбъект(); + ЕСли маг=неопределено Тогда + маг=Справочники.Магазины.СоздатьЭлемент(); + маг.УстановитьСсылкуНового(СсылкаМаг); + Иначе + маг=СсылкаМаг.ПолучитьОбъект(); + КонецЕСли; + маг.Наименование=Ссылка.Наименование; + маг.Логин=СтрРазделить(Ссылка.Наименование," ")[0]+СтрРазделить(Ссылка.Наименование," ")[1]; + маг.ОбменДанными.Загрузка=Истина; + //Сообщить(Ссылка.Наименование); + маг.Записать(); + Возврат маг.Ссылка; + #Иначе + Возврат Справочники.Магазины.ПустаяСсылка(); + #КонецЕСли +КонецФункции + + + + + +&НаСервере +Процедура ОбновитьНоменклатуруНаСервере(иб) +Подключение=ОмСлужебный.ПодключениеУТ(иб); +Запрос=Подключение.NewObject("Запрос"); +Запрос.Текст="ВЫБРАТЬ + | Номенклатура.Ссылка КАК Ссылка + |ИЗ + | Справочник.Номенклатура КАК Номенклатура + |ГДЕ + | Номенклатура.КодOffline > 0"; + + + ТЗ = Запрос.Выполнить().Выгрузить(); + Для каждого строкаТЗ из ТЗ цикл + СсылкаНом=ПолучитьНоменклатуру(строкаТЗ.ссылка,Подключение,иб); + КонецЦикла; + Сообщить("Обновление номенклатуры из" +иб+" завершено."); + +КонецПроцедуры + +&НаСервере +Функция ПолучитьНоменклатуру(ссылка,Подключение,иб) + #Если не МобильноеПриложениеСервер Тогда + уи=Подключение.String(ссылка.УникальныйИдентификатор()); + + СсылкаНом=Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(уи)); + ном=СсылкаНом.ПолучитьОбъект(); + ЕСли ном=неопределено Тогда + Если ссылка.ЭтоГруппа Тогда + Ном=Справочники.Номенклатура.СоздатьГруппу(); + Иначе + Ном=Справочники.Номенклатура.СоздатьЭлемент(); + КонецЕСли; + Ном.УстановитьСсылкуНового(СсылкаНом); + Иначе + Ном=СсылкаНом.ПолучитьОбъект(); + КонецЕСли; + Ном.Наименование=Ссылка.Наименование; + + + + Если Подключение.ЗначениеЗаполнено(Ссылка.Родитель) тогда + Если Ссылка.Родитель.ВыгружатьМагазины Тогда + Ном.Отображать=Истина; + Иначе + Ном.Отображать=Ложь; + КонецЕСли; + Ном.Родитель=ПолучитьНоменклатуру(Ссылка.Родитель,Подключение,иб); + КонецЕСли; + Если не ссылка.ЭтоГруппа Тогда + Ном.КодOffline=Ссылка.КодOffline; + Ном.Иб=иб; + Иначе + Если Ссылка.ВыгружатьМагазины Тогда + Ном.Отображать=истина; + Иначе + Ном.Отображать=Ложь; + КонецЕСли; + КонецЕСли; + Ном.Записать(); + Возврат Ном.Ссылка; + #Иначе + Возврат Справочники.Номенклатура.ПустаяСсылка(); + #КонецЕСли +КонецФункции + +&НаКлиенте +Процедура ОчиститьНоменклатуру(Команда) + ОчиститьНоменклатуруНаСервере(); +КонецПроцедуры + +&НаСервере +Процедура ОчиститьНоменклатуруНаСервере() + //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА + // Данный фрагмент построен конструктором. + // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Номенклатура.Ссылка КАК Ссылка + |ИЗ + | Справочник.Номенклатура КАК Номенклатура + | + |УПОРЯДОЧИТЬ ПО + | Номенклатура.Родитель"; + + РезультатЗапроса = Запрос.Выполнить(); + + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + //ном=Справочники.Номенклатура.СоздатьЭлемент(); + //ном.Удалить(); + ном=ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); + ном.Удалить(); + КонецЦикла; + + //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА + +КонецПроцедуры + +&НаСервере +Процедура УдалитьПомеченныеНаСервере() + //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА + // Данный фрагмент построен конструктором. + // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Заказ.Ссылка КАК Ссылка + |ИЗ + | Документ.Заказ КАК Заказ + |ГДЕ + | Заказ.ПометкаУдаления = Истина"; + + + + РезультатЗапроса = Запрос.Выполнить(); + + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + НАбор=РегистрыСведений.Корзина.СоздатьНаборЗаписей(); + Набор.Отбор.Заказ.Установить(ВыборкаДетальныеЗаписи.Ссылка); + Набор.Записать(); + Док=ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); + Док.Удалить(); + КонецЦикла; + + + +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьПомеченные(Команда) + УдалитьПомеченныеНаСервере(); +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПМ(Команда) + ЗаполнитьПМНаСервере(); +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьПМНаСервере() + Магазины=Справочники.Магазины.Выбрать(); + Пока Магазины.Следующий() Цикл + Пользователь=Справочники.Пользователи.НайтиПоНаименованию(Магазины.Ссылка.Логин,истина); + Если не значениеЗаполнено(пользователь) Тогда + Пользователь=Справочники.Пользователи.СоздатьЭлемент(); + Иначе пользователь=пользователь.Получитьобъект(); + КонецЕсли; + Пользователь.Наименование=Магазины.Логин; + Пользователь.Пароль=Магазины.Пароль; + Пользователь.Записать(); + КонецЦикла; + +КонецПроцедуры diff --git a/Documents/Заказ.xml b/Documents/Заказ.xml new file mode 100644 index 0000000..42052c2 --- /dev/null +++ b/Documents/Заказ.xml @@ -0,0 +1,391 @@ + + + + + + 33de7332-e92b-4327-8875-12609ba5861e + b3196357-4a16-4a8e-93d9-8b1eefeec86c + + + fecb66f8-52c5-4ef2-b761-5bb61e6e3aaa + 6d397ce4-2456-4e5c-a641-40c21b029c65 + + + b5776f30-84c6-4f0a-a141-60e884fd8081 + b6ce6c07-8116-4701-a10e-650e1e4cb062 + + + 0ce3eb36-86ec-4476-91e3-29680ef83383 + d45b56fe-de4d-4be1-9145-81bdfdf8dc62 + + + a5bbcfcd-832d-4c7f-9859-8b7dace45c8b + 73300ee7-8092-4b4a-83a2-d49451b2a424 + + + + Заказ + + + ru + Заказ + + + + true + + String + 5 + Variable + Nonperiodical + true + true + + + + Document.Заказ.StandardAttribute.Number + + Use + Begin + DontUse + Directly + Document.Заказ.Form.ФормаДокумента + Document.Заказ.Form.ФормаСписка + Document.Заказ.Form.ФормаВыбора + + + + Allow + Deny + AutoDeleteOnUnpost + WriteSelected + AutoFill + + true + true + false + + Managed + Use + + + + + + Auto + DontUse + false + false + + + + + Магазин + + + ru + Магазин + + + + + cfg:CatalogRef.Магазины + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Статус + + + ru + Статус + + + + + cfg:EnumRef.Статусы + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Автор + + + ru + Автор + + + + + cfg:CatalogRef.Пользователи + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Комментарий + + + ru + Комментарий + + + + + xs:string + + 240 + Variable + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Кассир + + + ru + Кассир + + + + + cfg:CatalogRef.Кассиры + + false + + + + false + + false + false + + + false + + ShowError + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + +
ФормаСписка
+
ФормаДокумента
+
ФормаВыбора
+ + + + 74992940-b4b2-48e2-ba72-6551ed664a7f + 20f50de9-a9f0-4f24-bbd6-c153ac6909f0 + + + 5a0b8160-8b4f-4bcf-ab2b-727c81b60df4 + 1c27c31a-49cb-4735-bf5b-831ccdd913b4 + + + + Товары + + + ru + Товары + + + + + DontCheck + 5 + + + + + Номенклатура + + + ru + Номенклатура + + + + + cfg:CatalogRef.Номенклатура + + false + + + + false + + false + false + + + DontCheck + Items + + + Use + Auto + Catalog.Номенклатура.Form.ФормаПодбора + + Auto + DontIndex + Use + Use + + + + + Количество + + + ru + Количество + + + + + xs:decimal + + 10 + 0 + Any + + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + +
+
+
\ No newline at end of file diff --git a/Documents/Заказ/Ext/ObjectModule.bsl b/Documents/Заказ/Ext/ObjectModule.bsl new file mode 100644 index 0000000..0cf3284 --- /dev/null +++ b/Documents/Заказ/Ext/ObjectModule.bsl @@ -0,0 +1,19 @@ +Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) + + Если не ОбменДанными.Загрузка Тогда + Если не Статус=Перечисления.Статусы.Отправлен Тогда + Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда + + Статус=Перечисления.Статусы.ГотовКотправке; + + + ИначеЕсли РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда + + Статус=Перечисления.Статусы.Вработе; + + + КонецЕСли; + КонецЕсли; + КонецЕСли; + +КонецПроцедуры \ No newline at end of file diff --git a/Documents/Заказ/Forms/ФормаВыбора.xml b/Documents/Заказ/Forms/ФормаВыбора.xml new file mode 100644 index 0000000..436ef9d --- /dev/null +++ b/Documents/Заказ/Forms/ФормаВыбора.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаВыбора + + + ru + Форма выбора + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + Any + +
+
\ No newline at end of file diff --git a/Documents/Заказ/Forms/ФормаВыбора/Ext/Form.xml b/Documents/Заказ/Forms/ФормаВыбора/Ext/Form.xml new file mode 100644 index 0000000..cd6c620 --- /dev/null +++ b/Documents/Заказ/Forms/ФормаВыбора/Ext/Form.xml @@ -0,0 +1,131 @@ + +
+ LockOwner + Vertical + + + ПриСозданииНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + false + Vertical + WeakSeparation + false + + + + List + None + true + true + Cell + ExpandTopLevel + true + Список + Список.DefaultPicture + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + СписокКомпоновщикНастроекПользовательскиеНастройки + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + + + + + + Список + SearchControl + + + + + + + Список.Date + true + + + + + Список.Number + + + + + Список.Статус + + + + + Список.Магазин + + + + +
+
+ + + + cfg:DynamicList + + true + + false + true + Document.Заказ + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + \ No newline at end of file diff --git a/Documents/Заказ/Forms/ФормаВыбора/Ext/Form/Module.bsl b/Documents/Заказ/Forms/ФормаВыбора/Ext/Form/Module.bsl new file mode 100644 index 0000000..e02abfc --- /dev/null +++ b/Documents/Заказ/Forms/ФормаВыбора/Ext/Form/Module.bsl @@ -0,0 +1 @@ + diff --git a/Documents/Заказ/Forms/ФормаДокумента.xml b/Documents/Заказ/Forms/ФормаДокумента.xml new file mode 100644 index 0000000..60c0d40 --- /dev/null +++ b/Documents/Заказ/Forms/ФормаДокумента.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаДокумента + + + ru + Форма документа + + + + Managed + false + + MobilePlatformApplication + + Any + +
+
\ No newline at end of file diff --git a/Documents/Заказ/Forms/ФормаДокумента/Ext/Form.xml b/Documents/Заказ/Forms/ФормаДокумента/Ext/Form.xml new file mode 100644 index 0000000..f368aca --- /dev/null +++ b/Documents/Заказ/Forms/ФормаДокумента/Ext/Form.xml @@ -0,0 +1,1126 @@ + +
+ DontBlock + false + false + Vertical + None + + Close + + false + false + false + CurrentOrLast + Auto + true + + false + + + ПослеЗаписи + ОбработкаВыбора + ОбработкаОповещения + ПриОткрытии + ПередЗакрытием + ПриСозданииНаСервере + ПриЗакрытии + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа кнопок формы</v8:content> + </v8:item> + + + + ru + Группа кнопок формы + + + true + Right + false + + + + Объект.Ref + None + 4 + false + + + + + + + + + + true + true + TabsOnTop + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты</v8:content> + </v8:item> + + true + true + true + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа шапка</v8:content> + </v8:item> + + true + false + false + + + + Объект.Статус + true + true + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа дата номер</v8:content> + </v8:item> + + + + ru + Группа дата номер + + + AlwaysHorizontal + false + + + + Объект.Date + EnterOnInput + true + true + + + + + Объект.Number + EnterOnInput + true + true + + + + + КоличествоТоваровВДокументе + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кол-во позиций</v8:content> + </v8:item> + + 3 + false + false + true + + + ru + ЧДЦ=0; ЧН=0; ЧГ= + + + style:AccentColor + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа кассир магазин</v8:content> + </v8:item> + + + + ru + Группа кассир магазин + + + AlwaysHorizontal + false + + + + Объект.Кассир + true + + + + + + + Объект.Магазин + EnterOnInput + true + true + + + + + Объект.Комментарий + 2 + true + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товары</v8:content> + </v8:item> + + true + true + false + + + + true + true + Vertical + None + false + false + + + + false + true + true + Vertical + WeakSeparation + false + + + + ВыбраннаяНоменклатураНаименование + None + Center + 4 + false + true + + + + + + true + Center + AlwaysHorizontal + Center + None + false + + + + + КоличествоРедактирования + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Количество</v8:content> + </v8:item> + + Top + Center + 12 + true + false + + + ru + ЧДЦ=0; ЧН=0; ЧГ= + + + + + ru + ЧДЦ=0; ЧН=0; ЧГ= + + + 0 + #2E7D32 + #FFF3E0 + + UseContentHeight + Done + + + + + + + + true + Bottom + AlwaysHorizontal + Center + None + false + + + + + + + + + + List + false + Top + true + false + 8 + UseHeightInFormRows + false + SingleRow + Row +
false
+ Объект.Товары + + Add + Copy + EndEdit + MoveDown + MoveUp + + None + HideItemsByImportance + true + List + false + + + + false + + + + + + + + + + Товары + SearchStringRepresentation + + + + + + + Товары + ViewStatusRepresentation + + + + + + + Товары + SearchControl + + + + + + ТоварыВыбор + ТоварыПередУдалением + ТоварыПриАктивизацииСтроки + ТоварыПередНачаломИзменения + ТоварыПриИзменении + + + + Объект.Товары.ИндексКартинкиВыдТов + false + true + None + 3 + 3 + false + + CommonPicture.ВыдТовСостояния + true + + + WithoutBorder + + + + + + true + + + + Horizontal + + + + Объект.Товары.LineNumber + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>№</v8:content> + </v8:item> + + EnterOnInput + true + 1 + false + true + style:ButtonBorderColor + + + + + + + + Center + Horizontal + + + + Объект.Товары.Номенклатура + None + EnterOnInput + true + 4 + false + true + false + + + + + + Объект.Товары.Количество + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кол-во</v8:content> + </v8:item> + + None + Center + EnterOnInput + Right + true + 8 + false + 4 + false + false + false + true + + + ru + ЧДЦ=0; ЧН=0; ЧГ= + + + + + ru + ЧДЦ=0; ЧН=0; ЧГ= + + + #2E7D32 + + UseContentHeight + Return + Enlarged + + + + ТоварыКоличествоПриИзменении + + + + + + + + + Объект.Товары.Номенклатура.КодOffline + Left + EnterOnInput + true + 1 + false + + + + + + + + + +
+ + false + true + false + Vertical + None + false + false + + + + СтрокаПоискаТоваров + None + false + 3 + false + true + false + true + + Search + + + ru + Поиск по названию... + + + + + + СтрокаПоискаТоваровПриИзменении + СтрокаПоискаТоваровИзменениеТекстаРедактирования + + + + + + List + Top + true + false + false + 8 + UseHeightInFormRows + false + SingleRow + Row +
false
+ СписокТоваров + PullFromTop + None + HideItemsByImportance + true + Cards + false + + + + false + + + + + + + + + + СписокТоваров + SearchStringRepresentation + + + + + + + СписокТоваров + ViewStatusRepresentation + + + + + + + СписокТоваров + SearchControl + + + + + + СписокТоваровВыбор + СписокТоваровПриАктивизацииСтроки + + + + СписокТоваров.Номенклатура + false + None + Extended + + + + + СписокТоваров.НомерСтроки + None + Left + Top + Extended + 1 + false + 1 + false + + + ru + ЧГ= + + + style:ButtonBorderColor + + + + + + + + + СписокТоваров.Наименование + true + None + Left + Extended + 5 + false + 5 + true + + + + + + + + + СписокТоваров.КодOfflineПредставление + None + Extended + true + #607D8B + + + + + + СписокТоваров.КоличествоПредставление + None + Right + Center + Right + Extended + 11 + 5 + false + #2E7D32 + #E8F5E9 + + + + + + + + + +
+
+
+
+
+
+
+
+ + + + cfg:DocumentObject.Заказ + + true + true + + Объект.RegisterRecords + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ВыдТов</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Индекс картинки</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дубль</v8:content> + </v8:item> + + + xs:boolean + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Количество</v8:content> + </v8:item> + + + xs:decimal + + 10 + 0 + Nonnegative + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кол-во товаров</v8:content> + </v8:item> + + + xs:decimal + + 10 + 0 + Nonnegative + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поиск</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список товаров</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>№</v8:content> + </v8:item> + + + xs:decimal + + 5 + 0 + Nonnegative + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>КодOffline</v8:content> + </v8:item> + + + xs:decimal + + 10 + 0 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Количество</v8:content> + </v8:item> + + + xs:decimal + + 10 + 0 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Количество</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подобрать</v8:content> + </v8:item> + + + + ru + Подобрать + + + Подобрать + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Готово</v8:content> + </v8:item> + + ПодтвердитьКоличество + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отмена</v8:content> + </v8:item> + + ОтменитьКоличество + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>+</v8:content> + </v8:item> + + УвеличитьКоличество + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>-</v8:content> + </v8:item> + + УменьшитьКоличество + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выделить товары</v8:content> + </v8:item> + + ВыделитьТовары + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Удалить выделенные товары</v8:content> + </v8:item> + + УдалитьВыделенныеТовары + + + \ No newline at end of file diff --git a/Documents/Заказ/Forms/ФормаДокумента/Ext/Form/Module.bsl b/Documents/Заказ/Forms/ФормаДокумента/Ext/Form/Module.bsl new file mode 100644 index 0000000..148cfad --- /dev/null +++ b/Documents/Заказ/Forms/ФормаДокумента/Ext/Form/Module.bsl @@ -0,0 +1,827 @@ + +&НаКлиенте +Перем СтрокаТоваровДляРедактирования; +&НаКлиенте +Перем БлокироватьОткрытиеПанелиКоличества; +&НаКлиенте +Перем РежимВыделенияТоваров; +&НаКлиенте +Перем БлокироватьПереключениеВыдТов; + +&НаКлиенте +Процедура ПослеЗаписи(ПараметрыЗаписи) + ////ПослеЗаписиНаСервере(); +КонецПроцедуры + +&НаСервере +Процедура ПослеЗаписиНаСервере() + + тзиб=новый таблицазначений; + тзиб.Колонки.Добавить("иб",новый ОписаниеТипов("СправочникСсылка.ИБ")); + Для каждого стр из Объект.Товары цикл + эл=тзиб.Добавить(); + эл.иб=стр.номенклатура.ИБ; + КонецЦикла; + тзиб.Свернуть("иб"); + Для каждого стр из тзиб цикл + Подключение=ОмСлужебный.ПодключениеУТ(стр.иб); + Док=Подключение.Документы.ЗаказКлиента.НайтиПоНомеру("МГ"+Объект.Номер,Объект.Дата); + Если Подключение.ЗначениеЗаполнено(Док) тогда + Док=Док.ПолучитьОбъект(); + Иначе + Док=Подключение.Документы.ЗаказКлиента.СоздатьДокумент(); + КонецЕСли; + Док.Товары.Очистить(); + Для каждого стр из Объект.Товары цикл + тов=Док.Товары.Добавить(); + уид=Подключение.NewObject("УникальныйИдентификатор",Строка(стр.номенклатура.УникальныйИдентификатор())); + тов.Номенклатура=Подключение.Справочники.Номенклатура.ПолучитьСсылку(уид); + тов.Количество=стр.Количество; + тов.КоличествоУпаковок=тов.Количество; + КонецЦикла; + Док.Дата=Объект.Дата; + Док.Номер="МГ-"+Объект.Номер; + Док.ОбменДанными.Загрузка = Истина; + Док.записать(); + КонецЦикла; + + +КонецПроцедуры + +&НаКлиенте +Процедура Подобрать(Команда) + Записать(); + // После копирования ТЧ есть в документе, а в регистре Корзина для новой ссылки — пусто. + // Без синхронизации ЗаполнитьТЗ() после подбора затрёт скопированные строки. + СинхронизироватьКорзинуИзТоваровНаСервере(); + Параметр = Новый Структура("Заказ",Объект.Ссылка); + ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.Форма.ФормаПодбора",Параметр); + ФормаВыбора.Открыть(); +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + Если ИмяСобытия="ЗакрытиеПодбора" Тогда + ЗаполнитьТЗ(); + КонецЕСли; +КонецПроцедуры + + +&НаКлиенте +Процедура ЗаполнитьТЗ() + + ЗаполнитьТЗНаСервере(); + ОбновитьОтображениеТоваров(); + СкрытьРежимВыделенияТоваров(); + ЗаполнитьСписокТоваровИзТЧ(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьОтображениеТоваров() + + ОбновитьИндексыКартинкиВыдТов(); + ОбновитьКоличествоТоваровВДокументе(); +// ОбновитьПометкиДублейТоваров(); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьСписокТоваровИзТЧ() + + ЗаполнитьСписокТоваровИзТЧНаСервере(СтрокаПоискаТоваров); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьСписокТоваровИзТЧНаСервере(СтрокаПоиска = "") + + СинхронизироватьКорзинуИзТоваровНаСервере(); + + СписокТоваров.Очистить(); + + СловаПоиска = Новый Массив; + Для Каждого Часть Из СтрРазделить(СокрЛП(СтрокаПоиска), " ", Ложь) Цикл + Если Не ПустаяСтрока(Часть) Тогда + СловаПоиска.Добавить(ВРег(СокрЛП(Часть))); + КонецЕсли; + КонецЦикла; + + Для Каждого СтрокаТоваров Из Объект.Товары Цикл + + Если Не ЗначениеЗаполнено(СтрокаТоваров.Номенклатура) Тогда + Продолжить; + КонецЕсли; + + Наименование = СтрокаТоваров.Номенклатура.Наименование; + КодOffline = СтрокаТоваров.Номенклатура.КодOffline; + + Если СловаПоиска.Количество() > 0 Тогда + + ТекстПоиска = ВРег(Наименование + " " + Формат(КодOffline, "ЧГ=")); + Подходит = Истина; + + Для Каждого Слово Из СловаПоиска Цикл + Если СтрНайти(ТекстПоиска, Слово) = 0 Тогда + Подходит = Ложь; + Прервать; + КонецЕсли; + КонецЦикла; + + Если Не Подходит Тогда + Продолжить; + КонецЕсли; + + КонецЕсли; + + СтрокаСписка = СписокТоваров.Добавить(); + СтрокаСписка.НомерСтроки = СтрокаТоваров.НомерСтроки; + СтрокаСписка.Номенклатура = СтрокаТоваров.Номенклатура; + СтрокаСписка.Наименование = Наименование; + СтрокаСписка.КодOffline = КодOffline; + СтрокаСписка.Количество = СтрокаТоваров.Количество; + СтрокаСписка.КоличествоПредставление = "× " + + Формат(СтрокаТоваров.Количество, "ЧДЦ=0; ЧН=0; ЧГ="); + Если ЗначениеЗаполнено(КодOffline) Тогда + СтрокаСписка.КодOfflineПредставление = "код offline: " + Формат(КодOffline, "ЧДЦ=0; ЧН=0; ЧГ="); + Иначе + СтрокаСписка.КодOfflineПредставление = ""; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура НастроитьСписокТоваровНаСервере() + + ЗаполнитьСписокТоваровИзТЧНаСервере(""); + +КонецПроцедуры + +&НаКлиенте +Процедура СтрокаПоискаТоваровПриИзменении(Элемент) + + ЗаполнитьСписокТоваровИзТЧ(); + +КонецПроцедуры + +&НаКлиенте +Процедура СтрокаПоискаТоваровИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка) + + СтрокаПоискаТоваров = Текст; + ЗаполнитьСписокТоваровИзТЧ(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьПометкиДублейТоваров() + + СчетчикНоменклатуры = Новый Соответствие; + + Для Каждого СтрокаТоваров Из Объект.Товары Цикл + СтрокаТоваров.ДубльТов = Ложь; + + Если Не ЗначениеЗаполнено(СтрокаТоваров.Номенклатура) Тогда + Продолжить; + КонецЕсли; + + КлючНоменклатуры = Строка(СтрокаТоваров.Номенклатура.УникальныйИдентификатор()); + Количество = СчетчикНоменклатуры.Получить(КлючНоменклатуры); + + Если Количество = Неопределено Тогда + СчетчикНоменклатуры.Вставить(КлючНоменклатуры, 1); + Иначе + СчетчикНоменклатуры.Вставить(КлючНоменклатуры, Количество + 1); + КонецЕсли; + + КонецЦикла; + + Для Каждого СтрокаТоваров Из Объект.Товары Цикл + + Если Не ЗначениеЗаполнено(СтрокаТоваров.Номенклатура) Тогда + Продолжить; + КонецЕсли; + + КлючНоменклатуры = Строка(СтрокаТоваров.Номенклатура.УникальныйИдентификатор()); + КоличествоВхождений = СчетчикНоменклатуры.Получить(КлючНоменклатуры); + Если КоличествоВхождений = Неопределено Тогда + КоличествоВхождений = 0; + КонецЕсли; + СтрокаТоваров.ДубльТов = КоличествоВхождений > 1; + + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьКоличествоТоваровВДокументе() + // Убираем количество товаров, выводим количество строк + //Итого = 0; + // + //Для Каждого СтрокаТоваров Из Объект.Товары Цикл + // Итого = Итого + СтрокаТоваров.Количество; + //КонецЦикла; + + КоличествоТоваровВДокументе = Объект.Товары.Количество(); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьТЗНаСервере() + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Корзина.Номенклатура КАК Номенклатура, + | СУММА(Корзина.Количество) КАК Количество + |ИЗ + | РегистрСведений.Корзина КАК Корзина + |ГДЕ + | Корзина.Заказ = &Заказ + | + |СГРУППИРОВАТЬ ПО + | Корзина.Номенклатура + | + |УПОРЯДОЧИТЬ ПО + | МИНИМУМ(Корзина.ДатаДобавления)"; + Запрос.УстановитьПараметр("Заказ", Объект.Ссылка); + РезультатЗапроса = Запрос.Выполнить().Выгрузить(); + Объект.Товары.Загрузить(РезультатЗапроса); + Модифицированность = Истина; +КонецПроцедуры + +&НаСервере +Процедура НастроитьОформлениеСпискаТоваров() + + // Жирный, размер 34 + Элементы.СписокТоваровНоменклатура.Шрифт = Новый Шрифт(, 34, Истина); + + // Цвета тоже можно задать программно + Элементы.СписокТоваровКоличество.ЦветТекста = Новый Цвет(46, 125, 50); // #2E7D32 + Элементы.СписокТоваровКоличество.ЦветФона = Новый Цвет(232, 245, 233); // #E8F5E9 + + // Увеличить относительно текущего шрифта элемента (масштаб в %) + // Элементы.СписокТоваровКоличество.Шрифт = + // Новый Шрифт(Элементы.СписокТоваровКоличество.Шрифт,,,,,,, 150); + +КонецПроцедуры + + +&НаСервере +Процедура СинхронизироватьКорзинуИзТоваровНаСервере() + + Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда + Возврат; + КонецЕсли; + + НаборЗаписей = РегистрыСведений.Корзина.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.Заказ.Установить(Объект.Ссылка); + + ДатаДобавления = ТекущаяДата(); + НомерСтроки = 0; + + Для Каждого СтрокаТоваров Из Объект.Товары Цикл + + Если Не ЗначениеЗаполнено(СтрокаТоваров.Номенклатура) + Или СтрокаТоваров.Количество <= 0 Тогда + Продолжить; + КонецЕсли; + + НомерСтроки = НомерСтроки + 1; + Запись = НаборЗаписей.Добавить(); + Запись.Заказ = Объект.Ссылка; + Запись.Номенклатура = СтрокаТоваров.Номенклатура; + Запись.Количество = СтрокаТоваров.Количество; + Запись.ДатаДобавления = ДатаДобавления + НомерСтроки; + + КонецЦикла; + + НаборЗаписей.Записать(); + +КонецПроцедуры + + +&НаКлиенте +Процедура ТоварыПередУдалением(Элемент, Отказ) + + УдалитьИзКорзиныНаСервере(Элементы.Товары.ТекущиеДанные.Номенклатура); + +КонецПроцедуры + +&НаКлиенте +Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + Если РежимВыделенияТоваровАктивен() Тогда + + Если СтандартнаяОбработка <> Неопределено Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; + + Возврат; + КонецЕсли; + + ОткрытьРедактированиеКоличестваПоСтроке(ВыбраннаяСтрока, СтандартнаяОбработка, Ложь); + +КонецПроцедуры + +&НаКлиенте +Процедура ТоварыПриАктивизацииСтроки(Элемент) + + ОбработатьАктивизациюСтрокиТоваров(Элементы.Товары.ТекущаяСтрока, Ложь); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокТоваровВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + Если РежимВыделенияТоваровАктивен() Тогда + // На мобильном тап приходит в Выбор, а не в активизацию. + // В режиме выделения переключаем пометку строки ТЧ. + Если СтандартнаяОбработка <> Неопределено Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; + ПереключитьВыдТовСтроки(ВыбраннаяСтрока, Истина); + Возврат; + КонецЕсли; + + ОткрытьРедактированиеКоличестваПоСтроке(ВыбраннаяСтрока, СтандартнаяОбработка, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокТоваровПриАктивизацииСтроки(Элемент) + + // В режиме выделения переключение делается в СписокТоваровВыбор (мобильный клиент). + Если РежимВыделенияТоваровАктивен() Тогда + Возврат; + КонецЕсли; + + ОбработатьАктивизациюСтрокиТоваров(Элементы.СписокТоваров.ТекущаяСтрока, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработатьАктивизациюСтрокиТоваров(ИдентификаторСтроки, ИзСписка) + + Если РежимВыделенияТоваровАктивен() Тогда + + // Для скрытой ТЧ (если вдруг видна) — по активизации. + Если Не ИзСписка И Не БлокироватьПереключениеВыдТов Тогда + ПереключитьВыдТовСтроки(ИдентификаторСтроки, ИзСписка); + КонецЕсли; + + Возврат; + КонецЕсли; + + Если БлокироватьОткрытиеПанелиКоличества Тогда + Возврат; + КонецЕсли; + + ОткрытьРедактированиеКоличестваПоСтроке(ИдентификаторСтроки, Неопределено, ИзСписка); + +КонецПроцедуры + +&НаКлиенте +Процедура ПереключитьВыдТовСтроки(ИдентификаторСтроки, ИзСписка = Ложь) + + ДанныеСтроки = ПолучитьДанныеСтрокиТоваров(ИдентификаторСтроки, ИзСписка); + Если ДанныеСтроки = Неопределено Тогда + Возврат; + КонецЕсли; + + ДанныеСтроки.ВыдТов = Не ДанныеСтроки.ВыдТов; + УстановитьИндексКартинкиВыдТов(ДанныеСтроки); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьИндексКартинкиВыдТов(СтрокаТоваров) + + // 0 — левая половина (выбрано), 1 — правая (не выбрано) + Если СтрокаТоваров.ВыдТов Тогда + СтрокаТоваров.ИндексКартинкиВыдТов = 0; + Иначе + СтрокаТоваров.ИндексКартинкиВыдТов = 1; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьИндексыКартинкиВыдТов() + + Для Каждого СтрокаТоваров Из Объект.Товары Цикл + УстановитьИндексКартинкиВыдТов(СтрокаТоваров); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Функция РежимВыделенияТоваровАктивен() + + Возврат РежимВыделенияТоваров = Истина; + +КонецФункции + +&НаКлиенте +Процедура ВыделитьТовары(Команда) + + Если РежимВыделенияТоваровАктивен() Тогда + СкрытьРежимВыделенияТоваров(); + Иначе + ПоказатьРежимВыделенияТоваров(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПоказатьРежимВыделенияТоваров() + + // На мобильном динсписок не даёт нормального множественного выделения с галочками. + // В режиме выделения показываем ТЧ Товары с колонкой ВыдТов (как раньше). + РежимВыделенияТоваров = Истина; + Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаТовары; + Элементы.ПанельПоискаТоваров.Видимость = Ложь; + Элементы.СписокТоваров.Видимость = Ложь; + Элементы.Товары.Видимость = Истина; + Элементы.ТоварыВыдТов.Видимость = Истина; + Элементы.ТоварыВыделить.Пометка = Истина; + Элементы.СписокТоваровВыделить.Пометка = Истина; + ОбновитьВидимостьКнопкиУдаленияВыделенных(Истина); + БлокироватьПереключениеВыдТов = Истина; + ПодключитьОбработчикОжидания("РазблокироватьПереключениеВыдТов", 0.3, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура СкрытьРежимВыделенияТоваров() + + БлокироватьОткрытиеПанелиКоличества = Истина; + РежимВыделенияТоваров = Ложь; + Элементы.ТоварыВыдТов.Видимость = Ложь; + Элементы.ТоварыВыделить.Пометка = Ложь; + Элементы.СписокТоваровВыделить.Пометка = Ложь; + ОбновитьВидимостьКнопкиУдаленияВыделенных(Ложь); + СброситьВыдТов(); + + Если Не Элементы.ПанельКоличества.Видимость Тогда + Элементы.Товары.Видимость = Ложь; + Элементы.СписокТоваров.Видимость = Истина; + Элементы.ПанельПоискаТоваров.Видимость = Ложь; + КонецЕсли; + + ОтключитьОбработчикОжидания("РазблокироватьОткрытиеПанелиКоличества"); + ПодключитьОбработчикОжидания("РазблокироватьОткрытиеПанелиКоличества", 0.5, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьВидимостьКнопкиУдаленияВыделенных(ВидимостьКнопки) + + Элементы.ТоварыУдалитьВыделенные.Видимость = ВидимостьКнопки; + Элементы.СписокТоваровУдалитьВыделенные.Видимость = ВидимостьКнопки; + +КонецПроцедуры + +&НаКлиенте +Процедура СброситьВыдТов() + + Для Каждого СтрокаТоваров Из Объект.Товары Цикл + СтрокаТоваров.ВыдТов = Ложь; + УстановитьИндексКартинкиВыдТов(СтрокаТоваров); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьВыделенныеТовары(Команда) + + СтрокиКУдалению = Новый Массив; + + Для Каждого СтрокаТоваров Из Объект.Товары Цикл + Если СтрокаТоваров.ВыдТов Тогда + СтрокиКУдалению.Добавить(СтрокаТоваров); + КонецЕсли; + КонецЦикла; + + Если СтрокиКУдалению.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Для Каждого СтрокаТоваров Из СтрокиКУдалению Цикл + УдалитьИзКорзиныНаСервере(СтрокаТоваров.Номенклатура); + Объект.Товары.Удалить(СтрокаТоваров); + КонецЦикла; + + Модифицированность = Истина; + ОбновитьОтображениеТоваров(); + СкрытьРежимВыделенияТоваров(); + ЗаполнитьСписокТоваровИзТЧ(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьРедактированиеКоличестваПоСтроке(ИдентификаторСтроки, СтандартнаяОбработка, ИзСписка = Ложь) + + Если ЭтаФорма.ТолькоПросмотр + Или Элементы.ПанельКоличества.Видимость + Или БлокироватьОткрытиеПанелиКоличества + Или РежимВыделенияТоваровАктивен() Тогда + Возврат; + КонецЕсли; + + ДанныеСтроки = ПолучитьДанныеСтрокиТоваров(ИдентификаторСтроки, ИзСписка); + Если ДанныеСтроки = Неопределено Или Не ЗначениеЗаполнено(ДанныеСтроки.Номенклатура) Тогда + Возврат; + КонецЕсли; + + Если СтандартнаяОбработка <> Неопределено Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; + + ПоказатьПанельКоличества(ДанныеСтроки); + +КонецПроцедуры + +&НаСервере +Процедура УдалитьИзКорзиныНаСервере(ном) + НаборЗаписей = РегистрыСведений.Корзина.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.Номенклатура.Установить(ном); + НаборЗаписей.Отбор.Заказ.Установить(Объект.Ссылка); + НаборЗаписей.Записать(); +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьНаСервере(ном,кол) + Если Не ЗначениеЗаполнено(ном) Тогда + Возврат; + КонецЕсли; + + Если кол <= 0 Тогда + УдалитьИзКорзиныНаСервере(ном); + Возврат; + КонецЕсли; + + Запись=РегистрыСведений.Корзина.СоздатьМенеджерЗаписи(); + Запись.Номенклатура=ном; + Запись.Заказ=Объект.Ссылка; + Запись.Количество=кол; + Запись.ДатаДобавления=ТекущаяДата(); + Запись.Записать(); +КонецПроцедуры + +&НаКлиенте +Процедура ТоварыКоличествоПриИзменении(Элемент) + ЗаписатьНаСервере(Элементы.Товары.ТекущиеДанные.Номенклатура,Элементы.Товары.ТекущиеДанные.Количество); +КонецПроцедуры + +&НаКлиенте +Процедура ТоварыПередНачаломИзменения(Элемент, Отказ) + + Если РежимВыделенияТоваровАктивен() Тогда + Возврат; + КонецЕсли; + + Отказ = Истина; + +КонецПроцедуры + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + Если не значениеЗаполнено(ПараметрыСеанса.ТекущийМагазин) Тогда + Сообщить("Не выбран ТекущийМагазин!"); + Отказ=Истина; + КонецЕсли; + + Если Параметры.Ключ.Пустая() Тогда + Объект.Магазин=ПараметрыСеанса.ТекущийМагазин; + Объект.Статус=Перечисления.Статусы.Вработе; + Объект.Автор=ОмСлужебный.ТекущийПользователь(); + КонецЕсли; + + НастроитьСписокТоваровНаСервере(); + +// НастроитьОформлениеСпискаТоваров(); +// УстановитьУсловноеОформлениеДублейТоваров(); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьУсловноеОформлениеДублейТоваров() + + ЭлементУО = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = ЭлементУО.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Объект.Товары"); + + ОтборЭлемента = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ДубльТов"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + ОтборЭлемента.Использование = Истина; + + ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255, 235, 238)); + ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветТекста", Новый Цвет(183, 28, 28)); + +КонецПроцедуры + +&НаКлиенте +Процедура ТоварыПриИзменении(Элемент) + + Если РежимВыделенияТоваровАктивен() Тогда + Возврат; + КонецЕсли; + + Если ЗначениеЗаполнено(Элементы.Товары.ТекущиеДанные) Тогда + ЗаписатьНаСервере(Элементы.Товары.ТекущиеДанные.Номенклатура, Элементы.Товары.ТекущиеДанные.Количество); + КонецЕсли; + + ОбновитьОтображениеТоваров(); + ЗаполнитьСписокТоваровИзТЧ(); + +КонецПроцедуры + +&НаКлиенте +Функция ПолучитьДанныеСтрокиТоваров(ИдентификаторСтроки, ИзСписка = Ложь) + + Если ИзСписка Тогда + + НоменклатураПоиска = Неопределено; + + Если ИдентификаторСтроки <> Неопределено Тогда + СтрокаСписка = СписокТоваров.НайтиПоИдентификатору(ИдентификаторСтроки); + Если СтрокаСписка <> Неопределено Тогда + НоменклатураПоиска = СтрокаСписка.Номенклатура; + КонецЕсли; + КонецЕсли; + + Если Не ЗначениеЗаполнено(НоменклатураПоиска) Тогда + ТекущиеДанныеСписка = Элементы.СписокТоваров.ТекущиеДанные; + Если ТекущиеДанныеСписка <> Неопределено Тогда + НоменклатураПоиска = ТекущиеДанныеСписка.Номенклатура; + КонецЕсли; + КонецЕсли; + + Если Не ЗначениеЗаполнено(НоменклатураПоиска) Тогда + Возврат Неопределено; + КонецЕсли; + + Для Каждого СтрокаДокумента Из Объект.Товары Цикл + Если СтрокаДокумента.Номенклатура = НоменклатураПоиска Тогда + Возврат СтрокаДокумента; + КонецЕсли; + КонецЦикла; + + Возврат Неопределено; + + КонецЕсли; + + Если ИдентификаторСтроки <> Неопределено Тогда + СтрокаТоваров = Объект.Товары.НайтиПоИдентификатору(ИдентификаторСтроки); + Если СтрокаТоваров <> Неопределено Тогда + Возврат СтрокаТоваров; + КонецЕсли; + КонецЕсли; + + ТекущиеДанные = Элементы.Товары.ТекущиеДанные; + Если ТекущиеДанные <> Неопределено И ЗначениеЗаполнено(ТекущиеДанные.Номенклатура) Тогда + Возврат ТекущиеДанные; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +&НаКлиенте +Процедура ПоказатьПанельКоличества(ДанныеСтроки) + + СтрокаТоваровДляРедактирования = ДанныеСтроки; + ВыбраннаяНоменклатураНаименование = ПолучитьНаименованиеНоменклатурыНаСервере(ДанныеСтроки.Номенклатура); + КоличествоРедактирования = ДанныеСтроки.Количество; + + Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаТовары; + Элементы.СтраницаРеквизиты.Видимость = Ложь; + Элементы.ПанельПоискаТоваров.Видимость = Ложь; + Элементы.Товары.Видимость = Ложь; + Элементы.СписокТоваров.Видимость = Ложь; + Элементы.ПанельКоличества.Видимость = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура СкрытьПанельКоличества() + + БлокироватьОткрытиеПанелиКоличества = Истина; + Элементы.ПанельКоличества.Видимость = Ложь; + Элементы.СтраницаРеквизиты.Видимость = Истина; + Элементы.Товары.Видимость = Ложь; + Элементы.СписокТоваров.Видимость = Истина; + Элементы.ПанельПоискаТоваров.Видимость = Ложь; + Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаТовары; + СтрокаТоваровДляРедактирования = Неопределено; + ВыбраннаяНоменклатураНаименование = ""; + КоличествоРедактирования = 0; + СкрытьРежимВыделенияТоваров(); + ПодключитьОбработчикОжидания("РазблокироватьОткрытиеПанелиКоличества", 0.3, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура РазблокироватьОткрытиеПанелиКоличества() + + БлокироватьОткрытиеПанелиКоличества = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура РазблокироватьПереключениеВыдТов() + + БлокироватьПереключениеВыдТов = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодтвердитьКоличество(Команда) + + Если СтрокаТоваровДляРедактирования = Неопределено Тогда + Возврат; + КонецЕсли; + + СтрокаТоваровДляРедактирования.Количество = КоличествоРедактирования; + ЗаписатьНаСервере(СтрокаТоваровДляРедактирования.Номенклатура, КоличествоРедактирования); + + Если КоличествоРедактирования <= 0 Тогда + Объект.Товары.Удалить(СтрокаТоваровДляРедактирования); + КонецЕсли; + + ОбновитьОтображениеТоваров(); + СкрытьПанельКоличества(); + ЗаполнитьСписокТоваровИзТЧ(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОтменитьКоличество(Команда) + + СкрытьПанельКоличества(); + +КонецПроцедуры + +&НаКлиенте +Процедура УвеличитьКоличество(Команда) + + КоличествоРедактирования = КоличествоРедактирования + 1; + +КонецПроцедуры + +&НаКлиенте +Процедура УменьшитьКоличество(Команда) + + Если КоличествоРедактирования > 0 Тогда + КоличествоРедактирования = КоличествоРедактирования - 1; + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ПолучитьНаименованиеНоменклатурыНаСервере(Номенклатура) + + Возврат Номенклатура.Наименование; + +КонецФункции + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + СтрокаТоваровДляРедактирования = Неопределено; + РежимВыделенияТоваров = Ложь; + БлокироватьОткрытиеПанелиКоличества = Истина; + Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаТовары; + Элементы.СтраницаРеквизиты.Видимость = Истина; + Элементы.Товары.Видимость = Ложь; + Элементы.СписокТоваров.Видимость = Истина; + Элементы.ПанельПоискаТоваров.Видимость = Ложь; + Элементы.ТоварыВыдТов.Видимость = Ложь; + Элементы.ТоварыВыделить.Пометка = Ложь; + Элементы.СписокТоваровВыделить.Пометка = Ложь; + ОбновитьВидимостьКнопкиУдаленияВыделенных(Ложь); + ОбновитьОтображениеТоваров(); + ЗаполнитьСписокТоваровИзТЧ(); + ПодключитьОбработчикОжидания("РазблокироватьОткрытиеПанелиКоличества", 0.5, Истина); + + Если Объект.Статус=ПредопределенноеЗначение("Перечисление.Статусы.Отправлен") Тогда + ЭтаФорма.ТолькоПросмотр=Истина; + КонецЕСли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗакрытии(ЗавершениеРаботы) + + ОтключитьОбработчикОжидания("РазблокироватьОткрытиеПанелиКоличества"); + ОтключитьОбработчикОжидания("РазблокироватьПереключениеВыдТов"); + +КонецПроцедуры + + + + diff --git a/Documents/Заказ/Forms/ФормаСписка.xml b/Documents/Заказ/Forms/ФормаСписка.xml new file mode 100644 index 0000000..381d4d8 --- /dev/null +++ b/Documents/Заказ/Forms/ФормаСписка.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаСписка + + + ru + Форма списка + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + Any + +
+
\ No newline at end of file diff --git a/Documents/Заказ/Forms/ФормаСписка/Ext/Form.xml b/Documents/Заказ/Forms/ФормаСписка/Ext/Form.xml new file mode 100644 index 0000000..adec973 --- /dev/null +++ b/Documents/Заказ/Forms/ФормаСписка/Ext/Form.xml @@ -0,0 +1,299 @@ + +
+ DontBlock + Use + Vertical + + + ПриЗагрузкеДанныхИзНастроекНаСервере + ПриСозданииНаСервере + + + + Магазин + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Магазин</v8:content> + </v8:item> + + + true + Catalog.Магазины.Form.ФормаВыбора + + + Маказины + Маказины + Clear + + + + + + ТекущийМагазинПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + false + Vertical + WeakSeparation + false + + + + List + None + true + Cell + ExpandTopLevel + true + Список + Список.DefaultPicture + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + СписокКомпоновщикНастроекПользовательскиеНастройки + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + + + + + + Список + SearchControl + + + + + + + + + + Список.Дата + true + + + + + Список.Номер + + + + + + + + + + Список.Магазин + + + + + Список.Комментарий + true + + + + + + + Список.Статус + + + + +
+
+ + + + cfg:DynamicList + + true + + true + true + ВЫБРАТЬ + ДокументЗаказ.Ссылка КАК Ссылка, + ДокументЗаказ.ПометкаУдаления КАК ПометкаУдаления, + ДокументЗаказ.Номер КАК Номер, + ДокументЗаказ.Дата КАК Дата, + ДокументЗаказ.Проведен КАК Проведен, + ДокументЗаказ.Магазин КАК Магазин, + ДокументЗаказ.Товары.( + Ссылка КАК Ссылка, + НомерСтроки КАК НомерСтроки, + Номенклатура КАК Номенклатура, + Количество КАК Количество + ) КАК Товары, + ДокументЗаказ.МоментВремени КАК МоментВремени, + ДокументЗаказ.Статус КАК Статус, + ДокументЗаказ.Комментарий КАК Комментарий +ИЗ + Документ.Заказ КАК ДокументЗаказ +ГДЕ + ДокументЗаказ.Магазин В(&Магазины) + + Ссылка + Ссылка + + + Номер + Номер + + + Проведен + Проведен + + + ПометкаУдаления + ПометкаУдаления + + + Товары.Номенклатура + Товары.Номенклатура + + + Дата + Дата + + + Магазин + Магазин + + + Товары.Ссылка + Товары.Ссылка + + + Товары.НомерСтроки + Товары.НомерСтроки + + + Товары.Количество + Товары.Количество + + + Товары + Товары + + + МоментВремени + МоментВремени + + + Статус + Статус + + + Автор + Автор + + + Комментарий + Комментарий + + + Кассир + Кассир + + + Магазины + + + ru + Магазины + + + + cfg:CatalogRef.Магазины + + + true + true + + Document.Заказ + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Маказины</v8:content> + </v8:item> + + + v8:ValueListType + + + cfg:CatalogRef.Магазины + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Магазин</v8:content> + </v8:item> + + + cfg:CatalogRef.Магазины + + + Магазин + + + + \ No newline at end of file diff --git a/Documents/Заказ/Forms/ФормаСписка/Ext/Form/Module.bsl b/Documents/Заказ/Forms/ФормаСписка/Ext/Form/Module.bsl new file mode 100644 index 0000000..05df4f5 --- /dev/null +++ b/Documents/Заказ/Forms/ФормаСписка/Ext/Form/Module.bsl @@ -0,0 +1,276 @@ + +&НаСервере +Процедура МагазиныПриИзмененииНаСервере() + +КонецПроцедуры + +&НаКлиенте +Процедура МагазиныПриИзменении(Элемент) + МагазиныПриИзмененииНаСервере(); +КонецПроцедуры + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + СписокМагазинов=Новый СписокЗначений(); + Пользователь=ОмСлужебный.ТекущийПользователь(); + + //Магазин=ОмСлужебный.ТекущийМагазин(); + //Если ЗначениеЗаполнено(Магазин) Тогда + // СписокМагазинов.Добавить(Магазин); + //Иначе + // //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА + //// Данный фрагмент построен конструктором. + //// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! + // + //Запрос = Новый Запрос; + //Запрос.Текст = + // "ВЫБРАТЬ + // | Магазины.Ссылка КАК Ссылка + // |ИЗ + // | Справочник.Магазины КАК Магазины"; + // + //РезультатЗапроса = Запрос.Выполнить(); + // + //ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + // + //Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + // СписокМагазинов.Добавить(ВыборкаДетальныеЗаписи.Ссылка); + //КонецЦикла; + // + + + + Если не ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Содержит(Метаданные.Роли.Администратор) Тогда + Для каждого маг из пользователь.магазины цикл + СписокМагазинов.Добавить(маг.Магазин); + КонецЦикла; + Иначе + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Магазины.Ссылка КАК Ссылка + |ИЗ + | Справочник.Магазины КАК Магазины"; + + РезультатЗапроса = Запрос.Выполнить(); + + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + СписокМагазинов.Добавить(ВыборкаДетальныеЗаписи.Ссылка); + КонецЦикла; + + + КонецЕсли; + + +Список.Параметры.УстановитьЗначениеПараметра("Магазины",СписокМагазинов); + +КонецПроцедуры + +&НаСервере +Процедура ТекущийМагазинПриИзмененииНаСервере() + // Вставить содержимое обработчика. + ПараметрыСеанса.ТекущийМагазин=Магазин; + // Взято из БСП + // ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка + УстановитьЭлементОтбораДинамическогоСписка(Список, "Магазин", Магазин, ВидСравненияКомпоновкиДанных.Равно, , ЗначениеЗаполнено(Магазин)); +КонецПроцедуры + +&НаКлиенте +Процедура ТекущийМагазинПриИзменении(Элемент) + ТекущийМагазинПриИзмененииНаСервере(); +КонецПроцедуры + +&НаСервере +Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) + ПараметрыСеанса.ТекущийМагазин=Магазин; +КонецПроцедуры + +Функция ИзменитьЭлементыОтбора(ОбластьПоиска, + Знач ИмяПоля = Неопределено, + Знач Представление = Неопределено, + Знач ПравоеЗначение = Неопределено, + Знач ВидСравнения = Неопределено, + Знач Использование = Неопределено, + Знач РежимОтображения = Неопределено, + Знач ИдентификаторПользовательскойНастройки = Неопределено) Экспорт + + Если ЗначениеЗаполнено(ИмяПоля) Тогда + ЗначениеПоиска = Новый ПолеКомпоновкиДанных(ИмяПоля); + СпособПоиска = 1; + Иначе + СпособПоиска = 2; + ЗначениеПоиска = Представление; + КонецЕсли; + + МассивЭлементов = Новый Массив; + + НайтиРекурсивно(ОбластьПоиска.Элементы, МассивЭлементов, СпособПоиска, ЗначениеПоиска); + + Для Каждого Элемент Из МассивЭлементов Цикл + Если ИмяПоля <> Неопределено Тогда + Элемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля); + КонецЕсли; + Если Представление <> Неопределено Тогда + Элемент.Представление = Представление; + КонецЕсли; + Если Использование <> Неопределено Тогда + Элемент.Использование = Использование; + КонецЕсли; + Если ВидСравнения <> Неопределено Тогда + Элемент.ВидСравнения = ВидСравнения; + КонецЕсли; + Если ПравоеЗначение <> Неопределено Тогда + Элемент.ПравоеЗначение = ПравоеЗначение; + КонецЕсли; + Если РежимОтображения <> Неопределено Тогда + Элемент.РежимОтображения = РежимОтображения; + КонецЕсли; + Если ИдентификаторПользовательскойНастройки <> Неопределено Тогда + Элемент.ИдентификаторПользовательскойНастройки = ИдентификаторПользовательскойНастройки; + КонецЕсли; + КонецЦикла; + + Возврат МассивЭлементов.Количество(); + +КонецФункции + + +Процедура УстановитьЭлементОтбора(ОбластьПоискаДобавления, + Знач ИмяПоля, + Знач ПравоеЗначение = Неопределено, + Знач ВидСравнения = Неопределено, + Знач Представление = Неопределено, + Знач Использование = Неопределено, + Знач РежимОтображения = Неопределено, + Знач ИдентификаторПользовательскойНастройки = Неопределено) Экспорт + + ЧислоИзмененных = ИзменитьЭлементыОтбора(ОбластьПоискаДобавления, ИмяПоля, Представление, + ПравоеЗначение, ВидСравнения, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки); + + Если ЧислоИзмененных = 0 Тогда + Если ВидСравнения = Неопределено Тогда + Если ТипЗнч(ПравоеЗначение) = Тип("Массив") + Или ТипЗнч(ПравоеЗначение) = Тип("ФиксированныйМассив") + Или ТипЗнч(ПравоеЗначение) = Тип("СписокЗначений") Тогда + ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; + Иначе + ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + КонецЕсли; + КонецЕсли; + Если РежимОтображения = Неопределено Тогда + РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; + КонецЕсли; + ДобавитьЭлементКомпоновки(ОбластьПоискаДобавления, ИмяПоля, ВидСравнения, + ПравоеЗначение, Представление, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки); + КонецЕсли; + +КонецПроцедуры + +Функция ДобавитьЭлементКомпоновки(ОбластьДобавления, + Знач ИмяПоля, + Знач ВидСравнения, + Знач ПравоеЗначение = Неопределено, + Знач Представление = Неопределено, + Знач Использование = Неопределено, + знач РежимОтображения = Неопределено, + знач ИдентификаторПользовательскойНастройки = Неопределено) Экспорт + + Элемент = ОбластьДобавления.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + Элемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля); + Элемент.ВидСравнения = ВидСравнения; + + Если РежимОтображения = Неопределено Тогда + Элемент.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; + Иначе + Элемент.РежимОтображения = РежимОтображения; + КонецЕсли; + + Если ПравоеЗначение <> Неопределено Тогда + Элемент.ПравоеЗначение = ПравоеЗначение; + КонецЕсли; + + Если Представление <> Неопределено Тогда + Элемент.Представление = Представление; + КонецЕсли; + + Если Использование <> Неопределено Тогда + Элемент.Использование = Использование; + КонецЕсли; + + // Важно: установка идентификатора должна выполняться + // в конце настройки элемента, иначе он будет скопирован + // в пользовательские настройки частично заполненным. + Если ИдентификаторПользовательскойНастройки <> Неопределено Тогда + Элемент.ИдентификаторПользовательскойНастройки = ИдентификаторПользовательскойНастройки; + ИначеЕсли Элемент.РежимОтображения <> РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный Тогда + Элемент.ИдентификаторПользовательскойНастройки = ИмяПоля; + КонецЕсли; + + Возврат Элемент; + +КонецФункции + + +Процедура УстановитьЭлементОтбораДинамическогоСписка(ДинамическийСписок, ИмяПоля, + ПравоеЗначение = Неопределено, + ВидСравнения = Неопределено, + Представление = Неопределено, + Использование = Неопределено, + РежимОтображения = Неопределено, + ИдентификаторПользовательскойНастройки = Неопределено) Экспорт + + Если РежимОтображения = Неопределено Тогда + РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; + КонецЕсли; + + Если РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный Тогда + ОтборДинамическогоСписка = ДинамическийСписок.КомпоновщикНастроек.ФиксированныеНастройки.Отбор; + Иначе + ОтборДинамическогоСписка = ДинамическийСписок.КомпоновщикНастроек.Настройки.Отбор; + КонецЕсли; + + УстановитьЭлементОтбора( + ОтборДинамическогоСписка, + ИмяПоля, + ПравоеЗначение, + ВидСравнения, + Представление, + Использование, + РежимОтображения, + ИдентификаторПользовательскойНастройки); + +КонецПроцедуры + + +Процедура НайтиРекурсивно(КоллекцияЭлементов, МассивЭлементов, СпособПоиска, ЗначениеПоиска) + + Для каждого ЭлементОтбора Из КоллекцияЭлементов Цикл + + Если ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда + + Если СпособПоиска = 1 Тогда + Если ЭлементОтбора.ЛевоеЗначение = ЗначениеПоиска Тогда + МассивЭлементов.Добавить(ЭлементОтбора); + КонецЕсли; + ИначеЕсли СпособПоиска = 2 Тогда + Если ЭлементОтбора.Представление = ЗначениеПоиска Тогда + МассивЭлементов.Добавить(ЭлементОтбора); + КонецЕсли; + КонецЕсли; + Иначе + + НайтиРекурсивно(ЭлементОтбора.Элементы, МассивЭлементов, СпособПоиска, ЗначениеПоиска); + + Если СпособПоиска = 2 И ЭлементОтбора.Представление = ЗначениеПоиска Тогда + МассивЭлементов.Добавить(ЭлементОтбора); + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры \ No newline at end of file diff --git a/Enums/Статусы.xml b/Enums/Статусы.xml new file mode 100644 index 0000000..3553452 --- /dev/null +++ b/Enums/Статусы.xml @@ -0,0 +1,82 @@ + + + + + + f1995cd7-b0d3-43f8-bd26-63701e42cf8c + f5834119-79b1-4771-8503-effd58bcf1ee + + + f736990a-94d6-4c5d-98b3-ea8436ac436c + 62b0e2a5-2191-42c9-bc61-4820676bde79 + + + 9e416a07-39bb-48e7-b703-5df3eeb7beba + fd1e0653-f6dd-458a-bb08-622971cd3314 + + + + Статусы + + + ru + Статусы + + + + false + + true + BothWays + + + + + + + + Auto + + + + + Вработе + + + ru + В работе + + + + auto + + + + + ГотовКотправке + + + ru + Готов к отправке + + + + auto + + + + + Отправлен + + + ru + Отправлен + + + + auto + + + + + \ No newline at end of file diff --git a/Ext/HomePageWorkArea.xml b/Ext/HomePageWorkArea.xml new file mode 100644 index 0000000..dfcefe6 --- /dev/null +++ b/Ext/HomePageWorkArea.xml @@ -0,0 +1,13 @@ + + + OneColumn + + +
Document.Заказ.Form.ФормаСписка
+ 10 + + true + +
+
+
\ No newline at end of file diff --git a/Ext/MainSectionCommandInterface.xml b/Ext/MainSectionCommandInterface.xml new file mode 100644 index 0000000..1a69d28 --- /dev/null +++ b/Ext/MainSectionCommandInterface.xml @@ -0,0 +1,16 @@ + + + + + + true + + + + + + ActionsPanelTools + Manual + + + \ No newline at end of file diff --git a/InformationRegisters/Корзина.xml b/InformationRegisters/Корзина.xml new file mode 100644 index 0000000..51e704e --- /dev/null +++ b/InformationRegisters/Корзина.xml @@ -0,0 +1,245 @@ + + + + + + aca199e6-006a-43c0-89bb-f00dc732c596 + 26a17885-73d9-4073-a6c3-0863fd706ee7 + + + e992c047-7fb4-487b-b2ee-39b4f4ffc393 + ad504ba8-d667-41ad-9972-749bd0221792 + + + 2973a08f-6b78-443d-8aff-a351050920cd + 7d856ba3-e6d3-45fb-9504-b05a432fabcc + + + 8532b1ba-161c-451b-9f45-c91ab73b66e3 + 8dedb8dc-8086-4a92-be7d-90696c6c4fb0 + + + fe35c736-dbc4-451e-acea-dcecf9de12c6 + 755bcb3c-cffc-44b3-a643-e06f7cd9f4be + + + 3dac97de-fc4d-4b40-be23-e720f5b3023e + a2b7a47a-42db-4d61-81a8-b68b96c355f7 + + + 192736dd-52e6-4b8d-96b5-05d64a46e1a8 + 2e9a28b7-2bdf-4bb4-8430-77d8395c9933 + + + + Корзина + + + ru + Корзина + + + + true + InDialog + + + + + Nonperiodical + Independent + false + false + Managed + DontUse + false + false + + + + + + DontUse + false + false + + + + + Количество + + + ru + Количество + + + + + xs:decimal + + 10 + 0 + Any + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Номенклатура + + + ru + Номенклатура + + + + + cfg:CatalogRef.Номенклатура + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + false + true + false + DontIndex + Use + Use + TransformValues + + + + + Заказ + + + ru + Заказ + + + + + cfg:DocumentRef.Заказ + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + false + true + false + DontIndex + Use + Use + TransformValues + + + + + ДатаДобавления + + + ru + Дата добавления + + + + + xs:dateTime + + DateTime + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + false + true + false + DontIndex + Use + Use + TransformValues + + + + + \ No newline at end of file diff --git a/Languages/Русский.xml b/Languages/Русский.xml new file mode 100644 index 0000000..5744650 --- /dev/null +++ b/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/Roles/Администратор.xml b/Roles/Администратор.xml new file mode 100644 index 0000000..2dcc30b --- /dev/null +++ b/Roles/Администратор.xml @@ -0,0 +1,15 @@ + + + + + Администратор + + + ru + Администратор + + + + + + \ No newline at end of file diff --git a/Roles/Администратор/Ext/Rights.xml b/Roles/Администратор/Ext/Rights.xml new file mode 100644 index 0000000..983d33d --- /dev/null +++ b/Roles/Администратор/Ext/Rights.xml @@ -0,0 +1,845 @@ + + + false + true + false + + DataProcessor.ИзменитьЗаказ + + Use + true + + + View + true + + + + Catalog.Пользователи + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InputByString + true + + + InteractiveDeletePredefinedData + true + + + InteractiveSetDeletionMarkPredefinedData + true + + + InteractiveClearDeletionMarkPredefinedData + true + + + InteractiveDeleteMarkedPredefinedData + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + Catalog.Кассиры + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InputByString + true + + + InteractiveDeletePredefinedData + true + + + InteractiveSetDeletionMarkPredefinedData + true + + + InteractiveClearDeletionMarkPredefinedData + true + + + InteractiveDeleteMarkedPredefinedData + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + Subsystem.Закупка + + View + true + + + + Catalog.Магазины + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InputByString + true + + + InteractiveDeletePredefinedData + true + + + InteractiveSetDeletionMarkPredefinedData + true + + + InteractiveClearDeletionMarkPredefinedData + true + + + InteractiveDeleteMarkedPredefinedData + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + Subsystem.Настройка + + View + true + + + + DataProcessor.Синхронизация + + Use + true + + + View + true + + + + Configuration.ЗаказыМагазин + + Administration + true + + + DataAdministration + true + + + UpdateDataBaseConfiguration + true + + + ExclusiveMode + true + + + ActiveUsers + true + + + EventLog + true + + + ThinClient + true + + + WebClient + true + + + MobileClient + true + + + ThickClient + true + + + ExternalConnection + true + + + Automation + true + + + TechnicalSpecialistMode + true + + + CollaborationSystemInfoBaseRegistration + true + + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + ExclusiveModeTerminationAtSessionStart + true + + + SaveUserData + true + + + ConfigurationExtensionsAdministration + true + + + InteractiveOpenExtDataProcessors + true + + + InteractiveOpenExtReports + true + + + Output + true + + + + Catalog.Номенклатура + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InputByString + true + + + InteractiveDeletePredefinedData + true + + + InteractiveSetDeletionMarkPredefinedData + true + + + InteractiveClearDeletionMarkPredefinedData + true + + + InteractiveDeleteMarkedPredefinedData + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + InformationRegister.Корзина + + Read + true + + + Update + true + + + View + true + + + Edit + true + + + TotalsControl + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + Catalog.ИБ + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InputByString + true + + + InteractiveDeletePredefinedData + true + + + InteractiveSetDeletionMarkPredefinedData + true + + + InteractiveClearDeletionMarkPredefinedData + true + + + InteractiveDeleteMarkedPredefinedData + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + Document.Заказ + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + Posting + true + + + UndoPosting + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InteractivePosting + true + + + InteractivePostingRegular + true + + + InteractiveUndoPosting + true + + + InteractiveChangeOfPosted + true + + + InputByString + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + SessionParameter.ТекущийМагазин + + Get + true + + + Set + true + + + \ No newline at end of file diff --git a/Roles/Магазин.xml b/Roles/Магазин.xml new file mode 100644 index 0000000..964548f --- /dev/null +++ b/Roles/Магазин.xml @@ -0,0 +1,15 @@ + + + + + Магазин + + + ru + Магазин + + + + + + \ No newline at end of file diff --git a/Roles/Магазин/Ext/Rights.xml b/Roles/Магазин/Ext/Rights.xml new file mode 100644 index 0000000..78e94a8 --- /dev/null +++ b/Roles/Магазин/Ext/Rights.xml @@ -0,0 +1,753 @@ + + + false + true + false + + Catalog.Пользователи + + Read + true + + + + Catalog.Кассиры + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InputByString + true + + + InteractiveDeletePredefinedData + true + + + InteractiveSetDeletionMarkPredefinedData + true + + + InteractiveClearDeletionMarkPredefinedData + true + + + InteractiveDeleteMarkedPredefinedData + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + Subsystem.Закупка + + View + true + + + + Catalog.Магазины + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InputByString + true + + + InteractiveDeletePredefinedData + true + + + InteractiveSetDeletionMarkPredefinedData + true + + + InteractiveClearDeletionMarkPredefinedData + true + + + InteractiveDeleteMarkedPredefinedData + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + DataProcessor.Синхронизация + + Use + true + + + View + true + + + + Configuration.ЗаказыМагазин + + Administration + true + + + DataAdministration + true + + + UpdateDataBaseConfiguration + true + + + ExclusiveMode + true + + + ActiveUsers + true + + + EventLog + true + + + ThinClient + true + + + WebClient + true + + + MobileClient + true + + + ThickClient + true + + + ExternalConnection + true + + + Automation + true + + + TechnicalSpecialistMode + true + + + CollaborationSystemInfoBaseRegistration + true + + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + ExclusiveModeTerminationAtSessionStart + true + + + SaveUserData + true + + + ConfigurationExtensionsAdministration + true + + + InteractiveOpenExtDataProcessors + true + + + InteractiveOpenExtReports + true + + + Output + true + + + + Catalog.Номенклатура + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InputByString + true + + + InteractiveDeletePredefinedData + true + + + InteractiveSetDeletionMarkPredefinedData + true + + + InteractiveClearDeletionMarkPredefinedData + true + + + InteractiveDeleteMarkedPredefinedData + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + InformationRegister.Корзина + + Read + true + + + Update + true + + + View + true + + + Edit + true + + + TotalsControl + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + Catalog.Магазины.Attribute.Пароль + + View + false + + + Edit + false + + + + Catalog.Магазины.Attribute.Логин + + View + false + + + Edit + false + + + + Catalog.ИБ + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InputByString + true + + + InteractiveDeletePredefinedData + true + + + InteractiveSetDeletionMarkPredefinedData + true + + + InteractiveClearDeletionMarkPredefinedData + true + + + InteractiveDeleteMarkedPredefinedData + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + Document.Заказ + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + Posting + true + + + UndoPosting + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InteractivePosting + true + + + InteractivePostingRegular + true + + + InteractiveUndoPosting + true + + + InteractiveChangeOfPosted + true + + + InputByString + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + + + SessionParameter.ТекущийМагазин + + Get + true + + + Set + true + + + \ No newline at end of file diff --git a/SessionParameters/ТекущийМагазин.xml b/SessionParameters/ТекущийМагазин.xml new file mode 100644 index 0000000..338b6e6 --- /dev/null +++ b/SessionParameters/ТекущийМагазин.xml @@ -0,0 +1,18 @@ + + + + + ТекущийМагазин + + + ru + Текущий магазин + + + + + cfg:CatalogRef.Магазины + + + + \ No newline at end of file diff --git a/Subsystems/Закупка.xml b/Subsystems/Закупка.xml new file mode 100644 index 0000000..ed139ea --- /dev/null +++ b/Subsystems/Закупка.xml @@ -0,0 +1,27 @@ + + + + + Закупка + + + ru + Закупка + + + + true + true + false + + + + Document.Заказ + DataProcessor.Синхронизация + Catalog.Кассиры + Role.Магазин + + + + + \ No newline at end of file diff --git a/Subsystems/Настройка.xml b/Subsystems/Настройка.xml new file mode 100644 index 0000000..07ca62d --- /dev/null +++ b/Subsystems/Настройка.xml @@ -0,0 +1,30 @@ + + + + + Настройка + + + ru + Настройка + + + + true + true + false + + + + Catalog.Номенклатура + Catalog.Магазины + DataProcessor.Синхронизация + InformationRegister.Корзина + DataProcessor.ИзменитьЗаказ + Catalog.Пользователи + Catalog.Кассиры + + + + + \ No newline at end of file