├── LICENSE
├── README.MD
├── bsl-language-server.json
├── docs
└── img
│ ├── 01.png
│ ├── 02.png
│ ├── 03.png
│ ├── 04.png
│ ├── 05.png
│ └── 06.png
├── gitignore
├── sonar-project.properties
├── ИТМ_АдминистрированиеДинамическихСписков
├── .project
├── .settings
│ └── org.eclipse.core.resources.prefs
├── DT-INF
│ └── PROJECT.PMF
└── src
│ ├── Catalogs
│ ├── КлючевыеОперации
│ │ └── КлючевыеОперации.mdo
│ └── Пользователи
│ │ └── Пользователи.mdo
│ ├── CommonModules
│ ├── ИТМ_АдминистрированиеДинамическихСписков
│ │ ├── Module.bsl
│ │ └── ИТМ_АдминистрированиеДинамическихСписков.mdo
│ ├── ИТМ_АдминистрированиеДинамическихСписковВызовСервера
│ │ ├── Module.bsl
│ │ └── ИТМ_АдминистрированиеДинамическихСписковВызовСервера.mdo
│ ├── ИТМ_АдминистрированиеДинамическихСписковКлиент
│ │ ├── Module.bsl
│ │ └── ИТМ_АдминистрированиеДинамическихСписковКлиент.mdo
│ ├── ИТМ_АдминистрированиеДинамическихСписковКлиентПереопределяемый
│ │ ├── Module.bsl
│ │ └── ИТМ_АдминистрированиеДинамическихСписковКлиентПереопределяемый.mdo
│ ├── ИТМ_АдминистрированиеДинамическихСписковКлиентСервер
│ │ ├── Module.bsl
│ │ └── ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.mdo
│ ├── ИТМ_АдминистрированиеДинамическихСписковПереопределяемый
│ │ ├── Module.bsl
│ │ └── ИТМ_АдминистрированиеДинамическихСписковПереопределяемый.mdo
│ └── ИТМ_АдминистрированиеДинамическихСписковПовтИсп
│ │ ├── Module.bsl
│ │ └── ИТМ_АдминистрированиеДинамическихСписковПовтИсп.mdo
│ ├── Configuration
│ └── Configuration.mdo
│ ├── InformationRegisters
│ ├── ИТМ_ИсторияОбновленияДинамическихСписков
│ │ ├── Forms
│ │ │ ├── ФормаЗаписи
│ │ │ │ ├── Form.form
│ │ │ │ └── Module.bsl
│ │ │ └── ФормаСписка
│ │ │ │ ├── Attributes
│ │ │ │ └── Список
│ │ │ │ │ └── ExtInfo
│ │ │ │ │ └── ListSettings.dcss
│ │ │ │ ├── Form.form
│ │ │ │ └── Module.bsl
│ │ ├── ManagerModule.bsl
│ │ ├── RecordSetModule.bsl
│ │ └── ИТМ_ИсторияОбновленияДинамическихСписков.mdo
│ └── ИТМ_НастройкиДинамическихСписков
│ │ ├── Forms
│ │ ├── ФормаВыбораКлюча
│ │ │ ├── Attributes
│ │ │ │ └── Список
│ │ │ │ │ └── ExtInfo
│ │ │ │ │ └── ListSettings.dcss
│ │ │ ├── Form.form
│ │ │ └── Module.bsl
│ │ ├── ФормаВыбораФормы
│ │ │ ├── Form.form
│ │ │ ├── Items
│ │ │ │ └── ДоступныеФормы
│ │ │ │ │ └── RowsPicture.png
│ │ │ └── Module.bsl
│ │ ├── ФормаЗаписи
│ │ │ ├── Form.form
│ │ │ └── Module.bsl
│ │ ├── ФормаСозданияКлюча
│ │ │ ├── Form.form
│ │ │ └── Module.bsl
│ │ └── ФормаСписка
│ │ │ ├── Attributes
│ │ │ └── Список
│ │ │ │ └── ExtInfo
│ │ │ │ └── ListSettings.dcss
│ │ │ ├── Form.form
│ │ │ └── Module.bsl
│ │ ├── ManagerModule.bsl
│ │ ├── RecordSetModule.bsl
│ │ └── ИТМ_НастройкиДинамическихСписков.mdo
│ ├── Roles
│ ├── ИТМ_ИзменениеИсторияОбновленияДинамическихСписков
│ │ ├── Rights.rights
│ │ └── ИТМ_ИзменениеИсторияОбновленияДинамическихСписков.mdo
│ ├── ИТМ_ИзменениеНастройкиДинамическихСписков
│ │ ├── Rights.rights
│ │ └── ИТМ_ИзменениеНастройкиДинамическихСписков.mdo
│ ├── ИТМ_ЧтениеИсторияОбновленияДинамическихСписков
│ │ ├── Rights.rights
│ │ └── ИТМ_ЧтениеИсторияОбновленияДинамическихСписков.mdo
│ └── ИТМ_ЧтениеНастройкиДинамическихСписков
│ │ ├── Rights.rights
│ │ └── ИТМ_ЧтениеНастройкиДинамическихСписков.mdo
│ └── Subsystems
│ └── ИТМ_АдминистрированиеДинамическихСписков
│ ├── CommandInterface.cmi
│ └── ИТМ_АдминистрированиеДинамическихСписков.mdo
└── ИТМ_АдминистрированиеДинамическихСписков_Демо
├── .project
├── .settings
└── org.eclipse.core.resources.prefs
├── DT-INF
└── PROJECT.PMF
└── src
├── Catalogs
└── ИТМ_ТестовыйСправочник
│ ├── Forms
│ └── ФормаСписка
│ │ ├── Attributes
│ │ └── Список
│ │ │ └── ExtInfo
│ │ │ └── ListSettings.dcss
│ │ ├── Form.form
│ │ └── Module.bsl
│ └── ИТМ_ТестовыйСправочник.mdo
├── Configuration
└── Configuration.mdo
├── Documents
└── ИТМ_ТестовыйДокумент
│ ├── Forms
│ └── ФормаСписка
│ │ ├── Attributes
│ │ └── Список
│ │ │ └── ExtInfo
│ │ │ └── ListSettings.dcss
│ │ ├── Form.form
│ │ └── Module.bsl
│ └── ИТМ_ТестовыйДокумент.mdo
└── Subsystems
└── ИТМ_АдминистрированиеДинамическихСписков_Демо
├── CommandInterface.cmi
└── ИТМ_АдминистрированиеДинамическихСписков_Демо.mdo
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright 2024 chernenko_vv
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.MD:
--------------------------------------------------------------------------------
1 | # Администрирование динамических списков
2 |
3 | Расширение "Администрирование динамических списков" предназначено для настройки подключенных форм списка в режиме предприятия.
4 |
5 | - [О подсистеме](#о-подсистеме)
6 | - [Установка](#установка)
7 | - [Требования к конфигурации](#требования-к-конфигурации)
8 | - [Демонстрационное расширение](#демонстрационное-расширение)
9 | - [Внедрение](#внедрение)
10 | - [Использование](#использование)
11 | - [Добавление настройки](#добавление-настройки)
12 | - [Перечень настроек](#перечень-настроек)
13 | - [Настройки ограничения полей](#настройки-ограничения-полей)
14 | - [История обновления списка](#история-обновления-списка)
15 | - [Запреты открытия](#запреты-открытия)
16 | - [Подмена источника](#подмена-источника)
17 | - [Переопределения](#переопределения)
18 | - [Нюансы работы](#нюансы-работы)
19 | - [В планах](#в-планах)
20 | - [Заключение](#заключение)
21 |
22 | ## О подсистеме
23 |
24 | Что даёт подсистема? Предположим, есть в системе некий тип документов. Их много, форма списка содержит сложный запрос, а пользователи любят применять неоптимальные настройки. Отбирать, сортировать и даже группировать по полям "через точку". И ответственный за подсистему решает, что пора ограничить возможности пользователей. Это и позволяет сделать подсистема прямо в режиме предприятия и без необходимости обновлять информационную базу.
25 |
26 | Среди возможностей есть:
27 |
28 | - Гибкая настройка ограничений использования полей в Отбора, Группировках и Сортировках
29 | - Отключение возможности настройки Отборов, Группировок, Сортировок и Условного оформления
30 | - Автоматическое отключение пользовательских настроек при открытии формы списка
31 | - Установка периода при открытии формы списка
32 | - Подмена свойств динамического списка (запрос, параметры, обязательные отборы и так далее)
33 | - Запрет открытия формы по условиям
34 | - Логирование пользовательских настроек в списках в истории для последующего анализа
35 |
36 | Все изменения применяются в момент открытия формы с динамическим списком и не требует перезапуска сеанса.
37 |
38 | ## Установка
39 |
40 | Актуальную версию можно скачать на странице релизов
41 |
42 | Расширение универсальное и создано на основе БСП. Однако, в зависимости от целевой конфигурации, может потребоваться установка в режиме конфигуратора (с решением некоторых конфликтов свойств). Снимаются все галочки кроме "Активно".
43 |
44 | ### Требования к конфигурации
45 |
46 | Подсистема требует наличие БСП в конфигурации
47 |
48 | \+ На данный момент подсистема использует справочник Ключевые операции, поэтому хотя бы во время настройки необходимо включить подсистему БСП "Оценка производительности". Далее её можно отключить. Это необходимо, чтобы была активна функциональная опция, которая активирует справочник ключевых операций. Со временем от этого откажемся и перенесемм на независимый справочник.
49 |
50 | ### Демонстрационное расширение
51 |
52 | Демо расширение содержит подключенный к подсистеме документ и справочник, на которых можно провести эксперименты настроек
53 |
54 | ### Внедрение
55 |
56 | Для внедрения подсистемы необходимо в подключаемые формы списка внести вызовы методов подсистемы.
57 |
58 | Это можно делать:
59 |
60 | 1. В самом расширении подсистемы
61 | 2. Непосредственно в конфигурации
62 | 3. В отдельном расширении
63 |
64 | Первый способ самый удобный в использовании, но обновлять расширение придется далее вручную.
65 | При способах 2 и 3 лучше обращаться к модулям не напрямую, а через методы БСП `ОбщегоНазначения.ОбщийМодуль(ИмяМодуля)` и `ОбщегоНазначенияКлиент.ОбщийМодуль(ИмяМодуля)`
66 |
67 | Пример можно увидеть в демо расширении
68 |
69 | Для подключения формы списка необходимо доработать:
70 |
71 | - В событии формы `ПриСозданииНаСервере` вызвать метод:
72 |
73 | ```bsl
74 | ИТМ_АдминистрированиеДинамическихСписков.ПриСозданииНаСервере(ЭтотОбъект);
75 | ```
76 |
77 | - В событии элемента спика `ПередЗагрузкойПользовательскихНастроекНаСервере` вызвать метод:
78 |
79 | ```bsl
80 | ИТМ_АдминистрированиеДинамическихСписков.ПередЗагрузкойПользовательскихНастроекНаСервере(ЭтотОбъект, Элемент, Настройки, ИспользуютсяСтандартныеНастройки);
81 | ```
82 |
83 | - В событии формы `ПриОткрытии` вызвать метод:
84 |
85 | ```bsl
86 | ИТМ_АдминистрированиеДинамическихСписковКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
87 | ```
88 |
89 | - Для оптимизации рекомендуется добавить на форму реквизит `НастройкиДинамическихСписков` с типом `Произвольный`
90 | ⠀
91 | - Чтобы работал механизм истории обновлений (его использовать не обязательно), необходимо дополнительно:
92 | - В событии элемента списка `ПриПолученииДанныхНаСервере` вызвать:
93 |
94 | ```bsl
95 | ИТМ_АдминистрированиеДинамическихСписков.ПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки);
96 | ```
97 |
98 | - В событии формы `ПриЗакрытии` вызвать метод:
99 |
100 | ```bsl
101 | ИТМ_АдминистрированиеДинамическихСписковКлиент.ПриЗакрытии(ЭтотОбъект, ЗавершениеРаботы);
102 | ```
103 |
104 | - Добавить экспортный метод для обработчика ожидания:
105 |
106 | ```bsl
107 | &НаКлиенте
108 | Процедура ИТМ_ОбработатьНакопленныеСобытияОбновления() Экспорт
109 | ИТМ_АдминистрированиеДинамическихСписковКлиент.ОбработатьНакопленныеСобытияОбновления(ЭтотОбъект);
110 | КонецПроцедуры
111 | ```
112 |
113 | ## Использование
114 |
115 | Все настройки подсистемы находятся в регистре сведений `Настройки динамических списков`.
116 | `e1cib/list/РегистрСведений.ИТМ_НастройкиДинамическихСписков`
117 |
118 | ### Добавление настройки
119 |
120 | Для добавления новой настройки:
121 |
122 | - В списке нажимаем `Создать`
123 |
124 | \
125 |
126 | - Появляется форма списка с доступными ключевыми операциями. Этот справочник используется как ключ для настроек динамических списков. Поэтому, необходимо либо добавить новую ключевую операцию, либо выбрать существующую.
127 |
128 | 
129 | ⠀⠀
130 | - Для добавления ключевой операции нажимаем в списке `Создать`
131 |
132 | 
133 | ⠀⠀
134 | - Вводим полное имя формы (или выбираем из доступных)
135 |
136 | 
137 | ⠀⠀
138 | - Вводим имя элемента списка (или выбираем из доступных)
139 |
140 | 
141 | ⠀⠀
142 | - Нажимаем `Создать элемент`
143 | ⠀⠀
144 | 
145 | ⠀⠀
146 | - Выбираем нужную ключевую операцию. В форме списка настроек появляется добавленная нами строка
147 |
148 | ### Перечень настроек
149 |
150 | - **Применять настройки к списку** - Используются ли введенные ниже настройки
151 | - **Основные**
152 | - **Отключать пользовательские настройки при открытии** - При открытии формы списка будут отключены пользовательские настройки
153 | - **...кроме** - Имена полей, которые не будут отключены при открытии
154 | - **Удалять недоступные поля настроек** - Стоит ли дополнительно удалять все недоступные элементы пользовательских настроек.
155 | - Например, изменились ограничения отборов. Но у пользователя в настройках остались отборы по теперь запрещенному полю. Такие отборы будут удалены. Или удалили какой-то реквизит документа. Но у пользователя в настройках остался отбор по нему. Такой отборы так же будет удален.
156 | - **Динамическое считывание данных** - Одноименное свойство динамического списка
157 | - **Автоматическое сохранение пользовательских настроек** - Одноименное свойство динамического списка
158 | - **Устанавливать период при открытии** - При открытии формы списка будет установлен указанный в настройке период
159 | - **Источник**
160 | - **Использовать настройки источника** - Применяются ли настройки источника данных
161 | - **Основная таблица** - Одноименное свойство динамического списка
162 | - **Авто заполнение доступных полей** - Одноименное свойство динамического списка
163 | - **Получение представлений для невидимых полей** - Одноименное свойство динамического списка
164 | - **Текст запроса** - Одноименное свойство динамического списка
165 | - **Параметры** - Параметры динамического списка
166 | - **Отбор** - Отбор динамического списка
167 | - **Сортировка** - Сортировка динамического списка
168 | - **Отбор**
169 | - **Использование настроек отбора** - Применяются ли настройки ограничений списка
170 | - **...кроме ролей** - Для этих ролей настройки применятся не будут
171 | - **Отключать пользовательские настройки при открытии** - При открытии формы списка будут отключены пользовательские настройки
172 | - **...кроме** - Имена полей, которые не будут отключены при открытии
173 | - **Исключить из меню "Настроить список"** - Исключить пункт "Отборы" из меню "Настроить список"
174 | - **Полный запрет по всем полям** - Полный запрет отборов по всем полям
175 | - **Запрещать по:**
176 | - **Ссылочным** - Запрещать по полям ссылочного типа
177 | - **Не индексируемым** - Запрещать по НЕ индексируемым полям
178 | - **Таблицам** - Запрещать по табличным частям
179 | - **Составным** - Запрещать по полям составного типа
180 | - **Подчиненным** - Запрещать по подчиненным полям
181 | - **Подчиненным не индексируемых** - Запрещать по подчиненным НЕ индексируемых полей
182 | - **Таблицам подчиненных** - Запрещать по табличным частям подчиненных полей
183 | - **Подчиненным составных** - Запрещать по подчиненным полям составных
184 | - **Исключения:**
185 | - **Запрещенные** - дополнительно запрещенные поля
186 | - **Разрешенные** - дополнительно разрешенные поля
187 | - **Группировки**
188 | - **Использование настроек группировки** - Применяются ли настройки ограничений списка
189 | - **...кроме ролей** - Для этих ролей настройки применятся не будут
190 | - **Отключать пользовательские настройки при открытии** - При открытии формы списка будут отключены пользовательские настройки
191 | - **...кроме** - Имена полей, которые не будут отключены при открытии
192 | - **Исключить из меню "Настроить список"** - Исключить пункт "Группировка" из меню "Настроить список"
193 | - **Полный запрет по всем полям** - Полный запрет группировки по всем полям
194 | - **Запрещать по:**
195 | - **Ссылочным** - Запрещать по полям ссылочного типа
196 | - **Не индексируемым** - Запрещать по НЕ индексируемым полям
197 | - **Таблицам** - Запрещать по табличным частям
198 | - **Составным** - Запрещать по полям составного типа
199 | - **Подчиненным** - Запрещать по подчиненным полям
200 | - **Подчиненным не индексируемых** - Запрещать по подчиненным НЕ индексируемых полей
201 | - **Таблицам подчиненных** - Запрещать по табличным частям подчиненных полей
202 | - **Подчиненным составных** - Запрещать по подчиненным полям составных
203 | - **Исключения:**
204 | - **Запрещенные** - дополнительно запрещенные поля
205 | - **Разрешенные** - дополнительно разрешенные поля
206 | - **Сортировка**
207 | - **Использование настроек сортировки** - Применяются ли настройки ограничений списка
208 | - **...кроме ролей** - Для этих ролей настройки применятся не будут
209 | - **Отключать пользовательские настройки при открытии** - При открытии формы списка будут отключены пользовательские настройки
210 | - **...кроме** - Имена полей, которые не будут отключены при открытии
211 | - **Исключить из меню "Настроить список"** - Исключить пункт "Сортировка" из меню "Настроить список"
212 | - **Полный запрет по всем полям** - Полный запрет сортировки по всем полям
213 | - **Запрещать по:**
214 | - **Ссылочным** - Запрещать по полям ссылочного типа
215 | - **Не индексируемым** - Запрещать по НЕ индексируемым полям
216 | - **Таблицам** - Запрещать по табличным частям
217 | - **Составным** - Запрещать по полям составного типа
218 | - **Подчиненным** - Запрещать по подчиненным полям
219 | - **Подчиненным не индексируемых** - Запрещать по подчиненным НЕ индексируемых полей
220 | - **Таблицам подчиненных** - Запрещать по табличным частям подчиненных полей
221 | - **Подчиненным составных** - Запрещать по подчиненным полям составных
222 | - **Исключения:**
223 | - **Запрещенные** - дополнительно запрещенные поля
224 | - **Разрешенные** - дополнительно разрешенные поля
225 | - **Условное оформление**
226 | - **Использование настроек условного оформления** - Применяются ли настройки ограничений списка
227 | - **Отключать пользовательские настройки при открытии** - При открытии формы списка будут отключены пользовательские настройки
228 | - **...кроме** - Имена полей, которые не будут отключены при открытии
229 | - **Исключить из меню "Настроить список"** - Исключить пункт "Условного оформление" из меню "Настроить список"
230 | - **История обновления**
231 | - **Фиксировать историю обновления** - Нужно ли фиксировать историю обновления динамического списка
232 | - **Частота записи (с.)** - Часто записи накопленной истории. Если 0, то история будет писаться сразу в событии получения данных ДС.
233 | - **Только при изменении настроек** - Стоит ли проверять настройки на изменение \
234 | _Ложь_ - записываться будет каждое событие обмена списка\
235 | _Истина_ - записываться будет только если настройки отличаются от прошлого события обновления списка в этой форме
236 | - **Фиксировать:**
237 | - **Все события** - Все события обновления списка
238 | - **Если есть группировки** - Фиксировать, если в настройках есть группировки
239 | - **Если есть сортировки** - Фиксировать, если в настройках есть сортировки
240 | - **Если есть отборы** - Фиксировать, если в настройках есть отборы
241 | - **Запреты открытия**
242 | - **Использовать запреты открытия формы** - Позволяет установить запрет открытия формы в зависимости от условий
243 | - **...кроме ролей** - Запреты не будут распространяться на обладателей ролей
244 | - **Условия запрета** - Таблица с условиями, при которых должен происходить запрет открытия формы
245 | - **Дополнительно** - Дополнительные значения, доступные в коде. Хранятся в соответствии.
246 |
247 | ### Настройки ограничения полей
248 |
249 | Ограничения полей (на отборы, группировки, сортировки) можно устанавливать несколькими способами:
250 |
251 | 1. Полное ограничение. Таким образом можно, например, запретить полностью использование Группировок
252 | 2. Ограничение по признакам. Это, например, ограничение на НЕ индексируемые поля. Или подчиненные поля. Или табличные части. Все варианты можно комбинировать и использовать вместе.
253 | 3. Точечная настройка. Позволяет самостоятельно прописать те поля-исключения которые запрещены (или же наоборот разрешены в противовес остальных настроек). Для точечной настройки используется формат:
254 | - `ИмяПоля.*` - поле и его подчиненные
255 | - `ИмяПоля` - само поле (без подчиненных)
256 | - `ИмяПоля.ИмяПодчиненногоПоля` - конкретное подчиненное поле
257 | - `[Имя поля]` - доп. поле (доп. реквизит или свойство), подключаемое через Характеристики платформы
258 | 4. Изменение текста запроса. В подсистеме есть возможность полностью подменить текст запроса динамического списка. При помощи этого так же можно установить ограничения полей, используя конструкции расширения языка запросов СКД.
259 |
260 | ### История обновления списка
261 |
262 | В подсистеме есть возможность фиксирования истории обновления динамических списков. \
263 | К сожалению, ограничения платформы не позволяют определять скорость обновления ДС. \
264 | Но подсистема дает возможность собрать сведения о самих выполняемых настройках пользователей.
265 |
266 | История хранится в регистре сведений `История обновления динамических списков`.
267 | `e1cib/list/РегистрСведений.ИТМ_ИсторияОбновленияДинамическихСписков`
268 |
269 | Как это работает: в событии `ПриПолученииДанныхНаСервере()` у динамического списка происходит фиксация текущих настроек.
270 |
271 | Если в настройках установлена частота записи, то с заданной частотой происходит анализ открытых форм и сбор накопленных в них настройках, чтобы поместить в регистр сведений.
272 |
273 | Если же в настройках частота записи пустая, то при каждом обновлении динамического списка будет происходить запись в регистр сведений.
274 |
275 | ### Запреты открытия
276 |
277 | В подсистеме есть возможность установить запрет открытия формы.
278 | При этом задается текст запрета и условия, при которых форму нельзя открыть.
279 | На данный момент в условиях можно опираться на значения констант и параметров сеанса.
280 |
281 | ### Подмена источника
282 |
283 | В подсистеме есть возможность подмены всех свойств динамического списка.
284 | Например, если в запросе списка обнаружена ошибка или неоптимальность и её срочно нужно исправить, то для этого можно воспользоваться данным функционалом и переопределить текст запроса динамического списка.
285 |
286 | ### Переопределения
287 |
288 | Подсистема имеет преопределяемые модули. В сочитаниям с возможностью в настройка списка указывать произвольные дополнительные значения, это позволяет добавлять свои ограничения и параметры работы списков
289 |
290 | ## Нюансы работы
291 |
292 | Подсистема была разработана ещё до версии 8.3.19, в которой добавили расширенные возможности настройки полей динамического списка. Расширение использует методы `УстановитьОграниченияИспользования...()`
293 |
294 | Помимо поддержки "прошлых" платформ и режимов совместимости, мы продолжаем использовать эти методы потому, что они позволяют точечно отключить доступность не только основных полей, но и конкретных подчиненных. Например, запретить отборы на подчиненные поля полей составного типа в таблице, но в исключениях добавить их Код.
295 |
296 | ## В планах
297 |
298 | Все планы можно посмотреть на странице issues, но общие планируемые доработки:
299 |
300 | - Отказаться от использование справочника КлючевыеОперации. Это позволит не включить подсистему Оценка производительности.
301 | - Переделать периодическую фиксацию истории со своих методов на методы БСП. Это упростит подключение формы списка к подсистеме.
302 | - Добавить возможности
303 |
304 | Если у вас есть идеи, предложения или информация об ошибке, то мы будем рады вашему ишуизу.
305 |
306 | ## Заключение
307 |
308 | По всем вопросам можете обращаться к разработчику [@Черненко Виталий](https://github.com/SeiOkami)
--------------------------------------------------------------------------------
/bsl-language-server.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://1c-syntax.github.io/bsl-language-server/configuration/schema.json",
3 | "language": "ru",
4 | "diagnostics": {
5 | "computeTrigger": "onType",
6 | "parameters": {
7 | "LineLength": {
8 | "maxLineLength": 140
9 | },
10 | "SpaceAtStartComment": {
11 | "commentsAnnotation": "//@,//(c),//©,//<<,//>>"
12 | },
13 | "MissingSpace": {
14 | "allowMultipleCommas": true
15 | },
16 | "Typo": {
17 | "minWordLength": 4,
18 | "userWordsToIgnore": "SVOD"
19 | },
20 | "allowParensInComparisons": true
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/docs/img/01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magnit-tech/one-s-dynamic-list-administration/ae34c37e301ff63cc506e0b7f22ed5e2efbca583/docs/img/01.png
--------------------------------------------------------------------------------
/docs/img/02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magnit-tech/one-s-dynamic-list-administration/ae34c37e301ff63cc506e0b7f22ed5e2efbca583/docs/img/02.png
--------------------------------------------------------------------------------
/docs/img/03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magnit-tech/one-s-dynamic-list-administration/ae34c37e301ff63cc506e0b7f22ed5e2efbca583/docs/img/03.png
--------------------------------------------------------------------------------
/docs/img/04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magnit-tech/one-s-dynamic-list-administration/ae34c37e301ff63cc506e0b7f22ed5e2efbca583/docs/img/04.png
--------------------------------------------------------------------------------
/docs/img/05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magnit-tech/one-s-dynamic-list-administration/ae34c37e301ff63cc506e0b7f22ed5e2efbca583/docs/img/05.png
--------------------------------------------------------------------------------
/docs/img/06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magnit-tech/one-s-dynamic-list-administration/ae34c37e301ff63cc506e0b7f22ed5e2efbca583/docs/img/06.png
--------------------------------------------------------------------------------
/gitignore:
--------------------------------------------------------------------------------
1 | .vscode
2 | .scannerwork
--------------------------------------------------------------------------------
/sonar-project.properties:
--------------------------------------------------------------------------------
1 | sonar.projectKey=BSPM_one-s-dynamic-list-administration
2 | sonar.projectVersion=1.0.1
3 |
4 | #Используйте https://native2ascii.net/ для вставки русских наименований проектов, не используйте английский если ваша команда русскоязычная и кодите вы на русском
5 | sonar.projectName=\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 (\u0411\u0421\u041f\u041c)
6 |
7 | sonar.sources=./\u0418\u0422\u041c_\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445\u0421\u043f\u0438\u0441\u043a\u043e\u0432
8 |
9 | sonar.sourceEncoding=UTF-8
10 |
11 | sonar.dbcleaner.branchesToKeepWhenInactive=main,develop,release-.*
12 | sonar.inclusions=**/*.bsl,**/*.os,**/*.xml
13 | sonar.lang.patterns.xml=**/*.xsd,**/*.xsl
14 |
15 | sonar.bsl.platformEdition=8.3.23
16 | sonar.bsl.maxDepthSearchConfiguration=6
17 | sonar.bsl.skipAbsorptionComments=false
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписков
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.xtext.ui.shared.xtextBuilder
10 |
11 |
12 |
13 |
14 |
15 | org.eclipse.xtext.ui.shared.xtextNature
16 | com._1c.g5.v8.dt.core.V8ExtensionNature
17 |
18 |
19 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding/=UTF-8
3 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/DT-INF/PROJECT.PMF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Runtime-Version: 8.3.24
3 | Base-Project: configuration
4 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Catalogs/КлючевыеОперации/КлючевыеОперации.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | КлючевыеОперации
11 | Adopted
12 |
13 |
14 | Имя
15 | Adopted
16 |
17 |
18 |
19 | Checked
20 | String
21 |
22 |
23 | 1000
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Catalogs/Пользователи/Пользователи.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | Пользователи
11 | Adopted
12 |
13 |
14 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписков/ИТМ_АдминистрированиеДинамическихСписков.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписков
4 |
5 | ru
6 | Администрирование динамических списков (ИТМ)
7 |
8 | true
9 | true
10 | true
11 |
12 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписковВызовСервера/Module.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 |
3 | #Область СлужебныйПрограммныйИнтерфейс
4 |
5 | // см. ИТМ_АдминистрированиеДинамическихСписков.ОбработатьНакопленныеСобытияОбновления
6 | Процедура ОбработатьНакопленныеСобытияОбновления(ИсторияОбновления) Экспорт
7 |
8 | ИТМ_АдминистрированиеДинамическихСписков.ОбработатьНакопленныеСобытияОбновления(ИсторияОбновления);
9 |
10 | КонецПроцедуры
11 |
12 | // Данные из ключа списка.
13 | //
14 | // Параметры:
15 | // КлючСписка - СправочникСсылка.КлючевыеОперации - Ключ списка
16 | //
17 | // Возвращаемое значение:
18 | // Структура - Данные из ключа списка:
19 | // * ПолноеИмяФормы - Строка - Полное имя формы
20 | // * ИмяЭлемента - Строка - Имя элемента ДС
21 | Функция ДанныеИзКлючаСписка(КлючСписка) Экспорт
22 |
23 | ПолноеИмяКлюча = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(КлючСписка, "Имя");
24 | Разделитель = ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.РазделительФормыИЭлемента();
25 | ЧастиИмениКлюча = СтрЗаменить(ПолноеИмяКлюча, Разделитель, Символы.ПС);
26 |
27 | Результат = Новый Структура;
28 | Результат.Вставить("ПолноеИмяФормы", СтрПолучитьСтроку(ЧастиИмениКлюча, 1));
29 | Результат.Вставить("ИмяЭлемента" , СтрПолучитьСтроку(ЧастиИмениКлюча, 2));
30 |
31 | Возврат Результат;
32 |
33 | КонецФункции
34 |
35 | #КонецОбласти
36 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписковВызовСервера/ИТМ_АдминистрированиеДинамическихСписковВызовСервера.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписковВызовСервера
4 |
5 | ru
6 | Администрирование динамических списков вызов сервера (ИТМ)
7 |
8 | true
9 | true
10 |
11 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписковКлиент/Module.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 |
3 | #Область СлужебныйПрограммныйИнтерфейс
4 |
5 | // Событие подключенной формы списка "ПриОткрытии"
6 | //
7 | // Параметры:
8 | // Форма - ФормаКлиентскогоПриложения - Управляемое форма
9 | // Отказ - Булево - Признак отказа
10 | //
11 | Процедура ПриОткрытии(Форма, Отказ = Ложь) Экспорт
12 |
13 | НастройкиНаФорме = ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.НастройкиНаФорме(Форма);
14 | НастройкиНаФорме.ФормаОткрыта = Истина;
15 |
16 | СтандартнаяОбработка = Истина;
17 | ИТМ_АдминистрированиеДинамическихСписковКлиентПереопределяемый.ПередВыполнениемПриОткрытии(
18 | Форма, Отказ, НастройкиНаФорме, СтандартнаяОбработка);
19 | Если НЕ СтандартнаяОбработка Тогда
20 | Возврат;
21 | КонецЕсли;
22 |
23 | Если ЗначениеЗаполнено(НастройкиНаФорме.ТекстЗапретаОткрытия) Тогда
24 | ПоказатьПредупреждение(Неопределено, НастройкиНаФорме.ТекстЗапретаОткрытия);
25 | Отказ = Истина;
26 | КонецЕсли;
27 |
28 | Для Каждого КлючИЗначение Из НастройкиНаФорме.Настройки Цикл
29 |
30 | ТекущиеНастройки = КлючИЗначение.Значение; //см. ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ШаблонПараметровДинамическогоСписка
31 | ИсторияОбновления = ТекущиеНастройки.ИсторияОбновления;
32 |
33 | Если ИсторияОбновления.Использование
34 | И УспешноОбработаныНакопленныеСобытияОбновления(Форма) Тогда //Проверка на наличие метода
35 |
36 | ПодключитьОбработчикОжиданияОбновленияНакопленныхСобытий(Форма, ИсторияОбновления.ЧастотаЗаписи);
37 |
38 | КонецЕсли;
39 |
40 | КонецЦикла;
41 |
42 | ИТМ_АдминистрированиеДинамическихСписковКлиентПереопределяемый.ПослеВыполненияПриОткрытии(Форма, Отказ);
43 |
44 | КонецПроцедуры
45 |
46 | // Событие подключенной формы списка "ПриЗакрытии"
47 | //
48 | // Параметры:
49 | // Форма - ФормаКлиентскогоПриложения - Управляемое форма
50 | // ЗавершениеРаботы - Булево - Признак того, что форма закрывается в процессе завершения работы приложения
51 | //
52 | Процедура ПриЗакрытии(Форма, ЗавершениеРаботы) Экспорт
53 |
54 | СтандартнаяОбработка = Истина;
55 | ИТМ_АдминистрированиеДинамическихСписковКлиентПереопределяемый.ПередВыполнениемПриЗакрытии(
56 | Форма, ЗавершениеРаботы, СтандартнаяОбработка);
57 | Если НЕ СтандартнаяОбработка Тогда
58 | Возврат;
59 | КонецЕсли;
60 |
61 | Если НЕ ЗавершениеРаботы Тогда
62 | Попытка
63 | ВыполнитьМетодОбработатьНакопленныеСобытияОбновления(Форма);
64 | Исключение
65 | Возврат;
66 | КонецПопытки;
67 | КонецЕсли;
68 |
69 | КонецПроцедуры
70 |
71 | // Процедура - Обработать накопленные события обновления
72 | //
73 | // Параметры:
74 | // Форма - ФормаКлиентскогоПриложения - Форма
75 | //
76 | Процедура ОбработатьНакопленныеСобытияОбновления(Форма) Экспорт
77 |
78 | ПовторитьЧерез = Неопределено;
79 |
80 | НастройкиСписков = ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.НастройкиНаФорме(Форма);
81 | Если НастройкиСписков = Неопределено Тогда
82 | Возврат;
83 | КонецЕсли;
84 |
85 | Для Каждого КлючИЗначение Из НастройкиСписков.Настройки Цикл
86 | НастройкиСписка = КлючИЗначение.Значение; //см. ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ШаблонПараметровДинамическогоСписка
87 | ЗафиксироватьНакопленныеОбновленияДинамическихСписковПоНастройкеСписка(НастройкиСписка, ПовторитьЧерез);
88 | КонецЦикла;
89 |
90 | ПодключитьОбработчикОжиданияОбновленияНакопленныхСобытий(Форма, ПовторитьЧерез);
91 |
92 | КонецПроцедуры
93 |
94 | // Параметры открытия формы выбора ключа списка.
95 | //
96 | // Возвращаемое значение:
97 | // Структура - Параметры открытия формы выбора ключа списка:
98 | // * Владелец - Неопределено, Произвольный - Владелец формы
99 | // * ТолькоПросмотр - Неопределено, Булево - Только просмотр
100 | // * ОписаниеОповещения - Неопределено, ОписаниеОповещения - Описание оповещения об закрытии
101 | // * Отбор - Структура -:
102 | // ** ЕстьНастройка - Неопределено, Булево - Значение отбора (если задано)
103 | Функция ПараметрыОткрытияФормыВыбораКлючаСписка() Экспорт
104 |
105 | ПараметрыОткрытия = Новый Структура;
106 | ПараметрыОткрытия.Вставить("Владелец", Неопределено);
107 | ПараметрыОткрытия.Вставить("ТолькоПросмотр", Неопределено);
108 | ПараметрыОткрытия.Вставить("ОписаниеОповещения", Неопределено);
109 |
110 | ПараметрыОткрытия.Вставить("Отбор", Новый Структура("ЕстьНастройка", Неопределено));
111 |
112 | Возврат ПараметрыОткрытия;
113 |
114 | КонецФункции
115 |
116 | // Открыть форму выбора ключа списка.
117 | //
118 | // Параметры:
119 | // ПараметрыОткрытия - см. ПараметрыОткрытияФормыВыбораКлючаСписка
120 | Процедура ОткрытьФормуВыбораКлючаСписка(ПараметрыОткрытия) Экспорт
121 |
122 | ПараметрыФормы = Новый Структура;
123 |
124 | ОтборФормы = Новый Структура;
125 | Для Каждого КлючИЗначение Из ПараметрыОткрытия.Отбор Цикл
126 | Если НЕ КлючИЗначение.Значение = Неопределено Тогда
127 | ТекущийКлюч = КлючИЗначение.Ключ; //Строка
128 | ОтборФормы.Вставить(ТекущийКлюч, КлючИЗначение.Значение);
129 | КонецЕсли;
130 | КонецЦикла;
131 |
132 | Если ЗначениеЗаполнено(ОтборФормы) Тогда
133 | ПараметрыФормы.Вставить("Отбор", ОтборФормы);
134 | КонецЕсли;
135 |
136 | Если ПараметрыОткрытия.ТолькоПросмотр <> Неопределено Тогда
137 | ПараметрыФормы.Вставить("ТолькоПросмотр", ПараметрыОткрытия.ТолькоПросмотр);
138 | КонецЕсли;
139 |
140 | //@skip-check invocation-parameter-type-intersect - Баг ЕДТ
141 | ОткрытьФорму("РегистрСведений.ИТМ_НастройкиДинамическихСписков.Форма.ФормаВыбораКлюча",
142 | ПараметрыФормы, ПараметрыОткрытия.Владелец, , , ,
143 | ПараметрыОткрытия.ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
144 |
145 | КонецПроцедуры
146 |
147 | #КонецОбласти
148 |
149 | #Область СлужебныеПроцедурыИФункции
150 |
151 | // Подключить обработчик ожидания обновления накопленных событий.
152 | //
153 | // Параметры:
154 | // Форма - ФормаКлиентскогоПриложения - Форма
155 | // Интервал - Неопределено - Интервал
156 | Процедура ПодключитьОбработчикОжиданияОбновленияНакопленныхСобытий(Форма, Интервал)
157 |
158 | Если ТипЗнч(Интервал) = Тип("Число") И Интервал > 0 Тогда
159 | Форма.ПодключитьОбработчикОжидания("ИТМ_ОбработатьНакопленныеСобытияОбновления", Интервал, Истина);
160 | КонецЕсли;
161 |
162 | КонецПроцедуры
163 |
164 | // Выполняет метод формы по обработке накопленных событий обновления.
165 | // Если не удалось выполнить, то считаем, что либо метода нет, либо он содержит ошибку.
166 | // Если есть ошибка, то метод нельзя подключать в качестве обработчика ожидания.
167 | //
168 | // Параметры:
169 | // Форма - ФормаКлиентскогоПриложения - Форма
170 | //
171 | // Возвращаемое значение:
172 | // Булево - Признак успеха
173 | //
174 | Функция УспешноОбработаныНакопленныеСобытияОбновления(Форма)
175 |
176 | Попытка
177 | ВыполнитьМетодОбработатьНакопленныеСобытияОбновления(Форма);
178 | Возврат Истина;
179 | Исключение
180 | Возврат Ложь; //На случай, если метода нет
181 | КонецПопытки;
182 |
183 | КонецФункции
184 |
185 | // Зафиксировать накопленные обновления динамических списков по настройке списка.
186 | //
187 | // Параметры:
188 | // НастройкиСписка - см. ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ШаблонПараметровДинамическогоСписка
189 | // ПовторитьЧерез - Число, Неопределено - Повторить через указанное число секунд
190 | Процедура ЗафиксироватьНакопленныеОбновленияДинамическихСписковПоНастройкеСписка(НастройкиСписка, ПовторитьЧерез)
191 |
192 | ИсторияОбновления = НастройкиСписка.ИсторияОбновления;
193 | ЧастотаЗаписи = ИсторияОбновления.ЧастотаЗаписи;
194 |
195 | Если НЕ НастройкиСписка.Использование ИЛИ НЕ ИсторияОбновления.Использование ИЛИ ЧастотаЗаписи = 0 Тогда
196 | Возврат;
197 | КонецЕсли;
198 |
199 | Если ПовторитьЧерез = Неопределено Тогда
200 | ПовторитьЧерез = ЧастотаЗаписи;
201 | Иначе
202 | ПовторитьЧерез = Мин(ПовторитьЧерез, ЧастотаЗаписи);
203 | КонецЕсли;
204 |
205 | ИТМ_АдминистрированиеДинамическихСписковВызовСервера.ОбработатьНакопленныеСобытияОбновления(ИсторияОбновления);
206 |
207 | КонецПроцедуры
208 |
209 | // Выполнить метод обработать накопленные события обновления.
210 | //
211 | // Параметры:
212 | // Форма - ФормаКлиентскогоПриложения
213 | Процедура ВыполнитьМетодОбработатьНакопленныеСобытияОбновления(Форма)
214 |
215 | //@skip-check dynamic-access-method-not-found
216 | Форма.ИТМ_ОбработатьНакопленныеСобытияОбновления();
217 |
218 | КонецПроцедуры
219 |
220 | #КонецОбласти
221 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписковКлиент/ИТМ_АдминистрированиеДинамическихСписковКлиент.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписковКлиент
4 |
5 | ru
6 | Администрирование динамических списков клиент (ИТМ)
7 |
8 | true
9 | true
10 |
11 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписковКлиентПереопределяемый/Module.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 | // @skip-check module-empty-method
3 |
4 | #Область СлужебныйПрограммныйИнтерфейс
5 |
6 | // Выполняется перед событием подключенной формы списка "ПриОткрытии"
7 | //
8 | // Параметры:
9 | // Форма - ФормаКлиентскогоПриложения - Управляемое форма
10 | // Отказ - Булево - Признак отказа
11 | // НастройкиНаФорме - см. ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.НастройкиНаФорме
12 | // СтандартнаяОбработка - Булево - Признак стандартной обработки для основной процедуры
13 | //
14 | Процедура ПередВыполнениемПриОткрытии(Форма, Отказ, НастройкиНаФорме, СтандартнаяОбработка) Экспорт
15 |
16 |
17 |
18 | КонецПроцедуры
19 |
20 | // Выполняется после события подключенной формы списка "ПриОткрытии"
21 | //
22 | // Параметры:
23 | // Форма - ФормаКлиентскогоПриложения - Управляемое форма
24 | // Отказ - Булево - Признак отказа
25 | Процедура ПослеВыполненияПриОткрытии(Форма, Отказ) Экспорт
26 |
27 |
28 |
29 | КонецПроцедуры
30 |
31 | // Выполняется перед событием подключенной формы списка "ПриЗакрытии"
32 | //
33 | // Параметры:
34 | // Форма - ФормаКлиентскогоПриложения - Управляемое форма
35 | // ЗавершениеРаботы - Булево - Признак того, что форма закрывается в процессе завершения работы приложения
36 | // СтандартнаяОбработка - Булево - Признак стандартной обработки для основной процедуры
37 | Процедура ПередВыполнениемПриЗакрытии(Форма, ЗавершениеРаботы, СтандартнаяОбработка) Экспорт
38 |
39 |
40 |
41 | КонецПроцедуры
42 |
43 | #КонецОбласти
44 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписковКлиентПереопределяемый/ИТМ_АдминистрированиеДинамическихСписковКлиентПереопределяемый.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписковКлиентПереопределяемый
4 |
5 | ru
6 | ИТМ администрирование динамических списков клиент переопределяемый
7 |
8 | true
9 | true
10 |
11 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписковКлиентСервер/ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписковКлиентСервер
4 |
5 | ru
6 | Администрирование динамических списков клиент сервер (ИТМ)
7 |
8 | true
9 | true
10 | true
11 | true
12 |
13 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписковПереопределяемый/Module.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 | // @skip-check module-empty-method
3 |
4 | #Область СлужебныйПрограммныйИнтерфейс
5 |
6 | #Область СобытияФорм
7 |
8 | // Событие подключенной формы списка "ПриСозданииНаСервере"
9 | //
10 | // Параметры:
11 | // Форма - ФормаКлиентскогоПриложения - Управляемая форма
12 | // ДополнительныеПараметры - Структура, Неопределено - Дополнительные параметры
13 | //
14 | Процедура ПриСозданииНаСервере(Форма, Знач ДополнительныеПараметры = Неопределено) Экспорт
15 |
16 |
17 |
18 | КонецПроцедуры
19 |
20 | #КонецОбласти
21 |
22 | #Область ПрименениеНастроек
23 |
24 | // Выполняется перед применением настройки подсистемы к списку.
25 | //
26 | // Параметры:
27 | // Форма - ФормаКлиентскогоПриложения - Форма
28 | // ОбщиеНастройки - см. ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.НастройкиНаФорме
29 | // НастройкиСписка - см. ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ШаблонПараметровДинамическогоСписка
30 | // СтандартнаяОбработка - Булево - Признак стандартной обработки для основной процедуры
31 | //
32 | Процедура ПередПрименениемНастройкиПодсистемыКСписку(Форма, ОбщиеНастройки, НастройкиСписка, СтандартнаяОбработка) Экспорт
33 |
34 |
35 |
36 | КонецПроцедуры
37 |
38 | // Выполняется после применением настройки подсистемы к списку.
39 | //
40 | // Параметры:
41 | // Форма - ФормаКлиентскогоПриложения - Форма
42 | // ОбщиеНастройки - см. ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.НастройкиНаФорме
43 | // НастройкиСписка - см. ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ШаблонПараметровДинамическогоСписка
44 | //
45 | Процедура ПослеПримененияНастройкиПодсистемыКСписку(Форма, ОбщиеНастройки, НастройкиСписка) Экспорт
46 |
47 |
48 |
49 | КонецПроцедуры
50 |
51 | #КонецОбласти
52 |
53 | #КонецОбласти
54 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписковПереопределяемый/ИТМ_АдминистрированиеДинамическихСписковПереопределяемый.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписковПереопределяемый
4 |
5 | ru
6 | Администрирование динамических списков переопределяемый
7 |
8 | true
9 | true
10 | true
11 |
12 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписковПовтИсп/Module.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 |
3 | #Область СлужебныйПрограммныйИнтерфейс
4 |
5 | // Возвращает массив полей таблицы, которые входят в состав одного из индексов
6 | //
7 | // Параметры:
8 | // ПолноеИмяМетаданных - Строка - Полное имя таблицы. Например, "Справочник.Валюты"
9 | // ПриводитьКВерхнемуРегистру - Булево - Нужно ли приводить имена полей к верхнему регистру
10 | //
11 | // Возвращаемое значение:
12 | // ФиксированныйМассив из Строка - индексируемые поля
13 | //
14 | Функция ИндексируемыеПоляМетаданных(ПолноеИмяМетаданных, ПриводитьКВерхнемуРегистру = Истина) Экспорт
15 |
16 | ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяМетаданных);
17 | Если ОбъектМетаданных = Неопределено Тогда
18 | Возврат Новый ФиксированныйМассив(Новый Массив);
19 | КонецЕсли;
20 |
21 | ИндексируемыеПоля = Новый Массив;
22 | ИскомыеОбъекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОбъектМетаданных);
23 | СтруктураХранения = ПолучитьСтруктуруХраненияБазыДанных(ИскомыеОбъекты);
24 | ТекущаяСтруктура = СтруктураХранения.НайтиСтроки(Новый Структура("Назначение", "Основная"));
25 |
26 | Для Каждого ОписаниеТаблицы Из ТекущаяСтруктура Цикл
27 | //@skip-check property-return-type, variable-value-type - Баг ЕДТ
28 | Для Каждого ОписаниеИндекса Из ОписаниеТаблицы.Индексы Цикл
29 | //@skip-check property-return-type - баг ЕДТ
30 | Для Каждого ОписаниеПоля Из ОписаниеИндекса.Поля Цикл
31 | //@skip-check invocation-parameter-type-intersect - баг ЕДТ
32 | ИндексируемыеПоляМетаданных_ДобавитьВМассив(ОписаниеПоля, ПриводитьКВерхнемуРегистру, ИндексируемыеПоля);
33 | КонецЦикла;
34 | КонецЦикла;
35 | КонецЦикла;
36 |
37 | Возврат Новый ФиксированныйМассив(ИндексируемыеПоля);
38 |
39 | КонецФункции
40 |
41 | // Функция возвращает текущего пользователя
42 | //
43 | // Возвращаемое значение:
44 | // СправочникСсылка.Пользователи, Строка - Пользователь или его имя
45 | //
46 | Функция ТекущийПользователь() Экспорт
47 |
48 | Попытка
49 | ТекущийПользователь = Пользователи.ТекущийПользователь();
50 | Исключение
51 | ТекущийПользователь = Неопределено;
52 | КонецПопытки;
53 |
54 | Если НЕ ЗначениеЗаполнено(ТекущийПользователь) Тогда
55 | ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя;
56 | КонецЕсли;
57 |
58 | Возврат ТекущийПользователь;
59 |
60 | КонецФункции
61 |
62 | // Функция возвращает ключевую операцию по полному имени ключа
63 | //
64 | // Параметры:
65 | // ИмяКлючевойОперации - Строка, СправочникСсылка.КлючевыеОперации - Полное имя ключа
66 | //
67 | // Возвращаемое значение:
68 | // СправочникСсылка.КлючевыеОперации - Ключевая операция
69 | //
70 | Функция ПолучитьКлючевуюОперацию(ИмяКлючевойОперации) Экспорт
71 |
72 | Если ТипЗнч(ИмяКлючевойОперации) = Тип("СправочникСсылка.КлючевыеОперации") Тогда
73 | Возврат ИмяКлючевойОперации;
74 | КонецЕсли;
75 |
76 | УстановитьПривилегированныйРежим(Истина);
77 |
78 | Запрос = Новый Запрос;
79 | Запрос.Текст =
80 | "ВЫБРАТЬ ПЕРВЫЕ 1
81 | | КлючевыеОперации.Ссылка КАК Ссылка
82 | |ИЗ
83 | | Справочник.КлючевыеОперации КАК КлючевыеОперации
84 | |ГДЕ
85 | | КлючевыеОперации.ИмяХеш = &ИмяХеш
86 | |
87 | |УПОРЯДОЧИТЬ ПО
88 | | Ссылка";
89 |
90 | ХешMD5 = Новый ХешированиеДанных(ХешФункция.MD5);
91 | ХешMD5.Добавить(ИмяКлючевойОперации);
92 | ИмяХеш = СтрЗаменить(Строка(ХешMD5.ХешСумма), " ", "");
93 |
94 | Запрос.УстановитьПараметр("ИмяХеш", ИмяХеш);
95 | РезультатЗапроса = Запрос.Выполнить();
96 | Если РезультатЗапроса.Пустой() Тогда
97 |
98 | КлючеваяОперацияСсылка = ОценкаПроизводительности.СоздатьКлючевуюОперацию(ИмяКлючевойОперации, 1, Ложь);
99 | ИТМ_АдминистрированиеДинамическихСписков.НормализоватьНаименованияКлючевойОперации(КлючеваяОперацияСсылка);
100 |
101 | Иначе
102 |
103 | Выборка = РезультатЗапроса.Выбрать();
104 | Выборка.Следующий();
105 | КлючеваяОперацияСсылка = Выборка.Получить(0); //СправочникСсылка.КлючевыеОперации
106 |
107 | КонецЕсли;
108 |
109 | Возврат КлючеваяОперацияСсылка;
110 |
111 | КонецФункции
112 |
113 | #КонецОбласти
114 |
115 | #Область СлужебныеПроцедурыИФункции
116 |
117 | // Индексируемые поля метаданных добавить в массив.
118 | //
119 | // Параметры:
120 | // ОписаниеПоля - СтрокаТаблицыЗначений:
121 | // * ИмяПоля - Строка
122 | // ПриводитьКВерхнемуРегистру - Булево - Приводить к верхнему регистру
123 | // ИндексируемыеПоля - Массив из Строка - Индексируемые поля
124 | Процедура ИндексируемыеПоляМетаданных_ДобавитьВМассив(ОписаниеПоля, ПриводитьКВерхнемуРегистру, ИндексируемыеПоля)
125 |
126 | ИмяПоля = ОписаниеПоля.ИмяПоля;
127 | Если ЗначениеЗаполнено(ИмяПоля) Тогда
128 |
129 | Если ПриводитьКВерхнемуРегистру Тогда
130 | ИмяПоля = ВРег(ИмяПоля);
131 | КонецЕсли;
132 |
133 | ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ДобавитьВМассивСПроверкой(ИндексируемыеПоля, ИмяПоля);
134 |
135 | КонецЕсли;
136 |
137 | КонецПроцедуры
138 |
139 | #КонецОбласти
140 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/CommonModules/ИТМ_АдминистрированиеДинамическихСписковПовтИсп/ИТМ_АдминистрированиеДинамическихСписковПовтИсп.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписковПовтИсп
4 |
5 | ru
6 | Администрирование динамических списков повт исп (ИТМ)
7 |
8 | true
9 | true
10 | true
11 | DuringSession
12 |
13 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Configuration/Configuration.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписков
4 |
5 | ru
6 | Администрирование динамических списков (ИТМ)
7 |
8 | Adopted
9 |
10 | Checked
11 | Checked
12 | Checked
13 | Checked
14 | Notify
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | true
24 | ИТМ_
25 | 8.3.21
26 | AddOn
27 | ManagedApplication
28 | PersonalComputer
29 | Russian
30 | 1.0.1
31 | Language.Русский
32 | TaxiEnableVersion8_2
33 | 8.3.21
34 |
35 | Русский
36 | Adopted
37 |
38 | Checked
39 |
40 | ru
41 |
42 | Subsystem.ИТМ_АдминистрированиеДинамическихСписков
43 | Role.ИТМ_ИзменениеИсторияОбновленияДинамическихСписков
44 | Role.ИТМ_ИзменениеНастройкиДинамическихСписков
45 | Role.ИТМ_ЧтениеИсторияОбновленияДинамическихСписков
46 | Role.ИТМ_ЧтениеНастройкиДинамическихСписков
47 | CommonModule.ИТМ_АдминистрированиеДинамическихСписков
48 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковВызовСервера
49 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковКлиент
50 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковКлиентПереопределяемый
51 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковКлиентСервер
52 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковПереопределяемый
53 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковПовтИсп
54 | Catalog.КлючевыеОперации
55 | Catalog.Пользователи
56 | InformationRegister.ИТМ_ИсторияОбновленияДинамическихСписков
57 | InformationRegister.ИТМ_НастройкиДинамическихСписков
58 |
59 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_ИсторияОбновленияДинамическихСписков/Forms/ФормаЗаписи/Module.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 |
3 | #Область ОбработчикиСобытийФормы
4 |
5 | &НаСервере
6 | Процедура ПриЧтенииНаСервере(ТекущийОбъект)
7 |
8 | Настройки = НастройкиИзЗаписи();
9 | Если НЕ ТипЗнч(Настройки) = Тип("НастройкиКомпоновкиДанных") Тогда
10 | Возврат;
11 | КонецЕсли;
12 |
13 | КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
14 |
15 | НастройкиXML = ОбщегоНазначения.ЗначениеВСтрокуXML(Настройки);
16 |
17 | КонецПроцедуры
18 |
19 | #КонецОбласти
20 |
21 | #Область ОбработчикиСобытийЭлементовТаблицыФормыКомпоновщикНастроекНастройкиОтбор
22 |
23 | // Компоновщик настроек настройки отбор выбор.
24 | //
25 | // Параметры:
26 | // Элемент - ТаблицаФормы - Элемент
27 | // ВыбраннаяСтрока - Число - Выбранная строка
28 | // Поле - ПолеФормы - Поле
29 | // СтандартнаяОбработка - Булево - Стандартная обработка
30 | &НаКлиенте
31 | Процедура КомпоновщикНастроекНастройкиОтборВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
32 |
33 | ПоказатьЗначениеВыбраннойЯчейки(Элемент, ВыбраннаяСтрока, Поле);
34 |
35 | КонецПроцедуры
36 |
37 | #КонецОбласти
38 |
39 | #Область ОбработчикиСобытийЭлементовТаблицыФормыКомпоновщикНастроекНастройкиПараметрыДанных
40 |
41 | // Компоновщик настроек настройки параметры данных выбор.
42 | //
43 | // Параметры:
44 | // Элемент - ТаблицаФормы - Элемент
45 | // ВыбраннаяСтрока - Число - Выбранная строка
46 | // Поле - ПолеФормы - Поле
47 | // СтандартнаяОбработка - Булево - Стандартная обработка
48 | &НаКлиенте
49 | Процедура КомпоновщикНастроекНастройкиПараметрыДанныхВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
50 |
51 | ПоказатьЗначениеВыбраннойЯчейки(Элемент, ВыбраннаяСтрока, Поле);
52 |
53 | КонецПроцедуры
54 |
55 | #КонецОбласти
56 |
57 | #Область ОбработчикиКомандФормы
58 |
59 | &НаКлиенте
60 | Процедура Команда_ОткрытьФормуСписка(Команда)
61 |
62 | ОткрытьФормуСписка(Ложь);
63 |
64 | КонецПроцедуры
65 |
66 | &НаКлиенте
67 | Асинх Процедура Команда_ОткрытьФормуСпискаСНастройками(Команда)
68 |
69 | ТекстВопроса = "Будет открыта форма списка с передачей текущих настроек.
70 | |Все настройки можно увидеть в 'Настроить список'.
71 | |При этом ограничения применяться не будут.
72 | |Продолжить?";
73 | Ответ = Ждать ВопросАсинх(ТекстВопроса, РежимДиалогаВопрос.ДаНет); //КодВозвратаДиалога
74 | Если Ответ = КодВозвратаДиалога.Да Тогда
75 | ОткрытьФормуСписка(Истина);
76 | КонецЕсли;
77 |
78 | КонецПроцедуры
79 |
80 | #КонецОбласти
81 |
82 | #Область СлужебныеПроцедурыИФункции
83 |
84 | // Показать значение выбранной ячейки.
85 | //
86 | // Параметры:
87 | // Элемент - ТаблицаФормы - Элемент
88 | // ВыбраннаяСтрока - Число - Выбранная строка
89 | // Поле - ПолеФормы - Поле
90 | &НаКлиенте
91 | Процедура ПоказатьЗначениеВыбраннойЯчейки(Элемент, ВыбраннаяСтрока, Поле)
92 |
93 | ТекущиеДанные = Элемент.ТекущиеДанные;
94 | Если ТекущиеДанные = Неопределено Тогда
95 | Возврат;
96 | КонецЕсли;
97 |
98 | ИмяТаблицы = Элемент.Имя;
99 | ИмяКолонки = СтрЗаменить(Поле.Имя, ИмяТаблицы, "");
100 |
101 | Если ПустаяСтрока(ИмяКолонки) Тогда
102 | Возврат;
103 | КонецЕсли;
104 |
105 | ТекущееЗначение = Неопределено;
106 | Если ТекущиеДанные.Свойство(ИмяКолонки, ТекущееЗначение) Тогда
107 | ПоказатьЗначение(, ТекущееЗначение);
108 | КонецЕсли;
109 |
110 | КонецПроцедуры
111 |
112 | // Открыть форму списка.
113 | //
114 | // Параметры:
115 | // СПередачейНастроек - Булево - С передачей настроек
116 | &НаКлиенте
117 | Процедура ОткрытьФормуСписка(СПередачейНастроек)
118 |
119 | ПараметрыОткрытия = ПараметрыОткрытияФормыСписка(СПередачейНастроек);
120 |
121 | ОткрытьФорму(ПараметрыОткрытия.ИмяФормы, ПараметрыОткрытия.Параметры, ЭтотОбъект);
122 |
123 | КонецПроцедуры
124 |
125 | // Параметры открытия формы списка.
126 | //
127 | // Параметры:
128 | // СПередачейНастроек - Булево - С передачей настроек
129 | //
130 | // Возвращаемое значение:
131 | // Структура - Параметры открытия формы списка:
132 | // * ИмяФормы - Строка - Имя формы
133 | // * Параметры - Структура - Параметры открытия формы
134 | &НаСервере
135 | Функция ПараметрыОткрытияФормыСписка(СПередачейНастроек)
136 |
137 | ДанныеКлючаСписка = ИТМ_АдминистрированиеДинамическихСписковВызовСервера.ДанныеИзКлючаСписка(Запись.КлючСписка);
138 |
139 | ПараметрыОткрытия = Новый Структура;
140 | ПараметрыОткрытия.Вставить("ИмяФормы" , ДанныеКлючаСписка.ПолноеИмяФормы);
141 | ПараметрыОткрытия.Вставить("Параметры", Новый Структура);
142 |
143 | Если СПередачейНастроек Тогда
144 |
145 | ПараметрыОтладки = ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ШаблонПараметровОтладки();
146 | ПараметрыОтладки.РежимОткрытияНастроек = Истина;
147 | ПараметрыОтладки.Настройки = НастройкиИзЗаписи();
148 |
149 | Если ТипЗнч(ПараметрыОтладки.Настройки) <> Тип("НастройкиКомпоновкиДанных") Тогда
150 | ВызватьИсключение "В записи истории не содержатся настройки!";
151 | КонецЕсли;
152 |
153 | ПараметрыОтладки = Новый Структура(ДанныеКлючаСписка.ИмяЭлемента, ПараметрыОтладки);
154 |
155 | ПараметрыОткрытия.Параметры.Вставить(
156 | ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ИмяПараметровОтладкиНаФорме(), ПараметрыОтладки);
157 |
158 | КонецЕсли;
159 |
160 | Возврат ПараметрыОткрытия;
161 |
162 | КонецФункции
163 |
164 | // Настройки из записи.
165 | //
166 | // Возвращаемое значение:
167 | // НастройкиКомпоновкиДанных
168 | &НаСервере
169 | Функция НастройкиИзЗаписи()
170 |
171 | МетаданныеРегистра = Метаданные.РегистрыСведений.ИТМ_ИсторияОбновленияДинамическихСписков;
172 |
173 | ЗначенияКлюча = Новый Структура();
174 | Для Каждого ОписаниеИзмерения Из МетаданныеРегистра.Измерения Цикл
175 | ЗначенияКлюча.Вставить(ОписаниеИзмерения.Имя);
176 | КонецЦикла;
177 |
178 | ЗаполнитьЗначенияСвойств(ЗначенияКлюча, Запись.ИсходныйКлючЗаписи);
179 |
180 | ДанныеЗаписи = РегистрыСведений.ИТМ_ИсторияОбновленияДинамическихСписков.Получить(ЗначенияКлюча);
181 |
182 | Настройки = Неопределено; //ХранилищеЗначения
183 | ДанныеЗаписи.Свойство("Настройки", Настройки);
184 |
185 | Если ТипЗнч(Настройки) = Тип("ХранилищеЗначения") Тогда
186 | Возврат Настройки.Получить();
187 | Иначе
188 | Возврат Неопределено;
189 | КонецЕсли;
190 |
191 | КонецФункции
192 |
193 | #КонецОбласти
194 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_ИсторияОбновленияДинамическихСписков/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Normal
5 | dfcece9d-5077-440b-b6b3-45a5cb4538eb
6 |
7 |
8 | Normal
9 | 88619765-ccb3-46c6-ac52-38e9c992ebd4
10 |
11 |
12 | Normal
13 | b75fecce-942b-4aed-abc9-e6a02e460fb3
14 |
15 | Normal
16 | 911b6018-f537-43e8-a417-da56b22f9aec
17 |
18 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_ИсторияОбновленияДинамическихСписков/Forms/ФормаСписка/Module.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 |
3 | #Область ОбработчикиСобытийФормы
4 |
5 | &НаСервере
6 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
7 |
8 | ОтборКлючСписка = Параметры.ОтборКлючСписка;
9 | ОбновитьОтборКлючаСписка();
10 |
11 | КонецПроцедуры
12 |
13 | &НаСервере
14 | Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
15 |
16 | ОбновитьОтборКлючаСписка();
17 |
18 | КонецПроцедуры
19 |
20 | #КонецОбласти
21 |
22 | #Область ОбработчикиСобытийЭлементовШапкиФормы
23 |
24 | &НаКлиенте
25 | Процедура ОтборКлючСпискаПриИзменении(Элемент)
26 |
27 | ОбновитьОтборКлючаСписка();
28 |
29 | КонецПроцедуры
30 |
31 | &НаКлиенте
32 | Процедура ОтборКлючСпискаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
33 |
34 | СтандартнаяОбработка = Ложь;
35 |
36 | ПараметрыОткрытия = ИТМ_АдминистрированиеДинамическихСписковКлиент.ПараметрыОткрытияФормыВыбораКлючаСписка();
37 | ПараметрыОткрытия.Отбор.ЕстьНастройка = Истина;
38 | ПараметрыОткрытия.ТолькоПросмотр = Истина;
39 | ПараметрыОткрытия.Владелец = Элемент;
40 |
41 | ИТМ_АдминистрированиеДинамическихСписковКлиент.ОткрытьФормуВыбораКлючаСписка(ПараметрыОткрытия);
42 |
43 | КонецПроцедуры
44 |
45 | #КонецОбласти
46 |
47 | #Область СлужебныеПроцедурыИФункции
48 |
49 | &НаСервере
50 | Процедура ОбновитьОтборКлючаСписка()
51 |
52 | ПараметрКлючСписка = Список.Параметры.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КлючСписка"));
53 |
54 | Если ПараметрКлючСписка <> Неопределено Тогда
55 |
56 | НовыеСвойства = Новый Структура;
57 | НовыеСвойства.Вставить("Значение" , ОтборКлючСписка);
58 | НовыеСвойства.Вставить("Использование", ЗначениеЗаполнено(НовыеСвойства.Значение));
59 |
60 | Для Каждого КлючИЗначение Из НовыеСвойства Цикл
61 | Если ПараметрКлючСписка[КлючИЗначение.Ключ] <> КлючИЗначение.Значение Тогда
62 | ПараметрКлючСписка[КлючИЗначение.Ключ] = КлючИЗначение.Значение;
63 | КонецЕсли;
64 | КонецЦикла;
65 |
66 | КонецЕсли;
67 |
68 | КонецПроцедуры
69 |
70 | #КонецОбласти
71 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_ИсторияОбновленияДинамическихСписков/ManagerModule.bsl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magnit-tech/one-s-dynamic-list-administration/ae34c37e301ff63cc506e0b7f22ed5e2efbca583/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_ИсторияОбновленияДинамическихСписков/ManagerModule.bsl
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_ИсторияОбновленияДинамическихСписков/RecordSetModule.bsl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magnit-tech/one-s-dynamic-list-administration/ae34c37e301ff63cc506e0b7f22ed5e2efbca583/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_ИсторияОбновленияДинамическихСписков/RecordSetModule.bsl
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_ИсторияОбновленияДинамическихСписков/ИТМ_ИсторияОбновленияДинамическихСписков.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | ИТМ_ИсторияОбновленияДинамическихСписков
13 |
14 | ru
15 | История обновления динамических списков (ИТМ)
16 |
17 | true
18 | InDialog
19 | InformationRegister.ИТМ_ИсторияОбновленияДинамическихСписков.Form.ФормаЗаписи
20 | InformationRegister.ИТМ_ИсторияОбновленияДинамическихСписков.Form.ФормаСписка
21 |
22 | Use
23 | Active
24 |
25 | Use
26 |
27 |
28 |
29 |
30 | Use
31 | LineNumber
32 |
33 | Use
34 |
35 |
36 |
37 |
38 | Use
39 | Recorder
40 |
41 | Use
42 |
43 |
44 |
45 |
46 | Use
47 | Period
48 |
49 | ShowError
50 | Use
51 |
52 |
53 |
54 |
55 | ru
56 | Запись истории обновления динамического списка (ИТМ)
57 |
58 |
59 | ru
60 | Журнал истории обновления динамических списков
61 |
62 |
63 | Настройки
64 |
65 | ru
66 | Настройки
67 |
68 |
69 | ValueStorage
70 |
71 |
72 |
73 | Use
74 | Use
75 |
76 |
77 |
78 | НастройкиПредставление
79 |
80 | ru
81 | Настройки представление
82 |
83 |
84 | String
85 |
86 |
87 |
88 |
89 | Use
90 | Use
91 |
92 |
93 |
94 |
95 |
96 | ПредставлениеГруппировки
97 |
98 | ru
99 | Представление группировки
100 |
101 |
102 | String
103 |
104 | 1000
105 |
106 |
107 |
108 |
109 | Use
110 | Use
111 |
112 |
113 |
114 | ПредставлениеОтборов
115 |
116 | ru
117 | Представление отборов
118 |
119 |
120 | String
121 |
122 | 1000
123 |
124 |
125 | true
126 |
127 |
128 | Use
129 | Use
130 |
131 |
132 |
133 |
134 |
135 | ПредставлениеСортировки
136 |
137 | ru
138 | Представление сортировки
139 |
140 |
141 | String
142 |
143 | 1000
144 |
145 |
146 |
147 |
148 | Use
149 | Use
150 |
151 |
152 |
153 |
154 |
155 | ПредставлениеПараметры
156 |
157 | ru
158 | Представление параметры
159 |
160 |
161 | String
162 |
163 | 1000
164 |
165 |
166 |
167 |
168 | Use
169 | Use
170 |
171 |
172 |
173 |
174 |
175 | Комментарий
176 |
177 | ru
178 | Комментарий
179 |
180 |
181 | String
182 |
183 | 1024
184 |
185 |
186 |
187 |
188 | Use
189 | Use
190 |
191 |
192 |
193 | КлючСписка
194 |
195 | ru
196 | Ключ списка
197 |
198 |
199 | CatalogRef.КлючевыеОперации
200 |
201 |
202 |
203 | true
204 | Use
205 | Use
206 | true
207 |
208 | true
209 | true
210 |
211 |
212 | Дата
213 |
214 | ru
215 | Дата
216 |
217 |
218 | Date
219 |
220 |
221 |
222 |
223 | Index
224 | Use
225 |
226 |
227 |
228 | Пользователь
229 |
230 | ru
231 | Пользователь
232 |
233 |
234 | CatalogRef.Пользователи
235 | String
236 |
237 | 128
238 |
239 |
240 |
241 |
242 | Use
243 | Use
244 |
245 | true
246 |
247 |
248 | НомерСеанса
249 |
250 | ru
251 | Номер сеанса
252 |
253 |
254 | Number
255 |
256 | 15
257 | true
258 |
259 |
260 |
261 |
262 | Use
263 |
264 | true
265 |
266 |
267 | ДатаМиллисекунды
268 |
269 | ru
270 | Дата миллисекунды
271 |
272 |
273 | Number
274 |
275 | 14
276 | true
277 |
278 |
279 |
280 |
281 | true
282 | Index
283 | Use
284 | true
285 |
286 | true
287 |
288 |
289 | ФормаСписка
290 |
291 | ru
292 | Форма списка
293 |
294 | PersonalComputer
295 | MobileDevice
296 |
297 |
298 | ФормаЗаписи
299 |
300 | ru
301 | Форма записи
302 |
303 | PersonalComputer
304 | MobileDevice
305 |
306 |
307 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/Forms/ФормаВыбораКлюча/Attributes/Список/ExtInfo/ListSettings.dcss:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Normal
5 | dfcece9d-5077-440b-b6b3-45a5cb4538eb
6 |
7 |
8 | Normal
9 | 88619765-ccb3-46c6-ac52-38e9c992ebd4
10 |
11 |
12 | Normal
13 | b75fecce-942b-4aed-abc9-e6a02e460fb3
14 |
15 | Normal
16 | 911b6018-f537-43e8-a417-da56b22f9aec
17 |
18 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/Forms/ФормаВыбораКлюча/Form.form:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | СписокКомпоновщикНастроекПользовательскиеНастройки
5 | 1
6 | true
7 | true
8 |
9 | true
10 |
11 |
12 | ru
13 | Группа пользовательских настроек
14 |
15 | false
16 |
17 | СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка
18 | 2
19 | true
20 | true
21 |
22 | true
23 |
24 | Label
25 | true
26 | true
27 |
28 | Left
29 |
30 |
31 | UsualGroup
32 |
33 | Vertical
34 | WeakSeparation
35 | true
36 | true
37 | Auto
38 | Auto
39 |
40 |
41 |
42 | Список
43 | 3
44 | true
45 | true
46 |
47 | true
48 |
49 |
50 | Список
51 |
52 |
53 | Имя
54 | 19
55 | true
56 | true
57 |
58 | true
59 |
60 |
61 | Список.Имя
62 |
63 |
64 | ИмяРасширеннаяПодсказка
65 | 21
66 | true
67 | true
68 |
69 | true
70 |
71 | Label
72 | true
73 | true
74 |
75 | Left
76 |
77 |
78 |
79 | ИмяКонтекстноеМеню
80 | 20
81 | true
82 | true
83 |
84 | true
85 |
86 | true
87 |
88 | LabelField
89 | Enter
90 | true
91 | Left
92 | true
93 |
94 | true
95 | true
96 |
97 |
98 |
99 | Ссылка
100 | 22
101 | true
102 | true
103 |
104 |
105 | Список.Ref
106 |
107 |
108 | СсылкаРасширеннаяПодсказка
109 | 24
110 | true
111 | true
112 |
113 | true
114 |
115 | Label
116 | true
117 | true
118 |
119 | Left
120 |
121 |
122 |
123 | СсылкаКонтекстноеМеню
124 | 23
125 | true
126 | true
127 |
128 | true
129 |
130 | true
131 |
132 | LabelField
133 | Enter
134 | true
135 | Left
136 | true
137 |
138 | true
139 | true
140 |
141 |
142 | None
143 |
144 | СписокКоманднаяПанель
145 | 5
146 |
147 | СписокВыбрать
148 | 37
149 | true
150 | true
151 |
152 | true
153 |
154 |
155 | СписокВыбратьРасширеннаяПодсказка
156 | 38
157 | true
158 | true
159 |
160 | true
161 |
162 | Label
163 | true
164 | true
165 |
166 | Left
167 |
168 |
169 | Form.Item.Список.StandardCommand.Choose
170 | Auto
171 | true
172 | true
173 | UserCmds
174 | Auto
175 |
176 | true
177 | true
178 |
179 | true
180 |
181 | Left
182 |
183 |
184 | BeforeAddRow
185 | СписокПередНачаломДобавления
186 |
187 |
188 | ChoiceProcessing
189 | СписокОбработкаВыбора
190 |
191 |
192 | true
193 | true
194 |
195 | true
196 |
197 | СписокСтрокаПоиска
198 | 7
199 |
200 | СписокСтрокаПоискаРасширеннаяПодсказка
201 | 9
202 | true
203 | true
204 |
205 | true
206 |
207 | Label
208 | true
209 | true
210 |
211 | Left
212 |
213 |
214 |
215 | СписокСтрокаПоискаКонтекстноеМеню
216 | 8
217 | true
218 | true
219 |
220 | true
221 |
222 | true
223 |
224 | СписокСтрокаПоиска
225 |
226 | true
227 |
228 |
229 |
230 | true
231 | true
232 |
233 | true
234 |
235 | СписокСостояниеПросмотра
236 | 10
237 |
238 | СписокСостояниеПросмотраРасширеннаяПодсказка
239 | 12
240 | true
241 | true
242 |
243 | true
244 |
245 | Label
246 | true
247 | true
248 |
249 | Left
250 |
251 |
252 |
253 | СписокСостояниеПросмотраКонтекстноеМеню
254 | 11
255 | true
256 | true
257 |
258 | true
259 |
260 | true
261 |
262 | ViewStatusAddition
263 | СписокСостояниеПросмотра
264 |
265 | true
266 |
267 |
268 |
269 | true
270 | true
271 |
272 | true
273 |
274 | СписокУправлениеПоиском
275 | 13
276 |
277 | СписокУправлениеПоискомРасширеннаяПодсказка
278 | 15
279 | true
280 | true
281 |
282 | true
283 |
284 | Label
285 | true
286 | true
287 |
288 | Left
289 |
290 |
291 |
292 | СписокУправлениеПоискомКонтекстноеМеню
293 | 14
294 | true
295 | true
296 |
297 | true
298 |
299 | true
300 |
301 | SearchControlAddition
302 | СписокУправлениеПоиском
303 |
304 | true
305 |
306 |
307 |
308 | СписокРасширеннаяПодсказка
309 | 6
310 | true
311 | true
312 |
313 | true
314 |
315 | Label
316 | true
317 | true
318 |
319 | Left
320 |
321 |
322 |
323 | СписокКонтекстноеМеню
324 | 4
325 | true
326 | true
327 |
328 | true
329 |
330 | true
331 |
332 | true
333 | true
334 | true
335 | true
336 | true
337 | true
338 | MultiRow
339 |
340 | 1
341 | 1
342 | AutoUse
343 | AutoUse
344 | true
345 | true
346 | true
347 | Auto
348 | Auto
349 | ExpandTopLevel
350 | true
351 | true
352 | true
353 | true
354 | AsFileRef
355 |
356 | Список.DefaultPicture
357 |
358 |
359 | 60
360 |
361 | 0001-01-01T00:00:00
362 | 0001-01-01T00:00:00
363 |
364 |
365 | true
366 | true
367 | СписокКомпоновщикНастроекПользовательскиеНастройки
368 |
369 |
370 |
371 | ФормаКоманднаяПанель
372 | -1
373 | true
374 | true
375 |
376 | true
377 |
378 | Left
379 | true
380 |
381 |
382 | OnCreateAtServer
383 | ПриСозданииНаСервере
384 |
385 | Copy
386 | LockOwnerWindow
387 | true
388 | true
389 | true
390 | Vertical
391 | true
392 | true
393 | true
394 | true
395 | true
396 |
397 | Список
398 | 1
399 |
400 | DynamicList
401 |
402 |
403 | true
404 |
405 |
406 | true
407 |
408 |
409 | Список.Ref
410 |
411 | true
412 |
413 | ВЫБРАТЬ
414 | *,
415 | ИТМ_НастройкиДинамическихСписков.КлючСписка ЕСТЬ НЕ NULL КАК ЕстьНастройка
416 | ИЗ
417 | Справочник.КлючевыеОперации КАК КлючевыеОперации
418 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИТМ_НастройкиДинамическихСписков КАК ИТМ_НастройкиДинамическихСписков
419 | ПО КлючевыеОперации.Ссылка = ИТМ_НастройкиДинамическихСписков.КлючСписка
420 |
421 | ГДЕ
422 | КлючевыеОперации.Имя ПОДОБНО &ШаблонПоискаРазделителя
423 | И КлючевыеОперации.ПометкаУдаления = Ложь
424 | Catalog.КлючевыеОперации
425 | true
426 | true
427 | true
428 |
429 |
430 |
431 |
432 |
433 |
434 | 0
435 | FormCommandBarImportant
436 | 0
437 |
438 |
439 |
440 |
441 |
442 |
443 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/Forms/ФормаВыбораКлюча/Module.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 |
3 | #Область ОбработчикиСобытийФормы
4 |
5 | &НаСервере
6 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
7 |
8 | ШаблонПоискаРазделителя = ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.РазделительФормыИЭлемента();
9 | ШаблонПоискаРазделителя = СтрШаблон("%1%2%1", "%", ШаблонПоискаРазделителя);
10 | Список.Параметры.УстановитьЗначениеПараметра("ШаблонПоискаРазделителя", ШаблонПоискаРазделителя);
11 |
12 | КонецПроцедуры
13 |
14 | #КонецОбласти
15 |
16 | #Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
17 |
18 | &НаКлиенте
19 | Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
20 |
21 | Отказ = Истина;
22 | ОткрытьФорму("РегистрСведений.ИТМ_НастройкиДинамическихСписков.Форма.ФормаСозданияКлюча",,Элементы.Список);
23 |
24 | КонецПроцедуры
25 |
26 | // Список обработка выбора.
27 | //
28 | // Параметры:
29 | // Элемент - ТаблицаФормы - Элемент
30 | // ВыбранноеЗначение - Число - Выбранное значение
31 | // СтандартнаяОбработка - Булево - Стандартная обработка
32 | &НаКлиенте
33 | Процедура СписокОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
34 |
35 | СтандартнаяОбработка = Ложь;
36 | Элементы.Список.ТекущаяСтрока = ВыбранноеЗначение;
37 |
38 | КонецПроцедуры
39 |
40 | #КонецОбласти
41 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/Forms/ФормаВыбораФормы/Items/ДоступныеФормы/RowsPicture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magnit-tech/one-s-dynamic-list-administration/ae34c37e301ff63cc506e0b7f22ed5e2efbca583/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/Forms/ФормаВыбораФормы/Items/ДоступныеФормы/RowsPicture.png
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/Forms/ФормаВыбораФормы/Module.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 |
3 | #Область ОбработчикиСобытийФормы
4 |
5 | &НаСервере
6 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
7 |
8 | ЗаполнитьВспомогательныеЗначения();
9 |
10 | ЗаполнитьДеревоДоступныхФорм();
11 |
12 | КонецПроцедуры
13 |
14 | #КонецОбласти
15 |
16 | #Область ОбработчикиСобытийЭлементовТаблицыФормыДоступныеФормы
17 |
18 | // Доступные формы выбор.
19 | //
20 | // Параметры:
21 | // Элемент - ТаблицаФормы - Элемент
22 | // ВыбраннаяСтрока - Число - Выбранная строка
23 | // Поле - ПолеФормы - Поле
24 | // СтандартнаяОбработка - Булево - Стандартная обработка
25 | &НаКлиенте
26 | Процедура ДоступныеФормыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
27 |
28 | ВыбратьФорму();
29 |
30 | КонецПроцедуры
31 |
32 | #КонецОбласти
33 |
34 | #Область ОбработчикиКомандФормы
35 |
36 | &НаКлиенте
37 | Процедура КомандаВыбратьФорму(Команда)
38 |
39 | ВыбратьФорму();
40 |
41 | КонецПроцедуры
42 |
43 | #КонецОбласти
44 |
45 | #Область СлужебныеПроцедурыИФункции
46 |
47 | &НаКлиенте
48 | Процедура ВыбратьФорму()
49 |
50 | ТекущиеДанные = Элементы.ДоступныеФормы.ТекущиеДанные;
51 | Если ТекущиеДанные = Неопределено Тогда
52 | ПолноеИмя = "";
53 | Иначе
54 | ПолноеИмя = ТекущиеДанные.ПолноеИмя;
55 | КонецЕсли;
56 |
57 | ОповеститьОВыборе(ПолноеИмя);
58 |
59 | КонецПроцедуры
60 |
61 | &НаСервере
62 | Процедура ЗаполнитьВспомогательныеЗначения()
63 |
64 | ВспомогательныеЗначения = ШаблонВспомогательныхЗначений();
65 |
66 | КонецПроцедуры
67 |
68 | // Шаблон вспомогательных данных.
69 | //
70 | // Возвращаемое значение:
71 | // Структура - Шаблон вспомогательных данных:
72 | // * ИндексыКартинкиСтрокФорм - Структура -
73 | &НаСервереБезКонтекста
74 | Функция ШаблонВспомогательныхЗначений()
75 |
76 | ИндексыКартинкиСтрокФорм = Новый Структура;
77 |
78 | ИменаОбъектов = "Константа,Справочник,Документ,ПланВидовХарактеристик,ПланСчетов,
79 | |ПланВидовРасчета,РегистрСведений,РегистрНакопления,РегистрБухгалтерии,РегистрРасчета,
80 | |БизнесПроцесс,Задача,Отчет,Обработка,ВнешнийИсточникДанных,ЖурналДокументов,ПланОбмена";
81 |
82 | КоллекцияИмен = СтрРазделить(ИменаОбъектов, "," + Символы.ПС, Ложь);
83 |
84 | Для ИндексКартинки = 1 По КоллекцияИмен.Количество() Цикл
85 | ИндексыКартинкиСтрокФорм.Вставить(КоллекцияИмен[ИндексКартинки-1], ИндексКартинки);
86 | КонецЦикла;
87 |
88 | Результат = Новый Структура;
89 | Результат.Вставить("ИндексыКартинкиСтрокФорм", ИндексыКартинкиСтрокФорм);
90 |
91 | Возврат Результат;
92 |
93 | КонецФункции
94 |
95 | // Вспомогательные значения.
96 | //
97 | // Возвращаемое значение:
98 | // см. ШаблонВспомогательныхЗначений
99 | &НаСервере
100 | Функция ВспомогательныеЗначения()
101 |
102 | Возврат ВспомогательныеЗначения;
103 |
104 | КонецФункции
105 |
106 | &НаСервере
107 | Процедура ЗаполнитьДеревоДоступныхФорм()
108 |
109 | КорневыеСтроки = ДоступныеФормы.ПолучитьЭлементы();
110 | КорневыеСтроки.Очистить();
111 |
112 | Для Каждого КлючИЗначение Из МетаданныеЕдинственногоИМножественного() Цикл
113 |
114 | КлючМетаданных = КлючИЗначение.Ключ; //Строка
115 | ИмяМетаданных = КлючИЗначение.Значение;
116 |
117 | СтрокаТипаОбъектов = НовоеОписаниеДоступнойФормы(КорневыеСтроки, ИмяМетаданных);
118 | ВспомогательныеЗначения().ИндексыКартинкиСтрокФорм.Свойство(КлючМетаданных, СтрокаТипаОбъектов.Картинка);
119 |
120 | КоллекцияСтрокОбъектов = СтрокаТипаОбъектов.ПолучитьЭлементы();
121 |
122 | Для Каждого ТекущиеМетаданные Из Метаданные[ИмяМетаданных] Цикл //ОбъектМетаданных
123 |
124 | КоллекцияМетаданныхФорм = Новый Массив;
125 | СтрокаТекущегоОбъекта = Неопределено; //ДанныеФормыЭлементДерева
126 |
127 | ЗаполнитьДеревоДоступныхФорм_ОбработатьМетаданные(
128 | ТекущиеМетаданные, КоллекцияСтрокОбъектов, СтрокаТипаОбъектов,
129 | КоллекцияМетаданныхФорм, СтрокаТекущегоОбъекта);
130 |
131 | КоллекцияСтрокФорм = СтрокаТекущегоОбъекта.ПолучитьЭлементы();
132 |
133 | ЗаполнитьДеревоДоступныхФорм_ОбработатьФормы(КоллекцияМетаданныхФорм, КоллекцияСтрокФорм);
134 |
135 | Если НЕ ЗначениеЗаполнено(КоллекцияСтрокФорм) Тогда
136 | КоллекцияСтрокОбъектов.Удалить(СтрокаТекущегоОбъекта);
137 | КонецЕсли;
138 |
139 | КонецЦикла;
140 |
141 | КонецЦикла;
142 |
143 | КонецПроцедуры
144 |
145 | // Заполнить дерево доступных форм обработать метаданные.
146 | //
147 | // Параметры:
148 | // ТекущиеМетаданные - ОбъектМетаданных - Текущие метаданные
149 | // КоллекцияСтрокОбъектов - ДанныеФормыКоллекцияЭлементовДерева - Коллекция строк объектов
150 | // СтрокаТипаОбъектов - ДанныеФормыЭлементДерева - Строка типа объектов
151 | // КоллекцияМетаданныхФорм - Массив из ОбъектМетаданных - Коллекция метаданных форм
152 | // СтрокаТекущегоОбъекта - ДанныеФормыЭлементДерева, Неопределено - Строка текущего объекта
153 | &НаСервереБезКонтекста
154 | Процедура ЗаполнитьДеревоДоступныхФорм_ОбработатьМетаданные(
155 | ТекущиеМетаданные, КоллекцияСтрокОбъектов, СтрокаТипаОбъектов,
156 | КоллекцияМетаданныхФорм, СтрокаТекущегоОбъекта)
157 |
158 | Если Метаданные.ОбщиеФормы.Содержит(ТекущиеМетаданные) Тогда
159 | КоллекцияМетаданныхФорм.Добавить(ТекущиеМетаданные);
160 | СтрокаТекущегоОбъекта = СтрокаТипаОбъектов;
161 | Иначе
162 | КоллекцияМетаданныхФорм = ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.СвойствоОбъекта(
163 | ТекущиеМетаданные, "Формы"); //Массив из ОбъектМетаданных
164 | Если КоллекцияМетаданныхФорм <> Неопределено Тогда
165 | СтрокаТекущегоОбъекта = НовоеОписаниеДоступнойФормы(КоллекцияСтрокОбъектов,
166 | ТекущиеМетаданные.Имя, ТекущиеМетаданные.Синоним, СтрокаТипаОбъектов.Картинка);
167 | КонецЕсли;
168 | КонецЕсли;
169 |
170 | КонецПроцедуры
171 |
172 | // Заполнить дерево доступных форм обработать формы.
173 | //
174 | // Параметры:
175 | // КоллекцияМетаданныхФорм - Массив из ОбъектМетаданных - Коллекция метаданных форм
176 | // КоллекцияСтрокФорм - ДанныеФормыКоллекцияЭлементовДерева - Коллекция строк форм
177 | &НаСервере
178 | Процедура ЗаполнитьДеревоДоступныхФорм_ОбработатьФормы(КоллекцияМетаданныхФорм, КоллекцияСтрокФорм)
179 |
180 | Для Каждого МетаданныеФормы Из КоллекцияМетаданныхФорм Цикл //ОбъектМетаданныхФорма
181 |
182 | Если НЕ МетаданныеФормы.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая Тогда
183 | Продолжить;
184 | КонецЕсли;
185 |
186 | ОписаниеФормы = НовоеОписаниеДоступнойФормы(КоллекцияСтрокФорм);
187 | ЗаполнитьЗначенияСвойств(ОписаниеФормы, МетаданныеФормы);
188 | ОписаниеФормы.ПолноеИмя = МетаданныеФормы.ПолноеИмя();
189 | ОписаниеФормы.ЭтоФорма = Истина;
190 |
191 | Если ОписаниеФормы.ПолноеИмя = Параметры.ПолноеИмяФормы Тогда
192 | Элементы.ДоступныеФормы.ТекущаяСтрока = ОписаниеФормы.ПолучитьИдентификатор();
193 | КонецЕсли;
194 |
195 | КонецЦикла;
196 |
197 | КонецПроцедуры
198 |
199 | // Добавить описание доступной формы.
200 | //
201 | // Параметры:
202 | // КоллекцияСтрок - ДанныеФормыКоллекцияЭлементовДерева - Коллекция строк
203 | // Имя - Произвольный, Строка - Имя
204 | // Синоним - Строка - Синоним
205 | // Картинка - Число - Картинка
206 | //
207 | // Возвращаемое значение:
208 | // ДанныеФормыЭлементДерева - Добавить описание доступной формы
209 | &НаСервереБезКонтекста
210 | Функция НовоеОписаниеДоступнойФормы(КоллекцияСтрок, Имя = "", Синоним = "", Картинка = 0)
211 |
212 | ПолноеИмяФормы = "";
213 | НавигационнаяСсылка = "";
214 |
215 | НоваяСтрока = КоллекцияСтрок.Добавить();
216 | НоваяСтрока.Имя = Имя;
217 | НоваяСтрока.Синоним = ?(ПустаяСтрока(Синоним), Имя, Синоним);
218 | НоваяСтрока.Картинка = Картинка;
219 | НоваяСтрока.ПолноеИмя = ПолноеИмяФормы;
220 |
221 | НоваяСтрока.НавигационнаяСсылка = НавигационнаяСсылка;
222 |
223 | НоваяСтрока.ЭтоФорма = НЕ ПустаяСтрока(НоваяСтрока.ПолноеИмя)
224 | И НЕ ПустаяСтрока(НоваяСтрока.НавигационнаяСсылка);
225 |
226 | Возврат НоваяСтрока;
227 |
228 | КонецФункции
229 |
230 | &НаКлиентеНаСервереБезКонтекста
231 | Функция МетаданныеЕдинственногоИМножественного()
232 |
233 | Результат = Новый Структура;
234 | Результат.Вставить("ОбщаяФорма" , "ОбщиеФормы");
235 | Результат.Вставить("ПланОбмена" , "ПланыОбмена");
236 | Результат.Вставить("Справочник" , "Справочники");
237 | Результат.Вставить("Документ" , "Документы");
238 | Результат.Вставить("ЖурналДокументов" , "ЖурналыДокументов");
239 | Результат.Вставить("Перечисление" , "Перечисления");
240 | Результат.Вставить("Отчет" , "Отчеты");
241 | Результат.Вставить("Обработка" , "Обработки");
242 | Результат.Вставить("ПланВидовХарактеристик" , "ПланыВидовХарактеристик");
243 | Результат.Вставить("ПланСчетов" , "ПланыСчетов");
244 | Результат.Вставить("ПланВидовРасчета" , "ПланыВидовРасчета");
245 | Результат.Вставить("РегистрСведений" , "РегистрыСведений");
246 | Результат.Вставить("РегистрНакопления" , "РегистрыНакопления");
247 | Результат.Вставить("РегистрБухгалтерии" , "РегистрыБухгалтерии");
248 | Результат.Вставить("РегистрРасчета" , "РегистрыРасчета");
249 | Результат.Вставить("БизнесПроцесс" , "БизнесПроцессы");
250 | Результат.Вставить("Задача" , "Задачи");
251 |
252 | Возврат Результат;
253 |
254 | КонецФункции
255 |
256 | #КонецОбласти
257 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/Forms/ФормаСозданияКлюча/Form.form:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ПолноеИмяФормы
5 | 13
6 | true
7 | true
8 |
9 | true
10 |
11 |
12 | ПолноеИмяФормы
13 |
14 |
15 | OnChange
16 | ПолноеИмяФормыПриИзменении
17 |
18 |
19 | ПолноеИмяФормыРасширеннаяПодсказка
20 | 15
21 | true
22 | true
23 |
24 | true
25 |
26 | Label
27 | true
28 | true
29 |
30 | Left
31 |
32 |
33 |
34 | ПолноеИмяФормыКонтекстноеМеню
35 | 14
36 | true
37 | true
38 |
39 | true
40 |
41 | true
42 |
43 | InputField
44 | Enter
45 | true
46 | Left
47 | true
48 |
49 |
50 | StartChoice
51 | ПолноеИмяФормыНачалоВыбора
52 |
53 |
54 | ChoiceProcessing
55 | ПолноеИмяФормыОбработкаВыбора
56 |
57 | true
58 | true
59 | true
60 | true
61 | true
62 | true
63 | true
64 |
65 |
66 |
67 | ИмяЭлементаСписка
68 | 4
69 | true
70 | true
71 |
72 | true
73 |
74 |
75 | ИмяЭлементаСписка
76 |
77 |
78 | OnChange
79 | ИмяЭлементаСпискаПриИзменении
80 |
81 |
82 | ИмяЭлементаСпискаРасширеннаяПодсказка
83 | 6
84 | true
85 | true
86 |
87 | true
88 |
89 | Label
90 | true
91 | true
92 |
93 | Left
94 |
95 |
96 |
97 | ИмяЭлементаСпискаКонтекстноеМеню
98 | 5
99 | true
100 | true
101 |
102 | true
103 |
104 | true
105 |
106 | InputField
107 | Enter
108 | true
109 | Left
110 | true
111 |
112 |
113 | StartChoice
114 | ИмяЭлементаСпискаНачалоВыбора
115 |
116 | true
117 | true
118 | true
119 | true
120 | true
121 | true
122 | true
123 |
124 |
125 |
126 | КлючеваяСтрока
127 | 7
128 | true
129 | true
130 |
131 | true
132 |
133 |
134 | КлючеваяСтрока
135 |
136 |
137 | КлючеваяСтрокаРасширеннаяПодсказка
138 | 9
139 | true
140 | true
141 |
142 | true
143 |
144 | Label
145 | true
146 | true
147 |
148 | Left
149 |
150 |
151 |
152 | КлючеваяСтрокаКонтекстноеМеню
153 | 8
154 | true
155 | true
156 |
157 | true
158 |
159 | true
160 |
161 | InputField
162 | true
163 | Enter
164 | true
165 | Left
166 | true
167 |
168 | true
169 | true
170 | true
171 | true
172 | true
173 | true
174 |
175 |
176 |
177 | Наименование
178 | 16
179 | true
180 | true
181 |
182 | true
183 |
184 |
185 | Наименование
186 |
187 |
188 | НаименованиеРасширеннаяПодсказка
189 | 18
190 | true
191 | true
192 |
193 | true
194 |
195 | Label
196 | true
197 | true
198 |
199 | Left
200 |
201 |
202 |
203 | НаименованиеКонтекстноеМеню
204 | 17
205 | true
206 | true
207 |
208 | true
209 |
210 | true
211 |
212 | InputField
213 | Enter
214 | true
215 | Left
216 | true
217 |
218 | true
219 | true
220 | true
221 | true
222 | true
223 | true
224 |
225 |
226 |
227 | ФормаКоманднаяПанель
228 | -1
229 |
230 | ФормаСоздатьЭлемент
231 | 19
232 | true
233 | true
234 |
235 | true
236 |
237 |
238 | ФормаСоздатьЭлементРасширеннаяПодсказка
239 | 20
240 | true
241 | true
242 |
243 | true
244 |
245 | Label
246 | true
247 | true
248 |
249 | Left
250 |
251 |
252 | Form.Command.СоздатьЭлемент
253 | Auto
254 | true
255 | true
256 | true
257 | UserCmds
258 | Auto
259 |
260 | true
261 | true
262 |
263 | true
264 |
265 | Left
266 | true
267 |
268 |
269 | OnOpen
270 | ПриОткрытии
271 |
272 | LockOwnerWindow
273 | true
274 | true
275 | true
276 | Vertical
277 | true
278 | true
279 | true
280 | true
281 | true
282 |
283 | ИмяЭлементаСписка
284 |
285 | ru
286 | Имя элемента списка
287 |
288 | 2
289 |
290 | String
291 |
292 |
293 |
294 | true
295 |
296 |
297 | true
298 |
299 |
300 |
301 | КлючеваяСтрока
302 |
303 | ru
304 | Ключевая строка
305 |
306 | 3
307 |
308 | String
309 |
310 |
311 |
312 | true
313 |
314 |
315 | true
316 |
317 |
318 |
319 | Наименование
320 |
321 | ru
322 | Наименование
323 |
324 | 4
325 |
326 | String
327 |
328 |
329 |
330 | true
331 |
332 |
333 | true
334 |
335 |
336 |
337 | ПолноеИмяФормы
338 |
339 | ru
340 | Полное имя формы
341 |
342 | 6
343 |
344 | String
345 |
346 |
347 |
348 | true
349 |
350 |
351 | true
352 |
353 |
354 |
355 | СоздатьЭлемент
356 |
357 | ru
358 | Создать элемент
359 |
360 | 1
361 |
362 | ru
363 | Создать элемент
364 |
365 |
368 |
369 |
370 | Команда_СоздатьЭлемент
371 |
372 |
373 | Auto
374 |
375 |
376 |
377 |
378 |
379 |
380 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/Forms/ФормаСозданияКлюча/Module.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 |
3 | #Область ОбработчикиСобытийФормы
4 |
5 | &НаКлиенте
6 | Процедура ПриОткрытии(Отказ)
7 |
8 | ОбновитьВычисляемыеДанные(ЭтотОбъект);
9 |
10 | КонецПроцедуры
11 |
12 | #КонецОбласти
13 |
14 | #Область ОбработчикиСобытийЭлементовШапкиФормы
15 |
16 | &НаКлиенте
17 | Процедура ПолноеИмяФормыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
18 |
19 | СтандартнаяОбработка = Ложь;
20 |
21 | ИмяОткрываемойФормы = "РегистрСведений.ИТМ_НастройкиДинамическихСписков.Форма.ФормаВыбораФормы";
22 | ПараметрыОткрытия = Новый Структура("ПолноеИмяФормы", ПолноеИмяФормы);
23 | ОткрытьФорму(ИмяОткрываемойФормы,ПараметрыОткрытия,Элементы.ПолноеИмяФормы);
24 |
25 | КонецПроцедуры
26 |
27 | &НаКлиенте
28 | Процедура ПолноеИмяФормыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
29 |
30 | СтандартнаяОбработка = Ложь;
31 |
32 | ПолноеИмяФормы = Строка(ВыбранноеЗначение);
33 | ОбновитьВычисляемыеДанные(ЭтотОбъект);
34 |
35 | КонецПроцедуры
36 |
37 | &НаКлиенте
38 | Процедура ИмяЭлементаСпискаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
39 |
40 | СтандартнаяОбработка = Ложь;
41 | ПоказатьВыборЭлементаСписка();
42 |
43 | КонецПроцедуры
44 |
45 | &НаКлиенте
46 | Процедура ПолноеИмяФормыПриИзменении(Элемент)
47 |
48 | ОбновитьВычисляемыеДанные(ЭтотОбъект);
49 |
50 | КонецПроцедуры
51 |
52 | &НаКлиенте
53 | Процедура ИмяЭлементаСпискаПриИзменении(Элемент)
54 |
55 | ОбновитьВычисляемыеДанные(ЭтотОбъект);
56 |
57 | КонецПроцедуры
58 |
59 | #КонецОбласти
60 |
61 | #Область ОбработчикиКомандФормы
62 |
63 | &НаКлиенте
64 | Процедура Команда_СоздатьЭлемент(Команда)
65 |
66 | КлючеваяОперация = ЭлементКлючевойОперации(КлючеваяСтрока);
67 | ОповеститьОВыборе(КлючеваяОперация);
68 |
69 | КонецПроцедуры
70 |
71 | #КонецОбласти
72 |
73 | #Область СлужебныеПроцедурыИФункции
74 |
75 | &НаКлиенте
76 | Процедура ПоказатьВыборЭлементаСписка(РезультатВопроса = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт
77 |
78 | Если РезультатВопроса = Неопределено Тогда
79 |
80 | ПоказатьВопрос(
81 | Новый ОписаниеОповещения("ПоказатьВыборЭлементаСписка", ЭтотОбъект, ДополнительныеПараметры),
82 | "Для поиска элементов форма будет программно получена. Продолжить?", РежимДиалогаВопрос.ДаНет);
83 |
84 | ИначеЕсли РезультатВопроса = КодВозвратаДиалога.Да Тогда
85 |
86 | //@skip-check use-non-recommended-method - нет необходимости в открытии формы для получения списка элементов
87 | ВыбраннаяФорма = ПолучитьФорму(ПолноеИмяФормы); //sonar:DeprecatedMethodGetForm
88 | ЭлементыТаблицы = ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ЭлементыТаблицыНаФорме(ВыбраннаяФорма.Элементы);
89 | ОповещениеВыбора = Новый ОписаниеОповещения("ОбработатьВыборИмениЭлементаСписка", ЭтотОбъект);
90 |
91 | ИменаЭлементов = Новый СписокЗначений; //СписокЗначений из Строка
92 | Для Каждого ЭлементТаблица Из ЭлементыТаблицы Цикл
93 | ИменаЭлементов.Добавить(ЭлементТаблица.Имя, ЭлементТаблица.Имя);
94 | КонецЦикла;
95 |
96 | Если ЗначениеЗаполнено(ИменаЭлементов) Тогда
97 | ИменаЭлементов.ПоказатьВыборЭлемента(ОповещениеВыбора, "Выберите элемент формы");
98 | КонецЕсли;
99 |
100 | Иначе
101 |
102 | Возврат;
103 |
104 | КонецЕсли;
105 |
106 | КонецПроцедуры
107 |
108 | // Обработать выбор имени элемента списка.
109 | //
110 | // Параметры:
111 | // РезультатВыбора - ЭлементСпискаЗначений - Результат выбора
112 | // ДополнительныеПараметры - Структура - Дополнительные параметры
113 | &НаКлиенте
114 | Процедура ОбработатьВыборИмениЭлементаСписка(РезультатВыбора, ДополнительныеПараметры) Экспорт
115 |
116 | Если РезультатВыбора = Неопределено Тогда
117 | Возврат;
118 | КонецЕсли;
119 |
120 | ИмяЭлементаСписка = Строка(РезультатВыбора.Значение);
121 |
122 | ОбновитьВычисляемыеДанные(ЭтотОбъект);
123 |
124 | КонецПроцедуры
125 |
126 | // Обновить вычисляемые данные.
127 | //
128 | // Параметры:
129 | // Форма - ФормаКлиентскогоПриложения - Форма
130 | &НаКлиентеНаСервереБезКонтекста
131 | Процедура ОбновитьВычисляемыеДанные(Форма)
132 |
133 | Форма.КлючеваяСтрока = ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ИмяКлючаДинамическогоСписка(
134 | Форма.ПолноеИмяФормы, Форма.ИмяЭлементаСписка);
135 |
136 | Форма.Наименование = ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.НаименованиеКлючевойОперации(
137 | Форма.КлючеваяСтрока);
138 |
139 | КонецПроцедуры
140 |
141 | // Создать элемент ключевой операции.
142 | //
143 | // Параметры:
144 | // КлючеваяСтрока - Строка - Ключевая строка
145 | //
146 | // Возвращаемое значение:
147 | // СправочникСсылка.КлючевыеОперации, Произвольный - Создать элемент ключевой операции
148 | &НаСервереБезКонтекста
149 | Функция ЭлементКлючевойОперации(КлючеваяСтрока)
150 |
151 | Возврат ИТМ_АдминистрированиеДинамическихСписков.ПолучитьКлючевуюОперацию(КлючеваяСтрока);
152 |
153 | КонецФункции
154 |
155 | #КонецОбласти
156 |
157 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Normal
5 | dfcece9d-5077-440b-b6b3-45a5cb4538eb
6 |
7 |
8 | -
9 | КлючСписка
10 | Asc
11 |
12 | -
13 | Владелец
14 | Asc
15 |
16 | Normal
17 | 88619765-ccb3-46c6-ac52-38e9c992ebd4
18 |
19 |
20 | -
21 |
22 |
-
23 | Владелец
24 |
25 |
26 |
27 | -
28 | Владелец
29 | NotFilled
30 |
31 |
32 |
33 |
34 | ЦветТекста
35 | #C0C0C0
36 |
37 |
38 | Текст
39 | <Общие настройки>
40 |
41 |
42 |
43 | Normal
44 | b75fecce-942b-4aed-abc9-e6a02e460fb3
45 |
46 | Normal
47 | 911b6018-f537-43e8-a417-da56b22f9aec
48 |
49 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/Forms/ФормаСписка/Form.form:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | СписокКомпоновщикНастроекПользовательскиеНастройки
5 | 1
6 | true
7 | true
8 |
9 | true
10 |
11 |
12 | ru
13 | Группа пользовательских настроек
14 |
15 | false
16 |
17 | СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка
18 | 2
19 | true
20 | true
21 |
22 | true
23 |
24 | Label
25 | true
26 | true
27 |
28 | Left
29 |
30 |
31 | UsualGroup
32 |
33 | Vertical
34 | WeakSeparation
35 | true
36 | true
37 | Auto
38 | Auto
39 |
40 |
41 |
42 | Список
43 | 3
44 | true
45 | true
46 |
47 | true
48 |
49 |
50 | Список
51 |
52 | true
53 | None
54 |
55 | КлючСписка
56 | 16
57 | true
58 | true
59 |
60 | true
61 |
62 |
63 | Список.КлючСписка
64 |
65 | true
66 |
67 | КлючСпискаРасширеннаяПодсказка
68 | 18
69 | true
70 | true
71 |
72 | true
73 |
74 | Label
75 | true
76 | true
77 |
78 | Left
79 |
80 |
81 |
82 | КлючСпискаКонтекстноеМеню
83 | 17
84 | true
85 | true
86 |
87 | true
88 |
89 | true
90 |
91 | LabelField
92 | Enter
93 | true
94 | Left
95 | true
96 |
97 | true
98 | true
99 |
100 |
101 |
102 | Использование
103 | 19
104 | true
105 | true
106 |
107 | true
108 |
109 |
110 | Список.Использование
111 |
112 | true
113 |
114 | ИспользованиеРасширеннаяПодсказка
115 | 21
116 | true
117 | true
118 |
119 | true
120 |
121 | Label
122 | true
123 | true
124 |
125 | Left
126 |
127 |
128 |
129 | ИспользованиеКонтекстноеМеню
130 | 20
131 | true
132 | true
133 |
134 | true
135 |
136 | true
137 |
138 | CheckBoxField
139 | Enter
140 | true
141 | Left
142 | true
143 |
144 |
145 | None
146 |
147 | СписокКоманднаяПанель
148 | 5
149 | true
150 | true
151 |
152 | true
153 |
154 | Left
155 |
156 |
157 | BeforeAddRow
158 | СписокПередНачаломДобавления
159 |
160 |
161 | true
162 | true
163 |
164 | true
165 |
166 | СписокСтрокаПоиска
167 | 7
168 |
169 | СписокСтрокаПоискаРасширеннаяПодсказка
170 | 9
171 | true
172 | true
173 |
174 | true
175 |
176 | Label
177 | true
178 | true
179 |
180 | Left
181 |
182 |
183 |
184 | СписокСтрокаПоискаКонтекстноеМеню
185 | 8
186 | true
187 | true
188 |
189 | true
190 |
191 | true
192 |
193 | СписокСтрокаПоиска
194 |
195 | true
196 |
197 |
198 |
199 | true
200 | true
201 |
202 | true
203 |
204 | СписокСостояниеПросмотра
205 | 10
206 |
207 | СписокСостояниеПросмотраРасширеннаяПодсказка
208 | 12
209 | true
210 | true
211 |
212 | true
213 |
214 | Label
215 | true
216 | true
217 |
218 | Left
219 |
220 |
221 |
222 | СписокСостояниеПросмотраКонтекстноеМеню
223 | 11
224 | true
225 | true
226 |
227 | true
228 |
229 | true
230 |
231 | ViewStatusAddition
232 | СписокСостояниеПросмотра
233 |
234 | true
235 |
236 |
237 |
238 | true
239 | true
240 |
241 | true
242 |
243 | СписокУправлениеПоиском
244 | 13
245 |
246 | СписокУправлениеПоискомРасширеннаяПодсказка
247 | 15
248 | true
249 | true
250 |
251 | true
252 |
253 | Label
254 | true
255 | true
256 |
257 | Left
258 |
259 |
260 |
261 | СписокУправлениеПоискомКонтекстноеМеню
262 | 14
263 | true
264 | true
265 |
266 | true
267 |
268 | true
269 |
270 | SearchControlAddition
271 | СписокУправлениеПоиском
272 |
273 | true
274 |
275 |
276 |
277 | СписокРасширеннаяПодсказка
278 | 6
279 | true
280 | true
281 |
282 | true
283 |
284 | Label
285 | true
286 | true
287 |
288 | Left
289 |
290 |
291 |
292 | СписокКонтекстноеМеню
293 | 4
294 | true
295 | true
296 |
297 | true
298 |
299 | true
300 |
301 | true
302 | true
303 | true
304 | true
305 | true
306 | MultiRow
307 |
308 | 1
309 | 1
310 | AutoUse
311 | AutoUse
312 | true
313 | true
314 | true
315 | Auto
316 | Auto
317 | ExpandTopLevel
318 | true
319 | true
320 | true
321 | AsFileRef
322 |
323 | Список.DefaultPicture
324 |
325 |
326 | 60
327 |
328 | 0001-01-01T00:00:00
329 | 0001-01-01T00:00:00
330 |
331 |
332 | true
333 | true
334 | СписокКомпоновщикНастроекПользовательскиеНастройки
335 |
336 |
337 |
338 | ФормаКоманднаяПанель
339 | -1
340 |
341 | ФормаНормализоватьНаименованияКлючевыхОпераций
342 | 22
343 | true
344 | true
345 |
346 | true
347 |
348 |
349 | ФормаНормализоватьНаименованияКлючевыхОперацийРасширеннаяПодсказка
350 | 23
351 | true
352 | true
353 |
354 | true
355 |
356 | Label
357 | true
358 | true
359 |
360 | Left
361 |
362 |
363 | Form.Command.НормализоватьНаименованияКлючевыхОпераций
364 | Auto
365 | true
366 | true
367 | UserCmds
368 | Auto
369 | InAdditionalSubmenu
370 |
371 | true
372 | true
373 |
374 | true
375 |
376 | Left
377 | true
378 |
379 | true
380 | true
381 | true
382 | Vertical
383 | true
384 | true
385 | true
386 | true
387 | true
388 |
389 | Список
390 | 1
391 |
392 | DynamicList
393 |
394 |
395 | true
396 |
397 |
398 | true
399 |
400 |
401 | Список.КлючСписка
402 |
403 | true
404 |
405 | InformationRegister.ИТМ_НастройкиДинамическихСписков
406 | true
407 | true
408 | true
409 | true
410 |
411 |
412 |
413 | НормализоватьНаименованияКлючевыхОпераций
414 |
415 | ru
416 | Нормализовать наименования
417 |
418 | 1
419 |
420 | ru
421 | Нормализовать наименования ключевых операций
422 |
423 |
426 |
427 |
428 | НормализоватьНаименованияКлючевыхОпераций
429 |
430 |
431 | Auto
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/Forms/ФормаСписка/Module.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 |
3 | #Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
4 |
5 | &НаКлиенте
6 | Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
7 |
8 | Отказ = Истина;
9 |
10 | ПараметрыОповещения = ПараметрыДобавленияНастройкиПоКлючу();
11 | Если Копирование Тогда
12 | ПараметрыОповещения.Копирование = Истина;
13 | ПараметрыОповещения.Копируемое = Элемент.ТекущиеДанные.КлючСписка;
14 | КонецЕсли;
15 |
16 | ОписаниеОповещения = Новый ОписаниеОповещения(
17 | "ДобавитьНастройкуКоКлючу", ЭтотОбъект, ПараметрыОповещения);
18 |
19 | ПараметрыОткрытия = ИТМ_АдминистрированиеДинамическихСписковКлиент.ПараметрыОткрытияФормыВыбораКлючаСписка();
20 | ПараметрыОткрытия.Владелец = ЭтотОбъект;
21 | ПараметрыОткрытия.Отбор.ЕстьНастройка = Ложь;
22 | ПараметрыОткрытия.ОписаниеОповещения = ОписаниеОповещения;
23 |
24 | ИТМ_АдминистрированиеДинамическихСписковКлиент.ОткрытьФормуВыбораКлючаСписка(ПараметрыОткрытия);
25 |
26 | КонецПроцедуры
27 |
28 | #КонецОбласти
29 |
30 | #Область ОбработчикиКомандФормы
31 |
32 | &НаКлиенте
33 | Процедура НормализоватьНаименованияКлючевыхОпераций(Команда)
34 |
35 | НормализоватьНаименованияКлючевыхОперацийНаСервере();
36 |
37 | КонецПроцедуры
38 |
39 | #КонецОбласти
40 |
41 | #Область СлужебныеПроцедурыИФункции
42 |
43 | // Параметры добавления настройки по ключу.
44 | //
45 | // Возвращаемое значение:
46 | // Структура - Параметры добавления настройки по ключу:
47 | // * Копирование - Булево - Режим копирования
48 | // * Копируемое - Неопределено, СправочникСсылка.КлючевыеОперации - Копируемое значение
49 | &НаКлиенте
50 | Функция ПараметрыДобавленияНастройкиПоКлючу()
51 |
52 | Результат = Новый Структура;
53 | Результат.Вставить("Копирование", Ложь);
54 | Результат.Вставить("Копируемое" , Неопределено);
55 |
56 | Возврат Результат;
57 |
58 | КонецФункции
59 |
60 | // Добавить настройку ко ключу.
61 | //
62 | // Параметры:
63 | // РезультатЗакрытия - СправочникСсылка.КлючевыеОперации - Результат закрытия
64 | // ПараметрыДобавления - см. ПараметрыДобавленияНастройкиПоКлючу
65 | &НаКлиенте
66 | Процедура ДобавитьНастройкуКоКлючу(РезультатЗакрытия, ПараметрыДобавления) Экспорт
67 |
68 | Если ТипЗнч(РезультатЗакрытия) <> Тип("СправочникСсылка.КлючевыеОперации")
69 | ИЛИ РезультатЗакрытия.Пустая() Тогда
70 | Возврат;
71 | КонецЕсли;
72 |
73 | ДобавитьНастройкуКоКлючуНаСервере(РезультатЗакрытия, ПараметрыДобавления);
74 |
75 | КонецПроцедуры
76 |
77 | // Добавить настройку ко ключу на сервере.
78 | //
79 | // Параметры:
80 | // КлючСписка - СправочникСсылка.КлючевыеОперации - Ключ списка
81 | // ПараметрыДобавления - см. ПараметрыДобавленияНастройкиПоКлючу
82 | &НаСервере
83 | Процедура ДобавитьНастройкуКоКлючуНаСервере(КлючСписка, ПараметрыДобавления)
84 |
85 | РегистрыСведений.ИТМ_НастройкиДинамическихСписков.ДобавитьЗапись(КлючСписка);
86 |
87 | Если ПараметрыДобавления.Копирование Тогда
88 | КопируемыеНастройки = РегистрыСведений.ИТМ_НастройкиДинамическихСписков.НастройкиСписка(ПараметрыДобавления.Копируемое);
89 | РегистрыСведений.ИТМ_НастройкиДинамическихСписков.ДобавитьЗапись(КлючСписка, Ложь, КопируемыеНастройки);
90 | КонецЕсли;
91 |
92 | ДанныеКлючаЗаписи = Новый Структура("КлючСписка", КлючСписка);
93 | КлючТекущейЗаписи = РегистрыСведений.ИТМ_НастройкиДинамическихСписков.СоздатьКлючЗаписи(ДанныеКлючаЗаписи);
94 |
95 | Элементы.Список.ТекущаяСтрока = КлючТекущейЗаписи;
96 |
97 | КонецПроцедуры
98 |
99 | &НаСервере
100 | Процедура НормализоватьНаименованияКлючевыхОперацийНаСервере()
101 |
102 | ИТМ_АдминистрированиеДинамическихСписков.НормализоватьНаименованияКлючевыхОпераций();
103 | Элементы.Список.Обновить();
104 |
105 | КонецПроцедуры
106 |
107 | #КонецОбласти
108 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/ManagerModule.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 |
3 | #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
4 |
5 | #Область ПрограммныйИнтерфейс
6 |
7 | // Возвращает настройки динамического списка из базы
8 | //
9 | // Параметры:
10 | // КлючСписка - Строка, СправочникСсылка.КлючевыеОперации - Ключ списка
11 | //
12 | // Возвращаемое значение:
13 | // см. ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ШаблонПараметровДинамическогоСписка
14 | Функция НастройкиСписка(Знач КлючСписка) Экспорт
15 |
16 | НастройкиСписка = ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ШаблонПараметровДинамическогоСписка();
17 | КлючСписка = ИТМ_АдминистрированиеДинамическихСписков.КлючСписка(КлючСписка);
18 | Если НЕ ЗначениеЗаполнено(КлючСписка) Тогда
19 | Возврат НастройкиСписка;
20 | КонецЕсли;
21 |
22 | Запрос = Новый Запрос;
23 | Запрос.Текст = "ВЫБРАТЬ
24 | | Настройки,
25 | | КлючСписка,
26 | | Использование
27 | |ИЗ
28 | | РегистрСведений.ИТМ_НастройкиДинамическихСписков
29 | |ГДЕ
30 | | КлючСписка = &КлючСписка";
31 | Запрос.УстановитьПараметр("КлючСписка", КлючСписка);
32 | РезультатЗапроса = Запрос.Выполнить();
33 | Если НЕ РезультатЗапроса.Пустой() Тогда
34 |
35 | Выборка = РезультатЗапроса.Выбрать();
36 | Выборка.Следующий();
37 |
38 | Для Каждого КолонкаРезультата Из РезультатЗапроса.Колонки Цикл
39 | ИмяТекущейКолонки = КолонкаРезультата.Имя;
40 | ТекущееЗначение = Выборка[ИмяТекущейКолонки]; //Произвольный
41 | Если ТипЗнч(ТекущееЗначение) = Тип("ХранилищеЗначения") Тогда
42 | ЗначениеСтруктурой = ТекущееЗначение.Получить(); //Структура
43 | ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ДополнитьСтруктуруРекурсивно(
44 | НастройкиСписка, ЗначениеСтруктурой, Истина);
45 | Иначе
46 | НастройкиСписка.Вставить(ИмяТекущейКолонки, ТекущееЗначение);
47 | КонецЕсли;
48 | КонецЦикла;
49 |
50 | КонецЕсли;
51 |
52 | //@skip-check constructor-function-return-section - Баг ЕДТ
53 | Возврат НастройкиСписка;
54 |
55 | КонецФункции
56 |
57 | // Добавляет запись в регистр
58 | //
59 | // Параметры:
60 | // КлючСписка - СправочникСсылка.КлючевыеОперации - Ключ списка
61 | // Использование - Булево - Использование настроек
62 | // Настройки - см. ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ШаблонПараметровДинамическогоСписка
63 | //
64 | Процедура ДобавитьЗапись(КлючСписка, Использование = Ложь, Настройки = Неопределено) Экспорт
65 |
66 | МенеджерЗаписи = НовыйМенеджерЗаписи(КлючСписка, Использование, Настройки);
67 | МенеджерЗаписи.Записать(Истина);
68 |
69 | КонецПроцедуры
70 |
71 | // Возвращает новый менеджер записи по параметрам
72 | //
73 | // Параметры:
74 | // КлючСписка - СправочникСсылка.КлючевыеОперации - Ключ списка
75 | // Использование - Булево - Использование настроек
76 | // Настройки - см. ИТМ_АдминистрированиеДинамическихСписковКлиентСервер.ШаблонПараметровДинамическогоСписка
77 | //
78 | // Возвращаемое значение:
79 | // РегистрСведенийМенеджерЗаписи.ИТМ_НастройкиДинамическихСписков - Менеджер записи
80 | //
81 | Функция НовыйМенеджерЗаписи(КлючСписка, Использование = Ложь, Настройки = Неопределено) Экспорт
82 |
83 | МенеджерЗаписи = СоздатьМенеджерЗаписи();
84 | МенеджерЗаписи.КлючСписка = КлючСписка;
85 | МенеджерЗаписи.Использование = Использование;
86 | МенеджерЗаписи.Настройки = Новый ХранилищеЗначения(Настройки);
87 |
88 | Возврат МенеджерЗаписи;
89 |
90 | КонецФункции
91 |
92 | #КонецОбласти
93 |
94 | #КонецЕсли
95 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/RecordSetModule.bsl:
--------------------------------------------------------------------------------
1 | // @strict-types
2 |
3 | #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
4 |
5 | #Область ОбработчикиСобытий
6 |
7 | Процедура ПередЗаписью(Отказ, Замещение)
8 |
9 | Если ОбменДанными.Загрузка Тогда
10 | Возврат;
11 | КонецЕсли;
12 |
13 | ИменаКоллекций = "Измерения,Ресурсы,Реквизиты";
14 | УдаляемыеКоллекции = СтрРазделить(ИменаКоллекций, ",");
15 | МетаданныеРегистра = Метаданные.РегистрыСведений.ИТМ_НастройкиДинамическихСписков;
16 |
17 | Для Каждого ТекущаяЗапись Из ЭтотОбъект Цикл
18 |
19 | ТекущиеНастройки = ТекущаяЗапись.Настройки.Получить(); //Структура
20 | Если НЕ ТипЗнч(ТекущиеНастройки) = Тип("Структура") Тогда
21 | Продолжить;
22 | КонецЕсли;
23 |
24 | Для Каждого ТекущаяКоллекция Из УдаляемыеКоллекции Цикл
25 | Для Каждого ОписаниеСвойства Из МетаданныеРегистра[ТекущаяКоллекция] Цикл //ОбъектМетаданных
26 | ТекущиеНастройки.Удалить(ОписаниеСвойства.Имя);
27 | КонецЦикла;
28 | КонецЦикла;
29 |
30 | ТекущаяЗапись.Настройки = Новый ХранилищеЗначения(ТекущиеНастройки);
31 |
32 | КонецЦикла;
33 |
34 | КонецПроцедуры
35 |
36 | #КонецОбласти
37 |
38 | #КонецЕсли
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/InformationRegisters/ИТМ_НастройкиДинамическихСписков/ИТМ_НастройкиДинамическихСписков.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | ИТМ_НастройкиДинамическихСписков
13 |
14 | ru
15 | Настройки динамических списков (ИТМ)
16 |
17 | true
18 | InDialog
19 | InformationRegister.ИТМ_НастройкиДинамическихСписков.Form.ФормаЗаписи
20 | InformationRegister.ИТМ_НастройкиДинамическихСписков.Form.ФормаСписка
21 |
22 | Use
23 | Active
24 |
25 | Use
26 |
27 |
28 |
29 |
30 | Use
31 | LineNumber
32 |
33 | Use
34 |
35 |
36 |
37 |
38 | Use
39 | Recorder
40 |
41 | Use
42 |
43 |
44 |
45 |
46 | Use
47 | Period
48 |
49 | ShowError
50 | Use
51 |
52 |
53 |
54 |
55 | ru
56 | Настройка динамического списка (ИТМ)
57 |
58 |
59 | ru
60 | Выполнение настроек администрирования динамических списков
61 |
62 |
63 | Использование
64 |
65 | ru
66 | Использование
67 |
68 |
69 | Boolean
70 |
71 |
72 |
73 | Use
74 | Use
75 |
76 |
77 |
78 | Настройки
79 |
80 | ru
81 | Настройки
82 |
83 |
84 | ValueStorage
85 |
86 |
87 |
88 | Use
89 | Use
90 |
91 |
92 |
93 | КлючСписка
94 |
95 | ru
96 | Ключ списка
97 |
98 |
99 | CatalogRef.КлючевыеОперации
100 |
101 |
102 |
103 | true
104 | Use
105 | Use
106 |
107 | true
108 | true
109 |
110 |
111 | ФормаСписка
112 |
113 | ru
114 | Форма списка
115 |
116 | PersonalComputer
117 | MobileDevice
118 |
119 |
120 | ФормаВыбораКлюча
121 |
122 | ru
123 | Форма выбора ключа
124 |
125 | PersonalComputer
126 | MobileDevice
127 |
128 |
129 | ФормаЗаписи
130 |
131 | ru
132 | Форма записи
133 |
134 | PersonalComputer
135 | MobileDevice
136 |
137 |
138 | ФормаВыбораФормы
139 |
140 | ru
141 | Форма выбора формы
142 |
143 | PersonalComputer
144 | MobileDevice
145 |
146 |
147 | ФормаСозданияКлюча
148 |
149 | ru
150 | Форма создания ключа
151 |
152 | PersonalComputer
153 | MobileDevice
154 |
155 |
156 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Roles/ИТМ_ИзменениеИсторияОбновленияДинамическихСписков/Rights.rights:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 | true
5 | false
6 |
53 |
80 |
81 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Roles/ИТМ_ИзменениеИсторияОбновленияДинамическихСписков/ИТМ_ИзменениеИсторияОбновленияДинамическихСписков.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_ИзменениеИсторияОбновленияДинамическихСписков
4 |
5 | ru
6 | Изменение история обновления динамических списков (ИТМ)
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Roles/ИТМ_ИзменениеНастройкиДинамическихСписков/Rights.rights:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 | true
5 | false
6 |
33 |
80 |
81 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Roles/ИТМ_ИзменениеНастройкиДинамическихСписков/ИТМ_ИзменениеНастройкиДинамическихСписков.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_ИзменениеНастройкиДинамическихСписков
4 |
5 | ru
6 | Изменение настройки динамических списков (ИТМ)
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Roles/ИТМ_ЧтениеИсторияОбновленияДинамическихСписков/Rights.rights:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 | true
5 | false
6 |
25 |
52 |
53 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Roles/ИТМ_ЧтениеИсторияОбновленияДинамическихСписков/ИТМ_ЧтениеИсторияОбновленияДинамическихСписков.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_ЧтениеИсторияОбновленияДинамическихСписков
4 |
5 | ru
6 | Чтение история обновления динамических списков (ИТМ)
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Roles/ИТМ_ЧтениеНастройкиДинамическихСписков/Rights.rights:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 | true
5 | false
6 |
33 |
52 |
53 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Roles/ИТМ_ЧтениеНастройкиДинамическихСписков/ИТМ_ЧтениеНастройкиДинамическихСписков.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_ЧтениеНастройкиДинамическихСписков
4 |
5 | ru
6 | Чтение настройки динамических списков (ИТМ)
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Subsystems/ИТМ_АдминистрированиеДинамическихСписков/CommandInterface.cmi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков/src/Subsystems/ИТМ_АдминистрированиеДинамическихСписков/ИТМ_АдминистрированиеДинамическихСписков.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписков
4 |
5 | ru
6 | Администрирование динамических списков (ИТМ)
7 |
8 | true
9 |
10 | ru
11 | Подсистема предназначена для настройки подключенных форм списка в режиме предприятия для исключения возможности применения неоптимальных настроек для динамических списков со стороны пользователей
12 |
13 | InformationRegister.ИТМ_ИсторияОбновленияДинамическихСписков
14 | InformationRegister.ИТМ_НастройкиДинамическихСписков
15 | Role.ИТМ_ИзменениеИсторияОбновленияДинамическихСписков
16 | Role.ИТМ_ИзменениеНастройкиДинамическихСписков
17 | Role.ИТМ_ЧтениеИсторияОбновленияДинамическихСписков
18 | Role.ИТМ_ЧтениеНастройкиДинамическихСписков
19 | CommonModule.ИТМ_АдминистрированиеДинамическихСписков
20 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковВызовСервера
21 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковКлиент
22 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковКлиентПереопределяемый
23 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковКлиентСервер
24 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковПереопределяемый
25 | CommonModule.ИТМ_АдминистрированиеДинамическихСписковПовтИсп
26 |
27 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписков_Демо
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.xtext.ui.shared.xtextBuilder
10 |
11 |
12 |
13 |
14 |
15 | org.eclipse.xtext.ui.shared.xtextNature
16 | com._1c.g5.v8.dt.core.V8ExtensionNature
17 |
18 |
19 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding/=UTF-8
3 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/DT-INF/PROJECT.PMF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Runtime-Version: 8.3.24
3 | Base-Project: configuration
4 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/src/Catalogs/ИТМ_ТестовыйСправочник/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Normal
5 | dfcece9d-5077-440b-b6b3-45a5cb4538eb
6 |
7 |
8 | Normal
9 | 88619765-ccb3-46c6-ac52-38e9c992ebd4
10 |
11 |
12 | Normal
13 | b75fecce-942b-4aed-abc9-e6a02e460fb3
14 |
15 | Normal
16 | 911b6018-f537-43e8-a417-da56b22f9aec
17 |
18 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/src/Catalogs/ИТМ_ТестовыйСправочник/Forms/ФормаСписка/Module.bsl:
--------------------------------------------------------------------------------
1 |
2 | &НаСервере
3 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
4 |
5 | МодульАДС = МодульАдминистрированиеДинамическихСписков();
6 | МодульАДС.ПриСозданииНаСервере(ЭтотОбъект);
7 |
8 | КонецПроцедуры
9 |
10 | &НаКлиенте
11 | Процедура ПриОткрытии(Отказ)
12 |
13 | МодульАДС = МодульАдминистрированиеДинамическихСписковКлиент();
14 | МодульАДС.ПриОткрытии(ЭтотОбъект, Отказ);
15 |
16 | КонецПроцедуры
17 |
18 | &НаКлиенте
19 | Процедура ПриЗакрытии(ЗавершениеРаботы)
20 |
21 | МодульАДС = МодульАдминистрированиеДинамическихСписковКлиент();
22 | МодульАДС.ПриЗакрытии(ЭтотОбъект, ЗавершениеРаботы);
23 |
24 | КонецПроцедуры
25 |
26 | &НаСервере
27 | Процедура СписокПередЗагрузкойПользовательскихНастроекНаСервере(
28 | Элемент, Настройки, ИспользуютсяСтандартныеНастройки)
29 |
30 | МодульАДС = МодульАдминистрированиеДинамическихСписков();
31 | МодульАДС.ПередЗагрузкойПользовательскихНастроекНаСервере(
32 | ЭтотОбъект, Элемент, Настройки, ИспользуютсяСтандартныеНастройки);
33 |
34 | КонецПроцедуры
35 |
36 | &НаСервереБезКонтекста
37 | Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
38 |
39 | МодульАДС = МодульАдминистрированиеДинамическихСписков();
40 | МодульАДС.ПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки);
41 |
42 | КонецПроцедуры
43 |
44 | &НаКлиенте
45 | Процедура ИТМ_ОбработатьНакопленныеСобытияОбновления() Экспорт
46 |
47 | МодульАДС = МодульАдминистрированиеДинамическихСписковКлиент();
48 | МодульАДС.ОбработатьНакопленныеСобытияОбновления(ЭтотОбъект);
49 |
50 | КонецПроцедуры
51 |
52 | &НаСервереБезКонтекста
53 | Функция МодульАдминистрированиеДинамическихСписков()
54 |
55 | Возврат ОбщегоНазначения.ОбщийМодуль("ИТМ_АдминистрированиеДинамическихСписков");
56 |
57 | КонецФункции
58 |
59 | &НаКлиенте
60 | Функция МодульАдминистрированиеДинамическихСписковКлиент()
61 |
62 | Возврат ОбщегоНазначенияКлиент.ОбщийМодуль("ИТМ_АдминистрированиеДинамическихСписковКлиент");
63 |
64 | КонецФункции
65 |
66 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/src/Catalogs/ИТМ_ТестовыйСправочник/ИТМ_ТестовыйСправочник.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | ИТМ_ТестовыйСправочник
11 |
12 | ru
13 | ИТМ тестовый справочник
14 |
15 | true
16 | Catalog.ИТМ_ТестовыйСправочник.StandardAttribute.Description
17 | Catalog.ИТМ_ТестовыйСправочник.StandardAttribute.Code
18 | DontUse
19 | Use
20 | Managed
21 | Use
22 | 2
23 | true
24 | 9
25 | 25
26 | String
27 | Variable
28 | true
29 | true
30 | AsDescription
31 | InDialog
32 | BothWays
33 | Catalog.ИТМ_ТестовыйСправочник.Form.ФормаСписка
34 |
35 | Строка
36 |
37 | ru
38 | Строка
39 |
40 |
41 | String
42 |
43 | 10
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | Use
52 | Use
53 |
54 |
55 | Число
56 |
57 | ru
58 | Число
59 |
60 |
61 | String
62 |
63 | 10
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | Use
72 | Use
73 |
74 |
75 | ПростаяСсылка
76 |
77 | ru
78 | Простая ссылка
79 |
80 |
81 | DocumentRef.ИТМ_ТестовыйДокумент
82 |
83 |
84 |
85 |
86 | Use
87 | Use
88 |
89 |
90 | Составной
91 |
92 | ru
93 | Составной
94 |
95 |
96 | String
97 | DocumentRef.ИТМ_ТестовыйДокумент
98 | Number
99 |
100 | 10
101 |
102 |
103 | 10
104 |
105 |
106 |
107 |
108 |
109 | Use
110 | Use
111 |
112 |
113 |
114 |
115 |
116 |
117 | ТабличнаяЧасть
118 |
119 | ru
120 | Табличная часть
121 |
122 |
123 | Строка
124 |
125 | ru
126 | Строка
127 |
128 |
129 | String
130 |
131 | 10
132 |
133 |
134 |
135 |
136 | Use
137 | Use
138 |
139 |
140 | Число
141 |
142 | ru
143 | Число
144 |
145 |
146 | String
147 |
148 | 10
149 |
150 |
151 |
152 |
153 | Use
154 | Use
155 |
156 |
157 | ПростаяСсылка
158 |
159 | ru
160 | Простая ссылка
161 |
162 |
163 | DocumentRef.ИТМ_ТестовыйДокумент
164 |
165 |
166 |
167 | Use
168 | Use
169 |
170 |
171 | Составной
172 |
173 | ru
174 | Составной
175 |
176 |
177 | String
178 | DocumentRef.ИТМ_ТестовыйДокумент
179 | Number
180 |
181 | 10
182 |
183 |
184 | 10
185 |
186 |
187 |
188 |
189 | Use
190 | Use
191 |
192 |
193 |
194 | ФормаСписка
195 |
196 | ru
197 | Форма списка
198 |
199 | PersonalComputer
200 | MobileDevice
201 |
202 |
203 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/src/Configuration/Configuration.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписков_Демо
4 |
5 | ru
6 | ИТМ_АдминистрированиеДинамическихСписков_Демо
7 |
8 | Adopted
9 |
10 | Checked
11 | Checked
12 | Checked
13 | Checked
14 | Notify
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | true
24 | ИТМ_
25 | 8.3.21
26 | AddOn
27 | ManagedApplication
28 | PersonalComputer
29 | Russian
30 | Language.Русский
31 | TaxiEnableVersion8_2
32 | 8.3.21
33 |
34 | Русский
35 | Adopted
36 |
37 | Checked
38 | Checked
39 |
40 | ru
41 |
42 | Subsystem.ИТМ_АдминистрированиеДинамическихСписков_Демо
43 | Catalog.ИТМ_ТестовыйСправочник
44 | Document.ИТМ_ТестовыйДокумент
45 |
46 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/src/Documents/ИТМ_ТестовыйДокумент/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Normal
5 | dfcece9d-5077-440b-b6b3-45a5cb4538eb
6 |
7 |
8 | Normal
9 | 88619765-ccb3-46c6-ac52-38e9c992ebd4
10 |
11 |
12 | Normal
13 | b75fecce-942b-4aed-abc9-e6a02e460fb3
14 |
15 | Normal
16 | 911b6018-f537-43e8-a417-da56b22f9aec
17 |
18 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/src/Documents/ИТМ_ТестовыйДокумент/Forms/ФормаСписка/Module.bsl:
--------------------------------------------------------------------------------
1 |
2 | &НаСервере
3 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
4 |
5 | МодульАДС = МодульАдминистрированиеДинамическихСписков();
6 | МодульАДС.ПриСозданииНаСервере(ЭтотОбъект);
7 |
8 | КонецПроцедуры
9 |
10 | &НаКлиенте
11 | Процедура ПриОткрытии(Отказ)
12 |
13 | МодульАДС = МодульАдминистрированиеДинамическихСписковКлиент();
14 | МодульАДС.ПриОткрытии(ЭтотОбъект, Отказ);
15 |
16 | КонецПроцедуры
17 |
18 | &НаКлиенте
19 | Процедура ПриЗакрытии(ЗавершениеРаботы)
20 |
21 | МодульАДС = МодульАдминистрированиеДинамическихСписковКлиент();
22 | МодульАДС.ПриЗакрытии(ЭтотОбъект, ЗавершениеРаботы);
23 |
24 | КонецПроцедуры
25 |
26 | &НаСервере
27 | Процедура СписокПередЗагрузкойПользовательскихНастроекНаСервере(
28 | Элемент, Настройки, ИспользуютсяСтандартныеНастройки)
29 |
30 | МодульАДС = МодульАдминистрированиеДинамическихСписков();
31 | МодульАДС.ПередЗагрузкойПользовательскихНастроекНаСервере(
32 | ЭтотОбъект, Элемент, Настройки, ИспользуютсяСтандартныеНастройки);
33 |
34 | КонецПроцедуры
35 |
36 | &НаСервереБезКонтекста
37 | Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
38 |
39 | МодульАДС = МодульАдминистрированиеДинамическихСписков();
40 | МодульАДС.ПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки);
41 |
42 | КонецПроцедуры
43 |
44 | &НаКлиенте
45 | Процедура ИТМ_ОбработатьНакопленныеСобытияОбновления() Экспорт
46 |
47 | МодульАДС = МодульАдминистрированиеДинамическихСписковКлиент();
48 | МодульАДС.ОбработатьНакопленныеСобытияОбновления(ЭтотОбъект);
49 |
50 | КонецПроцедуры
51 |
52 | &НаСервереБезКонтекста
53 | Функция МодульАдминистрированиеДинамическихСписков()
54 |
55 | Возврат ОбщегоНазначения.ОбщийМодуль("ИТМ_АдминистрированиеДинамическихСписков");
56 |
57 | КонецФункции
58 |
59 | &НаКлиенте
60 | Функция МодульАдминистрированиеДинамическихСписковКлиент()
61 |
62 | Возврат ОбщегоНазначенияКлиент.ОбщийМодуль("ИТМ_АдминистрированиеДинамическихСписковКлиент");
63 |
64 | КонецФункции
65 |
66 |
67 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/src/Documents/ИТМ_ТестовыйДокумент/ИТМ_ТестовыйДокумент.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | ИТМ_ТестовыйДокумент
11 |
12 | ru
13 | ИТМ тестовый документ
14 |
15 | true
16 | Document.ИТМ_ТестовыйДокумент.StandardAttribute.Number
17 | DontUse
18 |
19 | Use
20 | Posted
21 |
22 | Use
23 |
24 |
25 |
26 |
27 | Use
28 | Ref
29 |
30 | Use
31 |
32 |
33 |
34 |
35 | Use
36 | DeletionMark
37 |
38 | Use
39 |
40 |
41 |
42 |
43 | Use
44 | Date
45 |
46 | ShowError
47 | Use
48 |
49 |
50 |
51 |
52 | Use
53 | Number
54 |
55 | Use
56 |
57 |
58 |
59 | Use
60 | Managed
61 | Use
62 | String
63 | 9
64 | Variable
65 | true
66 | true
67 | Document.ИТМ_ТестовыйДокумент.Form.ФормаСписка
68 | true
69 | true
70 |
71 | Строка
72 |
73 | ru
74 | Строка
75 |
76 |
77 | String
78 |
79 | 10
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | Use
88 | Use
89 |
90 |
91 | Число
92 |
93 | ru
94 | Число
95 |
96 |
97 | String
98 |
99 | 10
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 | Use
108 | Use
109 |
110 |
111 | ПростаяСсылка
112 |
113 | ru
114 | Простая ссылка
115 |
116 |
117 | DocumentRef.ИТМ_ТестовыйДокумент
118 |
119 |
120 |
121 |
122 | Use
123 | Use
124 |
125 |
126 | Составной
127 |
128 | ru
129 | Составной
130 |
131 |
132 | String
133 | DocumentRef.ИТМ_ТестовыйДокумент
134 | Number
135 |
136 | 10
137 |
138 |
139 | 10
140 |
141 |
142 |
143 |
144 |
145 | Use
146 | Use
147 |
148 |
149 | ФормаСписка
150 |
151 | ru
152 | Форма списка
153 |
154 | PersonalComputer
155 | MobileDevice
156 |
157 |
158 |
159 |
160 |
161 |
162 | ТабличнаяЧасть
163 |
164 | ru
165 | Табличная часть
166 |
167 |
168 | Use
169 | LineNumber
170 |
171 | Use
172 |
173 |
174 |
175 |
176 | Строка
177 |
178 | ru
179 | Строка
180 |
181 |
182 | String
183 |
184 | 10
185 |
186 |
187 |
188 |
189 | Use
190 | Use
191 |
192 |
193 | Число
194 |
195 | ru
196 | Число
197 |
198 |
199 | String
200 |
201 | 10
202 |
203 |
204 |
205 |
206 | Use
207 | Use
208 |
209 |
210 | ПростаяСсылка
211 |
212 | ru
213 | Простая ссылка
214 |
215 |
216 | DocumentRef.ИТМ_ТестовыйДокумент
217 |
218 |
219 |
220 | Use
221 | Use
222 |
223 |
224 | Составной
225 |
226 | ru
227 | Составной
228 |
229 |
230 | String
231 | DocumentRef.ИТМ_ТестовыйДокумент
232 | Number
233 |
234 | 10
235 |
236 |
237 | 10
238 |
239 |
240 |
241 |
242 | Use
243 | Use
244 |
245 |
246 |
247 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/src/Subsystems/ИТМ_АдминистрированиеДинамическихСписков_Демо/CommandInterface.cmi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/ИТМ_АдминистрированиеДинамическихСписков_Демо/src/Subsystems/ИТМ_АдминистрированиеДинамическихСписков_Демо/ИТМ_АдминистрированиеДинамическихСписков_Демо.mdo:
--------------------------------------------------------------------------------
1 |
2 |
3 | ИТМ_АдминистрированиеДинамическихСписков_Демо
4 |
5 | ru
6 | Администрирование динамических списков демо
7 |
8 | true
9 | Document.ИТМ_ТестовыйДокумент
10 | Catalog.ИТМ_ТестовыйСправочник
11 |
12 |
--------------------------------------------------------------------------------