diff --git a/SSL/src/BusinessProcesses/Задание/Flowchart.scheme b/SSL/src/BusinessProcesses/Задание/Flowchart.scheme index afdbe8b49..0068a63c8 100644 --- a/SSL/src/BusinessProcesses/Задание/Flowchart.scheme +++ b/SSL/src/BusinessProcesses/Задание/Flowchart.scheme @@ -44,7 +44,7 @@ AutoSize - + СтартПередСтартом @@ -121,23 +121,23 @@ Исполнитель false - + - + - + - + ВыполнитьПередСозданиемЗадач ВыполнитьПриСозданииЗадач ВыполнитьПриВыполнении @@ -219,16 +219,16 @@ Проверяющий false - + - + - + diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ВнешнееДействиеВыполнить/Attributes/Файлы/ExtInfo/ListSettings.dcss b/SSL/src/BusinessProcesses/Задание/Forms/ВнешнееДействиеВыполнить/Attributes/Файлы/ExtInfo/ListSettings.dcss new file mode 100644 index 000000000..91027f589 --- /dev/null +++ b/SSL/src/BusinessProcesses/Задание/Forms/ВнешнееДействиеВыполнить/Attributes/Файлы/ExtInfo/ListSettings.dcss @@ -0,0 +1,15 @@ + + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ВнешнееДействиеВыполнить/Form.form b/SSL/src/BusinessProcesses/Задание/Forms/ВнешнееДействиеВыполнить/Form.form new file mode 100644 index 000000000..57989890e --- /dev/null +++ b/SSL/src/BusinessProcesses/Задание/Forms/ВнешнееДействиеВыполнить/Form.form @@ -0,0 +1,3208 @@ + + + + ГруппаСостояние + 131 + true + true + + true + + true + false + + ГруппаСостояниеРасширеннаяПодсказка + 238 + Label + true + true + + Left + + + UsualGroup + + Auto + StrongSeparation + true + true + Auto + Auto + + + + ГруппаШапка + 154 + + ГруппаЗаголовок + 109 + + Автор + 51 + + <key>ru</key> + <value>Автор</value> + + true + + true + + + Объект.Автор + + + АвторРасширеннаяПодсказка + 241 + Label + true + true + + Left + + + + АвторКонтекстноеМеню + 52 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + АвторСтрокой + 160 + + <key>ru</key> + <value>Автор</value> + + true + true + + true + + + Объект.АвторСтрокой + + + АвторСтрокойРасширеннаяПодсказка + 243 + Label + true + true + + Left + + + + АвторСтрокойКонтекстноеМеню + 161 + true + + InputField + true + Enter + true + Left + true + + 20 + true + true + true + true + true + true + Normal + + + + Дата + 152 + true + true + + true + + + Объект.Date + + + ДатаРасширеннаяПодсказка + 245 + Label + true + true + + Left + + + + ДатаКонтекстноеМеню + 153 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Номер + 149 + true + true + + true + + + Объект.Number + + + НомерРасширеннаяПодсказка + 247 + Label + true + true + + Left + + + + НомерКонтекстноеМеню + 150 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа заголовок</value> + + + ru + Группа заголовок + + + ГруппаЗаголовокРасширеннаяПодсказка + 240 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ГруппаИсполнение + 28 + + Исполнитель + 20 + + <key>ru</key> + <value>Исполнитель</value> + + true + true + + true + + + ИсполнительСтрокой + + + ru + Исполнитель + + + ИсполнительРасширеннаяПодсказка + 250 + Label + true + true + + Left + + + + ИсполнительКонтекстноеМеню + 21 + true + + InputField + true + Enter + true + Left + true + Left + + 20 + true + true + true + true + true + true + Normal + + + + СрокИсполнения + 12 + true + true + + true + + + Объект.СрокИсполнения + + + ru + Срок исполнения + + + СрокИсполненияРасширеннаяПодсказка + 252 + Label + true + true + + Left + + + + СрокИсполненияКонтекстноеМеню + 13 + true + + InputField + true + Enter + true + Left + true + Left + + true + true + true + true + true + true + Normal + + + + Важность + 16 + true + true + + true + + + Объект.Важность + + + ВажностьРасширеннаяПодсказка + 254 + Label + true + true + + Left + + + + ВажностьКонтекстноеМеню + 17 + true + + InputField + Enter + true + Left + true + Left + + 10 + true + true + false + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Исполнение</value> + + + System.DefaultGUIFont + true + false + false + false + + true + + ГруппаИсполнениеРасширеннаяПодсказка + 249 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ГруппаПриоритет + 155 + + СрокНачалаИсполнения + 119 + true + true + + true + + + Объект.ДатаНачала + + + ru + Срок начала исполнения + + + OnChange + СрокНачалаИсполненияПриИзменении + + + СрокНачалаИсполненияРасширеннаяПодсказка + 257 + Label + true + true + + Left + + + + СрокНачалаИсполненияКонтекстноеМеню + 120 + true + + InputField + Enter + true + Left + true + + 10 + true + true + + ru + ДЛФ=D + + true + true + true + Normal + + + + СрокНачалаИсполненияВремя + 135 + true + true + + true + + + Объект.ДатаНачала + + None + + ru + Срок начала исполнения + + + СрокНачалаИсполненияВремяРасширеннаяПодсказка + 259 + Label + true + true + + Left + + + + СрокНачалаИсполненияВремяКонтекстноеМеню + 136 + true + + InputField + Enter + true + Left + true + + 8 + true + true + false + + ru + ДЛФ=T + + true + true + true + Normal + + + true + true + + true + + + ГруппаПриоритетРасширеннаяПодсказка + 256 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + ГруппаШапкаРасширеннаяПодсказка + 239 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаСодержание + 94 + + ГруппаЗадачаФайлы + 204 + + ГруппаНаименованиеСодержание + 205 + + Наименование + 156 + true + true + + true + + + Объект.Description + + + НаименованиеРасширеннаяПодсказка + 264 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 157 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Содержание + 18 + + <key>ru</key> + <value>Описание</value> + + true + true + + true + + + ЗаданиеСодержание + + Left + + СодержаниеРасширеннаяПодсказка + 266 + Label + true + true + + Left + + + + СодержаниеКонтекстноеМеню + 19 + true + + InputField + true + Enter + true + Left + true + Left + + true + 3 + true + true + true + true + true + true + true + + Style.BorderColor + + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа наименование содержание</value> + + + ru + Группа наименование содержание + + + ГруппаНаименованиеСодержаниеРасширеннаяПодсказка + 263 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + Файлы + 164 + true + true + + true + + + Файлы + + Top + Copy + + ФайлыПодписанЭЦП + 185 + true + true + + true + + + Файлы.ПодписанЭЦП + + + ФайлыПодписанЭЦПРасширеннаяПодсказка + 298 + Label + true + true + + Left + + + + ФайлыПодписанЭЦПКонтекстноеМеню + 186 + true + + PictureField + Enter + + CommonPicture.ПодписанЭЦП + + Left + true + + true + true + true + true + + CommonPicture.ПодписанЭЦП + + + + 1 + + + + + ФайлыЗашифрован + 179 + true + true + + true + + + Файлы.Зашифрован + + + ФайлыЗашифрованРасширеннаяПодсказка + 300 + Label + true + true + + Left + + + + ФайлыЗашифрованКонтекстноеМеню + 180 + true + + PictureField + Enter + + CommonPicture.Зашифрован + + Left + true + + true + true + true + true + + CommonPicture.Зашифрован + + + + 1 + + + + + ФайлыГруппаНаименование + 203 + + ФайлыИндексКартинки + 181 + true + true + + true + + + Файлы.ИндексКартинки + + + ФайлыИндексКартинкиРасширеннаяПодсказка + 303 + Label + true + true + + Left + + + + ФайлыИндексКартинкиКонтекстноеМеню + 182 + true + + PictureField + Enter + Left + true + + true + true + true + true + + CommonPicture.ПиктограммыФайлов + + + + 1 + + + + + ФайлыНаименование + 171 + + <key>ru</key> + <value>Имя файла</value> + + true + true + + true + + + Файлы.Description + + + ФайлыНаименованиеРасширеннаяПодсказка + 305 + Label + true + true + + Left + + + + ФайлыНаименованиеКонтекстноеМеню + 172 + true + + LabelField + Enter + true + Left + true + + 1 + true + true + + + + ФайлыОписание + 183 + true + true + + true + + + Файлы.Описание + + + ФайлыОписаниеРасширеннаяПодсказка + 307 + Label + true + true + + Left + + + + ФайлыОписаниеКонтекстноеМеню + 184 + true + + LabelField + Enter + Left + true + + 1 + true + true + + + true + true + + true + + + <key>ru</key> + <value>Файлы группа наименование</value> + + + ru + Файлы группа наименование + + + ФайлыГруппаНаименованиеРасширеннаяПодсказка + 302 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + ФайлыКоманднаяПанель + 166 + Left + + + DragCheck + ФайлыПроверкаПеретаскивания + + + Selection + СписокФайловВыбор + + + BeforeAddRow + ФайлыПередНачаломДобавления + + + OnActivateRow + ФайлыПриАктивизацииСтроки + + + Drag + ФайлыПеретаскивание + + + ФайлыСтрокаПоиска + 289 + + ФайлыСтрокаПоискаРасширеннаяПодсказка + 291 + Label + true + true + + Left + + + + ФайлыСтрокаПоискаКонтекстноеМеню + 290 + true + + Файлы + + true + + + + ФайлыСостояниеПросмотра + 292 + + ФайлыСостояниеПросмотраРасширеннаяПодсказка + 294 + Label + true + true + + Left + + + + ФайлыСостояниеПросмотраКонтекстноеМеню + 293 + true + + ViewStatusAddition + Файлы + + true + + + + ФайлыУправлениеПоиском + 295 + + ФайлыУправлениеПоискомРасширеннаяПодсказка + 297 + Label + true + true + + Left + + + + ФайлыУправлениеПоискомКонтекстноеМеню + 296 + true + + SearchControlAddition + Файлы + + true + + + + ФайлыРасширеннаяПодсказка + 288 + Label + true + true + + Left + + + + ФайлыКонтекстноеМеню + 165 + + ФайлыКонтекстноеМенюСоздать + 208 + true + true + + true + + + ФайлыКонтекстноеМенюСоздатьРасширеннаяПодсказка + 268 + Label + true + true + + Left + + + Form.Item.Файлы.StandardCommand.Create + Normal + Auto + true + true + UserCmds + Auto + + + ГруппаКонтекстноеМеню + 209 + true + true + + true + + + <key>ru</key> + <value>Группа контекстное меню</value> + + + ru + Группа контекстное меню + + + ГруппаКонтекстноеМенюРасширеннаяПодсказка + 269 + Label + true + true + + Left + + + + Item.Файлы + + + + ФайлыКонтекстноеМенюОткрытьФайл + 210 + true + true + + true + + + ФайлыКонтекстноеМенюОткрытьФайлРасширеннаяПодсказка + 270 + Label + true + true + + Left + + + Form.Command.ОткрытьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюРедактировать + 211 + true + true + + true + + + ФайлыКонтекстноеМенюРедактироватьРасширеннаяПодсказка + 271 + Label + true + true + + Left + + + Form.Command.Редактировать + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюЗакончитьРедактирование + 212 + true + true + + true + + + ФайлыКонтекстноеМенюЗакончитьРедактированиеРасширеннаяПодсказка + 272 + Label + true + true + + Left + + + Form.Command.ЗакончитьРедактирование + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюЗанять + 213 + true + true + + true + + + ФайлыКонтекстноеМенюЗанятьРасширеннаяПодсказка + 273 + Label + true + true + + Left + + + Form.Command.Занять + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюСохранитьИзменения + 214 + true + true + + true + + + ФайлыКонтекстноеМенюСохранитьИзмененияРасширеннаяПодсказка + 274 + Label + true + true + + Left + + + Form.Command.СохранитьИзменения + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюСохранитьКак + 215 + true + true + + true + + + ФайлыКонтекстноеМенюСохранитьКакРасширеннаяПодсказка + 275 + Label + true + true + + Left + + + Form.Command.СохранитьКак + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюОсвободить + 216 + true + true + + true + + + ФайлыКонтекстноеМенюОсвободитьРасширеннаяПодсказка + 276 + Label + true + true + + Left + + + Form.Command.Освободить + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске + 217 + true + true + + true + + + ФайлыКонтекстноеМенюОбновитьИзФайлаНаДискеРасширеннаяПодсказка + 277 + Label + true + true + + Left + + + Form.Command.ОбновитьИзФайлаНаДиске + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюГруппаЭЦПИШифрование + 218 + + ФайлыКонтекстноеМенюГруппаЭЦП + 219 + + ФайлыКонтекстноеМенюПодписатьФайл + 221 + true + true + + true + + + ФайлыКонтекстноеМенюПодписатьФайлРасширеннаяПодсказка + 280 + Label + true + true + + Left + + + Form.Command.ПодписатьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла + 222 + true + true + + true + + + ФайлыКонтекстноеМенюДобавитьЭЦПИзФайлаРасширеннаяПодсказка + 281 + Label + true + true + + Left + + + Form.Command.ДобавитьЭЦПИзФайла + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюСохранитьВместеСЭЦП + 223 + true + true + + true + + + ФайлыКонтекстноеМенюСохранитьВместеСЭЦПРасширеннаяПодсказка + 282 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭЦП + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Файлы контекстное меню группа ЭЦП</value> + + + ru + Файлы контекстное меню группа ЭЦП + + + ФайлыКонтекстноеМенюГруппаЭЦПРасширеннаяПодсказка + 279 + Label + true + true + + Left + + + + + + ФайлыКонтекстноеМенюГруппаШифрование + 220 + + ФайлыКонтекстноеМенюЗашифровать + 224 + true + true + + true + + + ФайлыКонтекстноеМенюЗашифроватьРасширеннаяПодсказка + 284 + Label + true + true + + Left + + + Form.Command.Зашифровать + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюРасшифровать + 225 + true + true + + true + + + ФайлыКонтекстноеМенюРасшифроватьРасширеннаяПодсказка + 285 + Label + true + true + + Left + + + Form.Command.Расшифровать + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Файлы контекстное меню группа шифрование</value> + + + ru + Файлы контекстное меню группа шифрование + + + ФайлыКонтекстноеМенюГруппаШифрованиеРасширеннаяПодсказка + 283 + Label + true + true + + Left + + + + + true + true + + true + + + <key>ru</key> + <value>ЭЦП и шифрование</value> + + + ru + ЭЦП и шифрование + + + ФайлыКонтекстноеМенюГруппаЭЦПИШифрованиеРасширеннаяПодсказка + 278 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + ГруппаИмпорт + 226 + + ФайлыКонтекстноеМенюИмпортФайлов + 227 + true + true + + true + + + ФайлыКонтекстноеМенюИмпортФайловРасширеннаяПодсказка + 287 + Label + true + true + + Left + + + Form.Command.ИмпортФайлов + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Группа импорт</value> + + + ru + Группа импорт + + + ГруппаИмпортРасширеннаяПодсказка + 286 + Label + true + true + + Left + + + + + + HierarchicalList + true + true + 20 + true + true + 3 + true + MultiRow + Row +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + true + true + true + true + None + None + None + true + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + true + +
+ true + true + + true + + + <key>ru</key> + <value>Группа задача файлы</value> + + + ru + Группа задача файлы + + + ГруппаЗадачаФайлыРасширеннаяПодсказка + 262 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + +
+ + ГруппаПредмет + 228 + + ГруппаПодписьСсылка + 231 + + ДекорацияПредмет + 229 + + <key>ru</key> + <value>Предмет:</value> + + true + true + + true + + + ДекорацияПредметРасширеннаяПодсказка + 319 + Label + true + true + + Left + + + + ДекорацияПредметКонтекстноеМеню + 230 + true + + Label + true + true + + Left + + + + Предмет + 129 + true + true + + true + + + ПредметСтрокой + + None + + ПредметРасширеннаяПодсказка + 320 + Label + true + true + + Left + + + + ПредметКонтекстноеМеню + 130 + true + + LabelField + Enter + true + Left + true + + + Click + ПредметНажатие + + true + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа подпись ссылка</value> + + + ru + Группа подпись ссылка + + + ГруппаПодписьСсылкаРасширеннаяПодсказка + 318 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ПредметHTML + 162 + + <key>ru</key> + <value>Содержание</value> + + true + true + + true + + + ПредметHTML + + None + + ПредметHTMLРасширеннаяПодсказка + 322 + Label + true + true + + Left + + + + ПредметHTMLКонтекстноеМеню + 163 + true + + HTMLDocumentField + Enter + true + Left + true + + 40 + true + 10 + true + true + true + + + + ПредметMXL + 206 + + <key>ru</key> + <value>Содержание</value> + + true + true + + true + + + ПредметMXL + + None + + ПредметMXLРасширеннаяПодсказка + 324 + Label + true + true + + Left + + + + ПредметMXLКонтекстноеМеню + 207 + true + + SpreadsheetDocumentField + true + Enter + true + Left + true + + 50 + true + 10 + true + true + true + Special + ScrollAlways + ScrollAlways + Always + Auto + true + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа предмет</value> + + + ru + Группа предмет + + + ГруппаПредметРасширеннаяПодсказка + 317 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Содержание</value> + + + System.DefaultGUIFont + true + false + false + false + + + ГруппаСодержаниеРасширеннаяПодсказка + 261 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + auto + Auto + Auto + +
+ + ГруппаРезультат + 27 + + ОписаниеРезультата + 78 + true + true + + true + + + Объект.РезультатВыполнения + + true + None + + ru + Описание результата выполнения + + + ОписаниеРезультатаРасширеннаяПодсказка + 327 + Label + true + true + + Left + + + + ОписаниеРезультатаКонтекстноеМеню + 79 + true + + InputField + Enter + true + Left + true + + true + 2 + true + true + true + true + true + Normal + + + + ГруппаВыполненоДата + 54 + + Выполнено + 123 + true + true + + true + + false + + ВыполненоРасширеннаяПодсказка + 330 + Label + true + true + + Left + + + UsualButton + Form.Command.Выполнено + Normal + PictureAndText + true + true + UserCmds + Auto + + + Отклонено + 137 + true + true + + true + + false + + ОтклоненоРасширеннаяПодсказка + 331 + Label + true + true + + Left + + + UsualButton + Form.Command.Отменено + Normal + Auto + true + true + UserCmds + Auto + + + ДатаИсполнения + 55 + + <key>ru</key> + <value>Дата</value> + + true + true + + true + + + Объект.ДатаИсполнения + + + OnChange + ДатаИсполненияПриИзменении + + + ДатаИсполненияРасширеннаяПодсказка + 332 + Label + true + true + + Left + + + + ДатаИсполненияКонтекстноеМеню + 56 + true + + InputField + Enter + true + Left + true + + 10 + true + true + false + + ru + ДЛФ=D + + true + true + true + Normal + + + + ДатаИсполненияВремя + 146 + true + true + + true + + + Объект.ДатаИсполнения + + None + + ru + Срок начала исполнения + + + ДатаИсполненияВремяРасширеннаяПодсказка + 334 + Label + true + true + + Left + + + + ДатаИсполненияВремяКонтекстноеМеню + 147 + true + + InputField + Enter + true + Left + true + + 8 + true + true + false + + ru + ДЛФ=T + + true + true + true + Normal + + + true + true + + true + + + ГруппаВыполненоДатаРасширеннаяПодсказка + 329 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Результат выполнения задания</value> + + + System.DefaultGUIFont + true + false + false + false + + + ГруппаРезультатРасширеннаяПодсказка + 326 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + auto + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ЗаписатьИЗакрыть + 45 + true + true + + true + + false + + ЗаписатьИЗакрытьРасширеннаяПодсказка + 232 + Label + true + true + + Left + + + Form.Command.ЗаписатьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ОсновнаяКоманднаяПанель + 1 + true + true + + true + + + ОсновнаяКоманднаяПанельРасширеннаяПодсказка + 233 + Label + true + true + + Left + + + + Form + + + + ФормаПринятьКИсполнению + 158 + true + true + + true + + + ФормаПринятьКИсполнениюРасширеннаяПодсказка + 234 + Label + true + true + + Left + + + Form.Command.ПринятьКИсполнению + Normal + Auto + true + true + UserCmds + Auto + + + ФормаОтменитьПринятиеКИсполнению + 159 + true + true + + true + + + ФормаОтменитьПринятиеКИсполнениюРасширеннаяПодсказка + 235 + Label + true + true + + Left + + + Form.Command.ОтменитьПринятиеКИсполнению + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + Дополнительно + 148 + true + true + + true + + false + + ДополнительноРасширеннаяПодсказка + 236 + Label + true + true + + Left + + + Form.Command.Дополнительно + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + Справка + 151 + true + true + + true + + false + + СправкаРасширеннаяПодсказка + 237 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + Left + + + NotificationProcessing + ОбработкаОповещения + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + Activate + Copy + Delete + Execute + ExecuteAndClose + SetDeletionMark + DontBlock + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Объект + 1 + + TaskObject.ЗадачаИсполнителя + + + true + + + true + +
true
+ true +
+ + НачальныйПризнакВыполнения + + <key>ru</key> + <value>Начальный признак выполнения</value> + + 2 + + Boolean + + + true + + + true + + + + ПредметСтрокой + + <key>ru</key> + <value>Предмет</value> + + 3 + + String + + + + true + + + true + + + + ТекущийПользователь + + <key>ru</key> + <value>Текущий пользователь</value> + + 5 + + CatalogRef.Пользователи + + + true + + + true + + + + ЗаданиеВыполнено + + <key>ru</key> + <value>Выполнено</value> + + 7 + + Boolean + + + true + + + true + + + + ЗаданиеСодержание + + <key>ru</key> + <value>Содержание</value> + + 6 + + String + + + + true + + + true + + + + ЗаданиеРезультатВыполнения + + <key>ru</key> + <value>История сообщений</value> + + 8 + + String + + + + true + + + true + + + + ПредметHTML + + <key>ru</key> + <value>Предмет HTML</value> + + 4 + + String + + + + true + + + true + + + + Файлы + + <key>ru</key> + <value>Файлы</value> + + 9 + + DynamicList + + + true + + + true + + + Файлы.Зашифрован + + + Файлы.ПодписанЭЦП + + + Файлы.Редактирует + + + Файлы.РедактируетТекущийПользователь + + + Файлы.ХранитьВерсии + + + ВЫБРАТЬ + Файлы.Код, + Файлы.Наименование, + ПОДСТРОКА(Файлы.Описание, 0, 140) Как Описание, + Файлы.Ссылка, + Файлы.ДатаСоздания, + Файлы.Автор, + Файлы.Редактирует, + Файлы.ХранитьВерсии, + Файлы.ПометкаУдаления, + Файлы.ТекущаяВерсияРазмер / 1024 КАК ТекущаяВерсияРазмер, + Файлы.ТекущаяВерсияДатаСоздания КАК ТекущаяВерсияДатаСоздания, + Файлы.ТекущаяВерсияАвтор КАК ТекущаяВерсияАвтор, + ВЫБОР + КОГДА Файлы.ПометкаУдаления = ИСТИНА + ТОГДА Файлы.ИндексКартинки + 1 + ИНАЧЕ Файлы.ИндексКартинки + КОНЕЦ КАК ИндексКартинки, + ВЫБОР + КОГДА Файлы.Редактирует = &ТекущийПользователь + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ КАК РедактируетТекущийПользователь, + Файлы.ТекущаяВерсияРасширение КАК Расширение, + Файлы.ПодписанЭЦП, + Файлы.Зашифрован +ИЗ + Справочник.Файлы КАК Файлы +ГДЕ + Файлы.ВладелецФайла = &ВладелецФайла + Catalog.Файлы + true + true + true + true + true + + + + ПредметMXL + + <key>ru</key> + <value>Предмет MXL</value> + + 10 + + SpreadsheetDocument + + + true + + + true + + + + + ИсполнительСтрокой + + <key>ru</key> + <value>Исполнитель строкой</value> + + 11 + + String + + + + true + + + true + + + + ЗаписатьИЗакрыть + + <key>ru</key> + <value>Записать и закрыть</value> + + 1 + + ru + Записать и закрыть + + + true + + + + ЗаписатьИЗакрытьВыполнить + + + true + Auto + Auto + + + Выполнено + + <key>ru</key> + <value>Выполнено</value> + + 3 + + ru + Отметить задание как выполненное и закрыть + + + true + + + StdPicture.ExecuteTask + + + + ВыполненоВыполнить + + + true + Auto + Auto + + + Отменено + + <key>ru</key> + <value>Отменено</value> + + 2 + + ru + Отметить задание как невыполненное и закрыть + + + true + + + + Отменено + + + true + Auto + Auto + + + Дополнительно + + <key>ru</key> + <value>Дополнительно</value> + + 4 + + ru + Дополнительная информация о задаче + + + true + + + + Дополнительно + + + Auto + Auto + + + ПринятьКИсполнению + + <key>ru</key> + <value>Принять к исполнению</value> + + 5 + + ru + Принять к исполнению + + + true + + + + ПринятьКИсполнению + + + Auto + Auto + + + ОтменитьПринятиеКИсполнению + + <key>ru</key> + <value>Отменить принятие к исполнению</value> + + 6 + + ru + Отменить принятие к исполнению + + + true + + + + ОтменитьПринятиеКИсполнению + + + Auto + Auto + + + ДобавитьЭЦПИзФайла + + <key>ru</key> + <value>Добавить ЭЦП из файла</value> + + 7 + + ru + Добавить ЭЦПИз файла + + + true + + + + ДобавитьЭЦПИзФайла + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ЗакончитьРедактирование + + <key>ru</key> + <value>Закончить редактирование</value> + + 8 + + ru + Сохранить и освободить файл в информационной базе + + + true + + + CommonPicture.КартинкаЗакончитьРедактирование + + + + ЗакончитьРедактирование + + + TextPicture + Auto + Auto + + + Занять + + <key>ru</key> + <value>Занять</value> + + 9 + + ru + Пометить файл как занятый для редактирования + + + true + + + CommonPicture.КартинкаЗанять + + + + Занять + + + TextPicture + Auto + Auto + + + Зашифровать + + <key>ru</key> + <value>Зашифровать</value> + + 10 + + ru + Зашифровать + + + true + + + + Зашифровать + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ИмпортФайлов + + <key>ru</key> + <value>Импорт файлов...</value> + + 11 + + ru + Импорт файлов + + + true + + + + ИмпортФайлов + + + Auto + Auto + + + ОбновитьИзФайлаНаДиске + + <key>ru</key> + <value>Обновить из файла на диске...</value> + + 12 + + ru + Обновить из файла на диске + + + true + + + + ОбновитьИзФайлаНаДиске + + + Auto + Auto + + + Освободить + + <key>ru</key> + <value>Отменить редактирование</value> + + 13 + + ru + Освободить занятый файл + + + true + + + CommonPicture.КартинкаОсвободить + + + + Освободить + + + TextPicture + Auto + Auto + + + ОткрытьФайл + + <key>ru</key> + <value>Просмотреть</value> + + 14 + + ru + Открыть файл для просмотра + + + true + + + CommonPicture.КартинкаОткрыть + + + + ОткрытьФайл + + + TextPicture + Auto + Auto + + + ПодписатьФайл + + <key>ru</key> + <value>Подписать</value> + + 15 + + ru + Подписать + + + true + + + CommonPicture.ПодписанЭЦП + + + + ПодписатьФайл + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + Расшифровать + + <key>ru</key> + <value>Расшифровать</value> + + 16 + + ru + Расшифровать + + + true + + + + Расшифровать + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + Редактировать + + <key>ru</key> + <value>Редактировать</value> + + 17 + + ru + Открыть файл для редактирования + + + true + + F4 + + CommonPicture.КартинкаРедактировать + + + + Редактировать + + + TextPicture + Auto + Auto + + + СохранитьВместеСЭЦП + + <key>ru</key> + <value>Сохранить вместе с ЭЦП</value> + + 18 + + ru + Сохранить вместе с ЭЦП + + + true + + + + СохранитьВместеСЭЦП + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + СохранитьИзменения + + <key>ru</key> + <value>Сохранить изменения</value> + + 19 + + ru + Сохранить измененный файл в информационной базе + + + true + + + CommonPicture.КартинкаОпубликовать + + + + СохранитьИзменения + + + TextPicture + Auto + Auto + + + СохранитьКак + + <key>ru</key> + <value>Сохранить как...</value> + + 20 + + ru + Сохранить файл на диск или другое устройство + + + true + + + CommonPicture.КартинкаСохранитьКак + + + + СохранитьКак + + + TextPicture + Auto + Auto + + + + + + Task.ЗадачаИсполнителя.Command.Выполнено + FormCommandBarImportant + 0 + + + + BusinessProcess.Задание.StandardCommand.CreateBasedOn + + true + + + + + + + AfterWriteAtServer + ПослеЗаписиНаСервере + + + OnReadAtServer + ПриЧтенииНаСервере + + + BeforeWriteAtServer + ПередЗаписьюНаСервере + + +
diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ВнешнееДействиеВыполнить/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ВнешнееДействиеВыполнить/Module.bsl new file mode 100644 index 000000000..f84692d91 --- /dev/null +++ b/SSL/src/BusinessProcesses/Задание/Forms/ВнешнееДействиеВыполнить/Module.bsl @@ -0,0 +1,783 @@ +//////////////////////////////////////////////////////////////////////////////// +// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + // Для нового объекта выполняем код инициализации формы в ПриСозданииНаСервере. + // Для существующего - в ПриЧтенииНаСервере. + Если Объект.Ссылка.Пустая() Тогда + ИнициализацияФормы(); + КонецЕсли; + + ТекущийПользователь = ОбщегоНазначения.ТекущийПользователь(); + + Если Объект.Автор.Пустая() И Не ПустаяСтрока(Объект.АвторСтрокой) Тогда + Элементы.Автор.Видимость = Ложь; + Элементы.АвторСтрокой.Видимость = Истина; + Иначе + Элементы.Автор.Видимость = Истина; + Элементы.АвторСтрокой.Видимость = Ложь; + КонецЕсли; + + Если Объект.Предмет = Неопределено Или Объект.Предмет.Пустая() Тогда + Элементы.Предмет.Видимость = Ложь; + Иначе + Элементы.Предмет.Видимость = Истина; + КонецЕсли; + + ДанныеХранилища = Объект.БизнесПроцесс.СодержаниеПредмета.Получить(); + Если ДанныеХранилища <> Неопределено Тогда + Если ТипЗнч(ДанныеХранилища) = Тип("Строка") Тогда + ПредметHTML = ДанныеХранилища; + Элементы.ПредметHTML.Видимость = Истина; + Элементы.ПредметMXL.Видимость = Ложь; + ИначеЕсли ТипЗнч(ДанныеХранилища) = Тип("ТабличныйДокумент") Тогда + ПредметMXL = ДанныеХранилища; + Элементы.ПредметHTML.Видимость = Ложь; + Элементы.ПредметMXL.Видимость = Истина; + КонецЕсли; + КонецЕсли; + + Файлы.Параметры.УстановитьЗначениеПараметра("ВладелецФайла", Объект.БизнесПроцесс.Ссылка); + Файлы.Параметры.УстановитьЗначениеПараметра("ТекущийПользователь", ОбщегоНазначения.ТекущийПользователь()); + РаботаСФайламиВызовСервера.ЗаполнитьУсловноеОформлениеСпискаФайлов(Файлы); + + Если РаботаСФайламиВызовСервера.ПолучитьИспользоватьЭлектронныеЦифровыеПодписиИШифрование() = Ложь Тогда + Элементы.ФайлыПодписанЭЦП.Видимость = Ложь; + Элементы.ФайлыЗашифрован.Видимость = Ложь; + КонецЕсли; + + Если Не Объект.Исполнитель.Пустая() Тогда + ИсполнительСтрокой = Строка(Объект.Исполнитель); + ИначеЕсли Не Объект.РольИсполнителя.Пустая() Тогда + ИсполнительСтрокой = Строка(Объект.РольИсполнителя); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + ВыполнитьЗадачу = Ложь; + Если НЕ (ПараметрыЗаписи.Свойство("ВыполнитьЗадачу", ВыполнитьЗадачу) И ВыполнитьЗадачу) Тогда + Возврат; + КонецЕсли; + + Если НЕ ЗаданиеВыполнено И НЕ ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда + ОбщегоНазначенияКлиентСервер.СообщитьПользователю( + НСтр("ru = 'Укажите причину, по которой задача отклоняется.'"),, + "Объект.РезультатВыполнения",, + Отказ); + Возврат; + КонецЕсли; + + // запись объекта бизнес-процесса + ЗаписатьРеквизитыБизнесПроцесса(ТекущийОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "ИмпортФайловЗавершен" Тогда + Элементы.Файлы.Обновить(); + + Если Параметр <> Неопределено Тогда + Элементы.Файлы.ТекущаяСтрока = Параметр; + КонецЕсли; + КонецЕсли; + + Если ИмяСобытия = "СозданФайл" Тогда + Элементы.Файлы.Обновить(); + + Если ТипЗнч(Параметр) = Тип("Структура") Тогда + Элементы.Файлы.ТекущаяСтрока = Параметр.Файл; + КонецЕсли; + + КонецЕсли; + + Если ИмяСобытия = "ДанныеФайлаИзменены" Тогда + + ВладелецФайла = Неопределено; + + Если ТипЗнч(Параметр) = Тип("Структура") Тогда + ВладелецФайла = Параметр.Владелец; + Иначе + ВладелецФайла = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Параметр, "ВладелецФайла"); + КонецЕсли; + + Если ВладелецФайла = Объект.Ссылка Тогда + + Элементы.Файлы.Обновить(); + ОбновитьДоступностьКомандСпискаФайлов(); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + ИнициализацияФормы(); + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ + +&НаКлиенте +Процедура СрокНачалаИсполненияПриИзменении(Элемент) + + Если Объект.ДатаНачала = НачалоДня(Объект.ДатаНачала) Тогда + Объект.ДатаНачала = КонецДня(Объект.ДатаНачала); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДатаИсполненияПриИзменении(Элемент) + + Если Объект.ДатаИсполнения = НачалоДня(Объект.ДатаИсполнения) Тогда + Объект.ДатаИсполнения = КонецДня(Объект.ДатаИсполнения); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьИЗакрытьВыполнить() + + БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполненоВыполнить() + + ЗаданиеВыполнено = Истина; + БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтаФорма, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура Отменено(Команда) + + ЗаданиеВыполнено = Ложь; + БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтаФорма, Истина); + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ + +&НаСервере +Процедура ИнициализацияФормы() + + НачальныйПризнакВыполнения = Объект.Выполнена; + ПрочитатьРеквизитыБизнесПроцесса(); + УстановитьСостояниеЭлементов(); + + ИспользоватьДатуИВремяВСрокахЗадач = ПолучитьФункциональнуюОпцию("ИспользоватьДатуИВремяВСрокахЗадач"); + Элементы.СрокНачалаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач; + Элементы.ДатаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач; + БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.СрокИсполнения); + БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.Дата); + + БизнесПроцессыИЗадачиСервер.ФормаЗадачиПриСозданииНаСервере(ЭтаФорма, Объект, + Элементы.ГруппаСостояние, Элементы.ДатаИсполнения); + Элементы.ОписаниеРезультата.ТолькоПросмотр = Объект.Выполнена; + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьРеквизитыБизнесПроцесса() + + ЗадачаОбъект = РеквизитФормыВЗначение("Объект"); + + УстановитьПривилегированныйРежим(Истина); + ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект(); + ЗаданиеВыполнено = ЗаданиеОбъект.Выполнено; + ЗаданиеРезультатВыполнения = ЗаданиеОбъект.РезультатВыполнения; + ЗаданиеСодержание = ЗаданиеОбъект.Содержание; + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьРеквизитыБизнесПроцесса(ЗадачаОбъект) + + УстановитьПривилегированныйРежим(Истина); + ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект(); + ЗаблокироватьДанныеДляРедактирования(ЗаданиеОбъект.Ссылка); + ЗаданиеОбъект.Выполнено = ЗаданиеВыполнено; + ЗаданиеОбъект.Записать(); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьСостояниеЭлементов() + + БизнесПроцессы.Задание.УстановитьСостояниеЭлементовФормыЗадачи(ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПредметНажатие(Элемент, СтандартнаяОбработка) + + Если ТипЗнч(Объект.Предмет) = Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда + БизнесПроцессыИЗадачиКлиент.ОткрытьФормуВыполненияЗадачи(Объект.Предмет); + Иначе + ОткрытьЗначение(Объект.Предмет); + КонецЕсли; + СтандартнаяОбработка = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура Дополнительно(Команда) + + БизнесПроцессыИЗадачиКлиент.ОткрытьДопИнформациюОЗадаче(Объект.Ссылка); + +КонецПроцедуры + +&НаКлиенте +Процедура ПринятьКИсполнению(Команда) + + КомандыРаботыСБизнесПроцессамиКлиент.ПринятьЗадачуКИсполнению(ЭтаФорма, ТекущийПользователь); + +КонецПроцедуры + +&НаКлиенте +Процедура ОтменитьПринятиеКИсполнению(Команда) + + КомандыРаботыСБизнесПроцессамиКлиент.ОтменитьПринятиеЗадачиКИсполнению(ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + КомандыРаботыСБизнесПроцессамиКлиент.ОбновитьДоступностьКомандПринятияКИсполнению(ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + КакОткрывать = ФайловыеФункцииКлиентПовтИсп.ПолучитьПерсональныеНастройкиРаботыСФайлами().ДействиеПоДвойномуЩелчкуМыши; + Если КакОткрывать = "ОткрыватьКарточку" Тогда + ОткрытьЗначение(ВыбраннаяСтрока); + Возврат; + КонецЕсли; + + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаДляОткрытия( + ВыбраннаяСтрока, Неопределено, ЭтаФорма.УникальныйИдентификатор); + + ВыбранныйРежим = ВыбратьРежимИРедактироватьФайл(ДанныеФайла); + Если ВыбранныйРежим = "Редактировать" Тогда + ОбновитьДоступностьКомандСпискаФайлов(); + Возврат; + ИначеЕсли ВыбранныйРежим = "Отмена" Тогда + Возврат; + КонецЕсли; + + РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьДоступностьКомандСпискаФайлов() + УстановитьДоступностьКомманд(Элементы.Файлы.ТекущиеДанные); +КонецПроцедуры + +// Выбрать режим открытия файла и начать редактирование +&НаКлиенте +Функция ВыбратьРежимИРедактироватьФайл(ДанныеФайла) + + // Если уже занят для редактирования, то не спрашивать - сразу открывать + Если ДанныеФайла.Редактирует.Пустая() Тогда + + СпрашиватьРежимРедактированияПриОткрытииФайла = ФайловыеФункцииКлиентПовтИсп.ПолучитьПерсональныеНастройкиРаботыСФайлами().СпрашиватьРежимРедактированияПриОткрытииФайла; + Если СпрашиватьРежимРедактированияПриОткрытииФайла = Истина Тогда + + КакОткрывать = Неопределено; + + Результат = ОткрытьФормуМодально("Справочник.Файлы.Форма.ФормаВыбораРежимаОткрытия"); + Если ТипЗнч(Результат) <> Тип("Структура") Тогда + Возврат "Отмена"; + КонецЕсли; + + БольшеНеСпрашивать = Результат.БольшеНеСпрашивать; + Если БольшеНеСпрашивать = Истина Тогда + ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("НастройкиОткрытияФайлов", "СпрашиватьРежимРедактированияПриОткрытииФайла", Ложь); + ОбновитьПовторноИспользуемыеЗначения(); + КонецЕсли; + + КакОткрывать = Результат.КакОткрывать; + + Если КакОткрывать = 1 Тогда + РаботаСФайламиКлиент.РедактироватьФайл(ДанныеФайла); + ОповеститьОбИзменении(ДанныеФайла.Ссылка); + Возврат "Редактировать"; + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Возврат "Открыть"; + +КонецФункции + +&НаКлиенте +Процедура ФайлыПриАктивизацииСтроки(Элемент) + ОбновитьДоступностьКомандСпискаФайлов(); +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Отказ = Истина; + + Если Объект.Ссылка.Пустая() Тогда + Если Не Записать() Тогда + Возврат; + КонецЕсли; + + ПоказатьОповещениеПользователя( + "Создание:", + ПолучитьНавигационнуюСсылку(Объект.Ссылка), + Строка(Объект.Ссылка), + БиблиотекаКартинок.Информация32); + КонецЕсли; + + ВладелецФайла = Объект.БизнесПроцесс; + ФайлОснование = Элементы.Файлы.ТекущаяСтрока; + + Если Не Копирование Тогда + Попытка + РежимСоздания = 1; + РаботаСФайламиКлиент.СозданиеНовогоФайла(ВладелецФайла, ЭтаФорма, РежимСоздания, Истина); + Исключение + Инфо = ИнформацияОбОшибке(); + Предупреждение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка создания нового файла: %1'"), + КраткоеПредставлениеОшибки(Инфо))); + КонецПопытки; + Иначе + РаботаСФайламиКлиент.СкопироватьФайл(ВладелецФайла, ФайлОснование); + КонецЕсли; + Элементы.Файлы.Обновить(); + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + СтандартнаяОбработка = Ложь; +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + + СтандартнаяОбработка = Ложь; + + Если Элементы.Файлы.ТолькоПросмотр Тогда + Возврат; + КонецЕсли; + + Если Объект.Ссылка.Пустая() Тогда + Если Не Записать() Тогда + Возврат; + КонецЕсли; + + ПоказатьОповещениеПользователя( + "Создание:", + ПолучитьНавигационнуюСсылку(Объект.Ссылка), + Строка(Объект.Ссылка), + БиблиотекаКартинок.Информация32); + КонецЕсли; + + ВладелецФайлаСписка = Объект.БизнесПроцесс; + НеОткрыватьКарточкуПослеСозданияИзФайла = Истина; + РаботаСФайламиКлиент.ОбработкаПеретаскиванияВЛинейныйСписок(ПараметрыПеретаскивания, ВладелецФайлаСписка, ЭтаФорма, НеОткрыватьКарточкуПослеСозданияИзФайла); + Элементы.Файлы.Обновить(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьФайл(Команда) + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаДляОткрытия(Элементы.Файлы.ТекущаяСтрока, Неопределено, ЭтаФорма.УникальныйИдентификатор); + КомандыРаботыСФайламиКлиент.Открыть(ДанныеФайла); +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьКак(Команда) + + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаДляСохранения(Элементы.Файлы.ТекущаяСтрока, Неопределено, ЭтаФорма.УникальныйИдентификатор); + КомандыРаботыСФайламиКлиент.СохранитьКак(ДанныеФайла, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписатьФайл(Команда) + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаИРабочийКаталог(Элементы.Файлы.ТекущаяСтрока); + + ДанныеДляЗанесенияВРегистр = Неопределено; + Если КомандыРаботыСФайламиКлиент.СформироватьПодписьФайла(ДанныеФайла, ДанныеДляЗанесенияВРегистр) Тогда + ПодписатьЭЦПФайлСервер(ДанныеДляЗанесенияВРегистр); + + ЭлектроннаяЦифроваяПодписьКлиент.ИнформироватьОПодписанииОбъекта(ДанныеФайла.Ссылка); + Оповестить("ПрисоединенныйФайлПодписан", ДанныеФайла.Владелец); + КонецЕсли; + + ОбновитьДоступностьКомандСпискаФайлов(); +КонецПроцедуры + +&НаСервере +Процедура ПодписатьЭЦПФайлСервер(ДанныеДляЗанесенияВРегистр) + + РаботаСФайламиВызовСервера.ЗанестиИнформациюОднойПодписи(ДанныеДляЗанесенияВРегистр); + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьЭЦПИзФайла(Команда) + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаИРабочийКаталог(Элементы.Файлы.ТекущаяСтрока); + КомандыРаботыСФайламиКлиент.ДобавитьЭЦПИзФайла(ДанныеФайла, УникальныйИдентификатор); + + ОбновитьДоступностьКомандСпискаФайлов(); +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьВместеСЭЦП(Команда) + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаДляСохранения(Элементы.Файлы.ТекущаяСтрока); + КомандыРаботыСФайламиКлиент.СохранитьВместеСЭЦП(ДанныеФайла, УникальныйИдентификатор); + + ОбновитьДоступностьКомандСпискаФайлов(); +КонецПроцедуры + +&НаКлиенте +Процедура Расшифровать(Команда) + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + ОбъектСсылка = Элементы.Файлы.ТекущаяСтрока; + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаИКоличествоВерсий(ОбъектСсылка); + + МассивДанныхДляЗанесенияВБазу = Новый Массив; + + Если НЕ КомандыРаботыСФайламиКлиент.Расшифровать(ДанныеФайла, УникальныйИдентификатор, + МассивДанныхДляЗанесенияВБазу) Тогда + Возврат; + КонецЕсли; + + ФайловыеФункцииКлиент.ПроинициализироватьПутьКРабочемуКаталогу(); + ИмяРабочегоКаталога = ФайловыеФункцииКлиентПовтИсп.ПолучитьПерсональныеНастройкиРаботыСФайлами().ПутьКЛокальномуКэшуФайлов; + + РасшифроватьСервер(МассивДанныхДляЗанесенияВБазу, + ИмяРабочегоКаталога, ОбъектСсылка); + + РаботаСФайламиКлиент.ИнформироватьОРасшифровке( + ДанныеФайла.Владелец, ОбъектСсылка); + + ОбновитьДоступностьКомандСпискаФайлов(); +КонецПроцедуры + +&НаСервере +Процедура РасшифроватьСервер(МассивДанныхДляЗанесенияВБазу, + ИмяРабочегоКаталога, ОбъектСсылка) + + Зашифровать = Ложь; + МассивОтпечатков = Новый Массив; + МассивФайловВРабочемКаталогеДляУдаления = Новый Массив; + + РаботаСФайламиВызовСервера.ЗанестиИнформациюОШифровании(ОбъектСсылка, Зашифровать, МассивДанныхДляЗанесенияВБазу, + УникальныйИдентификатор, + ИмяРабочегоКаталога, МассивФайловВРабочемКаталогеДляУдаления, МассивОтпечатков); + +КонецПроцедуры + +&НаКлиенте +Процедура Зашифровать(Команда) + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + ОбъектСсылка = Элементы.Файлы.ТекущаяСтрока; + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаИКоличествоВерсий(ОбъектСсылка); + + МассивДанныхДляЗанесенияВБазу = Новый Массив; + МассивОтпечатков = Новый Массив; + + Если НЕ КомандыРаботыСФайламиКлиент.Зашифровать(ДанныеФайла, УникальныйИдентификатор, + МассивДанныхДляЗанесенияВБазу, МассивОтпечатков) Тогда + Возврат; + КонецЕсли; + + ФайловыеФункцииКлиент.ПроинициализироватьПутьКРабочемуКаталогу(); + ИмяРабочегоКаталога = ФайловыеФункцииКлиентПовтИсп.ПолучитьПерсональныеНастройкиРаботыСФайлами().ПутьКЛокальномуКэшуФайлов; + + МассивФайловВРабочемКаталогеДляУдаления = Новый Массив; + + ЗашифроватьСервер(МассивДанныхДляЗанесенияВБазу, МассивОтпечатков, + МассивФайловВРабочемКаталогеДляУдаления, + ИмяРабочегоКаталога, ОбъектСсылка); + + РаботаСФайламиКлиент.ИнформироватьОШифровании(МассивФайловВРабочемКаталогеДляУдаления, + ДанныеФайла.Владелец, ОбъектСсылка); + + ОбновитьДоступностьКомандСпискаФайлов(); +КонецПроцедуры + +&НаСервере +Процедура ЗашифроватьСервер(МассивДанныхДляЗанесенияВБазу, МассивОтпечатков, + МассивФайловВРабочемКаталогеДляУдаления, + ИмяРабочегоКаталога, ОбъектСсылка) + + Зашифровать = Истина; + РаботаСФайламиВызовСервера.ЗанестиИнформациюОШифровании(ОбъектСсылка, Зашифровать, МассивДанныхДляЗанесенияВБазу, + УникальныйИдентификатор, + ИмяРабочегоКаталога, МассивФайловВРабочемКаталогеДляУдаления, МассивОтпечатков); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомманды(Команда, Доступность) + Команда.Доступность = Доступность; +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомманд(ТекущиеДанные) + + Если ТекущиеДанные = Неопределено Тогда + + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОткрытьФайл, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюРедактировать, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюЗакончитьРедактирование, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюЗанять, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьИзменения, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьКак, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОсвободить, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюПодписатьФайл, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьВместеСЭЦП, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюЗашифровать, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюРасшифровать, Ложь); + + Иначе + + РедактируетТекущийПользователь = ТекущиеДанные.РедактируетТекущийПользователь; + Редактирует = ТекущиеДанные.Редактирует; + ПодписанЭЦП = ТекущиеДанные.ПодписанЭЦП; + Зашифрован = ТекущиеДанные.Зашифрован; + + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОткрытьФайл, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюРедактировать, НЕ ТекущиеДанные.ПодписанЭЦП); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюЗакончитьРедактирование, РедактируетТекущийПользователь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюЗанять, Редактирует.Пустая()); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьИзменения, РедактируетТекущийПользователь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьКак, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОсвободить, Не Редактирует.Пустая()); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюПодписатьФайл, Редактирует.Пустая() И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла, Редактирует.Пустая() И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьВместеСЭЦП, ПодписанЭЦП); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюЗашифровать, Редактирует.Пустая() И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюРасшифровать, Зашифрован); + + КонецЕсли; + +КонецПроцедуры + + +&НаКлиенте +Процедура ИмпортФайлов(Команда) + + ОбщегоНазначенияКлиент.ПредложитьУстановкуРасширенияРаботыСФайлами(); + РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); + + Если НЕ РасширениеПодключено Тогда + Предупреждение(НСтр("ru = 'Для импорта файлов необходимо установить расширение работы с файлами.'")); + Иначе + + Если Объект.Ссылка.Пустая() Тогда + Если Не Записать() Тогда + Возврат; + КонецЕсли; + + ПоказатьОповещениеПользователя( + "Создание:", + ПолучитьНавигационнуюСсылку(Объект.Ссылка), + Строка(Объект.Ссылка), + БиблиотекаКартинок.Информация32); + КонецЕсли; + + ВыполнитьИмпортФайлов(Объект.БизнесПроцесс); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +// Выполнить импорт файлов +Процедура ВыполнитьИмпортФайлов(ВладелецИмпортированныхФайлов) + + // заранее выбираем файлы (до открытия диалога импорта) + Режим = РежимДиалогаВыбораФайла.Открытие; + + ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); + ДиалогОткрытияФайла.ПолноеИмяФайла = ""; + Фильтр = НСтр("ru = 'Все файлы(*.*)|*.*'"); + ДиалогОткрытияФайла.Фильтр = Фильтр; + ДиалогОткрытияФайла.МножественныйВыбор = Истина; + ДиалогОткрытияФайла.Заголовок = НСтр("ru = 'Выберите файлы'"); + Если ДиалогОткрытияФайла.Выбрать() Тогда + МассивИменФайлов = Новый Массив; + + МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы; + Для Каждого ИмяФайла Из МассивФайлов Цикл + МассивИменФайлов.Добавить(ИмяФайла); + КонецЦикла; + + ПараметрыИмпорта = Новый Структура("ПапкаДляДобавления, МассивИменФайлов", + ВладелецИмпортированныхФайлов, МассивИменФайлов); + ОткрытьФорму("Справочник.Файлы.Форма.ФормаИмпортаФайлов", ПараметрыИмпорта); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьИзФайлаНаДиске(Команда) + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаИРабочийКаталог(Элементы.Файлы.ТекущаяСтрока); + КомандыРаботыСФайламиКлиент.ОбновитьИзФайлаНаДиске(ДанныеФайла, ЭтаФорма.УникальныйИдентификатор); +КонецПроцедуры + +&НаКлиенте +Процедура Редактировать(Команда) + + Если Объект.Ссылка.Пустая() + И Элементы.ФайлыДобавленные.ТекущаяСтрока <> Неопределено Тогда + Если ЭтоАдресВременногоХранилища(Элементы.ФайлыДобавленные.ТекущиеДанные.ПолныйПуть) Тогда + ТекущийФайлВСпискеДобавленных = ПолучитьИзВременногоХранилища(Элементы.ФайлыДобавленные.ТекущиеДанные.ПолныйПуть).Ссылка; + Записать(); + Иначе + ЗапуститьПриложение(Элементы.ФайлыДобавленные.ТекущиеДанные.ПолныйПуть); + КонецЕсли; + Иначе + + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + КомандыРаботыСФайламиКлиент.Редактировать(Элементы.Файлы.ТекущаяСтрока); + + ОбновитьДоступностьКомандСпискаФайлов(); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗакончитьРедактирование(Команда) + + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + КомандыРаботыСФайламиКлиент.ЗакончитьРедактирование( + Элементы.Файлы.ТекущаяСтрока, + ЭтаФорма.УникальныйИдентификатор, + Элементы.Файлы.ТекущиеДанные.ХранитьВерсии, + Элементы.Файлы.ТекущиеДанные.РедактируетТекущийПользователь, + Элементы.Файлы.ТекущиеДанные.Редактирует); + + ОбновитьДоступностьКомандСпискаФайлов(); + +КонецПроцедуры + +&НаКлиенте +Процедура Занять(Команда) + + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + КомандыРаботыСФайламиКлиент.Занять(Элементы.Файлы.ТекущаяСтрока); + + ОбновитьДоступностьКомандСпискаФайлов(); + +КонецПроцедуры + +&НаКлиенте +Процедура Освободить(Команда) + + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + КомандыРаботыСФайламиКлиент.ОсвободитьФайл( + Элементы.Файлы.ТекущаяСтрока, + Элементы.Файлы.ТекущиеДанные.ХранитьВерсии, + Элементы.Файлы.ТекущиеДанные.РедактируетТекущийПользователь, + Элементы.Файлы.ТекущиеДанные.Редактирует); + + ОбновитьДоступностьКомандСпискаФайлов(); + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьИзменения(Команда) + + Если Элементы.Файлы.ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + КомандыРаботыСФайламиКлиент.ОпубликоватьФайл( + Элементы.Файлы.ТекущаяСтрока, + ЭтаФорма.УникальныйИдентификатор); + +КонецПроцедуры + +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + + ЗначениеПараметра = Файлы.Параметры.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВладелецФайла")); + Если Не ЗначениеЗаполнено(ЗначениеПараметра.Значение) Тогда + Файлы.Параметры.УстановитьЗначениеПараметра("ВладелецФайла", Объект.Ссылка); + КонецЕсли; + +КонецПроцедуры diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/ConditionalAppearance.dcssca b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/ConditionalAppearance.dcssca new file mode 100644 index 000000000..60eded11b --- /dev/null +++ b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/ConditionalAppearance.dcssca @@ -0,0 +1,23 @@ + + + + + + Проверяющий + + + + + Объект.НаПроверке + Equal + true + + + + + ОтметкаНезаполненного + true + + + + diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form index 7a33664a4..ae2a4d09a 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form +++ b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form @@ -270,6 +270,10 @@ Объект.Исполнитель + + OnChange + ИсполнительПриИзменении + ИсполнительРасширеннаяПодсказка 116 @@ -291,6 +295,22 @@ Left true + + AutoComplete + ИсполнительАвтоПодбор + + + StartChoice + ИсполнительНачалоВыбора + + + TextEditEnd + ИсполнительОкончаниеВводаТекста + + + ChoiceProcessing + ИсполнительОбработкаВыбора + 25 true true diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl index be4056b91..cf3683e18 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl +++ b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl @@ -141,3 +141,90 @@ КонецПроцедуры +&НаСервере +Процедура УстановитьДоступностьПроверяющего() + + Если БизнесПроцессыИЗадачиПереопределяемый.ИспользоватьВнешниеЗадачиИБизнесПроцессы() Тогда + Если ТипЗнч(Объект.Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") И ЗначениеЗаполнено(Объект.Исполнитель) Тогда + Если Объект.Исполнитель.ВнешняяРоль Тогда + Объект.Проверяющий = Справочники.Пользователи.ПустаяСсылка(); + Объект.НаПроверке = Ложь; + Элементы.ГруппаПроверка.Доступность = Ложь; + Иначе + Элементы.ГруппаПроверка.Доступность = Истина; + КонецЕсли; + Иначе + Элементы.ГруппаПроверка.Доступность = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительПриИзменении(Элемент) + + ОсновнойОбъектАдресации = Неопределено; + ДополнительныйОбъектАдресации = Неопределено; + + Если ТипЗнч(Объект.Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") И ЗначениеЗаполнено(Объект.Исполнитель) Тогда + + Если ОбщегоНазначения.ПолучитьЗначениеРеквизита(Объект.Исполнитель, "ИспользуетсяСОбъектамиАдресации") Тогда + Результат = ОткрытьФормуМодально("ОбщаяФорма.ВыборРолиИсполнителя", + Новый Структура("РольИсполнителя, ОсновнойОбъектАдресации, ДополнительныйОбъектАдресации", + Объект.Исполнитель, + ОсновнойОбъектАдресации, + ДополнительныйОбъектАдресации), + ЭтаФорма); + + Если ТипЗнч(Результат) = Тип("Структура") Тогда + Объект.Исполнитель = Результат.РольИсполнителя; + КонецЕсли; + КонецЕсли; + + КонецЕсли; + + УстановитьДоступностьПроверяющего(); + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + БизнесПроцессыИЗадачиКлиент.ВыбратьИсполнителя( + Элемент, Объект.Исполнитель, Истина, Ложь); + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда + СтандартнаяОбработка = Ложь; + + Объект.Исполнитель = ВыбранноеЗначение.РольИсполнителя; + + Модифицированность = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + СтандартнаяОбработка = Ложь; + ДанныеВыбора = БизнесПроцессыИЗадачиСервер.СформироватьДанныеВыбораИсполнителя(Текст); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + СтандартнаяОбработка = Ложь; + ДанныеВыбора = БизнесПроцессыИЗадачиСервер.СформироватьДанныеВыбораИсполнителя(Текст); + КонецЕсли; + +КонецПроцедуры diff --git a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl index 04c5659a5..049fb20a9 100644 --- a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl +++ b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl @@ -17,7 +17,12 @@ Результат = Новый Структура; Результат.Вставить("ПараметрыФормы", Новый Структура("Ключ", ЗадачаСсылка)); - Результат.Вставить("ИмяФормы", "БизнесПроцесс.Задание.Форма.Действие" + ТочкаМаршрутаБизнесПроцесса.Имя); + Если ВнешниеЗадачиВызовСервера.ЭтоВнешняяЗадача(ЗадачаСсылка) Тогда + Результат.Вставить("ИмяФормы", "БизнесПроцесс.Задание.Форма.ВнешнееДействие" + ТочкаМаршрутаБизнесПроцесса.Имя); + Иначе + Результат.Вставить("ИмяФормы", "БизнесПроцесс.Задание.Форма.Действие" + ТочкаМаршрутаБизнесПроцесса.Имя); + КонецЕсли; + Возврат Результат; КонецФункции @@ -70,7 +75,10 @@ Процедура УстановитьСостояниеЭлементовФормыЗадачи(Форма) Экспорт - Форма.Элементы.РезультатВыполнения.Видимость = НЕ ПустаяСтрока(Форма.ЗаданиеРезультатВыполнения); + Если Форма.Элементы.Найти("РезультатВыполнения") <> Неопределено Тогда + Форма.Элементы.РезультатВыполнения.Видимость = НЕ ПустаяСтрока(Форма.ЗаданиеРезультатВыполнения); + КонецЕсли; + Форма.Элементы.Предмет.Гиперссылка = Форма.Объект.Предмет <> Неопределено И НЕ Форма.Объект.Предмет.Пустая(); Форма.ПредметСтрокой = БизнесПроцессыИЗадачиСервер.ПредметСтрокой(Форма.Объект.Предмет); diff --git a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl index b1c592c41..9c8ad2098 100644 --- a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl +++ b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl @@ -86,6 +86,28 @@ Возврат; КонецЕсли; + Если Автор <> Неопределено И Не Автор.Пустая() Тогда + АвторСтрокой = Строка(Автор); + КонецЕсли; + + Если БизнесПроцессыИЗадачиПереопределяемый.ИспользоватьВнешниеЗадачиИБизнесПроцессы() Тогда + Если ТипЗнч(Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") И Не Исполнитель.Пустая() И Исполнитель.ВнешняяРоль = Истина Тогда + + Если НаПроверке = Истина Тогда + // Проверяющий должен быть внешней ролью + Если ТипЗнч(Проверяющий) = Тип("СправочникСсылка.РолиИсполнителей") И Не Проверяющий.Пустая() И Проверяющий.ВнешняяРоль = Ложь Тогда + Отказ = Истина; + КонецЕсли; + + // Проверяющий не должен быть пользователем + Если ТипЗнч(Проверяющий) = Тип("СправочникСсылка.Пользователи") И Не Проверяющий.Пустая() Тогда + Отказ = Истина; + КонецЕсли; + КонецЕсли; + + КонецЕсли; + КонецЕсли; + Если Не ЗначениеЗаполнено(Состояние) Тогда Состояние = Перечисления.СостоянияБизнесПроцессов.Активен; КонецЕсли; @@ -134,9 +156,11 @@ КонецПроцедуры Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) - Если НаПроверке Тогда - ПроверяемыеРеквизиты.Добавить("Проверяющий"); + МассивНепроверяемыхРеквизитов = Новый Массив(); + Если Не НаПроверке Тогда + МассивНепроверяемыхРеквизитов.Добавить("Проверяющий"); КонецЕсли; + ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов); КонецПроцедуры Процедура ПриКопировании(ОбъектКопирования) @@ -161,6 +185,12 @@ Для каждого Задача Из ФормируемыеЗадачи Цикл Задача.Автор = Автор; + Задача.АвторСтрокой = Строка(Автор); + Если ТипЗнч(Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") Тогда + Задача.РольИсполнителя = Исполнитель; + Иначе + Задача.Исполнитель = Исполнитель; + КонецЕсли; Задача.Исполнитель = Исполнитель; Задача.Наименование = НаименованиеЗадачиДляВыполнения(); Задача.СрокИсполнения = СрокИсполненияЗадачиДляВыполнения(); @@ -189,6 +219,12 @@ Для каждого Задача Из ФормируемыеЗадачи Цикл Задача.Автор = Автор; + Если ТипЗнч(Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") Тогда + Задача.РольИсполнителя = Проверяющий; + Иначе + Задача.Исполнитель = Проверяющий; + КонецЕсли; + Задача.Исполнитель = Проверяющий; Задача.Наименование = НаименованиеЗадачиДляПроверки(); Задача.СрокИсполнения = СрокИсполненияЗадачиДляПроверки(); @@ -225,6 +261,18 @@ КонецПроцедуры +Процедура СтартПередСтартом(ТочкаМаршрутаБизнесПроцесса, Отказ) + + Если БизнесПроцессыИЗадачиПереопределяемый.ИспользоватьВнешниеЗадачиИБизнесПроцессы() Тогда + Если ТипЗнч(Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") И Не Исполнитель.Пустая() И Исполнитель.ВнешняяРоль = Истина Тогда + + ВнешнееЗадание = Истина; + + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Вспомогательные процедуры @@ -397,3 +445,31 @@ КонецПопытки; КонецПроцедуры + +Процедура ВыполнитьПередСозданиемЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка) + + Если Предмет = Неопределено Или Предмет.Пустая() Тогда + Возврат; + КонецЕсли; + + Если БизнесПроцессыИЗадачиПереопределяемый.ИспользоватьВнешниеЗадачиИБизнесПроцессы() Тогда + + Если ТипЗнч(Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") И Исполнитель.ВнешняяРоль = Истина Тогда + + СтрокаHTML = ВнешниеЗадачиВызовСервера.ПолучитьСодержание(Предмет); + СодержаниеПредмета = Новый ХранилищеЗначения(СтрокаHTML, Новый СжатиеДанных()); + + // Заполняем список файлов + МассивФайлов = ВнешниеЗадачиВызовСервера.ПолучитьСписокФайлов(Предмет); + Если МассивФайлов <> Неопределено Тогда + Для каждого Эл Из МассивФайлов Цикл + НовыйФайл = РаботаСФайламиВызовСервера.СкопироватьФайл(Эл, Ссылка); + КонецЦикла; + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + diff --git a/SSL/src/BusinessProcesses/Задание/Задание.mdo b/SSL/src/BusinessProcesses/Задание/Задание.mdo index 850b3e769..a0099bd1c 100644 --- a/SSL/src/BusinessProcesses/Задание/Задание.mdo +++ b/SSL/src/BusinessProcesses/Задание/Задание.mdo @@ -137,6 +137,24 @@ Use Use + + АвторСтрокой + + ru + Автор строкой + + + String + + 150 + + + + + + Use + Use + Важность @@ -163,6 +181,21 @@ Use Use + + ВнешнееЗадание + + ru + Внешнее задание + + + Boolean + + + + + Use + Use + Выполнено @@ -226,6 +259,21 @@ Use Use + + ЗадачаИсточник + + ru + Задача источник + + + TaskRef.ЗадачаИсполнителя + + + + + Use + Use + Исполнитель @@ -233,6 +281,7 @@ Исполнитель + CatalogRef.РолиИсполнителей CatalogRef.Пользователи @@ -242,8 +291,6 @@ ShowError - DontUse - Use Catalog.Пользователи.EmptyRef @@ -322,28 +369,6 @@ Use Use - - Содержание - - ru - Содержание - - - String - - - - ru - Содержание задания - - true - true - - - - Use - Use - Подтверждено @@ -392,6 +417,7 @@ Проверяющий + CatalogRef.РолиИсполнителей CatalogRef.Пользователи @@ -400,8 +426,7 @@ - DontUse - Use + ShowError Catalog.Пользователи.EmptyRef @@ -432,6 +457,47 @@ Use Use + + Содержание + + ru + Содержание + + + String + + + + ru + Содержание задания + + true + true + + + + Use + Use + + + СодержаниеПредмета + + ru + Содержание предмета + + + ValueStorage + + + ru + Содержание предмета в формате HTML или MXL + + + + + Use + Use + Состояние @@ -500,11 +566,11 @@ Use Use - - ФормаБизнесПроцесса + + ВнешнееДействиеВыполнить ru - Форма бизнес-процесса + Внешнее действие выполнить PersonalComputer MobileDevice @@ -527,6 +593,15 @@ PersonalComputer MobileDevice + + ФормаБизнесПроцесса + + ru + Форма бизнес-процесса + + PersonalComputer + MobileDevice + ФормаСписка diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl index 3157c0d2d..1fd01f707 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl @@ -2,8 +2,6 @@ // СЕКЦИЯ ОБРАБОТЧИКОВ СОБЫТИЙ // -// Обработчик события "при создании на сервере" формы -// &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) @@ -35,8 +33,6 @@ КонецПроцедуры -// Обработчик события "ПриОткрытии" формы -// &НаКлиенте Процедура ПриОткрытии(Отказ) @@ -46,8 +42,6 @@ КонецПроцедуры -// Обработчик события "ПриИзменении" элемента формы ЗагружаетсяИзИнтернета -// &НаКлиенте Процедура ЗагружаетсяИзИнтернетаПриИзменении(Элемент) @@ -61,8 +55,6 @@ КонецПроцедуры -// Обработчик события "ПриИзменении" элемента формы ЗависимыйКурсВалют -// &НаКлиенте Процедура ЗависимыйКурсВалютПриИзменении(Элемент) @@ -70,8 +62,6 @@ КонецПроцедуры -// Обработчик события "НачалоВыбора" элемента формы ОсновнаяВалюта -// &НаКлиенте Процедура ОсновнаяВалютаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) @@ -108,8 +98,6 @@ КонецПроцедуры -// Обработчик события ПередЗаписьюНаСервере -// &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) @@ -127,16 +115,12 @@ КонецПроцедуры -// Обработчик события "ПриИзменении" элемента формы ПолеПрописи4наРусском -// &НаКлиенте Процедура ПолеПрописи4наРусскомПриИзменении(Элемент) УстановитьСклоненияПараметровПрописи(); УстановитьСуммуПрописью(); КонецПроцедуры -// Обработчик события "ПриИзменении" элемента формы ПолеПрописи8наРусском -// &НаКлиенте Процедура ПолеПрописи8наРусскомПриИзменении(Элемент) УстановитьСклоненияПараметровПрописи(); @@ -226,8 +210,6 @@ //////////////////////////////////////////////////////////////////////////////// // СЕКЦИЯ СЛУЖЕБНЫХ ФУНКЦИЙ И ПРОЦЕДУР // -// Обработчик события ПередЗаписьюНаСервере -// &НаКлиентеНаСервереБезКонтекста Функция ПараметрыПрописиНаРусском(Форма) @@ -251,7 +233,7 @@ КонецПроцедуры -// Процедура считывает параметры прописи и заполняет соответствующие поля диалога. +// Считывает параметры прописи и заполняет соответствующие поля диалога. // &НаСервере Процедура ПрочитатьПараметрыПрописи() @@ -290,7 +272,7 @@ КонецПроцедуры -// Процедура устанавливает видимость элементов управления формы, ответственных +// Устанавливает видимость элементов управления формы, ответственных // за установление параметров завимисомти от базовой валюты (ссылка на базовую // валюту и коэфициент). // @@ -316,7 +298,7 @@ КонецПроцедуры -// Процедура устанавливает склонение заголовков элементов формы +// Устанавливает склонение заголовков элементов формы // хранящих за параметры прописи. // &НаКлиенте diff --git a/SSL/src/Catalogs/Валюты/ObjectModule.bsl b/SSL/src/Catalogs/Валюты/ObjectModule.bsl index fc80ec699..7749f9e18 100644 --- a/SSL/src/Catalogs/Валюты/ObjectModule.bsl +++ b/SSL/src/Catalogs/Валюты/ObjectModule.bsl @@ -1,10 +1,23 @@ +//////////////////////////////////////////////////////////////////////////////// +// Обработчики событий объекта Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Если ЗагружаетсяИзИнтернета И ЗначениеЗаполнено(ОсновнаяВалюта) Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю( - НСтр("ru = 'Валюта не может быть зависимой и при этом загружаться с сайта РБК'")); - Возврат; + НСтр("ru = 'Зависимая валюта не может быть загружена с сайта РБК'")); + Отказ = Истина; + КонецЕсли; + + Если ЗначениеЗаполнено(ОсновнаяВалюта.ОсновнаяВалюта) Тогда + ОбщегоНазначенияКлиентСервер.СообщитьПользователю( + НСтр("ru = 'Основная валюта не может быть зависимой.'"),,,,Отказ); + КонецЕсли; + + Если РаботаСКурсамиВалют.ПолучитьСписокЗависимыхВалют(Ссылка).Количество() > 0 + И ЗначениеЗаполнено(ОсновнаяВалюта) Тогда + ОбщегоНазначенияКлиентСервер.СообщитьПользователю( + НСтр("ru = 'Валюта не может быть подчиненной, так как она является основной для других валют.'"),,,,Отказ); КонецЕсли; КонецПроцедуры @@ -15,19 +28,6 @@ Возврат; КонецЕсли; - Если ЗначениеЗаполнено(ОсновнаяВалюта.ОсновнаяВалюта) Тогда - ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Ошибка при записи: основная валюта не может быть зависимой'"),,,,Отказ); - КонецЕсли; - - Если РаботаСКурсамиВалют.ПолучитьСписокЗависимыхВалют(Ссылка).Количество() > 0 - И ЗначениеЗаполнено(ОсновнаяВалюта) Тогда - ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Ошибка при записи: валюта не может быть подчиненной, так как она является основной для других валют'"),,,,Отказ); - КонецЕсли; - - Если Отказ Тогда - Возврат; - КонецЕсли; - РаботаСКурсамиВалют.ПроверитьКорректностьКурсаНа01_01_1980(Ссылка); Если ЗначениеЗаполнено(ОсновнаяВалюта) Тогда diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form index f2faae358..66125d8ad 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form @@ -1160,9 +1160,6 @@ true - - ПоказатьТолькоВыбранныеРоли - ГруппаНовогоВнешнегоПользователя diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl index 314b5b095..756331d03 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl @@ -9,13 +9,16 @@ //** Установка начальных значений // перед загрузкой данных из настроек на сервере // для случая, когда данные ещё не были записаны и не загружаются - ПоказатьТолькоВыбранныеРоли = Истина; - ПоказатьПодсистемыРолей = Истина; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Истина; - Элементы.РолиПоказатьПодсистемыРолей.Пометка = Истина; + ПоказатьПодсистемыРолей = Истина; + Элементы.РолиПоказатьПодсистемыРолей.Пометка = Истина; + // Для нового элемента показать все роли, иначе только выбранные + ПоказатьТолькоВыбранныеРоли = ЗначениеЗаполнено(Объект.Ссылка); + Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = ЗначениеЗаполнено(Объект.Ссылка); + // СкрытьРольПолныеПрава = Истина; ОбновитьДеревоРолей(); + //** Заполнение постоянных данных ЗапретРедактированияРолей = ПользователиПереопределяемый.ЗапретРедактированияРолей(); АвторизованПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользовательИБ(); @@ -250,14 +253,6 @@ &НаСервере Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) - Если Настройки["ПоказатьТолькоВыбранныеРоли"] = Ложь Тогда - ПоказатьТолькоВыбранныеРоли = Ложь; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Ложь; - Иначе - ПоказатьТолькоВыбранныеРоли = Истина; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Истина; - КонецЕсли; - Если Настройки["ПоказатьПодсистемыРолей"] = Ложь Тогда ПоказатьПодсистемыРолей = Ложь; Элементы.РолиПоказатьПодсистемыРолей.Пометка = Ложь; diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Form.form index be9fa6fe8..4fc10c113 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Form.form @@ -1340,9 +1340,6 @@ true - - ПоказатьТолькоВыбранныеРоли - ДействияВФорме diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl index a4755cdfd..48d503f40 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl @@ -9,10 +9,8 @@ //** Установка начальных значений // перед загрузкой данных из настроек на сервере // для случая, когда данные ещё не были записаны и не загружаются - ПоказатьТолькоВыбранныеРоли = Истина; - ПоказатьПодсистемыРолей = Истина; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Истина; - Элементы.РолиПоказатьПодсистемыРолей.Пометка = Истина; + ПоказатьПодсистемыРолей = Истина; + Элементы.РолиПоказатьПодсистемыРолей.Пометка = Истина; // Для нового объекта выполняем код инициализации формы в ПриСозданииНаСервере. // Для существующего - в ПриЧтенииНаСервере. Если Объект.Ссылка.Пустая() Тогда @@ -20,7 +18,6 @@ КонецЕсли; //** Подготовка постоянных данных - ЗаполнитьСписокТиповОбъектовАвторизации(); // Удаление роли ПолныеПрава из списка выбора и таблицы ролей @@ -138,14 +135,6 @@ &НаСервере Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) - Если Настройки["ПоказатьТолькоВыбранныеРоли"] = Ложь Тогда - ПоказатьТолькоВыбранныеРоли = Ложь; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Ложь; - Иначе - ПоказатьТолькоВыбранныеРоли = Истина; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Истина; - КонецЕсли; - Если Настройки["ПоказатьПодсистемыРолей"] = Ложь Тогда ПоказатьПодсистемыРолей = Ложь; Элементы.РолиПоказатьПодсистемыРолей.Пометка = Ложь; @@ -314,10 +303,14 @@ &НаСервере Процедура ИнициализацияФормы() + // Для нового элемента показать все роли, иначе только выбранные + ПоказатьТолькоВыбранныеРоли = ЗначениеЗаполнено(Объект.Ссылка); + Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = ЗначениеЗаполнено(Объект.Ссылка); + // СкрытьРольПолныеПрава = Истина; ОбновитьДеревоРолей(); -КонецПроцедуры +КонецПроцедуры &НаСервере Процедура ОпределитьДействияВФорме() diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ObjectModule.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ObjectModule.bsl index fae8b0281..cc39a46e9 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ObjectModule.bsl +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ObjectModule.bsl @@ -139,8 +139,6 @@ КонецПроцедуры -// Обработчик ПриЗаписи вызывает обновление состава групп внешних пользователей. -// Процедура ПриЗаписи(Отказ) Если ОбменДанными.Загрузка Тогда @@ -200,8 +198,6 @@ КонецПроцедуры -// Обработчик ОбработкаПроверкиЗаполнения блокирует интерактивный выбор группы "Все внешние пользователи" в качестве родителя. -// Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Если Родитель = Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи Тогда diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ПраваДоступа/Form.form b/SSL/src/Catalogs/ГруппыДоступа/Forms/ПраваДоступа/Form.form index 9be9c821f..6a8370550 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ПраваДоступа/Form.form +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ПраваДоступа/Form.form @@ -1461,9 +1461,6 @@ true - - ПоказатьТолькоВыбранныеРоли - Роли diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ПраваДоступа/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ПраваДоступа/Module.bsl index b35406808..0b4eae48b 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ПраваДоступа/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ПраваДоступа/Module.bsl @@ -48,10 +48,12 @@ //** Установка начальных значений // перед загрузкой данных из настроек на сервере // для случая, когда данные ещё не были записаны и не загружаются - ПоказатьТолькоВыбранныеРоли = Истина; - ПоказатьПодсистемыРолей = Истина; + ПоказатьПодсистемыРолей = Истина; + Элементы.РолиПоказатьПодсистемыРолей.Пометка = Истина; + // Выбор ролей не предполагается, поэтому только выбранные роли + ПоказатьТолькоВыбранныеРоли = Истина; Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Истина; - Элементы.РолиПоказатьПодсистемыРолей.Пометка = Истина; + // ОбновитьДеревоРолей(); УстановитьТолькоПросмотрРолей(Истина, Истина); @@ -73,14 +75,6 @@ &НаСервере Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) - Если Настройки["ПоказатьТолькоВыбранныеРоли"] = Ложь Тогда - ПоказатьТолькоВыбранныеРоли = Ложь; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Ложь; - Иначе - ПоказатьТолькоВыбранныеРоли = Истина; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Истина; - КонецЕсли; - Если Настройки["ПоказатьПодсистемыРолей"] = Ложь Тогда ПоказатьПодсистемыРолей = Ложь; Элементы.РолиПоказатьПодсистемыРолей.Пометка = Ложь; diff --git a/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl b/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl index a9a341720..73fdeadde 100644 --- a/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl +++ b/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl @@ -30,8 +30,6 @@ КонецПроцедуры -// Обработчик ПриЗаписи вызывает обновление состава групп пользователей. -// Процедура ПриЗаписи(Отказ) Если ОбменДанными.Загрузка Тогда @@ -46,12 +44,11 @@ КонецПроцедуры -// Обработчик ОбработкаПроверкиЗаполнения блокирует интерактивный выбор группы "Все пользователи" в качестве родителя. -// Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Если Родитель = Справочники.ГруппыПользователей.ВсеПользователи Тогда - ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Предопределенная группа ""Все пользователи"" не может быть родителем!'"), , "Объект.Родитель", , Отказ); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю( + НСтр("ru = 'Предопределенная группа ""Все пользователи"" не может быть родителем!'"),, "Объект.Родитель",, Отказ); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl index bff5d2818..feedf69ed 100644 --- a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ -// Функция читает данные календарного графика за указанный год +// Читает данные календарного графика за указанный год // &НаСервереБезКонтекста Функция ПрочитатьКалендарныйГрафик(Календарь, НомерГода) @@ -10,7 +10,7 @@ КонецФункции -// Процедура записывает данные календарного графика за указанный год +// Записывает данные календарного графика за указанный год // &НаСервере Процедура ЗаписатьКалендарныйГрафик(Знач НомерГода, Знач ТекущийОбъект = Неопределено) @@ -26,8 +26,6 @@ //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ -// Процедура - обработчик события "ПриСозданииНаСервере" формы -// &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) @@ -47,8 +45,6 @@ КонецПроцедуры -// Процедура - обработчик события "ПриЗаписиНаСервере" формы -// &НаСервере Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Перем НомерГода; @@ -77,8 +73,6 @@ //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ДЕЙСТВИЯ КОМАНДНЫХ ПАНЕЛЕЙ ФОРМЫ -// Процедура - обработчик действия команды "ЗаполнитьКалендарь" -// &НаКлиенте Процедура ЗаполнитьКалендарь() @@ -100,8 +94,6 @@ КонецПроцедуры -// Процедура - обработчик действия команды "ЗаполнитьПоКалендарю" -// &НаКлиенте Процедура ЗаполнитьПоКалендарю(Команда) @@ -112,8 +104,6 @@ //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ -// Процедура - обработчик события "ПриИзменении" элемента формы "НомерТекущегоГода" -// &НаКлиенте Процедура НомерТекущегоГодаПриИзменении(Элемент) @@ -147,8 +137,6 @@ КонецПроцедуры -// Процедура - обработчик события "ПриВыводеПериода" элемента формы "Календарь" -// &НаКлиенте Процедура КалендарьПриВыводеПериода(Элемент, ОформлениеПериода) @@ -164,8 +152,6 @@ КонецПроцедуры -// Процедура - обработчик события "Выбор" элемента формы "Календарь" -// &НаКлиенте Процедура КалендарьВыбор(Элемент, ВыбраннаяДата) @@ -188,6 +174,3 @@ Элемент.Обновить(); КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборОбъектаМетаданных/Form.form b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборОбъектаМетаданных/Form.form new file mode 100644 index 000000000..0a138adbe --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборОбъектаМетаданных/Form.form @@ -0,0 +1,414 @@ + + + + ДеревоМетаданных + 1 + true + true + + true + + + ДеревоМетаданных + + None + + Группа + 11 + + Картинка + 9 + true + true + + true + + + ДеревоМетаданных.Картинка + + + КартинкаРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + КартинкаКонтекстноеМеню + 10 + true + + PictureField + Auto + true + Left + true + + true + true + true + true + + + 1 + + + + + Синоним + 6 + true + true + + true + + + ДеревоМетаданных.Синоним + + + СинонимРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + + СинонимКонтекстноеМеню + 7 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа</value> + + + ru + Группа + + + ГруппаРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + None + + ДеревоМетаданныхКоманднаяПанель + 3 + Left + true + + + ValueChoice + ДеревоМетаданныхВыборЗначения + + + ДеревоМетаданныхСтрокаПоиска + 14 + + ДеревоМетаданныхСтрокаПоискаРасширеннаяПодсказка + 16 + Label + true + true + + Left + + + + ДеревоМетаданныхСтрокаПоискаКонтекстноеМеню + 15 + true + + ДеревоМетаданных + + true + + + + ДеревоМетаданныхСостояниеПросмотра + 17 + + ДеревоМетаданныхСостояниеПросмотраРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + + ДеревоМетаданныхСостояниеПросмотраКонтекстноеМеню + 18 + true + + ViewStatusAddition + ДеревоМетаданных + + true + + + + ДеревоМетаданныхУправлениеПоиском + 20 + + ДеревоМетаданныхУправлениеПоискомРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + + ДеревоМетаданныхУправлениеПоискомКонтекстноеМеню + 21 + true + + SearchControlAddition + ДеревоМетаданных + + true + + + + ДеревоМетаданныхРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + + ДеревоМетаданныхКонтекстноеМеню + 2 + true + + Tree + true + true + true + true + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + false + false + false + true + Auto + Auto + true + true + true + true + None + None + None + true + + + ФормаКоманднаяПанель + -1 + + ФормаВыбрать + 8 + true + true + + true + + + ФормаВыбратьРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + Form.Command.Выбрать + PictureAndText + true + true + true + UserCmds + + StdPicture.ChooseValue + + Auto + + Left + true + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + 15 + DontBlock + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ДеревоМетаданных + + <key>ru</key> + <value>Дерево метаданных</value> + + 1 + + ValueTree + + + true + + + true + + + Имя + + <key>ru</key> + <value>Имя</value> + + 1 + + String + + + + true + + + true + + + + Синоним + + <key>ru</key> + <value>Синоним</value> + + 2 + + String + + + + true + + + true + + + + Картинка + + <key>ru</key> + <value>Картинка</value> + + 3 + + Picture + + + true + + + true + + + + + Выбрать + + <key>ru</key> + <value>Выбрать</value> + + 1 + + ru + Выбрать + + + true + + + + Выбрать + + + Auto + Auto + + + ТекущаяСтрока + + String + + + + + + + + diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборОбъектаМетаданных/Module.bsl b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборОбъектаМетаданных/Module.bsl new file mode 100644 index 000000000..4e274c300 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборОбъектаМетаданных/Module.bsl @@ -0,0 +1,121 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Дерево = РеквизитФормыВЗначение("ДеревоМетаданных"); + + Если Метаданные.Справочники.Количество() > 0 Тогда + СтрокаГруппа = Дерево.Строки.Добавить(); + СтрокаГруппа.Имя = ""; + СтрокаГруппа.Синоним = "Справочники"; + СтрокаГруппа.Картинка = БиблиотекаКартинок.Справочник; + Для Каждого Объект Из Метаданные.Справочники Цикл + НоваяСтрока = СтрокаГруппа.Строки.Добавить(); + НоваяСтрока.Имя = Объект.ПолноеИмя(); + НоваяСтрока.Синоним = ?(Объект.Синоним = "", Объект.Имя, Объект.Синоним); + НоваяСтрока.Картинка = СтрокаГруппа.Картинка; + КонецЦикла; + КонецЕсли; + + Если Метаданные.Документы.Количество() > 0 Тогда + СтрокаГруппа = Дерево.Строки.Добавить(); + СтрокаГруппа.Имя = ""; + СтрокаГруппа.Синоним = "Документы"; + СтрокаГруппа.Картинка = БиблиотекаКартинок.Документ; + Для Каждого Объект Из Метаданные.Документы Цикл + НоваяСтрока = СтрокаГруппа.Строки.Добавить(); + НоваяСтрока.Имя = Объект.ПолноеИмя(); + НоваяСтрока.Синоним = ?(Объект.Синоним = "", Объект.Имя, Объект.Синоним); + НоваяСтрока.Картинка = СтрокаГруппа.Картинка; + КонецЦикла; + КонецЕсли; + + Если Метаданные.БизнесПроцессы.Количество() > 0 Тогда + СтрокаГруппа = Дерево.Строки.Добавить(); + СтрокаГруппа.Имя = ""; + СтрокаГруппа.Синоним = "Бизнес-процессы"; + СтрокаГруппа.Картинка = БиблиотекаКартинок.БизнесПроцесс; + Для Каждого Объект Из Метаданные.БизнесПроцессы Цикл + НоваяСтрока = СтрокаГруппа.Строки.Добавить(); + НоваяСтрока.Имя = Объект.ПолноеИмя(); + НоваяСтрока.Синоним = ?(Объект.Синоним = "", Объект.Имя, Объект.Синоним); + НоваяСтрока.Картинка = СтрокаГруппа.Картинка; + КонецЦикла; + КонецЕсли; + + Если Метаданные.Задачи.Количество() > 0 Тогда + СтрокаГруппа = Дерево.Строки.Добавить(); + СтрокаГруппа.Имя = ""; + СтрокаГруппа.Синоним = "Задачи"; + СтрокаГруппа.Картинка = БиблиотекаКартинок.Задача; + Для Каждого Объект Из Метаданные.Задачи Цикл + НоваяСтрока = СтрокаГруппа.Строки.Добавить(); + НоваяСтрока.Имя = Объект.ПолноеИмя(); + НоваяСтрока.Синоним = ?(Объект.Синоним = "", Объект.Имя, Объект.Синоним); + НоваяСтрока.Картинка = СтрокаГруппа.Картинка; + КонецЦикла; + КонецЕсли; + + ЗначениеВРеквизитФормы(Дерево, "ДеревоМетаданных"); + + Если ЗначениеЗаполнено(Параметры.ТекущаяСтрока) Тогда + Для Каждого СтрокаГруппа Из ДеревоМетаданных.ПолучитьЭлементы() Цикл + Для Каждого Строка Из СтрокаГруппа.ПолучитьЭлементы() Цикл + Если Строка.Имя = Параметры.ТекущаяСтрока Тогда + Элементы.ДеревоМетаданных.ТекущаяСтрока = Строка.ПолучитьИдентификатор(); + Прервать; + КонецЕсли; + КонецЦикла; + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + Строки = ДеревоМетаданных.ПолучитьЭлементы(); + Для Каждого Строка Из Строки Цикл + Элементы.ДеревоМетаданных.Развернуть(Строка.ПолучитьИдентификатор(), Истина); + КонецЦикла; + +КонецПроцедуры + + +&НаКлиенте +Процедура Выбрать(Команда) + + ТекущиеДанные = Элементы.ДеревоМетаданных.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + Если ТекущиеДанные.Имя = "" Тогда + Возврат; + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("Имя", ТекущиеДанные.Имя); + Результат.Вставить("Синоним", ТекущиеДанные.Синоним); + + Закрыть(Результат); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоМетаданныхВыборЗначения(Элемент, Значение, СтандартнаяОбработка) + + ТекущиеДанные = Элементы.ДеревоМетаданных.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + Если ТекущиеДанные.Имя = "" Тогда + Возврат; + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("Имя", ТекущиеДанные.Имя); + Результат.Вставить("Синоним", ТекущиеДанные.Синоним); + + Закрыть(Результат); + +КонецПроцедуры diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборРеквизита/Form.form b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборРеквизита/Form.form new file mode 100644 index 000000000..5cf488e37 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборРеквизита/Form.form @@ -0,0 +1,392 @@ + + + + ДеревоРеквизитов + 1 + true + true + + true + + + ДеревоРеквизитов + + None + Change + + Представление + 4 + + <key>ru</key> + <value>Имя</value> + + true + true + + true + + + ДеревоРеквизитов.Представление + + + ПредставлениеРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + + ПредставлениеКонтекстноеМеню + 5 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + Тип + 7 + true + true + + true + + + ДеревоРеквизитов.Тип + + + ТипРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + + ТипКонтекстноеМеню + 8 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + None + + ДеревоРеквизитовКоманднаяПанель + 3 + Left + true + + + ValueChoice + ДеревоРеквизитовВыборЗначения + + + ДеревоРеквизитовСтрокаПоиска + 11 + + ДеревоРеквизитовСтрокаПоискаРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + + ДеревоРеквизитовСтрокаПоискаКонтекстноеМеню + 12 + true + + ДеревоРеквизитов + + true + + + + ДеревоРеквизитовСостояниеПросмотра + 14 + + ДеревоРеквизитовСостояниеПросмотраРасширеннаяПодсказка + 16 + Label + true + true + + Left + + + + ДеревоРеквизитовСостояниеПросмотраКонтекстноеМеню + 15 + true + + ViewStatusAddition + ДеревоРеквизитов + + true + + + + ДеревоРеквизитовУправлениеПоиском + 17 + + ДеревоРеквизитовУправлениеПоискомРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + + ДеревоРеквизитовУправлениеПоискомКонтекстноеМеню + 18 + true + + SearchControlAddition + ДеревоРеквизитов + + true + + + + ДеревоРеквизитовРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + + ДеревоРеквизитовКонтекстноеМеню + 2 + true + + Tree + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + false + false + true + Auto + Auto + true + true + true + true + None + None + None + true +
+ + ФормаКоманднаяПанель + -1 + + ФормаВыбрать + 6 + true + true + + true + + + ФормаВыбратьРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + Form.Command.Выбрать + Auto + true + true + true + UserCmds + Auto + + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + CustomizeForm + 50 + 14 + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ДеревоРеквизитов + + <key>ru</key> + <value>Дерево реквизитов</value> + + 1 + + ValueTree + + + true + + + true + + + Имя + + <key>ru</key> + <value>Имя</value> + + 1 + + String + + + + true + + + true + + + + Представление + + <key>ru</key> + <value>Представление</value> + + 2 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 3 + + String + + + + true + + + true + + + + + Выбрать + + <key>ru</key> + <value>Выбрать</value> + + 1 + + ru + Выбрать + + + true + + + StdPicture.ChooseValue + + + + Выбрать + + + TextPicture + Auto + Auto + + + ТипОбъекта + + String + + + + + ТекущаяСтрока + + String + + + + + + + +
diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборРеквизита/Module.bsl b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборРеквизита/Module.bsl new file mode 100644 index 000000000..f639163d4 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ВыборРеквизита/Module.bsl @@ -0,0 +1,95 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Дерево = РеквизитФормыВЗначение("ДеревоРеквизитов"); + + Объект = Метаданные.НайтиПоПолномуИмени(Параметры.ТипОбъекта); + Заголовок = "Выбор реквизита " + ?(Объект.Синоним = "", Объект.Имя, Объект.Синоним); + + + Для Каждого Реквизит Из Объект.СтандартныеРеквизиты Цикл + Если Реквизит.Имя = "Проведен" + Или Реквизит.Имя = "ПометкаУдаления" + Или Реквизит.Имя = "Ссылка" Тогда + Продолжить; + КонецЕсли; + + НоваяСтрока = Дерево.Строки.Добавить(); + НоваяСтрока.Имя = Реквизит.Имя; + НоваяСтрока.Представление = Реквизит.Имя; + НоваяСтрока.Тип = Реквизит.Тип; + КонецЦикла; + НоваяСтрока = Дерево.Строки.Добавить(); + НоваяСтрока.Имя = "Представление"; + НоваяСтрока.Представление = "Представление"; + НоваяСтрока.Тип = "Строка"; + + Для Каждого Реквизит Из Объект.Реквизиты Цикл + НоваяСтрока = Дерево.Строки.Добавить(); + НоваяСтрока.Имя = Реквизит.Имя; + НоваяСтрока.Представление = Реквизит.Имя; + НоваяСтрока.Тип = Реквизит.Тип; + + Типы = Реквизит.Тип.Типы(); + Если Типы.Количество() > 1 Тогда + Продолжить; + КонецЕсли; + + ОбъектРеквизит = Метаданные.НайтиПоТипу(Типы[0]); + Если ОбъектРеквизит = Неопределено Тогда + Продолжить; + КонецЕсли; + + Для Каждого ДочернийРеквизит Из ОбъектРеквизит.Реквизиты Цикл + ДочерняяСтрока = НоваяСтрока.Строки.Добавить(); + ДочерняяСтрока.Имя = Реквизит.Имя + "." + ДочернийРеквизит.Имя; + ДочерняяСтрока.Представление = ДочернийРеквизит.Имя; + ДочерняяСтрока.Тип = ДочернийРеквизит.Тип; + КонецЦикла; + КонецЦикла; + + ЗначениеВРеквизитФормы(Дерево, "ДеревоРеквизитов"); + +КонецПроцедуры + + +&НаКлиенте +Процедура ДеревоРеквизитовВыборЗначения(Элемент, Значение, СтандартнаяОбработка) + + ТекущиеДанные = Элементы.ДеревоРеквизитов.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + Если ТекущиеДанные.Имя = "" Тогда + Возврат; + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("Имя", ТекущиеДанные.Имя); + Результат.Вставить("Представление", ТекущиеДанные.Представление); + + Закрыть(Результат); + +КонецПроцедуры + + +&НаКлиенте +Процедура Выбрать(Команда) + + ТекущиеДанные = Элементы.ДеревоРеквизитов.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + Если ТекущиеДанные.Имя = "" Тогда + Возврат; + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("Имя", ТекущиеДанные.Имя); + Результат.Вставить("Представление", ТекущиеДанные.Представление); + + Закрыть(Результат); + +КонецПроцедуры + diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаПравила/Form.form b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаПравила/Form.form new file mode 100644 index 000000000..191d266e3 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаПравила/Form.form @@ -0,0 +1,728 @@ + + + + <key>ru</key> + <value>Правило заполнения реквизита 1С:Документооборота</value> + + + ПредставлениеРеквизитаОбъектаДокументооборота + 6 + + <key>ru</key> + <value>Реквизит 1С:Документооборота</value> + + true + true + + true + + + ПредставлениеРеквизитаОбъектаДокументооборота + + + ПредставлениеРеквизитаОбъектаДокументооборотаРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + + ПредставлениеРеквизитаОбъектаДокументооборотаКонтекстноеМеню + 7 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ГруппаВариантПравила + 3 + + ВариантПравилаЗаполненияРеквизитов + 1 + + <key>ru</key> + <value>Правило заполнения</value> + + true + true + + true + + + ВариантПравилаЗаполненияРеквизитов + + Top + + OnChange + ВариантПравилаЗаполненияРеквизитовПриИзменении + + + ВариантПравилаЗаполненияРеквизитовРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + + ВариантПравилаЗаполненияРеквизитовКонтекстноеМеню + 2 + true + + RadioButtonField + Enter + true + Left + true + + 1 + + + ru + Из реквизита объекта конфигурации + + + Enum.ВариантыПравилЗаполненияРеквизитов.EnumValue.ИзРеквизитаОбъектаПотребителя + + + + + ru + Из указанного значения + + + Enum.ВариантыПравилЗаполненияРеквизитов.EnumValue.ИзУказанногоЗначения + + + + + ru + Из выражения на встроенном языке + + + Enum.ВариантыПравилЗаполненияРеквизитов.EnumValue.ИзВыраженияНаВстроенномЯзыке + + + Vertical + + + + ГруппаПравила + 8 + + ИмяРеквизитаОбъектаПотребителя + 9 + true + true + + true + + + ИмяРеквизитаОбъектаПотребителя + + None + + ИмяРеквизитаОбъектаПотребителяРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + + ИмяРеквизитаОбъектаПотребителяКонтекстноеМеню + 10 + true + + InputField + Enter + true + Left + true + + + StartChoice + ИмяРеквизитаОбъектаПотребителяНачалоВыбора + + true + true + true + true + true + true + Normal + + + + ЗначениеРеквизитаДокументооборота + 11 + true + true + + true + + + ЗначениеРеквизитаДокументооборота + + None + + ЗначениеРеквизитаДокументооборотаРасширеннаяПодсказка + 25 + Label + true + true + + Left + + + + ЗначениеРеквизитаДокументооборотаКонтекстноеМеню + 12 + true + + InputField + Enter + true + Left + true + + + StartChoice + ЗначениеРеквизитаДокументооборотаНачалоВыбора + + true + true + true + true + true + Normal + + + + ВычисляемоеВыражение + 13 + true + true + + true + + + ВычисляемоеВыражение + + None + + ВычисляемоеВыражениеРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + + ВычисляемоеВыражениеКонтекстноеМеню + 14 + true + + InputField + Enter + true + Left + true + + true + 4 + true + true + true + true + true + true + Normal + + + true + true + + true + + + ГруппаПравилаРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + auto + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа вариант правила</value> + + + ru + Группа вариант правила + + + ГруппаВариантПравилаРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ОК + 4 + true + true + + true + + + ОКРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + Form.Command.ОК + Auto + true + true + true + UserCmds + Auto + + + Отмена + 5 + true + true + + true + + + ОтменаРасширеннаяПодсказка + 16 + Label + true + true + + Left + + + Form.Command.Отмена + Normal + Auto + true + true + UserCmds + Auto + + Right + true + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + + FillCheckProcessingAtServer + ОбработкаПроверкиЗаполненияНаСервере + + CustomizeForm + 70 + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ВариантПравилаЗаполненияРеквизитов + + <key>ru</key> + <value>Вариант правила заполнения реквизитов</value> + + 1 + + EnumRef.ВариантыПравилЗаполненияРеквизитов + + + true + + + true + + + + ИмяРеквизитаОбъектаПотребителя + + <key>ru</key> + <value>Имя реквизита объекта потребителя</value> + + 2 + + String + + + + true + + + true + + + + ЗначениеРеквизитаДокументооборота + + <key>ru</key> + <value>Значение реквизита документооборота</value> + + 3 + + Boolean + String + Date + Number + + 10 + + + + Date + + + + true + + + true + + + + ИдентификаторЗначенияРеквизита + + <key>ru</key> + <value>Идентификатор значения реквизита</value> + + 4 + + String + + + + true + + + true + + + + ТипЗначенияРеквизита + + <key>ru</key> + <value>Тип значения реквизита</value> + + 5 + + String + + + + true + + + true + + + + ВычисляемоеВыражение + + <key>ru</key> + <value>Вычисляемое выражение</value> + + 6 + + String + + + + true + + + true + + + + ИмяРеквизитаОбъектаДокументооборота + + <key>ru</key> + <value>Имя реквизита объекта документооборота</value> + + 7 + + String + + + + true + + + true + + + + ПредставлениеРеквизитаОбъектаДокументооборота + + <key>ru</key> + <value>Представление реквизита объекта документооборота</value> + + 8 + + String + + + + true + + + true + + + + ТипРеквизитаОбъектаДокументооборота + + <key>ru</key> + <value>Тип реквизита объекта документооборота</value> + + 9 + + + true + + + true + + + + ИзРеквизитаОбъектаПотребителя + + <key>ru</key> + <value>Из реквизита объекта потребителя</value> + + 10 + + EnumRef.ВариантыПравилЗаполненияРеквизитов + + + true + + + true + + + + ИзУказанногоЗначения + + <key>ru</key> + <value>Из указанного значения</value> + + 11 + + EnumRef.ВариантыПравилЗаполненияРеквизитов + + + true + + + true + + + + ИзВыраженияНаВстроенномЯзыке + + <key>ru</key> + <value>Из выражения на встроенном языке</value> + + 12 + + EnumRef.ВариантыПравилЗаполненияРеквизитов + + + true + + + true + + + + ТипОбъектаПотребителя + + <key>ru</key> + <value>Тип объекта потребителя</value> + + 13 + + String + + + + true + + + true + + + + ДополнительныйРеквизитID + + <key>ru</key> + <value>Дополнительный реквизит ID</value> + + 14 + + String + + + + true + + + true + + + + ДополнительныйРеквизитТип + + <key>ru</key> + <value>Дополнительный реквизит тип</value> + + 15 + + String + + + + true + + + true + + + + ОК + + <key>ru</key> + <value>ОК</value> + + 1 + + ru + ОК + + + true + + + + ОК + + + Auto + Auto + + + Отмена + + <key>ru</key> + <value>Отмена</value> + + 2 + + ru + Отмена + + + true + + + + Отмена + + + Auto + Auto + + + + + + diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаПравила/Help/ru.html b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаПравила/Help/ru.html new file mode 100644 index 000000000..8b01e0f12 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаПравила/Help/ru.html @@ -0,0 +1,5 @@ + +

Правило заполнения реквизита объекта 1С:Документооборота можно задать тремя способами:

+
  • Из реквизита объекта конфигурации. Данный способ означает, что реквизит объекта 1С:Документооборота будет заполнен из некоторого реквизита объекта-потребителя. При выборе данного способа требуется указать, из какого реквизита объекта-потребителя требуется получить значение и подставить в реквизит объекта 1С:Документооборота. +
  • Из указанного значения. Данный способ означает, что реквизит объекта 1С:Документооборота будет заполнен из значения, указанного пользователем. При выборе данного способа требуется указать то значение, которе будет использовано для заполнения реквизита 1С:Документооборота. Можно указать значение только того типа, который имеет реквизит 1С:Документооборота. +
  • Из выражения на встроенном языке. Данный способ означает, что реквизит объекта 1С:Документооборота будет заполнен из результата выражения на встроенном языке 1С. При выборе данного способа требуется указать выражение, результат которого будет использован для заполнения реквизита 1С:Документооборота. В выражение могут входить любые операции, в том числе вызов экспортных процедур и функций. Результат выражения должен быть присвоен переменной с именем "Результат". Переменная с именем "Источник" содержит ссылку на объект-потребитель, через эту переменную можно обращаться к реквизитам объекта-потребителя либо использовать как параметр при вызове функций.
\ No newline at end of file diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаПравила/Module.bsl b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаПравила/Module.bsl new file mode 100644 index 000000000..df32de4ed --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаПравила/Module.bsl @@ -0,0 +1,212 @@ + +&НаКлиенте +Процедура УстановитьДоступность() + + Элементы.ИмяРеквизитаОбъектаПотребителя.Доступность = (ВариантПравилаЗаполненияРеквизитов = ИзРеквизитаОбъектаПотребителя); + Элементы.ИмяРеквизитаОбъектаПотребителя.АвтоОтметкаНезаполненного = (ВариантПравилаЗаполненияРеквизитов = ИзРеквизитаОбъектаПотребителя); + Элементы.ИмяРеквизитаОбъектаПотребителя.ОтметкаНезаполненного = (ВариантПравилаЗаполненияРеквизитов = ИзРеквизитаОбъектаПотребителя) И Не ЗначениеЗаполнено(ИмяРеквизитаОбъектаПотребителя); + + Элементы.ЗначениеРеквизитаДокументооборота.Доступность = (ВариантПравилаЗаполненияРеквизитов = ИзУказанногоЗначения); + Элементы.ЗначениеРеквизитаДокументооборота.АвтоОтметкаНезаполненного = (ВариантПравилаЗаполненияРеквизитов = ИзУказанногоЗначения); + Элементы.ЗначениеРеквизитаДокументооборота.ОтметкаНезаполненного = (ВариантПравилаЗаполненияРеквизитов = ИзУказанногоЗначения) И Не ЗначениеЗаполнено(ЗначениеРеквизитаДокументооборота); + + Элементы.ВычисляемоеВыражение.Доступность = (ВариантПравилаЗаполненияРеквизитов = ИзВыраженияНаВстроенномЯзыке); + Элементы.ВычисляемоеВыражение.АвтоОтметкаНезаполненного = (ВариантПравилаЗаполненияРеквизитов = ИзВыраженияНаВстроенномЯзыке); + Элементы.ВычисляемоеВыражение.ОтметкаНезаполненного = (ВариантПравилаЗаполненияРеквизитов = ИзВыраженияНаВстроенномЯзыке) И Не ЗначениеЗаполнено(ВычисляемоеВыражение); + +КонецПроцедуры + + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ИзРеквизитаОбъектаПотребителя = Перечисления.ВариантыПравилЗаполненияРеквизитов.ИзРеквизитаОбъектаПотребителя; + ИзУказанногоЗначения = Перечисления.ВариантыПравилЗаполненияРеквизитов.ИзУказанногоЗначения; + ИзВыраженияНаВстроенномЯзыке = Перечисления.ВариантыПравилЗаполненияРеквизитов.ИзВыраженияНаВстроенномЯзыке; + + ИмяРеквизитаОбъектаДокументооборота = Параметры.ИмяРеквизитаОбъектаДокументооборота; + ПредставлениеРеквизитаОбъектаДокументооборота = Параметры.ПредставлениеРеквизитаОбъектаДокументооборота; + ТипРеквизитаОбъектаДокументооборота = Параметры.ТипРеквизитаОбъектаДокументооборота; + ВариантПравилаЗаполненияРеквизитов = Параметры.ВариантПравилаЗаполненияРеквизитов; + ИмяРеквизитаОбъектаПотребителя = Параметры.ИмяРеквизитаОбъектаПотребителя; + ЗначениеРеквизитаДокументооборота = Параметры.ЗначениеРеквизитаДокументооборота; + ИдентификаторЗначенияРеквизита = Параметры.ИдентификаторЗначенияРеквизита; + ТипЗначенияРеквизита = Параметры.ТипЗначенияРеквизита; + ВычисляемоеВыражение = Параметры.ВычисляемоеВыражение; + ТипОбъектаПотребителя = Параметры.ТипОбъектаПотребителя; + ДополнительныйРеквизитID = Параметры.ДополнительныйРеквизитID; + ДополнительныйРеквизитТип = Параметры.ДополнительныйРеквизитТип; + + Если Не ЗначениеЗаполнено(ВариантПравилаЗаполненияРеквизитов) Тогда + ВариантПравилаЗаполненияРеквизитов = ИзРеквизитаОбъектаПотребителя; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + УстановитьДоступность(); + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) + + Если ВариантПравилаЗаполненияРеквизитов = ИзРеквизитаОбъектаПотребителя Тогда + ПроверяемыеРеквизиты.Добавить("ИмяРеквизитаОбъектаПотребителя"); + + ИначеЕсли ВариантПравилаЗаполненияРеквизитов = ИзУказанногоЗначения Тогда + ПроверяемыеРеквизиты.Добавить("ЗначениеРеквизитаДокументооборота"); + + ИначеЕсли ВариантПравилаЗаполненияРеквизитов = ИзВыраженияНаВстроенномЯзыке Тогда + ПроверяемыеРеквизиты.Добавить("ВычисляемоеВыражение"); + + КонецЕсли; + +КонецПроцедуры + + +&НаКлиенте +Процедура ОК(Команда) + + Если Не ПроверитьЗаполнение() Тогда + Возврат; + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("ВариантПравилаЗаполненияРеквизитов"); + Результат.Вставить("ИмяРеквизитаОбъектаПотребителя"); + Результат.Вставить("ЗначениеРеквизитаДокументооборота"); + Результат.Вставить("ИдентификаторЗначенияРеквизита"); + Результат.Вставить("ТипЗначенияРеквизита"); + Результат.Вставить("ВычисляемоеВыражение"); + + Если ВариантПравилаЗаполненияРеквизитов = ИзРеквизитаОбъектаПотребителя Тогда + Результат.ИмяРеквизитаОбъектаПотребителя = ИмяРеквизитаОбъектаПотребителя; + + ИначеЕсли ВариантПравилаЗаполненияРеквизитов = ИзУказанногоЗначения Тогда + Результат.ЗначениеРеквизитаДокументооборота = ЗначениеРеквизитаДокументооборота; + Результат.ИдентификаторЗначенияРеквизита = ИдентификаторЗначенияРеквизита; + Результат.ТипЗначенияРеквизита = ТипЗначенияРеквизита; + + ИначеЕсли ВариантПравилаЗаполненияРеквизитов = ИзВыраженияНаВстроенномЯзыке Тогда + Результат.ВычисляемоеВыражение = ВычисляемоеВыражение; + + КонецЕсли; + Результат.ВариантПравилаЗаполненияРеквизитов = ВариантПравилаЗаполненияРеквизитов; + + Закрыть(Результат); + +КонецПроцедуры + +&НаКлиенте +Процедура Отмена(Команда) + + Закрыть(); + +КонецПроцедуры + + +&НаКлиенте +Процедура ВариантПравилаЗаполненияРеквизитовПриИзменении(Элемент) + + УстановитьДоступность(); + +КонецПроцедуры + +&НаКлиенте +Процедура ИмяРеквизитаОбъектаПотребителяНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ТипОбъекта", ТипОбъектаПотребителя); + + Результат = ОткрытьФормуМодально("Справочник.НастройкиЗаполненияОбъектов1СДокументооборота.Форма.ВыборРеквизита", ПараметрыФормы, ЭтаФорма); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + ИмяРеквизитаОбъектаПотребителя = Результат.Имя; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗначениеРеквизитаДокументооборотаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ТипРеквизитаОбъектаДокументооборота.Количество() = 1 Тогда + ЗначениеТипа = ТипРеквизитаОбъектаДокументооборота[0].Значение; + Иначе + ЗначениеТипа = ВыбратьИзСписка(ТипРеквизитаОбъектаДокументооборота, Элемент); + Если ЗначениеТипа = Неопределено Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + + Если ЗначениеТипа = "Строка" Тогда + ЗначениеРеквизита = ЗначениеРеквизитаДокументооборота; + Если ВвестиСтроку(ЗначениеРеквизита, ПредставлениеРеквизитаОбъектаДокументооборота) Тогда + ЗначениеРеквизитаДокументооборота = ЗначениеРеквизита; + КонецЕсли; + + ИначеЕсли ЗначениеТипа = "Число" Тогда + ЗначениеРеквизита = ЗначениеРеквизитаДокументооборота; + Если ВвестиЧисло(ЗначениеРеквизита, ПредставлениеРеквизитаОбъектаДокументооборота, 15, 3) Тогда + ЗначениеРеквизитаДокументооборота = ЗначениеРеквизита; + КонецЕсли; + + ИначеЕсли ЗначениеТипа = "Дата" Тогда + ЗначениеРеквизита = ЗначениеРеквизитаДокументооборота; + Если ВвестиДату(ЗначениеРеквизита, ПредставлениеРеквизитаОбъектаДокументооборота, ЧастиДаты.Дата) Тогда + ЗначениеРеквизитаДокументооборота = ЗначениеРеквизита; + КонецЕсли; + + ИначеЕсли ЗначениеТипа = "ДатаВремя" Тогда + ЗначениеРеквизита = ЗначениеРеквизитаДокументооборота; + Если ВвестиДату(ЗначениеРеквизита, ПредставлениеРеквизитаОбъектаДокументооборота, ЧастиДаты.ДатаВремя) Тогда + ЗначениеРеквизитаДокументооборота = ЗначениеРеквизита; + КонецЕсли; + + ИначеЕсли ЗначениеТипа = "Время" Тогда + ЗначениеРеквизита = ЗначениеРеквизитаДокументооборота; + Если ВвестиДату(ЗначениеРеквизита, ПредставлениеРеквизитаОбъектаДокументооборота, ЧастиДаты.Время) Тогда + ЗначениеРеквизитаДокументооборота = ЗначениеРеквизита; + КонецЕсли; + + ИначеЕсли ЗначениеТипа = "Булево" Тогда + ЗначениеРеквизита = ЗначениеРеквизитаДокументооборота; + Если ВвестиЗначение(ЗначениеРеквизита, ПредставлениеРеквизитаОбъектаДокументооборота, Тип("Булево")) Тогда + ЗначениеРеквизитаДокументооборота = ЗначениеРеквизита; + КонецЕсли; + + Иначе + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ТипОбъектаВыбора", ЗначениеТипа); + Если ЗначениеТипа = "DMObjectPropertyValue" Тогда + Владелец = Новый Структура; + Владелец.Вставить("ID", ДополнительныйРеквизитID); + Владелец.Вставить("Type", ДополнительныйРеквизитТип); + + Отбор = Новый Структура; + Отбор.Вставить("AdditionalProperty", Владелец); + + ПараметрыФормы.Вставить("Отбор", Отбор); + КонецЕсли; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИзСписка", ПараметрыФормы, ЭтаФорма); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + ЗначениеРеквизитаДокументооборота = Результат.РеквизитПредставление; + ИдентификаторЗначенияРеквизита = Результат.РеквизитID; + ТипЗначенияРеквизита = Результат.РеквизитТип; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + + diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss new file mode 100644 index 000000000..91027f589 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss @@ -0,0 +1,15 @@ + + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаСписка/Form.form new file mode 100644 index 000000000..71679116f --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаСписка/Form.form @@ -0,0 +1,262 @@ + + + + Список + 1 + true + true + + true + + + Список + + true + None + + Наименование + 4 + true + true + + true + + + Список.Description + + true + + НаименованиеРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 5 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Комментарий + 6 + true + true + + true + + + Список.Комментарий + + + КомментарийРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + + КомментарийКонтекстноеМеню + 7 + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 3 + Left + + + СписокСтрокаПоиска + 9 + + СписокСтрокаПоискаРасширеннаяПодсказка + 11 + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 10 + true + + Список + + true + + + + СписокСостояниеПросмотра + 12 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 13 + true + + ViewStatusAddition + Список + + true + + + + СписокУправлениеПоиском + 15 + + СписокУправлениеПоискомРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 16 + true + + SearchControlAddition + Список + + true + + + + СписокРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 2 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + ExpandTopLevel + true + true + true + + Список.DefaultPicture + + None + None + None + true + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + true + +
+ + ФормаКоманднаяПанель + -1 + Left + true + + 60 + DontBlock + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Список + 1 + + DynamicList + + + true + + + true + +
true
+ + Catalog.НастройкиЗаполненияОбъектов1СДокументооборота + true + true + true + true + +
+ + + + + +
diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаЭлемента/Form.form new file mode 100644 index 000000000..4b3b5992a --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаЭлемента/Form.form @@ -0,0 +1,976 @@ + + + + ТипОбъектаПотребителя + 5 + + <key>ru</key> + <value>Объект конфигурации</value> + + true + true + + true + + + ПредставлениеОбъектаПотребителя + + + ТипОбъектаПотребителяРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + + ТипОбъектаПотребителяКонтекстноеМеню + 6 + true + + InputField + true + Auto + true + Left + true + + + StartChoice + ТипОбъектаПотребителяНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ТипОбъектаДокументооборота + 7 + + <key>ru</key> + <value>Объект 1С:Документооборота</value> + + true + true + + true + + + ПредставлениеОбъектаДокументооборота + + + ТипОбъектаДокументооборотаРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + ТипОбъектаДокументооборотаКонтекстноеМеню + 8 + true + + InputField + true + Auto + true + Left + true + + + StartChoice + ТипОбъектаДокументооборотаНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ГруппаОтступ + 32 + + ПравилаЗаполненияРеквизитов + 9 + true + true + + true + + + ПравилаЗаполненияРеквизитов + + None + Add + CancelSearch + Copy + EndEdit + Find + + ПредставлениеРеквизитаОбъектаДокументооборота + 33 + + <key>ru</key> + <value>Реквизит 1С:Документооборота</value> + + true + true + + true + + + ПравилаЗаполненияРеквизитов.ПредставлениеРеквизитаОбъектаДокументооборота + + + ПредставлениеРеквизитаОбъектаДокументооборотаРасширеннаяПодсказка + 63 + Label + true + true + + Left + + + + ПредставлениеРеквизитаОбъектаДокументооборотаКонтекстноеМеню + 34 + true + + InputField + Auto + true + Left + true + + 38 + true + true + false + true + true + true + true + Normal + + + + ПравилаЗаполненияРеквизитовГруппа + 28 + + ИмяРеквизитаОбъектаПотребителя + 35 + true + true + + true + + + ПравилаЗаполненияРеквизитов.ИмяРеквизитаОбъектаПотребителя + + + ИмяРеквизитаОбъектаПотребителяРасширеннаяПодсказка + 66 + Label + true + true + + Left + + + + ИмяРеквизитаОбъектаПотребителяКонтекстноеМеню + 36 + true + + InputField + Auto + Left + true + + 10 + true + true + true + true + true + true + Normal + + + + ЗначениеРеквизитаДокументооборота + 37 + true + true + + true + + + ПравилаЗаполненияРеквизитов.ЗначениеРеквизитаДокументооборота + + + ЗначениеРеквизитаДокументооборотаРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + + ЗначениеРеквизитаДокументооборотаКонтекстноеМеню + 38 + true + + InputField + Auto + Left + true + + 10 + true + true + true + true + true + true + Normal + + + + ВычисляемоеВыражение + 39 + true + true + + true + + + ПравилаЗаполненияРеквизитов.ВычисляемоеВыражение + + + ВычисляемоеВыражениеРасширеннаяПодсказка + 70 + Label + true + true + + Left + + + + ВычисляемоеВыражениеКонтекстноеМеню + 40 + true + + InputField + Auto + Left + true + + 10 + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Правило заполнения</value> + + + ru + Правила заполнения реквизитов группа + + + ПравилаЗаполненияРеквизитовГруппаРасширеннаяПодсказка + 65 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + true + + + + ПравилаЗаполненияРеквизитовКоманднаяПанель + 11 + + ПравилаЗаполненияРеквизитовИзменить + 29 + true + true + + true + + + ПравилаЗаполненияРеквизитовИзменитьРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + Form.Item.ПравилаЗаполненияРеквизитов.StandardCommand.Change + Normal + PictureAndText + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + Left + + + BeforeAddRow + ПравилаЗаполненияРеквизитовПередНачаломДобавления + + + BeforeDeleteRow + ПравилаЗаполненияРеквизитовПередУдалением + + + BeforeRowChange + ПравилаЗаполненияРеквизитовПередНачаломИзменения + + + ПравилаЗаполненияРеквизитовСтрокаПоиска + 54 + + ПравилаЗаполненияРеквизитовСтрокаПоискаРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + + ПравилаЗаполненияРеквизитовСтрокаПоискаКонтекстноеМеню + 55 + true + + ПравилаЗаполненияРеквизитов + + true + + + + ПравилаЗаполненияРеквизитовСостояниеПросмотра + 57 + + ПравилаЗаполненияРеквизитовСостояниеПросмотраРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + ПравилаЗаполненияРеквизитовСостояниеПросмотраКонтекстноеМеню + 58 + true + + ViewStatusAddition + ПравилаЗаполненияРеквизитов + + true + + + + ПравилаЗаполненияРеквизитовУправлениеПоиском + 60 + + ПравилаЗаполненияРеквизитовУправлениеПоискомРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + + ПравилаЗаполненияРеквизитовУправлениеПоискомКонтекстноеМеню + 61 + true + + SearchControlAddition + ПравилаЗаполненияРеквизитов + + true + + + + ПравилаЗаполненияРеквизитовРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + + ПравилаЗаполненияРеквизитовКонтекстноеМеню + 10 + + ПравилаЗаполненияРеквизитовКонтекстноеМенюИзменить + 43 + true + true + + true + + + ПравилаЗаполненияРеквизитовКонтекстноеМенюИзменитьРасширеннаяПодсказка + 49 + Label + true + true + + Left + + + Form.Item.ПравилаЗаполненияРеквизитов.StandardCommand.Change + Normal + Auto + true + true + UserCmds + Auto + + + ПравилаЗаполненияРеквизитовКонтекстноеМенюУдалить + 41 + + <key>ru</key> + <value>Очистить</value> + + true + true + + true + + + ПравилаЗаполненияРеквизитовКонтекстноеМенюУдалитьРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + Form.Item.ПравилаЗаполненияРеквизитов.StandardCommand.Delete + Normal + Auto + true + true + UserCmds + Auto + + + ПравилаЗаполненияРеквизитовКонтекстноеМенюГруппа + 42 + true + true + + true + + + <key>ru</key> + <value>Правила заполнения реквизитов контекстное меню группа</value> + + + ru + Правила заполнения реквизитов контекстное меню группа + + + ПравилаЗаполненияРеквизитовКонтекстноеМенюГруппаРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + Item.ПравилаЗаполненияРеквизитов + + + + true + true + 22 + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ + Комментарий + 30 + true + true + + true + + + Объект.Комментарий + + + КомментарийРасширеннаяПодсказка + 80 + Label + true + true + + Left + + + + КомментарийКонтекстноеМеню + 31 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа отступ</value> + + + ru + Группа отступ + + + ГруппаОтступРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + +
+ + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + + FillCheckProcessingAtServer + ОбработкаПроверкиЗаполненияНаСервере + + 80 + LockOwner + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Объект + 1 + + CatalogObject.НастройкиЗаполненияОбъектов1СДокументооборота + + + true + + + true + +
true
+ true + + + Объект.ПравилаЗаполненияРеквизитов + + +
+ + ПредставлениеОбъектаПотребителя + + <key>ru</key> + <value>Представление объекта потребителя</value> + + 2 + + String + + + + true + + + true + + + + ПредставлениеОбъектаДокументооборота + + <key>ru</key> + <value>Представление объекта документооборота</value> + + 3 + + String + + + + true + + + true + + + + ПравилаЗаполненияРеквизитов + + <key>ru</key> + <value>Правила заполнения реквизитов</value> + + 4 + + ValueTable + + + true + + + true + + + ИмяРеквизитаОбъектаДокументооборота + + <key>ru</key> + <value>Имя реквизита объекта документооборота</value> + + 1 + + String + + + + true + + + true + + + + ВариантПравилаЗаполненияРеквизитов + + <key>ru</key> + <value>Вариант правила заполнения реквизитов</value> + + 2 + + EnumRef.ВариантыПравилЗаполненияРеквизитов + + + true + + + true + + + + ИмяРеквизитаОбъектаПотребителя + + <key>ru</key> + <value>Имя реквизита объекта потребителя</value> + + 3 + + String + + + + true + + + true + + + + ЗначениеРеквизитаДокументооборота + + <key>ru</key> + <value>Значение реквизита документооборота</value> + + 4 + + Boolean + String + Date + Number + + 15 + 3 + + + + + + true + + + true + + + + ИдентификаторЗначенияРеквизита + + <key>ru</key> + <value>Идентификатор значения реквизита</value> + + 5 + + String + + + + true + + + true + + + + ТипЗначенияРеквизита + + <key>ru</key> + <value>Тип значения реквизита</value> + + 6 + + String + + + + true + + + true + + + + ВычисляемоеВыражение + + <key>ru</key> + <value>Вычисляемое выражение</value> + + 7 + + String + + + + true + + + true + + + + ТипРеквизитаОбъектаДокументооборота + + <key>ru</key> + <value>Тип реквизита объекта документооборота</value> + + 8 + + ValueList + + + true + + + true + + + + ПредставлениеРеквизитаОбъектаДокументооборота + + <key>ru</key> + <value>Представление реквизита объекта документооборота</value> + + 9 + + String + + + + true + + + true + + + + ДополнительныйРеквизит + + <key>ru</key> + <value>Дополнительный реквизит</value> + + 10 + + Boolean + + + true + + + true + + + + ДополнительныйРеквизитID + + <key>ru</key> + <value>Дополнительный реквизит</value> + + 11 + + String + + + + true + + + true + + + + ДополнительныйРеквизитТип + + <key>ru</key> + <value>Дополнительный реквизит</value> + + 12 + + String + + + + true + + + true + + + + + + + + + + BeforeWriteAtServer + ПередЗаписьюНаСервере + + +
diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаЭлемента/Module.bsl new file mode 100644 index 000000000..5b10f9109 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Forms/ФормаЭлемента/Module.bsl @@ -0,0 +1,308 @@ + +//////////////////////////////////////////////////////////////////////////////// +// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ + +&НаКлиентеНаСервереБезКонтекста +Функция СписокОбъектовДокументооборота() + + Список = Новый СписокЗначений; + + Список.Добавить("DMIncomingDocument", "Входящий документ"); + Список.Добавить("DMOutgoingDocument", "Исходящий документ"); + Список.Добавить("DMInternalDocument", "Внутренний документ"); + + Возврат Список; + +КонецФункции + +&НаСервере +Процедура ЗаполнитьРеквизитыДокументооборота() + + Если Не ЗначениеЗаполнено(Объект.ТипОбъектаДокументооборота) Тогда + ПравилаЗаполненияРеквизитов.Очистить(); + + Иначе + + ПараметрыОтбора = Новый Структура; + ПараметрыОтбора.Вставить("ИмяРеквизитаОбъектаДокументооборота", "documentType"); + ПараметрыОтбора.Вставить("ВариантПравилаЗаполненияРеквизитов", Перечисления.ВариантыПравилЗаполненияРеквизитов.ИзУказанногоЗначения); + ПараметрыОтбора.Вставить("ДополнительныйРеквизит", Ложь); + + СтрокиВидДокумента = Объект.ПравилаЗаполненияРеквизитов.НайтиСтроки(ПараметрыОтбора); + Если СтрокиВидДокумента.Количество() > 0 Тогда + СтрокаВидДокумента = СтрокиВидДокумента[0]; + + ПараметрыЗаполнения = Новый Структура; + ПараметрыЗаполнения.Вставить("documentType", + Новый Структура("ID, Тип, Представление", + СтрокаВидДокумента.ИдентификаторЗначенияРеквизита, + СтрокаВидДокумента.ТипЗначенияРеквизита, + СтрокаВидДокумента.ЗначениеРеквизитаДокументооборота)); + + Реквизиты = Справочники.НастройкиЗаполненияОбъектов1СДокументооборота. + ПолучитьРеквизитыОбъектаДокументооборота(Объект.ТипОбъектаДокументооборота, ПараметрыЗаполнения); + + Иначе + + Реквизиты = Справочники.НастройкиЗаполненияОбъектов1СДокументооборота. + ПолучитьРеквизитыОбъектаДокументооборота(Объект.ТипОбъектаДокументооборота); + + КонецЕсли; + + ПравилаЗаполненияРеквизитов.Очистить(); + Для Каждого Строка Из Реквизиты Цикл + + НоваяСтрока = ПравилаЗаполненияРеквизитов.Добавить(); + НоваяСтрока.ИмяРеквизитаОбъектаДокументооборота = Строка.Имя; + НоваяСтрока.ПредставлениеРеквизитаОбъектаДокументооборота = Строка.Представление; + НоваяСтрока.ТипРеквизитаОбъектаДокументооборота = Строка.Тип; + НоваяСтрока.ДополнительныйРеквизит = Строка.ДопРеквизит; + НоваяСтрока.ДополнительныйРеквизитID = Строка.ДопРеквизитID; + НоваяСтрока.ДополнительныйРеквизитТип = Строка.ДопРеквизитТип; + + Если Не Строка.ДопРеквизит Тогда + ПараметыОтбора = Новый Структура("ДополнительныйРеквизит, ИмяРеквизитаОбъектаДокументооборота", Ложь, Строка.Имя); + Иначе + ПараметыОтбора = Новый Структура("ДополнительныйРеквизит, ДополнительныйРеквизитID, ДополнительныйРеквизитТип", Истина, Строка.ДопРеквизитID, Строка.ДопРеквизитТип); + КонецЕсли; + + НайденныеСтроки = Объект.ПравилаЗаполненияРеквизитов.НайтиСтроки(ПараметыОтбора); + Если НайденныеСтроки.Количество() > 0 Тогда + ЗаполнитьЗначенияСвойств(НоваяСтрока, НайденныеСтроки[0]); + КонецЕсли; + + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьТаблЧастьОбъекта() + + Объект.ПравилаЗаполненияРеквизитов.Очистить(); + Для Каждого Строка Из ПравилаЗаполненияРеквизитов Цикл + Если ЗначениеЗаполнено(Строка.ВариантПравилаЗаполненияРеквизитов) + И (ЗначениеЗаполнено(Строка.ИмяРеквизитаОбъектаПотребителя) + Или ЗначениеЗаполнено(Строка.ЗначениеРеквизитаДокументооборота) + Или ЗначениеЗаполнено(Строка.ВычисляемоеВыражение)) Тогда + + НоваяСтрока = Объект.ПравилаЗаполненияРеквизитов.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + + +//////////////////////////////////////////////////////////////////////////////// +// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Объект.ТипОбъектаПотребителя) Тогда + + ОбъектПотребителя = Метаданные.НайтиПоПолномуИмени(Объект.ТипОбъектаПотребителя); + Если ОбъектПотребителя <> Неопределено Тогда + ПредставлениеОбъектаПотребителя = ?(ОбъектПотребителя.Синоним = "", ОбъектПотребителя.Имя, ОбъектПотребителя.Синоним); + КонецЕсли; + + КонецЕсли; + + Если ЗначениеЗаполнено(Объект.ТипОбъектаДокументооборота) Тогда + + ОбъектДокументооборота = СписокОбъектовДокументооборота().НайтиПоЗначению(Объект.ТипОбъектаДокументооборота); + Если ОбъектДокументооборота <> Неопределено Тогда + ПредставлениеОбъектаДокументооборота = ОбъектДокументооборота.Представление; + КонецЕсли; + + КонецЕсли; + + ЗаполнитьРеквизитыДокументооборота(); + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) + + Если Не ЗначениеЗаполнено(ПредставлениеОбъектаПотребителя) Тогда + Отказ = Истина; + + Сообщение = Новый СообщениеПользователю(); + Сообщение.Текст = НСтр("ru = 'Поле ""Объект конфигурации"" не заполнено'"); + Сообщение.Поле = "ПредставлениеОбъектаПотребителя"; + Сообщение.Сообщить(); + КонецЕсли; + + Если Не ЗначениеЗаполнено(ПредставлениеОбъектаДокументооборота) Тогда + Отказ = Истина; + + Сообщение = Новый СообщениеПользователю(); + Сообщение.Текст = НСтр("ru = 'Поле ""Объект 1С:Документооборота"" не заполнено'"); + Сообщение.Поле = "ПредставлениеОбъектаДокументооборота"; + Сообщение.Сообщить(); + КонецЕсли; + + Если ЗначениеЗаполнено(Объект.ТипОбъектаПотребителя) Тогда + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Ссылка + |ИЗ + | Справочник.НастройкиЗаполненияОбъектов1СДокументооборота + |ГДЕ + | ТипОбъектаПотребителя = &ТипОбъектаПотребителя + | И Не ПометкаУдаления + | И Ссылка <> &Ссылка"; + + Запрос.УстановитьПараметр("ТипОбъектаПотребителя", Объект.ТипОбъектаПотребителя); + Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); + + Результат = Запрос.Выполнить(); + Если Не Результат.Пустой() Тогда + Отказ = Истина; + + Сообщение = Новый СообщениеПользователю(); + Сообщение.Текст = НСтр("ru = 'Для данного объекта конфигурации уже введено правило заполнения реквизитов'"); + Сообщение.Поле = "ПредставлениеОбъектаПотребителя"; + Сообщение.Сообщить(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + ТекущийОбъект.ПравилаЗаполненияРеквизитов.Очистить(); + Для Каждого Строка Из ПравилаЗаполненияРеквизитов Цикл + Если ЗначениеЗаполнено(Строка.ВариантПравилаЗаполненияРеквизитов) + И (ЗначениеЗаполнено(Строка.ИмяРеквизитаОбъектаПотребителя) + Или ЗначениеЗаполнено(Строка.ЗначениеРеквизитаДокументооборота) + Или ЗначениеЗаполнено(Строка.ВычисляемоеВыражение)) Тогда + + НоваяСтрока = ТекущийОбъект.ПравилаЗаполненияРеквизитов.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + + +//////////////////////////////////////////////////////////////////////////////// +// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ + +&НаКлиенте +Процедура ТипОбъектаПотребителяНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ПараметрФормы = Новый Структура; + ПараметрФормы.Вставить("ТекущаяСтрока", Объект.ТипОбъектаПотребителя); + + Результат = ОткрытьФормуМодально("Справочник.НастройкиЗаполненияОбъектов1СДокументооборота.Форма.ВыборОбъектаМетаданных", ПараметрФормы, ЭтаФорма); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + Объект.ТипОбъектаПотребителя = Результат.Имя; + ПредставлениеОбъектаПотребителя = Результат.Синоним; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ТипОбъектаДокументооборотаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + НачальныйТипОбъектаДокументооборота = Объект.ТипОбъектаДокументооборота; + СписокВыбора = СписокОбъектовДокументооборота(); + + ВыбранноеЗначение = ВыбратьИзСписка(СписокВыбора, Элемент); + Если ВыбранноеЗначение = Неопределено Тогда + Возврат; + КонецЕсли; + + Объект.ТипОбъектаДокументооборота = ВыбранноеЗначение.Значение; + ПредставлениеОбъектаДокументооборота = ВыбранноеЗначение.Представление; + + Если НачальныйТипОбъектаДокументооборота <> Объект.ТипОбъектаДокументооборота Тогда + Объект.ПравилаЗаполненияРеквизитов.Очистить(); + ЗаполнитьРеквизитыДокументооборота(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПравилаЗаполненияРеквизитовПередНачаломИзменения(Элемент, Отказ) + + Отказ = Истина; + + ТекущиеДанные = Элементы.ПравилаЗаполненияРеквизитов.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ИмяРеквизитаОбъектаДокументооборота"); + ПараметрыФормы.Вставить("ПредставлениеРеквизитаОбъектаДокументооборота"); + ПараметрыФормы.Вставить("ТипРеквизитаОбъектаДокументооборота"); + ПараметрыФормы.Вставить("ВариантПравилаЗаполненияРеквизитов"); + ПараметрыФормы.Вставить("ИмяРеквизитаОбъектаПотребителя"); + ПараметрыФормы.Вставить("ЗначениеРеквизитаДокументооборота"); + ПараметрыФормы.Вставить("ИдентификаторЗначенияРеквизита"); + ПараметрыФормы.Вставить("ТипЗначенияРеквизита"); + ПараметрыФормы.Вставить("ВычисляемоеВыражение"); + ПараметрыФормы.Вставить("ДополнительныйРеквизитID"); + ПараметрыФормы.Вставить("ДополнительныйРеквизитТип"); + ЗаполнитьЗначенияСвойств(ПараметрыФормы, ТекущиеДанные); + ПараметрыФормы.Вставить("ТипОбъектаПотребителя", Объект.ТипОбъектаПотребителя); + + Результат = ОткрытьФормуМодально("Справочник.НастройкиЗаполненияОбъектов1СДокументооборота.Форма.ФормаПравила", ПараметрыФормы, ЭтаФорма); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + ЗаполнитьЗначенияСвойств(ТекущиеДанные, Результат); + Модифицированность = Истина; + + Если ТекущиеДанные.ИмяРеквизитаОбъектаДокументооборота = "documentType" + И ТекущиеДанные.ВариантПравилаЗаполненияРеквизитов = ПредопределенноеЗначение("Перечисление.ВариантыПравилЗаполненияРеквизитов.ИзУказанногоЗначения") + И ЗначениеЗаполнено(ТекущиеДанные.ЗначениеРеквизитаДокументооборота) Тогда + + ЗаполнитьТаблЧастьОбъекта(); + ЗаполнитьРеквизитыДокументооборота(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПравилаЗаполненияРеквизитовПередУдалением(Элемент, Отказ) + + Отказ = Истина; + ТекущиеДанные = Элементы.ПравилаЗаполненияРеквизитов.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ТекстВопроса = НСтр("ru = 'Очистить правило заполнения реквизита?'"); + Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет,,КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + ТекущиеДанные.ВариантПравилаЗаполненияРеквизитов = Неопределено; + ТекущиеДанные.ИмяРеквизитаОбъектаПотребителя = Неопределено; + ТекущиеДанные.ЗначениеРеквизитаДокументооборота = Неопределено; + ТекущиеДанные.ИдентификаторЗначенияРеквизита = Неопределено; + ТекущиеДанные.ТипЗначенияРеквизита = Неопределено; + ТекущиеДанные.ВычисляемоеВыражение = Неопределено; + ТекущиеДанные.ДополнительныйРеквизит = Неопределено; + ТекущиеДанные.ДополнительныйРеквизитID = Неопределено; + ТекущиеДанные.ДополнительныйРеквизитТип = Неопределено; + + Модифицированность = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура ПравилаЗаполненияРеквизитовПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Отказ = Истина; + +КонецПроцедуры + + + diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Help/ru.html b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Help/ru.html new file mode 100644 index 000000000..a78f5d13b --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/Help/ru.html @@ -0,0 +1,12 @@ + +

Справочник содержит настройки, которые позволяют автоматически заполнить реквизиты документа 1С:Документооборота из данных объекта, для которого создается документ.

Например для документа "Счет от поставщика" можно указать:

+
  • для данного объекта создается входящий документ, +
  • поле Организация входящего документа заполняется из поля Организация счета, +
  • поле Отправитель входящего документа заполняется из поля Корреспондент счета, +
  • поле Вид входящего документа заполняется значением "Счет на оплату"  +
  • поле Гриф доступа входящего документа заполняется значением "Общий" +
  • поле Регистрационный номер входящего документ заполняется из поля Номер счета, +
  • поля Сумма и Валюта входящего документа заполняются из одноименных полей счета, +
  • и т.п.


В поле Объект конфигурации указывается, для какого объекта конфигурации-потребителя выполняется настройка. В поле Объект 1С:Документооборота указывается документ какого типа (входящий, исходящий или внутренний) соответствует объекту потребителю. В табличной части выводятся все реквизиты документа 1С:Документооборота указанного типа.

+

Для каждого реквизита можно задать правило его заполнения. Для этого необходимо выделить строку с нужным реквизитом и нажать кнопку Изменить. Будет открыта форма ввода правила заполнения, в которой можно указать способ заполнения реквизита.

+

Для очистки правила, заданного для некоторого реквизита, необходимо выделить строку с нужным реквизитом и выбрать в контекстном меню команду Очистить или нажать клавишу Del.

\ No newline at end of file diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/ManagerModule.bsl b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/ManagerModule.bsl new file mode 100644 index 000000000..dd02781f2 --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/ManagerModule.bsl @@ -0,0 +1,269 @@ + +Функция ПолучитьРеквизитыОбъектаДокументооборота(ТипОбъектаДокументооборота, Параметры = Неопределено) Экспорт + + Реквизиты = Новый ТаблицаЗначений; + Реквизиты.Колонки.Добавить("Имя"); + Реквизиты.Колонки.Добавить("Представление"); + Реквизиты.Колонки.Добавить("Тип"); + Реквизиты.Колонки.Добавить("ДопРеквизит"); + Реквизиты.Колонки.Добавить("ДопРеквизитID"); + Реквизиты.Колонки.Добавить("ДопРеквизитТип"); + + // общие настройки + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Запрос = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMGetNewObjectRequest")); + Запрос.type = ТипОбъектаДокументооборота; + Запрос.columnSet.Добавить("additionalProperties"); + Запрос.columnSet.Добавить("documentTypeEnabled"); + Запрос.columnSet.Добавить("accessLevelEnabled"); + Запрос.columnSet.Добавить("activityMatterEnabled"); + Запрос.columnSet.Добавить("organizationEnabled"); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + ОбщиеНастройки = Результат; + ДопРеквизиты = Результат.additionalProperties; + + + Если Параметры <> Неопределено И Параметры.Свойство("DocumentType") И Параметры.DocumentType <> Неопределено Тогда + + // настройки по виду + ОбъектИд = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID")); + ОбъектИд.id = Параметры.DocumentType.ID; + ОбъектИд.type = Параметры.DocumentType.Тип; + + Запрос = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMRetrieveRequest")); + Запрос.objectIds.Добавить(ОбъектИд); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + НастройкиВида = Результат.objects[0]; + + + // доп реквизиты по виду + Объект = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", ТипОбъектаДокументооборота)); + Объект.name = ""; + Объект.objectId = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID")); + Объект.objectId.id = ""; + Объект.objectId.type = ТипОбъектаДокументооборота; + + Объект.documentType = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", ТипОбъектаДокументооборота + "Type")); + Объект.documentType.name = Параметры.DocumentType.Представление; + Объект.documentType.objectId = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID")); + Объект.documentType.objectId.id = Параметры.DocumentType.ID; + Объект.documentType.objectId.type = Параметры.DocumentType.Тип; + + Запрос = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMGetObjectAdditionalPropertiesRequest")); + Запрос.object = Объект; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + ДопРеквизиты = Результат.additionalProperties; + + Иначе + НастройкиВида = Неопределено; + КонецЕсли; + + + Если ТипОбъектаДокументооборота = "DMIncomingDocument" Тогда + + Если ОбщиеНастройки.documentTypeEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "documentType", "Вид документа", "DMIncomingDocumentType"); + КонецЕсли; + + ДобавитьСтрокуТаблицы(Реквизиты, "correspondent", "Отправитель", "DMCorrespondent"); + ДобавитьСтрокуТаблицы(Реквизиты, "externalNumber", "№ отправителя", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "externalDate", "Дата отправителя", "Дата"); + + Если ОбщиеНастройки.organizationEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "organization", "Организация", "DMOrganization"); + КонецЕсли; + + Если НастройкиВида = Неопределено Или НастройкиВида.sumEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "sum", "Сумма", "Число"); + ДобавитьСтрокуТаблицы(Реквизиты, "currency", "Валюта", "DMCurrency"); + КонецЕсли; + + ДобавитьСтрокуТаблицы(Реквизиты, "title", "Наименование", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "summary", "Содержание", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "regNumber", "Регистрационный номер", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "regDate", "Дата регистрации", "Дата"); + + ДобавитьСтрокуТаблицы(Реквизиты, "signer", "Подписал", "DMContactPerson"); + ДобавитьСтрокуТаблицы(Реквизиты, "addressee", "Адресат", "DMUser"); + ДобавитьСтрокуТаблицы(Реквизиты, "subdivision", "Подразделение", "DMSubdivision"); + + Если НастройкиВида = Неопределено Или НастройкиВида.performanceDateEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "performanceDate", "Срок исполнения", "Дата"); + КонецЕсли; + + Если ОбщиеНастройки.accessLevelEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "accessLevel", "Гриф доступа", "DMAccessLevel"); + КонецЕсли; + Если ОбщиеНастройки.activityMatterEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "activityMatter", "Вопрос деятельности", "DMActivityMatter"); + КонецЕсли; + ДобавитьСтрокуТаблицы(Реквизиты, "deliveryMethod", "Способ получения", "DMDeliveryMethod"); + + ДобавитьСтрокуТаблицы(Реквизиты, "comment", "Комментарий", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "responsible", "Ответсвенный", "DMUser"); + + + ИначеЕсли ТипОбъектаДокументооборота = "DMOutgoingDocument" Тогда + + Если ОбщиеНастройки.documentTypeEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "documentType", "Вид документа", "DMOutgoingDocumentType"); + КонецЕсли; + + ДобавитьСтрокуТаблицы(Реквизиты, "correspondent", "Получатель", "DMCorrespondent"); + + Если НастройкиВида = Неопределено Или НастройкиВида.externalNumberEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "externalNumber", "№ получателя", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "externalDate", "Дата получателя", "Дата"); + КонецЕсли; + + Если ОбщиеНастройки.OrganizationEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "organization", "Организация", "DMOrganization"); + КонецЕсли; + + Если НастройкиВида = Неопределено Или НастройкиВида.sumEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "sum", "Сумма", "Число"); + ДобавитьСтрокуТаблицы(Реквизиты, "currency", "Валюта", "DMCurrency"); + КонецЕсли; + + ДобавитьСтрокуТаблицы(Реквизиты, "title", "Заголовок", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "summary", "Содержание", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "regNumber", "Регистрационный номер", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "regDate", "Дата регистрации", "Дата"); + + ДобавитьСтрокуТаблицы(Реквизиты, "addressee", "Адресат", "DMContactPerson"); + ДобавитьСтрокуТаблицы(Реквизиты, "sent", "Отправлен", "Булево"); + ДобавитьСтрокуТаблицы(Реквизиты, "sendDate", "Дата отправки", "Дата"); + + ДобавитьСтрокуТаблицы(Реквизиты, "signer", "Подписал", "DMUser"); + ДобавитьСтрокуТаблицы(Реквизиты, "author", "Подготовил", "DMUser"); + ДобавитьСтрокуТаблицы(Реквизиты, "subdivision", "Подразделение", "DMSubdivision"); + + Если НастройкиВида = Неопределено Или НастройкиВида.performanceDateEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "performanceDate", "Срок исполнения", "Дата"); + КонецЕсли; + + Если ОбщиеНастройки.accessLevelEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "accessLevel", "Гриф доступа", "DMAccessLevel"); + КонецЕсли; + + Если ОбщиеНастройки.activityMatterEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "activityMatter", "Вопрос деятельности", "DMActivityMatter"); + КонецЕсли; + + ДобавитьСтрокуТаблицы(Реквизиты, "deliveryMethod", "Способ отправки", "DMDeliveryMethod"); + ДобавитьСтрокуТаблицы(Реквизиты, "comment", "Комментарий", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "responsible", "Ответственный", "DMUser"); + + + ИначеЕсли ТипОбъектаДокументооборота = "DMInternalDocument" Тогда + + Если ОбщиеНастройки.documentTypeEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "documentType", "Вид документа", "DMInternalDocumentType"); + КонецЕсли; + + ДобавитьСтрокуТаблицы(Реквизиты, "folder", "Папка", "DMInternalDocumentFolder"); + + Если ОбщиеНастройки.organizationEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "organization", "Организация", "DMOrganization"); + КонецЕсли; + + Если НастройкиВида = Неопределено Или НастройкиВида.sumEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "sum", "Сумма", "Число"); + ДобавитьСтрокуТаблицы(Реквизиты, "currency", "Валюта", "DMCurrency"); + КонецЕсли; + + ДобавитьСтрокуТаблицы(Реквизиты, "title", "Заголовок", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "summary", "Содержание", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "regNumber", "Регистрационный номер", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "regDate", "Дата регистрации", "Дата"); + + ДобавитьСтрокуТаблицы(Реквизиты, "signer", "Утвердил", "DMUser"); + ДобавитьСтрокуТаблицы(Реквизиты, "author", "Подготовил", "DMUser"); + ДобавитьСтрокуТаблицы(Реквизиты, "subdivision", "Подразделение", "DMSubdivision"); + + Если НастройкиВида = Неопределено Или НастройкиВида.correspondentEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "correspondent", "Корреспондент", "DMCorrespondent"); + ДобавитьСтрокуТаблицы(Реквизиты, "contactPerson", "Контактное лицо", "DMContactPerson"); + КонецЕсли; + + Если НастройкиВида = Неопределено Или НастройкиВида.durationEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "beginDate", "Дата начала действия", "Дата"); + ДобавитьСтрокуТаблицы(Реквизиты, "endDate", "Дата окончания действия", "Дата"); + ДобавитьСтрокуТаблицы(Реквизиты, "openEnded", "Бессрочный", "Булево"); + ДобавитьСтрокуТаблицы(Реквизиты, "prolongationProcedure", "Порядок продления", "DMProlongationProcedure"); + КонецЕсли; + + Если ОбщиеНастройки.accessLevelEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "accessLevel", "Гриф доступа", "DMAccessLevel"); + КонецЕсли; + + Если ОбщиеНастройки.activityMatterEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "activityMatter", "Вопрос деятельности", "DMActivityMatter"); + КонецЕсли; + + Если НастройкиВида = Неопределено Или НастройкиВида.performanceDateEnabled = Истина Тогда + ДобавитьСтрокуТаблицы(Реквизиты, "performanceDate", "Срок исполнения", "Дата"); + КонецЕсли; + + ДобавитьСтрокуТаблицы(Реквизиты, "comment", "Комментарий", "Строка"); + ДобавитьСтрокуТаблицы(Реквизиты, "responsible", "Ответственный", "DMUser"); + + КонецЕсли; + + Для Каждого ДопСвойство Из ДопРеквизиты Цикл + + Типы = Новый СписокЗначений; + Для Каждого ОписаниеТипа Из ДопСвойство.propertyValueTypes Цикл + + Если ОписаниеТипа.xdtoClassName = "integer" Тогда + ТипЗначения = "Число"; + ИначеЕсли ОписаниеТипа.xdtoClassName = "boolean" Тогда + ТипЗначения = "Булево"; + ИначеЕсли ОписаниеТипа.xdtoClassName = "string" Тогда + ТипЗначения = "Строка"; + ИначеЕсли ОписаниеТипа.xdtoClassName = "date" Тогда + ТипЗначения = "Дата"; + Иначе + ТипЗначения = ОписаниеТипа.xdtoClassName; + КонецЕсли; + + Типы.Добавить(ТипЗначения, ОписаниеТипа.presentation); + КонецЦикла; + + ДобавитьСтрокуТаблицы(Реквизиты, "", ДопСвойство.name, Типы, Истина, ДопСвойство.objectId.id, ДопСвойство.objectID.type); + + КонецЦикла; + + + Возврат Реквизиты; + +КонецФункции + +Процедура ДобавитьСтрокуТаблицы(Таблица, Имя, Представление, Тип, + ДопРеквизит = Ложь, ДопРеквизитID = "", ДопРеквизитТип = "") + + НоваяСтрока = Таблица.Добавить(); + НоваяСтрока.Имя = Имя; + НоваяСтрока.Представление = Представление; + + Если ТипЗнч(Тип) <> Тип("СписокЗначений") Тогда + Типы = Новый СписокЗначений; + Типы.Добавить(Тип); + НоваяСтрока.Тип = Типы; + Иначе + НоваяСтрока.Тип = Тип; + КонецЕсли; + + НоваяСтрока.ДопРеквизит = ДопРеквизит; + НоваяСтрока.ДопРеквизитID = ДопРеквизитID; + НоваяСтрока.ДопРеквизитТип = ДопРеквизитТип; + +КонецПроцедуры diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/ObjectModule.bsl b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/ObjectModule.bsl new file mode 100644 index 000000000..bea9230eb --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/ObjectModule.bsl @@ -0,0 +1,15 @@ + +Процедура ПередЗаписью(Отказ) + + Если ЗначениеЗаполнено(ТипОбъектаПотребителя) Тогда + + ОбъектПотребителя = Метаданные.НайтиПоПолномуИмени(ТипОбъектаПотребителя); + Если ОбъектПотребителя <> Неопределено Тогда + Наименование = ?(ОбъектПотребителя.Синоним = "", ОбъектПотребителя.Имя, ОбъектПотребителя.Синоним); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + + diff --git a/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/НастройкиЗаполненияОбъектов1СДокументооборота.mdo b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/НастройкиЗаполненияОбъектов1СДокументооборота.mdo new file mode 100644 index 000000000..ace9266cb --- /dev/null +++ b/SSL/src/Catalogs/НастройкиЗаполненияОбъектов1СДокументооборота/НастройкиЗаполненияОбъектов1СДокументооборота.mdo @@ -0,0 +1,414 @@ + + + + + + + + + + НастройкиЗаполненияОбъектов1СДокументооборота + + ru + Настройки заполнения объектов 1С:Документооборота + + true + Catalog.НастройкиЗаполненияОбъектов1СДокументооборота.StandardAttribute.Description + Catalog.НастройкиЗаполненияОбъектов1СДокументооборота.StandardAttribute.Code + DontUse + + Use + PredefinedDataName + + Use + + + + + Use + Predefined + + Use + + + + + Use + Ref + + Use + + + + + Use + DeletionMark + + Use + + + + + Use + IsFolder + + Use + + + + + Use + Owner + true + + ShowError + Use + + + + + Use + Parent + true + + Use + + + + + Use + Description + + Use + + + + + Use + Code + + Use + + + + Use + + + ru + + + Managed + Use + + ru + Настройка заполнения объекта 1С:Документооборота + + 2 + true + 9 + 150 + String + Variable + true + true + AsDescription + InDialog + BothWays + Catalog.НастройкиЗаполненияОбъектов1СДокументооборота.Form.ФормаЭлемента + Catalog.НастройкиЗаполненияОбъектов1СДокументооборота.Form.ФормаСписка + + ТипОбъектаПотребителя + + ru + Тип объекта-потребителя + + + String + + 100 + + + + + + Use + Use + + + ТипОбъектаДокументооборота + + ru + Тип объекта документооборота + + + String + + 100 + + + + + + Use + Use + + + Комментарий + + ru + Комментарий + + + String + + + + ru + Произвольная строка + + + + + Use + Use + + + + + + + ПравилаЗаполненияРеквизитов + + ru + Правила заполнения реквизитов + + + Use + LineNumber + + Use + + + + + ИмяРеквизитаОбъектаДокументооборота + + ru + Имя реквизита объекта документооборота + + + String + + 100 + + + + + Use + Use + + + ВариантПравилаЗаполненияРеквизитов + + ru + Вариант правила заполнения реквизитов + + + EnumRef.ВариантыПравилЗаполненияРеквизитов + + + + Use + Use + + + ИмяРеквизитаОбъектаПотребителя + + ru + Имя реквизита объекта потребителя + + + String + + 100 + + + + + Use + Use + + + ЗначениеРеквизитаДокументооборота + + ru + Значение реквизита документооборота + + + Boolean + String + Date + Number + + 15 + 3 + + + 500 + + + + + + Use + Use + + + ИдентификаторЗначенияРеквизита + + ru + Идентификатор значения реквизита + + + String + + 100 + + + + + Use + Use + + + ТипЗначенияРеквизита + + ru + Тип значения реквизита + + + String + + 100 + + + + + Use + Use + + + ВычисляемоеВыражение + + ru + Вычисляемое выражение + + + String + + + + + Use + Use + + + ДополнительныйРеквизит + + ru + Дополнительный реквизит + + + Boolean + + + + Use + Use + + + ДополнительныйРеквизитID + + ru + Дополнительный реквизит ID + + + String + + 100 + + + + + Use + Use + + + ДополнительныйРеквизитТип + + ru + Дополнительный реквизит тип + + + String + + 100 + + + + + Use + Use + + + + ВыборОбъектаМетаданных + + ru + Выбор объекта метаданных + + PersonalComputer + MobileDevice + + + ФормаЭлемента + + ru + Форма элемента + + PersonalComputer + MobileDevice + + + ФормаПравила + + ru + Форма правила + + + + ru + + + PersonalComputer + MobileDevice + + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + + ВыборРеквизита + + ru + Выбор реквизита + + PersonalComputer + MobileDevice + + diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаВыбораПользователяОС/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ФормаВыбораПользователяОС/Module.bsl index 3bdaf0dcf..3f53ae986 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаВыбораПользователяОС/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаВыбораПользователяОС/Module.bsl @@ -2,8 +2,6 @@ // МОДУЛЬ ФОРМЫ ВЫБОРА ПОЛЬЗОВАТЕЛЯ WINDOWS // //////////////////////////////////////////////////////////////////////////////// -// Процедура обработчик события "ПриОткрытии" формы -// &НаКлиенте Процедура ПриОткрытии(Отказ) @@ -17,8 +15,6 @@ КонецПроцедуры -// Процедура заполняет список доменов -// &НаКлиенте Процедура ЗаполнитьСписокДоменов () @@ -31,8 +27,6 @@ КонецПроцедуры -// Процедура обработчик события ПриАктивизации строки таблицы доменов -// &НаКлиенте Процедура ТаблицаДоменовПриАктивизацииСтроки(Элемент) @@ -51,9 +45,6 @@ КонецПроцедуры -// Процедура обработчик события ПриВыборе строки таблицы пользователей. -// Формирует строку для использования аутентификации пользователя Windows. -// &НаКлиенте Процедура ТаблицаПользователейДоменаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) @@ -61,10 +52,6 @@ КонецПроцедуры -// Обработчик события нажатия на кнопку "Выбрать пользователя Windows" формы. -// Проверяет, что пользователь выбран и если так, то закрывает форму со строкой -// window-аутентификации для выбранного пользователя. -// &НаКлиенте Процедура КомандаОкВыполнить() @@ -77,7 +64,7 @@ КонецПроцедуры -// Процедура компонует результат выбора в виде строки \\ДОМЕН\ИМЯ_ПОЛЬЗОВАТЕЛЯ_ДОМЕНА +// Компонует результат выбора в виде строки \\ДОМЕН\ИМЯ_ПОЛЬЗОВАТЕЛЯ_ДОМЕНА // и закрывает форму, возвращая это значение, в качестве результата работы формы. // &НаКлиенте diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form index ce4113198..0b832c9f4 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form @@ -1780,9 +1780,6 @@ true - - ПоказатьТолькоВыбранныеРоли -
ГруппаНовогоПользователя diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl index c1901e6cc..d00da2cf3 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl @@ -9,10 +9,12 @@ //** Установка начальных значений // перед загрузкой данных из настроек на сервере // для случая, когда данные ещё не были записаны и не загружаются - ПоказатьТолькоВыбранныеРоли = Истина; - ПоказатьПодсистемыРолей = Истина; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Истина; - Элементы.РолиПоказатьПодсистемыРолей.Пометка = Истина; + ПоказатьПодсистемыРолей = Истина; + Элементы.РолиПоказатьПодсистемыРолей.Пометка = Истина; + // Для нового элемента показать все роли, иначе только выбранные + ПоказатьТолькоВыбранныеРоли = ЗначениеЗаполнено(Объект.Ссылка); + Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = ЗначениеЗаполнено(Объект.Ссылка); + // ОбновитьДеревоРолей(); //** Заполнение постоянных данных @@ -258,14 +260,6 @@ &НаСервере Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) - Если Настройки["ПоказатьТолькоВыбранныеРоли"] = Ложь Тогда - ПоказатьТолькоВыбранныеРоли = Ложь; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Ложь; - Иначе - ПоказатьТолькоВыбранныеРоли = Истина; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Истина; - КонецЕсли; - Если Настройки["ПоказатьПодсистемыРолей"] = Ложь Тогда ПоказатьПодсистемыРолей = Ложь; Элементы.РолиПоказатьПодсистемыРолей.Пометка = Ложь; diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Form.form index 334940851..e733024eb 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Form.form @@ -2181,9 +2181,6 @@ true - - ПоказатьТолькоВыбранныеРоли - НадписьВидДоступа diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl index 64a5f4a0e..da9c37f29 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl @@ -9,10 +9,8 @@ //** Установка начальных значений // перед загрузкой данных из настроек на сервере // для случая, когда данные ещё не были записаны и не загружаются - ПоказатьТолькоВыбранныеРоли = Истина; - ПоказатьПодсистемыРолей = Истина; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Истина; - Элементы.РолиПоказатьПодсистемыРолей.Пометка = Истина; + ПоказатьПодсистемыРолей = Истина; + Элементы.РолиПоказатьПодсистемыРолей.Пометка = Истина; // Для нового объекта выполняем код инициализации формы в ПриСозданииНаСервере. // Для существующего - в ПриЧтенииНаСервере. Если Объект.Ссылка.Пустая() Тогда @@ -181,14 +179,6 @@ &НаСервере Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) - Если Настройки["ПоказатьТолькоВыбранныеРоли"] = Ложь Тогда - ПоказатьТолькоВыбранныеРоли = Ложь; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Ложь; - Иначе - ПоказатьТолькоВыбранныеРоли = Истина; - Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = Истина; - КонецЕсли; - Если Настройки["ПоказатьПодсистемыРолей"] = Ложь Тогда ПоказатьПодсистемыРолей = Ложь; Элементы.РолиПоказатьПодсистемыРолей.Пометка = Ложь; @@ -538,10 +528,14 @@ &НаСервере Процедура ИнициализацияФормы() + // Для нового элемента показать все роли, иначе только выбранные + ПоказатьТолькоВыбранныеРоли = ЗначениеЗаполнено(Объект.Ссылка); + Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = ЗначениеЗаполнено(Объект.Ссылка); + // СкрытьРольПолныеПрава = Объект.Ссылка <> Справочники.ПрофилиГруппДоступа.Администратор; ОбновитьДеревоРолей(); -КонецПроцедуры +КонецПроцедуры &НаСервере Процедура ЗаполнитьСвойстваВидовДоступаВФорме() diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Form.form index 1a94785a7..cac180d7c 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Form.form @@ -16,7 +16,7 @@ НаименованиеРасширеннаяПодсказка - 29 + 34 Label true true @@ -56,7 +56,7 @@ КодРасширеннаяПодсказка - 31 + 36 Label true true @@ -91,7 +91,7 @@ ГруппаШапкаРасширеннаяПодсказка - 28 + 33 Label true true @@ -112,6 +112,129 @@ ГруппаАдресации 23 + + ГруппаВнешняяРоль + 32 + + ВнешняяРоль + 28 + + <key>ru</key> + <value>Внешняя роль. Исполнители роли определены в информационной базе:</value> + + true + true + + true + + + Объект.ВнешняяРоль + + Right + + OnChange + ВнешняяРольПриИзменении + + + ВнешняяРольРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + + ВнешняяРольКонтекстноеМеню + 29 + true + + CheckBoxField + Enter + true + Left + true + + + + УзелОбмена + 30 + true + false + + true + + + Объект.УзелОбмена + + None + + УзелОбменаРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + УзелОбменаКонтекстноеМеню + 31 + true + + InputField + Enter + true + Left + true + + + StartChoice + УзелОбменаНачалоВыбора + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа внешняя роль</value> + + + ru + Группа внешняя роль + + + ГруппаВнешняяРольРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + ИспользуетсяБезКонтекстаДругихИзмеренийАдресации 5 @@ -130,7 +253,7 @@ ИспользуетсяБезКонтекстаДругихИзмеренийАдресацииРасширеннаяПодсказка - 34 + 44 Label true true @@ -172,7 +295,7 @@ ИспользуетсяВКонтекстеДругихИзмеренийАдресацииРасширеннаяПодсказка - 36 + 46 Label true true @@ -208,7 +331,7 @@ ТипыОсновногоОбъектаАдресацииРасширеннаяПодсказка - 39 + 49 Label true true @@ -249,7 +372,7 @@ ТипыДополнительногоОбъектаАдресацииРасширеннаяПодсказка - 41 + 51 Label true true @@ -284,7 +407,7 @@ ГруппаТипыОбъектовАдресацииРасширеннаяПодсказка - 38 + 48 Label true true @@ -313,7 +436,7 @@ ГруппаАдресацииРасширеннаяПодсказка - 33 + 38 Label true true @@ -348,7 +471,7 @@ КомментарийРасширеннаяПодсказка - 44 + 54 Label true true @@ -383,7 +506,7 @@ ГруппаКомментарийРасширеннаяПодсказка - 43 + 53 Label true true @@ -412,6 +535,10 @@ OnCreateAtServer ПриСозданииНаСервере + + FillCheckProcessingAtServer + ОбработкаПроверкиЗаполненияНаСервере + LockOwner true true diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl index f1324cb48..471dd23c7 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl @@ -4,10 +4,28 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + Элементы.ГруппаАдресации.Доступность = НЕ Объект.Предопределенный; Если НЕ Объект.Предопределенный Тогда Элементы.ГруппаТипыОбъектовАдресации.Доступность = Объект.ИспользуетсяСОбъектамиАдресации; КонецЕсли; + + ОбновитьДоступность(); + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) + + Если Объект.ВнешняяРоль И Не ЗначениеЗаполнено(Объект.УзелОбмена) Тогда + ОбщегоНазначенияКлиентСервер.СообщитьПользователю( + НСтр("ru = 'Укажите информационную базу, в которой определены исполнители данной роли.'"), + , + "УзелОбмена", + "Объект", + Отказ); + КонецЕсли; + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -18,3 +36,73 @@ Элементы.ГруппаТипыОбъектовАдресации.Доступность = Объект.ИспользуетсяСОбъектамиАдресации; КонецПроцедуры +&НаСервере +Процедура ОбновитьДоступность() + + Если БизнесПроцессыИЗадачиПереопределяемый.ИспользоватьВнешниеЗадачиИБизнесПроцессы() Тогда + + Если Объект.ВнешняяРоль Тогда + Элементы.ИспользуетсяБезКонтекстаДругихИзмеренийАдресации.Доступность = Ложь; + Элементы.ИспользуетсяВКонтекстеДругихИзмеренийАдресации.Доступность = Ложь; + Элементы.ТипыОсновногоОбъектаАдресации.Доступность = Ложь; + Элементы.ТипыДополнительногоОбъектаАдресации.Доступность = Ложь; + Элементы.УзелОбмена.Доступность = Истина; + Элементы.УзелОбмена.АвтоОтметкаНезаполненного = Истина; + Иначе + Элементы.ИспользуетсяБезКонтекстаДругихИзмеренийАдресации.Доступность = Истина; + Элементы.ИспользуетсяВКонтекстеДругихИзмеренийАдресации.Доступность = Истина; + Элементы.ТипыОсновногоОбъектаАдресации.Доступность = Истина; + Элементы.ТипыДополнительногоОбъектаАдресации.Доступность = Истина; + Элементы.УзелОбмена.Доступность = Ложь; + Элементы.УзелОбмена.АвтоОтметкаНезаполненного = Ложь; + КонецЕсли; + + Иначе + + Элементы.ИспользуетсяБезКонтекстаДругихИзмеренийАдресации.Доступность = Истина; + Элементы.ИспользуетсяВКонтекстеДругихИзмеренийАдресации.Доступность = Истина; + Элементы.ТипыОсновногоОбъектаАдресации.Доступность = Истина; + Элементы.ТипыДополнительногоОбъектаАдресации.Доступность = Истина; + Элементы.УзелОбмена.Видимость = Ложь; + Элементы.УзелОбмена.АвтоОтметкаНезаполненного = Ложь; + Элементы.ВнешняяРоль.Видимость = Ложь; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВнешняяРольПриИзменении(Элемент) + + ОбновитьДоступность(); + +КонецПроцедуры + + +&НаКлиенте +Процедура УзелОбменаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ПланыОбменаДляВыбора = Новый Массив; + ПланыОбменаДляВыбора.Добавить("ОбменВнешнимиЗаданиями"); + ПланыОбменаДляВыбора.Добавить("ОбменВнешнимиЗаданиямиС1СДокументооборот"); + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("РежимВыбора", Истина); + ПараметрыФормы.Вставить("ТекущаяСтрока", Объект.УзелОбмена); + ПараметрыФормы.Вставить("ВыбиратьВсеУзлы", Ложь); + ПараметрыФормы.Вставить("ПланыОбменаДляВыбора", ПланыОбменаДляВыбора); + ПараметрыФормы.Вставить("ЗакрыватьПриВыборе", Истина); + ПараметрыФормы.Вставить("МножественныйВыбор", Ложь); + + ВыбранноеЗначение = ОткрытьФормуМодально("ОбщаяФорма.ВыборУзловПлановОбмена", ПараметрыФормы, ЭтаФорма); + + Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда + + Объект.УзелОбмена = ВыбранноеЗначение; + + КонецЕсли; + +КонецПроцедуры + diff --git a/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl b/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl index de565b1ec..4a481140e 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl @@ -1,9 +1,11 @@ - +//////////////////////////////////////////////////////////////////////////////// +// Обработчики событий объекта Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Если НЕ ИспользуетсяСОбъектамиАдресации И НЕ ИспользуетсяБезОбъектовАдресации Тогда - ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru='Нужно указать допустимые способы назначения исполнителей на роль: совместно с объектами адресации, без них или обоими способами.'"), + ОбщегоНазначенияКлиентСервер.СообщитьПользователю( + НСтр("ru = 'Не указаны допустимые способы назначения исполнителей на роль: совместно с объектами адресации, без них или обоими способами.'"), ЭтотОбъект, "ИспользуетсяБезОбъектовАдресации",,Отказ); Возврат; КонецЕсли; @@ -14,13 +16,12 @@ ЗаданыТипыОсновногоОбъектаАдресации = ТипыОсновногоОбъектаАдресации <> Неопределено И НЕ ТипыОсновногоОбъектаАдресации.Пустая(); Если НЕ ЗаданыТипыОсновногоОбъектаАдресации Тогда - ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru='Не указаны типы основного объекта адресации.'"), + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Не указаны типы основного объекта адресации.'"), ЭтотОбъект, "ТипыОсновногоОбъектаАдресации",,Отказ); КонецЕсли; КонецПроцедуры - Процедура ПриЗаписи(Отказ) Если ОбменДанными.Загрузка Тогда diff --git a/SSL/src/Catalogs/РолиИсполнителей/РолиИсполнителей.mdo b/SSL/src/Catalogs/РолиИсполнителей/РолиИсполнителей.mdo index c73a2bf29..209fe639e 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/РолиИсполнителей.mdo +++ b/SSL/src/Catalogs/РолиИсполнителей/РолиИсполнителей.mdo @@ -182,26 +182,24 @@ Use Use - - ТипыОсновногоОбъектаАдресации + + Комментарий ru - Типы основного объекта адресации + Комментарий - ChartOfCharacteristicTypesRef.ОбъектыАдресацииЗадач + String + ru - Возможные типы основного объекта адресации для данной роли + Служебный комментарий к роли исполнителей задач + true - true - - ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач.ВсеОбъектыАдресации - - Index + Use Use @@ -228,24 +226,57 @@ Use Use - - Комментарий + + ТипыОсновногоОбъектаАдресации ru - Комментарий + Типы основного объекта адресации - String - + ChartOfCharacteristicTypesRef.ОбъектыАдресацииЗадач ru - Служебный комментарий к роли исполнителей задач + Возможные типы основного объекта адресации для данной роли - true - + true + + ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач.ВсеОбъектыАдресации + + Index + Use + Use + + + ВнешняяРоль + + ru + Внешняя роль + + + Boolean + + + + + Use + Use + + + УзелОбмена + + ru + Узел обмена + + + ExchangePlanRef.ОбменВнешнимиЗаданиями + ExchangePlanRef.ОбменВнешнимиЗаданиямиС1СДокументооборот + + + + Use Use diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form index 07ae1e3a3..1d1ff7ce1 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form @@ -518,7 +518,7 @@ - FilterCriterion.ФайлыВТоме.StandardCommand.OpenByValue + 0 true diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl index 85588b67f..f228103aa 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl @@ -45,7 +45,7 @@ Исключение Отказ = Истина; - ТекстОшибки = НСтр("ru = 'Путь к тому некорректен: '"); + ТекстОшибки = НСтр("ru = 'Путь к тому некорректен. Возможно учетная запись, от лица которой работает сервер 1С:Предприятия, не имеет прав доступа к каталогу тома: '"); Информация = ИнформацияОбОшибке(); Если Информация.Причина <> Неопределено Тогда ТекстОшибки = ТекстОшибки + Информация.Причина.Описание; diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ДополнительныеСвойстваУчетнойЗаписи/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ДополнительныеСвойстваУчетнойЗаписи/Module.bsl index b751b42cc..94e8ebbe3 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ДополнительныеСвойстваУчетнойЗаписи/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ДополнительныеСвойстваУчетнойЗаписи/Module.bsl @@ -6,8 +6,6 @@ // СЕКЦИЯ ОБРАБОТЧИКОВ СОБЫТИЙ ФОРМЫ И ЭЛЕМЕНТОВ ФОРМЫ // -// Обработчик события "при создании на сервере" формы -// &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) @@ -102,8 +100,6 @@ КонецПроцедуры -// Обработчик события "при изменении" элемента формы "ОставлятьКопииСообщенийНаСервере". -// &НаКлиенте Процедура ОставлятьКопииСообщенийНаСервереПриИзменении(Элемент) @@ -111,8 +107,6 @@ КонецПроцедуры -// Обработчик события "при изменении" элемента формы "УдалятьСообщенияССервера". -// &НаКлиенте Процедура УдалятьСообщенияССервераПриИзменении(Элемент) diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl index a60047149..e79d1ea2f 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl @@ -2,8 +2,6 @@ // СЕКЦИЯ ОБРАБОТЧИКОВ СОБЫТИЙ ФОРМЫ И ЭЛЕМЕНТОВ ФОРМЫ // -// Обработчик события "при создании на сервере" формы -// &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) @@ -24,8 +22,6 @@ КонецПроцедуры -// Обработчик события "перед записью на сервере" формы -// &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект) diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаСпискаПрисоединенныхФайлов/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаСпискаПрисоединенныхФайлов/Module.bsl index ea808a562..acc02041c 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаСпискаПрисоединенныхФайлов/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаСпискаПрисоединенныхФайлов/Module.bsl @@ -165,7 +165,8 @@ &НаКлиенте Процедура ЗакончитьРедактирование(Команда) - Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда + + Если Не ФайловыеКомандыДоступны() Тогда Возврат; КонецЕсли; @@ -182,7 +183,8 @@ &НаКлиенте Процедура Занять(Команда) - Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда + + Если Не ФайловыеКомандыДоступны() Тогда Возврат; КонецЕсли; @@ -194,7 +196,8 @@ &НаКлиенте Процедура Освободить(Команда) - Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда + + Если Не ФайловыеКомандыДоступны() Тогда Возврат; КонецЕсли; @@ -210,7 +213,8 @@ &НаКлиенте Процедура ОткрытьКаталогФайла(Команда) - Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда + + Если Не ФайловыеКомандыДоступны() Тогда Возврат; КонецЕсли; @@ -220,7 +224,8 @@ &НаКлиенте Процедура ОткрытьФайл(Команда) - Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда + + Если Не ФайловыеКомандыДоступны() Тогда Возврат; КонецЕсли; @@ -230,7 +235,8 @@ &НаКлиенте Процедура Редактировать(Команда) - Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда + + Если Не ФайловыеКомандыДоступны() Тогда Возврат; КонецЕсли; @@ -242,7 +248,8 @@ &НаКлиенте Процедура СохранитьИзменения(Команда) - Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда + + Если Не ФайловыеКомандыДоступны() Тогда Возврат; КонецЕсли; @@ -253,7 +260,8 @@ &НаКлиенте Процедура СохранитьКак(Команда) - Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда + + Если Не ФайловыеКомандыДоступны() Тогда Возврат; КонецЕсли; @@ -336,6 +344,22 @@ КонецЕсли; КонецПроцедуры +// Доступны файловые команды - есть хотя бы одна строка в списке и выделена не группировка +&НаКлиенте +Функция ФайловыеКомандыДоступны() + + Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + Если ТипЗнч(Элементы.Список.ТекущаяСтрока) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда + Возврат Ложь; + КонецЕсли; + + Возврат Истина; + +КонецФункции + &НаКлиенте Процедура ИмпортФайлов(Команда) @@ -355,6 +379,11 @@ &НаКлиенте Процедура Подписать(Команда) + + Если Не ФайловыеКомандыДоступны() Тогда + Возврат; + КонецЕсли; + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаИРабочийКаталог(Элементы.Список.ТекущаяСтрока); ДанныеПодписи = Неопределено; @@ -372,6 +401,10 @@ &НаКлиенте Процедура Зашифровать(Команда) + Если Не ФайловыеКомандыДоступны() Тогда + Возврат; + КонецЕсли; + ФайлСсылка = Элементы.Список.ТекущаяСтрока; ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаИКоличествоВерсий(ФайлСсылка); @@ -403,6 +436,11 @@ &НаКлиенте Процедура Расшифровать(Команда) + + Если Не ФайловыеКомандыДоступны() Тогда + Возврат; + КонецЕсли; + ОбъектСсылка = Элементы.Список.ТекущаяСтрока; ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаИКоличествоВерсий(Элементы.Список.ТекущаяСтрока); @@ -432,6 +470,11 @@ &НаКлиенте Процедура ДобавитьЭЦПИзФайла(Команда) + + Если Не ФайловыеКомандыДоступны() Тогда + Возврат; + КонецЕсли; + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаИРабочийКаталог(Элементы.Список.ТекущаяСтрока); КомандыРаботыСФайламиКлиент.ДобавитьЭЦПИзФайла(ДанныеФайла); УстановитьДоступностьФайловыхКомманд(); @@ -439,6 +482,11 @@ &НаКлиенте Процедура СохранитьВместеСЭЦП(Команда) + + Если Не ФайловыеКомандыДоступны() Тогда + Возврат; + КонецЕсли; + ДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДанныеФайлаДляСохранения(Элементы.Список.ТекущаяСтрока); КомандыРаботыСФайламиКлиент.СохранитьВместеСЭЦП(ДанныеФайла, УникальныйИдентификатор); УстановитьДоступностьФайловыхКомманд(); diff --git a/SSL/src/Catalogs/Файлы/Файлы.mdo b/SSL/src/Catalogs/Файлы/Файлы.mdo index 0e5f2cad0..24b3e0980 100644 --- a/SSL/src/Catalogs/Файлы/Файлы.mdo +++ b/SSL/src/Catalogs/Файлы/Файлы.mdo @@ -168,6 +168,7 @@
Владелец файла + BusinessProcessRef.Задание CatalogRef.ПапкиФайлов diff --git a/SSL/src/Catalogs/ФизическиеЛица/Forms/ФормаГруппы/Form.form b/SSL/src/Catalogs/ФизическиеЛица/Forms/ФормаГруппы/Form.form new file mode 100644 index 000000000..dd84332d7 --- /dev/null +++ b/SSL/src/Catalogs/ФизическиеЛица/Forms/ФормаГруппы/Form.form @@ -0,0 +1,128 @@ + + + + Наименование + 1 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + Объект.Description + + + НаименованиеРасширеннаяПодсказка + 5 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + Родитель + 3 + true + true + + true + + + Объект.Parent + + + РодительРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + + РодительКонтекстноеМеню + 4 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ФормаКоманднаяПанель + -1 + Left + true + + LockOwner + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Объект + 1 + + CatalogObject.ФизическиеЛица + + + true + + + true + +
true
+ true +
+ + + + + + Folders + +
diff --git a/SSL/src/Catalogs/ФизическиеЛица/ФизическиеЛица.mdo b/SSL/src/Catalogs/ФизическиеЛица/ФизическиеЛица.mdo index e00bc6cc8..974ee3900 100644 --- a/SSL/src/Catalogs/ФизическиеЛица/ФизическиеЛица.mdo +++ b/SSL/src/Catalogs/ФизическиеЛица/ФизическиеЛица.mdo @@ -122,6 +122,7 @@ ru Физическое лицо + true 2 true 50 @@ -129,6 +130,7 @@ AsDescription BothWays BothWays + Catalog.ФизическиеЛица.Form.ФормаГруппы ДатаРождения @@ -174,4 +176,13 @@ Use Use + + ФормаГруппы + + ru + Форма группы + + PersonalComputer + MobileDevice + diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl index 0cd002644..fca50db19 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl @@ -1,32 +1,30 @@ +//////////////////////////////////////////////////////////////////////////////// +// Обработчики событий объекта Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) - Если ЭтоГруппа Тогда Возврат; КонецЕсли; - Если ТребуетсяКомментарий Тогда - - ПроверяемыеРеквизиты.Добавить("ПояснениеКомментария"); + МассивНепроверяемыхРеквизитов = Новый Массив(); + Если Не ТребуетсяКомментарий Тогда + МассивНепроверяемыхРеквизитов.Добавить("ПояснениеКомментария"); КонецЕсли; - Если (ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Строка) - ИЛИ ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Число Тогда - - ПроверяемыеРеквизиты.Добавить("Длина"); - - ИначеЕсли ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ЗначениеИнформационнойБазы Тогда - - ПроверяемыеРеквизиты.Добавить("ТипЗначения"); - - - ИначеЕсли ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ВидКонтактнойИнформации Тогда - - ПроверяемыеРеквизиты.Добавить("ВидКонтактнойИнформации"); - + Если (ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.Строка) + И (ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.Число) Тогда + МассивНепроверяемыхРеквизитов.Добавить("Длина"); КонецЕсли; + Если ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.ЗначениеИнформационнойБазы Тогда + МассивНепроверяемыхРеквизитов.Добавить("ТипЗначения"); + КонецЕсли; + Если ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.ВидКонтактнойИнформации Тогда + МассивНепроверяемыхРеквизитов.Добавить("ВидКонтактнойИнформации"); + КонецЕсли; + + ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов); КонецПроцедуры @@ -43,6 +41,9 @@ КонецПроцедуры +//////////////////////////////////////////////////////////////////////////////// +// Вспомогательные процедуры и функции + // Процедура очищает значения ненужных реквизитов, // Такая ситуация возникает, когда пользователь изменяет тип ответа при редактировании. Процедура ОчиститьНенужныеРеквизиты() diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ВопросыДляАнкетирования.mdo b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ВопросыДляАнкетирования.mdo index 15972890e..75133bfb1 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ВопросыДляАнкетирования.mdo +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ВопросыДляАнкетирования.mdo @@ -29,6 +29,7 @@ Use ValueType + ShowError Use @@ -223,6 +224,7 @@
+ ShowError Use Use @@ -265,6 +267,7 @@ + ShowError 0 @@ -334,6 +337,7 @@ + ShowError Catalog.ВидыКонтактнойИнформации.EmptyRef diff --git a/SSL/src/CommandGroups/Документооборот/Документооборот.mdo b/SSL/src/CommandGroups/Документооборот/Документооборот.mdo new file mode 100644 index 000000000..5e112c0a1 --- /dev/null +++ b/SSL/src/CommandGroups/Документооборот/Документооборот.mdo @@ -0,0 +1,10 @@ + + + Документооборот + + ru + Документооборот + + Auto + FormNavigationPanel + diff --git a/SSL/src/CommonCommands/ДокументооборотДокументы/CommandModule.bsl b/SSL/src/CommonCommands/ДокументооборотДокументы/CommandModule.bsl new file mode 100644 index 000000000..31d42ef68 --- /dev/null +++ b/SSL/src/CommonCommands/ДокументооборотДокументы/CommandModule.bsl @@ -0,0 +1,13 @@ + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + + ПараметрыФормы = Новый Структура("ВнешнийОбъект", ПараметрКоманды); + ОткрытьФорму( + "ОбщаяФорма.ДокументооборотДокументы", + ПараметрыФормы, + ПараметрыВыполненияКоманды.Источник, + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно); + +КонецПроцедуры diff --git a/SSL/src/CommonCommands/ДокументооборотДокументы/ДокументооборотДокументы.mdo b/SSL/src/CommonCommands/ДокументооборотДокументы/ДокументооборотДокументы.mdo new file mode 100644 index 000000000..f81a9fc3a --- /dev/null +++ b/SSL/src/CommonCommands/ДокументооборотДокументы/ДокументооборотДокументы.mdo @@ -0,0 +1,10 @@ + + + ДокументооборотДокументы + + ru + Документооборот: Документы + + CommandGroup.Документооборот + Auto + diff --git a/SSL/src/CommonCommands/ДокументооборотЗадачи/CommandModule.bsl b/SSL/src/CommonCommands/ДокументооборотЗадачи/CommandModule.bsl new file mode 100644 index 000000000..9b4177f6d --- /dev/null +++ b/SSL/src/CommonCommands/ДокументооборотЗадачи/CommandModule.bsl @@ -0,0 +1,18 @@ + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + + Если ПараметрКоманды = Неопределено + ИЛИ ПараметрКоманды.Пустая() Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура; + IDПредметаЗадач = Новый Массив; + IDПредметаЗадач.Добавить(Строка(ПараметрКоманды.УникальныйИдентификатор())); + ПараметрыФормы.Вставить("IDПредметаЗадач", IDПредметаЗадач); + ПараметрыФормы.Вставить("НаименованиеПредметаЗадач", Строка(ПараметрКоманды)); + ПараметрыФормы.Вставить("СсылкаНаВнешнийОбъект", ПараметрКоманды); + ОткрытьФорму("ОбщаяФорма.ДокументооборотЗадачи", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно); + +КонецПроцедуры diff --git a/SSL/src/CommonCommands/ДокументооборотЗадачи/ДокументооборотЗадачи.mdo b/SSL/src/CommonCommands/ДокументооборотЗадачи/ДокументооборотЗадачи.mdo new file mode 100644 index 000000000..c52093066 --- /dev/null +++ b/SSL/src/CommonCommands/ДокументооборотЗадачи/ДокументооборотЗадачи.mdo @@ -0,0 +1,10 @@ + + + ДокументооборотЗадачи + + ru + Документооборот: Задачи + + CommandGroup.Документооборот + Auto + diff --git a/SSL/src/CommonCommands/ДокументооборотСоздатьБизнесПроцесс/CommandModule.bsl b/SSL/src/CommonCommands/ДокументооборотСоздатьБизнесПроцесс/CommandModule.bsl new file mode 100644 index 000000000..eeaeba1ab --- /dev/null +++ b/SSL/src/CommonCommands/ДокументооборотСоздатьБизнесПроцесс/CommandModule.bsl @@ -0,0 +1,7 @@ + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + + РаботаС1СДокументооборотКлиент.СоздатьБизнесПроцесс(ПараметрКоманды); + +КонецПроцедуры diff --git a/SSL/src/CommonCommands/ДокументооборотСоздатьБизнесПроцесс/ДокументооборотСоздатьБизнесПроцесс.mdo b/SSL/src/CommonCommands/ДокументооборотСоздатьБизнесПроцесс/ДокументооборотСоздатьБизнесПроцесс.mdo new file mode 100644 index 000000000..a039d63a5 --- /dev/null +++ b/SSL/src/CommonCommands/ДокументооборотСоздатьБизнесПроцесс/ДокументооборотСоздатьБизнесПроцесс.mdo @@ -0,0 +1,13 @@ + + + ДокументооборотСоздатьБизнесПроцесс + + ru + Бизнес-процесс документооборота... + + FormCommandBarCreateBasedOn + PictureAndText + + StdPicture.BusinessProcess + + diff --git a/SSL/src/CommonCommands/ДокументооборотФайлы/CommandModule.bsl b/SSL/src/CommonCommands/ДокументооборотФайлы/CommandModule.bsl new file mode 100644 index 000000000..8a23c9366 --- /dev/null +++ b/SSL/src/CommonCommands/ДокументооборотФайлы/CommandModule.bsl @@ -0,0 +1,13 @@ + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + + ПараметрыФормы = Новый Структура("ОбъектСсылка", ПараметрКоманды); + ОткрытьФорму( + "ОбщаяФорма.ДокументооборотФайлы", + ПараметрыФормы, + ПараметрыВыполненияКоманды.Источник, + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно); + +КонецПроцедуры diff --git a/SSL/src/CommonCommands/ДокументооборотФайлы/ДокументооборотФайлы.mdo b/SSL/src/CommonCommands/ДокументооборотФайлы/ДокументооборотФайлы.mdo new file mode 100644 index 000000000..ec7f9b97a --- /dev/null +++ b/SSL/src/CommonCommands/ДокументооборотФайлы/ДокументооборотФайлы.mdo @@ -0,0 +1,10 @@ + + + ДокументооборотФайлы + + ru + Документооборот: Файлы + + CommandGroup.Документооборот + Auto + diff --git a/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/Form.form b/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/Form.form new file mode 100644 index 000000000..a7bfb0f8c --- /dev/null +++ b/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/Form.form @@ -0,0 +1,223 @@ + + + + Пользователь + 1 + true + true + + true + + + Пользователь + + + ПользовательРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + ПользовательКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Пароль + 3 + true + true + + true + + + Пароль + + + ПарольРасширеннаяПодсказка + 11 + Label + true + true + + Left + + + + ПарольКонтекстноеМеню + 4 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаОК + 6 + true + true + + true + + + ФормаОКРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + Form.Command.ОК + Auto + true + true + true + UserCmds + Auto + + + ФормаОтмена + 5 + true + true + + true + + + ФормаОтменаРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + Form.StandardCommand.Cancel + Normal + Auto + true + true + UserCmds + Auto + + Right + + + OnCreateAtServer + ПриСозданииНаСервере + + 40 + DontBlock + true + true + true + Vertical + true + true + UseIfNecessary + auto + true + + Пользователь + + <key>ru</key> + <value>Пользователь</value> + + 1 + + String + + + + true + + + true + + ShowError + + + Пароль + + <key>ru</key> + <value>Пароль</value> + + 2 + + String + + + + true + + + true + + + + ОК + + <key>ru</key> + <value>ОК</value> + + 1 + + ru + ОК + + + true + + + + ОК + + + Auto + Auto + + + + + + diff --git a/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/Help/ru.html b/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/Help/ru.html new file mode 100644 index 000000000..8c1b1d996 --- /dev/null +++ b/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/Help/ru.html @@ -0,0 +1 @@ +В этом диалоге настраивается авторизация в 1С:Документооборот - имя пользователя и пароль. \ No newline at end of file diff --git a/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/Module.bsl b/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/Module.bsl new file mode 100644 index 000000000..c35e82350 --- /dev/null +++ b/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/Module.bsl @@ -0,0 +1,42 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Пользователь = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ИнтеграцияС1СДокументооборот", "Пользователь"); + Пароль = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ИнтеграцияС1СДокументооборот", "Пароль"); + +КонецПроцедуры + +&НаКлиенте +Процедура ОК(Команда) + + ОчиститьСообщения(); + Если НЕ ПроверитьЗаполнение() Тогда + Возврат; + КонецЕсли; + + ВозвратПароль = Пароль; + + Если ПустаяСтрока(Пароль) И НЕ ПустаяСтрока(Элементы.Пароль.ТекстРедактирования) Тогда + ВозвратПароль = Элементы.Пароль.ТекстРедактирования; + КонецЕсли; + + МассивСтруктур = Новый Массив; + + Элемент = Новый Структура; + Элемент.Вставить("Объект", "ИнтеграцияС1СДокументооборот"); + Элемент.Вставить("Настройка", "Пользователь"); + Элемент.Вставить("Значение", Пользователь); + МассивСтруктур.Добавить(Элемент); + + Элемент = Новый Структура; + Элемент.Вставить("Объект", "ИнтеграцияС1СДокументооборот"); + Элемент.Вставить("Настройка", "Пароль"); + Элемент.Вставить("Значение", ВозвратПароль); + МассивСтруктур.Добавить(Элемент); + + ОбщегоНазначения.ХранилищеОбщихНастроекСохранитьМассив(МассивСтруктур); + Закрыть(); + +КонецПроцедуры + diff --git a/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/АвторизацияВ1СДокументооборот.mdo b/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/АвторизацияВ1СДокументооборот.mdo new file mode 100644 index 000000000..51822ba93 --- /dev/null +++ b/SSL/src/CommonForms/АвторизацияВ1СДокументооборот/АвторизацияВ1СДокументооборот.mdo @@ -0,0 +1,15 @@ + + + АвторизацияВ1СДокументооборот + + ru + Авторизация в 1С:Документооборот + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/АдреснаяКнига/Module.bsl b/SSL/src/CommonForms/АдреснаяКнига/Module.bsl index 58db8425c..273591816 100644 --- a/SSL/src/CommonForms/АдреснаяКнига/Module.bsl +++ b/SSL/src/CommonForms/АдреснаяКнига/Module.bsl @@ -299,7 +299,6 @@ КонецПроцедуры -//Универсальный обработчик выбора из динамических списков различных типов справочников - контактов. &НаКлиенте Процедура СписокСправочникаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) diff --git a/SSL/src/CommonForms/ВыборКонтакта/Module.bsl b/SSL/src/CommonForms/ВыборКонтакта/Module.bsl index 1770a1a81..6f3aa1820 100644 --- a/SSL/src/CommonForms/ВыборКонтакта/Module.bsl +++ b/SSL/src/CommonForms/ВыборКонтакта/Module.bsl @@ -110,7 +110,6 @@ КонецПроцедуры -//Универсальный обработчик выбора из динамического списка справочников-контактов. &НаКлиенте Процедура СписокСправочникаВыбор(Элемент,ВыбраннаяСтрока,Поле ,СтандартнаяОбработка) diff --git a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl index e1ebad417..11ff6b41c 100644 --- a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl +++ b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl @@ -26,8 +26,6 @@ // БЛОК ОБРАБОТЧИКОВ СОБЫТИЙ // /////////////////////////////////////////////////////////////////////////////// -// Процедура обработчик события ПриСозданииНаСервере формы -// &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) @@ -69,8 +67,6 @@ КонецЦикла; КонецПроцедуры -// Процедура обработчик события нажатия на кнопку формы "Выбрать" -// &НаКлиенте Процедура ВыбратьВыполнить() @@ -84,8 +80,6 @@ КонецПроцедуры -// Обработчик события нажатия на кнопку формы "Закрыть" -// &НаКлиенте Процедура ЗакрытьВыполнить() diff --git a/SSL/src/CommonForms/ВыборПодписей/Module.bsl b/SSL/src/CommonForms/ВыборПодписей/Module.bsl index 38c001634..886dd9586 100644 --- a/SSL/src/CommonForms/ВыборПодписей/Module.bsl +++ b/SSL/src/CommonForms/ВыборПодписей/Module.bsl @@ -6,8 +6,14 @@ Возврат; КонецЕсли; - Если Параметры.Объект.ПодписанЭЦП Тогда - ЗаполнитьСписокПодписейОдногоОбъекта(Параметры.Объект, Параметры.УникальныйИдентификатор); + Если Параметры.Свойство("Объект") Тогда + Если Параметры.Объект.ПодписанЭЦП Тогда + ЗаполнитьСписокПодписейОдногоОбъекта(Параметры.Объект, Параметры.УникальныйИдентификатор); + КонецЕсли; + КонецЕсли; + + Если Параметры.Свойство("Подписи") Тогда + ЗаполнитьСписокПодписейИзМассива(Параметры.Подписи, Параметры.УникальныйИдентификатор); КонецЕсли; КонецПроцедуры @@ -74,3 +80,22 @@ КонецПроцедуры +&НаСервере +Процедура ЗаполнитьСписокПодписейИзМассива(Подписи, УникальныйИдентификаторВызывающейФормы) + + Для Каждого Подпись Из Подписи Цикл + НоваяСтрока = ТаблицаПодписей.Добавить(); + + НоваяСтрока.КомуВыданСертификат = Подпись.КомуВыданСертификат; + НоваяСтрока.ДатаПодписи = Подпись.ДатаПодписи; + НоваяСтрока.Комментарий = Подпись.Комментарий; + НоваяСтрока.Отпечаток = Подпись.Отпечаток; + НоваяСтрока.УстановившийПодпись = Подпись.УстановившийПодпись; + НоваяСтрока.ИмяФайлаПодписи = Подпись.ИмяФайлаПодписи; + НоваяСтрока.Неверна = Ложь; + НоваяСтрока.ИндексКартинки = -1; + НоваяСтрока.Пометка = Истина; + НоваяСтрока.АдресПодписи = ПоместитьВоВременноеХранилище(Подпись.Подпись, УникальныйИдентификаторВызывающейФормы); + КонецЦикла; + +КонецПроцедуры diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/Form.form b/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/Form.form new file mode 100644 index 000000000..393e2ce79 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/Form.form @@ -0,0 +1,2542 @@ + + + + ГлавнаяЗадачаПредставление + 43 + + <key>ru</key> + <value>Главная задача</value> + + true + true + + true + + + ГлавнаяЗадача + + + ГлавнаяЗадачаПредставлениеРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + + ГлавнаяЗадачаПредставлениеКонтекстноеМеню + 44 + true + + InputField + true + Enter + true + Left + true + + + Opening + ГлавнаяЗадачаОткрытие + + true + true + true + true + true + true + Normal + + + + Наименование + 1 + true + true + + true + + + Наименование + + Top + + НаименованиеРасширеннаяПодсказка + 55 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Описание + 3 + + <key>ru</key> + <value>Описание поручения (общее)</value> + + true + true + + true + + + Описание + + Top + + ОписаниеРасширеннаяПодсказка + 57 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 4 + true + + InputField + Enter + true + Left + true + + true + 3 + true + true + true + true + true + true + Normal + + + + Предмет + 6 + + <key>ru</key> + <value>Предмет</value> + + true + true + + true + + + Предмет + + + ПредметРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + ПредметКонтекстноеМеню + 7 + true + + InputField + true + Enter + true + Left + true + + + Opening + ПредметОткрытие + + true + true + true + true + true + true + Normal + + + + ГруппаСрок + 8 + + СрокДата + 9 + + <key>ru</key> + <value>Срок (общий)</value> + + true + true + + true + + + Срок + + + OnChange + СрокДатаПриИзменении + + + СрокДатаРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + + СрокДатаКонтекстноеМеню + 10 + true + + InputField + Enter + true + Left + true + + 10 + true + true + false + true + + ru + ДЛФ=D + + true + true + true + Normal + + + + СрокВремя + 11 + true + true + + true + + + Срок + + None + + СрокВремяРасширеннаяПодсказка + 64 + Label + true + true + + Left + + + + СрокВремяКонтекстноеМеню + 12 + true + + InputField + Enter + true + Left + true + + 5 + true + true + false + true + false + false + + ru + ДФ=ЧЧ:мм + + true + true + true + Normal + + + + Важность + 13 + true + true + + true + + + Важность + + + ВажностьРасширеннаяПодсказка + 66 + Label + true + true + + Left + + + + ВажностьКонтекстноеМеню + 14 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВажностьАвтоПодбор + + + StartChoice + ВажностьНачалоВыбора + + + TextEditEnd + ВажностьОкончаниеВводаТекста + + + ChoiceProcessing + ВажностьОбработкаВыбора + + true + true + false + true + false + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа срок</value> + + + ru + Группа срок + + + ГруппаСрокРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ГруппаОтступ + 15 + + Исполнители + 16 + true + true + + true + + + Исполнители + + None + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + ГруппаИсполнитель + 48 + + ИсполнителиОтветственный + 46 + true + true + + true + + + Исполнители.Ответственный + + None + + ИсполнителиОтветственныйРасширеннаяПодсказка + 81 + Label + true + true + + Left + + + + ИсполнителиОтветственныйКонтекстноеМеню + 47 + true + + PictureField + Auto + true + Left + true + + true + true + true + true + + StdPicture.User + + + + 1 + + + + + ИсполнителиИсполнитель + 19 + + <key>ru</key> + <value>Исполнитель</value> + + true + true + + true + + + Исполнители.Исполнитель + + + ИсполнителиИсполнительРасширеннаяПодсказка + 83 + Label + true + true + + Left + + + + ИсполнителиИсполнительКонтекстноеМеню + 20 + true + + InputField + Auto + true + Left + true + + + AutoComplete + УчастникБизнесПроцессаАвтоПодбор + + + StartChoice + ИсполнителиИсполнительНачалоВыбора + + + TextEditEnd + УчастникБизнесПроцессаОкончаниеВводаТекста + + + ChoiceProcessing + УчастникБизнесПроцессаОбработкаВыбора + + true + true + true + true + false + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа исполнитель</value> + + + ru + Группа исполнитель + + + ГруппаИсполнительРасширеннаяПодсказка + 80 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + ИсполнителиСрок + 21 + + <key>ru</key> + <value>Срок (особый)</value> + + true + true + + true + + + Исполнители.Срок + + + ИсполнителиСрокРасширеннаяПодсказка + 85 + Label + true + true + + Left + + + + ИсполнителиСрокКонтекстноеМеню + 22 + true + + InputField + Auto + true + Left + true + + true + true + true + + ru + ДЛФ=D + + + ru + ДЛФ=D + + true + true + true + Normal + + + + ИсполнителиВремя + 23 + + <key>ru</key> + <value>Время (особое)</value> + + true + true + + true + + + Исполнители.Срок + + + ИсполнителиВремяРасширеннаяПодсказка + 87 + Label + true + true + + Left + + + + ИсполнителиВремяКонтекстноеМеню + 24 + true + + InputField + Auto + true + Left + true + + true + true + true + + ru + ДФ=ЧЧ:мм + + + ru + ДФ=ЧЧ:мм + + true + true + true + Normal + + + + ИсполнителиОписаниеПоручения + 25 + + <key>ru</key> + <value>Описание поручения (особое)</value> + + true + true + + true + + + Исполнители.ОписаниеПоручения + + + ИсполнителиОписаниеПорученияРасширеннаяПодсказка + 89 + Label + true + true + + Left + + + + ИсполнителиОписаниеПорученияКонтекстноеМеню + 26 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИсполнителиНаименованиеПоручения + 27 + + <key>ru</key> + <value>Наименование поручения (особое)</value> + + true + true + + true + + + Исполнители.НаименованиеПоручения + + + ИсполнителиНаименованиеПорученияРасширеннаяПодсказка + 91 + Label + true + true + + Left + + + + ИсполнителиНаименованиеПорученияКонтекстноеМеню + 28 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИсполнителиКоманднаяПанель + 18 + + ИсполнителиОтветственныйИсполнитель + 49 + true + true + + true + + + ИсполнителиОтветственныйИсполнительРасширеннаяПодсказка + 69 + Label + true + true + + Left + + + Form.Command.ОтветственныйИсполнитель + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + OnActivateRow + ИсполнителиПриАктивизацииСтроки + + + ИсполнителиСтрокаПоиска + 71 + + ИсполнителиСтрокаПоискаРасширеннаяПодсказка + 73 + Label + true + true + + Left + + + + ИсполнителиСтрокаПоискаКонтекстноеМеню + 72 + true + + Исполнители + + true + + + + ИсполнителиСостояниеПросмотра + 74 + + ИсполнителиСостояниеПросмотраРасширеннаяПодсказка + 76 + Label + true + true + + Left + + + + ИсполнителиСостояниеПросмотраКонтекстноеМеню + 75 + true + + ViewStatusAddition + Исполнители + + true + + + + ИсполнителиУправлениеПоиском + 77 + + ИсполнителиУправлениеПоискомРасширеннаяПодсказка + 79 + Label + true + true + + Left + + + + ИсполнителиУправлениеПоискомКонтекстноеМеню + 78 + true + + SearchControlAddition + Исполнители + + true + + + + ИсполнителиРасширеннаяПодсказка + 70 + Label + true + true + + Left + + + + ИсполнителиКонтекстноеМеню + 17 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ true + true + + true + + + <key>ru</key> + <value>Группа отступ</value> + + + ru + Группа отступ + + + ГруппаОтступРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + +
+ + ГруппаКонтроль + 35 + + Проверяющий + 29 + + <key>ru</key> + <value>Проверить</value> + + true + true + + true + + + Проверяющий + + + ПроверяющийРасширеннаяПодсказка + 102 + Label + true + true + + Left + + + + ПроверяющийКонтекстноеМеню + 30 + true + + InputField + Enter + true + Left + true + + + AutoComplete + УчастникБизнесПроцессаАвтоПодбор + + + StartChoice + ПроверяющийНачалоВыбора + + + TextEditEnd + УчастникБизнесПроцессаОкончаниеВводаТекста + + + ChoiceProcessing + ПроверяющийОбработкаВыбора + + true + true + true + true + true + true + true + true + Normal + + + + Контролер + 31 + + <key>ru</key> + <value>На контроле</value> + + true + true + + true + + + Контролер + + + КонтролерРасширеннаяПодсказка + 104 + Label + true + true + + Left + + + + КонтролерКонтекстноеМеню + 32 + true + + InputField + Enter + true + Left + true + + + AutoComplete + УчастникБизнесПроцессаАвтоПодбор + + + StartChoice + КонтролерНачалоВыбора + + + TextEditEnd + УчастникБизнесПроцессаОкончаниеВводаТекста + + + ChoiceProcessing + КонтролерОбработкаВыбора + + true + true + true + true + true + true + true + true + Normal + + + + Автор + 33 + true + true + + true + + + Автор + + + АвторРасширеннаяПодсказка + 106 + Label + true + true + + Left + + + + АвторКонтекстноеМеню + 34 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АвторАвтоПодбор + + + StartChoice + АвторНачалоВыбора + + + TextEditEnd + АвторОкончаниеВводаТекста + + + ChoiceProcessing + АвторОбработкаВыбора + + true + true + true + true + false + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа контроль</value> + + + ru + Группа контроль + + + ГруппаКонтрольРасширеннаяПодсказка + 101 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаИнфо + 36 + + ДатаНачала + 37 + + <key>ru</key> + <value>Начато</value> + + true + true + + true + + + ДатаНачала + + + ДатаНачалаРасширеннаяПодсказка + 109 + Label + true + true + + Left + + + + ДатаНачалаКонтекстноеМеню + 38 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ДатаЗавершения + 39 + + <key>ru</key> + <value>Завершено</value> + + true + true + + true + + + ДатаЗавершения + + + ДатаЗавершенияРасширеннаяПодсказка + 111 + Label + true + true + + Left + + + + ДатаЗавершенияКонтекстноеМеню + 40 + true + + LabelField + Enter + true + Left + true + + 16 + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа инфо</value> + + + ru + Группа инфо + + + ГруппаИнфоРасширеннаяПодсказка + 108 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаСтартоватьИЗакрыть + 41 + true + true + + true + + + ФормаСтартоватьИЗакрытьРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + Form.Command.СтартоватьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 42 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗаполнитьПоШаблону + 45 + true + true + + true + + + ФормаЗаполнитьПоШаблонуРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + Form.Command.ЗаполнитьПоШаблону + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 1 + + String + + + + true + + + true + + true + + + Описание + + <key>ru</key> + <value>Описание</value> + + 2 + + String + + + + true + + + true + + true + + + Предмет + + <key>ru</key> + <value>Предмет</value> + + 3 + + String + + + + true + + + true + + true + + + Срок + + <key>ru</key> + <value>Срок</value> + + 4 + + Date + + + + true + + + true + + true + + + Важность + + <key>ru</key> + <value>Важность</value> + + 5 + + String + + + + true + + + true + + true + + + Исполнители + + <key>ru</key> + <value>Исполнители</value> + + 6 + + ValueTable + + + true + + + true + + true + + Исполнитель + + <key>ru</key> + <value>Исполнитель</value> + + 1 + + String + + + + true + + + true + + + + Срок + + <key>ru</key> + <value>Срок</value> + + 2 + + Date + + Date + + + + true + + + true + + + + ОписаниеПоручения + + <key>ru</key> + <value>Описание поручения</value> + + 4 + + String + + + + true + + + true + + + + НаименованиеПоручения + + <key>ru</key> + <value>Наименование поручения</value> + + 5 + + String + + + + true + + + true + + + + ИсполнительID + + <key>ru</key> + <value>Исполнитель</value> + + 3 + + String + + + + true + + + true + + + + ИсполнительТип + + <key>ru</key> + <value>Исполнитель</value> + + 6 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресации + + <key>ru</key> + <value>Основной объект адресации</value> + + 7 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресации + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 8 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииID + + <key>ru</key> + <value>Основной объект адресации</value> + + 9 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииТип + + <key>ru</key> + <value>Основной объект адресации</value> + + 10 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииID + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 11 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииТип + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 12 + + String + + + + true + + + true + + + + Ответственный + + <key>ru</key> + <value>Ответственный</value> + + 13 + + Boolean + + + true + + + true + + + + + Проверяющий + + <key>ru</key> + <value>Проверяющий</value> + + 7 + + String + + + + true + + + true + + true + + + Контролер + + <key>ru</key> + <value>Контролер</value> + + 8 + + String + + + + true + + + true + + true + + + Автор + + <key>ru</key> + <value>Автор</value> + + 9 + + String + + + + true + + + true + + true + + + ДатаНачала + + <key>ru</key> + <value>Дата начала</value> + + 10 + + Date + + Date + + + + true + + + true + + true + + + ДатаЗавершения + + <key>ru</key> + <value>Дата завершения</value> + + 11 + + Date + + Date + + + + true + + + true + + true + + + АвторТип + + <key>ru</key> + <value>Автор тип</value> + + 12 + + String + + + + true + + + true + + + + АвторID + + <key>ru</key> + <value>Автор ID</value> + + 13 + + String + + + + true + + + true + + + + ВажностьID + + <key>ru</key> + <value>Важность</value> + + 14 + + String + + + + true + + + true + + + + ВажностьТип + + <key>ru</key> + <value>Важность</value> + + 15 + + String + + + + true + + + true + + + + КонтролерID + + <key>ru</key> + <value>Контролер</value> + + 16 + + String + + + + true + + + true + + + + КонтролерТип + + <key>ru</key> + <value>Контролер</value> + + 17 + + String + + + + true + + + true + + + + ПроверяющийID + + <key>ru</key> + <value>Проверяющий</value> + + 18 + + String + + + + true + + + true + + + + ПроверяющийТип + + <key>ru</key> + <value>Проверяющий</value> + + 19 + + String + + + + true + + + true + + + + ПредметID + + <key>ru</key> + <value>Предмет представление</value> + + 20 + + String + + + + true + + + true + + + + ПредметТип + + <key>ru</key> + <value>Предмет представление</value> + + 21 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииКонтролера + + <key>ru</key> + <value>Основной объект адресации контролера</value> + + 22 + + String + + + + true + + + true + + true + + + ОсновнойОбъектАдресацииКонтролераID + + <key>ru</key> + <value>Основной объект адресации контролера ID</value> + + 23 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииКонтролераТип + + <key>ru</key> + <value>Основной объект адресации контролера тип</value> + + 24 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииКонтролера + + <key>ru</key> + <value>Дополнительный объект адресации контролера</value> + + 25 + + String + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииКонтролераID + + <key>ru</key> + <value>Дополнительный объект адресации контролера ID</value> + + 26 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииКонтролераТип + + <key>ru</key> + <value>Дополнительный объект адресации контролера тип</value> + + 27 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииПроверяющего + + <key>ru</key> + <value>Основной объект адресации проверяющего</value> + + 28 + + String + + + + true + + + true + + true + + + ОсновнойОбъектАдресацииПроверяющегоID + + <key>ru</key> + <value>Основной объект адресации проверяющего ID</value> + + 29 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииПроверяющегоТип + + <key>ru</key> + <value>Основной объект адресации проверяющего тип</value> + + 30 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииПроверяющего + + <key>ru</key> + <value>Дополнительный объект адресации проверяющего</value> + + 31 + + String + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииПроверяющегоID + + <key>ru</key> + <value>Дополнительный объект адресации проверяющего ID</value> + + 32 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииПроверяющегоТип + + <key>ru</key> + <value>Дополнительный объект адресации проверяющего тип</value> + + 33 + + String + + + + true + + + true + + + + ОбъектID + + <key>ru</key> + <value>Объект ID</value> + + 34 + + String + + + + true + + + true + + + + Стартован + + <key>ru</key> + <value>Стартован</value> + + 35 + + Boolean + + + true + + + true + + + + Завершен + + <key>ru</key> + <value>Завершен</value> + + 36 + + Boolean + + + true + + + true + + + + ГлавнаяЗадача + + <key>ru</key> + <value>Главная задача</value> + + 37 + + String + + + + true + + + true + + true + + + ГлавнаяЗадачаТип + + <key>ru</key> + <value>Главная задача тип</value> + + 38 + + String + + + + true + + + true + + + + ГлавнаяЗадачаID + + <key>ru</key> + <value>Главная задача ID</value> + + 39 + + String + + + + true + + + true + + + + Состояние + + <key>ru</key> + <value>Состояние</value> + + 40 + + String + + + + true + + + true + + + + СостояниеID + + <key>ru</key> + <value>Состояние ID</value> + + 41 + + String + + + + true + + + true + + + + СостояниеТип + + <key>ru</key> + <value>Состояние тип</value> + + 42 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 43 + + String + + + + true + + + true + + + + СтартоватьИЗакрыть + + <key>ru</key> + <value>Стартовать и закрыть</value> + + 1 + + ru + Стартовать и закрыть + + + true + + + + СтартоватьИЗакрыть + + + Auto + Auto + + + Записать + + <key>ru</key> + <value>Записать</value> + + 2 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + Auto + Auto + + + ЗаполнитьПоШаблону + + <key>ru</key> + <value>Заполнить по шаблону</value> + + 5 + + ru + Заполнить по шаблону + + + true + + + CommonPicture.ЗаполнитьПоОснованию + + + + ЗаполнитьПоШаблону + + + Auto + Auto + + + ОтветственныйИсполнитель + + <key>ru</key> + <value>Ответственный исполнитель</value> + + 6 + + ru + Ответственный исполнитель + + + true + + + StdPicture.User + + + + ОтветственныйИсполнитель + + + TextPicture + Auto + Auto + + + ID + + String + + + + + Type + + String + + + + + TargetID + + String + + + + + TargetName + + String + + + + + + + +
diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/Help/ru.html b/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/Help/ru.html new file mode 100644 index 000000000..f1f4b0b95 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/Help/ru.html @@ -0,0 +1,7 @@ + +

Этот бизнес-процесс используется для автоматизации исполнения распоряжений руководителя одним или несколькими исполнителями с одновременным контролем.

+

Если указано несколько исполнителей, то одного из них можно указать ответственным исполнителем. При старте этого бизнес-процесса соответствующие задачи на исполнение автоматически получат все исполнители по списку. Из задачи ответственного исполнителя имеется возможность просмотреть задачи остальных исполнителей.

+

Пользователь, указанный в поле "Контролер", получит задачу Контролировать одновременно с исполнителями. В обязанности контролера обычно входит слежение за сроками исполнения.

+

Пользователь, указанный в поле "Проверяющий", получит задачу после того, как все исполнители выполнили свои задачи. В обязанности проверяющего входит проверка результата исполнения задач. Проверяющий может возвращать задачи исполнителей на доработку при помощи соответствующей команды в карточке своей задачи.

+

Этот бизнес-процесс можно создавать непосредственно из карточки, например, входящего документа, при помощи меню "Создать бизнес-процесс".

+

Если не был выполнен запуск бизнес-процесса, заполнение формы может быть выполнено на основании шаблона бизнес-процесса. Для этого необходимо выполнить команду "Заполнить по шаблону" на командной панели формы. Если для данного типа бизнес-процесса и вида предмета бизнес-процесса настроены шаблоны бизнес-процессов, то система предложит выбрать один из шаблонов для заполнения формы. Если был настроен только один шаблон, то заполнение формы произойдет автоматически.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/Module.bsl b/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/Module.bsl new file mode 100644 index 000000000..21aba58cb --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/Module.bsl @@ -0,0 +1,612 @@ + +/////////////////////////////////////////////////////////// +//// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + //Если открывается новая карточка бизнес-процесса + Если Параметры.Свойство("Предмет") И ЗначениеЗаполнено(Параметры.Предмет) Тогда + + ЗаполнитьКарточкуНовогоБизнесПроцесса("DMBusinessProcessPerformance", ЭтаФорма, Параметры.Предмет); + + //Если открывается карточка имеющегося бизнес-процесса + ИначеЕсли ЗначениеЗаполнено(Параметры.id) + И ЗначениеЗаполнено(Параметры.type) Тогда + ОбъектID = Параметры.id; + ДанныеБП = РаботаС1СДокументооборот.ПолучитьОбъект(Параметры.type, Параметры.id); + Объект = ДанныеБП.objects[0]; + ЗаполнитьФормуИзОбъектаXDTO(Объект); + КонецЕсли; + + ЭтаФорма.Заголовок = Наименование; + Если НЕ ЗначениеЗаполнено(ОбъектID) Тогда + ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + НСтр("ru = ' (Создание)'"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessImportance", "Важность", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнителиИсполнительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИсполнителяБизнесПроцесса",, ЭтаФорма); + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.Свойство("Исполнитель", Элемент.Родитель.Родитель.ТекущиеДанные.Исполнитель); + Результат.Свойство("ИсполнительID", Элемент.Родитель.Родитель.ТекущиеДанные.ИсполнительID); + Результат.Свойство("ИсполнительТип", Элемент.Родитель.Родитель.ТекущиеДанные.ИсполнительТип); + + Результат.Свойство("ОсновнойОбъектАдресации", Элемент.Родитель.Родитель.ТекущиеДанные.ОсновнойОбъектАдресации); + Результат.Свойство("ОсновнойОбъектАдресацииID", Элемент.Родитель.Родитель.ТекущиеДанные.ОсновнойОбъектАдресацииID); + Результат.Свойство("ОсновнойОбъектАдресацииТип", Элемент.Родитель.Родитель.ТекущиеДанные.ОсновнойОбъектАдресацииТип); + + Результат.Свойство("ДополнительныйОбъектАдресации", Элемент.Родитель.Родитель.ТекущиеДанные.ДополнительныйОбъектАдресации); + Результат.Свойство("ДополнительныйОбъектАдресацииID", Элемент.Родитель.Родитель.ТекущиеДанные.ДополнительныйОбъектАдресацииID); + Результат.Свойство("ДополнительныйОбъектАдресацииТип", Элемент.Родитель.Родитель.ТекущиеДанные.ДополнительныйОбъектАдресацииТип); + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверяющийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИсполнителяБизнесПроцесса",, ЭтаФорма); + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.Свойство("Исполнитель", Проверяющий); + Результат.Свойство("ИсполнительID", ПроверяющийID); + Результат.Свойство("ИсполнительТип", ПроверяющийТип); + + Результат.Свойство("ОсновнойОбъектАдресации", ОсновнойОбъектАдресацииПроверяющего); + Результат.Свойство("ОсновнойОбъектАдресацииID", ОсновнойОбъектАдресацииПроверяющегоID); + Результат.Свойство("ОсновнойОбъектАдресацииТип", ОсновнойОбъектАдресацииПроверяющегоТип); + + Результат.Свойство("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресацииПроверяющего); + Результат.Свойство("ДополнительныйОбъектАдресацииID", ДополнительныйОбъектАдресацииПроверяющегоID); + Результат.Свойство("ДополнительныйОбъектАдресацииТип",ДополнительныйОбъектАдресацииПроверяющегоТип); + +КонецПроцедуры + +&НаКлиенте +Процедура КонтролерНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИсполнителяБизнесПроцесса",, ЭтаФорма); + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.Свойство("Исполнитель", Контролер); + Результат.Свойство("ИсполнительID", КонтролерID); + Результат.Свойство("ИсполнительТип", КонтролерТип); + + Результат.Свойство("ОсновнойОбъектАдресации", ОсновнойОбъектАдресацииКонтролера); + Результат.Свойство("ОсновнойОбъектАдресацииID", ОсновнойОбъектАдресацииКонтролераID); + Результат.Свойство("ОсновнойОбъектАдресацииТип", ОсновнойОбъектАдресацииКонтролераТип); + + Результат.Свойство("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресацииКонтролера); + Результат.Свойство("ДополнительныйОбъектАдресацииID", ДополнительныйОбъектАдресацииКонтролераID); + Результат.Свойство("ДополнительныйОбъектАдресацииТип", ДополнительныйОбъектАдресацииКонтролераТип); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Автор", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Режим = РежимДиалогаВопрос.ДаНетОтмена; + Ответ = Вопрос(ТекстВопроса, Режим); + Если Ответ = КодВозвратаДиалога.Да Тогда + Отказ = НЕ ЗаписатьОбъектВыполнить(); + ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда + Отказ = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГлавнаяЗадачаОткрытие(Элемент, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ГлавнаяЗадача) Тогда + ПараметрыФормы = Новый Структура("id, type", ГлавнаяЗадачаID, ГлавнаяЗадачаТип); + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотКарточкаЗадачи", ПараметрыФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПредметОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ЗначениеЗаполнено(Предмет) Тогда + РаботаС1СДокументооборотКлиент.ОткрытьКарточкуПредметаБизнесПроцесса(ПредметТип, ПредметID, Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнителиПриАктивизацииСтроки(Элемент) + + Если Элементы.Исполнители.ТекущиеДанные <> Неопределено Тогда + Элементы.ИсполнителиОтветственныйИсполнитель.Пометка = Элементы.Исполнители.ТекущиеДанные.Ответственный; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + Если Элемент = Элементы.Проверяющий Тогда + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Проверяющий", "ОбъектАдресацииПроверяющего", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + ИначеЕсли Элемент = Элементы.Контролер Тогда + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Контролер", "ОбъектАдресацииКонтролера", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + Иначе + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВСписке(Элемент.Родитель.Родитель, ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + КонецЕсли; + СтандартнаяОбработка = Истина; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВСписке(Элемент.Родитель.Родитель, ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверяющийОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Проверяющий", "ОбъектАдресацииПроверяющего", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура КонтролерОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Контролер", "ОбъектАдресацииКонтролера", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СрокДатаПриИзменении(Элемент) + + Если Срок = НачалоДня(Срок) Тогда + Срок = КонецДня(Срок); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.Предмет Тогда + Предмет = Источник.Представление; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Обработка команд формы + +&НаКлиенте +Процедура Записать(Команда) + + РезультатЗаписи = ЗаписатьОбъектВыполнить(); + + Если РезультатЗаписи Тогда + ПараметрыОповещения = Новый Структура("id", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + ЭтаФорма.Заголовок = Наименование; + Состояние(НСтр("ru = 'Бизнес-процесс """ + Наименование + """ сохранен.'")); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтартоватьИЗакрыть(Команда) + + РезультатЗапуска = ПодготовитьКПередачеИСтартоватьБизнесПроцесс(); + Если РезультатЗапуска Тогда + ПараметрыОповещения = Новый Структура("id", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + + ТекстСостояния = НСтр("ru = 'Бизнес-процесс """ + Наименование + """ успешно запущен.'"); + Состояние(ТекстСостояния); + + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПоШаблону(Команда) + + РезультатВыбораШаблона = РаботаС1СДокументооборотКлиент.ВыбратьШаблонБизнесПроцесса(ЭтаФорма); + Если ТипЗнч(РезультатВыбораШаблона) = Тип("Структура") Тогда + ЗаполнитьКарточкуПоШаблону(РезультатВыбораШаблона); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйИсполнитель(Команда) + + Если Элементы.Исполнители.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Ответственный = Элементы.Исполнители.ТекущиеДанные.Ответственный; + Для каждого СтрокаТаблицы Из Исполнители Цикл + СтрокаТаблицы.Ответственный = Ложь; + КонецЦикла; + + Элементы.Исполнители.ТекущиеДанные.Ответственный = НЕ Ответственный; + Элементы.ИсполнителиОтветственныйИсполнитель.Пометка = Элементы.Исполнители.ТекущиеДанные.Ответственный; + +КонецПроцедуры + + +/////////////////////////////////////////////////////////// +//// Служебные процедуры и функции + +&НаСервере +Процедура ЗаполнитьКарточкуПоШаблону(ДанныеШаблона) + + РезультатЗаполнения = РаботаС1СДокументооборотВызовСервера.ЗаполнитьБизнесПроцессПоШаблону(ЭтаФорма, ДанныеШаблона); + ЗаполнитьФормуИзОбъектаXDTO(РезультатЗаполнения.object); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКарточкуНовогоБизнесПроцесса(ТипБизнесПроцесса, Форма, Предмет) + + НовыйОбъект = РаботаС1СДокументооборот.ПолучитьНовыйОбъект(ТипБизнесПроцесса, Предмет); + ЗаполнитьФормуИзОбъектаXDTO(НовыйОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьФормуИзОбъектаXDTO(Объект) + + РаботаС1СДокументооборот.УстановитьСтандартнуюШапкуБизнесПроцесса(Объект, Этаформа); + РаботаС1СДокументооборот.УстановитьКонтролераНаКарточке(Объект, Этаформа); + РаботаС1СДокументооборот.УстановитьПроверяющегоНаКарточке(Объект, Этаформа); + Исполнители.Очистить(); + Для Каждого Исполнитель Из Объект.performers Цикл + НоваяСтрока = Исполнители.Добавить(); + РаботаС1СДокументооборот.УстановитьИсполнителяВСпискеИсполнителейНаКарточке(Исполнитель, НоваяСтрока); + НоваяСтрока.Срок = Исполнитель.personalDueDate; + НоваяСтрока.ОписаниеПоручения = Исполнитель.personalDescription; + НоваяСтрока.НаименованиеПоручения = Исполнитель.personalTaskName; + НоваяСтрока.Ответственный = Исполнитель.responsible; + КонецЦикла; + + Элементы.Исполнители.ПодчиненныеЭлементы.ИсполнителиВремя.Видимость = Объект.dueTimeEnabled; + Элементы.ИсполнителиОтветственныйИсполнитель.Доступность = НЕ ЭтаФорма.ТолькоПросмотр; + +КонецПроцедуры + +&НаСервере +Процедура СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы(ИмяРеквизитаФормы, ОбъектXDTO, ИмяСвойстаОбъекта, ТипСвойстваОбъекта, Прокси) + + ОбъектXDTO[ИмяСвойстаОбъекта] = СоздатьОбъект(Прокси, ТипСвойстваОбъекта); + ОбъектXDTO[ИмяСвойстаОбъекта].name = ЭтаФорма[ИмяРеквизитаФормы]; + ОбъектXDTO[ИмяСвойстаОбъекта].objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ОбъектXDTO[ИмяСвойстаОбъекта].objectId.id = ЭтаФорма[ИмяРеквизитаФормы + "id"]; + ОбъектXDTO[ИмяСвойстаОбъекта].objectId.type = ЭтаФорма[ИмяРеквизитаФормы + "Тип"]; + +КонецПроцедуры + +&НаСервере +Функция СоздатьОбъект(Прокси, Тип) + + Возврат РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, Тип); + +КонецФункции + +&НаСервере +Процедура СоздатьУчастникаБизнесПроцесса(Прокси, Объект, Форма, ИмяРеквизита, ИмяРеквизитаАдресации) + + Если ЗначениеЗаполнено(Форма[ИмяРеквизита]) Тогда + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessTaskExecutor"); + Если Форма[ИмяРеквизита + "Тип"] = "DMUser" Тогда + Объект.user = СоздатьОбъект(Прокси, "DMUser"); + Объект.user.name = Форма[ИмяРеквизита]; + Объект.user.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.user.objectId.id = Форма[ИмяРеквизита + "id"]; + Объект.user.objectId.type = Форма[ИмяРеквизита + "Тип"]; + Иначе + Объект.role = СоздатьОбъект(Прокси, "DMBusinessProcessExecutorRole"); + Объект.role.name = Форма[ИмяРеквизита]; + Объект.role.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.role.objectId.id = Форма[ИмяРеквизита + "id"]; + Объект.role.objectId.type = Форма[ИмяРеквизита + "Тип"]; + + Если ЗначениеЗаполнено(Форма["Основной" + ИмяРеквизитаАдресации]) Тогда + Объект.mainAddressingObject = СоздатьОбъект(Прокси, "DMMainAddressingObject"); + Объект.mainAddressingObject.name = Форма["Основной" + ИмяРеквизитаАдресации]; + Объект.mainAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.mainAddressingObject.objectId.id = Форма["Основной" + ИмяРеквизитаАдресации + "id"]; + Объект.mainAddressingObject.objectId.type = Форма["Основной" + ИмяРеквизитаАдресации + "Тип"]; + КонецЕсли; + + Если ЗначениеЗаполнено(Форма["Дополнительный" + ИмяРеквизитаАдресации]) Тогда + Объект.secondaryAddressingObject = СоздатьОбъект(Прокси, "DMSecondaryAddressingObject"); + Объект.secondaryAddressingObject.name = Форма["Дополнительный" + ИмяРеквизитаАдресации]; + Объект.secondaryAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.secondaryAddressingObject.objectId.id = Форма["Дополнительный" + ИмяРеквизитаАдресации + "id"]; + Объект.secondaryAddressingObject.objectId.type = Форма["Дополнительный" + ИмяРеквизитаАдресации + "Тип"]; + КонецЕсли; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция ПодготовитьКПередачеИЗаписатьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + Если ЗначениеЗаполнено(ОбъектID) Тогда + РезультатЗаписи = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + Иначе + РезультатСоздания = РаботаС1СДокументооборот.СоздатьНовыйОбъект(Прокси, Объект); + КонецЕсли; + + Результат = ?(РезультатСоздания = Неопределено, РезультатЗаписи, РезультатСоздания); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат , "DMError") Тогда + ВызватьИсключение(РезультатСоздания.description); + Иначе + Если РезультатЗаписи <> Неопределено Тогда + ОбъектID = Результат.objects[0].objectId.id; + Иначе + ОбъектID = Результат.object.objectId.id; + КонецЕсли; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИСтартоватьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + РезультатЗапуска = РаботаС1СДокументооборот.ЗапуститьБизнесПроцесс(Прокси, Объект); + + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, РезультатЗапуска, "DMError") Тогда + ВызватьИсключение(РезультатЗапуска.description); + Иначе + ОбъектID = РезультатЗапуска.businessProcess.objectId.id; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьБизнесПроцесс(Прокси) + + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessPerformance"); + + Объект.name = Наименование; + Объект.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.objectId.id = ОбъектID; + Объект.objectId.type = "DMBusinessProcessPerformance"; + + //Общая шапка бизнес-процессов + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("Автор", Объект, "author", "DMUser", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("Важность", Объект, "importance", "DMBusinessProcessImportance", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("Предмет", Объект, "target", "DMObject", Прокси); + + Объект.beginDate = ДатаНачала; + Объект.started = Стартован; + Объект.completed = Завершен; + Объект.description = Описание; + Объект.dueDate = Срок; + + //специфика Исполнения + + //контролер + СоздатьУчастникаБизнесПроцесса(Прокси, Объект.controller, ЭтаФорма, "Контролер", "ОбъектАдресацииКонтролера"); + + //проверяющий + СоздатьУчастникаБизнесПроцесса(Прокси, Объект.verifier, ЭтаФорма, "Проверяющий", "ОбъектАдресацииПроверяющего"); + + //исполнители + Для Каждого Строка Из Исполнители Цикл + + Исполнитель = СоздатьОбъект(Прокси, "DMBusinessProcessPerformanceParticipant"); + + Если Строка.ИсполнительТип = "DMUser" Тогда + Исполнитель.user = СоздатьОбъект(Прокси, "DMUser"); + Исполнитель.user.name = Строка.Исполнитель; + Исполнитель.user.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.user.objectId.id = Строка.ИсполнительID; + Исполнитель.user.objectId.type = Строка.ИсполнительТип; + Иначе + Исполнитель.role = СоздатьОбъект(Прокси, "DMBusinessProcessExecutorRole"); + Исполнитель.role.name = Строка.Исполнитель; + Исполнитель.role.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.role.objectId.id = Строка.ИсполнительID; + Исполнитель.role.objectId.type = Строка.ИсполнительТип; + + Если ЗначениеЗаполнено(Строка.ОсновнойОбъектАдресации) Тогда + Исполнитель.mainAddressingObject = СоздатьОбъект(Прокси, "DMMainAddressingObject"); + Исполнитель.mainAddressingObject.name = Строка.ОсновнойОбъектАдресации; + Исполнитель.mainAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.mainAddressingObject.objectId.id = Строка.ОсновнойОбъектАдресацииID; + Исполнитель.mainAddressingObject.objectId.type = Строка.ОсновнойОбъектАдресацииТип; + КонецЕсли; + + Если ЗначениеЗаполнено(Строка.ДополнительныйОбъектАдресации) Тогда + Исполнитель.secondaryAddressingObject = СоздатьОбъект(Прокси, "DMSecondaryAddressingObject"); + Исполнитель.secondaryAddressingObject.name = Строка.ДополнительныйОбъектАдресации; + Исполнитель.secondaryAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.secondaryAddressingObject.objectId.id = Строка.ДополнительныйОбъектАдресацииID; + Исполнитель.secondaryAddressingObject.objectId.type = Строка.ДополнительныйОбъектАдресацииТип; + КонецЕсли; + КонецЕсли; + + Исполнитель.personalDueDate = Строка.Срок; + Исполнитель.personalDescription = Строка.ОписаниеПоручения; + Исполнитель.personalTaskName = Строка.НаименованиеПоручения; + Исполнитель.responsible = Строка.Ответственный; + Объект.performers.Добавить(Исполнитель); + + КонецЦикла; + + Возврат Объект; + +КонецФункции + +&НаКлиенте +Функция ЗаписатьОбъектВыполнить() + + ПодготовитьКПередачеИЗаписатьБизнесПроцесс(); + Модифицированность = Ложь; + Возврат Истина; + +КонецФункции + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/ДокументооборотБизнесПроцессИсполнение.mdo b/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/ДокументооборотБизнесПроцессИсполнение.mdo new file mode 100644 index 000000000..0c478babd --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессИсполнение/ДокументооборотБизнесПроцессИсполнение.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотБизнесПроцессИсполнение + + + ru + + + PersonalComputer + MobileDevice + + ru + Бизнес-процесс "Исполнение" + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/Form.form b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/Form.form new file mode 100644 index 000000000..c2aebec2e --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/Form.form @@ -0,0 +1,1537 @@ + + + + ГруппаШапка + 9 + + ГлавнаяЗадачаПредставление + 1 + + <key>ru</key> + <value>Главная задача</value> + + true + true + + true + + + ГлавнаяЗадача + + + ГлавнаяЗадачаПредставлениеРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + + ГлавнаяЗадачаПредставлениеКонтекстноеМеню + 2 + true + + InputField + true + Enter + true + Left + true + + + Opening + ГлавнаяЗадачаПредставлениеОткрытие + + true + true + true + true + true + true + true + Normal + + + + Наименование + 3 + true + true + + true + + + Наименование + + + НаименованиеРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 4 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ПредметПредставление + 5 + + <key>ru</key> + <value>Предмет</value> + + true + true + + true + + + Предмет + + + ПредметПредставлениеРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + ПредметПредставлениеКонтекстноеМеню + 6 + true + + InputField + true + Enter + true + Left + true + + + Opening + ПредметОткрытие + + true + true + true + true + true + true + Normal + + + + АвторПредставление + 7 + + <key>ru</key> + <value>Автор</value> + + true + true + + true + + + Автор + + + АвторПредставлениеРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + + АвторПредставлениеКонтекстноеМеню + 8 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АвторАвтоПодбор + + + StartChoice + АвторНачалоВыбора + + + TextEditEnd + АвторОкончаниеВводаТекста + + + ChoiceProcessing + АвторОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа шапка</value> + + + ru + Группа шапка + + + ГруппаШапкаРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаДействия + 10 + + ШаблонСогласованияПредставление + 11 + + <key>ru</key> + <value>Согласование</value> + + true + true + + true + + + ШаблонСогласования + + + ШаблонСогласованияПредставлениеРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + + ШаблонСогласованияПредставлениеКонтекстноеМеню + 12 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонСогласованияПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ШаблонУтвержденияПредставление + 13 + + <key>ru</key> + <value>Утверждение</value> + + true + true + + true + + + ШаблонУтверждения + + + ШаблонУтвержденияПредставлениеРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + ШаблонУтвержденияПредставлениеКонтекстноеМеню + 14 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонУтвержденияПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ШаблонРегистрацииПредставление + 15 + + <key>ru</key> + <value>Регистрация</value> + + true + true + + true + + + ШаблонРегистрации + + + ШаблонРегистрацииПредставлениеРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + ШаблонРегистрацииПредставлениеКонтекстноеМеню + 16 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонРегистрацииПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ШаблонРассмотренияПредставление + 17 + + <key>ru</key> + <value>Рассмотрение</value> + + true + true + + true + + + ШаблонРассмотрения + + + ШаблонРассмотренияПредставлениеРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + + ШаблонРассмотренияПредставлениеКонтекстноеМеню + 18 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонРассмотренияПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ШаблонИсполненияОзнакомленияПредставление + 19 + + <key>ru</key> + <value>Исполнение \ ознакомление</value> + + true + true + + true + + + ШаблонИсполненияОзнакомления + + + ШаблонИсполненияОзнакомленияПредставлениеРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + + ШаблонИсполненияОзнакомленияПредставлениеКонтекстноеМеню + 20 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонИсполненияОзнакомленияПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ШаблонПорученияПредставление + 21 + + <key>ru</key> + <value>Списание в дело</value> + + true + true + + true + + + ШаблонПоручения + + + ШаблонПорученияПредставлениеРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + + ШаблонПорученияПредставлениеКонтекстноеМеню + 22 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонПорученияПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Действия</value> + + + ru + Группа действия + + + ГруппаДействияРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + auto + Auto + Auto + + + + ГруппаИнфо + 23 + + ДатаНачала + 24 + + <key>ru</key> + <value>Начато</value> + + true + true + + true + + + ДатаНачала + + + ДатаНачалаРасширеннаяПодсказка + 57 + Label + true + true + + Left + + + + ДатаНачалаКонтекстноеМеню + 25 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ДатаЗавершения + 26 + + <key>ru</key> + <value>Завершено</value> + + true + true + + true + + + ДатаЗавершения + + + ДатаЗавершенияРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + ДатаЗавершенияКонтекстноеМеню + 27 + true + + LabelField + Enter + true + Left + true + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа инфо</value> + + + ru + Группа инфо + + + ГруппаИнфоРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаСтартоватьИЗакрыть + 28 + true + true + + true + + + ФормаСтартоватьИЗакрытьРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + Form.Command.СтартоватьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 29 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗаполнитьПоШаблону + 30 + true + true + + true + + + ФормаЗаполнитьПоШаблонуРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + Form.Command.ЗаполнитьПоШаблону + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + DontBlock + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Завершен + + <key>ru</key> + <value>Завершен</value> + + 1 + + Boolean + + + true + + + true + + + + АвторID + + <key>ru</key> + <value>Автор ID</value> + + 2 + + String + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 3 + + String + + + + true + + + true + + true + + + АвторТип + + <key>ru</key> + <value>Автор тип</value> + + 4 + + String + + + + true + + + true + + + + ГлавнаяЗадачаID + + <key>ru</key> + <value>Главная задача ID</value> + + 5 + + String + + + + true + + + true + + + + ГлавнаяЗадача + + <key>ru</key> + <value>Главная задача</value> + + 6 + + String + + + + true + + + true + + true + + + ГлавнаяЗадачаТип + + <key>ru</key> + <value>Главная задача тип</value> + + 7 + + String + + + + true + + + true + + + + ДатаЗавершения + + <key>ru</key> + <value>Дата завершения</value> + + 8 + + Date + + Date + + + + true + + + true + + true + + + ДатаНачала + + <key>ru</key> + <value>Дата начала</value> + + 9 + + Date + + Date + + + + true + + + true + + true + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 10 + + String + + + + true + + + true + + true + + + ОбъектID + + <key>ru</key> + <value>Объект ID</value> + + 11 + + String + + + + true + + + true + + + + ПредметID + + <key>ru</key> + <value>Предмет ID</value> + + 12 + + String + + + + true + + + true + + + + Предмет + + <key>ru</key> + <value>Предмет</value> + + 13 + + String + + + + true + + + true + + true + + + ПредметТип + + <key>ru</key> + <value>Предмет тип</value> + + 14 + + String + + + + true + + + true + + + + Стартован + + <key>ru</key> + <value>Стартован</value> + + 15 + + Boolean + + + true + + + true + + true + + + ШаблонРегистрацииID + + <key>ru</key> + <value>Шаблон регистрации ID</value> + + 16 + + String + + + + true + + + true + + + + ШаблонРегистрации + + <key>ru</key> + <value>Шаблон регистрации</value> + + 17 + + String + + + + true + + + true + + true + + + ШаблонРегистрацииТип + + <key>ru</key> + <value>Шаблон регистрации тип</value> + + 18 + + String + + + + true + + + true + + + + ШаблонСогласованияID + + <key>ru</key> + <value>Шаблон согласования ID</value> + + 19 + + String + + + + true + + + true + + + + ШаблонСогласования + + <key>ru</key> + <value>Шаблон согласования</value> + + 20 + + String + + + + true + + + true + + true + + + ШаблонСогласованияТип + + <key>ru</key> + <value>Шаблон согласования тип</value> + + 21 + + String + + + + true + + + true + + + + ШаблонУтвержденияID + + <key>ru</key> + <value>Шаблон утверждения ID</value> + + 22 + + String + + + + true + + + true + + + + ШаблонУтверждения + + <key>ru</key> + <value>Шаблон утверждения</value> + + 23 + + String + + + + true + + + true + + true + + + ШаблонУтвержденияТип + + <key>ru</key> + <value>Шаблон утверждения тип</value> + + 24 + + String + + + + true + + + true + + + + ШаблонИсполненияОзнакомленияID + + <key>ru</key> + <value>Шаблон исполнения ознакомления ID</value> + + 25 + + String + + + + true + + + true + + + + ШаблонИсполненияОзнакомления + + <key>ru</key> + <value>Шаблон исполнения ознакомления</value> + + 26 + + String + + + + true + + + true + + true + + + ШаблонИсполненияОзнакомленияТип + + <key>ru</key> + <value>Шаблон исполнения ознакомления тип</value> + + 27 + + String + + + + true + + + true + + + + ШаблонПорученияID + + <key>ru</key> + <value>Шаблон поручения ID</value> + + 28 + + String + + + + true + + + true + + + + ШаблонПоручения + + <key>ru</key> + <value>Шаблон поручения</value> + + 29 + + String + + + + true + + + true + + true + + + ШаблонПорученияТип + + <key>ru</key> + <value>Шаблон поручения тип</value> + + 30 + + String + + + + true + + + true + + + + ШаблонРассмотренияID + + <key>ru</key> + <value>Шаблон рассмотрения ID</value> + + 31 + + String + + + + true + + + true + + + + ШаблонРассмотрения + + <key>ru</key> + <value>Шаблон рассмотрения</value> + + 32 + + String + + + + true + + + true + + true + + + ШаблонРассмотренияТип + + <key>ru</key> + <value>Шаблон рассмотрения тип</value> + + 33 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 34 + + String + + + + true + + + true + + + + Записать + + <key>ru</key> + <value>Записать</value> + + 1 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + Auto + Auto + + + СтартоватьИЗакрыть + + <key>ru</key> + <value>Стартовать и закрыть</value> + + 2 + + ru + Стартовать и закрыть + + + true + + + + СтартоватьИЗакрыть + + + Auto + Auto + + + ЗаполнитьПоШаблону + + <key>ru</key> + <value>Заполнить по шаблону</value> + + 3 + + ru + Заполнить по шаблону + + + true + + + CommonPicture.ЗаполнитьПоОснованию + + + + ЗаполнитьПоШаблону + + + Auto + Auto + + + ID + + String + + + + + TargetID + + String + + + + + TargetName + + String + + + + + Type + + String + + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/Help/ru.html b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/Help/ru.html new file mode 100644 index 000000000..c5a88bc1d --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/Help/ru.html @@ -0,0 +1,13 @@ + +

Бизнес-процесс  "Обработка внутреннего документа" состоит из цепочки простых бизнес-процессов, определенных как шаблоны: Согласование, Утверждение, Регистрация, Рассмотрение, Исполнение или Ознакомление и Поручение (поместить в дело).

+

Если не был выполнен запуск бизнес-процесса, заполнение формы может быть выполнено на основании шаблона бизнес-процесса. Для этого необходимо выполнить команду "Заполнить по шаблону" на командной панели формы. Если для данного типа бизнес-процесса и вида предмета бизнес-процесса настроены шаблоны бизнес-процессов, то система предложит выбрать один из шаблонов для заполнения формы. Если был настроен только один шаблон, то заполнение формы произойдет автоматически.

+

В поле Наименование указывается наименование составного бизнес-процесса. Если бизнес-процесс создается по шаблону и в шаблоне задано наименование, то оно переносится в поле Наименование.

+

Поле Предмет заполняется автоматически на основании данных документа, отправляемого на обработку.

+

В поле Автор указывается автор создаваемого бизнес-процесса (при создании будет указан текущий пользователь).

+

В поле Согласование задается шаблон бизнес-процесса Согласование.

+

В поле Утверждение задается шаблон бизнес-процесса Утверждение.

+

В поле Регистрация задается шаблон бизнес-процесса Регистрация.

+

В поле Рассмотрение руководителем задается шаблон бизнес-процесса Рассмотрение. Если шаблон выбран, то поле Исполнение \ ознакомление становится недоступным.

+

В поле Исполнение \ ознакомление задается шаблон бизнес-процесса Исполнение или Ознакомление. Если шаблон выбран, то поле Рассмотрение становится недоступным.

+

В поле Поручение (поместить в дело) задается шаблон бизнес-процесса Поручение.

+

С помощью поля Главная задача указывается, что данный бизнес-процесс создан в рамках вышестоящего бизнес-процесса.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/Module.bsl b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/Module.bsl new file mode 100644 index 000000000..0dfc7578f --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/Module.bsl @@ -0,0 +1,365 @@ + +/////////////////////////////////////////////////////////// +//// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + //Если открывается новая карточка бизнес-процесса + Если Параметры.Свойство("Предмет") И ЗначениеЗаполнено(Параметры.Предмет) Тогда + + ЗаполнитьКарточкуНовогоБизнесПроцесса("DMBusinessProcessInternalDocumentProcessing", ЭтаФорма, Параметры.Предмет); + + //Если открывается карточка имеющегося бизнес-процесса + ИначеЕсли ЗначениеЗаполнено(Параметры.id) + И ЗначениеЗаполнено(Параметры.type) Тогда + ОбъектID = Параметры.id; + ДанныеБП = РаботаС1СДокументооборот.ПолучитьОбъект(Параметры.type, Параметры.id); + Объект = ДанныеБП.objects[0]; + ЗаполнитьФормуИзОбъектаXDTO(Объект); + КонецЕсли; + + ЭтаФорма.Заголовок = Наименование; + Если НЕ ЗначениеЗаполнено(ОбъектID) Тогда + ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + НСтр("ru = ' (Создание)'"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Автор", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонСогласованияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessApprovalTemplate", "ШаблонСогласования", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонУтвержденияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessConfirmationTemplate", "ШаблонУтверждения", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонРегистрацииПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessRegistrationTemplate", "ШаблонРегистрации", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонРассмотренияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessConsiderationTemplate", "ШаблонРассмотрения", ЭтаФорма); + + Элементы.ШаблонИсполненияОзнакомленияПредставление.Доступность = НЕ ЗначениеЗаполнено(ШаблонРассмотрения); + + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонИсполненияОзнакомленияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + //выбор типа шаблона бизнес-процесса + СписокДоступныхТиповШаблоновБизнесПроцессов = Новый СписокЗначений; + СписокДоступныхТиповШаблоновБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessPerformanceTemplate", "Шаблон исполнения")); + СписокДоступныхТиповШаблоновБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessAcquaintanceTemplate", "Шаблон ознакомления")); + ЗаголовокФормы = НСтр("ru = 'Тип шаблона бизнес-процесса'"); + + ПараметрыФормы = Новый Структура("СписокДоступныхТипов, ЗаголовокФормы", СписокДоступныхТиповШаблоновБизнесПроцессов, ЗаголовокФормы); + РезультатВыбораТипа = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборОдногоТипаИзСоставногоТипа", ПараметрыФормы, ЭтаФорма); + Если РезультатВыбораТипа = Неопределено Тогда + Возврат; + КонецЕсли; + ИмяТипа = РезультатВыбораТипа; + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка(ИмяТипа, "ШаблонИсполненияОзнакомления", ЭтаФорма); + + Элементы.ШаблонРассмотренияПредставление.Доступность = НЕ ЗначениеЗаполнено(ШаблонИсполненияОзнакомления); + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонПорученияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessOrderTemplate", "ШаблонПоручения", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Режим = РежимДиалогаВопрос.ДаНетОтмена; + Ответ = Вопрос(ТекстВопроса, Режим); + Если Ответ = КодВозвратаДиалога.Да Тогда + Отказ = НЕ ЗаписатьОбъектВыполнить(); + ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда + Отказ = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГлавнаяЗадачаПредставлениеОткрытие(Элемент, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ГлавнаяЗадача) Тогда + ПараметрыФормы = Новый Структура("id, type", ГлавнаяЗадачаID, ГлавнаяЗадачаТип); + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотКарточкаЗадачи", ПараметрыФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПредметОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ЗначениеЗаполнено(Предмет) Тогда + РаботаС1СДокументооборотКлиент.ОткрытьКарточкуПредметаБизнесПроцесса(ПредметТип, ПредметID, Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.ПредметПредставление Тогда + Предмет = Источник.Представление; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Обработка команд формы + +&НаКлиенте +Процедура Записать(Команда) + + РезультатЗаписи = ЗаписатьОбъектВыполнить(); + + Если РезультатЗаписи Тогда + ПараметрыОповещения = Новый Структура("id", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + ЭтаФорма.Заголовок = Наименование; + Состояние(НСтр("ru = 'Бизнес-процесс """ + Наименование + """ сохранен.'")); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтартоватьИЗакрыть(Команда) + + РезультатЗапуска = ПодготовитьКПередачеИСтартоватьБизнесПроцесс(); + Если РезультатЗапуска Тогда + ПараметрыОповещения = Новый Структура("id", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + + ТекстСостояния = НСтр("ru = 'Бизнес-процесс """ + Наименование + """ успешно запущен.'"); + Состояние(ТекстСостояния); + + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПоШаблону(Команда) + + РезультатВыбораШаблона = РаботаС1СДокументооборотКлиент.ВыбратьШаблонБизнесПроцесса(ЭтаФорма); + Если ТипЗнч(РезультатВыбораШаблона) = Тип("Структура") Тогда + ЗаполнитьКарточкуПоШаблону(РезультатВыбораШаблона); + КонецЕсли; + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Служебные процедуры и функции + +&НаСервере +Процедура ЗаполнитьКарточкуПоШаблону(ДанныеШаблона) + + РезультатЗаполнения = РаботаС1СДокументооборотВызовСервера.ЗаполнитьБизнесПроцессПоШаблону(ЭтаФорма, ДанныеШаблона); + ЗаполнитьФормуИзОбъектаXDTO(РезультатЗаполнения.object); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКарточкуНовогоБизнесПроцесса(ТипБизнесПроцесса, Форма, Предмет) + + НовыйОбъект = РаботаС1СДокументооборот.ПолучитьНовыйОбъект(ТипБизнесПроцесса, Предмет); + ЗаполнитьФормуИзОбъектаXDTO(НовыйОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьФормуИзОбъектаXDTO(Объект) + + РаботаС1СДокументооборот.УстановитьСтандартнуюШапкуБизнесПроцесса(Объект, Этаформа); + + //специфика обработки исходящего документа + ЗаполнитьРеквизитФормыИзПакета("ШаблонСогласования", Объект, "approvalTemplate"); + ЗаполнитьРеквизитФормыИзПакета("ШаблонУтверждения", Объект, "confirmationTemplate"); + ЗаполнитьРеквизитФормыИзПакета("ШаблонРегистрации", Объект, "registrationTemplate"); + ЗаполнитьРеквизитФормыИзПакета("ШаблонРассмотрения", Объект, "considerationTemplate"); + ЗаполнитьРеквизитФормыИзПакета("ШаблонИсполненияОзнакомления", Объект, "performanceAcquaintanceTemplate"); + ЗаполнитьРеквизитФормыИзПакета("ШаблонПоручения", Объект, "orderTemplate"); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьРеквизитФормыИзПакета(ИмяРеквизита, Объект, ИмяСвойстваОбъекта) + + Если Объект.Установлено(ИмяСвойстваОбъекта) Тогда + ЭтаФорма[ИмяРеквизита + "id"] = Объект[ИмяСвойстваОбъекта].objectId.id; + ЭтаФорма[ИмяРеквизита] = Объект[ИмяСвойстваОбъекта].Name; + ЭтаФорма[ИмяРеквизита + "Тип"] = Объект[ИмяСвойстваОбъекта].objectId.type; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция СоздатьОбъект(Прокси, Тип) + + Возврат РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, Тип); + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИЗаписатьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + Если ЗначениеЗаполнено(ОбъектID) Тогда + РезультатЗаписи = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + Иначе + РезультатСоздания = РаботаС1СДокументооборот.СоздатьНовыйОбъект(Прокси, Объект); + КонецЕсли; + + Результат = ?(РезультатСоздания = Неопределено, РезультатЗаписи, РезультатСоздания); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат , "DMError") Тогда + ВызватьИсключение(РезультатСоздания.description); + Иначе + Если РезультатЗаписи <> Неопределено Тогда + ОбъектID = Результат.objects[0].objectId.id; + Иначе + ОбъектID = Результат.object.objectId.id; + КонецЕсли; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИСтартоватьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + РезультатЗапуска = РаботаС1СДокументооборот.ЗапуститьБизнесПроцесс(Прокси, Объект); + + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, РезультатЗапуска, "DMError") Тогда + ВызватьИсключение(РезультатЗапуска.description); + Иначе + ОбъектID = РезультатЗапуска.businessProcess.objectId.id; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьБизнесПроцесс(Прокси) + + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessInternalDocumentProcessing"); + + Объект.Name = Наименование; + Объект.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.objectId.id = ОбъектID; + Объект.objectId.type = "DMBusinessProcessInternalDocumentProcessing"; + + //Общая шапка бизнес-процессов + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("Автор", Объект, "author", "DMUser", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("Предмет", Объект, "target", "DMObject", Прокси); + Объект.BeginDate = ДатаНачала; + + //специфика Обработки исходящего документа + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонСогласования", Объект, "approvalTemplate", "DMBusinessProcessApprovalTemplate", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонУтверждения", Объект, "confirmationTemplate", "DMBusinessProcessConfirmationTemplate", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонРегистрации", Объект, "registrationTemplate", "DMBusinessProcessRegistrationTemplate", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонРассмотрения", Объект, "considerationTemplate", "DMBusinessProcessConsiderationTemplate", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонИсполненияОзнакомления", Объект, "performanceAcquaintanceTemplate", "DMBusinessProcessTemplate", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонПоручения", Объект, "orderTemplate", "DMBusinessProcessOrderTemplate", Прокси); + + Возврат Объект; + +КонецФункции + +&НаСервере +Процедура СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы(ИмяРеквизитаФормы, ОбъектXDTO, ИмяСвойстаОбъекта, ТипСвойстваОбъекта, Прокси) + + Если ЗначениеЗаполнено(ЭтаФорма[ИмяРеквизитаФормы]) Тогда + ОбъектXDTO[ИмяСвойстаОбъекта] = СоздатьОбъект(Прокси, ТипСвойстваОбъекта); + ОбъектXDTO[ИмяСвойстаОбъекта].Name = ЭтаФорма[ИмяРеквизитаФормы]; + ОбъектXDTO[ИмяСвойстаОбъекта].objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ОбъектXDTO[ИмяСвойстаОбъекта].objectId.id = ЭтаФорма[ИмяРеквизитаФормы + "id"]; + ОбъектXDTO[ИмяСвойстаОбъекта].objectId.type = ЭтаФорма[ИмяРеквизитаФормы + "Тип"]; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Функция ЗаписатьОбъектВыполнить() + + ПодготовитьКПередачеИЗаписатьБизнесПроцесс(); + Модифицированность = Ложь; + Возврат Истина; + +КонецФункции \ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента.mdo b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента.mdo new file mode 100644 index 000000000..c62c1a749 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента/ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента.mdo @@ -0,0 +1,19 @@ + + + ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента + + ru + Документооборот бизнес процесс обработка внутреннего документа + + + + ru + + + PersonalComputer + MobileDevice + + ru + Бизнес-процесс "Обработка внутреннего документа" + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/Form.form b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/Form.form new file mode 100644 index 000000000..f6b0ca2f1 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/Form.form @@ -0,0 +1,1185 @@ + + + + ГлавнаяЗадачаПредставление + 1 + + <key>ru</key> + <value>Главная задача</value> + + true + true + + true + + + ГлавнаяЗадача + + + ГлавнаяЗадачаПредставлениеРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + + ГлавнаяЗадачаПредставлениеКонтекстноеМеню + 2 + true + + InputField + true + Enter + true + Left + true + + + Opening + ГлавнаяЗадачаПредставлениеОткрытие + + true + true + true + true + true + true + Normal + + + + Наименование + 3 + true + true + + true + + + Наименование + + + НаименованиеРасширеннаяПодсказка + 29 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 4 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ПредметПредставление + 5 + + <key>ru</key> + <value>Предмет</value> + + true + true + + true + + + Предмет + + + ПредметПредставлениеРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + + ПредметПредставлениеКонтекстноеМеню + 6 + true + + InputField + true + Enter + true + Left + true + + + Opening + ПредметОткрытие + + true + true + true + true + true + true + true + Normal + + + + АвторПредставление + 7 + + <key>ru</key> + <value>Автор</value> + + true + true + + true + + + Автор + + + АвторПредставлениеРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + АвторПредставлениеКонтекстноеМеню + 8 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АвторАвтоПодбор + + + StartChoice + АвторНачалоВыбора + + + TextEditEnd + АвторОкончаниеВводаТекста + + + ChoiceProcessing + АвторОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ГруппаДействия + 9 + + ШаблонРассмотренияПредставление + 10 + + <key>ru</key> + <value>Рассмотрение руководителем</value> + + true + true + + true + + + ШаблонРассмотрения + + + ШаблонРассмотренияПредставлениеРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + + ШаблонРассмотренияПредставлениеКонтекстноеМеню + 11 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонРассмотренияПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ШаблонИсполненияОзнакомленияПредставление + 12 + + <key>ru</key> + <value>Исполнение \ ознакомление</value> + + true + true + + true + + + ШаблонИсполненияОзнакомления + + + ШаблонИсполненияОзнакомленияПредставлениеРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + + ШаблонИсполненияОзнакомленияПредставлениеКонтекстноеМеню + 13 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонИсполненияОзнакомленияПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ШаблонПорученияПредставление + 14 + + <key>ru</key> + <value>Поручение поместить в дело</value> + + true + true + + true + + + ШаблонПоручения + + + ШаблонПорученияПредставлениеРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + + ШаблонПорученияПредставлениеКонтекстноеМеню + 15 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонПорученияПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Действия</value> + + + ru + Группа действия + + + ГруппаДействияРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + auto + Auto + Auto + + + + ГруппаИнфо + 16 + + ДатаНачала + 17 + + <key>ru</key> + <value>Начато</value> + + true + true + + true + + + ДатаНачала + + + ДатаНачалаРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + + ДатаНачалаКонтекстноеМеню + 18 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ДатаЗавершения + 19 + + <key>ru</key> + <value>Завершено</value> + + true + true + + true + + + ДатаЗавершения + + + ДатаЗавершенияРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + + ДатаЗавершенияКонтекстноеМеню + 20 + true + + LabelField + Enter + true + Left + true + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа инфо</value> + + + ru + Группа инфо + + + ГруппаИнфоРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + СтартоватьИЗакрыть + 21 + true + true + + true + + + СтартоватьИЗакрытьРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + Form.Command.СтартоватьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + Записать + 22 + true + true + + true + + + ЗаписатьРасширеннаяПодсказка + 25 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗаполнитьПоШаблону + 23 + true + true + + true + + + ФормаЗаполнитьПоШаблонуРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + Form.Command.ЗаполнитьПоШаблону + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 1 + + String + + + + true + + + true + + true + + + ГлавнаяЗадача + + <key>ru</key> + <value>Главная задача</value> + + 2 + + String + + + + true + + + true + + true + + + ГлавнаяЗадачаТип + + <key>ru</key> + <value>Главная задача тип</value> + + 3 + + String + + + + true + + + true + + + + ГлавнаяЗадачаID + + <key>ru</key> + <value>Главная задача ID</value> + + 4 + + String + + + + true + + + true + + + + Предмет + + <key>ru</key> + <value>Предмет</value> + + 5 + + String + + + + true + + + true + + true + + + ПредметТип + + <key>ru</key> + <value>Предмет тип</value> + + 6 + + String + + + + true + + + true + + + + ПредметID + + <key>ru</key> + <value>Предмет ID</value> + + 7 + + String + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 8 + + String + + + + true + + + true + + true + + + АвторТип + + <key>ru</key> + <value>Автор тип</value> + + 9 + + String + + + + true + + + true + + + + АвторID + + <key>ru</key> + <value>Автор ID</value> + + 10 + + String + + + + true + + + true + + + + ШаблонРассмотрения + + <key>ru</key> + <value>Шаблон рассмотрения</value> + + 11 + + String + + + + true + + + true + + true + + + ШаблонРассмотренияТип + + <key>ru</key> + <value>Шаблон рассмотрения тип</value> + + 12 + + String + + + + true + + + true + + + + ШаблонРассмотренияID + + <key>ru</key> + <value>Шаблон рассмотрения ID</value> + + 13 + + String + + + + true + + + true + + + + ШаблонИсполненияОзнакомления + + <key>ru</key> + <value>Шаблон исполнения ознакомления</value> + + 14 + + String + + + + true + + + true + + true + + + ШаблонИсполненияОзнакомленияТип + + <key>ru</key> + <value>Шаблон исполнения ознакомления тип</value> + + 15 + + String + + + + true + + + true + + + + ШаблонИсполненияОзнакомленияID + + <key>ru</key> + <value>Шаблон исполнения ознакомления ID</value> + + 16 + + String + + + + true + + + true + + + + ШаблонПоручения + + <key>ru</key> + <value>Шаблон поручения</value> + + 17 + + String + + + + true + + + true + + true + + + ШаблонПорученияТип + + <key>ru</key> + <value>Шаблон поручения тип</value> + + 18 + + String + + + + true + + + true + + + + ШаблонПорученияID + + <key>ru</key> + <value>Шаблон поручения ID</value> + + 19 + + String + + + + true + + + true + + + + ДатаЗавершения + + <key>ru</key> + <value>Дата завершения</value> + + 20 + + Date + + Date + + + + true + + + true + + true + + + ДатаНачала + + <key>ru</key> + <value>Дата начала</value> + + 21 + + Date + + Date + + + + true + + + true + + true + + + Завершен + + <key>ru</key> + <value>Завершен</value> + + 22 + + Boolean + + + true + + + true + + + + ОбъектID + + <key>ru</key> + <value>Объект ID</value> + + 23 + + String + + + + true + + + true + + + + Стартован + + <key>ru</key> + <value>Стартован</value> + + 24 + + Boolean + + + true + + + true + + true + + + Тип + + <key>ru</key> + <value>Тип</value> + + 25 + + String + + + + true + + + true + + + + СтартоватьИЗакрыть + + <key>ru</key> + <value>Стартовать и закрыть</value> + + 1 + + ru + Стартовать и закрыть + + + true + + + + СтартоватьИЗакрыть + + + Auto + Auto + + + Записать + + <key>ru</key> + <value>Записать</value> + + 2 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + Auto + Auto + + + ЗаполнитьПоШаблону + + <key>ru</key> + <value>Заполнить по шаблону</value> + + 3 + + ru + Заполнить по шаблону + + + true + + + CommonPicture.ЗаполнитьПоОснованию + + + + ЗаполнитьПоШаблону + + + Auto + Auto + + + ID + + String + + + + + TargetID + + String + + + + + TargetName + + String + + + + + Type + + String + + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/Help/ru.html b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/Help/ru.html new file mode 100644 index 000000000..584d37bc1 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/Help/ru.html @@ -0,0 +1,10 @@ + +

Бизнес-процесс  "Обработка входящего документа" состоит из цепочки простых бизнес-процессов, определенных как шаблоны: Рассмотрение, Исполнение или Ознакомление и Поручение (поместить в дело).

+

Если не был выполнен запуск бизнес-процесса, заполнение формы может быть выполнено на основании шаблона бизнес-процесса. Для этого необходимо выполнить команду "Заполнить по шаблону" на командной панели формы. Если для данного типа бизнес-процесса и вида предмета бизнес-процесса настроены шаблоны бизнес-процессов, то система предложит выбрать один из шаблонов для заполнения формы. Если был настроен только один шаблон, то заполнение формы произойдет автоматически.

+

В поле Наименование указывается наименование составного бизнес-процесса. Если бизнес-процесс создается по шаблону и в шаблоне задано наименование, то оно переносится в поле Наименование.

+

Поле Предмет заполняется автоматически на основании данных о документе, отправляемом на обработку.

+

В поле Автор указывается автор создаваемого бизнес-процесса (при создании будет указан текущий пользователь).

+

В поле Рассмотрение руководителем задается шаблон бизнес-процесса Рассмотрение. Если шаблон выбран, то поле Исполнение \ ознакомление становится недоступным.

+

В поле Исполнение \ ознакомление задается шаблон бизнес-процесса Исполнение или Ознакомление. Если шаблон выбран, то поле Рассмотрение становится недоступным.

+

В поле Поручение (поместить в дело) задается шаблон бизнес-процесса Поручение.

+

С помощью поля Главная задача в карточке указывается, что данный бизнес-процесс создан в рамках вышестоящего бизнес-процесса.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/Module.bsl b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/Module.bsl new file mode 100644 index 000000000..c27bc36bc --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/Module.bsl @@ -0,0 +1,344 @@ + +/////////////////////////////////////////////////////////// +//// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + //Если открывается новая карточка бизнес-процесса + Если Параметры.Свойство("Предмет") И ЗначениеЗаполнено(Параметры.Предмет) Тогда + + ЗаполнитьКарточкуНовогоБизнесПроцесса("DMBusinessProcessIncomingDocumentProcessing", ЭтаФорма, Параметры.Предмет); + + //Если открывается карточка имеющегося бизнес-процесса + ИначеЕсли ЗначениеЗаполнено(Параметры.id) + И ЗначениеЗаполнено(Параметры.type) Тогда + ОбъектID = Параметры.id; + ДанныеБП = РаботаС1СДокументооборот.ПолучитьОбъект(Параметры.type, Параметры.id); + Объект = ДанныеБП.objects[0]; + ЗаполнитьФормуИзОбъектаXDTO(Объект); + КонецЕсли; + + ЭтаФорма.Заголовок = Наименование; + Если НЕ ЗначениеЗаполнено(ОбъектID) Тогда + ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + НСтр("ru = ' (Создание)'"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Автор", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонРассмотренияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessConsiderationTemplate", "ШаблонРассмотрения", ЭтаФорма); + + Элементы.ШаблонИсполненияОзнакомленияПредставление.Доступность = НЕ ЗначениеЗаполнено(ШаблонРассмотрения); + + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонИсполненияОзнакомленияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + //выбор типа шаблона бизнес-процесса + СписокДоступныхТиповШаблоновБизнесПроцессов = Новый СписокЗначений; + СписокДоступныхТиповШаблоновБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessPerformanceTemplate", "Шаблон исполнения")); + СписокДоступныхТиповШаблоновБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessAcquaintanceTemplate", "Шаблон ознакомления")); + ЗаголовокФормы = НСтр("ru = 'Тип шаблона бизнес-процесса'"); + + ПараметрыФормы = Новый Структура("СписокДоступныхТипов, ЗаголовокФормы", СписокДоступныхТиповШаблоновБизнесПроцессов, ЗаголовокФормы); + РезультатВыбораТипа = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборОдногоТипаИзСоставногоТипа", ПараметрыФормы, ЭтаФорма); + Если РезультатВыбораТипа = Неопределено Тогда + Возврат; + КонецЕсли; + ИмяТипа = РезультатВыбораТипа; + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка(ИмяТипа, "ШаблонИсполненияОзнакомления", ЭтаФорма); + + Элементы.ШаблонРассмотренияПредставление.Доступность = НЕ ЗначениеЗаполнено(ШаблонИсполненияОзнакомления); + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонПорученияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessOrderTemplate", "ШаблонПоручения", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Режим = РежимДиалогаВопрос.ДаНетОтмена; + Ответ = Вопрос(ТекстВопроса, Режим); + Если Ответ = КодВозвратаДиалога.Да Тогда + Отказ = НЕ ЗаписатьОбъектВыполнить(); + ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда + Отказ = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГлавнаяЗадачаПредставлениеОткрытие(Элемент, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ГлавнаяЗадача) Тогда + ПараметрыФормы = Новый Структура("id, type", ГлавнаяЗадачаID, ГлавнаяЗадачаТип); + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотКарточкаЗадачи", ПараметрыФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПредметОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ЗначениеЗаполнено(Предмет) Тогда + РаботаС1СДокументооборотКлиент.ОткрытьКарточкуПредметаБизнесПроцесса(ПредметТип, ПредметID, Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.ПредметПредставление Тогда + Предмет = Источник.Представление; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + +/////////////////////////////////////////////////////////// +//// Обработка команд формы + +&НаКлиенте +Процедура Записать(Команда) + + РезультатЗаписи = ЗаписатьОбъектВыполнить(); + + Если РезультатЗаписи Тогда + ПараметрыОповещения = Новый Структура("id", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + ЭтаФорма.Заголовок = Наименование; + Состояние(НСтр("ru = 'Бизнес-процесс """ + Наименование + """ сохранен.'")); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтартоватьИЗакрыть(Команда) + + РезультатЗапуска = ПодготовитьКПередачеИСтартоватьБизнесПроцесс(); + Если РезультатЗапуска Тогда + ПараметрыОповещения = Новый Структура("id", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + + ТекстСостояния = НСтр("ru = 'Бизнес-процесс """ + Наименование + """ успешно запущен.'"); + Состояние(ТекстСостояния); + + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПоШаблону(Команда) + + РезультатВыбораШаблона = РаботаС1СДокументооборотКлиент.ВыбратьШаблонБизнесПроцесса(ЭтаФорма); + Если ТипЗнч(РезультатВыбораШаблона) = Тип("Структура") Тогда + ЗаполнитьКарточкуПоШаблону(РезультатВыбораШаблона); + КонецЕсли; + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Служебные процедуры и функции + +&НаСервере +Процедура ЗаполнитьКарточкуПоШаблону(ДанныеШаблона) + + РезультатЗаполнения = РаботаС1СДокументооборотВызовСервера.ЗаполнитьБизнесПроцессПоШаблону(ЭтаФорма, ДанныеШаблона); + ЗаполнитьФормуИзОбъектаXDTO(РезультатЗаполнения.object); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКарточкуНовогоБизнесПроцесса(ТипБизнесПроцесса, Форма, Предмет) + + НовыйОбъект = РаботаС1СДокументооборот.ПолучитьНовыйОбъект(ТипБизнесПроцесса, Предмет); + ЗаполнитьФормуИзОбъектаXDTO(НовыйОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьФормуИзОбъектаXDTO(Объект) + + РаботаС1СДокументооборот.УстановитьСтандартнуюШапкуБизнесПроцесса(Объект, Этаформа); + + //специфика обработки входящего документа + ЗаполнитьРеквизитФормыИзПакета("ШаблонРассмотрения", Объект, "considerationTemplate"); + ЗаполнитьРеквизитФормыИзПакета("ШаблонИсполненияОзнакомления", Объект, "performanceAcquaintanceTemplate"); + ЗаполнитьРеквизитФормыИзПакета("ШаблонПоручения", Объект, "orderTemplate"); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьРеквизитФормыИзПакета(ИмяРеквизита, Объект, ИмяСвойстваОбъекта) + + Если Объект.Установлено(ИмяСвойстваОбъекта) Тогда + ЭтаФорма[ИмяРеквизита + "id"] = Объект[ИмяСвойстваОбъекта].objectId.id; + ЭтаФорма[ИмяРеквизита] = Объект[ИмяСвойстваОбъекта].Name; + ЭтаФорма[ИмяРеквизита + "Тип"] = Объект[ИмяСвойстваОбъекта].objectId.type; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция СоздатьОбъект(Прокси, Тип) + + Возврат РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, Тип); + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИЗаписатьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + Если ЗначениеЗаполнено(ОбъектID) Тогда + РезультатЗаписи = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + Иначе + РезультатСоздания = РаботаС1СДокументооборот.СоздатьНовыйОбъект(Прокси, Объект); + КонецЕсли; + + Результат = ?(РезультатСоздания = Неопределено, РезультатЗаписи, РезультатСоздания); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат , "DMError") Тогда + ВызватьИсключение(РезультатСоздания.description); + Иначе + Если РезультатЗаписи <> Неопределено Тогда + ОбъектID = Результат.objects[0].objectId.id; + Иначе + ОбъектID = Результат.object.objectId.id; + КонецЕсли; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИСтартоватьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + РезультатЗапуска = РаботаС1СДокументооборот.ЗапуститьБизнесПроцесс(Прокси, Объект); + + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, РезультатЗапуска, "DMError") Тогда + ВызватьИсключение(РезультатЗапуска.description); + Иначе + ОбъектID = РезультатЗапуска.BusinessProcess.objectId.id; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьБизнесПроцесс(Прокси) + + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessIncomingDocumentProcessing"); + + Объект.Name = Наименование; + Объект.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.objectId.id = ОбъектID; + Объект.objectId.type = "DMBusinessProcessIncomingDocumentProcessing"; + + //Общая шапка бизнес-процессов + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("Автор", Объект, "author", "DMUser", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("Предмет", Объект, "target", "DMObject", Прокси); + Объект.BeginDate = ДатаНачала; + + //специфика Обработки входящего документа + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонРассмотрения", Объект, "considerationTemplate", "DMBusinessProcessConsiderationTemplate", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонИсполненияОзнакомления", Объект, "performanceAcquaintanceTemplate", "DMBusinessProcessTemplate", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонПоручения", Объект, "orderTemplate", "DMBusinessProcessOrderTemplate", Прокси); + + Возврат Объект; + +КонецФункции + +&НаСервере +Процедура СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы(ИмяРеквизитаФормы, ОбъектXDTO, ИмяСвойстаОбъекта, ТипСвойстваОбъекта, Прокси) + + Если ЗначениеЗаполнено(ЭтаФорма[ИмяРеквизитаФормы]) Тогда + ОбъектXDTO[ИмяСвойстаОбъекта] = СоздатьОбъект(Прокси, ТипСвойстваОбъекта); + ОбъектXDTO[ИмяСвойстаОбъекта].Name = ЭтаФорма[ИмяРеквизитаФормы]; + ОбъектXDTO[ИмяСвойстаОбъекта].objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ОбъектXDTO[ИмяСвойстаОбъекта].objectId.id = ЭтаФорма[ИмяРеквизитаФормы + "id"]; + ОбъектXDTO[ИмяСвойстаОбъекта].objectId.type = ЭтаФорма[ИмяРеквизитаФормы + "Тип"]; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Функция ЗаписатьОбъектВыполнить() + + ПодготовитьКПередачеИЗаписатьБизнесПроцесс(); + Модифицированность = Ложь; + Возврат Истина; + +КонецФункции + + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента.mdo b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента.mdo new file mode 100644 index 000000000..460612b14 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента/ДокументооборотБизнесПроцессОбработкаВходящегоДокумента.mdo @@ -0,0 +1,19 @@ + + + ДокументооборотБизнесПроцессОбработкаВходящегоДокумента + + ru + Документооборот бизнес процесс обработка входящего документа + + + + ru + + + PersonalComputer + MobileDevice + + ru + Бизнес-процесс "Обработка входящего документа" + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/Form.form b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/Form.form new file mode 100644 index 000000000..c415233c5 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/Form.form @@ -0,0 +1,1223 @@ + + + + ГруппаШапка + 10 + + ГлавнаяЗадачаПредставление + 3 + + <key>ru</key> + <value>Главная задача</value> + + true + true + + true + + + ГлавнаяЗадача + + + ГлавнаяЗадачаПредставлениеРасширеннаяПодсказка + 29 + Label + true + true + + Left + + + + ГлавнаяЗадачаПредставлениеКонтекстноеМеню + 4 + true + + InputField + true + Enter + true + Left + true + + + Opening + ГлавнаяЗадачаПредставлениеОткрытие + + true + true + true + true + true + true + true + Normal + + + + Наименование + 1 + true + true + + true + + + Наименование + + + НаименованиеРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ПредметПредставление + 5 + + <key>ru</key> + <value>Предмет</value> + + true + true + + true + + + Предмет + + + ПредметПредставлениеРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + ПредметПредставлениеКонтекстноеМеню + 6 + true + + InputField + true + Enter + true + Left + true + + + Opening + ПредметОткрытие + + true + true + true + false + true + true + true + Normal + + + + АвторПредставление + 7 + + <key>ru</key> + <value>Автор</value> + + true + true + + true + + + Автор + + + АвторПредставлениеРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + + АвторПредставлениеКонтекстноеМеню + 8 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АвторАвтоПодбор + + + StartChoice + АвторНачалоВыбора + + + TextEditEnd + АвторОкончаниеВводаТекста + + + ChoiceProcessing + АвторОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа шапка</value> + + + ru + Группа шапка + + + ГруппаШапкаРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаДействия + 9 + + ШаблонСогласованияПредставление + 11 + + <key>ru</key> + <value>Согласование</value> + + true + true + + true + + + ШаблонСогласования + + + ШаблонСогласованияПредставлениеРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + + ШаблонСогласованияПредставлениеКонтекстноеМеню + 12 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонСогласованияПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ШаблонУтвержденияПредставление + 13 + + <key>ru</key> + <value>Утверждение</value> + + true + true + + true + + + ШаблонУтверждения + + + ШаблонУтвержденияПредставлениеРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + + ШаблонУтвержденияПредставлениеКонтекстноеМеню + 14 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонУтвержденияПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ШаблонРегистрацииПредставление + 15 + + <key>ru</key> + <value>Регистрация</value> + + true + true + + true + + + ШаблонРегистрации + + + ШаблонРегистрацииПредставлениеРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + ШаблонРегистрацииПредставлениеКонтекстноеМеню + 16 + true + + InputField + Enter + true + Left + true + + + StartChoice + ШаблонРегистрацииПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Действия</value> + + + ru + Группа действия + + + ГруппаДействияРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + auto + Auto + Auto + + + + ГруппаИнфо + 17 + + ДатаНачала + 18 + + <key>ru</key> + <value>Начато</value> + + true + true + + true + + + ДатаНачала + + + ДатаНачалаРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + + ДатаНачалаКонтекстноеМеню + 19 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ДатаЗавершения + 20 + + <key>ru</key> + <value>Завершено</value> + + true + true + + true + + + ДатаЗавершения + + + ДатаЗавершенияРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + + ДатаЗавершенияКонтекстноеМеню + 21 + true + + LabelField + Enter + true + Left + true + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа инфо</value> + + + ru + Группа инфо + + + ГруппаИнфоРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаСтартоватьИЗакрыть + 22 + true + true + + true + + + ФормаСтартоватьИЗакрытьРасширеннаяПодсказка + 25 + Label + true + true + + Left + + + Form.Command.СтартоватьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 23 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗаполнитьПоШаблону + 24 + true + true + + true + + + ФормаЗаполнитьПоШаблонуРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + Form.Command.ЗаполнитьПоШаблону + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + DontBlock + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ДатаЗавершения + + <key>ru</key> + <value>Дата завершения</value> + + 1 + + Date + + Date + + + + true + + + true + + true + + + АвторID + + <key>ru</key> + <value>Автор ID</value> + + 2 + + String + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 3 + + String + + + + true + + + true + + true + + + АвторТип + + <key>ru</key> + <value>Автор тип</value> + + 4 + + String + + + + true + + + true + + + + ГлавнаяЗадачаID + + <key>ru</key> + <value>Главная задача ID</value> + + 5 + + String + + + + true + + + true + + + + ГлавнаяЗадача + + <key>ru</key> + <value>Главная задача</value> + + 6 + + String + + + + true + + + true + + true + + + ГлавнаяЗадачаТип + + <key>ru</key> + <value>Главная задача тип</value> + + 7 + + String + + + + true + + + true + + + + ДатаНачала + + <key>ru</key> + <value>Дата начала</value> + + 8 + + Date + + Date + + + + true + + + true + + true + + + Завершен + + <key>ru</key> + <value>Завершен</value> + + 9 + + Boolean + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 10 + + String + + + + true + + + true + + true + + + ОбъектID + + <key>ru</key> + <value>Объект ID</value> + + 11 + + String + + + + true + + + true + + + + ПредметID + + <key>ru</key> + <value>Предмет ID</value> + + 12 + + String + + + + true + + + true + + + + Предмет + + <key>ru</key> + <value>Предмет</value> + + 13 + + String + + + + true + + + true + + true + + + ПредметТип + + <key>ru</key> + <value>Предмет тип</value> + + 14 + + String + + + + true + + + true + + + + Стартован + + <key>ru</key> + <value>Стартован</value> + + 15 + + Boolean + + + true + + + true + + true + + + ШаблонСогласованияID + + <key>ru</key> + <value>Шаблон согласования ID</value> + + 16 + + String + + + + true + + + true + + + + ШаблонСогласования + + <key>ru</key> + <value>Шаблон согласования</value> + + 17 + + String + + + + true + + + true + + true + + + ШаблонСогласованияТип + + <key>ru</key> + <value>Шаблон согласования тип</value> + + 18 + + String + + + + true + + + true + + + + ШаблонУтвержденияID + + <key>ru</key> + <value>Шаблон утверждения ID</value> + + 19 + + String + + + + true + + + true + + + + ШаблонУтверждения + + <key>ru</key> + <value>Шаблон утверждения</value> + + 20 + + String + + + + true + + + true + + true + + + ШаблонУтвержденияТип + + <key>ru</key> + <value>Шаблон утверждения тип</value> + + 21 + + String + + + + true + + + true + + + + ШаблонРегистрацииID + + <key>ru</key> + <value>Шаблон регистрации ID</value> + + 22 + + String + + + + true + + + true + + + + ШаблонРегистрации + + <key>ru</key> + <value>Шаблон регистрации</value> + + 23 + + String + + + + true + + + true + + true + + + ШаблонРегистрацииТип + + <key>ru</key> + <value>Шаблон регистрации тип</value> + + 24 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 25 + + String + + + + true + + + true + + + + СтартоватьИЗакрыть + + <key>ru</key> + <value>Стартовать и закрыть</value> + + 1 + + ru + Стартовать и закрыть + + + true + + + + СтартоватьИЗакрыть + + + Auto + Auto + + + Записать + + <key>ru</key> + <value>Записать</value> + + 2 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + Auto + Auto + + + ЗаполнитьПоШаблону + + <key>ru</key> + <value>Заполнить по шаблону</value> + + 3 + + ru + Заполнить по шаблону + + + true + + + CommonPicture.ЗаполнитьПоОснованию + + + + ЗаполнитьПоШаблону + + + Auto + Auto + + + Type + + String + + + + + TargetName + + String + + + + + TargetID + + String + + + + + ID + + String + + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/Help/ru.html b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/Help/ru.html new file mode 100644 index 000000000..94340caa6 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/Help/ru.html @@ -0,0 +1,10 @@ + +

Бизнес-процесс  "Обработка исходящего документа" состоит из цепочки простых бизнес-процессов, определенных как шаблоны: Согласование, Утверждение и Регистрация.

+

Если не был выполнен запуск бизнес-процесса, заполнение формы может быть выполнено на основании шаблона бизнес-процесса. Для этого необходимо выполнить команду "Заполнить по шаблону" на командной панели формы. Если для данного типа бизнес-процесса и вида предмета бизнес-процесса настроены шаблоны бизнес-процессов, то система предложит выбрать один из шаблонов для заполнения формы. Если был настроен только один шаблон, то заполнение формы произойдет автоматически.

+

В поле Наименование указывается наименование составного бизнес-процесса. Если бизнес-процесс создается по шаблону и в шаблоне задано наименование, то оно переносится в поле Наименование.

+

Поле Предмет заполняется автоматически на основании данных документа, отправляемого на обработку.

+

В поле Автор указывается автор создаваемого бизнес-процесса (при создании будет указан текущий пользователь).

+

В поле Согласование задается шаблон бизнес-процесса Согласование.

+

В поле Утверждение задается шаблон бизнес-процесса Утверждение.

+

В поле Регистрация задается шаблон бизнес-процесса Регистрация.

+

С помощью поля Главная задача указывается, что данный бизнес-процесс создан в рамках вышестоящего бизнес-процесса.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/Module.bsl b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/Module.bsl new file mode 100644 index 000000000..59f606b10 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/Module.bsl @@ -0,0 +1,318 @@ + +/////////////////////////////////////////////////////////// +//// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + //Если открывается новая карточка бизнес-процесса + Если Параметры.Свойство("Предмет") И ЗначениеЗаполнено(Параметры.Предмет) Тогда + + ЗаполнитьКарточкуНовогоБизнесПроцесса("DMBusinessProcessOutgoingDocumentProcessing", ЭтаФорма, Параметры.Предмет); + + //Если открывается карточка имеющегося бизнес-процесса + ИначеЕсли ЗначениеЗаполнено(Параметры.id) + И ЗначениеЗаполнено(Параметры.type) Тогда + ОбъектID = Параметры.id; + ДанныеБП = РаботаС1СДокументооборот.ПолучитьОбъект(Параметры.type, Параметры.id); + Объект = ДанныеБП.objects[0]; + ЗаполнитьФормуИзОбъектаXDTO(Объект); + КонецЕсли; + + ЭтаФорма.Заголовок = Наименование; + Если НЕ ЗначениеЗаполнено(ОбъектID) Тогда + ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + НСтр("ru = ' (Создание)'"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Автор", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонСогласованияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessApprovalTemplate", "ШаблонСогласования", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонУтвержденияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessConfirmationTemplate", "ШаблонУтверждения", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ШаблонРегистрацииПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessRegistrationTemplate", "ШаблонРегистрации", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Режим = РежимДиалогаВопрос.ДаНетОтмена; + Ответ = Вопрос(ТекстВопроса, Режим); + Если Ответ = КодВозвратаДиалога.Да Тогда + Отказ = НЕ ЗаписатьОбъектВыполнить(); + ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда + Отказ = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГлавнаяЗадачаПредставлениеОткрытие(Элемент, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ГлавнаяЗадача) Тогда + ПараметрыФормы = Новый Структура("id, type", ГлавнаяЗадачаID, ГлавнаяЗадачаТип); + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотКарточкаЗадачи", ПараметрыФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПредметОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ЗначениеЗаполнено(Предмет) Тогда + РаботаС1СДокументооборотКлиент.ОткрытьКарточкуПредметаБизнесПроцесса(ПредметТип, ПредметID, Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.ПредметПредставление Тогда + Предмет = Источник.Представление; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + +/////////////////////////////////////////////////////////// +//// Обработка команд формы + +&НаКлиенте +Процедура Записать(Команда) + + РезультатЗаписи = ЗаписатьОбъектВыполнить(); + + Если РезультатЗаписи Тогда + ПараметрыОповещения = Новый Структура("id", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + ЭтаФорма.Заголовок = Наименование; + Состояние(НСтр("ru = 'Бизнес-процесс """ + Наименование + """ сохранен.'")); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтартоватьИЗакрыть(Команда) + + РезультатЗапуска = ПодготовитьКПередачеИСтартоватьБизнесПроцесс(); + Если РезультатЗапуска Тогда + ПараметрыОповещения = Новый Структура("id", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + + ТекстСостояния = НСтр("ru = 'Бизнес-процесс """ + Наименование + """ успешно запущен.'"); + Состояние(ТекстСостояния); + + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПоШаблону(Команда) + + РезультатВыбораШаблона = РаботаС1СДокументооборотКлиент.ВыбратьШаблонБизнесПроцесса(ЭтаФорма); + Если ТипЗнч(РезультатВыбораШаблона) = Тип("Структура") Тогда + ЗаполнитьКарточкуПоШаблону(РезультатВыбораШаблона); + КонецЕсли; + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Служебные процедуры и функции + +&НаСервере +Процедура ЗаполнитьКарточкуПоШаблону(ДанныеШаблона) + + РезультатЗаполнения = РаботаС1СДокументооборотВызовСервера.ЗаполнитьБизнесПроцессПоШаблону(ЭтаФорма, ДанныеШаблона); + ЗаполнитьФормуИзОбъектаXDTO(РезультатЗаполнения.object); + +КонецПроцедуры + + +&НаСервере +Процедура ЗаполнитьКарточкуНовогоБизнесПроцесса(ТипБизнесПроцесса, Форма, Предмет) + + НовыйОбъект = РаботаС1СДокументооборот.ПолучитьНовыйОбъект(ТипБизнесПроцесса, Предмет); + ЗаполнитьФормуИзОбъектаXDTO(НовыйОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьФормуИзОбъектаXDTO(Объект) + + РаботаС1СДокументооборот.УстановитьСтандартнуюШапкуБизнесПроцесса(Объект, Этаформа); + + //специфика обработки исходящего документа + ЗаполнитьРеквизитФормыИзПакета("ШаблонСогласования", Объект, "approvalTemplate"); + ЗаполнитьРеквизитФормыИзПакета("ШаблонУтверждения", Объект, "confirmationTemplate"); + ЗаполнитьРеквизитФормыИзПакета("ШаблонРегистрации", Объект, "registrationTemplate"); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьРеквизитФормыИзПакета(ИмяРеквизита, Объект, ИмяСвойстваОбъекта) + + Если Объект.Установлено(ИмяСвойстваОбъекта) Тогда + ЭтаФорма[ИмяРеквизита + "id"] = Объект[ИмяСвойстваОбъекта].objectId.id; + ЭтаФорма[ИмяРеквизита] = Объект[ИмяСвойстваОбъекта].name; + ЭтаФорма[ИмяРеквизита + "Тип"] = Объект[ИмяСвойстваОбъекта].objectId.type; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция СоздатьОбъект(Прокси, Тип) + + Возврат РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, Тип); + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИЗаписатьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + Если ЗначениеЗаполнено(ОбъектID) Тогда + РезультатЗаписи = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + Иначе + РезультатСоздания = РаботаС1СДокументооборот.СоздатьНовыйОбъект(Прокси, Объект); + КонецЕсли; + + Результат = ?(РезультатСоздания = Неопределено, РезультатЗаписи, РезультатСоздания); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат , "DMError") Тогда + ВызватьИсключение(РезультатСоздания.description); + Иначе + Если РезультатЗаписи <> Неопределено Тогда + ОбъектID = Результат.objects[0].objectId.id; + Иначе + ОбъектID = Результат.object.objectId.id; + КонецЕсли; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИСтартоватьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + РезультатЗапуска = РаботаС1СДокументооборот.ЗапуститьБизнесПроцесс(Прокси, Объект); + + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, РезультатЗапуска, "DMError") Тогда + ВызватьИсключение(РезультатЗапуска.description); + Иначе + ОбъектID = РезультатЗапуска.businessProcess.objectId.id; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьБизнесПроцесс(Прокси) + + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessOutgoingDocumentProcessing"); + + Объект.name = Наименование; + Объект.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.objectId.id = ОбъектID; + Объект.objectId.type = "DMBusinessProcessOutgoingDocumentProcessing"; + + //Общая шапка бизнес-процессов + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("Автор", Объект, "author", "DMUser", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("Предмет", Объект, "target", "DMObject", Прокси); + Объект.beginDate = ДатаНачала; + + //специфика Обработки исходящего документа + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонСогласования", Объект, "approvalTemplate", "DMBusinessProcessApprovalTemplate", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонУтверждения", Объект, "confirmationTemplate", "DMBusinessProcessConfirmationTemplate", Прокси); + СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы("ШаблонРегистрации", Объект, "registrationTemplate", "DMBusinessProcessRegistrationTemplate", Прокси); + + Возврат Объект; + +КонецФункции + +&НаСервере +Процедура СоздатьСвойствоОбъектаXDTOИзРеквизитаФормы(ИмяРеквизитаФормы, ОбъектXDTO, ИмяСвойстаОбъекта, ТипСвойстваОбъекта, Прокси) + + Если ЗначениеЗаполнено(ЭтаФорма[ИмяРеквизитаФормы]) Тогда + ОбъектXDTO[ИмяСвойстаОбъекта] = СоздатьОбъект(Прокси, ТипСвойстваОбъекта); + ОбъектXDTO[ИмяСвойстаОбъекта].name = ЭтаФорма[ИмяРеквизитаФормы]; + ОбъектXDTO[ИмяСвойстаОбъекта].objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ОбъектXDTO[ИмяСвойстаОбъекта].objectId.id = ЭтаФорма[ИмяРеквизитаФормы + "id"]; + ОбъектXDTO[ИмяСвойстаОбъекта].objectId.type = ЭтаФорма[ИмяРеквизитаФормы + "Тип"]; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Функция ЗаписатьОбъектВыполнить() + + ПодготовитьКПередачеИЗаписатьБизнесПроцесс(); + Модифицированность = Ложь; + Возврат Истина; + +КонецФункции \ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента.mdo b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента.mdo new file mode 100644 index 000000000..a4cfd4003 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента/ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента.mdo @@ -0,0 +1,19 @@ + + + ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента + + ru + Документооборот бизнес процесс обработка исходящего документа + + + + ru + + + PersonalComputer + MobileDevice + + ru + Бизнес-процесс "Обработка исходящего документа" + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/Form.form b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/Form.form new file mode 100644 index 000000000..4989de3bf --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/Form.form @@ -0,0 +1,1703 @@ + + + + ГлавнаяЗадачаПредставление + 34 + + <key>ru</key> + <value>Главная задача</value> + + true + true + + true + + + ГлавнаяЗадача + + + ГлавнаяЗадачаПредставлениеРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + + ГлавнаяЗадачаПредставлениеКонтекстноеМеню + 35 + true + + InputField + true + Enter + true + Left + true + + + Opening + ГлавнаяЗадачаПредставлениеОткрытие + + true + true + true + true + true + true + Normal + + + + Наименование + 1 + true + true + + true + + + Наименование + + + НаименованиеРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Описание + 3 + + <key>ru</key> + <value>Описание поручения (общее)</value> + + true + true + + true + + + Описание + + Top + + ОписаниеРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 4 + true + + InputField + Enter + true + Left + true + + true + 3 + true + true + true + true + true + true + Normal + + + + ПредметПредставление + 5 + true + true + + true + + + Предмет + + + ПредметПредставлениеРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + ПредметПредставлениеКонтекстноеМеню + 6 + true + + InputField + true + Enter + true + Left + true + + + Opening + ПредметОткрытие + + true + true + true + true + true + true + Normal + + + + ГруппаСрок + 7 + + СрокДата + 8 + true + true + + true + + + Срок + + + OnChange + СрокДатаПриИзменении + + + СрокДатаРасширеннаяПодсказка + 49 + Label + true + true + + Left + + + + СрокДатаКонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + true + true + true + + ru + ДЛФ=D + + true + true + true + Normal + + + + СрокВремя + 10 + true + true + + true + + + Срок + + None + + СрокВремяРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + СрокВремяКонтекстноеМеню + 11 + true + + InputField + Enter + true + Left + true + + 5 + true + true + true + false + + ru + ДФ=ЧЧ:мм + + true + true + true + Normal + + + + ВажностьПредставление + 12 + + <key>ru</key> + <value>Важность</value> + + true + true + + true + + + Важность + + + ВажностьПредставлениеРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + + ВажностьПредставлениеКонтекстноеМеню + 13 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВажностьАвтоПодбор + + + StartChoice + ВажностьНачалоВыбора + + + TextEditEnd + ВажностьОкончаниеВводаТекста + + + ChoiceProcessing + ВажностьОбработкаВыбора + + true + true + false + true + true + false + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа срок</value> + + + ru + Группа срок + + + ГруппаСрокРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ГруппаИсполнители + 31 + + Исполнители + 14 + true + true + + true + + + Исполнители + + None + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + ИсполнителиГруппа + 19 + + ИсполнителиИсполнительПредставление + 17 + + <key>ru</key> + <value>Кому</value> + + true + true + + true + + + Исполнители.Исполнитель + + + ИсполнителиИсполнительПредставлениеРасширеннаяПодсказка + 67 + Label + true + true + + Left + + + + ИсполнителиИсполнительПредставлениеКонтекстноеМеню + 18 + true + + InputField + Auto + true + Left + true + + + AutoComplete + УчастникБизнесПроцессаАвтоПодбор + + + StartChoice + ИсполнителиИсполнительНачалоВыбора + + + TextEditEnd + ИсполнителиИсполнительПредставлениеОкончаниеВводаТекста + + + ChoiceProcessing + УчастникБизнесПроцессаОбработкаВыбора + + true + true + true + true + true + true + true + true + Normal + + + + ИсполнителиОсновнойОбъектАдресацииПредставление + 20 + true + true + + true + + + Исполнители.ОсновнойОбъектАдресации + + None + + ИсполнителиОсновнойОбъектАдресацииПредставлениеРасширеннаяПодсказка + 69 + Label + true + true + + Left + + + + ИсполнителиОсновнойОбъектАдресацииПредставлениеКонтекстноеМеню + 21 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ИсполнителиДополнительныйОбъектАдресацииПредставление + 22 + true + true + + true + + + Исполнители.ДополнительныйОбъектАдресации + + None + + ИсполнителиДополнительныйОбъектАдресацииПредставлениеРасширеннаяПодсказка + 71 + Label + true + true + + Left + + + + ИсполнителиДополнительныйОбъектАдресацииПредставлениеКонтекстноеМеню + 23 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Исполнители группа</value> + + + ru + Исполнители группа + + + ИсполнителиГруппаРасширеннаяПодсказка + 66 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + ИсполнителиКоманднаяПанель + 16 + Left + true + + + ИсполнителиСтрокаПоиска + 57 + + ИсполнителиСтрокаПоискаРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + ИсполнителиСтрокаПоискаКонтекстноеМеню + 58 + true + + Исполнители + + true + + + + ИсполнителиСостояниеПросмотра + 60 + + ИсполнителиСостояниеПросмотраРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + + ИсполнителиСостояниеПросмотраКонтекстноеМеню + 61 + true + + ViewStatusAddition + Исполнители + + true + + + + ИсполнителиУправлениеПоиском + 63 + + ИсполнителиУправлениеПоискомРасширеннаяПодсказка + 65 + Label + true + true + + Left + + + + ИсполнителиУправлениеПоискомКонтекстноеМеню + 64 + true + + SearchControlAddition + Исполнители + + true + + + + ИсполнителиРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + + ИсполнителиКонтекстноеМеню + 15 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ true + true + + true + + + <key>ru</key> + <value>Группа исполнители</value> + + + ru + Группа исполнители + + + ГруппаИсполнителиРасширеннаяПодсказка + 55 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + +
+ + АвторПредставление + 29 + + <key>ru</key> + <value>Автор</value> + + true + true + + true + + + Автор + + + АвторПредставлениеРасширеннаяПодсказка + 81 + Label + true + true + + Left + + + + АвторПредставлениеКонтекстноеМеню + 30 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АвторАвтоПодбор + + + StartChoice + АвторНачалоВыбора + + + TextEditEnd + АвторОкончаниеВводаТекста + + + ChoiceProcessing + АвторОбработкаВыбора + + true + true + true + true + false + true + true + true + Normal + + + + ГруппаДаты + 24 + + ДатаНачала + 25 + + <key>ru</key> + <value>Начато</value> + + true + true + + true + + + ДатаНачала + + + ДатаНачалаРасширеннаяПодсказка + 84 + Label + true + true + + Left + + + + ДатаНачалаКонтекстноеМеню + 26 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ДатаЗавершения + 27 + + <key>ru</key> + <value>Завершено</value> + + true + true + + true + + + ДатаЗавершения + + + ДатаЗавершенияРасширеннаяПодсказка + 86 + Label + true + true + + Left + + + + ДатаЗавершенияКонтекстноеМеню + 28 + true + + LabelField + Enter + true + Left + true + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа даты</value> + + + ru + Группа даты + + + ГруппаДатыРасширеннаяПодсказка + 83 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаСтартоватьИЗакрыть + 32 + true + true + + true + + + ФормаСтартоватьИЗакрытьРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + Form.Command.СтартоватьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 33 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗаполнитьПоШаблону + 36 + true + true + + true + + + ФормаЗаполнитьПоШаблонуРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + Form.Command.ЗаполнитьПоШаблону + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 1 + + String + + + + true + + + true + + true + + + Описание + + <key>ru</key> + <value>Описание</value> + + 2 + + String + + + + true + + + true + + true + + + Предмет + + <key>ru</key> + <value>Предмет</value> + + 3 + + String + + + + true + + + true + + true + + + ПредметID + + <key>ru</key> + <value>Предмет ID</value> + + 4 + + String + + + + true + + + true + + + + ПредметТип + + <key>ru</key> + <value>Предмет тип</value> + + 5 + + String + + + + true + + + true + + + + Срок + + <key>ru</key> + <value>Срок</value> + + 6 + + Date + + + + true + + + true + + true + + + Важность + + <key>ru</key> + <value>Важность</value> + + 7 + + String + + + + true + + + true + + true + + + ВажностьID + + <key>ru</key> + <value>Важность ID</value> + + 8 + + String + + + + true + + + true + + + + ВажностьТип + + <key>ru</key> + <value>Важность тип</value> + + 9 + + String + + + + true + + + true + + + + Исполнители + + <key>ru</key> + <value>Исполнители</value> + + 10 + + ValueTable + + + true + + + true + + true + + Исполнитель + + <key>ru</key> + <value>Исполнитель</value> + + 1 + + String + + + + true + + + true + + + + ИсполнительID + + <key>ru</key> + <value>Исполнитель ID</value> + + 2 + + String + + + + true + + + true + + + + ИсполнительТип + + <key>ru</key> + <value>Исполнитель тип</value> + + 3 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресации + + <key>ru</key> + <value>Основной объект адресации</value> + + 4 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииID + + <key>ru</key> + <value>Основной объект адресации ID</value> + + 5 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииТип + + <key>ru</key> + <value>Основной объект адресации тип</value> + + 6 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресации + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 7 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииID + + <key>ru</key> + <value>Дополнительный объект адресации ID</value> + + 8 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииТип + + <key>ru</key> + <value>Дополнительный объект адресации тип</value> + + 9 + + String + + + + true + + + true + + + + + ДатаНачала + + <key>ru</key> + <value>Дата начала</value> + + 11 + + Date + + Date + + + + true + + + true + + true + + + ДатаЗавершения + + <key>ru</key> + <value>Дата завершения</value> + + 12 + + Date + + Date + + + + true + + + true + + true + + + Автор + + <key>ru</key> + <value>Автор</value> + + 13 + + String + + + + true + + + true + + true + + + АвторID + + <key>ru</key> + <value>Автор ID</value> + + 14 + + String + + + + true + + + true + + + + АвторТип + + <key>ru</key> + <value>Автор тип</value> + + 15 + + String + + + + true + + + true + + + + Завершен + + <key>ru</key> + <value>Завершен</value> + + 16 + + Boolean + + + true + + + true + + + + ОбъектID + + <key>ru</key> + <value>Объект ID</value> + + 17 + + String + + + + true + + + true + + + + Стартован + + <key>ru</key> + <value>Стартован</value> + + 18 + + Boolean + + + true + + + true + + + + ГлавнаяЗадачаID + + <key>ru</key> + <value>Главная задача ID</value> + + 19 + + String + + + + true + + + true + + + + ГлавнаяЗадача + + <key>ru</key> + <value>Главная задача</value> + + 20 + + String + + + + true + + + true + + true + + + ГлавнаяЗадачаТип + + <key>ru</key> + <value>Главная задача тип</value> + + 21 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 22 + + String + + + + true + + + true + + + + Записать + + <key>ru</key> + <value>Записать</value> + + 1 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + Auto + Auto + + + СтартоватьИЗакрыть + + <key>ru</key> + <value>Стартовать и закрыть</value> + + 2 + + ru + Стартовать и закрыть + + + true + + + + СтартоватьИЗакрыть + + + Auto + Auto + + + ЗаполнитьПоШаблону + + <key>ru</key> + <value>Заполнить по шаблону</value> + + 3 + + ru + Заполнить по шаблону + + + true + + + CommonPicture.ЗаполнитьПоОснованию + + + + ЗаполнитьПоШаблону + + + Auto + Auto + + + ID + + String + + + + + TargetID + + String + + + + + TargetName + + String + + + + + Type + + String + + + + + + + +
diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/Help/ru.html b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/Help/ru.html new file mode 100644 index 000000000..59bc144c1 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/Help/ru.html @@ -0,0 +1,6 @@ + +

Этот бизнес-процесс используется для передачи коллегам каких-либо документов для обязательного ознакомления.

+

Этот бизнес-процесс можно создавать непосредственно из карточки документа при помощи меню "Создать бизнес-процесс".

+

При старте этого бизнес-процесса все исполнители по списку автоматически получат задачу "Ознакомиться".

+

Для просмотра текущего состояния бизнес-процесса (списка выполненных и не выполненных задач) используйте команду "Задачи" в панели навигации документа, по которому было запущено Ознакомление.

+

Если не был выполнен запуск бизнес-процесса, заполнение формы может быть выполнено на основании шаблона бизнес-процесса. Для этого необходимо выполнить команду "Заполнить по шаблону" на командной панели формы. Если для данного типа бизнес-процесса и вида предмета бизнес-процесса настроены шаблоны бизнес-процессов, то система предложит выбрать один из шаблонов для заполнения формы. Если был настроен только один шаблон, то заполнение формы произойдет автоматически

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/Module.bsl b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/Module.bsl new file mode 100644 index 000000000..ba27e944d --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/Module.bsl @@ -0,0 +1,430 @@ +/////////////////////////////////////////////////////////// +//// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + //Если открывается новая карточка бизнес-процесса + Если Параметры.Свойство("Предмет") И ЗначениеЗаполнено(Параметры.Предмет) Тогда + + ЗаполнитьКарточкуНовогоБизнесПроцесса("DMBusinessProcessAcquaintance", ЭтаФорма, Параметры.Предмет); + + //Если открывается карточка имеющегося бизнес-процесса + ИначеЕсли ЗначениеЗаполнено(Параметры.id) + И ЗначениеЗаполнено(Параметры.type) Тогда + ОбъектID = Параметры.id; + ДанныеБП = РаботаС1СДокументооборот.ПолучитьОбъект(Параметры.type, Параметры.id); + Объект = ДанныеБП.objects[0]; + + ЗаполнитьФормуИзОбъектаXDTO(Объект); + + КонецЕсли; + + ЭтаФорма.Заголовок = Наименование; + Если НЕ ЗначениеЗаполнено(ОбъектID) Тогда + ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + НСтр("ru = ' (Создание)'"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessImportance", "Важность", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнителиИсполнительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИсполнителяБизнесПроцесса",, ЭтаФорма); + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.Свойство("Исполнитель", Элемент.Родитель.Родитель.ТекущиеДанные.Исполнитель); + Результат.Свойство("ИсполнительID", Элемент.Родитель.Родитель.ТекущиеДанные.ИсполнительID); + Результат.Свойство("ИсполнительТип", Элемент.Родитель.Родитель.ТекущиеДанные.ИсполнительТип); + + Результат.Свойство("ОсновнойОбъектАдресации", Элемент.Родитель.Родитель.ТекущиеДанные.ОсновнойОбъектАдресации); + Результат.Свойство("ОсновнойОбъектАдресацииID", Элемент.Родитель.Родитель.ТекущиеДанные.ОсновнойОбъектАдресацииID); + Результат.Свойство("ОсновнойОбъектАдресацииТип", Элемент.Родитель.Родитель.ТекущиеДанные.ОсновнойОбъектАдресацииТип); + + Результат.Свойство("ДополнительныйОбъектАдресации", Элемент.Родитель.Родитель.ТекущиеДанные.ДополнительныйОбъектАдресации); + Результат.Свойство("ДополнительныйОбъектАдресацииID", Элемент.Родитель.Родитель.ТекущиеДанные.ДополнительныйОбъектАдресацииID); + Результат.Свойство("ДополнительныйОбъектАдресацииТип", Элемент.Родитель.Родитель.ТекущиеДанные.ДополнительныйОбъектАдресацииТип); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Автор", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Режим = РежимДиалогаВопрос.ДаНетОтмена; + Ответ = Вопрос(ТекстВопроса, Режим); + Если Ответ = КодВозвратаДиалога.Да Тогда + Отказ = НЕ ЗаписатьОбъектВыполнить(); + ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда + Отказ = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГлавнаяЗадачаПредставлениеОткрытие(Элемент, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ГлавнаяЗадача) Тогда + ПараметрыФормы = Новый Структура("id, type", ГлавнаяЗадачаID, ГлавнаяЗадачаТип); + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотКарточкаЗадачи", ПараметрыФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПредметОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ЗначениеЗаполнено(Предмет) Тогда + РаботаС1СДокументооборотКлиент.ОткрытьКарточкуПредметаБизнесПроцесса(ПредметТип, ПредметID, Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВСписке(Элемент.Родитель.Родитель, ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнителиИсполнительПредставлениеОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВСписке(Элемент.Родитель.Родитель, ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СрокДатаПриИзменении(Элемент) + + Если Срок = НачалоДня(Срок) Тогда + Срок = КонецДня(Срок); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.ПредметПредставление Тогда + Предмет = Источник.Представление; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", ДанныеВыбора, Текст, СтандартнаяОбработка); + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Обработка команд формы + +&НаКлиенте +Процедура Записать(Команда) + + РезультатЗаписи = ЗаписатьОбъектВыполнить(); + + Если РезультатЗаписи Тогда + ПараметрыОповещения = Новый Структура("id", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + ЭтаФорма.Заголовок = Наименование; + Состояние(НСтр("ru = 'Бизнес-процесс """ + Наименование + """ сохранен.'")); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтартоватьИЗакрыть(Команда) + + РезультатЗапуска = ПодготовитьКПередачеИСтартоватьБизнесПроцесс(); + Если РезультатЗапуска Тогда + ПараметрыОповещения = Новый Структура("id", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + + ТекстСостояния = НСтр("ru = 'Бизнес-процесс """ + Наименование + """ успешно запущен.'"); + Состояние(ТекстСостояния); + + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПоШаблону(Команда) + + РезультатВыбораШаблона = РаботаС1СДокументооборотКлиент.ВыбратьШаблонБизнесПроцесса(ЭтаФорма); + Если ТипЗнч(РезультатВыбораШаблона) = Тип("Структура") Тогда + ЗаполнитьКарточкуПоШаблону(РезультатВыбораШаблона); + КонецЕсли; + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Служебные процедуры и функции + +&НаСервере +Процедура ЗаполнитьКарточкуПоШаблону(ДанныеШаблона) + + РезультатЗаполнения = РаботаС1СДокументооборотВызовСервера.ЗаполнитьБизнесПроцессПоШаблону(ЭтаФорма, ДанныеШаблона); + ЗаполнитьФормуИзОбъектаXDTO(РезультатЗаполнения.object); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКарточкуНовогоБизнесПроцесса(ТипБизнесПроцесса, Форма, Предмет) + + НовыйОбъект = РаботаС1СДокументооборот.ПолучитьНовыйОбъект(ТипБизнесПроцесса, Предмет); + ЗаполнитьФормуИзОбъектаXDTO(НовыйОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьФормуИзОбъектаXDTO(Объект) + + РаботаС1СДокументооборот.УстановитьСтандартнуюШапкуБизнесПроцесса(Объект, Этаформа); + Исполнители.Очистить(); + Для Каждого Исполнитель Из Объект.performers Цикл + НоваяСтрока = Исполнители.Добавить(); + РаботаС1СДокументооборот.УстановитьИсполнителяВСпискеИсполнителейНаКарточке(Исполнитель, НоваяСтрока); + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Функция СоздатьОбъект(Прокси, Тип) + + Возврат РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, Тип); + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИЗаписатьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + Если ЗначениеЗаполнено(ОбъектID) Тогда + РезультатЗаписи = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + Иначе + РезультатСоздания = РаботаС1СДокументооборот.СоздатьНовыйОбъект(Прокси, Объект); + КонецЕсли; + + Результат = ?(РезультатСоздания = Неопределено, РезультатЗаписи, РезультатСоздания); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат , "DMError") Тогда + ВызватьИсключение(РезультатСоздания.description); + Иначе + Если РезультатЗаписи <> Неопределено Тогда + ОбъектID = Результат.objects[0].objectId.id; + Иначе + ОбъектID = Результат.object.objectId.id; + КонецЕсли; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИСтартоватьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + РезультатЗапуска = РаботаС1СДокументооборот.ЗапуститьБизнесПроцесс(Прокси, Объект); + + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, РезультатЗапуска, "DMError") Тогда + ВызватьИсключение(РезультатЗапуска.description); + Иначе + ОбъектID = РезультатЗапуска.businessProcess.objectId.id; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьБизнесПроцесс(Прокси) + + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessAcquaintance"); + + Объект.name = Наименование; + Объект.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.objectId.id = ОбъектID; + Объект.objectId.type = "DMBusinessProcessAcquaintance"; + + //Общая шапка бизнес-процессов + Объект.author = СоздатьОбъект(Прокси, "DMUser"); + Объект.author.name = Автор; + Объект.author.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.author.objectId.id = АвторID; + Объект.author.objectId.type = АвторТип; + + Объект.importance = СоздатьОбъект(Прокси, "DMBusinessProcessImportance"); + Объект.importance.name = Важность; + Объект.importance.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.importance.objectId.id = ВажностьID; + Объект.importance.objectId.type = ВажностьТип; + + Объект.beginDate = ДатаНачала; + + Объект.target = СоздатьОбъект(Прокси, "DMObject"); + Объект.target.name = Предмет; + Объект.target.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.target.objectId.id = ПредметID; + Объект.target.objectId.type = ПредметТип; + + Объект.started = Стартован; + Объект.completed = Завершен; + Объект.description = Описание; + Объект.dueDate = Срок; + + //исполнители + Для Каждого Строка Из Исполнители Цикл + + Исполнитель = СоздатьОбъект(Прокси, "DMBusinessProcessTaskExecutor"); + + Если Строка.ИсполнительТип = "DMUser" Тогда + Исполнитель.user = СоздатьОбъект(Прокси, "DMUser"); + Исполнитель.user.name = Строка.Исполнитель; + Исполнитель.user.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.user.objectId.id = Строка.ИсполнительID; + Исполнитель.user.objectId.type = Строка.ИсполнительТип; + Иначе + Исполнитель.role = СоздатьОбъект(Прокси, "DMBusinessProcessExecutorRole"); + Исполнитель.role.name = Строка.Исполнитель; + Исполнитель.role.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.role.objectId.id = Строка.ИсполнительID; + Исполнитель.role.objectId.type = Строка.ИсполнительТип; + + Если ЗначениеЗаполнено(Строка.ОсновнойОбъектАдресации) Тогда + Исполнитель.mainAddressingObject = СоздатьОбъект(Прокси, "DMMainAddressingObject"); + Исполнитель.mainAddressingObject.name = Строка.ОсновнойОбъектАдресации; + Исполнитель.mainAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.mainAddressingObject.objectId.id = Строка.ОсновнойОбъектАдресацииID; + Исполнитель.mainAddressingObject.objectId.type = Строка.ОсновнойОбъектАдресацииТип; + КонецЕсли; + + Если ЗначениеЗаполнено(Строка.ДополнительныйОбъектАдресации) Тогда + Исполнитель.secondaryAddressingObject = СоздатьОбъект(Прокси, "DMSecondaryAddressingObject"); + Исполнитель.secondaryAddressingObject.name = Строка.ДополнительныйОбъектАдресации; + Исполнитель.secondaryAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.secondaryAddressingObject.objectId.id = Строка.ДополнительныйОбъектАдресацииID; + Исполнитель.secondaryAddressingObject.objectId.type = Строка.ДополнительныйОбъектАдресацииТип; + КонецЕсли; + КонецЕсли; + + Объект.performers.Добавить(Исполнитель); + + КонецЦикла; + + Возврат Объект; + +КонецФункции + +&НаКлиенте +Функция ЗаписатьОбъектВыполнить() + + ПодготовитьКПередачеИЗаписатьБизнесПроцесс(); + Модифицированность = Ложь; + Возврат Истина; + +КонецФункции + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/ДокументооборотБизнесПроцессОзнакомление.mdo b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/ДокументооборотБизнесПроцессОзнакомление.mdo new file mode 100644 index 000000000..378675e6d --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессОзнакомление/ДокументооборотБизнесПроцессОзнакомление.mdo @@ -0,0 +1,19 @@ + + + ДокументооборотБизнесПроцессОзнакомление + + ru + Документооборот бизнес процесс ознакомление + + + + ru + + + PersonalComputer + MobileDevice + + ru + Бизнес-процесс "Ознакомление" + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/Form.form b/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/Form.form new file mode 100644 index 000000000..800be032c --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/Form.form @@ -0,0 +1,1926 @@ + + + + ГлавнаяЗадачаПредставление + 31 + + <key>ru</key> + <value>Главная задача</value> + + true + true + + true + + + ГлавнаяЗадача + + + ГлавнаяЗадачаПредставлениеРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + + ГлавнаяЗадачаПредставлениеКонтекстноеМеню + 32 + true + + InputField + true + Enter + true + Left + true + + + Opening + ГлавнаяЗадачаПредставлениеОткрытие + + true + true + true + true + true + true + true + Normal + + + + Наименование + 1 + + <key>ru</key> + <value>Поручение</value> + + true + true + + true + + + Наименование + + Top + + НаименованиеРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Описание + 3 + true + true + + true + + + Описание + + Top + + ОписаниеРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 4 + true + + InputField + Enter + true + Left + true + + true + 4 + true + true + true + true + true + true + Normal + + + + ПредметПредставление + 5 + + <key>ru</key> + <value>Предмет</value> + + true + true + + true + + + Предмет + + + ПредметПредставлениеРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + + ПредметПредставлениеКонтекстноеМеню + 6 + true + + InputField + true + Enter + true + Left + true + + + Opening + ПредметОткрытие + + true + true + true + true + true + true + Normal + + + + ГруппаИсполнение + 16 + + ИсполнительПредставление + 7 + + <key>ru</key> + <value>Кому</value> + + true + true + + true + + + Исполнитель + + + ИсполнительПредставлениеРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + ИсполнительПредставлениеКонтекстноеМеню + 8 + true + + InputField + Enter + true + Left + true + + + AutoComplete + УчастникБизнесПроцессаАвтоПодбор + + + StartChoice + ИсполнительНачалоВыбора + + + TextEditEnd + УчастникБизнесПроцессаОкончаниеВводаТекста + + + ChoiceProcessing + ИсполнительПредставлениеОбработкаВыбора + + true + true + true + true + false + true + true + true + Normal + + + + ГруппаСрок + 9 + + СрокДата + 10 + true + true + + true + + + Срок + + + OnChange + СрокДатаПриИзменении + + + СрокДатаРасширеннаяПодсказка + 49 + Label + true + true + + Left + + + + СрокДатаКонтекстноеМеню + 11 + true + + InputField + Enter + true + Left + true + + true + true + true + + ru + ДЛФ=D + + true + true + true + Normal + + + + СрокВремя + 12 + true + true + + true + + + Срок + + None + + СрокВремяРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + СрокВремяКонтекстноеМеню + 13 + true + + InputField + Enter + true + Left + true + + 5 + true + true + true + false + + ru + ДФ=ЧЧ:мм + + true + true + true + Normal + + + + ВажностьПредставление + 14 + + <key>ru</key> + <value>Важность</value> + + true + true + + true + + + Важность + + + ВажностьПредставлениеРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + + ВажностьПредставлениеКонтекстноеМеню + 15 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВажностьАвтоПодбор + + + StartChoice + ВажностьНачалоВыбора + + + TextEditEnd + ВажностьОкончаниеВводаТекста + + + ChoiceProcessing + ВажностьОбработкаВыбора + + true + true + false + true + true + false + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа срок</value> + + + ru + Группа срок + + + ГруппаСрокРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа исполнение</value> + + + ru + Группа исполнение + + + ГруппаИсполнениеРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ГруппаПроверить + 17 + + ПроверяющийПредставление + 18 + + <key>ru</key> + <value>Проверить</value> + + true + true + + true + + + Проверяющий + + + ПроверяющийПредставлениеРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + + ПроверяющийПредставлениеКонтекстноеМеню + 19 + true + + InputField + Enter + true + Left + true + + + AutoComplete + УчастникБизнесПроцессаАвтоПодбор + + + StartChoice + ПроверяющийНачалоВыбора + + + TextEditEnd + УчастникБизнесПроцессаОкончаниеВводаТекста + + + ChoiceProcessing + ПроверяющийОбработкаВыбора + + true + true + true + true + true + true + true + true + Normal + + + + КонтролерПредставление + 20 + + <key>ru</key> + <value>На контроле</value> + + true + true + + true + + + Контролер + + + КонтролерПредставлениеРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + + КонтролерПредставлениеКонтекстноеМеню + 21 + true + + InputField + Enter + true + Left + true + + + AutoComplete + УчастникБизнесПроцессаАвтоПодбор + + + StartChoice + КонтролерНачалоВыбора + + + TextEditEnd + УчастникБизнесПроцессаОкончаниеВводаТекста + + + ChoiceProcessing + КонтролерОбработкаВыбора + + true + true + true + true + true + true + true + true + Normal + + + + АвторПредставление + 22 + + <key>ru</key> + <value>Автор</value> + + true + true + + true + + + Автор + + + АвторПредставлениеРасширеннаяПодсказка + 60 + Label + true + true + + Left + + + + АвторПредставлениеКонтекстноеМеню + 23 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АвторАвтоПодбор + + + StartChoice + АвторПредставлениеНачалоВыбора + + + TextEditEnd + АвторОкончаниеВводаТекста + + + ChoiceProcessing + АвторОбработкаВыбора + + true + true + true + true + false + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа проверить</value> + + + ru + Группа проверить + + + ГруппаПроверитьРасширеннаяПодсказка + 55 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ГруппаИнфо + 24 + + ДатаНачала + 25 + + <key>ru</key> + <value>Начато</value> + + true + true + + true + + + ДатаНачала + + + ДатаНачалаРасширеннаяПодсказка + 63 + Label + true + true + + Left + + + + ДатаНачалаКонтекстноеМеню + 26 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ДатаЗавершения + 27 + + <key>ru</key> + <value>Завершено</value> + + true + true + + true + + + ДатаЗавершения + + + ДатаЗавершенияРасширеннаяПодсказка + 65 + Label + true + true + + Left + + + + ДатаЗавершенияКонтекстноеМеню + 28 + true + + LabelField + Enter + true + Left + true + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа инфо</value> + + + ru + Группа инфо + + + ГруппаИнфоРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаСтартоватьИЗакрыть + 29 + true + true + + true + + + ФормаСтартоватьИЗакрытьРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + Form.Command.СтартоватьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 30 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗаполнитьПоШаблону + 33 + true + true + + true + + + ФормаЗаполнитьПоШаблонуРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + Form.Command.ЗаполнитьПоШаблону + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 1 + + String + + + + true + + + true + + true + + + Описание + + <key>ru</key> + <value>Описание</value> + + 2 + + String + + + + true + + + true + + true + + + Предмет + + <key>ru</key> + <value>Предмет</value> + + 3 + + String + + + + true + + + true + + true + + + ПредметID + + <key>ru</key> + <value>Предмет ID</value> + + 4 + + String + + + + true + + + true + + + + ПредметТип + + <key>ru</key> + <value>Предмет тип</value> + + 5 + + String + + + + true + + + true + + + + Исполнитель + + <key>ru</key> + <value>Исполнитель</value> + + 6 + + String + + + + true + + + true + + true + + + ИсполнительТип + + <key>ru</key> + <value>Исполнитель тип</value> + + 7 + + String + + + + true + + + true + + + + ИсполнительID + + <key>ru</key> + <value>Исполнитель ID</value> + + 8 + + String + + + + true + + + true + + + + Срок + + <key>ru</key> + <value>Срок</value> + + 9 + + Date + + + + true + + + true + + true + + + Важность + + <key>ru</key> + <value>Важность</value> + + 10 + + String + + + + true + + + true + + true + + + ВажностьТип + + <key>ru</key> + <value>Важность тип</value> + + 11 + + String + + + + true + + + true + + + + ВажностьID + + <key>ru</key> + <value>Важность ID</value> + + 12 + + String + + + + true + + + true + + + + Проверяющий + + <key>ru</key> + <value>Проверяющий</value> + + 13 + + String + + + + true + + + true + + true + + + ПроверяющийТип + + <key>ru</key> + <value>Проверяющий тип</value> + + 14 + + String + + + + true + + + true + + + + ПроверяющийID + + <key>ru</key> + <value>Проверяющий ID</value> + + 15 + + String + + + + true + + + true + + + + Контролер + + <key>ru</key> + <value>Контролер</value> + + 16 + + String + + + + true + + + true + + true + + + КонтролерТип + + <key>ru</key> + <value>Контролер тип</value> + + 17 + + String + + + + true + + + true + + + + КонтролерID + + <key>ru</key> + <value>Контролер ID</value> + + 18 + + String + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 19 + + String + + + + true + + + true + + true + + + АвторID + + <key>ru</key> + <value>Автор ID</value> + + 20 + + String + + + + true + + + true + + + + АвторТип + + <key>ru</key> + <value>Автор тип</value> + + 21 + + String + + + + true + + + true + + + + ДатаНачала + + <key>ru</key> + <value>Дата начала</value> + + 22 + + Date + + Date + + + + true + + + true + + true + + + ДатаЗавершения + + <key>ru</key> + <value>Дата завершения</value> + + 23 + + Date + + Date + + + + true + + + true + + true + + + Завершен + + <key>ru</key> + <value>Завершен</value> + + 24 + + Boolean + + + true + + + true + + + + Стартован + + <key>ru</key> + <value>Стартован</value> + + 25 + + Boolean + + + true + + + true + + + + ОбъектID + + <key>ru</key> + <value>Объект ID</value> + + 26 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииКонтролераID + + <key>ru</key> + <value>Дополнительный объект адресации контролера ID</value> + + 27 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииКонтролера + + <key>ru</key> + <value>Дополнительный объект адресации контролера</value> + + 28 + + String + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииКонтролераТип + + <key>ru</key> + <value>Дополнительный объект адресации контролера тип</value> + + 29 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииПроверяющегоID + + <key>ru</key> + <value>Дополнительный объект адресации проверяющего ID</value> + + 30 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииПроверяющего + + <key>ru</key> + <value>Дополнительный объект адресации проверяющего</value> + + 31 + + String + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииПроверяющегоТип + + <key>ru</key> + <value>Дополнительный объект адресации проверяющего тип</value> + + 32 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииКонтролераID + + <key>ru</key> + <value>Основной объект адресации контролера ID</value> + + 33 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииКонтролера + + <key>ru</key> + <value>Основной объект адресации контролера</value> + + 34 + + String + + + + true + + + true + + true + + + ОсновнойОбъектАдресацииКонтролераТип + + <key>ru</key> + <value>Основной объект адресации контролера тип</value> + + 35 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииПроверяющегоID + + <key>ru</key> + <value>Основной объект адресации проверяющего ID</value> + + 36 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииПроверяющего + + <key>ru</key> + <value>Основной объект адресации проверяющего</value> + + 37 + + String + + + + true + + + true + + true + + + ОсновнойОбъектАдресацииПроверяющегоТип + + <key>ru</key> + <value>Основной объект адресации проверяющего тип</value> + + 38 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресации + + <key>ru</key> + <value>Основной объект адресации</value> + + 39 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииТип + + <key>ru</key> + <value>Основной объект адресации тип</value> + + 40 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииID + + <key>ru</key> + <value>Основной объект адресации ID</value> + + 41 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресации + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 42 + + String + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииТип + + <key>ru</key> + <value>Дополнительный объект адресации тип</value> + + 43 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииID + + <key>ru</key> + <value>Дополнительный объект адресации ID</value> + + 44 + + String + + + + true + + + true + + + + ГлавнаяЗадачаID + + <key>ru</key> + <value>Главная задача ID</value> + + 45 + + String + + + + true + + + true + + + + ГлавнаяЗадача + + <key>ru</key> + <value>Главная задача</value> + + 46 + + String + + + + true + + + true + + true + + + ГлавнаяЗадачаТип + + <key>ru</key> + <value>Главная задача тип</value> + + 47 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 48 + + String + + + + true + + + true + + + + СтартоватьИЗакрыть + + <key>ru</key> + <value>Стартовать и закрыть</value> + + 1 + + ru + Стартовать и закрыть + + + true + + + + СтартоватьИЗакрыть + + + Auto + Auto + + + Записать + + <key>ru</key> + <value>Записать</value> + + 2 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + Auto + Auto + + + ЗаполнитьПоШаблону + + <key>ru</key> + <value>Заполнить по шаблону</value> + + 3 + + ru + Заполнить по шаблону + + + true + + + CommonPicture.ЗаполнитьПоОснованию + + + + ЗаполнитьПоШаблону + + + Auto + Auto + + + ID + + String + + + + + Type + + String + + + + + TargetName + + String + + + + + TargetID + + String + + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/Help/ru.html b/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/Help/ru.html new file mode 100644 index 000000000..a0136f459 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/Help/ru.html @@ -0,0 +1,8 @@ + +

Этот бизнес-процесс следует использовать для выдачи простых поручений сотрудникам.

+

После выполнения задачи исполнителем, она поступает на проверку проверяющему (по умолчанию - автор бизнес-процесса). Проверяющий имеет возможность вернуть исполнителю задачу на доработку. Пользователь, указанный в поле "Контролер", получит задачу одновременно с исполнителем. В обязанности Контролера входит слежение за сроками выполнения поручения.

+

Бизнес-процесс "Поручение" считается завершенным, после того как исполнитель выполнил свою задачу и проверяющий подтвердил выполнение, задача контролера при этом завершается автоматически.

+

Этот бизнес-процесс можно создавать непосредственно из карточки документа при помощи меню "Создать бизнес-процесс".

+

Для просмотра текущего состояния бизнес-процесса (списка выполненных и не выполненных задач) используйте команду "Задачи" в панели навигации карточки документа, по которому были выданы поручения.

+

Для того, чтобы направить задачу руководителю, рекомендуется использовать бизнес-процесс Рассмотрение.

+

Если не был выполнен запуск бизнес-процесса, заполнение формы может быть выполнено на основании шаблона бизнес-процесса. Для этого необходимо выполнить команду "Заполнить по шаблону" на командной панели формы. Если для данного типа бизнес-процесса и вида предмета бизнес-процесса настроены шаблоны бизнес-процессов, то система предложит выбрать один из шаблонов для заполнения формы. Если был настроен только один шаблон, то заполнение формы произойдет автоматически.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/Module.bsl b/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/Module.bsl new file mode 100644 index 000000000..f9c5ce586 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/Module.bsl @@ -0,0 +1,538 @@ + +/////////////////////////////////////////////////////////// +//// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + //Если открывается новая карточка бизнес-процесса + Если Параметры.Свойство("Предмет") И ЗначениеЗаполнено(Параметры.Предмет) Тогда + + ЗаполнитьКарточкуНовогоБизнесПроцесса("DMBusinessProcessOrder", ЭтаФорма, Параметры.Предмет); + + //Если открывается карточка имеющегося бизнес-процесса + ИначеЕсли ЗначениеЗаполнено(Параметры.ID) И ЗначениеЗаполнено(Параметры.Type) Тогда + ОбъектID = Параметры.ID; + ДанныеБП = РаботаС1СДокументооборот.ПолучитьОбъект(Параметры.Type, Параметры.ID); + Объект = ДанныеБП.objects[0]; + + ЗаполнитьФормуИзОбъектаXDTO(Объект); + КонецЕсли; + + ЭтаФорма.Заголовок = Наименование; + Если НЕ ЗначениеЗаполнено(ОбъектID) Тогда + ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + НСтр("ru = ' (Создание)'"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessImportance", "Важность", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИсполнителяБизнесПроцесса",, ЭтаФорма); + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.Свойство("Исполнитель", Исполнитель); + Результат.Свойство("ИсполнительID", ИсполнительID); + Результат.Свойство("ИсполнительТип", ИсполнительТип); + + Результат.Свойство("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации); + Результат.Свойство("ОсновнойОбъектАдресацииID", ОсновнойОбъектАдресацииID); + Результат.Свойство("ОсновнойОбъектАдресацииТип", ОсновнойОбъектАдресацииТип); + + Результат.Свойство("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации); + Результат.Свойство("ДополнительныйОбъектАдресацииID", ДополнительныйОбъектАдресацииID); + Результат.Свойство("ДополнительныйОбъектАдресацииТип", ДополнительныйОбъектАдресацииТип); + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверяющийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИсполнителяБизнесПроцесса",, ЭтаФорма); + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.Свойство("Исполнитель", Проверяющий); + Результат.Свойство("ИсполнительID", ПроверяющийID); + Результат.Свойство("ИсполнительТип", ПроверяющийТип); + + Результат.Свойство("ОсновнойОбъектАдресации", ОсновнойОбъектАдресацииПроверяющего); + Результат.Свойство("ОсновнойОбъектАдресацииID", ОсновнойОбъектАдресацииПроверяющегоID); + Результат.Свойство("ОсновнойОбъектАдресацииТип", ОсновнойОбъектАдресацииПроверяющегоТип); + + Результат.Свойство("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресацииПроверяющего); + Результат.Свойство("ДополнительныйОбъектАдресацииID", ДополнительныйОбъектАдресацииПроверяющегоID); + Результат.Свойство("ДополнительныйОбъектАдресацииТип",ДополнительныйОбъектАдресацииПроверяющегоТип); + +КонецПроцедуры + +&НаКлиенте +Процедура КонтролерНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИсполнителяБизнесПроцесса",, ЭтаФорма); + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.Свойство("Исполнитель", Контролер); + Результат.Свойство("ИсполнительID", КонтролерID); + Результат.Свойство("ИсполнительТип", КонтролерТип); + + Результат.Свойство("ОсновнойОбъектАдресации",ОсновнойОбъектАдресацииКонтролера); + Результат.Свойство("ОсновнойОбъектАдресацииID", ОсновнойОбъектАдресацииКонтролераID); + Результат.Свойство("ОсновнойОбъектАдресацииТип", ОсновнойОбъектАдресацииКонтролераТип); + + Результат.Свойство("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресацииКонтролера); + Результат.Свойство("ДополнительныйОбъектАдресацииID", ДополнительныйОбъектАдресацииКонтролераID); + Результат.Свойство("ДополнительныйОбъектАдресацииТип", ДополнительныйОбъектАдресацииКонтролераТип); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Автор", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Режим = РежимДиалогаВопрос.ДаНетОтмена; + Ответ = Вопрос(ТекстВопроса, Режим); + Если Ответ = КодВозвратаДиалога.Да Тогда + Отказ = НЕ ЗаписатьОбъектВыполнить(); + ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда + Отказ = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГлавнаяЗадачаПредставлениеОткрытие(Элемент, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ГлавнаяЗадача) Тогда + ПараметрыФормы = Новый Структура("ID, Type", ГлавнаяЗадачаID, ГлавнаяЗадачаТип); + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотКарточкаЗадачи", ПараметрыФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПредметОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ЗначениеЗаполнено(Предмет) Тогда + РаботаС1СДокументооборотКлиент.ОткрытьКарточкуПредметаБизнесПроцесса(ПредметТип, ПредметID, Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + Если Элемент = Элементы.ПроверяющийПредставление Тогда + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Проверяющий", "ОбъектАдресацииПроверяющего", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + ИначеЕсли Элемент = Элементы.КонтролерПредставление Тогда + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Контролер", "ОбъектАдресацииКонтролера", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + Иначе + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Исполнитель", "ОбъектАдресации", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + КонецЕсли; + СтандартнаяОбработка = Истина; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительПредставлениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Исполнитель", "ОбъектАдресации", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверяющийОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Проверяющий", "ОбъектАдресацииПроверяющего", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура КонтролерОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Контролер", "ОбъектАдресацииКонтролера", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СрокДатаПриИзменении(Элемент) + + Если Срок = НачалоДня(Срок) Тогда + Срок = КонецДня(Срок); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.ПредметПредставление Тогда + Предмет = Источник.Представление; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", ДанныеВыбора, Текст, СтандартнаяОбработка); + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Обработка команд формы + +&НаКлиенте +Процедура Записать(Команда) + + РезультатЗаписи = ЗаписатьОбъектВыполнить(); + + Если РезультатЗаписи Тогда + ПараметрыОповещения = Новый Структура("ID", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + ЭтаФорма.Заголовок = Наименование; + Состояние(НСтр("ru = 'Бизнес-процесс """ + Наименование + """ сохранен.'")); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтартоватьИЗакрыть(Команда) + + РезультатЗапуска = ПодготовитьКПередачеИСтартоватьБизнесПроцесс(); + Если РезультатЗапуска Тогда + ПараметрыОповещения = Новый Структура("ID", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + + ТекстСостояния = НСтр("ru = 'Бизнес-процесс """ + Наименование + """ успешно запущен.'"); + Состояние(ТекстСостояния); + + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПоШаблону(Команда) + + РезультатВыбораШаблона = РаботаС1СДокументооборотКлиент.ВыбратьШаблонБизнесПроцесса(ЭтаФорма); + Если ТипЗнч(РезультатВыбораШаблона) = Тип("Структура") Тогда + ЗаполнитьКарточкуПоШаблону(РезультатВыбораШаблона); + КонецЕсли; + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Служебные процедуры и функции + +&НаСервере +Процедура ЗаполнитьКарточкуПоШаблону(ДанныеШаблона) + + РезультатЗаполнения = РаботаС1СДокументооборотВызовСервера.ЗаполнитьБизнесПроцессПоШаблону(ЭтаФорма, ДанныеШаблона); + ЗаполнитьФормуИзОбъектаXDTO(РезультатЗаполнения.object); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКарточкуНовогоБизнесПроцесса(ТипБизнесПроцесса, Форма, Предмет) + + НовыйОбъект = РаботаС1СДокументооборот.ПолучитьНовыйОбъект(ТипБизнесПроцесса, Предмет); + ЗаполнитьФормуИзОбъектаXDTO(НовыйОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьФормуИзОбъектаXDTO(Объект) + + РаботаС1СДокументооборот.УстановитьСтандартнуюШапкуБизнесПроцесса(Объект, Этаформа); + РаботаС1СДокументооборот.УстановитьЕдинственногоИсполнителяНаКарточке(Объект, Этаформа); + РаботаС1СДокументооборот.УстановитьКонтролераНаКарточке(Объект, Этаформа); + РаботаС1СДокументооборот.УстановитьПроверяющегоНаКарточке(Объект, Этаформа); + +КонецПроцедуры + +&НаСервере +Функция СоздатьОбъект(Прокси, Тип) + + Возврат РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, Тип); + +КонецФункции + +&НаСервере +Процедура СоздатьУчастникаБизнесПроцесса(Прокси, Объект, Форма, ИмяРеквизита, ИмяРеквизитаАдресации) + + Если ЗначениеЗаполнено(Форма[ИмяРеквизита]) Тогда + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessTaskExecutor"); + Если Форма[ИмяРеквизита + "Тип"] = "DMUser" Тогда + Объект.user = СоздатьОбъект(Прокси, "DMUser"); + Объект.user.name = Форма[ИмяРеквизита]; + Объект.user.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.user.objectId.id = Форма[ИмяРеквизита + "ID"]; + Объект.user.objectId.type = Форма[ИмяРеквизита + "Тип"]; + Иначе + Объект.role = СоздатьОбъект(Прокси, "DMBusinessProcessExecutorRole"); + Объект.role.name = Форма[ИмяРеквизита]; + Объект.role.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.role.objectId.id = Форма[ИмяРеквизита + "ID"]; + Объект.role.objectId.type = Форма[ИмяРеквизита + "Тип"]; + + Если ЗначениеЗаполнено(Форма["Основной" + ИмяРеквизитаАдресации]) Тогда + Объект.mainAddressingObject = СоздатьОбъект(Прокси, "DMMainAddressingObject"); + Объект.mainAddressingObject.name = Форма["Основной" + ИмяРеквизитаАдресации]; + Объект.mainAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.mainAddressingObject.objectId.id = Форма["Основной" + ИмяРеквизитаАдресации + "ID"]; + Объект.mainAddressingObject.objectId.type = Форма["Основной" + ИмяРеквизитаАдресации + "Тип"]; + КонецЕсли; + + Если ЗначениеЗаполнено(Форма["Дополнительный" + ИмяРеквизитаАдресации]) Тогда + Объект.secondaryAddressingObject = СоздатьОбъект(Прокси, "DMSecondaryAddressingObject"); + Объект.secondaryAddressingObject.name = Форма["Дополнительный" + ИмяРеквизитаАдресации]; + Объект.secondaryAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.secondaryAddressingObject.objectId.id = Форма["Дополнительный" + ИмяРеквизитаАдресации + "ID"]; + Объект.secondaryAddressingObject.objectId.type = Форма["Дополнительный" + ИмяРеквизитаАдресации + "Тип"]; + КонецЕсли; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция ПодготовитьКПередачеИЗаписатьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + Если ЗначениеЗаполнено(ОбъектID) Тогда + РезультатЗаписи = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + Иначе + РезультатСоздания = РаботаС1СДокументооборот.СоздатьНовыйОбъект(Прокси, Объект); + КонецЕсли; + + Результат = ?(РезультатСоздания = Неопределено, РезультатЗаписи, РезультатСоздания); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат , "DMError") Тогда + ВызватьИсключение(РезультатСоздания.description); + Иначе + Если РезультатЗаписи <> Неопределено Тогда + ОбъектID = Результат.objects[0].objectId.id; + Иначе + ОбъектID = Результат.object.objectId.id; + КонецЕсли; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИСтартоватьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + РезультатЗапуска = РаботаС1СДокументооборот.ЗапуститьБизнесПроцесс(Прокси, Объект); + + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, РезультатЗапуска, "DMError") Тогда + ВызватьИсключение(РезультатЗапуска.description); + Иначе + ОбъектID = РезультатЗапуска.businessProcess.objectId.id; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьБизнесПроцесс(Прокси) + + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessOrder"); + + Объект.name = Наименование; + Объект.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.objectId.id = ОбъектID; + Объект.objectId.Type = "DMBusinessProcessOrder"; + + //Общая шапка бизнес-процессов + Объект.author = СоздатьОбъект(Прокси, "DMUser"); + Объект.author.name = Автор; + Объект.author.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.author.objectId.id = АвторID; + Объект.author.objectId.type = АвторТип; + + Объект.importance = СоздатьОбъект(Прокси, "DMBusinessProcessImportance"); + Объект.importance.name = Важность; + Объект.importance.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.importance.objectId.id = ВажностьID; + Объект.importance.objectId.type = ВажностьТип; + + Объект.beginDate = ДатаНачала; + + Объект.target = СоздатьОбъект(Прокси, "DMObject"); + Объект.target.name = Предмет; + Объект.target.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.target.objectId.id = ПредметID; + Объект.target.objectId.type = ПредметТип; + + Объект.started = Стартован; + Объект.completed = Завершен; + Объект.description = Описание; + Объект.duedate = Срок; + + //специфика Поручения + + //контролер + СоздатьУчастникаБизнесПроцесса(Прокси, Объект.controller, ЭтаФорма, "Контролер", "ОбъектАдресацииКонтролера"); + + //проверяющий + СоздатьУчастникаБизнесПроцесса(Прокси, Объект.verifier, ЭтаФорма, "Проверяющий", "ОбъектАдресацииПроверяющего"); + + //исполнитель + ИсполнительБП = СоздатьОбъект(Прокси, "DMBusinessProcessTaskExecutor"); + + Если ИсполнительТип = "DMUser" Тогда + ИсполнительБП.user = СоздатьОбъект(Прокси, "DMUser"); + ИсполнительБП.user.name = Исполнитель; + ИсполнительБП.user.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.user.objectId.id = ИсполнительID; + ИсполнительБП.user.objectId.type = ИсполнительТип; + Иначе + ИсполнительБП.role = СоздатьОбъект(Прокси, "DMBusinessProcessExecutorRole"); + ИсполнительБП.role.name = Исполнитель; + ИсполнительБП.role.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.role.objectId.id = ИсполнительID; + ИсполнительБП.role.objectId.type = ИсполнительТип; + + Если ЗначениеЗаполнено(ОсновнойОбъектАдресации) Тогда + ИсполнительБП.mainAddressingObject = СоздатьОбъект(Прокси, "DMMainAddressingObject"); + ИсполнительБП.mainAddressingObject.name = ОсновнойОбъектАдресации; + ИсполнительБП.mainAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.mainAddressingObject.objectId.id = ОсновнойОбъектАдресацииID; + ИсполнительБП.mainAddressingObject.objectId.type = ОсновнойОбъектАдресацииТип; + КонецЕсли; + + Если ЗначениеЗаполнено(ДополнительныйОбъектАдресации) Тогда + ИсполнительБП.secondaryAddressingObject = СоздатьОбъект(Прокси, "DMSecondaryAddressingObject"); + ИсполнительБП.secondaryAddressingObject.name = ДополнительныйОбъектАдресации; + ИсполнительБП.secondaryAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.secondaryAddressingObject.objectId.id = ДополнительныйОбъектАдресацииID; + ИсполнительБП.secondaryAddressingObject.objectId.type = ДополнительныйОбъектАдресацииТип; + КонецЕсли; + КонецЕсли; + + Объект.performer = ИсполнительБП; + + Возврат Объект; + +КонецФункции + +&НаКлиенте +Функция ЗаписатьОбъектВыполнить() + + ПодготовитьКПередачеИЗаписатьБизнесПроцесс(); + Модифицированность = Ложь; + Возврат Истина; + +КонецФункции + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/ДокументооборотБизнесПроцессПоручение.mdo b/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/ДокументооборотБизнесПроцессПоручение.mdo new file mode 100644 index 000000000..c092838ed --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессПоручение/ДокументооборотБизнесПроцессПоручение.mdo @@ -0,0 +1,19 @@ + + + ДокументооборотБизнесПроцессПоручение + + ru + Документооборот бизнес процесс поручение + + + + ru + + + PersonalComputer + MobileDevice + + ru + Бизнес-процесс "Поручение" + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/Form.form b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/Form.form new file mode 100644 index 000000000..95da2ec98 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/Form.form @@ -0,0 +1,1532 @@ + + + + ГлавнаяЗадачаПредставление + 29 + + <key>ru</key> + <value>Главная задача</value> + + true + true + + true + + + ГлавнаяЗадача + + + ГлавнаяЗадачаПредставлениеРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + + ГлавнаяЗадачаПредставлениеКонтекстноеМеню + 30 + true + + InputField + true + Enter + true + Left + true + + + Opening + ГлавнаяЗадачаПредставлениеОткрытие + + true + true + true + true + true + true + Normal + + + + Наименование + 1 + true + true + + true + + + Наименование + + Top + + НаименованиеРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Описание + 3 + true + true + + true + + + Описание + + Top + + ОписаниеРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 4 + true + + InputField + Enter + true + Left + true + + true + 3 + true + true + true + true + true + true + Normal + + + + ГруппаОтступ + 5 + + ПредметПредставление + 6 + + <key>ru</key> + <value>Предмет</value> + + true + true + + true + + + Предмет + + + ПредметПредставлениеРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + ПредметПредставлениеКонтекстноеМеню + 7 + true + + InputField + true + Enter + true + Left + true + + + Opening + ПредметОткрытие + + true + true + true + true + true + true + Normal + + + + ИсполнительПредставление + 8 + + <key>ru</key> + <value>Кому</value> + + true + true + + true + + + Исполнитель + + + ИсполнительПредставлениеРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + + ИсполнительПредставлениеКонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + + AutoComplete + УчастникБизнесПроцессаАвтоПодбор + + + StartChoice + ИсполнительНачалоВыбора + + + TextEditEnd + УчастникБизнесПроцессаОкончаниеВводаТекста + + + ChoiceProcessing + ИсполнительПредставлениеОбработкаВыбора + + true + true + true + true + false + true + true + true + Normal + + + + ГруппаСрок + 10 + + СрокДата + 11 + true + true + + true + + + Срок + + + OnChange + СрокДатаПриИзменении + + + СрокДатаРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + + СрокДатаКонтекстноеМеню + 12 + true + + InputField + Enter + true + Left + true + + true + true + true + + ru + ДЛФ=D + + true + true + true + Normal + + + + СрокВремя + 13 + true + true + + true + + + Срок + + None + + СрокВремяРасширеннаяПодсказка + 49 + Label + true + true + + Left + + + + СрокВремяКонтекстноеМеню + 14 + true + + InputField + Enter + true + Left + true + + 5 + true + true + true + false + + ru + ДФ=ЧЧ:мм + + true + true + true + Normal + + + + ВажностьПредставление + 15 + + <key>ru</key> + <value>Важность</value> + + true + true + + true + + + Важность + + + ВажностьПредставлениеРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + ВажностьПредставлениеКонтекстноеМеню + 16 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВажностьАвтоПодбор + + + StartChoice + ВажностьНачалоВыбора + + + TextEditEnd + ВажностьОкончаниеВводаТекста + + + ChoiceProcessing + ВажностьОбработкаВыбора + + true + true + false + true + true + false + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа срок</value> + + + ru + Группа срок + + + ГруппаСрокРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа отступ</value> + + + ru + Группа отступ + + + ГруппаОтступРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ГруппаРезолюция + 17 + + Резолюция + 18 + + <key>ru</key> + <value>Проект резолюции</value> + + true + true + + true + + + Резолюция + + Top + + РезолюцияРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + + РезолюцияКонтекстноеМеню + 19 + true + + InputField + Enter + true + Left + true + + true + 3 + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа резолюция</value> + + + ru + Группа резолюция + + + ГруппаРезолюцияРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + АвторПредставление + 20 + + <key>ru</key> + <value>Автор</value> + + true + true + + true + + + Автор + + + АвторПредставлениеРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + + АвторПредставлениеКонтекстноеМеню + 21 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АвторАвтоПодбор + + + StartChoice + АвторПредставлениеНачалоВыбора + + + TextEditEnd + АвторОкончаниеВводаТекста + + + ChoiceProcessing + АвторОбработкаВыбора + + true + true + true + true + false + true + true + true + Normal + + + + ГруппаИнфо + 22 + + ДатаНачала + 23 + + <key>ru</key> + <value>Начато</value> + + true + true + + true + + + ДатаНачала + + + ДатаНачалаРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + ДатаНачалаКонтекстноеМеню + 24 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ДатаЗавершения + 25 + + <key>ru</key> + <value>Завершено</value> + + true + true + + true + + + ДатаЗавершения + + + ДатаЗавершенияРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + + ДатаЗавершенияКонтекстноеМеню + 26 + true + + LabelField + Enter + true + Left + true + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа инфо</value> + + + ru + Группа инфо + + + ГруппаИнфоРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаСтартоватьИЗакрыть + 27 + true + true + + true + + + ФормаСтартоватьИЗакрытьРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + Form.Command.СтартоватьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 28 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗаполнитьПоШаблону + 31 + true + true + + true + + + ФормаЗаполнитьПоШаблонуРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + Form.Command.ЗаполнитьПоШаблону + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + DontBlock + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + АвторID + + <key>ru</key> + <value>Автор ID</value> + + 2 + + String + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 3 + + String + + + + true + + + true + + true + + + АвторТип + + <key>ru</key> + <value>Автор тип</value> + + 4 + + String + + + + true + + + true + + + + ВажностьID + + <key>ru</key> + <value>Важность ID</value> + + 5 + + String + + + + true + + + true + + + + Важность + + <key>ru</key> + <value>Важность</value> + + 6 + + String + + + + true + + + true + + true + + + ВажностьТип + + <key>ru</key> + <value>Важность тип</value> + + 7 + + String + + + + true + + + true + + + + ДатаЗавершения + + <key>ru</key> + <value>Дата завершения</value> + + 8 + + Date + + Date + + + + true + + + true + + true + + + ДатаНачала + + <key>ru</key> + <value>Дата начала</value> + + 9 + + Date + + Date + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииID + + <key>ru</key> + <value>Дополнительный объект адресации ID</value> + + 10 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресации + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 14 + + String + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииТип + + <key>ru</key> + <value>Дополнительный объект адресации тип</value> + + 18 + + String + + + + true + + + true + + + + Завершен + + <key>ru</key> + <value>Завершен</value> + + 19 + + Boolean + + + true + + + true + + + + ИсполнительID + + <key>ru</key> + <value>Исполнитель ID</value> + + 20 + + String + + + + true + + + true + + + + Исполнитель + + <key>ru</key> + <value>Исполнитель</value> + + 21 + + String + + + + true + + + true + + true + + + ИсполнительТип + + <key>ru</key> + <value>Исполнитель тип</value> + + 22 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 26 + + String + + + + true + + + true + + true + + + ОбъектID + + <key>ru</key> + <value>Объект ID</value> + + 27 + + String + + + + true + + + true + + + + Описание + + <key>ru</key> + <value>Описание</value> + + 28 + + String + + + + true + + + true + + true + + + ОсновнойОбъектАдресацииID + + <key>ru</key> + <value>Основной объект адресации ID</value> + + 29 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресации + + <key>ru</key> + <value>Основной объект адресации</value> + + 33 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииТип + + <key>ru</key> + <value>Основной объект адресации тип</value> + + 37 + + String + + + + true + + + true + + + + ПредметID + + <key>ru</key> + <value>Предмет ID</value> + + 38 + + String + + + + true + + + true + + + + Предмет + + <key>ru</key> + <value>Предмет</value> + + 39 + + String + + + + true + + + true + + true + + + ПредметТип + + <key>ru</key> + <value>Предмет тип</value> + + 40 + + String + + + + true + + + true + + + + Срок + + <key>ru</key> + <value>Срок</value> + + 43 + + Date + + + + true + + + true + + true + + + Стартован + + <key>ru</key> + <value>Стартован</value> + + 44 + + Boolean + + + true + + + true + + + + Резолюция + + <key>ru</key> + <value>Резолюция</value> + + 11 + + String + + + + true + + + true + + + + ГлавнаяЗадачаID + + <key>ru</key> + <value>Главная задача ID</value> + + 1 + + String + + + + true + + + true + + + + ГлавнаяЗадача + + <key>ru</key> + <value>Главная задача</value> + + 12 + + String + + + + true + + + true + + true + + + ГлавнаяЗадачаТип + + <key>ru</key> + <value>Главная задача тип</value> + + 13 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 15 + + String + + + + true + + + true + + + + СтартоватьИЗакрыть + + <key>ru</key> + <value>Стартовать и закрыть</value> + + 1 + + ru + Стартовать и закрыть + + + true + + + + СтартоватьИЗакрыть + + + Auto + Auto + + + Записать + + <key>ru</key> + <value>Записать</value> + + 2 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + Auto + Auto + + + ЗаполнитьПоШаблону + + <key>ru</key> + <value>Заполнить по шаблону</value> + + 3 + + ru + Заполнить по шаблону + + + true + + + CommonPicture.ЗаполнитьПоОснованию + + + + ЗаполнитьПоШаблону + + + Auto + Auto + + + ID + + String + + + + + Type + + String + + + + + TargetName + + String + + + + + TargetID + + String + + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/Help/ru.html b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/Help/ru.html new file mode 100644 index 000000000..49926731d --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/Help/ru.html @@ -0,0 +1,6 @@ + +

Этот бизнес-процесс используется для автоматизации процесса рассмотрения документов руководителем. Сначала руководителю поступает задача "Рассмотреть", содержащая ссылку на документ. После того как руководитель рассмотрит документ и вынесет резолюцию, автору поступает задача "Обработать резолюцию". Из этой задачи автор имеет возможность на основе текстовой резолюции руководителя создать бизнес-процесс "Исполнение" или "Ознакомление".

+

Этот бизнес-процесс можно создавать непосредственно из карточки документа при помощи меню "Создать бизнес-процесс".

+

При выборе рассматривающего можно указать не только конкретного пользователя, но и роль.

+

Для просмотра текущего состояния бизнес-процесса (списка выполненных и не выполненных задач) используйте команду "Задачи" в панели навигации карточки документа, отправленного на рассмотрение.

+

Если не был выполнен запуск бизнес-процесса, заполнение формы может быть выполнено на основании шаблона бизнес-процесса. Для этого необходимо выполнить команду "Заполнить по шаблону" на командной панели формы. Если для данного типа бизнес-процесса и вида предмета бизнес-процесса настроены шаблоны бизнес-процессов, то система предложит выбрать один из шаблонов для заполнения формы. Если был настроен только один шаблон, то заполнение формы произойдет автоматически.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/Module.bsl b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/Module.bsl new file mode 100644 index 000000000..d657f88f0 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/Module.bsl @@ -0,0 +1,429 @@ + +/////////////////////////////////////////////////////////// +//// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + //Если открывается новая карточка бизнес-процесса + Если Параметры.Свойство("Предмет") И ЗначениеЗаполнено(Параметры.Предмет) Тогда + + ЗаполнитьКарточкуНовогоБизнесПроцесса("DMBusinessProcessConsideration", ЭтаФорма, Параметры.Предмет); + + //Если открывается карточка имеющегося бизнес-процесса + ИначеЕсли ЗначениеЗаполнено(Параметры.ID) И ЗначениеЗаполнено(Параметры.Type) Тогда + ОбъектID = Параметры.ID; + ДанныеБП = РаботаС1СДокументооборот.ПолучитьОбъект(Параметры.Type, Параметры.ID); + Объект = ДанныеБП.objects[0]; + + ЗаполнитьФормуИзОбъектаXDTO(Объект); + КонецЕсли; + + ЭтаФорма.Заголовок = Наименование; + Если НЕ ЗначениеЗаполнено(ОбъектID) Тогда + ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + НСтр("ru = ' (Создание)'"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessImportance", "Важность", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИсполнителяБизнесПроцесса",, ЭтаФорма); + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.Свойство("Исполнитель", Исполнитель); + Результат.Свойство("ИсполнительID", ИсполнительID); + Результат.Свойство("ИсполнительТип", ИсполнительТип); + + Результат.Свойство("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации); + Результат.Свойство("ОсновнойОбъектАдресацииID", ОсновнойОбъектАдресацииID); + Результат.Свойство("ОсновнойОбъектАдресацииТип", ОсновнойОбъектАдресацииТип); + + Результат.Свойство("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации); + Результат.Свойство("ДополнительныйОбъектАдресацииID", ДополнительныйОбъектАдресацииID); + Результат.Свойство("ДополнительныйОбъектАдресацииТип", ДополнительныйОбъектАдресацииТип); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Автор", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Режим = РежимДиалогаВопрос.ДаНетОтмена; + Ответ = Вопрос(ТекстВопроса, Режим); + Если Ответ = КодВозвратаДиалога.Да Тогда + Отказ = НЕ ЗаписатьОбъектВыполнить(); + ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда + Отказ = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГлавнаяЗадачаПредставлениеОткрытие(Элемент, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ГлавнаяЗадача) Тогда + ПараметрыФормы = Новый Структура("ID, Type", ГлавнаяЗадачаID, ГлавнаяЗадачаТип); + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотКарточкаЗадачи", ПараметрыФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПредметОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ЗначениеЗаполнено(Предмет) Тогда + РаботаС1СДокументооборотКлиент.ОткрытьКарточкуПредметаБизнесПроцесса(ПредметТип, ПредметID, Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Исполнитель", "ОбъектАдресации", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительПредставлениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Исполнитель", "ОбъектАдресации", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СрокДатаПриИзменении(Элемент) + + Если Срок = НачалоДня(Срок) Тогда + Срок = КонецДня(Срок); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.ПредметПредставление Тогда + Предмет = Источник.Представление; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Обработка команд формы + +&НаКлиенте +Процедура Записать(Команда) + + РезультатЗаписи = ЗаписатьОбъектВыполнить(); + + Если РезультатЗаписи Тогда + ПараметрыОповещения = Новый Структура("ID", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + ЭтаФорма.Заголовок = Наименование; + Состояние(НСтр("ru = 'Бизнес-процесс """ + Наименование + """ сохранен.'")); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтартоватьИЗакрыть(Команда) + + РезультатЗапуска = ПодготовитьКПередачеИСтартоватьБизнесПроцесс(); + Если РезультатЗапуска Тогда + ПараметрыОповещения = Новый Структура("ID", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + + ТекстСостояния = НСтр("ru = 'Бизнес-процесс """ + Наименование + """ успешно запущен.'"); + Состояние(ТекстСостояния); + + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПоШаблону(Команда) + + РезультатВыбораШаблона = РаботаС1СДокументооборотКлиент.ВыбратьШаблонБизнесПроцесса(ЭтаФорма); + Если ТипЗнч(РезультатВыбораШаблона) = Тип("Структура") Тогда + ЗаполнитьКарточкуПоШаблону(РезультатВыбораШаблона); + КонецЕсли; + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Служебные процедуры и функции + +&НаСервере +Процедура ЗаполнитьКарточкуПоШаблону(ДанныеШаблона) + + РезультатЗаполнения = РаботаС1СДокументооборотВызовСервера.ЗаполнитьБизнесПроцессПоШаблону(ЭтаФорма, ДанныеШаблона); + ЗаполнитьФормуИзОбъектаXDTO(РезультатЗаполнения.object); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКарточкуНовогоБизнесПроцесса(ТипБизнесПроцесса, Форма, Предмет) + + НовыйОбъект = РаботаС1СДокументооборот.ПолучитьНовыйОбъект(ТипБизнесПроцесса, Предмет); + ЗаполнитьФормуИзОбъектаXDTO(НовыйОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьФормуИзОбъектаXDTO(Объект) + + //стандартное заполнение карточки бизнес-процесса + РаботаС1СДокументооборот.УстановитьСтандартнуюШапкуБизнесПроцесса(Объект, Этаформа); + РаботаС1СДокументооборот.УстановитьЕдинственногоИсполнителяНаКарточке(Объект, Этаформа); + + //специфика Рассмотрения + Резолюция = Объект.Resolution; + +КонецПроцедуры + +&НаСервере +Функция СоздатьОбъект(Прокси, Тип) + + Возврат РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, Тип); + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИЗаписатьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + Если ЗначениеЗаполнено(ОбъектID) Тогда + РезультатЗаписи = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + Иначе + РезультатСоздания = РаботаС1СДокументооборот.СоздатьНовыйОбъект(Прокси, Объект); + КонецЕсли; + + Результат = ?(РезультатСоздания = Неопределено, РезультатЗаписи, РезультатСоздания); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат , "DMError") Тогда + ВызватьИсключение(РезультатСоздания.description); + Иначе + Если РезультатЗаписи <> Неопределено Тогда + ОбъектID = Результат.objects[0].objectId.id; + Иначе + ОбъектID = Результат.object.objectId.id; + КонецЕсли; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИСтартоватьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + РезультатЗапуска = РаботаС1СДокументооборот.ЗапуститьБизнесПроцесс(Прокси, Объект); + + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, РезультатЗапуска, "DMError") Тогда + ВызватьИсключение(РезультатЗапуска.description); + Иначе + ОбъектID = РезультатЗапуска.businessProcess.objectId.id; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьБизнесПроцесс(Прокси) + + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessConsideration"); + + Объект.name = Наименование; + Объект.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.objectId.id = ОбъектID; + Объект.objectId.type = "DMBusinessProcessConsideration"; + + //Общая шапка бизнес-процессов + Объект.author = СоздатьОбъект(Прокси, "DMUser"); + Объект.author.name = Автор; + Объект.author.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.author.objectId.id = АвторID; + Объект.author.objectId.type = АвторТип; + + Объект.importance = СоздатьОбъект(Прокси, "DMBusinessProcessImportance"); + Объект.importance.name = Важность; + Объект.importance.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.importance.objectId.id = ВажностьID; + Объект.importance.objectId.type = ВажностьТип; + + Объект.beginDate = ДатаНачала; + + Объект.target = СоздатьОбъект(Прокси, "DMObject"); + Объект.target.name = Предмет; + Объект.target.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.target.objectId.id = ПредметID; + Объект.target.objectId.type = ПредметТип; + + Объект.started = Стартован; + Объект.completed = Завершен; + Объект.description = Описание; + Объект.duedate = Срок; + + //специфика Рассмотрения + + Объект.resolution = Резолюция; + //исполнитель + ИсполнительБП = СоздатьОбъект(Прокси, "DMBusinessProcessTaskExecutor"); + + Если ИсполнительТип = "DMUser" Тогда + ИсполнительБП.user = СоздатьОбъект(Прокси, "DMUser"); + ИсполнительБП.user.name = Исполнитель; + ИсполнительБП.user.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.user.objectId.id = ИсполнительID; + ИсполнительБП.user.objectId.type = ИсполнительТип; + Иначе + ИсполнительБП.role = СоздатьОбъект(Прокси, "DMBusinessProcessExecutorRole"); + ИсполнительБП.role.name = Исполнитель; + ИсполнительБП.role.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.role.objectId.id = ИсполнительID; + ИсполнительБП.role.objectId.type = ИсполнительТип; + + Если ЗначениеЗаполнено(ОсновнойОбъектАдресации) Тогда + ИсполнительБП.mainAddressingObject = СоздатьОбъект(Прокси, "DMMainAddressingObject"); + ИсполнительБП.mainAddressingObject.name = ОсновнойОбъектАдресации; + ИсполнительБП.mainAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.mainAddressingObject.objectId.id = ОсновнойОбъектАдресацииID; + ИсполнительБП.mainAddressingObject.objectId.type = ОсновнойОбъектАдресацииТип; + КонецЕсли; + + Если ЗначениеЗаполнено(ДополнительныйОбъектАдресации) Тогда + ИсполнительБП.secondaryAddressingObject = СоздатьОбъект(Прокси, "DMSecondaryAddressingObject"); + ИсполнительБП.secondaryAddressingObject.name = ДополнительныйОбъектАдресации; + ИсполнительБП.secondaryAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.secondaryAddressingObject.objectId.id = ДополнительныйОбъектАдресацииID; + ИсполнительБП.secondaryAddressingObject.objectId.type = ДополнительныйОбъектАдресацииТип; + КонецЕсли; + КонецЕсли; + + Объект.performer = ИсполнительБП; + + Возврат Объект; + +КонецФункции + +&НаКлиенте +Функция ЗаписатьОбъектВыполнить() + + ПодготовитьКПередачеИЗаписатьБизнесПроцесс(); + Модифицированность = Ложь; + Возврат Истина; + +КонецФункции + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/ДокументооборотБизнесПроцессРассмотрение.mdo b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/ДокументооборотБизнесПроцессРассмотрение.mdo new file mode 100644 index 000000000..ee6094afd --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРассмотрение/ДокументооборотБизнесПроцессРассмотрение.mdo @@ -0,0 +1,19 @@ + + + ДокументооборотБизнесПроцессРассмотрение + + ru + Документооборот бизнес процесс рассмотрение + + + + ru + + + PersonalComputer + MobileDevice + + ru + Бизнес-процесс "Рассмотрение" + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/Form.form b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/Form.form new file mode 100644 index 000000000..6e34e4a6d --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/Form.form @@ -0,0 +1,1426 @@ + + + + ГлавнаяЗадачаПредставление + 26 + + <key>ru</key> + <value>Главная задача</value> + + true + true + + true + + + ГлавнаяЗадача + + + ГлавнаяЗадачаПредставлениеРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + + ГлавнаяЗадачаПредставлениеКонтекстноеМеню + 27 + true + + InputField + true + Enter + true + Left + true + + + Opening + ГлавнаяЗадачаПредставлениеОткрытие + + true + true + true + true + true + true + Normal + + + + Наименование + 1 + true + true + + true + + + Наименование + + Top + + НаименованиеРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Описание + 3 + true + true + + true + + + Описание + + Top + + ОписаниеРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 4 + true + + InputField + Enter + true + Left + true + + true + 3 + true + true + true + true + true + true + Normal + + + + ГруппаОтступ + 5 + + ПредметПредставление + 6 + + <key>ru</key> + <value>Предмет</value> + + true + true + + true + + + Предмет + + + ПредметПредставлениеРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + ПредметПредставлениеКонтекстноеМеню + 7 + true + + InputField + true + Enter + true + Left + true + + + Opening + ПредметОткрытие + + true + true + true + true + true + true + Normal + + + + ИсполнительПредставление + 8 + + <key>ru</key> + <value>Кому</value> + + true + true + + true + + + Исполнитель + + + ИсполнительПредставлениеРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + + ИсполнительПредставлениеКонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + + AutoComplete + УчастникБизнесПроцессаАвтоПодбор + + + StartChoice + ИсполнительНачалоВыбора + + + TextEditEnd + УчастникБизнесПроцессаОкончаниеВводаТекста + + + ChoiceProcessing + ИсполнительПредставлениеОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ГруппаСрок + 10 + + СрокДата + 11 + true + true + + true + + + Срок + + + OnChange + СрокДатаПриИзменении + + + СрокДатаРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + + СрокДатаКонтекстноеМеню + 12 + true + + InputField + Enter + true + Left + true + + true + true + true + + ru + ДЛФ=D + + true + true + true + Normal + + + + СрокВремя + 13 + true + true + + true + + + Срок + + None + + СрокВремяРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + СрокВремяКонтекстноеМеню + 14 + true + + InputField + Enter + true + Left + true + + 5 + true + true + true + false + + ru + ДФ=ЧЧ:мм + + true + true + true + Normal + + + + ВажностьПредставление + 15 + + <key>ru</key> + <value>Важность</value> + + true + true + + true + + + Важность + + + ВажностьПредставлениеРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + ВажностьПредставлениеКонтекстноеМеню + 16 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВажностьАвтоПодбор + + + StartChoice + ВажностьНачалоВыбора + + + TextEditEnd + ВажностьОкончаниеВводаТекста + + + ChoiceProcessing + ВажностьОбработкаВыбора + + true + true + false + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа срок</value> + + + ru + Группа срок + + + ГруппаСрокРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + АвторПредставление + 17 + + <key>ru</key> + <value>Автор</value> + + true + true + + true + + + Автор + + + АвторПредставлениеРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + + АвторПредставлениеКонтекстноеМеню + 18 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АвторАвтоПодбор + + + StartChoice + АвторПредставлениеНачалоВыбора + + + TextEditEnd + АвторОкончаниеВводаТекста + + + ChoiceProcessing + АвторОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа отступ</value> + + + ru + Группа отступ + + + ГруппаОтступРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ГруппаИнфо + 19 + + ДатаНачала + 20 + + <key>ru</key> + <value>Начато</value> + + true + true + + true + + + ДатаНачала + + + ДатаНачалаРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + + ДатаНачалаКонтекстноеМеню + 21 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ДатаЗавершения + 22 + + <key>ru</key> + <value>Завершено</value> + + true + true + + true + + + ДатаЗавершения + + + ДатаЗавершенияРасширеннаяПодсказка + 55 + Label + true + true + + Left + + + + ДатаЗавершенияКонтекстноеМеню + 23 + true + + LabelField + Enter + true + Left + true + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа инфо</value> + + + ru + Группа инфо + + + ГруппаИнфоРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаСтартоватьИЗакрыть + 24 + true + true + + true + + + ФормаСтартоватьИЗакрытьРасширеннаяПодсказка + 29 + Label + true + true + + Left + + + Form.Command.СтартоватьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 25 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗаполнитьПоШаблону + 28 + true + true + + true + + + ФормаЗаполнитьПоШаблонуРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + Form.Command.ЗаполнитьПоШаблону + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Стартован + + <key>ru</key> + <value>Стартован</value> + + 1 + + Boolean + + + true + + + true + + + + АвторID + + <key>ru</key> + <value>Автор ID</value> + + 2 + + String + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 3 + + String + + + + true + + + true + + true + + + АвторТип + + <key>ru</key> + <value>Автор тип</value> + + 4 + + String + + + + true + + + true + + + + ВажностьID + + <key>ru</key> + <value>Важность ID</value> + + 5 + + String + + + + true + + + true + + + + Важность + + <key>ru</key> + <value>Важность</value> + + 6 + + String + + + + true + + + true + + true + + + ВажностьТип + + <key>ru</key> + <value>Важность тип</value> + + 7 + + String + + + + true + + + true + + + + ДатаЗавершения + + <key>ru</key> + <value>Дата завершения</value> + + 8 + + Date + + Date + + + + true + + + true + + true + + + ДатаНачала + + <key>ru</key> + <value>Дата начала</value> + + 9 + + Date + + Date + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииID + + <key>ru</key> + <value>Дополнительный объект адресации ID</value> + + 10 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресации + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 11 + + String + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииТип + + <key>ru</key> + <value>Дополнительный объект адресации тип</value> + + 12 + + String + + + + true + + + true + + + + Завершен + + <key>ru</key> + <value>Завершен</value> + + 13 + + Boolean + + + true + + + true + + + + ИсполнительID + + <key>ru</key> + <value>Исполнитель ID</value> + + 14 + + String + + + + true + + + true + + + + Исполнитель + + <key>ru</key> + <value>Исполнитель</value> + + 15 + + String + + + + true + + + true + + true + + + ИсполнительТип + + <key>ru</key> + <value>Исполнитель тип</value> + + 16 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 20 + + String + + + + true + + + true + + true + + + ОбъектID + + <key>ru</key> + <value>Объект ID</value> + + 21 + + String + + + + true + + + true + + + + Описание + + <key>ru</key> + <value>Описание</value> + + 22 + + String + + + + true + + + true + + true + + + ОсновнойОбъектАдресацииID + + <key>ru</key> + <value>Основной объект адресации ID</value> + + 23 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресации + + <key>ru</key> + <value>Основной объект адресации</value> + + 24 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииТип + + <key>ru</key> + <value>Основной объект адресации тип</value> + + 25 + + String + + + + true + + + true + + + + ПредметID + + <key>ru</key> + <value>Предмет ID</value> + + 26 + + String + + + + true + + + true + + + + Предмет + + <key>ru</key> + <value>Предмет</value> + + 27 + + String + + + + true + + + true + + true + + + ПредметТип + + <key>ru</key> + <value>Предмет тип</value> + + 28 + + String + + + + true + + + true + + + + Срок + + <key>ru</key> + <value>Срок</value> + + 33 + + Date + + + + true + + + true + + true + + + ГлавнаяЗадачаID + + <key>ru</key> + <value>Главная задача ID</value> + + 17 + + String + + + + true + + + true + + + + ГлавнаяЗадача + + <key>ru</key> + <value>Главная задача</value> + + 18 + + String + + + + true + + + true + + true + + + ГлавнаяЗадачаТип + + <key>ru</key> + <value>Главная задача тип</value> + + 19 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 29 + + String + + + + true + + + true + + + + Записать + + <key>ru</key> + <value>Записать</value> + + 1 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + Auto + Auto + + + СтартоватьИЗакрыть + + <key>ru</key> + <value>Стартовать и закрыть</value> + + 2 + + ru + Стартовать и закрыть + + + true + + + + СтартоватьИЗакрыть + + + Auto + Auto + + + ЗаполнитьПоШаблону + + <key>ru</key> + <value>Заполнить по шаблону</value> + + 3 + + ru + Заполнить по шаблону + + + true + + + CommonPicture.ЗаполнитьПоОснованию + + + + ЗаполнитьПоШаблону + + + Auto + Auto + + + ID + + String + + + + + Type + + String + + + + + TargetName + + String + + + + + TargetID + + String + + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/Help/ru.html b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/Help/ru.html new file mode 100644 index 000000000..fe3f56435 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/Help/ru.html @@ -0,0 +1,6 @@ + +

Этот бизнес-процесс используется для передачи документа на регистрацию.

+

Этот бизнес-процесс можно создавать непосредственно из карточки документа при помощи меню "Создать бизнес-процесс".

+

При выборе исполнителя можно указать не только конкретного пользователя, но и роль, например "Секретарь".

+

Для просмотра текущего состояния бизнес-процесс (списка выполненных и не выполненных задач) используйте команду "Задачи" в панели навигации карточки документа, отправленного на регистрацию.

+

Если не был выполнен запуск бизнес-процесса, заполнение формы может быть выполнено на основании шаблона бизнес-процесса. Для этого необходимо выполнить команду "Заполнить по шаблону" на командной панели формы. Если для данного типа бизнес-процесса и вида предмета бизнес-процесса настроены шаблоны бизнес-процессов, то система предложит выбрать один из шаблонов для заполнения формы. Если был настроен только один шаблон, то заполнение формы произойдет автоматически.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/Module.bsl b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/Module.bsl new file mode 100644 index 000000000..155b62dfa --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/Module.bsl @@ -0,0 +1,423 @@ + +/////////////////////////////////////////////////////////// +//// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + //Если открывается новая карточка бизнес-процесса + Если Параметры.Свойство("Предмет") И ЗначениеЗаполнено(Параметры.Предмет) Тогда + + ЗаполнитьКарточкуНовогоБизнесПроцесса("DMBusinessProcessRegistration", ЭтаФорма, Параметры.Предмет); + + //Если открывается карточка имеющегося бизнес-процесса + ИначеЕсли ЗначениеЗаполнено(Параметры.ID) И ЗначениеЗаполнено(Параметры.Type) Тогда + ОбъектID = Параметры.ID; + ДанныеБП = РаботаС1СДокументооборот.ПолучитьОбъект(Параметры.Type, Параметры.ID); + Объект = ДанныеБП.objects[0]; + + ЗаполнитьФормуИзОбъектаXDTO(Объект); + КонецЕсли; + + ЭтаФорма.Заголовок = Наименование; + Если НЕ ЗначениеЗаполнено(ОбъектID) Тогда + ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + НСтр("ru = ' (Создание)'"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessImportance", "Важность", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИсполнителяБизнесПроцесса",, ЭтаФорма); + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.Свойство("Исполнитель", Исполнитель); + Результат.Свойство("ИсполнительID", ИсполнительID); + Результат.Свойство("ИсполнительТип", ИсполнительТип); + + Результат.Свойство("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации); + Результат.Свойство("ОсновнойОбъектАдресацииID", ОсновнойОбъектАдресацииID); + Результат.Свойство("ОсновнойОбъектАдресацииТип", ОсновнойОбъектАдресацииТип); + + Результат.Свойство("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации); + Результат.Свойство("ДополнительныйОбъектАдресацииID", ДополнительныйОбъектАдресацииID); + Результат.Свойство("ДополнительныйОбъектАдресацииТип", ДополнительныйОбъектАдресацииТип); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Автор", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Режим = РежимДиалогаВопрос.ДаНетОтмена; + Ответ = Вопрос(ТекстВопроса, Режим); + Если Ответ = КодВозвратаДиалога.Да Тогда + Отказ = НЕ ЗаписатьОбъектВыполнить(); + ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда + Отказ = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГлавнаяЗадачаПредставлениеОткрытие(Элемент, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ГлавнаяЗадача) Тогда + ПараметрыФормы = Новый Структура("ID, Type", ГлавнаяЗадачаID, ГлавнаяЗадачаТип); + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотКарточкаЗадачи", ПараметрыФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПредметОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ЗначениеЗаполнено(Предмет) Тогда + РаботаС1СДокументооборотКлиент.ОткрытьКарточкуПредметаБизнесПроцесса(ПредметТип, ПредметID, Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Исполнитель", "ОбъектАдресации", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительПредставлениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Исполнитель", "ОбъектАдресации", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СрокДатаПриИзменении(Элемент) + + Если Срок = НачалоДня(Срок) Тогда + Срок = КонецДня(Срок); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.ПредметПредставление Тогда + Предмет = Источник.Представление; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Обработка команд формы + +&НаКлиенте +Процедура Записать(Команда) + + РезультатЗаписи = ЗаписатьОбъектВыполнить(); + + Если РезультатЗаписи Тогда + ПараметрыОповещения = Новый Структура("ID", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + ЭтаФорма.Заголовок = Наименование; + Состояние(НСтр("ru = 'Бизнес-процесс """ + Наименование + """ сохранен.'")); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтартоватьИЗакрыть(Команда) + + РезультатЗапуска = ПодготовитьКПередачеИСтартоватьБизнесПроцесс(); + Если РезультатЗапуска Тогда + ПараметрыОповещения = Новый Структура("ID", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + + ТекстСостояния = НСтр("ru = 'Бизнес-процесс """ + Наименование + """ успешно запущен.'"); + Состояние(ТекстСостояния); + + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПоШаблону(Команда) + + РезультатВыбораШаблона = РаботаС1СДокументооборотКлиент.ВыбратьШаблонБизнесПроцесса(ЭтаФорма); + Если ТипЗнч(РезультатВыбораШаблона) = Тип("Структура") Тогда + ЗаполнитьКарточкуПоШаблону(РезультатВыбораШаблона); + КонецЕсли; + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Служебные процедуры и функции + +&НаСервере +Процедура ЗаполнитьКарточкуПоШаблону(ДанныеШаблона) + + РезультатЗаполнения = РаботаС1СДокументооборотВызовСервера.ЗаполнитьБизнесПроцессПоШаблону(ЭтаФорма, ДанныеШаблона); + ЗаполнитьФормуИзОбъектаXDTO(РезультатЗаполнения.object); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКарточкуНовогоБизнесПроцесса(ТипБизнесПроцесса, Форма, Предмет) + + НовыйОбъект = РаботаС1СДокументооборот.ПолучитьНовыйОбъект(ТипБизнесПроцесса, Предмет); + ЗаполнитьФормуИзОбъектаXDTO(НовыйОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьФормуИзОбъектаXDTO(Объект) + + //стандартное заполнение карточки бизнес-процесса + РаботаС1СДокументооборот.УстановитьСтандартнуюШапкуБизнесПроцесса(Объект, Этаформа); + РаботаС1СДокументооборот.УстановитьЕдинственногоИсполнителяНаКарточке(Объект, Этаформа); + +КонецПроцедуры + +&НаСервере +Функция СоздатьОбъект(Прокси, Тип) + + Возврат РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, Тип); + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИЗаписатьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + Если ЗначениеЗаполнено(ОбъектID) Тогда + РезультатЗаписи = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + Иначе + РезультатСоздания = РаботаС1СДокументооборот.СоздатьНовыйОбъект(Прокси, Объект); + КонецЕсли; + + Результат = ?(РезультатСоздания = Неопределено, РезультатЗаписи, РезультатСоздания); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат , "DMError") Тогда + ВызватьИсключение(РезультатСоздания.description); + Иначе + Если РезультатЗаписи <> Неопределено Тогда + ОбъектID = Результат.objects[0].objectId.id; + Иначе + ОбъектID = Результат.object.objectId.id; + КонецЕсли; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИСтартоватьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + РезультатЗапуска = РаботаС1СДокументооборот.ЗапуститьБизнесПроцесс(Прокси, Объект); + + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, РезультатЗапуска, "DMError") Тогда + ВызватьИсключение(РезультатЗапуска.description); + Иначе + ОбъектID = РезультатЗапуска.businessProcess.objectId.id; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьБизнесПроцесс(Прокси) + + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessRegistration"); + + Объект.name = Наименование; + Объект.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.objectId.id = ОбъектID; + Объект.objectId.type = "DMBusinessProcessRegistration"; + + //Общая шапка бизнес-процессов + Объект.author = СоздатьОбъект(Прокси, "DMUser"); + Объект.author.name = Автор; + Объект.author.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.author.objectId.id = АвторID; + Объект.author.objectId.type = АвторТип; + + Объект.importance = СоздатьОбъект(Прокси, "DMBusinessProcessImportance"); + Объект.importance.name = Важность; + Объект.importance.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.importance.objectId.id = ВажностьID; + Объект.importance.objectId.type = ВажностьТип; + + Объект.beginDate = ДатаНачала; + + Объект.target = СоздатьОбъект(Прокси, "DMObject"); + Объект.target.name = Предмет; + Объект.target.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.target.objectId.id = ПредметID; + Объект.target.objectId.type = ПредметТип; + + Объект.started = Стартован; + Объект.completed = Завершен; + Объект.description = Описание; + Объект.duedate = Срок; + + //исполнитель + ИсполнительБП = СоздатьОбъект(Прокси, "DMBusinessProcessTaskExecutor"); + + Если ИсполнительТип = "DMUser" Тогда + ИсполнительБП.user = СоздатьОбъект(Прокси, "DMUser"); + ИсполнительБП.user.name = Исполнитель; + ИсполнительБП.user.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.user.objectId.id = ИсполнительID; + ИсполнительБП.user.objectId.type = ИсполнительТип; + Иначе + ИсполнительБП.role = СоздатьОбъект(Прокси, "DMBusinessProcessExecutorRole"); + ИсполнительБП.role.name = Исполнитель; + ИсполнительБП.role.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.role.objectId.id = ИсполнительID; + ИсполнительБП.role.objectId.type = ИсполнительТип; + + Если ЗначениеЗаполнено(ОсновнойОбъектАдресации) Тогда + ИсполнительБП.mainAddressingObject = СоздатьОбъект(Прокси, "DMMainAddressingObject"); + ИсполнительБП.mainAddressingObject.name = ОсновнойОбъектАдресации; + ИсполнительБП.mainAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.mainAddressingObject.objectId.id = ОсновнойОбъектАдресацииID; + ИсполнительБП.mainAddressingObject.objectId.type = ОсновнойОбъектАдресацииТип; + КонецЕсли; + + Если ЗначениеЗаполнено(ДополнительныйОбъектАдресации) Тогда + ИсполнительБП.secondaryAddressingObject = СоздатьОбъект(Прокси, "DMSecondaryAddressingObject"); + ИсполнительБП.secondaryAddressingObject.name = ДополнительныйОбъектАдресации; + ИсполнительБП.secondaryAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.secondaryAddressingObject.objectId.id = ДополнительныйОбъектАдресацииID; + ИсполнительБП.secondaryAddressingObject.objectId.type = ДополнительныйОбъектАдресацииТип; + КонецЕсли; + КонецЕсли; + + Объект.performer = ИсполнительБП; + + Возврат Объект; + +КонецФункции + +&НаКлиенте +Функция ЗаписатьОбъектВыполнить() + + ПодготовитьКПередачеИЗаписатьБизнесПроцесс(); + Модифицированность = Ложь; + Возврат Истина; + +КонецФункции + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/ДокументооборотБизнесПроцессРегистрация.mdo b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/ДокументооборотБизнесПроцессРегистрация.mdo new file mode 100644 index 000000000..d751fbec1 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессРегистрация/ДокументооборотБизнесПроцессРегистрация.mdo @@ -0,0 +1,19 @@ + + + ДокументооборотБизнесПроцессРегистрация + + ru + Документооборот бизнес процесс регистрация + + + + ru + + + PersonalComputer + MobileDevice + + ru + Бизнес-процесс "Регистрация" + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/Form.form b/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/Form.form new file mode 100644 index 000000000..1aaf39045 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/Form.form @@ -0,0 +1,2179 @@ + + + + ГлавнаяЗадачаПредставление + 44 + + <key>ru</key> + <value>Главная задача</value> + + true + true + + true + + + ГлавнаяЗадача + + + ГлавнаяЗадачаПредставлениеРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + + ГлавнаяЗадачаПредставлениеКонтекстноеМеню + 45 + true + + InputField + true + Enter + true + Left + true + + + Opening + ГлавнаяЗадачаПредставлениеОткрытие + + true + true + true + true + true + true + Normal + + + + Наименование + 1 + true + true + + true + + + Наименование + + Top + + НаименованиеРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Описание + 3 + true + true + + true + + + Описание + + Top + + ОписаниеРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 4 + true + + InputField + Enter + true + Left + true + + true + 3 + true + true + true + true + true + true + Normal + + + + ПредметПредставление + 5 + + <key>ru</key> + <value>Предмет</value> + + true + true + + true + + + Предмет + + + ПредметПредставлениеРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + + ПредметПредставлениеКонтекстноеМеню + 6 + true + + InputField + true + Enter + true + Left + true + + + Opening + ПредметОткрытие + + true + true + true + true + true + true + true + Normal + + + + ГруппаСрокСогласования + 7 + + СрокИсполненияДней + 8 + + <key>ru</key> + <value>Срок</value> + + true + true + + true + + + СрокИсполненияДней + + + СрокИсполненияДнейРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + СрокИсполненияДнейКонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + 5 + true + true + true + true + true + true + true + Normal + + + + Дней + 14 + + <key>ru</key> + <value>(дней)</value> + + true + true + + true + + + ДнейРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + + ДнейКонтекстноеМеню + 15 + true + + Label + true + true + + Left + + + + СрокИсполненияЧасов + 10 + true + true + + true + + + СрокИсполненияЧасов + + None + + СрокИсполненияЧасовРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + + СрокИсполненияЧасовКонтекстноеМеню + 11 + true + + InputField + Enter + true + Left + true + + 5 + true + true + true + true + true + true + true + Normal + + + + Часов + 16 + + <key>ru</key> + <value>(часов)</value> + + true + true + + true + + + ЧасовРасширеннаяПодсказка + 64 + Label + true + true + + Left + + + + ЧасовКонтекстноеМеню + 17 + true + + Label + true + true + + Left + + + + ВажностьПредставление + 12 + true + true + + true + + + Важность + + + ВажностьПредставлениеРасширеннаяПодсказка + 65 + Label + true + true + + Left + + + + ВажностьПредставлениеКонтекстноеМеню + 13 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВажностьАвтоПодбор + + + StartChoice + ВажностьНачалоВыбора + + + TextEditEnd + ВажностьОкончаниеВводаТекста + + + ChoiceProcessing + ВажностьОбработкаВыбора + + true + true + false + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа срок согласования</value> + + + ru + Группа срок согласования + + + ГруппаСрокСогласованияРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ГруппаОтступ + 18 + + Исполнители + 19 + true + true + + true + + + Исполнители + + None + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + ИсполнителиШаг + 22 + true + true + + true + + + Исполнители.Шаг + + + ИсполнителиШагРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + + ИсполнителиШагКонтекстноеМеню + 23 + true + + InputField + Auto + true + Left + true + + 3 + true + true + true + true + true + Normal + + + + Группа + 24 + + ИсполнителиИсполнительПредставление + 25 + + <key>ru</key> + <value>С кем согласовать</value> + + true + true + + true + + + Исполнители.Исполнитель + + + ИсполнителиИсполнительПредставлениеРасширеннаяПодсказка + 81 + Label + true + true + + Left + + + + ИсполнителиИсполнительПредставлениеКонтекстноеМеню + 26 + true + + InputField + Auto + true + Left + true + + + AutoComplete + УчастникБизнесПроцессаАвтоПодбор + + + StartChoice + ИсполнителиИсполнительНачалоВыбора + + + TextEditEnd + УчастникБизнесПроцессаОкончаниеВводаТекста + + + ChoiceProcessing + УчастникБизнесПроцессаОбработкаВыбора + + 15 + true + true + true + true + true + true + true + Normal + + + + ИсполнителиОсновнойОбъектАдресацииПредставление + 27 + true + true + + true + + + Исполнители.ОсновнойОбъектАдресации + + None + + ИсполнителиОсновнойОбъектАдресацииПредставлениеРасширеннаяПодсказка + 83 + Label + true + true + + Left + + + + ИсполнителиОсновнойОбъектАдресацииПредставлениеКонтекстноеМеню + 28 + true + + InputField + Auto + true + Left + true + + 10 + true + true + true + true + true + Normal + + + + ИсполнителиДополнительныйОбъектАдресацииПредставление + 29 + true + true + + true + + + Исполнители.ДополнительныйОбъектАдресации + + None + + ИсполнителиДополнительныйОбъектАдресацииПредставлениеРасширеннаяПодсказка + 85 + Label + true + true + + Left + + + + ИсполнителиДополнительныйОбъектАдресацииПредставлениеКонтекстноеМеню + 30 + true + + InputField + Auto + true + Left + true + + 10 + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа</value> + + + ru + Группа + + + ГруппаРасширеннаяПодсказка + 80 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + ИсполнителиПорядокСогласованияПредставление + 31 + + <key>ru</key> + <value>Порядок</value> + + true + true + + true + + + Исполнители.ПорядокСогласования + + + ИсполнителиПорядокСогласованияПредставлениеРасширеннаяПодсказка + 87 + Label + true + true + + Left + + + + ИсполнителиПорядокСогласованияПредставлениеКонтекстноеМеню + 32 + true + + InputField + Auto + true + Left + true + + + StartChoice + ИсполнителиПорядокСогласованияПредставлениеНачалоВыбора + + 20 + true + true + true + true + true + true + Normal + + + + ИсполнителиКоманднаяПанель + 21 + Left + true + + + ИсполнителиСтрокаПоиска + 69 + + ИсполнителиСтрокаПоискаРасширеннаяПодсказка + 71 + Label + true + true + + Left + + + + ИсполнителиСтрокаПоискаКонтекстноеМеню + 70 + true + + Исполнители + + true + + + + ИсполнителиСостояниеПросмотра + 72 + + ИсполнителиСостояниеПросмотраРасширеннаяПодсказка + 74 + Label + true + true + + Left + + + + ИсполнителиСостояниеПросмотраКонтекстноеМеню + 73 + true + + ViewStatusAddition + Исполнители + + true + + + + ИсполнителиУправлениеПоиском + 75 + + ИсполнителиУправлениеПоискомРасширеннаяПодсказка + 77 + Label + true + true + + Left + + + + ИсполнителиУправлениеПоискомКонтекстноеМеню + 76 + true + + SearchControlAddition + Исполнители + + true + + + + ИсполнителиРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + + ИсполнителиКонтекстноеМеню + 20 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ + ВариантСогласованияПредставление + 33 + + <key>ru</key> + <value>Направлять на согласование</value> + + true + true + + true + + + ВариантСогласования + + + ВариантСогласованияПредставлениеРасширеннаяПодсказка + 97 + Label + true + true + + Left + + + + ВариантСогласованияПредставлениеКонтекстноеМеню + 34 + true + + InputField + Enter + true + Left + true + + + StartChoice + ВариантСогласованияПредставлениеНачалоВыбора + + true + true + false + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа отступ</value> + + + ru + Группа отступ + + + ГруппаОтступРасширеннаяПодсказка + 67 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + +
+ + АвторПредставление + 35 + true + true + + true + + + Автор + + + АвторПредставлениеРасширеннаяПодсказка + 99 + Label + true + true + + Left + + + + АвторПредставлениеКонтекстноеМеню + 36 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АвторАвтоПодбор + + + StartChoice + АвторНачалоВыбора + + + TextEditEnd + АвторОкончаниеВводаТекста + + + ChoiceProcessing + АвторОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ГруппаИнфо + 37 + + ДатаНачала + 38 + + <key>ru</key> + <value>Начато</value> + + true + true + + true + + + ДатаНачала + + + ДатаНачалаРасширеннаяПодсказка + 102 + Label + true + true + + Left + + + + ДатаНачалаКонтекстноеМеню + 39 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ДатаЗавершения + 40 + + <key>ru</key> + <value>Завершено</value> + + true + true + + true + + + ДатаЗавершения + + + ДатаЗавершенияРасширеннаяПодсказка + 104 + Label + true + true + + Left + + + + ДатаЗавершенияКонтекстноеМеню + 41 + true + + LabelField + Enter + true + Left + true + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа инфо</value> + + + ru + Группа инфо + + + ГруппаИнфоРасширеннаяПодсказка + 101 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаСтартоватьИЗакрыть + 43 + true + true + + true + + + ФормаСтартоватьИЗакрытьРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + Form.Command.СтартоватьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 42 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗаполнитьПоШаблону + 46 + true + true + + true + + + ФормаЗаполнитьПоШаблонуРасширеннаяПодсказка + 49 + Label + true + true + + Left + + + Form.Command.ЗаполнитьПоШаблону + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ДатаНачала + + <key>ru</key> + <value>Дата начала</value> + + 1 + + Date + + Date + + + + true + + + true + + true + + + АвторID + + <key>ru</key> + <value>Автор ID</value> + + 2 + + String + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 3 + + String + + + + true + + + true + + true + + + АвторТип + + <key>ru</key> + <value>Автор тип</value> + + 4 + + String + + + + true + + + true + + + + ВажностьID + + <key>ru</key> + <value>Важность</value> + + 5 + + String + + + + true + + + true + + + + Важность + + <key>ru</key> + <value>Важность</value> + + 6 + + String + + + + true + + + true + + true + + + ВажностьТип + + <key>ru</key> + <value>Важность</value> + + 7 + + String + + + + true + + + true + + + + ДатаЗавершения + + <key>ru</key> + <value>Дата завершения</value> + + 8 + + Date + + Date + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииКонтролераID + + <key>ru</key> + <value>Дополнительный объект адресации контролера ID</value> + + 9 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииКонтролера + + <key>ru</key> + <value>Дополнительный объект адресации контролера</value> + + 10 + + String + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииКонтролераТип + + <key>ru</key> + <value>Дополнительный объект адресации контролера тип</value> + + 11 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииПроверяющегоID + + <key>ru</key> + <value>Дополнительный объект адресации проверяющего ID</value> + + 12 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииПроверяющего + + <key>ru</key> + <value>Дополнительный объект адресации проверяющего</value> + + 13 + + String + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииПроверяющегоТип + + <key>ru</key> + <value>Дополнительный объект адресации проверяющего тип</value> + + 14 + + String + + + + true + + + true + + + + Завершен + + <key>ru</key> + <value>Завершен</value> + + 15 + + Boolean + + + true + + + true + + + + Исполнители + + <key>ru</key> + <value>Исполнители</value> + + 16 + + ValueTable + + + true + + + true + + true + + Исполнитель + + <key>ru</key> + <value>Исполнитель</value> + + 1 + + String + + + + true + + + true + + + + ИсполнительID + + <key>ru</key> + <value>Исполнитель</value> + + 3 + + String + + + + true + + + true + + + + ИсполнительТип + + <key>ru</key> + <value>Исполнитель</value> + + 6 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресации + + <key>ru</key> + <value>Основной объект адресации</value> + + 7 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресации + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 8 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииID + + <key>ru</key> + <value>Основной объект адресации</value> + + 9 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииТип + + <key>ru</key> + <value>Основной объект адресации</value> + + 10 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииID + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 11 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииТип + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 12 + + String + + + + true + + + true + + + + Шаг + + <key>ru</key> + <value>Шаг</value> + + 2 + + Number + + 10 + + + + true + + + true + + + + ПорядокСогласования + + <key>ru</key> + <value>Порядок согласования</value> + + 4 + + String + + + + true + + + true + + + + ПорядокСогласованияТип + + <key>ru</key> + <value>Порядок согласования тип</value> + + 5 + + String + + + + true + + + true + + + + ПорядокСогласованияID + + <key>ru</key> + <value>Порядок согласования ID</value> + + 13 + + String + + + + true + + + true + + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 20 + + String + + + + true + + + true + + true + + + ОбъектID + + <key>ru</key> + <value>Объект ID</value> + + 21 + + String + + + + true + + + true + + + + Описание + + <key>ru</key> + <value>Описание</value> + + 22 + + String + + + + true + + + true + + true + + + ПредметID + + <key>ru</key> + <value>Предмет представление</value> + + 29 + + String + + + + true + + + true + + + + Предмет + + <key>ru</key> + <value>Предмет</value> + + 30 + + String + + + + true + + + true + + true + + + ПредметТип + + <key>ru</key> + <value>Предмет представление</value> + + 31 + + String + + + + true + + + true + + + + Срок + + <key>ru</key> + <value>Срок</value> + + 35 + + Date + + + + true + + + true + + true + + + Стартован + + <key>ru</key> + <value>Стартован</value> + + 36 + + Boolean + + + true + + + true + + + + СрокИсполненияДней + + <key>ru</key> + <value>Срок исполнения дней</value> + + 17 + + Number + + 4 + true + + + + true + + + true + + + + СрокИсполненияЧасов + + <key>ru</key> + <value>Срок исполнения часов</value> + + 18 + + Number + + 2 + true + + + + true + + + true + + + + ВариантСогласования + + <key>ru</key> + <value>Вариант согласования</value> + + 19 + + String + + + + true + + + true + + + + ВариантСогласованияТип + + <key>ru</key> + <value>Вариант согласования тип</value> + + 23 + + String + + + + true + + + true + + + + ВариантСогласованияID + + <key>ru</key> + <value>Вариант согласования ID</value> + + 24 + + String + + + + true + + + true + + + + ГлавнаяЗадачаID + + <key>ru</key> + <value>Главная задача ID</value> + + 25 + + String + + + + true + + + true + + + + ГлавнаяЗадача + + <key>ru</key> + <value>Главная задача</value> + + 26 + + String + + + + true + + + true + + true + + + ГлавнаяЗадачаТип + + <key>ru</key> + <value>Главная задача тип</value> + + 27 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 28 + + String + + + + true + + + true + + + + Записать + + <key>ru</key> + <value>Записать</value> + + 1 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + Auto + Auto + + + СтартоватьИЗакрыть + + <key>ru</key> + <value>Стартовать и закрыть</value> + + 2 + + ru + Стартовать и закрыть + + + true + + + + СтартоватьИЗакрыть + + + Auto + Auto + + + ЗаполнитьПоШаблону + + <key>ru</key> + <value>Заполнить по шаблону</value> + + 3 + + ru + Заполнить по шаблону + + + true + + + CommonPicture.ЗаполнитьПоОснованию + + + + ЗаполнитьПоШаблону + + + Auto + Auto + + + ID + + String + + + + + TargetID + + String + + + + + TargetName + + String + + + + + Type + + String + + + + + + + +
diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/Help/ru.html b/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/Help/ru.html new file mode 100644 index 000000000..076bd23e8 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/Help/ru.html @@ -0,0 +1,8 @@ + +

Этот бизнес-процесс обходит всех участников согласования (рецензентов) по заранее составленному списку, после чего возвращается к автору (инициатору бизнес-процесса). В случае отрицательного результата согласования автор имеет возможность повторить согласование.

+

При заполнении списка рецензентов можно указывать как непосредственно исполнителя (пользователя), так и роли.

+

Предусмотрено три варианта обхода согласующих - "все вместе", "по очереди" и "смешанно". Если установлен тип согласования "все вместе", то задачи всем рецензентам формируется одновременно. При этом бизнес-процесс возвращается к автору после завершения задач всеми согласующими.  Если установлен тип согласования "по очереди", то задача следующему рецензенту формируется только после завершения задачи предыдущему. При этом бизнес-процесс сразу возвращается к автору, как только один из согласующих принял отрицательное решение. Если установлен тип согласования "смешанно", то для каждого исполнителя можно указать порядок формирования задачи - вместе с предыдущим либо после предыдущего. В результате тип согласования "смешанно" позволяет сочетать этапы одновременного и последовательного согласования.

+

Каждому из исполнителей на выполнение задачи отводится срок, указанный в карточке бизнес-процесса.  При указании срока следует учитывать, что для варианта согласования "все вместе" ожидаемый срок завершения бизнес-процесса совпадает со сроком, указанным в карточке. Тогда как для варианта согласования "по очереди" ожидаемый срок завершения бизнес-процесса равен произведению количества исполнителей и срока, отведенного каждому исполнителю.

+

Этот бизнес-процесс можно создавать непосредственно из карточки документа при помощи меню "Создать бизнес-процесс".

+

Для просмотра текущего состояния бизнес-процесса (списка выполненных и не выполненных задач) используйте команду "Задачи" в панели навигации карточки документа, отправленного на согласование.

+

Если не был выполнен запуск бизнес-процесса, заполнение формы может быть выполнено на основании шаблона бизнес-процесса. Для этого необходимо выполнить команду "Заполнить по шаблону" на командной панели формы. Если для данного типа бизнес-процесса и вида предмета бизнес-процесса настроены шаблоны бизнес-процессов, то система предложит выбрать один из шаблонов для заполнения формы. Если был настроен только один шаблон, то заполнение формы произойдет автоматически.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/Module.bsl b/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/Module.bsl new file mode 100644 index 000000000..6e069092f --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/Module.bsl @@ -0,0 +1,536 @@ + +/////////////////////////////////////////////////////////// +//// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + //Если открывается новая карточка бизнес-процесса + Если Параметры.Свойство("Предмет") И ЗначениеЗаполнено(Параметры.Предмет) Тогда + + ЗаполнитьКарточкуНовогоБизнесПроцесса("DMBusinessProcessApproval", ЭтаФорма, Параметры.Предмет); + + //Если открывается карточка имеющегося бизнес-процесса + ИначеЕсли ЗначениеЗаполнено(Параметры.ID) И ЗначениеЗаполнено(Параметры.Type) Тогда + ОбъектID = Параметры.ID; + ДанныеБП = РаботаС1СДокументооборот.ПолучитьОбъект(Параметры.Type, Параметры.ID); + Объект = ДанныеБП.objects[0]; + + ЗаполнитьФормуИзОбъектаXDTO(Объект); + КонецЕсли; + + ЭтаФорма.Заголовок = Наименование; + Если НЕ ЗначениеЗаполнено(ОбъектID) Тогда + ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + НСтр("ru = ' (Создание)'"); + КонецЕсли; + + Если ЗначениеЗаполнено(ДатаНачала) Тогда + Элементы.ИсполнителиШаг.Видимость = Ложь; + Элементы.ИсполнителиПорядокСогласованияПредставление.Видимость = Ложь; + Элементы.ВариантСогласованияПредставление.Видимость = Ложь; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessImportance", "Важность", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнителиИсполнительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИсполнителяБизнесПроцесса",, ЭтаФорма); + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.Свойство("Исполнитель", Элемент.Родитель.Родитель.ТекущиеДанные.Исполнитель); + Результат.Свойство("ИсполнительID", Элемент.Родитель.Родитель.ТекущиеДанные.ИсполнительID); + Результат.Свойство("ИсполнительТип", Элемент.Родитель.Родитель.ТекущиеДанные.ИсполнительТип); + + Результат.Свойство("ОсновнойОбъектАдресации", Элемент.Родитель.Родитель.ТекущиеДанные.ОсновнойОбъектАдресации); + Результат.Свойство("ОсновнойОбъектАдресацииID", Элемент.Родитель.Родитель.ТекущиеДанные.ОсновнойОбъектАдресацииID); + Результат.Свойство("ОсновнойОбъектАдресацииТип", Элемент.Родитель.Родитель.ТекущиеДанные.ОсновнойОбъектАдресацииТип); + + Результат.Свойство("ДополнительныйОбъектАдресации", Элемент.Родитель.Родитель.ТекущиеДанные.ДополнительныйОбъектАдресации); + Результат.Свойство("ДополнительныйОбъектАдресацииID", Элемент.Родитель.Родитель.ТекущиеДанные.ДополнительныйОбъектАдресацииID); + Результат.Свойство("ДополнительныйОбъектАдресацииТип", Элемент.Родитель.Родитель.ТекущиеДанные.ДополнительныйОбъектАдресацииТип); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Автор", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнителиПорядокСогласованияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ТипОбъектаВыбора", "DMApprovalOrder"); + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИзСписка", ПараметрыФормы, ЭтаФорма); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + Элемент.Родитель.ТекущиеДанные.ПорядокСогласованияID = Результат.РеквизитID; + Элемент.Родитель.ТекущиеДанные.ПорядокСогласованияТип = Результат.РеквизитТип; + Элемент.Родитель.ТекущиеДанные.ПорядокСогласования = Результат.РеквизитПредставление; + КонецЕсли; + + Если НЕ ЗначениеЗаполнено(ОбъектID) Тогда + ЗаполнитьШаг(Исполнители); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВариантСогласованияПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMApprovalType", "ВариантСогласования", ЭтаФорма); + + Если ВариантСогласованияID <> "Смешанно" Тогда + Элементы.ИсполнителиШаг.Видимость = Ложь; + Элементы.ИсполнителиПорядокСогласованияПредставление.Видимость = Ложь; + Иначе + Элементы.ИсполнителиШаг.Видимость = Истина; + Элементы.ИсполнителиПорядокСогласованияПредставление.Видимость = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Режим = РежимДиалогаВопрос.ДаНетОтмена; + Ответ = Вопрос(ТекстВопроса, Режим); + Если Ответ = КодВозвратаДиалога.Да Тогда + Отказ = НЕ ЗаписатьОбъектВыполнить(); + ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда + Отказ = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГлавнаяЗадачаПредставлениеОткрытие(Элемент, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ГлавнаяЗадача) Тогда + ПараметрыФормы = Новый Структура("ID, Type", ГлавнаяЗадачаID, ГлавнаяЗадачаТип); + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотКарточкаЗадачи", ПараметрыФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПредметОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ЗначениеЗаполнено(Предмет) Тогда + РаботаС1СДокументооборотКлиент.ОткрытьКарточкуПредметаБизнесПроцесса(ПредметТип, ПредметID, Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВСписке(Элемент.Родитель.Родитель, ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВСписке(Элемент.Родитель.Родитель, ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.ПредметПредставление Тогда + Предмет = Источник.Представление; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Обработка команд формы + +&НаКлиенте +Процедура Записать(Команда) + + РезультатЗаписи = ЗаписатьОбъектВыполнить(); + + Если РезультатЗаписи Тогда + ПараметрыОповещения = Новый Структура("ID", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + ЭтаФорма.Заголовок = Наименование; + Состояние(НСтр("ru = 'Бизнес-процесс """ + Наименование + """ сохранен.'")); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтартоватьИЗакрыть(Команда) + + РезультатЗапуска = ПодготовитьКПередачеИСтартоватьБизнесПроцесс(); + Если РезультатЗапуска Тогда + ПараметрыОповещения = Новый Структура("ID", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + + ТекстСостояния = НСтр("ru = 'Бизнес-процесс """ + Наименование + """ успешно запущен.'"); + Состояние(ТекстСостояния); + + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПоШаблону(Команда) + + РезультатВыбораШаблона = РаботаС1СДокументооборотКлиент.ВыбратьШаблонБизнесПроцесса(ЭтаФорма); + Если ТипЗнч(РезультатВыбораШаблона) = Тип("Структура") Тогда + ЗаполнитьКарточкуПоШаблону(РезультатВыбораШаблона); + КонецЕсли; + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Служебные процедуры и функции + +&НаСервере +Процедура ЗаполнитьКарточкуПоШаблону(ДанныеШаблона) + + РезультатЗаполнения = РаботаС1СДокументооборотВызовСервера.ЗаполнитьБизнесПроцессПоШаблону(ЭтаФорма, ДанныеШаблона); + ЗаполнитьФормуИзОбъектаXDTO(РезультатЗаполнения.object); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКарточкуНовогоБизнесПроцесса(ТипБизнесПроцесса, Форма, Предмет) + + НовыйОбъект = РаботаС1СДокументооборот.ПолучитьНовыйОбъект(ТипБизнесПроцесса, Предмет); + ЗаполнитьФормуИзОбъектаXDTO(НовыйОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьФормуИзОбъектаXDTO(Объект) + + РаботаС1СДокументооборот.УстановитьСтандартнуюШапкуБизнесПроцесса(Объект, Этаформа); + + ЗаполнитьРеквизитФормыИзПакета("ВариантСогласования", Объект, "approvalType"); + Исполнители.Очистить(); + Для Каждого Исполнитель Из Объект.Performers Цикл + НоваяСтрока = Исполнители.Добавить(); + РаботаС1СДокументооборот.УстановитьИсполнителяВСпискеИсполнителейНаКарточке(Исполнитель, НоваяСтрока); + НоваяСтрока.ПорядокСогласования = Исполнитель.approvalOrder.name; + НоваяСтрока.ПорядокСогласованияID = Исполнитель.approvalOrder.objectId.id; + НоваяСтрока.ПорядокСогласованияТип = Исполнитель.approvalOrder.objectId.type; + КонецЦикла; + + Если ВариантСогласованияID <> "Смешанно" Тогда + Элементы.ИсполнителиШаг.Видимость = Ложь; + Элементы.ИсполнителиПорядокСогласованияПредставление.Видимость = Ложь; + Иначе + Элементы.ИсполнителиШаг.Видимость = Истина; + Элементы.ИсполнителиПорядокСогласованияПредставление.Видимость = Истина; + КонецЕсли; + + СрокИсполненияДней = Объект.durationDays; + СрокИсполненияЧасов = Объект.durationHours; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьРеквизитФормыИзПакета(ИмяРеквизита, Объект, ИмяСвойстваОбъекта) + + Если Объект.Установлено(ИмяСвойстваОбъекта) Тогда + ЭтаФорма[ИмяРеквизита + "ID"] = Объект[ИмяСвойстваОбъекта].objectId.id; + ЭтаФорма[ИмяРеквизита] = Объект[ИмяСвойстваОбъекта].name; + ЭтаФорма[ИмяРеквизита + "Тип"] = Объект[ИмяСвойстваОбъекта].objectId.type; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция СоздатьОбъект(Прокси, Тип) + + Возврат РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, Тип); + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИЗаписатьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + Если ЗначениеЗаполнено(ОбъектID) Тогда + РезультатЗаписи = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + Иначе + РезультатСоздания = РаботаС1СДокументооборот.СоздатьНовыйОбъект(Прокси, Объект); + КонецЕсли; + + Результат = ?(РезультатСоздания = Неопределено, РезультатЗаписи, РезультатСоздания); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат , "DMError") Тогда + ВызватьИсключение(РезультатСоздания.Description); + Иначе + Если РезультатЗаписи <> Неопределено Тогда + ОбъектID = Результат.objects[0].objectId.id; + Иначе + ОбъектID = Результат.object.objectId.id; + КонецЕсли; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИСтартоватьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + РезультатЗапуска = РаботаС1СДокументооборот.ЗапуститьБизнесПроцесс(Прокси, Объект); + + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, РезультатЗапуска, "DMError") Тогда + ВызватьИсключение(РезультатЗапуска.Description); + Иначе + ОбъектID = РезультатЗапуска.BusinessProcess.objectId.id; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьБизнесПроцесс(Прокси) + + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessApproval"); + + Объект.name = Наименование; + Объект.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.objectId.id = ОбъектID; + Объект.objectId.type = "DMBusinessProcessApproval"; + + //Общая шапка бизнес-процессов + Объект.author = СоздатьОбъект(Прокси, "DMUser"); + Объект.author.name = Автор; + Объект.author.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.author.objectId.id = АвторID; + Объект.author.objectId.type = АвторТип; + + Объект.importance = СоздатьОбъект(Прокси, "DMBusinessProcessImportance"); + Объект.importance.name = Важность; + Объект.importance.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.importance.objectId.id = ВажностьID; + Объект.importance.objectId.type = ВажностьТип; + + Объект.beginDate = ДатаНачала; + + Объект.target = СоздатьОбъект(Прокси, "DMObject"); + Объект.target.name = Предмет; + Объект.target.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.target.objectId.id = ПредметID; + Объект.target.objectId.type = ПредметТип; + + Объект.started = Стартован; + Объект.completed = Завершен; + Объект.description = Описание; + + //специфика Исполнения + Объект.durationDays = СрокИсполненияДней; + Объект.durationHours = СрокИсполненияЧасов; + Объект.approvalType = РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, "DMApprovalType"); + Объект.approvalType.name = ВариантСогласования; + Объект.approvalType.objectId = РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, "DMObjectID"); + Объект.approvalType.objectId.id = ВариантСогласованияID; + Объект.approvalType.objectId.type = ВариантСогласованияТип; + + //исполнители + Для Каждого Строка Из Исполнители Цикл + + Исполнитель = СоздатьОбъект(Прокси, "DMBusinessProcessApprovalParticipant"); + + Если Строка.ИсполнительТип = "DMUser" Тогда + Исполнитель.user = СоздатьОбъект(Прокси, "DMUser"); + Исполнитель.user.name = Строка.Исполнитель; + Исполнитель.user.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.user.objectId.id = Строка.ИсполнительID; + Исполнитель.user.objectId.type = Строка.ИсполнительТип; + Иначе + Исполнитель.role = СоздатьОбъект(Прокси, "DMBusinessProcessExecutorRole"); + Исполнитель.role.name = Строка.Исполнитель; + Исполнитель.role.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.role.objectId.id = Строка.ИсполнительID; + Исполнитель.role.objectId.type = Строка.ИсполнительТип; + + Если ЗначениеЗаполнено(Строка.ОсновнойОбъектАдресации) Тогда + Исполнитель.mainAddressingObject = СоздатьОбъект(Прокси, "DMMainAddressingObject"); + Исполнитель.mainAddressingObject.name = Строка.ОсновнойОбъектАдресации; + Исполнитель.mainAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.mainAddressingObject.objectId.id = Строка.ОсновнойОбъектАдресацииID; + Исполнитель.mainAddressingObject.objectId.type = Строка.ОсновнойОбъектАдресацииТип; + КонецЕсли; + + Если ЗначениеЗаполнено(Строка.ДополнительныйОбъектАдресации) Тогда + Исполнитель.secondaryAddressingObject = СоздатьОбъект(Прокси, "DMSecondaryAddressingObject"); + Исполнитель.secondaryAddressingObject.name = Строка.ДополнительныйОбъектАдресации; + Исполнитель.secondaryAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Исполнитель.secondaryAddressingObject.objectId.id = Строка.ДополнительныйОбъектАдресацииID; + Исполнитель.secondaryAddressingObject.objectId.type = Строка.ДополнительныйОбъектАдресацииТип; + КонецЕсли; + КонецЕсли; + + Исполнитель.ApprovalOrder = РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, "DMApprovalOrder"); + Исполнитель.ApprovalOrder.name = Строка.ПорядокСогласования; + Исполнитель.ApprovalOrder.objectId = РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, "DMObjectID"); + Исполнитель.ApprovalOrder.objectId.id = Строка.ПорядокСогласованияID; + Исполнитель.ApprovalOrder.objectId.type = Строка.ПорядокСогласованияТип; + + Объект.performers.Добавить(Исполнитель); + + КонецЦикла; + + Возврат Объект; + +КонецФункции + +&НаКлиенте +Функция ЗаписатьОбъектВыполнить() + + ПодготовитьКПередачеИЗаписатьБизнесПроцесс(); + Модифицированность = Ложь; + Возврат Истина; + +КонецФункции + +&НаКлиенте +Процедура ЗаполнитьШаг(Таблица) + + Для Каждого Строка Из Таблица Цикл + Строка.Шаг = 0; + КонецЦикла; + + КоличествоСтрок = Таблица.Количество(); + Для Инд = 0 По КоличествоСтрок - 1 Цикл + + Строка = Таблица[Инд]; + Если Не ЗначениеЗаполнено(Строка.ПорядокСогласованияID) Тогда + Прервать; + КонецЕсли; + + Если Инд = 0 Тогда + Строка.Шаг = 1; + Продолжить; + КонецЕсли; + + ПредыдущаяСтрока = Таблица[Инд-1]; + Если Строка.ПорядокСогласованияID = "ВместеСПредыдущим" Тогда + Строка.Шаг = ПредыдущаяСтрока.Шаг; + ИначеЕсли Строка.ПорядокСогласованияID = "ПослеПредыдущего" Тогда + Строка.Шаг = ПредыдущаяСтрока.Шаг + 1; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/ДокументооборотБизнесПроцессСогласование.mdo b/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/ДокументооборотБизнесПроцессСогласование.mdo new file mode 100644 index 000000000..cc41176d8 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессСогласование/ДокументооборотБизнесПроцессСогласование.mdo @@ -0,0 +1,19 @@ + + + ДокументооборотБизнесПроцессСогласование + + ru + Документооборот бизнес процесс согласование + + + + ru + + + PersonalComputer + MobileDevice + + ru + Бизнес-процесс "Согласование" + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/Form.form b/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/Form.form new file mode 100644 index 000000000..90466a459 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/Form.form @@ -0,0 +1,1478 @@ + + + + ГлавнаяЗадачаПредставление + 28 + + <key>ru</key> + <value>Главная задача</value> + + true + true + + true + + + ГлавнаяЗадача + + + ГлавнаяЗадачаПредставлениеРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + + ГлавнаяЗадачаПредставлениеКонтекстноеМеню + 29 + true + + InputField + true + Enter + true + Left + true + + + Opening + ГлавнаяЗадачаПредставлениеОткрытие + + true + true + true + true + true + true + Normal + + + + Наименование + 1 + true + true + + true + + + Наименование + + Top + + НаименованиеРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Описание + 3 + true + true + + true + + + Описание + + Top + + ОписаниеРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 4 + true + + InputField + Enter + true + Left + true + + true + 3 + true + true + true + true + true + true + Normal + + + + ГруппаОтступ + 5 + + ПредметПредставление + 6 + + <key>ru</key> + <value>Предмет</value> + + true + true + + true + + + Предмет + + + ПредметПредставлениеРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + + ПредметПредставлениеКонтекстноеМеню + 7 + true + + InputField + true + Enter + true + Left + true + + + Opening + ПредметОткрытие + + true + true + true + true + true + true + Normal + + + + ИсполнительПредставление + 8 + + <key>ru</key> + <value>Кому</value> + + true + true + + true + + + Исполнитель + + + ИсполнительПредставлениеРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + + ИсполнительПредставлениеКонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + + AutoComplete + УчастникБизнесПроцессаАвтоПодбор + + + StartChoice + ИсполнительНачалоВыбора + + + TextEditEnd + УчастникБизнесПроцессаОкончаниеВводаТекста + + + ChoiceProcessing + ИсполнительПредставлениеОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ГруппаСрок + 10 + + СрокДата + 11 + true + true + + true + + + Срок + + + OnChange + СрокДатаПриИзменении + + + СрокДатаРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + СрокДатаКонтекстноеМеню + 12 + true + + InputField + Enter + true + Left + true + + true + true + true + + ru + ДЛФ=D + + true + true + true + Normal + + + + СрокВремя + 13 + true + true + + true + + + Срок + + None + + СрокВремяРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + СрокВремяКонтекстноеМеню + 14 + true + + InputField + Enter + true + Left + true + + 5 + true + true + true + false + + ru + ДФ=ЧЧ:мм + + true + true + true + Normal + + + + ВажностьПредставление + 15 + + <key>ru</key> + <value>Важность</value> + + true + true + + true + + + Важность + + + ВажностьПредставлениеРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + + ВажностьПредставлениеКонтекстноеМеню + 16 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВажностьАвтоПодбор + + + StartChoice + ВажностьНачалоВыбора + + + TextEditEnd + ВажностьОкончаниеВводаТекста + + + ChoiceProcessing + ВажностьОбработкаВыбора + + true + true + false + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа срок</value> + + + ru + Группа срок + + + ГруппаСрокРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + АвторПредставление + 17 + + <key>ru</key> + <value>Автор</value> + + true + true + + true + + + Автор + + + АвторПредставлениеРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + + АвторПредставлениеКонтекстноеМеню + 18 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АвторАвтоПодбор + + + StartChoice + АвторПредставлениеНачалоВыбора + + + TextEditEnd + АвторОкончаниеВводаТекста + + + ChoiceProcessing + АвторОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа отступ</value> + + + ru + Группа отступ + + + ГруппаОтступРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ПодписыватьЭЦП + 19 + true + true + + true + + + ПодписыватьЭЦП + + Right + + ПодписыватьЭЦПРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + + ПодписыватьЭЦПКонтекстноеМеню + 20 + true + + CheckBoxField + Enter + true + Left + true + + + + ГруппаИнфо + 21 + + ДатаНачала + 22 + + <key>ru</key> + <value>Начато</value> + + true + true + + true + + + ДатаНачала + + + ДатаНачалаРасширеннаяПодсказка + 57 + Label + true + true + + Left + + + + ДатаНачалаКонтекстноеМеню + 23 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ДатаЗавершения + 24 + + <key>ru</key> + <value>Завершено</value> + + true + true + + true + + + ДатаЗавершения + + + ДатаЗавершенияРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + ДатаЗавершенияКонтекстноеМеню + 25 + true + + LabelField + Enter + true + Left + true + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа инфо</value> + + + ru + Группа инфо + + + ГруппаИнфоРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаСтартоватьИЗакрыть + 27 + true + true + + true + + + ФормаСтартоватьИЗакрытьРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + Form.Command.СтартоватьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 26 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗаполнитьПоШаблону + 30 + true + true + + true + + + ФормаЗаполнитьПоШаблонуРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + Form.Command.ЗаполнитьПоШаблону + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ДатаНачала + + <key>ru</key> + <value>Дата начала</value> + + 1 + + Date + + Date + + + + true + + + true + + true + + + АвторID + + <key>ru</key> + <value>Автор ID</value> + + 2 + + String + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 3 + + String + + + + true + + + true + + true + + + АвторТип + + <key>ru</key> + <value>Автор тип</value> + + 4 + + String + + + + true + + + true + + + + ВажностьID + + <key>ru</key> + <value>Важность ID</value> + + 5 + + String + + + + true + + + true + + + + Важность + + <key>ru</key> + <value>Важность</value> + + 6 + + String + + + + true + + + true + + true + + + ВажностьТип + + <key>ru</key> + <value>Важность тип</value> + + 7 + + String + + + + true + + + true + + + + ДатаЗавершения + + <key>ru</key> + <value>Дата завершения</value> + + 8 + + Date + + Date + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииID + + <key>ru</key> + <value>Дополнительный объект адресации ID</value> + + 9 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресации + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 10 + + String + + + + true + + + true + + true + + + ДополнительныйОбъектАдресацииТип + + <key>ru</key> + <value>Дополнительный объект адресации тип</value> + + 11 + + String + + + + true + + + true + + + + Завершен + + <key>ru</key> + <value>Завершен</value> + + 12 + + Boolean + + + true + + + true + + + + ИсполнительID + + <key>ru</key> + <value>Исполнитель ID</value> + + 13 + + String + + + + true + + + true + + + + Исполнитель + + <key>ru</key> + <value>Исполнитель</value> + + 14 + + String + + + + true + + + true + + true + + + ИсполнительТип + + <key>ru</key> + <value>Исполнитель тип</value> + + 15 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 16 + + String + + + + true + + + true + + true + + + ОбъектID + + <key>ru</key> + <value>Объект ID</value> + + 17 + + String + + + + true + + + true + + + + Описание + + <key>ru</key> + <value>Описание</value> + + 18 + + String + + + + true + + + true + + true + + + ОсновнойОбъектАдресацииID + + <key>ru</key> + <value>Основной объект адресации ID</value> + + 19 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресации + + <key>ru</key> + <value>Основной объект адресации</value> + + 20 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииТип + + <key>ru</key> + <value>Основной объект адресации тип</value> + + 21 + + String + + + + true + + + true + + + + ПредметID + + <key>ru</key> + <value>Предмет ID</value> + + 22 + + String + + + + true + + + true + + + + Предмет + + <key>ru</key> + <value>Предмет</value> + + 23 + + String + + + + true + + + true + + true + + + ПредметТип + + <key>ru</key> + <value>Предмет тип</value> + + 24 + + String + + + + true + + + true + + + + Срок + + <key>ru</key> + <value>Срок</value> + + 25 + + Date + + + + true + + + true + + true + + + Стартован + + <key>ru</key> + <value>Стартован</value> + + 26 + + Boolean + + + true + + + true + + + + ПодписыватьЭЦП + + <key>ru</key> + <value>Подписывать ЭЦП</value> + + 27 + + Boolean + + + true + + + true + + true + + + ГлавнаяЗадачаID + + <key>ru</key> + <value>Главная задача ID</value> + + 28 + + String + + + + true + + + true + + + + ГлавнаяЗадача + + <key>ru</key> + <value>Главная задача</value> + + 29 + + String + + + + true + + + true + + true + + + ГлавнаяЗадачаТип + + <key>ru</key> + <value>Главная задача тип</value> + + 30 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 31 + + String + + + + true + + + true + + + + Записать + + <key>ru</key> + <value>Записать</value> + + 1 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + Auto + Auto + + + СтартоватьИЗакрыть + + <key>ru</key> + <value>Стартовать и закрыть</value> + + 2 + + ru + Стартовать и закрыть + + + true + + + + СтартоватьИЗакрыть + + + Auto + Auto + + + ЗаполнитьПоШаблону + + <key>ru</key> + <value>Заполнить по шаблону</value> + + 3 + + ru + Заполнить по шаблону + + + true + + + CommonPicture.ЗаполнитьПоОснованию + + + + ЗаполнитьПоШаблону + + + Auto + Auto + + + ID + + String + + + + + TargetID + + String + + + + + TargetName + + String + + + + + Type + + String + + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/Help/ru.html b/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/Help/ru.html new file mode 100644 index 000000000..e893220f2 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/Help/ru.html @@ -0,0 +1,8 @@ + +

Этот бизнес-процесс используется для передачи документа на утверждение руководителю. 

+

При старте бизнес-процесса руководителю поступает задача "Утвердить", содержащая ссылку на документ. После того как руководитель рассмотрит документ и отметит в задаче результат утверждения, автору поступает задача "Ознакомиться с результатами утверждения". В случае отрицательного результата из этой задачи автор может отправить документ на повторное утверждение. 

+

Этот бизнес-процесс можно создавать непосредственно из карточки документа при помощи меню "Создать бизнес-процесс".

+

При выборе утверждающего можно указать не только конкретного пользователя, но и роль.

+

Для просмотра текущего состояния бизнес-процесса (списка выполненных и не выполненных задач) используйте команду "Задачи" в панели навигации карточки документа, отправленного на утверждение.

+

Если не был выполнен запуск бизнес-процесса, заполнение формы может быть выполнено на основании шаблона бизнес-процесса. Для этого необходимо выполнить команду "Заполнить по шаблону" на командной панели формы. Если для данного типа бизнес-процесса и вида предмета бизнес-процесса настроены шаблоны бизнес-процессов, то система предложит выбрать один из шаблонов для заполнения формы. Если был настроен только один шаблон, то заполнение формы произойдет автоматически.

+

Если в системе Документооборот включена настройка программы "Использовать электронно-цифровые подписи и шифрование", становится доступной галочка "Подписывать ЭЦП". Если галочка "Подписывать ЭЦП" включена, при утверждении предмета ответственным лицом нужно будет установить электронно-цифровую подпись (ЭЦП) на предмет.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/Module.bsl b/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/Module.bsl new file mode 100644 index 000000000..4ca3b298d --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/Module.bsl @@ -0,0 +1,430 @@ + +/////////////////////////////////////////////////////////// +//// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + //Если открывается новая карточка бизнес-процесса + Если Параметры.Свойство("Предмет") И ЗначениеЗаполнено(Параметры.Предмет) Тогда + + ЗаполнитьКарточкуНовогоБизнесПроцесса("DMBusinessProcessConfirmation", ЭтаФорма, Параметры.Предмет); + + //Если открывается карточка имеющегося бизнес-процесса + ИначеЕсли ЗначениеЗаполнено(Параметры.ID) И ЗначениеЗаполнено(Параметры.Type) Тогда + ОбъектID = Параметры.ID; + ДанныеБП = РаботаС1СДокументооборот.ПолучитьОбъект(Параметры.Type, Параметры.ID); + Объект = ДанныеБП.objects[0]; + + ЗаполнитьФормуИзОбъектаXDTO(Объект); + КонецЕсли; + + ЭтаФорма.Заголовок = Наименование; + Если НЕ ЗначениеЗаполнено(ОбъектID) Тогда + ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + НСтр("ru = ' (Создание)'"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMBusinessProcessImportance", "Важность", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИсполнителяБизнесПроцесса",, ЭтаФорма); + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.Свойство("Исполнитель", Исполнитель); + Результат.Свойство("ИсполнительID", ИсполнительID); + Результат.Свойство("ИсполнительТип", ИсполнительТип); + + Результат.Свойство("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации); + Результат.Свойство("ОсновнойОбъектАдресацииID", ОсновнойОбъектАдресацииID); + Результат.Свойство("ОсновнойОбъектАдресацииТип", ОсновнойОбъектАдресацииТип); + + Результат.Свойство("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации); + Результат.Свойство("ДополнительныйОбъектАдресацииID", ДополнительныйОбъектАдресацииID); + Результат.Свойство("ДополнительныйОбъектАдресацииТип", ДополнительныйОбъектАдресацииТип); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Автор", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Режим = РежимДиалогаВопрос.ДаНетОтмена; + Ответ = Вопрос(ТекстВопроса, Режим); + Если Ответ = КодВозвратаДиалога.Да Тогда + Отказ = НЕ ЗаписатьОбъектВыполнить(); + ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда + Отказ = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГлавнаяЗадачаПредставлениеОткрытие(Элемент, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ГлавнаяЗадача) Тогда + ПараметрыФормы = Новый Структура("ID, Type", ГлавнаяЗадачаID, ГлавнаяЗадачаТип); + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотКарточкаЗадачи", ПараметрыФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПредметОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ЗначениеЗаполнено(Предмет) Тогда + РаботаС1СДокументооборотКлиент.ОткрытьКарточкуПредметаБизнесПроцесса(ПредметТип, ПредметID, Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УчастникБизнесПроцессаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser;DMBusinessProcessExecutorRole", ДанныеВыбора, Текст, СтандартнаяОбработка); + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Исполнитель", "ОбъектАдресации", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИсполнительПредставлениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ПрименитьВыборУчастникаБизнесПроцессаВПоле("Исполнитель", "ОбъектАдресации", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СрокДатаПриИзменении(Элемент) + + Если Срок = НачалоДня(Срок) Тогда + Срок = КонецДня(Срок); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.ПредметПредставление Тогда + Предмет = Источник.Представление; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMBusinessProcessImportance", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Важность", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура АвторАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", Данныевыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АвторОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Автор", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Обработка команд формы + +&НаКлиенте +Процедура Записать(Команда) + + РезультатЗаписи = ЗаписатьОбъектВыполнить(); + + Если РезультатЗаписи Тогда + ПараметрыОповещения = Новый Структура("ID", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + ЭтаФорма.Заголовок = Наименование; + Состояние(НСтр("ru = 'Бизнес-процесс """ + Наименование + """ сохранен.'")); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтартоватьИЗакрыть(Команда) + + РезультатЗапуска = ПодготовитьКПередачеИСтартоватьБизнесПроцесс(); + Если РезультатЗапуска Тогда + ПараметрыОповещения = Новый Структура("ID", ОбъектID); + Оповестить("БизнесПроцессИзменен", ПараметрыОповещения); + + ТекстСостояния = НСтр("ru = 'Бизнес-процесс """ + Наименование + """ успешно запущен.'"); + Состояние(ТекстСостояния); + + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьПоШаблону(Команда) + + РезультатВыбораШаблона = РаботаС1СДокументооборотКлиент.ВыбратьШаблонБизнесПроцесса(ЭтаФорма); + Если ТипЗнч(РезультатВыбораШаблона) = Тип("Структура") Тогда + ЗаполнитьКарточкуПоШаблону(РезультатВыбораШаблона); + КонецЕсли; + +КонецПроцедуры + +/////////////////////////////////////////////////////////// +//// Служебные процедуры и функции + +&НаСервере +Процедура ЗаполнитьКарточкуПоШаблону(ДанныеШаблона) + + РезультатЗаполнения = РаботаС1СДокументооборотВызовСервера.ЗаполнитьБизнесПроцессПоШаблону(ЭтаФорма, ДанныеШаблона); + ЗаполнитьФормуИзОбъектаXDTO(РезультатЗаполнения.object); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКарточкуНовогоБизнесПроцесса(ТипБизнесПроцесса, Форма, Предмет) + + НовыйОбъект = РаботаС1СДокументооборот.ПолучитьНовыйОбъект(ТипБизнесПроцесса, Предмет); + ЗаполнитьФормуИзОбъектаXDTO(НовыйОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьФормуИзОбъектаXDTO(Объект) + + РаботаС1СДокументооборот.УстановитьСтандартнуюШапкуБизнесПроцесса(Объект, Этаформа); + Если Объект.DigitalSignEnabled Тогда + ПодписыватьЭЦП = Объект.UseDigitalSign; + Иначе + Элементы.ПодписыватьЭЦП.Видимость = Ложь; + КонецЕсли; + + РаботаС1СДокументооборот.УстановитьЕдинственногоИсполнителяНаКарточке(Объект, Этаформа); + +КонецПроцедуры + +&НаСервере +Функция СоздатьОбъект(Прокси, Тип) + + Возврат РаботаС1СДокументооборотВызовСервера.СоздатьОбъектDM(Прокси, Тип); + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИЗаписатьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + Если ЗначениеЗаполнено(ОбъектID) Тогда + РезультатЗаписи = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + Иначе + РезультатСоздания = РаботаС1СДокументооборот.СоздатьНовыйОбъект(Прокси, Объект); + КонецЕсли; + + Результат = ?(РезультатСоздания = Неопределено, РезультатЗаписи, РезультатСоздания); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат , "DMError") Тогда + ВызватьИсключение(РезультатСоздания.description); + Иначе + Если РезультатЗаписи <> Неопределено Тогда + ОбъектID = Результат.objects[0].objectId.id; + Иначе + ОбъектID = Результат.object.objectId.id; + КонецЕсли; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьКПередачеИСтартоватьБизнесПроцесс() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = ПодготовитьБизнесПроцесс(Прокси); + РезультатЗапуска = РаботаС1СДокументооборот.ЗапуститьБизнесПроцесс(Прокси, Объект); + + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, РезультатЗапуска, "DMError") Тогда + ВызватьИсключение(РезультатЗапуска.Description); + Иначе + ОбъектID = РезультатЗапуска.BusinessProcess.objectId.id; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +&НаСервере +Функция ПодготовитьБизнесПроцесс(Прокси) + + Объект = СоздатьОбъект(Прокси, "DMBusinessProcessConfirmation"); + + Объект.name = Наименование; + Объект.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.objectId.id = ОбъектID; + Объект.objectId.type = "DMBusinessProcessConfirmation"; + + //Общая шапка бизнес-процессов + Объект.author = СоздатьОбъект(Прокси, "DMUser"); + Объект.author.name = Автор; + Объект.author.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.author.objectId.id = АвторID; + Объект.author.objectId.type = АвторТип; + + Объект.importance = СоздатьОбъект(Прокси, "DMBusinessProcessImportance"); + Объект.importance.name = Важность; + Объект.importance.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.importance.objectId.id = ВажностьID; + Объект.importance.objectId.type = ВажностьТип; + + Объект.beginDate = ДатаНачала; + + Объект.target = СоздатьОбъект(Прокси, "DMObject"); + Объект.target.name = Предмет; + Объект.target.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.target.objectId.id = ПредметID; + Объект.target.objectId.type = ПредметТип; + + Объект.started = Стартован; + Объект.completed = Завершен; + Объект.description = Описание; + Объект.duedate = Срок; + + Объект.useDigitalSign = ПодписыватьЭЦП; + + //исполнитель + ИсполнительБП = СоздатьОбъект(Прокси, "DMBusinessProcessTaskExecutor"); + + Если ИсполнительТип = "DMUser" Тогда + ИсполнительБП.user = СоздатьОбъект(Прокси, "DMUser"); + ИсполнительБП.user.name = Исполнитель; + ИсполнительБП.user.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.user.objectId.id = ИсполнительID; + ИсполнительБП.user.objectId.type = ИсполнительТип; + Иначе + ИсполнительБП.role = СоздатьОбъект(Прокси, "DMBusinessProcessExecutorRole"); + ИсполнительБП.role.name = Исполнитель; + ИсполнительБП.role.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.role.objectId.id = ИсполнительID; + ИсполнительБП.role.objectId.type = ИсполнительТип; + + Если ЗначениеЗаполнено(ОсновнойОбъектАдресации) Тогда + ИсполнительБП.mainAddressingObject = СоздатьОбъект(Прокси, "DMMainAddressingObject"); + ИсполнительБП.mainAddressingObject.name = ОсновнойОбъектАдресации; + ИсполнительБП.mainAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.mainAddressingObject.objectId.id = ОсновнойОбъектАдресацииID; + ИсполнительБП.mainAddressingObject.objectId.type = ОсновнойОбъектАдресацииТип; + КонецЕсли; + + Если ЗначениеЗаполнено(ДополнительныйОбъектАдресации) Тогда + ИсполнительБП.secondaryAddressingObject = СоздатьОбъект(Прокси, "DMSecondaryAddressingObject"); + ИсполнительБП.secondaryAddressingObject.name = ДополнительныйОбъектАдресации; + ИсполнительБП.secondaryAddressingObject.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + ИсполнительБП.secondaryAddressingObject.objectId.id = ДополнительныйОбъектАдресацииID; + ИсполнительБП.secondaryAddressingObject.objectId.type = ДополнительныйОбъектАдресацииТип; + КонецЕсли; + КонецЕсли; + + Объект.performer = ИсполнительБП; + + Возврат Объект; + +КонецФункции + +&НаКлиенте +Функция ЗаписатьОбъектВыполнить() + + ПодготовитьКПередачеИЗаписатьБизнесПроцесс(); + Модифицированность = Ложь; + Возврат Истина; + +КонецФункции + + + + diff --git a/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/ДокументооборотБизнесПроцессУтверждение.mdo b/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/ДокументооборотБизнесПроцессУтверждение.mdo new file mode 100644 index 000000000..53211e752 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотБизнесПроцессУтверждение/ДокументооборотБизнесПроцессУтверждение.mdo @@ -0,0 +1,19 @@ + + + ДокументооборотБизнесПроцессУтверждение + + ru + Документооборот бизнес процесс утверждение + + + + ru + + + PersonalComputer + MobileDevice + + ru + Бизнес-процесс "Утверждение" + + diff --git a/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/ConditionalAppearance.dcssca b/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/ConditionalAppearance.dcssca new file mode 100644 index 000000000..4468d6a9f --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/ConditionalAppearance.dcssca @@ -0,0 +1,32 @@ + + + + + + ТаблицаПодписейКомуВыданСертификат + + + ТаблицаПодписейДатаПодписи + + + ТаблицаПодписейКомментарий + + + ТаблицаПодписейСтатус + + + + + ТаблицаПодписей.Неверна + Equal + true + + + + + ЦветТекста + style:SpecialTextColor + + + + diff --git a/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/Form.form b/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/Form.form new file mode 100644 index 000000000..64e08669b --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/Form.form @@ -0,0 +1,5723 @@ + + + + ГруппаШапка + 1 + + ГруппаРеквизиты + 2 + + Папка + 8 + true + true + + true + + + Папка + + + ПапкаРасширеннаяПодсказка + 141 + Label + true + true + + Left + + + + ПапкаКонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПапкаАвтоПодбор + + + StartChoice + ПапкаНачалоВыбора + + + TextEditEnd + ПапкаОкончаниеВводаТекста + + + ChoiceProcessing + ПапкаОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Подготовил + 10 + true + true + + true + + + Подготовил + + + ПодготовилРасширеннаяПодсказка + 143 + Label + true + true + + Left + + + + ПодготовилКонтекстноеМеню + 11 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПодготовилАвтоПодбор + + + StartChoice + ПодготовилНачалоВыбора + + + TextEditEnd + ПодготовилОкончаниеВводаТекста + + + ChoiceProcessing + ПодготовилОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Подписал + 12 + true + true + + true + + + Подписал + + + ПодписалРасширеннаяПодсказка + 145 + Label + true + true + + Left + + + + ПодписалКонтекстноеМеню + 13 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПодписалАвтоПодбор + + + StartChoice + ПодписалНачалоВыбора + + + TextEditEnd + ПодписалОкончаниеВводаТекста + + + ChoiceProcessing + ПодписалОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Подразделение + 66 + true + true + + true + + + Подразделение + + + ПодразделениеРасширеннаяПодсказка + 147 + Label + true + true + + Left + + + + ПодразделениеКонтекстноеМеню + 67 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПодразделениеАвтоПодбор + + + StartChoice + ПодразделениеНачалоВыбора + + + TextEditEnd + ПодразделениеОкончаниеВводаТекста + + + ChoiceProcessing + ПодразделениеОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Корреспондент + 48 + true + true + + true + + + Корреспондент + + + КорреспондентРасширеннаяПодсказка + 149 + Label + true + true + + Left + + + + КорреспондентКонтекстноеМеню + 49 + true + + InputField + Enter + true + Left + true + + + AutoComplete + КорреспондентАвтоПодбор + + + StartChoice + КорреспондентНачалоВыбора + + + TextEditEnd + КорреспондентОкончаниеВводаТекста + + + ChoiceProcessing + КорреспондентОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + КонтактноеЛицо + 54 + true + true + + true + + + КонтактноеЛицо + + + КонтактноеЛицоРасширеннаяПодсказка + 151 + Label + true + true + + Left + + + + КонтактноеЛицоКонтекстноеМеню + 55 + true + + InputField + Enter + true + Left + true + + + AutoComplete + КонтактноеЛицоАвтоПодбор + + + StartChoice + КонтактноеЛицоНачалоВыбора + + + TextEditEnd + КонтактноеЛицоОкончаниеВводаТекста + + + ChoiceProcessing + КонтактноеЛицоОбработкаВыбора + + true + true + true + true + true + true + Normal + + + + СрокИсполнения + 52 + true + true + + true + + + СрокИсполнения + + + СрокИсполненияРасширеннаяПодсказка + 153 + Label + true + true + + Left + + + + СрокИсполненияКонтекстноеМеню + 53 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ГруппаСрокДействия + 56 + + ГруппаБессрочный + 57 + + ДатаНачалаДействия + 58 + + <key>ru</key> + <value>Действует с</value> + + true + true + + true + + + ДатаНачалаДействия + + + ДатаНачалаДействияРасширеннаяПодсказка + 157 + Label + true + true + + Left + + + + ДатаНачалаДействияКонтекстноеМеню + 59 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Бессрочный + 60 + true + true + + true + + + Бессрочный + + Right + + OnChange + БессрочныйПриИзменении + + + БессрочныйРасширеннаяПодсказка + 159 + Label + true + true + + Left + + + + БессрочныйКонтекстноеМеню + 61 + true + + CheckBoxField + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Группа бессрочный</value> + + + ru + Группа бессрочный + + + ГруппаБессрочныйРасширеннаяПодсказка + 156 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ДатаОкончанияДействия + 62 + + <key>ru</key> + <value>Действует по</value> + + true + true + + true + + + ДатаОкончанияДействия + + + ДатаОкончанияДействияРасширеннаяПодсказка + 161 + Label + true + true + + Left + + + + ДатаОкончанияДействияКонтекстноеМеню + 63 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ПорядокПродления + 64 + + <key>ru</key> + <value>Продление</value> + + true + true + + true + + + ПорядокПродления + + + ПорядокПродленияРасширеннаяПодсказка + 163 + Label + true + true + + Left + + + + ПорядокПродленияКонтекстноеМеню + 65 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПорядокПродленияАвтоПодбор + + + StartChoice + ПорядокПродленияНачалоВыбора + + + TextEditEnd + ПорядокПродленияОкончаниеВводаТекста + + + ChoiceProcessing + ПорядокПродленияОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа срок действия</value> + + + ru + Группа срок действия + + + ГруппаСрокДействияРасширеннаяПодсказка + 155 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа реквизиты</value> + + + ru + Группа реквизиты + + + ГруппаРеквизитыРасширеннаяПодсказка + 140 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаРегистрация + 3 + + ГрифДоступа + 4 + true + true + + true + + + ГрифДоступа + + + ГрифДоступаРасширеннаяПодсказка + 166 + Label + true + true + + Left + + + + ГрифДоступаКонтекстноеМеню + 5 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ГрифДоступаАвтоПодбор + + + StartChoice + ГрифДоступаНачалоВыбора + + + TextEditEnd + ГрифДоступаОкончаниеВводаТекста + + + ChoiceProcessing + ГрифДоступаОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ВидДокумента + 6 + true + true + + true + + + ВидДокумента + + + ВидДокументаРасширеннаяПодсказка + 168 + Label + true + true + + Left + + + + ВидДокументаКонтекстноеМеню + 7 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВидДокументаАвтоПодбор + + + StartChoice + ВидДокументаНачалоВыбора + + + TextEditEnd + ВидДокументаОкончаниеВводаТекста + + + ChoiceProcessing + ВидДокументаОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Состояние + 41 + true + true + + true + + + Состояние + + + СостояниеРасширеннаяПодсказка + 170 + Label + true + true + + Left + + + + СостояниеКонтекстноеМеню + 42 + true + + InputField + Enter + true + Left + true + + + AutoComplete + СостояниеАвтоПодбор + + + StartChoice + СостояниеНачалоВыбора + + + TextEditEnd + СостояниеОкончаниеВводаТекста + + + ChoiceProcessing + СостояниеОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ГруппаРегНомер + 35 + + РегистрационныйНомер + 36 + + <key>ru</key> + <value>Рег. номер</value> + + true + true + + true + + + РегистрационныйНомер + + + РегистрационныйНомерРасширеннаяПодсказка + 173 + Label + true + true + + Left + + + + РегистрационныйНомерКонтекстноеМеню + 37 + true + + InputField + + ru + Для документа установлена автоматическая нумерация. Редактирование поля не рекомендуется. + + Enter + true + Left + true + + 12 + true + true + true + true + true + true + Normal + + + + ДатаРегистрации + 38 + true + true + + true + + + ДатаРегистрации + + + ДатаРегистрацииРасширеннаяПодсказка + 175 + Label + true + true + + Left + + + + ДатаРегистрацииКонтекстноеМеню + 39 + true + + InputField + Enter + true + Left + true + + 10 + true + true + true + + ru + ДФ=dd.MM.yyyy + + true + true + true + Normal + + + + Зарегистрировать + 40 + + <key>ru</key> + <value>№</value> + + true + true + + true + + + ЗарегистрироватьРасширеннаяПодсказка + 177 + Label + true + true + + Left + + + UsualButton + Form.Command.Зарегистрировать + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Группа рег номер</value> + + + ru + Группа рег номер + + + ГруппаРегНомерРасширеннаяПодсказка + 172 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Организация + 14 + true + true + + true + + + Организация + + + ОрганизацияРасширеннаяПодсказка + 178 + Label + true + true + + Left + + + + ОрганизацияКонтекстноеМеню + 15 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ОрганизацияАвтоПодбор + + + StartChoice + ОрганизацияНачалоВыбора + + + TextEditEnd + ОрганизацияОкончаниеВводаТекста + + + ChoiceProcessing + ОрганизацияОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ВопросДеятельности + 33 + true + true + + true + + + ВопросДеятельности + + + ВопросДеятельностиРасширеннаяПодсказка + 180 + Label + true + true + + Left + + + + ВопросДеятельностиКонтекстноеМеню + 34 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВопросДеятельностиАвтоПодбор + + + StartChoice + ВопросДеятельностиНачалоВыбора + + + TextEditEnd + ВопросДеятельностиОкончаниеВводаТекста + + + ChoiceProcessing + ВопросДеятельностиОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ГруппаСумма + 43 + + Сумма + 44 + true + true + + true + + + Сумма + + + СуммаРасширеннаяПодсказка + 183 + Label + true + true + + Left + + + + СуммаКонтекстноеМеню + 45 + true + + InputField + Enter + true + Left + true + + 12 + true + true + true + true + true + true + Normal + + + + Валюта + 46 + true + true + + true + + + Валюта + + None + + ВалютаРасширеннаяПодсказка + 185 + Label + true + true + + Left + + + + ВалютаКонтекстноеМеню + 47 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВалютаАвтоПодбор + + + StartChoice + ВалютаНачалоВыбора + + + TextEditEnd + ВалютаОкончаниеВводаТекста + + + ChoiceProcessing + ВалютаОбработкаВыбора + + 8 + true + true + false + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа сумма</value> + + + ru + Группа сумма + + + ГруппаСуммаРасширеннаяПодсказка + 182 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа регистрация</value> + + + ru + Группа регистрация + + + ГруппаРегистрацияРасширеннаяПодсказка + 165 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа шапка</value> + + + ru + Группа шапка + + + ГруппаШапкаРасширеннаяПодсказка + 139 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Equal + Auto + Auto + + + + ЗаголовокДокумента + 68 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + ЗаголовокДокумента + + + ЗаголовокДокументаРасширеннаяПодсказка + 187 + Label + true + true + + Left + + + + ЗаголовокДокументаКонтекстноеМеню + 69 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Описание + 70 + + <key>ru</key> + <value>Краткое описание</value> + + true + true + + true + + + Описание + + None + + ОписаниеРасширеннаяПодсказка + 189 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 71 + true + + InputField + Enter + true + Left + true + + true + 3 + true + true + true + true + true + true + Normal + + + + ГруппаСтраницы + 72 + + ГруппаФайлы + 73 + + Файлы + 20 + true + true + + true + + + Файлы + + None + Add + Copy + EndEdit + MoveDown + MoveUp + SelectAll + SortListAsc + SortListDesc + + ФайлыПодписанЭЦП + 102 + true + true + + true + + + Файлы.ПодписанЭЦП + + + ФайлыПодписанЭЦПРасширеннаяПодсказка + 221 + Label + true + true + + Left + + + + ФайлыПодписанЭЦПКонтекстноеМеню + 103 + true + + PictureField + Enter + + CommonPicture.ПодписанЭЦП + + Left + true + + true + true + true + true + + CommonPicture.ПодписанЭЦП + + + + 1 + + + + + ГруппаКартинкаИНаименование + 99 + + ФайлыИндексКартинки + 100 + true + true + + true + + + Файлы.ИндексКартинки + + + ФайлыИндексКартинкиРасширеннаяПодсказка + 224 + Label + true + true + + Left + + + + ФайлыИндексКартинкиКонтекстноеМеню + 101 + true + + PictureField + Enter + Left + true + + true + true + true + true + + CommonPicture.ПиктограммыФайлов + + + + 1 + + + + + ФайлыНаименование + 27 + true + true + + true + + + Файлы.Наименование + + + ФайлыНаименованиеРасширеннаяПодсказка + 226 + Label + true + true + + Left + + + + ФайлыНаименованиеКонтекстноеМеню + 28 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ФайлыОписание + 29 + true + true + + true + + + Файлы.Описание + + + ФайлыОписаниеРасширеннаяПодсказка + 228 + Label + true + true + + Left + + + + ФайлыОписаниеКонтекстноеМеню + 30 + true + + InputField + Enter + Left + true + + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа картинка и наименование</value> + + + ru + Группа картинка и наименование + + + ГруппаКартинкаИНаименованиеРасширеннаяПодсказка + 223 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + ФайлыКоманднаяПанель + 22 + + ФайлыСоздатьФайл + 82 + true + true + + true + + + ФайлыСоздатьФайлРасширеннаяПодсказка + 202 + Label + true + true + + Left + + + Form.Command.СоздатьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыОткрытьФайл + 83 + true + true + + true + + + ФайлыОткрытьФайлРасширеннаяПодсказка + 203 + Label + true + true + + Left + + + Form.Command.ОткрытьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыОбновитьИзФайлаНаДиске + 84 + true + true + + true + + + ФайлыОбновитьИзФайлаНаДискеРасширеннаяПодсказка + 204 + Label + true + true + + Left + + + Form.Command.ОбновитьИзФайлаНаДиске + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыСохранитьКак + 85 + true + true + + true + + + ФайлыСохранитьКакРасширеннаяПодсказка + 205 + Label + true + true + + Left + + + Form.Command.СохранитьКак + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыГруппаЭЦП + 86 + + ФайлыПодписать + 87 + true + true + + true + + + ФайлыПодписатьРасширеннаяПодсказка + 207 + Label + true + true + + Left + + + Form.Command.Подписать + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыДобавитьЭЦПИзФайла + 88 + true + true + + true + + + ФайлыДобавитьЭЦПИзФайлаРасширеннаяПодсказка + 208 + Label + true + true + + Left + + + Form.Command.ДобавитьЭЦПИзФайла + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыСохранитьВместеСЭЦП + 89 + true + true + + true + + + ФайлыСохранитьВместеСЭЦПРасширеннаяПодсказка + 209 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭЦП + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ФайлыГруппаЭЦПРасширеннаяПодсказка + 206 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + ФайлыЗаполнитьКопированием + 133 + true + true + + true + + + ФайлыЗаполнитьКопированиемРасширеннаяПодсказка + 210 + Label + true + true + + Left + + + Form.Command.ЗаполнитьКопированием + Normal + Auto + true + true + UserCmds + Auto + + Left + + + DragCheck + СписокФайловПроверкаПеретаскивания + + + Selection + ФайлыВыбор + + + BeforeAddRow + ФайлыПередНачаломДобавления + + + BeforeDeleteRow + ФайлыПередУдалением + + + OnActivateRow + ФайлыПриАктивизацииСтроки + + + Drag + СписокФайловПеретаскивание + + + BeforeRowChange + ФайлыПередНачаломИзменения + + + ФайлыСтрокаПоиска + 212 + + ФайлыСтрокаПоискаРасширеннаяПодсказка + 214 + Label + true + true + + Left + + + + ФайлыСтрокаПоискаКонтекстноеМеню + 213 + true + + Файлы + + true + + + + ФайлыСостояниеПросмотра + 215 + + ФайлыСостояниеПросмотраРасширеннаяПодсказка + 217 + Label + true + true + + Left + + + + ФайлыСостояниеПросмотраКонтекстноеМеню + 216 + true + + ViewStatusAddition + Файлы + + true + + + + ФайлыУправлениеПоиском + 218 + + ФайлыУправлениеПоискомРасширеннаяПодсказка + 220 + Label + true + true + + Left + + + + ФайлыУправлениеПоискомКонтекстноеМеню + 219 + true + + SearchControlAddition + Файлы + + true + + + + ФайлыРасширеннаяПодсказка + 211 + Label + true + true + + Left + + + + ФайлыКонтекстноеМеню + 21 + + ФайлыКонтекстноеМенюСоздатьФайл + 91 + true + true + + true + + + ФайлыКонтекстноеМенюСоздатьФайлРасширеннаяПодсказка + 193 + Label + true + true + + Left + + + Form.Command.СоздатьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюГруппаСтандартные + 90 + true + true + + true + + + <key>ru</key> + <value>Файлы контекстное меню группа стандартные</value> + + + ru + Файлы контекстное меню группа стандартные + + + ФайлыКонтекстноеМенюГруппаСтандартныеРасширеннаяПодсказка + 194 + Label + true + true + + Left + + + + Item.Файлы + + + + ФайлыКонтекстноеМенюОткрытьФайл + 92 + true + true + + true + + + ФайлыКонтекстноеМенюОткрытьФайлРасширеннаяПодсказка + 195 + Label + true + true + + Left + + + Form.Command.ОткрытьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюСохранитьКак + 93 + true + true + + true + + + ФайлыКонтекстноеМенюСохранитьКакРасширеннаяПодсказка + 196 + Label + true + true + + Left + + + Form.Command.СохранитьКак + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске + 94 + true + true + + true + + + ФайлыКонтекстноеМенюОбновитьИзФайлаНаДискеРасширеннаяПодсказка + 197 + Label + true + true + + Left + + + Form.Command.ОбновитьИзФайлаНаДиске + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюГруппаЭЦП + 95 + + ФайлыКонтекстноеМенюПодписать + 96 + true + true + + true + + + ФайлыКонтекстноеМенюПодписатьРасширеннаяПодсказка + 199 + Label + true + true + + Left + + + Form.Command.Подписать + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла + 97 + true + true + + true + + + ФайлыКонтекстноеМенюДобавитьЭЦПИзФайлаРасширеннаяПодсказка + 200 + Label + true + true + + Left + + + Form.Command.ДобавитьЭЦПИзФайла + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюСохранитьВместеСЭЦП + 98 + true + true + + true + + + ФайлыКонтекстноеМенюСохранитьВместеСЭЦПРасширеннаяПодсказка + 201 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭЦП + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ФайлыКонтекстноеМенюГруппаЭЦПРасширеннаяПодсказка + 198 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ true + true + + true + + + <key>ru</key> + <value>Файлы</value> + + + ru + Группа файлы + + + ГруппаФайлыРасширеннаяПодсказка + 192 + Label + true + true + + Left + + + Page + + Vertical + auto + +
+ + ГруппаЭЦП + 104 + + ТаблицаПодписей + 105 + true + true + + true + + + ТаблицаПодписей + + None + Change + + ТаблицаПодписейКомуВыданСертификат + 121 + true + true + + true + + + ТаблицаПодписей.КомуВыданСертификат + + + ТаблицаПодписейКомуВыданСертификатРасширеннаяПодсказка + 254 + Label + true + true + + Left + + + + ТаблицаПодписейКомуВыданСертификатКонтекстноеМеню + 122 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейДатаПодписи + 123 + true + true + + true + + + ТаблицаПодписей.ДатаПодписи + + + ТаблицаПодписейДатаПодписиРасширеннаяПодсказка + 256 + Label + true + true + + Left + + + + ТаблицаПодписейДатаПодписиКонтекстноеМеню + 124 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейКомментарий + 125 + true + true + + true + + + ТаблицаПодписей.Комментарий + + + ТаблицаПодписейКомментарийРасширеннаяПодсказка + 258 + Label + true + true + + Left + + + + ТаблицаПодписейКомментарийКонтекстноеМеню + 126 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейСтатус + 127 + true + true + + true + + + ТаблицаПодписей.Статус + + + ТаблицаПодписейСтатусРасширеннаяПодсказка + 260 + Label + true + true + + Left + + + + ТаблицаПодписейСтатусКонтекстноеМеню + 128 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейКоманднаяПанель + 107 + + ТаблицаПодписейОткрытьПодпись + 116 + true + true + + true + + + ТаблицаПодписейОткрытьПодписьРасширеннаяПодсказка + 239 + Label + true + true + + Left + + + Form.Command.ОткрытьПодпись + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейПроверить + 117 + true + true + + true + + + ТаблицаПодписейПроверитьРасширеннаяПодсказка + 240 + Label + true + true + + Left + + + Form.Command.Проверить + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейПроверитьВсе + 118 + true + true + + true + + + ТаблицаПодписейПроверитьВсеРасширеннаяПодсказка + 241 + Label + true + true + + Left + + + Form.Command.ПроверитьВсе + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейСохранить + 119 + true + true + + true + + + ТаблицаПодписейСохранитьРасширеннаяПодсказка + 242 + Label + true + true + + Left + + + Form.Command.Сохранить + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейУдалить + 120 + true + true + + true + + + ТаблицаПодписейУдалитьРасширеннаяПодсказка + 243 + Label + true + true + + Left + + + Form.Command.Удалить + Normal + Auto + true + true + UserCmds + Auto + + Left + + + Selection + ТаблицаПодписейВыбор + + + ТаблицаПодписейСтрокаПоиска + 245 + + ТаблицаПодписейСтрокаПоискаРасширеннаяПодсказка + 247 + Label + true + true + + Left + + + + ТаблицаПодписейСтрокаПоискаКонтекстноеМеню + 246 + true + + ТаблицаПодписей + + true + + + + ТаблицаПодписейСостояниеПросмотра + 248 + + ТаблицаПодписейСостояниеПросмотраРасширеннаяПодсказка + 250 + Label + true + true + + Left + + + + ТаблицаПодписейСостояниеПросмотраКонтекстноеМеню + 249 + true + + ViewStatusAddition + ТаблицаПодписей + + true + + + + ТаблицаПодписейУправлениеПоиском + 251 + + ТаблицаПодписейУправлениеПоискомРасширеннаяПодсказка + 253 + Label + true + true + + Left + + + + ТаблицаПодписейУправлениеПоискомКонтекстноеМеню + 252 + true + + SearchControlAddition + ТаблицаПодписей + + true + + + + ТаблицаПодписейРасширеннаяПодсказка + 244 + Label + true + true + + Left + + + + ТаблицаПодписейКонтекстноеМеню + 106 + true + + Tree + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + + ТаблицаПодписей.ИндексКартинки + + + CommonPicture.ПиктограммыФайлов + + None + None + None + true +
+ true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ГруппаЭЦПРасширеннаяПодсказка + 238 + Label + true + true + + Left + + + Page + + Vertical + auto + +
+ + ГруппаСвойства + 74 + + Свойства + 75 + true + true + + true + + + Свойства + + None + Add + CancelSearch + Change + Copy + CopyToClipboard + Delete + EndEdit + Find + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + СвойстваСвойство + 78 + + <key>ru</key> + <value>Свойство</value> + + true + true + + true + + + Свойства.Свойство + + + СвойстваСвойствоРасширеннаяПодсказка + 281 + Label + true + true + + Left + + + + СвойстваСвойствоКонтекстноеМеню + 79 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + СвойстваЗначение + 80 + + <key>ru</key> + <value>Значение</value> + + true + true + + true + + + Свойства.Значение + + + СвойстваЗначениеРасширеннаяПодсказка + 283 + Label + true + true + + Left + + + + СвойстваЗначениеКонтекстноеМеню + 81 + true + + InputField + true + Left + true + + + StartChoice + СвойстваЗначениеПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + СвойстваКоманднаяПанель + 77 + Left + true + + + СвойстваСтрокаПоиска + 272 + + СвойстваСтрокаПоискаРасширеннаяПодсказка + 274 + Label + true + true + + Left + + + + СвойстваСтрокаПоискаКонтекстноеМеню + 273 + true + + Свойства + + true + + + + СвойстваСостояниеПросмотра + 275 + + СвойстваСостояниеПросмотраРасширеннаяПодсказка + 277 + Label + true + true + + Left + + + + СвойстваСостояниеПросмотраКонтекстноеМеню + 276 + true + + ViewStatusAddition + Свойства + + true + + + + СвойстваУправлениеПоиском + 278 + + СвойстваУправлениеПоискомРасширеннаяПодсказка + 280 + Label + true + true + + Left + + + + СвойстваУправлениеПоискомКонтекстноеМеню + 279 + true + + SearchControlAddition + Свойства + + true + + + + СвойстваРасширеннаяПодсказка + 271 + Label + true + true + + Left + + + + СвойстваКонтекстноеМеню + 76 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ true + true + + true + + + <key>ru</key> + <value>Свойства</value> + + + ru + Группа свойства + + + ГруппаСвойстваРасширеннаяПодсказка + 270 + Label + true + true + + Left + + + Page + + Vertical + auto + +
+ true + true + + true + + + <key>ru</key> + <value>Группа страницы</value> + + + ru + Группа страницы + + + ГруппаСтраницыРасширеннаяПодсказка + 191 + Label + true + true + + Left + + + Pages + + TabsOnTop + Auto + +
+ + Ответственный + 16 + true + true + + true + + + Ответственный + + + ОтветственныйРасширеннаяПодсказка + 293 + Label + true + true + + Left + + + + ОтветственныйКонтекстноеМеню + 17 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ОтветственныйАвтоПодбор + + + StartChoice + ОтветственныйНачалоВыбора + + + TextEditEnd + ОтветственныйОкончаниеВводаТекста + + + ChoiceProcessing + ОтветственныйОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Комментарий + 18 + true + true + + true + + + Комментарий + + + КомментарийРасширеннаяПодсказка + 295 + Label + true + true + + Left + + + + КомментарийКонтекстноеМеню + 19 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ФормаКоманднаяПанель + -1 + + ЗаписатьИЗакрыть + 50 + true + true + + true + + + ЗаписатьИЗакрытьРасширеннаяПодсказка + 134 + Label + true + true + + Left + + + Form.Command.ЗаписатьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + Записать + 51 + true + true + + true + + + ЗаписатьРасширеннаяПодсказка + 135 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаСоздатьБизнесПроцесс + 131 + true + true + + true + + + ФормаСоздатьБизнесПроцессРасширеннаяПодсказка + 136 + Label + true + true + + Left + + + Form.Command.СоздатьБизнесПроцесс + Normal + Auto + true + true + UserCmds + Auto + + + ГруппаКомандЭЦП + 129 + + ФормаПодписатьДокумент + 130 + true + true + + true + + + ФормаПодписатьДокументРасширеннаяПодсказка + 138 + Label + true + true + + Left + + + Form.Command.ПодписатьДокумент + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ГруппаКомандЭЦПРасширеннаяПодсказка + 137 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + OnOpen + ПриОткрытии + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Папка + + <key>ru</key> + <value>Папка</value> + + 1 + + String + + + + true + + + true + + true + + + ПапкаID + + <key>ru</key> + <value>Папка ID</value> + + 2 + + String + + + + true + + + true + + + + ПапкаТип + + <key>ru</key> + <value>Папка тип</value> + + 3 + + String + + + + true + + + true + + + + ВидДокументаID + + <key>ru</key> + <value>Вид документа ID</value> + + 4 + + String + + + + true + + + true + + + + ВидДокумента + + <key>ru</key> + <value>Вид</value> + + 5 + + String + + + + true + + + true + + true + + + ВидДокументаТип + + <key>ru</key> + <value>Вид документа тип</value> + + 6 + + String + + + + true + + + true + + + + ГрифДоступаID + + <key>ru</key> + <value>Гриф доступа ID</value> + + 7 + + String + + + + true + + + true + + + + ГрифДоступа + + <key>ru</key> + <value>Гриф</value> + + 8 + + String + + + + true + + + true + + true + + + ГрифДоступаТип + + <key>ru</key> + <value>Гриф доступа тип</value> + + 9 + + String + + + + true + + + true + + + + ПодготовилID + + <key>ru</key> + <value>Подготовил ID</value> + + 10 + + String + + + + true + + + true + + + + Подготовил + + <key>ru</key> + <value>Подготовил</value> + + 11 + + String + + + + true + + + true + + true + + + ПодготовилТип + + <key>ru</key> + <value>Подготовил тип</value> + + 12 + + String + + + + true + + + true + + + + ПодписалID + + <key>ru</key> + <value>Подписал ID</value> + + 13 + + String + + + + true + + + true + + + + Подписал + + <key>ru</key> + <value>Подписал</value> + + 14 + + String + + + + true + + + true + + true + + + ПодписалТип + + <key>ru</key> + <value>Подписал тип</value> + + 15 + + String + + + + true + + + true + + + + ОрганизацияID + + <key>ru</key> + <value>Организация ID</value> + + 16 + + String + + + + true + + + true + + + + Организация + + <key>ru</key> + <value>Организация</value> + + 17 + + String + + + + true + + + true + + true + + + ОрганизацияТип + + <key>ru</key> + <value>Организация тип</value> + + 18 + + String + + + + true + + + true + + + + ОтветственныйID + + <key>ru</key> + <value>Ответственный ID</value> + + 19 + + String + + + + true + + + true + + + + Ответственный + + <key>ru</key> + <value>Ответственный</value> + + 20 + + String + + + + true + + + true + + true + + + ОтветственныйТип + + <key>ru</key> + <value>Ответственный тип</value> + + 21 + + String + + + + true + + + true + + + + Комментарий + + <key>ru</key> + <value>Комментарий</value> + + 22 + + String + + + + true + + + true + + true + + + ВопросДеятельностиID + + <key>ru</key> + <value>Вопрос деятельности ID</value> + + 24 + + String + + + + true + + + true + + + + ВопросДеятельности + + <key>ru</key> + <value>Вопрос</value> + + 25 + + String + + + + true + + + true + + true + + + ВопросДеятельностиТип + + <key>ru</key> + <value>Вопрос деятельности тип</value> + + 26 + + String + + + + true + + + true + + + + РегистрационныйНомер + + <key>ru</key> + <value>Регистрационный номер</value> + + 27 + + String + + + + true + + + true + + true + + + ДатаРегистрации + + <key>ru</key> + <value>от</value> + + 28 + + Date + + + + true + + + true + + true + + + СостояниеID + + <key>ru</key> + <value>Состояние ID</value> + + 29 + + String + + + + true + + + true + + + + Состояние + + <key>ru</key> + <value>Состояние</value> + + 30 + + String + + + + true + + + true + + true + + + СостояниеТип + + <key>ru</key> + <value>Состояние</value> + + 31 + + String + + + + true + + + true + + + + ВалютаID + + <key>ru</key> + <value>Валюта ID</value> + + 32 + + String + + + + true + + + true + + + + Валюта + + <key>ru</key> + <value>Валюта</value> + + 33 + + String + + + + true + + + true + + true + + + ВалютаТип + + <key>ru</key> + <value>Валюта тип</value> + + 34 + + String + + + + true + + + true + + + + Сумма + + <key>ru</key> + <value>Сумма</value> + + 35 + + Number + + 15 + 2 + true + + + + true + + + true + + true + + + ID + + <key>ru</key> + <value>ID</value> + + 36 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 37 + + String + + + + true + + + true + + + + КорреспондентID + + <key>ru</key> + <value>Корреспондент ID</value> + + 38 + + String + + + + true + + + true + + + + Корреспондент + + <key>ru</key> + <value>Корреспондент</value> + + 39 + + String + + + + true + + + true + + true + + + КорреспондентТип + + <key>ru</key> + <value>Корреспондент тип</value> + + 40 + + String + + + + true + + + true + + + + СрокИсполнения + + <key>ru</key> + <value>Срок исполнения</value> + + 41 + + Date + + Date + + + + true + + + true + + true + + + КонтактноеЛицо + + <key>ru</key> + <value>Контактное лицо</value> + + 42 + + String + + + + true + + + true + + true + + + КонтактноеЛицоID + + <key>ru</key> + <value>Контактное лицо ID</value> + + 43 + + String + + + + true + + + true + + + + КонтактноеЛицоТип + + <key>ru</key> + <value>Контактное лицо тип</value> + + 44 + + String + + + + true + + + true + + + + ДатаНачалаДействия + + <key>ru</key> + <value>Дата начала действия</value> + + 45 + + Date + + Date + + + + true + + + true + + true + + + Бессрочный + + <key>ru</key> + <value>Бессрочный</value> + + 46 + + Boolean + + + true + + + true + + true + + + ДатаОкончанияДействия + + <key>ru</key> + <value>Дата окончания действия</value> + + 47 + + Date + + Date + + + + true + + + true + + true + + + ПорядокПродления + + <key>ru</key> + <value>Порядок продления</value> + + 48 + + String + + + + true + + + true + + true + + + Подразделение + + <key>ru</key> + <value>Подразделение</value> + + 49 + + String + + + + true + + + true + + true + + + ПодразделениеID + + <key>ru</key> + <value>Подразделение ID</value> + + 50 + + String + + + + true + + + true + + + + ПодразделениеТип + + <key>ru</key> + <value>Подразделение тип</value> + + 51 + + String + + + + true + + + true + + + + ЗаголовокДокумента + + <key>ru</key> + <value>Заголовок документа</value> + + 52 + + String + + + + true + + + true + + true + + + Описание + + <key>ru</key> + <value>Описание</value> + + 53 + + String + + + + true + + + true + + true + + + ВнешнийОбъект + + <key>ru</key> + <value>Внешний объект</value> + + 54 + + AnyRef + + + true + + + true + + + + ПорядокПродленияТип + + <key>ru</key> + <value>Порядок продления</value> + + 55 + + String + + + + true + + + true + + + + ПорядокПродленияID + + <key>ru</key> + <value>Порядок продления</value> + + 56 + + String + + + + true + + + true + + + + Представление + + <key>ru</key> + <value>Представление</value> + + 57 + + String + + + + true + + + true + + + + ЗакрытиеСПараметром + + <key>ru</key> + <value>Закрытие с параметром</value> + + 58 + + Boolean + + + true + + + true + + + + Свойства + + <key>ru</key> + <value>Свойства</value> + + 59 + + ValueTable + + + true + + + true + + true + + Свойство + + <key>ru</key> + <value>Свойство</value> + + 1 + + String + + + + true + + + true + + + + Значение + + <key>ru</key> + <value>Значение</value> + + 2 + + Boolean + String + Date + Number + + 10 + + + + Date + + + + true + + + true + + + + ЗначениеТип + + <key>ru</key> + <value>Значение тип</value> + + 3 + + String + + + + true + + + true + + + + ЗначениеID + + <key>ru</key> + <value>Значение ID</value> + + 4 + + String + + + + true + + + true + + + + СписокДоступныхТипов + + <key>ru</key> + <value>Список доступных типов</value> + + 5 + + ValueList + + + true + + + true + + + + СвойствоТип + + <key>ru</key> + <value>Свойство тип</value> + + 6 + + String + + + + true + + + true + + + + СвойствоID + + <key>ru</key> + <value>Свойство ID</value> + + 7 + + String + + + + true + + + true + + + + + Файлы + + <key>ru</key> + <value>Файлы</value> + + 23 + + ValueTable + + + true + + + true + + + Тип + + <key>ru</key> + <value>Тип</value> + + 2 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 3 + + String + + + + true + + + true + + + + Описание + + <key>ru</key> + <value>Описание</value> + + 4 + + String + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 5 + + String + + + + true + + + true + + + + ИндексКартинки + + <key>ru</key> + <value>Индекс картинки</value> + + 6 + + Number + + + + true + + + true + + + + УникальныйИдентификатор + + <key>ru</key> + <value>Уникальный идентификатор</value> + + 7 + + String + + + + true + + + true + + + + Размер + + <key>ru</key> + <value>Размер (Кб)</value> + + 1 + + Number + + + + true + + + true + + + + Расширение + + <key>ru</key> + <value>Расширение</value> + + 8 + + String + + + + true + + + true + + + + ДатаСоздания + + <key>ru</key> + <value>Дата создания</value> + + 9 + + Date + + + + true + + + true + + + + Зашифрован + + <key>ru</key> + <value>Зашифрован</value> + + 10 + + Boolean + + + true + + + true + + + + Редактируется + + <key>ru</key> + <value>Редактируется</value> + + 11 + + Boolean + + + true + + + true + + + + ПодписанЭЦП + + <key>ru</key> + <value>Подписан ЭЦП</value> + + 12 + + Boolean + + + true + + + true + + + + ДатаМодификацииУниверсальная + + <key>ru</key> + <value>Дата модификации универсальная</value> + + 13 + + Date + + + + true + + + true + + + + + ТаблицаПодписей + + <key>ru</key> + <value>Таблица подписей</value> + + 60 + + ValueTree + + + true + + + true + + + КомуВыданСертификат + + <key>ru</key> + <value>Автор подписи</value> + + 1 + + String + + + + true + + + true + + + + ДатаПодписи + + <key>ru</key> + <value>Дата подписи</value> + + 2 + + Date + + + + true + + + true + + + + Комментарий + + <key>ru</key> + <value>Комментарий</value> + + 3 + + String + + + + true + + + true + + + + Статус + + <key>ru</key> + <value>Статус</value> + + 4 + + String + + + + true + + + true + + + + АдресПодписи + + <key>ru</key> + <value>Адрес подписи</value> + + 6 + + String + + + + true + + + true + + + + Отпечаток + + <key>ru</key> + <value>Отпечаток</value> + + 7 + + String + + + + true + + + true + + + + Неверна + + <key>ru</key> + <value>Неверна</value> + + 8 + + Boolean + + + true + + + true + + + + ИндексКартинки + + <key>ru</key> + <value>Индекс картинки</value> + + 9 + + Number + + 10 + + + + true + + + true + + + + УстановившийПодпись + + <key>ru</key> + <value>Установивший подпись</value> + + 11 + + String + + + + true + + + true + + + + НомерСтроки + + <key>ru</key> + <value>Номер строки</value> + + 10 + + Number + + 10 + + + + true + + + true + + + + АдресСертификата + + <key>ru</key> + <value>Адрес сертификата</value> + + 12 + + String + + + + true + + + true + + + + Зашифрован + + <key>ru</key> + <value>Зашифрован</value> + + 13 + + Boolean + + + true + + + true + + + + ОбъектИд + + <key>ru</key> + <value>Объект ид</value> + + 5 + + String + + + + true + + + true + + + + ОбъектТип + + <key>ru</key> + <value>Объект тип</value> + + 14 + + String + + + + true + + + true + + + + ОбъектИмя + + <key>ru</key> + <value>Объект имя</value> + + 15 + + String + + + + true + + + true + + + + Объект + + <key>ru</key> + <value>Объект</value> + + 16 + + String + + + + true + + + true + + + + ИмяФайлаПодписи + + <key>ru</key> + <value>Имя файла подписи</value> + + 17 + + String + + + + true + + + true + + + + УстановившийПодписьИд + + <key>ru</key> + <value>Установивший подпись ид</value> + + 18 + + String + + + + true + + + true + + + + + КаталогДляСохраненияДанных + + <key>ru</key> + <value>Каталог для сохранения данных</value> + + 61 + + String + + + + true + + + true + + + + НачальныйРегистрационныйНомер + + <key>ru</key> + <value>Начальный регистрационный номер</value> + + 62 + + String + + + + true + + + true + + + + НачальнаяДатаРегистрации + + <key>ru</key> + <value>Начальная дата регистрации</value> + + 63 + + Date + + + + true + + + true + + + + ОграничиватьДоступностьПолей + + <key>ru</key> + <value>Ограничивать доступность полей</value> + + 64 + + Boolean + + + true + + + true + + + + АдресСлепкаДокумента + + <key>ru</key> + <value>Адрес слепка документа</value> + + 65 + + String + + + + true + + + true + + + + Записать + + <key>ru</key> + <value>Записать</value> + + 1 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + true + Auto + Auto + + + ЗаписатьИЗакрыть + + <key>ru</key> + <value>Записать и закрыть</value> + + 2 + + ru + Записать и закрыть + + + true + + + + ЗаписатьИЗакрыть + + + true + Auto + Auto + + + Зарегистрировать + + <key>ru</key> + <value>Зарегистрировать</value> + + 3 + + ru + Зарегистрировать + + + true + + + + Зарегистрировать + + + Auto + Auto + + + ДобавитьЭЦПИзФайла + + <key>ru</key> + <value>Добавить ЭЦП из файла</value> + + 4 + + ru + Добавить ЭЦП из файла + + + true + + + + ДобавитьЭЦПИзФайла + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ОбновитьИзФайлаНаДиске + + <key>ru</key> + <value>Обновить из файла на диске</value> + + 5 + + ru + Обновить из файла на диске + + + true + + + CommonPicture.КартинкаОбновитьИзФайлаНаДиске + + + + ОбновитьИзФайлаНаДиске + + + TextPicture + Auto + Auto + + + ОткрытьПодпись + + <key>ru</key> + <value>Открыть подпись</value> + + 6 + + ru + Открыть подпись + + + true + + + + ОткрытьПодпись + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ОткрытьФайл + + <key>ru</key> + <value>Просмотреть</value> + + 7 + + ru + Открыть файл для просмотра + + + true + + + CommonPicture.КартинкаОткрыть + + + + ОткрытьФайл + + + TextPicture + Auto + Auto + + + Подписать + + <key>ru</key> + <value>Подписать</value> + + 8 + + ru + Подписать + + + true + + + CommonPicture.ПодписанЭЦП + + + + Подписать + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ПодписатьДокумент + + <key>ru</key> + <value>Подписать</value> + + 9 + + ru + Подписать + + + true + + + CommonPicture.ПодписанЭЦП + + + + ПодписатьДокумент + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + Проверить + + <key>ru</key> + <value>Проверить</value> + + 10 + + ru + Проверить + + + true + + + + Проверить + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ПроверитьВсе + + <key>ru</key> + <value>Проверить все</value> + + 11 + + ru + Проверить все + + + true + + + + ПроверитьВсе + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + СоздатьФайл + + <key>ru</key> + <value>Добавить</value> + + 12 + + ru + Создать новый файл (Ins) + + + true + + + StdPicture.CreateListItem + + + + СоздатьФайл + + + TextPicture + true + Auto + Auto + + + Сохранить + + <key>ru</key> + <value>Сохранить</value> + + 13 + + ru + Сохранить + + + true + + + + Сохранить + + + Auto + Auto + + + СохранитьВместеСЭЦП + + <key>ru</key> + <value>Сохранить вместе с ЭЦП</value> + + 14 + + ru + Сохранить вместе СЭЦП + + + true + + + + СохранитьВместеСЭЦП + + + Auto + Auto + + + СохранитьКак + + <key>ru</key> + <value>Сохранить как...</value> + + 15 + + ru + Сохранить файл на диск или другое устройство + + + true + + + CommonPicture.КартинкаСохранитьКак + + + + СохранитьКак + + + TextPicture + Auto + Auto + + + Удалить + + <key>ru</key> + <value>Удалить</value> + + 16 + + ru + Удалить + + + true + + + + Удалить + + + Auto + Auto + + + СоздатьБизнесПроцесс + + <key>ru</key> + <value>Создать бизнес-процесс</value> + + 17 + + ru + Создать бизнес-процесс документооборота + + + true + + + StdPicture.BusinessProcess + + + + СоздатьБизнесПроцесс + + + Auto + Auto + + + ЗаполнитьКопированием + + <key>ru</key> + <value>Копировать из присоединенных файлов</value> + + 18 + + ru + Заполнить копированием из присоединенных файлов + + + true + + + + ЗаполнитьКопированием + + + Auto + Auto + + + ID + + String + + + true + + + ВнешнийОбъект + + AnyRef + + + + Тип + + String + + + true + + + ТолькоПросмотр + + Boolean + + + + + + +
diff --git a/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/Help/ru.html b/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/Help/ru.html new file mode 100644 index 000000000..3bbccfcaf --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/Help/ru.html @@ -0,0 +1,17 @@ + +

Справочник "Внутренние документы" служит для учета официальных информационно-справочных или организационно-распорядительных документов.

+

К каждому внутреннему документу можно присоединить один или несколько файлов. Учет файлов возможен, если настройка программы "Использовать файлы у внутренних документов" установлена.

+

Для документа следует задать: 

+
  • папку внутренних документов, в которой будет размещен документ; +
  • пользователя, подготовившего документ (при создании нового документа заполняется программой по текущему пользователю); +
  • подразделение, которое выпускает документ; +
  • руководителя (пользователя), утвердившего (подписавшего) документ; +
  • корреспондента, с которым связан документ, показывается, если для указанного вида документа в настройках установлено "Вести учет по корреспондентам"; +
  • контактное лицо выбранного корреспондента, показывается, если для указанного вида документа в настройках установлено "Вести учет по корреспондентам"; +
  • срок исполнения - задается дата исполнения документа, показывается, если для указанного вида документа в настройках установлено "Использовать срок исполнения"; +
  • гриф доступа - если установлена настройка "Использовать грифы доступа", то внутреннему документу нужно обязательно присвоить гриф доступа, выбрав его из числа заранее настроенных администратором грифов. Гриф определяет права доступа пользователей к внутреннему документу; +
  • вид документа - показывается, если настройка программы "Использовать виды внутренних документов" установлена; +
  • состояние документа - показывается, если настройка программы "Использовать состояние документов" установлена; +
  • номенклатура дел - показывается, если для указанного вида документа в настройках установлено "Вести учет по номенклатуре дел"; +
  • организация - в случае ведения документооборота для нескольких организаций (показывается, если настройка программы "Использовать учет по организациям" установлена);


Документ может нумероваться вручную или автоматически (в зависимости от настроек вида документа).
Если задана автоматическая нумерация, то для того, чтобы присвоить регистрационный номер необходимо нажать кнопку "Зарегистрировать".
Если задана ручная нумерация, то достаточно заполнить поля "Регистрационный номер" и "Дата регистрации" и записать документ.

+

Если настройка программы "Использовать электронно цифровые подписи" включена, то в карточке документа добавляются группа команд "ЭЦП" (содержит команду "Подписать", с помощью которой выполняется удостоверение документа электронной подписью) и закладка "ЭЦП", в которой редактируются и проверяются электронно цифровые подписи.
Если документ подписан, то его редактирование невозможно. Для редактирования нужно сначала удалить все подписи. Текущий пользователь может удалять только свои подписи. Право удаления всех подписей принадлежит администратору.
Подпись можно сохранить в файл (например, для пересылки по электронной почте), а также посмотреть сертификат подписи. 

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/Module.bsl b/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/Module.bsl new file mode 100644 index 000000000..8a0e6dd01 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/Module.bsl @@ -0,0 +1,1936 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Вспомогательные процедуры + +&НаСервере +Процедура ЗаполнитьРеквизитыФормыИзXDTO(ИмяРеквизитаФормы, ОбъектXDTO, ИмяСвойстваXDTO) + + Если ОбъектXDTO.Установлено(ИмяСвойстваXDTO) Тогда + ЗначениеСвойстваXDTO = ОбъектXDTO[ИмяСвойстваXDTO]; + Если ТипЗнч(ЗначениеСвойстваXDTO) = Тип("ОбъектXDTO") Тогда + ЭтаФорма[ИмяРеквизитаФормы + "Тип"] = ЗначениеСвойстваXDTO.objectId.type; + ЭтаФорма[ИмяРеквизитаФормы + "ID"] = ЗначениеСвойстваXDTO.objectId.id; + ЭтаФорма[ИмяРеквизитаФормы] = ЗначениеСвойстваXDTO.name; + Иначе + ЭтаФорма[ИмяРеквизитаФормы] = ЗначениеСвойстваXDTO; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьXDTOизРеквизитовФормы(Прокси, ОбъектXDTO, ИмяСвойстваXDTO, ИмяРеквизитаФормы) + + ТипСвойства = ОбъектXDTO.Тип().Свойства.Получить(ИмяСвойстваXDTO).Тип; + ТипРодитель = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObject"); + + Если ТипЗнч(ТипСвойства) = Тип("ТипОбъектаXDTO") И ТипРодитель.ЭтоПотомок(ТипСвойства) Тогда + + Реквизит = ЭтаФорма[ИмяРеквизитаФормы]; + РеквизитID = ЭтаФорма[ИмяРеквизитаФормы + "ID"]; + РеквизитТип = ЭтаФорма[ИмяРеквизитаФормы + "Тип"]; + + ЗначениеСвойства = Прокси.ФабрикаXDTO.Создать(ТипСвойства); + + // заполнить из потребителя + Если Метаданные.НайтиПоПолномуИмени(РеквизитТип) <> Неопределено Тогда + РеквизитТип = СтрЗаменить(РеквизитТип, "ПланВидовХарактеристик.", "ПланыВидовХарактеристик."); + РеквизитТип = СтрЗаменить(РеквизитТип, "БизнесПроцесс.", "БизнесПроцессы."); + РеквизитТип = СтрЗаменить(РеквизитТип, "Справочник.", "Справочники."); + РеквизитТип = СтрЗаменить(РеквизитТип, "Документ.", "Документы."); + РеквизитТип = СтрЗаменить(РеквизитТип, "Задача.", "Задачи."); + + СсылкаНаПотребителя = Неопределено; + Выполнить("СсылкаНаПотребителя = " + РеквизитТип + ".ПолучитьСсылку(Новый УникальныйИдентификатор(РеквизитID))"); + + РаботаС1СДокументооборот.ЗаполнитьРеквизитыИзПотребителя(Прокси, ЗначениеСвойства, СсылкаНаПотребителя); + + ИначеЕсли РеквизитТип = "Строка" Тогда + + ЗначениеСвойства.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, "", ""); + ЗначениеСвойства.name = Реквизит; + + ExternalObject = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "ExternalObject"); + ExternalObject.id = ""; + ExternalObject.type = ""; + ExternalObject.name = ""; + + ЗначениеСвойства.externalObject = ExternalObject; + + ИначеЕсли ЗначениеЗаполнено(Реквизит) Тогда + + ЗначениеСвойства.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, РеквизитID, РеквизитТип); + ЗначениеСвойства.name = Реквизит; + + Иначе + + ЗначениеСвойства.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, "", ""); + ЗначениеСвойства.name = ""; + + КонецЕсли; + + ОбъектXDTO.Установить(ИмяСвойстваXDTO, ЗначениеСвойства); + + Иначе + ОбъектXDTO.Установить(ИмяСвойстваXDTO, ЭтаФорма[ИмяРеквизитаФормы]); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриИзмененииВидаДокумента() + + РаботаС1СДокументооборот.ПриИзмененииВидаНаФормеДокумента(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьДоступностьПоСостоянию(ОбъектXDTO) + + ДосупныеПоля = Новый Массив; + Для Каждого ИмяПоля Из ОбъектXDTO.enabledProperties Цикл + ДосупныеПоля.Добавить(НРег(ИмяПоля)); + КонецЦикла; + + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти(НРег(СтрокаСоответсвия.Ключ)) <> Неопределено Тогда + Элементы[СтрокаСоответсвия.Значение].ТолькоПросмотр = Ложь; + Иначе + Элементы[СтрокаСоответсвия.Значение].ТолькоПросмотр = Истина; + КонецЕсли; + КонецЦикла; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("addFile") <> Неопределено Тогда + Элементы.ФайлыСоздатьФайл.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюСоздатьФайл.Доступность = Истина; + Элементы.Файлы.ИзменятьСоставСтрок = Истина; + Иначе + Элементы.ФайлыСоздатьФайл.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюСоздатьФайл.Доступность = Ложь; + Элементы.Файлы.ИзменятьСоставСтрок = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("openFile") <> Неопределено Тогда + Элементы.ФайлыОткрытьФайл.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюОткрытьФайл.Доступность = Истина; + Иначе + Элементы.ФайлыОткрытьФайл.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюОткрытьФайл.Доступность = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("saveFile") <> Неопределено Тогда + Элементы.ФайлыСохранитьКак.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюСохранитьКак.Доступность = Истина; + Иначе + Элементы.ФайлыСохранитьКак.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюСохранитьКак.Доступность = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("editFile") <> Неопределено Тогда + Элементы.ФайлыОбновитьИзФайлаНаДиске.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске.Доступность = Истина; + Иначе + Элементы.ФайлыОбновитьИзФайлаНаДиске.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске.Доступность = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("register") <> Неопределено Тогда + Элементы.Зарегистрировать.Доступность = Истина; + Иначе + Элементы.Зарегистрировать.Доступность = Ложь; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьДоступностьПоЭЦП(ОбъектXDTO) + + Если ОбъектXDTO.signatures.Количество() <> 0 Тогда + МассивИменПолей = ПолучитьИменаКлючевыхПолей(); + + Для Каждого ИмяПоля Из МассивИменПолей Цикл + Элементы[ИмяПоля].ТолькоПросмотр = Истина; + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +// Возвращает массив имен ключевых полей формы +Функция ПолучитьИменаКлючевыхПолей() + + МассивИмен = Новый Массив; + + МассивИмен.Добавить("ЗаголовокДокумента"); + МассивИмен.Добавить("Описание"); + + Возврат МассивИмен; + +КонецФункции + + +//////////////////////////////////////////////////////////////////////////////// +// События формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ID = Параметры.ID; + Тип = Параметры.Тип; + Если НЕ ЗначениеЗаполнено(Тип) Тогда + Тип = "DMInternalDocument"; + КонецЕсли; + ВнешнийОбъект = Параметры.ВнешнийОбъект; + КаталогДляСохраненияДанных = РаботаС1СДокументооборотВызовСервера.ПолучитьЛокальныйКаталогФайлов(); + + // считать данные документа + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Если ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(Тип) Тогда + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRetrieveRequest"); + + ОбъектИд = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Запрос.objectIds.Добавить(ОбъектИд); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + Заголовок = Объект.name + НСтр("ru = ' (Внутренний документ)'"); + Иначе + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetNewObjectRequest"); + Запрос.type = Тип; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат; + Заголовок = НСтр("ru = 'Внутренний документ (создание)'"); + КонецЕсли; + + // перенести данные в форму + ПрочитатьОбъектВФорму(Объект); + + // файлы + РаботаС1СДокументооборотВызовСервера.ОбновитьСписокФайлов(Объект.files, Файлы, Элементы.ГруппаФайлы); + + // ЭЦП + ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот + = РаботаС1СДокументооборотПовтИсп.ПолучитьНастройки().ИспользоватьЭлектронныеЦифровыеПодписи; + + ИспользоватьЭлектронныеЦифровыеПодписиВБСП = РаботаС1СДокументооборотВызовСервера.ПолучитьИспользоватьЭлектронныеЦифровыеПодписи(); + + Если ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот = Ложь Тогда + Элементы.ФайлыПодписанЭЦП.Видимость = Ложь; + Элементы.ГруппаЭЦП.Видимость = Ложь; + + Элементы.ФайлыСохранитьВместеСЭЦП.Видимость = Ложь; + Элементы.ФайлыКонтекстноеМенюСохранитьВместеСЭЦП.Видимость = Ложь; + + Иначе + ЗаполнитьСписокПодписей(Объект.signatures, Объект.files); + + Если Объект.Установлено("keyPropertiesValue") Тогда + АдресСлепкаДокумента = ПоместитьВоВременноеХранилище(Объект.keyPropertiesValue, УникальныйИдентификатор); + КонецЕсли; + КонецЕсли; + + Если ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот = Ложь ИЛИ ИспользоватьЭлектронныеЦифровыеПодписиВБСП = Ложь Тогда + Элементы.ФайлыПодписать.Видимость = Ложь; + Элементы.ФайлыКонтекстноеМенюПодписать.Видимость = Ложь; + Элементы.ФайлыДобавитьЭЦПИзФайла.Видимость = Ложь; + Элементы.ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла.Видимость = Ложь; + Элементы.ФормаПодписатьДокумент.Видимость = Ложь; + КонецЕсли; + + Если Не ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(ВнешнийОбъект) Тогда + РаботаС1СДокументооборот.ЗаполнитьФормуИзПотребителя(Параметры.ВнешнийОбъект, ЭтаФорма); + КонецЕсли; + + Элементы.ФайлыЗаполнитьКопированием.Видимость = Ложь; + Если ЗначениеЗаполнено(ВнешнийОбъект) Тогда + Если ФайловыеФункцииПереопределяемый.ЕстьХранимыеФайлы(ВнешнийОбъект) Тогда + Элементы.ФайлыЗаполнитьКопированием.Видимость = Истина; + Элементы.ФайлыЗаполнитьКопированием.Доступность = (Файлы.Количество() = 0); + КонецЕсли; + КонецЕсли; + + Если Параметры.ТолькоПросмотр Тогда + ЭтаФорма.ТолькоПросмотр = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьОбъектВФорму(Объект) + + // заполнение реквизитов + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + ЗаполнитьРеквизитыФормыИзXDTO(СтрокаСоответсвия.Значение, Объект, СтрокаСоответсвия.Ключ); + КонецЦикла; + Представление = Объект.name; + + НачальныйРегистрационныйНомер = РегистрационныйНомер; + НачальнаяДатаРегистрации = ДатаРегистрации; + + // доступность по состоянию + УстановитьДоступностьПоСостоянию(Объект); + УстановитьДоступностьПоЭЦП(Объект); + + Элементы.Организация.Видимость = (Объект.organizationEnabled = Истина); + Элементы.ВопросДеятельности.Видимость = (Объект.activityMatterEnabled = Истина); + Элементы.ГрифДоступа.Видимость = (Объект.accessLevelEnabled = Истина); + Элементы.Файлы.Видимость = (Объект.filesEnabled = Истина); + Элементы.ВидДокумента.Видимость = (Объект.documentTypeEnabled = Истина); + Элементы.Состояние.Видимость = (Объект.statusEnabled = Истина); + Элементы.Состояние.Доступность = (Объект.statusChangeEnabled = Истина); + ОграничиватьДоступностьПолей = (Объект.limitPropertiesAvailability = Истина); + + // по виду + Элементы.СрокИсполнения.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.performanceDateEnabled = Истина); + Элементы.Корреспондент.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.correspondentEnabled = Истина); + Элементы.КонтактноеЛицо.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.correspondentEnabled = Истина); + Элементы.Сумма.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.sumEnabled = Истина); + Элементы.Валюта.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.sumEnabled = Истина); + Элементы.Бессрочный.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.durationEnabled = Истина); + Элементы.ПорядокПродления.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.durationEnabled = Истина); + Элементы.ДатаНачалаДействия.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.durationEnabled = Истина); + Элементы.ДатаОкончанияДействия.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.durationEnabled = Истина); + + АвтоматическаяНумерация = (Объект.documentType <> Неопределено И Объект.documentType.automaticNumeration = Истина); + Если АвтоматическаяНумерация Тогда + Элементы.РегистрационныйНомер.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.Отображать; + Элементы.ДатаРегистрации.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.Отображать; + Элементы.Зарегистрировать.Доступность = Истина; + Иначе + Элементы.РегистрационныйНомер.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.НеОтображать; + Элементы.ДатаРегистрации.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.НеОтображать; + Элементы.Зарегистрировать.Доступность = Ложь; + КонецЕсли; + + Элементы.ДатаОкончанияДействия.Доступность = Не Бессрочный; + Элементы.ПорядокПродления.Доступность = Не Бессрочный; + + // дополнительные реквизиты + РаботаС1СДокументооборот.ПоместитьДополнительныеРеквизитыНаФорму(ЭтаФорма, Объект); + +КонецПроцедуры + +&НаСервере +Процедура ДобавитьПодписиКОбъекту(Прокси, Объект) + + // тут ЭЦП добавить + МассивПодписей = ПолучитьМассивСуществующихПодписейФайла(ID); + ПодписьТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMSignature"); + Для Каждого ДанныеПодписи Из МассивПодписей Цикл + ПодписьXDTO = Прокси.ФабрикаXDTO.Создать(ПодписьТип); + РаботаС1СДокументооборотВызовСервера.ЗаполнитьXDTOПодпись(Прокси, ПодписьXDTO, ДанныеПодписи); + Объект.Signatures.Добавить(ПодписьXDTO); + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьОбъект() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMInternalDocument"); + + РаботаС1СДокументооборот.СформироватьДополнительныеСвойства(Прокси, ЭтаФорма, Объект); + + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + ЗаполнитьXDTOизРеквизитовФормы(Прокси, Объект, СтрокаСоответсвия.Ключ, СтрокаСоответсвия.Значение); + КонецЦикла; + + Если ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(Тип) Тогда // обновление + + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Объект.name = Представление; + + ДобавитьПодписиКОбъекту(Прокси, Объект); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMUpdateRequest"); + Запрос.objects.Добавить(Объект); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + + Иначе // создание + + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, "", ""); + Объект.name = Представление; + + Если ЗначениеЗаполнено(ВнешнийОбъект) Тогда + ExternalObject = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "ExternalObject"); + ExternalObject.id = Строка(ВнешнийОбъект.УникальныйИдентификатор()); + ExternalObject.type = Строка(ТипЗнч(ВнешнийОбъект)); + ExternalObject.name = Строка(ВнешнийОбъект); + + Объект.externalObject = ExternalObject; + КонецЕсли; + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMCreateRequest"); + Запрос.object = Объект; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.object; + ID = Объект.objectId.id; + Тип = Объект.objectId.type; + + КонецЕсли; + + // перечитать объект в форму + ПрочитатьОбъектВФорму(Объект); + + Если Объект.Установлено("keyPropertiesValue") Тогда + АдресСлепкаДокумента = ПоместитьВоВременноеХранилище(Объект.keyPropertiesValue, УникальныйИдентификатор); + КонецЕсли; + + Модифицированность = Ложь; + Заголовок = Представление + НСтр("ru = ' (Внутренний документ)'"); + +КонецПроцедуры + +&НаКлиенте +Процедура Записать(Команда) + + Если ОграничиватьДоступностьПолей И ЗначениеЗаполнено(РегистрационныйНомер) И Не ЗначениеЗаполнено(НачальныйРегистрационныйНомер) Тогда + ТекстСообщения = НСтр("ru = 'При записи документ будет зарегистрирован и станет недоступным для изменения. + |Продолжить?'"); + + Ответ = Вопрос(ТекстСообщения, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьИЗакрыть(Команда) + + Если ОграничиватьДоступностьПолей И ЗначениеЗаполнено(РегистрационныйНомер) И Не ЗначениеЗаполнено(НачальныйРегистрационныйНомер) Тогда + ТекстСообщения = НСтр("ru = 'При записи документ будет зарегистрирован и станет недоступным для изменения. + |Продолжить?'"); + + Ответ = Вопрос(ТекстСообщения, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если ЗакрытиеСПараметром Тогда + Возврат; + КонецЕсли; + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена,,КодВозвратаДиалога.Да); + Если Ответ = КодВозвратаДиалога.Да Тогда + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + ИначеЕсли Ответ <> КодВозвратаДиалога.Нет Тогда + Отказ = Истина; + Возврат; + КонецЕсли; + КонецЕсли; + + Отказ = Истина; + Результат = Новый Структура; + Результат.Вставить("ID", ID); + Результат.Вставить("Type", Тип); + Результат.Вставить("Name", Представление); + + ЗакрытиеСПараметром = Истина; + Закрыть(Результат); + +КонецПроцедуры + +&НаСервере +Процедура ЗарегистрироватьНаСервере() + + ЗаписатьОбъект(); + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Объект = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMInternalDocument"); + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Объект.name = Представление; + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDocumentRegistrationRequest"); + Запрос.document = Объект; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + ЗаполнитьРеквизитыФормыИзXDTO("ДатаРегистрации", Результат.document, "regDate"); + ЗаполнитьРеквизитыФормыИзXDTO("РегистрационныйНомер", Результат.document, "regNumber"); + ЗаполнитьРеквизитыФормыИзXDTO("Состояние", Результат.document, "status"); + Представление = Результат.document.name; + + // доступность по состоянию + УстановитьДоступностьПоСостоянию(Результат.document); + УстановитьДоступностьПоЭЦП(Результат.document); + + НачальныйРегистрационныйНомер = РегистрационныйНомер; + НачальнаяДатаРегистрации = ДатаРегистрации; + +КонецПроцедуры + +&НаКлиенте +Процедура Зарегистрировать(Команда) + + Если ОграничиватьДоступностьПолей Тогда + ТекстСообщения = НСтр("ru = 'После регистрации документ станет недоступным для изменения. + |Продолжить?'"); + + Ответ = Вопрос(ТекстСообщения, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + ЗарегистрироватьНаСервере(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + +КонецПроцедуры + + +//////////////////////////////////////////////////////////////////////////////// +// Выбор ссылочных реквизитов + +&НаКлиенте +Процедура ПапкаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMInternalDocumentFolder", "Папка", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПапкаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMInternalDocumentFolder", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Папка", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПапкаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMInternalDocumentFolder", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПапкаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Папка", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ПодготовилНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Подготовил", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодготовилОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подготовил", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодготовилАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодготовилОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подготовил", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ПодписалНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Подписал", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписалОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подписал", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписалАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписалОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подписал", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ПодразделениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMSubdivision", "Подразделение", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодразделениеОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMSubdivision", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подразделение", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодразделениеАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMSubdivision", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодразделениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подразделение", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура КорреспондентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMCorrespondent", "Корреспондент", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура КорреспондентОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCorrespondent", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Корреспондент", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура КорреспондентАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCorrespondent", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура КорреспондентОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Корреспондент", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура КонтактноеЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(КорреспондентID) И ЗначениеЗаполнено(КорреспондентТип) Тогда + + Correspondent = Новый Структура; + Correspondent.Вставить("ID", КорреспондентID); + Correspondent.Вставить("Type", КорреспондентТип); + + Отбор = Новый Структура; + Отбор.Вставить("сorrespondent", Correspondent); + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMContactPerson", "КонтактноеЛицо", ЭтаФорма, Отбор); + + Иначе + ТекстСообщения = НСтр("ru = 'Не указано поле ""Корреспондент""'"); + Предупреждение(ТекстСообщения); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура КонтактноеЛицоОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMContactPerson", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("КонтактноеЛицо", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура КонтактноеЛицоАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMContactPerson", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура КонтактноеЛицоОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("КонтактноеЛицо", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ПорядокПродленияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMProlongationProcedure", "ПорядокПродления", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПорядокПродленияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMProlongationProcedure", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ПорядокПродления", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПорядокПродленияАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMProlongationProcedure", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПорядокПродленияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ПорядокПродления", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ГрифДоступаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMAccessLevel", "ГрифДоступа", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ГрифДоступаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMAccessLevel", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ГрифДоступа", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГрифДоступаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMAccessLevel", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГрифДоступаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ГрифДоступа", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ВидДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + Если РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMInternalDocumentType", "ВидДокумента", ЭтаФорма) Тогда + ПриИзмененииВидаДокумента(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидДокументаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMInternalDocumentType", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВидДокумента", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + + ПриИзмененииВидаДокумента(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидДокументаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMInternalDocumentType", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидДокументаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВидДокумента", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + + ПриИзмененииВидаДокумента(); + +КонецПроцедуры + + + + +&НаКлиенте +Процедура СостояниеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMDocumentStatus", "Состояние", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СостояниеОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMDocumentStatus", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Состояние", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СостояниеАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMDocumentStatus", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СостояниеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Состояние", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ОрганизацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMOrganization", "Организация", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ОрганизацияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMOrganization", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Организация", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОрганизацияАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMOrganization", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОрганизацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Организация", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ВопросДеятельностиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMActivityMatter", "ВопросДеятельности", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ВопросДеятельностиОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMActivityMatter", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВопросДеятельности", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВопросДеятельностиАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMActivityMatter", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВопросДеятельностиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВопросДеятельности", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ВалютаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMCurrency", "Валюта", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ВалютаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCurrency", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Валюта", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВалютаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCurrency", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВалютаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Валюта", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + + +&НаКлиенте +Процедура ОтветственныйНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Ответственный", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Ответственный", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Ответственный", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура СвойстваЗначениеПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеДополнительногоРеквизита(ЭтаФорма, Элемент, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура БессрочныйПриИзменении(Элемент) + + Если Бессрочный Тогда + ДатаОкончанияДействия = '00010101'; + Элементы.ДатаОкончанияДействия.Доступность = Ложь; + Элементы.ПорядокПродления.Доступность = Ложь; + ПорядокПродления = ""; + РаботаС1СДокументооборотКлиент.ОчиститьСсылочныйРеквизит("ПорядокПродления", ЭтаФорма); + Иначе + Элементы.ДатаОкончанияДействия.Доступность = Истина; + Элементы.ПорядокПродления.Доступность = Истина; + КонецЕсли; + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// Команды работы с файлами + +&НаКлиенте +Процедура ОткрытьФайл(Команда) + ОткрытьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + ОткрытьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьФайлВыполнить() + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Расширение = ТекущиеДанные.Расширение; + Имя = ТекущиеДанные.Наименование; + Размер = ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.ОткрытьФайл(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, + КаталогДляСохраненияДанных, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПередНачаломИзменения(Элемент, Отказ) + Отказ = Истина; + ОткрытьКарточкуВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьКарточкуВыполнить() + + Если Элементы.Файлы.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура("УникальныйИдентификатор", Элементы.Файлы.ТекущиеДанные.УникальныйИдентификатор); + ОткрытьФорму("ОбщаяФорма.ДокументооборотКарточкаФайла", ПараметрыФормы); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьФайл(Команда) + СоздатьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + Отказ = Истина; + СоздатьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьФайлВыполнить() + + Если ПустаяСтрока(ID) Тогда + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + КонецЕсли; + + СоздатьИзФайлаНаДиске(); +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьИзФайлаНаДиске() + + РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); + ИдентификаторСозданногоФайла = Неопределено; + + Если РасширениеПодключено Тогда + + ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); + ВыборФайла.МножественныйВыбор = Ложь; + ВыборФайла.Заголовок = НСтр("ru = 'Выбор файла'"); + ВыборФайла.Фильтр = НСтр("ru = 'Все файлы (*.*)|*.*'"); + + Результат = ВыборФайла.Выбрать(); + ПолноеИмяФайла = ВыборФайла.ПолноеИмяФайла; + + Если НЕ Результат Тогда + Возврат; + КонецЕсли; + + ИдентификаторСозданногоФайла = РаботаС1СДокументооборотКлиент.СоздатьИзФайлаНаДискеКлиент(ПолноеИмяФайла, УникальныйИдентификатор, ID, Тип, Представление); + + Иначе + // Если веб-клиент без расширения + + ПараметрыСоздания = Новый Структура("Имя, Расширение, Размер, ВремяИзменения, ВремяИзмененияУниверсальное, АдресВременногоХранилищаФайла, Текст, ВебКлиент"); + + ВремяИзменения = ТекущаяДата(); // Т.к. не можем получить дату модификации файла на диске + ВремяИзмененияУниверсальное = УниверсальноеВремя(ТекущаяДата()); + Размер = 0; // Т.к. не можем получить размер файла на диске + ИмяБезРасширения = ""; + Расширение = ""; + АдресВременногоХранилищаТекста = ""; + + // Поместим Файл в ВременноеХранилище + АдресВременногоХранилищаФайла = ""; + ИмяФайла = ""; + Если НЕ ПоместитьФайл(АдресВременногоХранилищаФайла, ИмяФайла, ИмяФайла, Истина, УникальныйИдентификатор) Тогда + Возврат; + КонецЕсли; + + СтрокиПути = ФайловыеФункцииКлиентСервер.РазложитьСтрокуПоТочкамИСлэшам(ИмяФайла); + Если СтрокиПути.Количество() >= 2 Тогда + Расширение = СтрокиПути[СтрокиПути.Количество()-1]; + ИмяБезРасширения = СтрокиПути[СтрокиПути.Количество()-2]; + Иначе + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка при помещении файла в хранилище: %1'"),ИмяФайла); + КонецЕсли; + + ПараметрыСоздания.АдресВременногоХранилищаФайла = АдресВременногоХранилищаФайла; + ПараметрыСоздания.Расширение = Расширение; + ПараметрыСоздания.ВремяИзменения = ВремяИзменения; + ПараметрыСоздания.ВремяИзмененияУниверсальное = ВремяИзмененияУниверсальное; + ПараметрыСоздания.Имя = ИмяБезРасширения; + ПараметрыСоздания.Размер = Размер; + ПараметрыСоздания.Текст = ""; + ПараметрыСоздания.ВебКлиент = Истина; + + ТекстПояснения = + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Идет сохранение файла ""%1"". + |Пожалуйста, подождите...'"), + ИмяФайла); + + Состояние(ТекстПояснения); + + ИдентификаторСозданногоФайла = РаботаС1СДокументооборотВызовСервера.СоздатьИзФайлаНаДискеСервер(ПараметрыСоздания, ID, Тип, Представление); + Состояние(); + + КонецЕсли; + + + Если ИдентификаторСозданногоФайла <> Неопределено Тогда + // обновить список + ОбновитьСписокФайловКлиент(ИдентификаторСозданногоФайла); + КонецЕсли; + + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьСписокПодписей(Подписи, ФайлыXDTO) + + РаботаС1СДокументооборотВызовСервера.ЗаполнитьСписокПодписейСервер(Подписи, ФайлыXDTO, Представление, ID, Тип, ТаблицаПодписей, + УникальныйИдентификатор, Элементы.ГруппаЭЦП, Файлы); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСписокФайловКлиент(ИдентификаторФайла = Неопределено) + + Если ИдентификаторФайла <> Неопределено Тогда + ТекущийИдентификаторФайла = ИдентификаторФайла; + ИначеЕсли Элементы.Файлы.ТекущиеДанные <> Неопределено Тогда + ТекущийИдентификаторФайла = Элементы.Файлы.ТекущиеДанные.УникальныйИдентификатор; + КонецЕсли; + + ПрочитатьИОбновитьСписокФайлов(); + Элементы.Файлы.Обновить(); + + // восстановим положение в списке + Для Каждого Строка Из Файлы Цикл + Если Строка.УникальныйИдентификатор = ТекущийИдентификаторФайла Тогда + Элементы.Файлы.ТекущаяСтрока = Строка.ПолучитьИдентификатор(); + Прервать; + КонецЕсли; + КонецЦикла; + + Элементы.ФайлыЗаполнитьКопированием.Доступность = (Файлы.Количество() = 0); + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьИОбновитьСписокФайлов() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + ОбъектИд = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRetrieveRequest"); + Запрос.objectIds.Добавить(ОбъектИд); + Запрос.columnSet.Добавить("files"); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + РаботаС1СДокументооборотВызовСервера.ОбновитьСписокФайлов(Объект.files, Файлы, Элементы.ГруппаФайлы); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "ФайлДокументооборотИзменен" Тогда + ОбновитьСписокФайловКлиент(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПередУдалением(Элемент, Отказ) + + Отказ = Истина; + + Если Элементы.Файлы.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + СтрокаВопроса = ""; + + Если Элементы.Файлы.ВыделенныеСтроки.Количество() = 1 Тогда + СтрокаВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Пометить ""%1"" на удаление?'"), Элементы.Файлы.ТекущиеДанные.Наименование); + Иначе + СтрокаВопроса = НСтр("ru='Пометить выделенные элементы на удаление?'"); + КонецЕсли; + + Если Вопрос(СтрокаВопроса, РежимДиалогаВопрос.ДаНет) <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + ПометитьНаУдаление(Элементы.Файлы.ВыделенныеСтроки); + // обновить список + ОбновитьСписокФайловКлиент(); + +КонецПроцедуры + +&НаСервере +Процедура ПометитьНаУдаление(Знач ВыделенныеСтроки) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDeleteRequest"); + + Для Каждого НомерСтроки Из ВыделенныеСтроки Цикл + + Данные = Файлы.НайтиПоИдентификатору(НомерСтроки); + Объект = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, Данные.УникальныйИдентификатор, "DMFile"); + Запрос.objectIds.Добавить(Объект); + + КонецЦикла; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьКак(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Расширение = ТекущиеДанные.Расширение; + Имя = ТекущиеДанные.Наименование; + Размер = ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.СохранитьКак(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьИзФайлаНаДиске(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Если РаботаС1СДокументооборотКлиент.ОбновитьИзФайлаНаДиске(ИдентификаторФайла, УникальныйИдентификатор) Тогда + ОбновитьСписокФайловКлиент(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + СтандартнаяОбработка = Ложь; +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + СтандартнаяОбработка = Ложь; + + Если ПустаяСтрока(ID) Тогда + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + КонецЕсли; + + МассивИменФайлов = Новый Массив; + + Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Файл") И ПараметрыПеретаскивания.Значение.ЭтоФайл() = Истина Тогда + МассивИменФайлов.Добавить(ПараметрыПеретаскивания.Значение.ПолноеИмя); + ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Массив") Тогда + + Если ПараметрыПеретаскивания.Значение.Количество() >= 1 И ТипЗнч(ПараметрыПеретаскивания.Значение[0]) = Тип("Файл") Тогда + Для Каждого ФайлПринятый Из ПараметрыПеретаскивания.Значение Цикл + Если ФайлПринятый.ЭтоФайл() Тогда + МассивИменФайлов.Добавить(ФайлПринятый.ПолноеИмя); + КонецЕсли; + КонецЦикла; + КонецЕсли; + + КонецЕсли; + + ИдентификаторСозданногоФайла = Неопределено; + Для Каждого ИмяФайла Из МассивИменФайлов Цикл + ИдентификаторСозданногоФайла = РаботаС1СДокументооборотКлиент.СоздатьИзФайлаНаДискеКлиент(ИмяФайла, УникальныйИдентификатор, ID, Тип, Представление); + КонецЦикла; + + // обновить список + ОбновитьСписокФайловКлиент(ИдентификаторСозданногоФайла); + +КонецПроцедуры + + +//////////////////////////////////////////////////////////////////////////////// +// ЭЦП + +&НаКлиенте +Процедура УстановитьДоступностьКомандСпискаЭЦП() + + ЭтоПодпись = Истина; + ЕстьПодписи = (ТаблицаПодписей.ПолучитьЭлементы().Количество() <> 0); + + ТекущиеДанные = Элементы.ТаблицаПодписей.ТекущиеДанные; + Если ТекущиеДанные <> Неопределено Тогда + ЭтоПодпись = НЕ ПустаяСтрока(ТекущиеДанные.Объект); + КонецЕсли; + + Элементы.ТаблицаПодписейПроверить.Доступность = ЕстьПодписи И ЭтоПодпись; + Элементы.ТаблицаПодписейПроверитьВсе.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейОткрытьПодпись.Доступность = ЕстьПодписи И ЭтоПодпись; + Элементы.ТаблицаПодписейУдалить.Доступность = ЕстьПодписи И ЭтоПодпись; + Элементы.ТаблицаПодписейСохранить.Доступность = ЕстьПодписи И ЭтоПодпись; + + Элементы.ТаблицаПодписейПроверить.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейПроверитьВсе.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейОткрытьПодпись.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейУдалить.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейСохранить.Доступность = ЕстьПодписи; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + УстановитьДоступностьКомандСпискаЭЦП(); +КонецПроцедуры + +&НаСервере +// вернет массив подписей файла +Функция ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла) + Возврат РаботаС1СДокументооборотВызовСервера.ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла, ТаблицаПодписей); +КонецФункции + +&НаКлиенте +Процедура Подписать(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + ИмяФайла = ТекущиеДанные.Наименование; + Описание = ТекущиеДанные.Описание; + Редактируется = ТекущиеДанные.Редактируется; + Зашифрован = ТекущиеДанные.Зашифрован; + + МассивСуществующихПодписейФайла = ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла); + + РаботаС1СДокументооборотКлиент.ПодписатьФайл(ИдентификаторФайла, ИмяФайла, Редактируется, Зашифрован, Описание, + МассивСуществующихПодписейФайла); + + ПрочитатьИОбновитьСписокПодписей(); + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьЭЦПИзФайла(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + ИмяФайла = ТекущиеДанные.Наименование; + Описание = ТекущиеДанные.Описание; + Редактируется = ТекущиеДанные.Редактируется; + Зашифрован = ТекущиеДанные.Зашифрован; + + МассивСуществующихПодписейФайла = ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла); + + РаботаС1СДокументооборотКлиент.ДобавитьЭЦПИзФайла(ИдентификаторФайла, ИмяФайла, УникальныйИдентификатор, + Описание, МассивСуществующихПодписейФайла); + + ПрочитатьИОбновитьСписокПодписей(); + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьВместеСЭЦП(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Расширение = ТекущиеДанные.Расширение; + Имя = ТекущиеДанные.Наименование; + Размер = ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.СохранитьВместеСЭЦП(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьПодпись(Команда) + ЭлектроннаяЦифроваяПодписьКлиент.ОткрытьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные); +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаПодписейВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + ЭлектроннаяЦифроваяПодписьКлиент.ОткрытьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные); +КонецПроцедуры + +&НаКлиенте +Процедура Сохранить(Команда) + + Если Элементы.ТаблицаПодписей.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если НЕ ПустаяСтрока(Элементы.ТаблицаПодписей.ТекущиеДанные.Объект) Тогда + ЭлектроннаяЦифроваяПодписьКлиент.СохранитьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные.АдресПодписи); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Проверить(Команда) + + ВыполнятьПроверкуЭЦПНаСервере = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ВыполнятьПроверкуЭЦПНаСервере; + + Если ВыполнятьПроверкуЭЦПНаСервере Тогда + ПроверитьНаСервере(); + Иначе + МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии(); + РаботаС1СДокументооборотКлиент.ПроверитьПодписи(Элементы.ТаблицаПодписей.ВыделенныеСтроки, + ТаблицаПодписей, УникальныйИдентификатор, АдресСлепкаДокумента); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПроверитьНаСервере() + РаботаС1СДокументооборотВызовСервера.ПроверитьПодписиНаСервере(Элементы.ТаблицаПодписей.ВыделенныеСтроки, + ТаблицаПодписей, УникальныйИдентификатор, АдресСлепкаДокумента); +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьВсе(Команда) + + ВыполнятьПроверкуЭЦПНаСервере = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ВыполнятьПроверкуЭЦПНаСервере; + + Если ВыполнятьПроверкуЭЦПНаСервере Тогда + + ПроверитьВсеНаСервере(); + + Иначе + + МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии(); + Подписи = РаботаС1СДокументооборотКлиент.ПолучитьМассивДанныхПодписей(ТаблицаПодписей); + РаботаС1СДокументооборотКлиент.ПроверитьПодписи(Подписи, ТаблицаПодписей, УникальныйИдентификатор, + АдресСлепкаДокумента); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПроверитьВсеНаСервере() + РаботаС1СДокументооборотВызовСервера.ПроверитьВсеПодписиНаСервере(ТаблицаПодписей, УникальныйИдентификатор, + АдресСлепкаДокумента); +КонецПроцедуры + +&НаКлиенте +Процедура Удалить(Команда) + + Если Вопрос(НСтр("ru = 'Удалить выделенные подписи?'"), РежимДиалогаВопрос.ДаНет) <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + УдалитьПодписиИОбновитьСписок(); + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + +&НаСервере +Процедура УдалитьПодписиИОбновитьСписок() + + //получаем массив для удаления + ТаблицаУдаленныеСтроки = РаботаС1СДокументооборотВызовСервера.ПолучитьВыделенныеПодписи( + Элементы.ТаблицаПодписей.ВыделенныеСтроки, ТаблицаПодписей); + + Если ТаблицаУдаленныеСтроки.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Соответствие = РаботаС1СДокументооборотВызовСервера.УдалитьПодписиДокумента(ТаблицаУдаленныеСтроки, ТаблицаПодписей, ЭтаФорма, + ID, Тип, Файлы, Представление); + + МассивXDTOОбъектов = Новый Массив; + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Для Каждого ПараКлючЗначение Из Соответствие Цикл + + ИдОбъекта = ПараКлючЗначение.Ключ; + ДанныеВладельца = ПараКлючЗначение.Значение; + ТипОбъекта = ДанныеВладельца.Тип; + + Если ТипОбъекта <> "DMFile" Тогда // документ + + Объект = СоздатьXDTOДокумент(Прокси, ДанныеВладельца.МассивПодписей); + МассивXDTOОбъектов.Добавить(Объект); + + Иначе // файл + + Для Каждого Файл Из Файлы Цикл + + Если Файл.УникальныйИдентификатор = ИдОбъекта Тогда + Объект = РаботаС1СДокументооборотВызовСервера.СоздатьXDTOФайл(Прокси, ДанныеВладельца.МассивПодписей, Файл); + МассивXDTOОбъектов.Добавить(Объект); + Прервать; + КонецЕсли; + + КонецЦикла; + + + КонецЕсли; + + КонецЦикла; + + РаботаС1СДокументооборот.ЗаписатьОбъекты(Прокси, МассивXDTOОбъектов); + + ПрочитатьИОбновитьСписокПодписей(); + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьИОбновитьСписокПодписей() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + ОбъектИд = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRetrieveRequest"); + Запрос.objectIds.Добавить(ОбъектИд); + Запрос.columnSet.Добавить("signatures"); + Запрос.columnSet.Добавить("files"); // также и файлы обновляем - чтобы иконку Подписан расставить + Запрос.columnSet.Добавить("enabledProperties"); + Запрос.columnSet.Добавить("keyPropertiesValue"); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + + ЗаполнитьСписокПодписей(Объект.signatures, Объект.files); + РаботаС1СДокументооборотВызовСервера.ОбновитьСписокФайлов(Объект.files, Файлы, Элементы.ГруппаФайлы); + + УстановитьДоступностьПоСостоянию(Объект);// доступность по состоянию + УстановитьДоступностьПоЭЦП(Объект); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписатьДокумент(Команда) + + Если ПустаяСтрока(ID) Тогда + + ТекстВопроса = НСтр("ru = 'Данные еще не записаны. + |Выполнение действия ""Подписать"" возможно только после записи данных. + |Данные будут записаны.'"); + Результат = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ОКОтмена); + + Если Результат <> КодВозвратаДиалога.ОК Тогда + Возврат; + КонецЕсли; + + ЗаписатьОбъект(); + + КонецЕсли; + + МассивДанныхДляЗанесенияВБазу = Новый Массив; + МассивАдресов = Новый Массив; + + // УстановкаПодписиЭЦП + + Если РаботаС1СДокументооборотКлиент.СформироватьПодписьОбъекта(ID, Представление, Тип, УникальныйИдентификатор, + МассивДанныхДляЗанесенияВБазу, МассивАдресов, Файлы, АдресСлепкаДокумента) Тогда + + ПодписатьЭЦПСервер(МассивДанныхДляЗанесенияВБазу, МассивАдресов); + + РаботаС1СДокументооборотКлиент.ИнформироватьОПодписании(Представление); + УстановитьДоступностьКомандСпискаЭЦП(); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция СоздатьXDTOДокумент(Прокси, МассивПодписей) + + Объект = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMInternalDocument"); + + РаботаС1СДокументооборот.СформироватьДополнительныеСвойства(Прокси, ЭтаФорма, Объект); + + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + ЗаполнитьXDTOизРеквизитовФормы(Прокси, Объект, СтрокаСоответсвия.Ключ, СтрокаСоответсвия.Значение); + КонецЦикла; + + Объект.objectID = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Объект.name = Представление; + + // тут ЭЦП добавить + ПодписьТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMSignature"); + + Для Каждого ДанныеПодписи Из МассивПодписей Цикл + + ПодписьXDTO = Прокси.ФабрикаXDTO.Создать(ПодписьТип); + РаботаС1СДокументооборотВызовСервера.ЗаполнитьXDTOПодпись(Прокси, ПодписьXDTO, ДанныеПодписи); + Объект.Signatures.Добавить(ПодписьXDTO); + + КонецЦикла; + + Возврат Объект; + +КонецФункции + +&НаСервере +Процедура ПодписатьЭЦПСервер(ДобавленныеПодписи, МассивАдресов) + + Соответствие = РаботаС1СДокументооборотВызовСервера.ПодписатьДокумент( + ДобавленныеПодписи, ТаблицаПодписей, ЭтаФорма, + ID, Тип, Файлы, Представление); + + МассивXDTOОбъектов = Новый Массив; + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Для Каждого ПараКлючЗначение Из Соответствие Цикл + + ИдОбъекта = ПараКлючЗначение.Ключ; + ДанныеВладельца = ПараКлючЗначение.Значение; + ТипОбъекта = ДанныеВладельца.Тип; + + Если ТипОбъекта <> "DMFile" Тогда // документ + + Объект = СоздатьXDTOДокумент(Прокси, ДанныеВладельца.МассивПодписей); + МассивXDTOОбъектов.Добавить(Объект); + + Иначе // файл + + Для Каждого Файл Из Файлы Цикл + + Если Файл.УникальныйИдентификатор = ИдОбъекта Тогда + Объект = РаботаС1СДокументооборотВызовСервера.СоздатьXDTOФайл(Прокси, ДанныеВладельца.МассивПодписей, Файл); + МассивXDTOОбъектов.Добавить(Объект); + Прервать; + КонецЕсли; + + КонецЦикла; + + + КонецЕсли; + + КонецЦикла; + + РаботаС1СДокументооборот.ЗаписатьОбъекты(Прокси, МассивXDTOОбъектов); + + ПрочитатьИОбновитьСписокПодписей(); + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПриАктивизацииСтроки(Элемент) + ОбновитьДоступностьКомандСпискаФайлов(); +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьДоступностьКомандСпискаФайлов() + УстановитьДоступностьКомманд(Элементы.Файлы.ТекущиеДанные); +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомманды(Команда, Доступность) + Команда.Доступность = Доступность; +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомманд(ТекущиеДанные) + + Если ТекущиеДанные = Неопределено Тогда + + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОткрытьФайл, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьКак, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюПодписать, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьВместеСЭЦП, Ложь); + + УстановитьДоступностьКомманды(Элементы.ФайлыОткрытьФайл, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьКак, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыОбновитьИзФайлаНаДиске, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыПодписать, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыДобавитьЭЦПИзФайла, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьВместеСЭЦП, Ложь); + + Иначе + + Редактируется = ТекущиеДанные.Редактируется; + ПодписанЭЦП = ТекущиеДанные.ПодписанЭЦП; + Зашифрован = ТекущиеДанные.Зашифрован; + + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОткрытьФайл, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьКак, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюПодписать, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьВместеСЭЦП, ПодписанЭЦП); + + УстановитьДоступностьКомманды(Элементы.ФайлыОткрытьФайл, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьКак, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыОбновитьИзФайлаНаДиске, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыПодписать, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыДобавитьЭЦПИзФайла, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьВместеСЭЦП, ПодписанЭЦП); + + КонецЕсли; + +КонецПроцедуры + +// Бизнес-процессы + +&НаКлиенте +Процедура СоздатьБизнесПроцесс(Команда) + + Если ЗначениеЗаполнено(ID) Тогда + РаботаС1СДокументооборотКлиент.СоздатьБизнесПроцессПоДокументуИзДО(ID, Тип); + Иначе + ТекстВопроса = НСтр("ru = 'Данные еще не записаны." + Символы.ВК + "Создание бизнес-процесса возможно только после записи данных." + Символы.ВК + "Данные будут записаны.'"); + Режим = РежимДиалогаВопрос.ОКОтмена; + Ответ = Вопрос(ТекстВопроса, Режим, 0); + Если Ответ = КодВозвратаДиалога.ОК Тогда + Записать(Неопределено); + РаботаС1СДокументооборотКлиент.СоздатьБизнесПроцессПоДокументуИзДО(ID, Тип); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьКопированием(Команда) + + Ответ = Вопрос(НСтр("ru = 'Заполнить файлы копированием из присоединенных файлов?'"), РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + Если ПустаяСтрока(ID) Тогда + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + КонецЕсли; + + Состояние(НСтр("ru = 'Идет заполнение файлов копированием из присоединенных файлов ....'")); + + ЗаполнитьКопированиемСервер(); + + Состояние(); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКопированиемСервер() + + РаботаС1СДокументооборотВызовСервера.ЗаполнитьКопированием(ВнешнийОбъект, ID, Тип, Представление, УникальныйИдентификатор); + ПрочитатьИОбновитьСписокФайлов(); + Элементы.ФайлыЗаполнитьКопированием.Доступность = (Файлы.Количество() = 0); + +КонецПроцедуры + diff --git a/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/ДокументооборотВнутреннийДокумент.mdo b/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/ДокументооборотВнутреннийДокумент.mdo new file mode 100644 index 000000000..ee5fc2985 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВнутреннийДокумент/ДокументооборотВнутреннийДокумент.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотВнутреннийДокумент + + ru + Внутренний документ + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотВходящийДокумент/ConditionalAppearance.dcssca b/SSL/src/CommonForms/ДокументооборотВходящийДокумент/ConditionalAppearance.dcssca new file mode 100644 index 000000000..4468d6a9f --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВходящийДокумент/ConditionalAppearance.dcssca @@ -0,0 +1,32 @@ + + + + + + ТаблицаПодписейКомуВыданСертификат + + + ТаблицаПодписейДатаПодписи + + + ТаблицаПодписейКомментарий + + + ТаблицаПодписейСтатус + + + + + ТаблицаПодписей.Неверна + Equal + true + + + + + ЦветТекста + style:SpecialTextColor + + + + diff --git a/SSL/src/CommonForms/ДокументооборотВходящийДокумент/Form.form b/SSL/src/CommonForms/ДокументооборотВходящийДокумент/Form.form new file mode 100644 index 000000000..b03946b70 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВходящийДокумент/Form.form @@ -0,0 +1,5435 @@ + + + + ГруппаШапка + 1 + + ГруппаОтправитель + 2 + + Отправитель + 4 + true + true + + true + + + Отправитель + + + ОтправительРасширеннаяПодсказка + 148 + Label + true + true + + Left + + + + ОтправительКонтекстноеМеню + 5 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ОтправительАвтоПодбор + + + StartChoice + ОтправительНачалоВыбора + + + TextEditEnd + ОтправительОкончаниеВводаТекста + + + ChoiceProcessing + ОтправительОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Подписал + 16 + true + true + + true + + + Подписал + + + ПодписалРасширеннаяПодсказка + 150 + Label + true + true + + Left + + + + ПодписалКонтекстноеМеню + 17 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПодписалАвтоПодбор + + + StartChoice + ПодписалНачалоВыбора + + + TextEditEnd + ПодписалОкончаниеВводаТекста + + + ChoiceProcessing + ПодписалОбработкаВыбора + + true + true + true + true + true + true + Normal + + + + ГруппаИсхДата + 18 + + НомерОтправителя + 21 + + <key>ru</key> + <value>№ отправителя</value> + + true + true + + true + + + НомерОтправителя + + + НомерОтправителяРасширеннаяПодсказка + 153 + Label + true + true + + Left + + + + НомерОтправителяКонтекстноеМеню + 22 + true + + InputField + Enter + true + Left + true + + 12 + true + true + true + true + true + true + Normal + + + + ДатаОтправителя + 19 + + <key>ru</key> + <value>от</value> + + true + true + + true + + + ДатаОтправителя + + + ДатаОтправителяРасширеннаяПодсказка + 155 + Label + true + true + + Left + + + + ДатаОтправителяКонтекстноеМеню + 20 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа исх дата</value> + + + ru + Группа исх дата + + + ГруппаИсхДатаРасширеннаяПодсказка + 152 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Адресат + 8 + true + true + + true + + + Адресат + + + АдресатРасширеннаяПодсказка + 157 + Label + true + true + + Left + + + + АдресатКонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АдресатАвтоПодбор + + + StartChoice + АдресатНачалоВыбора + + + TextEditEnd + АдресатОкончаниеВводаТекста + + + ChoiceProcessing + АдресатОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Подразделение + 23 + true + true + + true + + + Подразделение + + + ПодразделениеРасширеннаяПодсказка + 159 + Label + true + true + + Left + + + + ПодразделениеКонтекстноеМеню + 24 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПодразделениеАвтоПодбор + + + StartChoice + ПодразделениеНачалоВыбора + + + TextEditEnd + ПодразделениеОкончаниеВводаТекста + + + ChoiceProcessing + ПодразделениеОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + СрокИсполнения + 63 + true + true + + true + + + СрокИсполнения + + + СрокИсполненияРасширеннаяПодсказка + 161 + Label + true + true + + Left + + + + СрокИсполненияКонтекстноеМеню + 64 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа отправитель</value> + + + ru + Группа отправитель + + + ГруппаОтправительРасширеннаяПодсказка + 147 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ГруппаРегистрация + 3 + + ГрифДоступа + 27 + + <key>ru</key> + <value>Гриф</value> + + true + true + + true + + + ГрифДоступа + + + ГрифДоступаРасширеннаяПодсказка + 164 + Label + true + true + + Left + + + + ГрифДоступаКонтекстноеМеню + 28 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ГрифДоступаАвтоПодбор + + + StartChoice + ГрифДоступаНачалоВыбора + + + TextEditEnd + ГрифДоступаОкончаниеВводаТекста + + + ChoiceProcessing + ГрифДоступаОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ВидДокумента + 6 + + <key>ru</key> + <value>Вид</value> + + true + true + + true + + + ВидДокумента + + + ВидДокументаРасширеннаяПодсказка + 166 + Label + true + true + + Left + + + + ВидДокументаКонтекстноеМеню + 7 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВидДокументаАвтоПодбор + + + StartChoice + ВидДокументаНачалоВыбора + + + TextEditEnd + ВидДокументаОкончаниеВводаТекста + + + ChoiceProcessing + ВидДокументаОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + СпособПолучения + 29 + + <key>ru</key> + <value>Получен</value> + + true + true + + true + + + СпособПолучения + + + СпособПолученияРасширеннаяПодсказка + 168 + Label + true + true + + Left + + + + СпособПолученияКонтекстноеМеню + 30 + true + + InputField + Enter + true + Left + true + + + AutoComplete + СпособПолученияАвтоПодбор + + + StartChoice + СпособПолученияНачалоВыбора + + + TextEditEnd + СпособПолученияОкончаниеВводаТекста + + + ChoiceProcessing + СпособПолученияОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Состояние + 25 + true + true + + true + + + Состояние + + + СостояниеРасширеннаяПодсказка + 170 + Label + true + true + + Left + + + + СостояниеКонтекстноеМеню + 26 + true + + InputField + Enter + true + Left + true + + + AutoComplete + СостояниеАвтоПодбор + + + StartChoice + СостояниеНачалоВыбора + + + TextEditEnd + СостояниеОкончаниеВводаТекста + + + ChoiceProcessing + СостояниеОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ГруппаРегНомер + 31 + + РегистрационныйНомер + 32 + + <key>ru</key> + <value>Рег. номер</value> + + true + true + + true + + + РегистрационныйНомер + + + РегистрационныйНомерРасширеннаяПодсказка + 173 + Label + true + true + + Left + + + + РегистрационныйНомерКонтекстноеМеню + 33 + true + + InputField + + ru + Для документа установлена автоматическая нумерация. Редактирование поля не рекомендуется. + + Enter + true + Left + true + + 12 + true + true + true + true + true + true + Normal + + + + ДатаРегистрации + 34 + true + true + + true + + + ДатаРегистрации + + + ДатаРегистрацииРасширеннаяПодсказка + 175 + Label + true + true + + Left + + + + ДатаРегистрацииКонтекстноеМеню + 35 + true + + InputField + Enter + true + Left + true + + 10 + true + true + true + + ru + ДФ=dd.MM.yyyy + + true + true + true + Normal + + + + Зарегистрировать + 36 + + <key>ru</key> + <value>№</value> + + true + true + + true + + + ЗарегистрироватьРасширеннаяПодсказка + 177 + Label + true + true + + Left + + + UsualButton + Form.Command.Зарегистрировать + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Группа рег номер</value> + + + ru + Группа рег номер + + + ГруппаРегНомерРасширеннаяПодсказка + 172 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Организация + 59 + true + true + + true + + + Организация + + + ОрганизацияРасширеннаяПодсказка + 178 + Label + true + true + + Left + + + + ОрганизацияКонтекстноеМеню + 60 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ОрганизацияАвтоПодбор + + + StartChoice + ОрганизацияНачалоВыбора + + + TextEditEnd + ОрганизацияОкончаниеВводаТекста + + + ChoiceProcessing + ОрганизацияОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ВопросДеятельности + 61 + true + true + + true + + + ВопросДеятельности + + + ВопросДеятельностиРасширеннаяПодсказка + 180 + Label + true + true + + Left + + + + ВопросДеятельностиКонтекстноеМеню + 62 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВопросДеятельностиАвтоПодбор + + + StartChoice + ВопросДеятельностиНачалоВыбора + + + TextEditEnd + ВопросДеятельностиОкончаниеВводаТекста + + + ChoiceProcessing + ВопросДеятельностиОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ГруппаСумма + 37 + + Сумма + 38 + true + true + + true + + + Сумма + + + СуммаРасширеннаяПодсказка + 183 + Label + true + true + + Left + + + + СуммаКонтекстноеМеню + 39 + true + + InputField + Enter + true + Left + true + + 12 + true + true + true + true + true + true + Normal + + + + Валюта + 40 + true + true + + true + + + Валюта + + None + + ВалютаРасширеннаяПодсказка + 185 + Label + true + true + + Left + + + + ВалютаКонтекстноеМеню + 41 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВалютаАвтоПодбор + + + StartChoice + ВалютаНачалоВыбора + + + TextEditEnd + ВалютаОкончаниеВводаТекста + + + ChoiceProcessing + ВалютаОбработкаВыбора + + 8 + true + true + false + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа сумма</value> + + + ru + Группа сумма + + + ГруппаСуммаРасширеннаяПодсказка + 182 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа регистрация</value> + + + ru + Группа регистрация + + + ГруппаРегистрацияРасширеннаяПодсказка + 163 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа шапка</value> + + + ru + Группа шапка + + + ГруппаШапкаРасширеннаяПодсказка + 146 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Equal + Auto + Auto + + + + ЗаголовокДокумента + 12 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + ЗаголовокДокумента + + + ЗаголовокДокументаРасширеннаяПодсказка + 187 + Label + true + true + + Left + + + + ЗаголовокДокументаКонтекстноеМеню + 13 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Описание + 14 + + <key>ru</key> + <value>Краткое описание</value> + + true + true + + true + + + Описание + + None + + ОписаниеРасширеннаяПодсказка + 189 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 15 + true + + InputField + Enter + true + Left + true + + true + 3 + true + true + true + true + true + true + Normal + + + + ГруппаСтраницы + 87 + + ГруппаФайлы + 88 + + Файлы + 46 + true + true + + true + + + Файлы + + None + Add + Copy + EndEdit + MoveDown + MoveUp + SelectAll + SortListAsc + SortListDesc + + ФайлыПодписанЭЦП + 89 + true + true + + true + + + Файлы.ПодписанЭЦП + + + ФайлыПодписанЭЦПРасширеннаяПодсказка + 221 + Label + true + true + + Left + + + + ФайлыПодписанЭЦПКонтекстноеМеню + 90 + true + + PictureField + Enter + + CommonPicture.ПодписанЭЦП + + Left + true + + true + true + true + true + + CommonPicture.ПодписанЭЦП + + + + 1 + + + + + ГруппаКартинкаИНаименование + 67 + + ФайлыИндексКартинки + 68 + true + true + + true + + + Файлы.ИндексКартинки + + + ФайлыИндексКартинкиРасширеннаяПодсказка + 224 + Label + true + true + + Left + + + + ФайлыИндексКартинкиКонтекстноеМеню + 69 + true + + PictureField + Enter + Left + true + + true + true + true + true + + CommonPicture.ПиктограммыФайлов + + + + 1 + + + + + ФайлыНаименование + 53 + true + true + + true + + + Файлы.Наименование + + + ФайлыНаименованиеРасширеннаяПодсказка + 226 + Label + true + true + + Left + + + + ФайлыНаименованиеКонтекстноеМеню + 54 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ФайлыОписание + 55 + true + true + + true + + + Файлы.Описание + + + ФайлыОписаниеРасширеннаяПодсказка + 228 + Label + true + true + + Left + + + + ФайлыОписаниеКонтекстноеМеню + 56 + true + + InputField + Enter + Left + true + + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа картинка и наименование</value> + + + ru + Группа картинка и наименование + + + ГруппаКартинкаИНаименованиеРасширеннаяПодсказка + 223 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + ФайлыКоманднаяПанель + 48 + + ФайлыСоздатьФайл + 70 + true + true + + true + + + ФайлыСоздатьФайлРасширеннаяПодсказка + 202 + Label + true + true + + Left + + + Form.Command.СоздатьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыОткрытьФайл + 71 + true + true + + true + + + ФайлыОткрытьФайлРасширеннаяПодсказка + 203 + Label + true + true + + Left + + + Form.Command.ОткрытьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыОбновитьИзФайлаНаДиске + 84 + true + true + + true + + + ФайлыОбновитьИзФайлаНаДискеРасширеннаяПодсказка + 204 + Label + true + true + + Left + + + Form.Command.ОбновитьИзФайлаНаДиске + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыСохранитьКак + 83 + true + true + + true + + + ФайлыСохранитьКакРасширеннаяПодсказка + 205 + Label + true + true + + Left + + + Form.Command.СохранитьКак + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыГруппаЭЦП + 72 + + ФайлыПодписать + 73 + true + true + + true + + + ФайлыПодписатьРасширеннаяПодсказка + 207 + Label + true + true + + Left + + + Form.Command.Подписать + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыДобавитьЭЦПИзФайла + 74 + true + true + + true + + + ФайлыДобавитьЭЦПИзФайлаРасширеннаяПодсказка + 208 + Label + true + true + + Left + + + Form.Command.ДобавитьЭЦПИзФайла + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыСохранитьВместеСЭЦП + 75 + true + true + + true + + + ФайлыСохранитьВместеСЭЦПРасширеннаяПодсказка + 209 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭЦП + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ФайлыГруппаЭЦПРасширеннаяПодсказка + 206 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + ФайлыЗаполнитьКопированием + 140 + true + true + + true + + + ФайлыЗаполнитьКопированиемРасширеннаяПодсказка + 210 + Label + true + true + + Left + + + Form.Command.ЗаполнитьКопированием + Normal + Auto + true + true + UserCmds + Auto + + Left + + + DragCheck + СписокФайловПроверкаПеретаскивания + + + Selection + ФайлыВыбор + + + BeforeAddRow + ФайлыПередНачаломДобавления + + + BeforeDeleteRow + ФайлыПередУдалением + + + OnActivateRow + ФайлыПриАктивизацииСтроки + + + Drag + СписокФайловПеретаскивание + + + BeforeRowChange + ФайлыПередНачаломИзменения + + + ФайлыСтрокаПоиска + 212 + + ФайлыСтрокаПоискаРасширеннаяПодсказка + 214 + Label + true + true + + Left + + + + ФайлыСтрокаПоискаКонтекстноеМеню + 213 + true + + Файлы + + true + + + + ФайлыСостояниеПросмотра + 215 + + ФайлыСостояниеПросмотраРасширеннаяПодсказка + 217 + Label + true + true + + Left + + + + ФайлыСостояниеПросмотраКонтекстноеМеню + 216 + true + + ViewStatusAddition + Файлы + + true + + + + ФайлыУправлениеПоиском + 218 + + ФайлыУправлениеПоискомРасширеннаяПодсказка + 220 + Label + true + true + + Left + + + + ФайлыУправлениеПоискомКонтекстноеМеню + 219 + true + + SearchControlAddition + Файлы + + true + + + + ФайлыРасширеннаяПодсказка + 211 + Label + true + true + + Left + + + + ФайлыКонтекстноеМеню + 47 + + ФайлыКонтекстноеМенюСоздатьФайл + 76 + true + true + + true + + + ФайлыКонтекстноеМенюСоздатьФайлРасширеннаяПодсказка + 193 + Label + true + true + + Left + + + Form.Command.СоздатьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюГруппаСтандартные + 78 + true + true + + true + + + <key>ru</key> + <value>Файлы контекстное меню группа стандартные</value> + + + ru + Файлы контекстное меню группа стандартные + + + ФайлыКонтекстноеМенюГруппаСтандартныеРасширеннаяПодсказка + 194 + Label + true + true + + Left + + + + Item.Файлы + + + + ФайлыКонтекстноеМенюОткрытьФайл + 77 + true + true + + true + + + ФайлыКонтекстноеМенюОткрытьФайлРасширеннаяПодсказка + 195 + Label + true + true + + Left + + + Form.Command.ОткрытьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюСохранитьКак + 85 + true + true + + true + + + ФайлыКонтекстноеМенюСохранитьКакРасширеннаяПодсказка + 196 + Label + true + true + + Left + + + Form.Command.СохранитьКак + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске + 86 + true + true + + true + + + ФайлыКонтекстноеМенюОбновитьИзФайлаНаДискеРасширеннаяПодсказка + 197 + Label + true + true + + Left + + + Form.Command.ОбновитьИзФайлаНаДиске + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюГруппаЭЦП + 79 + + ФайлыКонтекстноеМенюПодписать + 80 + true + true + + true + + + ФайлыКонтекстноеМенюПодписатьРасширеннаяПодсказка + 199 + Label + true + true + + Left + + + Form.Command.Подписать + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла + 81 + true + true + + true + + + ФайлыКонтекстноеМенюДобавитьЭЦПИзФайлаРасширеннаяПодсказка + 200 + Label + true + true + + Left + + + Form.Command.ДобавитьЭЦПИзФайла + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюСохранитьВместеСЭЦП + 82 + true + true + + true + + + ФайлыКонтекстноеМенюСохранитьВместеСЭЦПРасширеннаяПодсказка + 201 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭЦП + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ФайлыКонтекстноеМенюГруппаЭЦПРасширеннаяПодсказка + 198 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ true + true + + true + + + <key>ru</key> + <value>Файлы</value> + + + ru + Файлы + + + ГруппаФайлыРасширеннаяПодсказка + 192 + Label + true + true + + Left + + + Page + + Vertical + auto + +
+ + ГруппаЭЦП + 91 + + ТаблицаПодписей + 92 + true + true + + true + + + ТаблицаПодписей + + None + + ТаблицаПодписейКомуВыданСертификат + 95 + true + true + + true + + + ТаблицаПодписей.КомуВыданСертификат + + + ТаблицаПодписейКомуВыданСертификатРасширеннаяПодсказка + 254 + Label + true + true + + Left + + + + ТаблицаПодписейКомуВыданСертификатКонтекстноеМеню + 96 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейДатаПодписи + 97 + true + true + + true + + + ТаблицаПодписей.ДатаПодписи + + + ТаблицаПодписейДатаПодписиРасширеннаяПодсказка + 256 + Label + true + true + + Left + + + + ТаблицаПодписейДатаПодписиКонтекстноеМеню + 98 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейКомментарий + 99 + true + true + + true + + + ТаблицаПодписей.Комментарий + + + ТаблицаПодписейКомментарийРасширеннаяПодсказка + 258 + Label + true + true + + Left + + + + ТаблицаПодписейКомментарийКонтекстноеМеню + 100 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейСтатус + 101 + true + true + + true + + + ТаблицаПодписей.Статус + + + ТаблицаПодписейСтатусРасширеннаяПодсказка + 260 + Label + true + true + + Left + + + + ТаблицаПодписейСтатусКонтекстноеМеню + 102 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейКоманднаяПанель + 94 + + ТаблицаПодписейОткрытьПодпись + 128 + true + true + + true + + + ТаблицаПодписейОткрытьПодписьРасширеннаяПодсказка + 239 + Label + true + true + + Left + + + Form.Command.ОткрытьПодпись + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейПроверить + 124 + true + true + + true + + + ТаблицаПодписейПроверитьРасширеннаяПодсказка + 240 + Label + true + true + + Left + + + Form.Command.Проверить + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейПроверитьВсе + 125 + true + true + + true + + + ТаблицаПодписейПроверитьВсеРасширеннаяПодсказка + 241 + Label + true + true + + Left + + + Form.Command.ПроверитьВсе + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейСохранить + 126 + true + true + + true + + + ТаблицаПодписейСохранитьРасширеннаяПодсказка + 242 + Label + true + true + + Left + + + Form.Command.Сохранить + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейУдалить + 127 + true + true + + true + + + ТаблицаПодписейУдалитьРасширеннаяПодсказка + 243 + Label + true + true + + Left + + + Form.Command.Удалить + Normal + Auto + true + true + UserCmds + Auto + + Left + + + Selection + ТаблицаПодписейВыбор + + + ТаблицаПодписейСтрокаПоиска + 245 + + ТаблицаПодписейСтрокаПоискаРасширеннаяПодсказка + 247 + Label + true + true + + Left + + + + ТаблицаПодписейСтрокаПоискаКонтекстноеМеню + 246 + true + + ТаблицаПодписей + + true + + + + ТаблицаПодписейСостояниеПросмотра + 248 + + ТаблицаПодписейСостояниеПросмотраРасширеннаяПодсказка + 250 + Label + true + true + + Left + + + + ТаблицаПодписейСостояниеПросмотраКонтекстноеМеню + 249 + true + + ViewStatusAddition + ТаблицаПодписей + + true + + + + ТаблицаПодписейУправлениеПоиском + 251 + + ТаблицаПодписейУправлениеПоискомРасширеннаяПодсказка + 253 + Label + true + true + + Left + + + + ТаблицаПодписейУправлениеПоискомКонтекстноеМеню + 252 + true + + SearchControlAddition + ТаблицаПодписей + + true + + + + ТаблицаПодписейРасширеннаяПодсказка + 244 + Label + true + true + + Left + + + + ТаблицаПодписейКонтекстноеМеню + 93 + true + + Tree + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + + ТаблицаПодписей.ИндексКартинки + + + CommonPicture.ПиктограммыФайлов + + None + None + None + true +
+ true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ГруппаЭЦПРасширеннаяПодсказка + 238 + Label + true + true + + Left + + + Page + + Vertical + auto + +
+ + ГруппаСвойства + 129 + + Свойства + 130 + true + true + + true + + + Свойства + + None + Add + CancelSearch + Change + Copy + CopyToClipboard + Delete + EndEdit + Find + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + СвойстваСвойство + 133 + + <key>ru</key> + <value>Свойство</value> + + true + true + + true + + + Свойства.Свойство + + + СвойстваСвойствоРасширеннаяПодсказка + 281 + Label + true + true + + Left + + + + СвойстваСвойствоКонтекстноеМеню + 134 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + СвойстваЗначение + 135 + + <key>ru</key> + <value>Значение</value> + + true + true + + true + + + Свойства.Значение + + + СвойстваЗначениеРасширеннаяПодсказка + 283 + Label + true + true + + Left + + + + СвойстваЗначениеКонтекстноеМеню + 136 + true + + InputField + Auto + true + Left + true + + + StartChoice + СвойстваЗначениеПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + СвойстваКоманднаяПанель + 132 + Left + true + + + СвойстваСтрокаПоиска + 272 + + СвойстваСтрокаПоискаРасширеннаяПодсказка + 274 + Label + true + true + + Left + + + + СвойстваСтрокаПоискаКонтекстноеМеню + 273 + true + + Свойства + + true + + + + СвойстваСостояниеПросмотра + 275 + + СвойстваСостояниеПросмотраРасширеннаяПодсказка + 277 + Label + true + true + + Left + + + + СвойстваСостояниеПросмотраКонтекстноеМеню + 276 + true + + ViewStatusAddition + Свойства + + true + + + + СвойстваУправлениеПоиском + 278 + + СвойстваУправлениеПоискомРасширеннаяПодсказка + 280 + Label + true + true + + Left + + + + СвойстваУправлениеПоискомКонтекстноеМеню + 279 + true + + SearchControlAddition + Свойства + + true + + + + СвойстваРасширеннаяПодсказка + 271 + Label + true + true + + Left + + + + СвойстваКонтекстноеМеню + 131 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ true + true + + true + + + <key>ru</key> + <value>Свойства</value> + + + ru + Группа свойства + + + ГруппаСвойстваРасширеннаяПодсказка + 270 + Label + true + true + + Left + + + Page + + Vertical + auto + +
+ true + true + + true + + + <key>ru</key> + <value>Группа страницы</value> + + + ru + Группа страницы + + + ГруппаСтраницыРасширеннаяПодсказка + 191 + Label + true + true + + Left + + + Pages + + TabsOnTop + Auto + +
+ + Ответственный + 44 + + <key>ru</key> + <value>Ответственный</value> + + true + true + + true + + + Ответственный + + + ОтветственныйРасширеннаяПодсказка + 293 + Label + true + true + + Left + + + + ОтветственныйКонтекстноеМеню + 45 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ОтветственныйАвтоПодбор + + + StartChoice + ОтветственныйНачалоВыбора + + + TextEditEnd + ОтветственныйОкончаниеВводаТекста + + + ChoiceProcessing + ОтветственныйОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Комментарий + 42 + true + true + + true + + + Комментарий + + + КомментарийРасширеннаяПодсказка + 295 + Label + true + true + + Left + + + + КомментарийКонтекстноеМеню + 43 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ФормаКоманднаяПанель + -1 + + ЗаписатьИЗакрыть + 10 + true + true + + true + + + ЗаписатьИЗакрытьРасширеннаяПодсказка + 141 + Label + true + true + + Left + + + Form.Command.ЗаписатьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + Записать + 11 + true + true + + true + + + ЗаписатьРасширеннаяПодсказка + 142 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаСоздатьБизнесПроцесс + 139 + true + true + + true + + + ФормаСоздатьБизнесПроцессРасширеннаяПодсказка + 143 + Label + true + true + + Left + + + Form.Command.СоздатьБизнесПроцесс + Normal + Auto + true + true + UserCmds + Auto + + + ГруппаКомандЭЦП + 137 + + ФормаПодписатьДокумент + 138 + true + true + + true + + + ФормаПодписатьДокументРасширеннаяПодсказка + 145 + Label + true + true + + Left + + + Form.Command.ПодписатьДокумент + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ГруппаКомандЭЦПРасширеннаяПодсказка + 144 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + OnOpen + ПриОткрытии + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ЗаголовокДокумента + + <key>ru</key> + <value>Заголовок документа</value> + + 1 + + String + + + + true + + + true + + true + + + Описание + + <key>ru</key> + <value>Описание</value> + + 2 + + String + + + + true + + + true + + true + + + Отправитель + + <key>ru</key> + <value>Отправитель</value> + + 3 + + String + + + + true + + + true + + true + + + ОтправительТип + + <key>ru</key> + <value>Отправитель тип</value> + + 4 + + String + + + + true + + + true + + + + ОтправительID + + <key>ru</key> + <value>Отправитель ID</value> + + 5 + + String + + + + true + + + true + + + + Адресат + + <key>ru</key> + <value>Адресат</value> + + 6 + + String + + + + true + + + true + + true + + + АдресатТип + + <key>ru</key> + <value>Адресат тип</value> + + 7 + + String + + + + true + + + true + + + + АдресатID + + <key>ru</key> + <value>Адресат ID</value> + + 8 + + String + + + + true + + + true + + + + ВидДокумента + + <key>ru</key> + <value>Вид документа</value> + + 9 + + String + + + + true + + + true + + true + + + ВидДокументаТип + + <key>ru</key> + <value>Вид документа тип</value> + + 10 + + String + + + + true + + + true + + + + ВидДокументаID + + <key>ru</key> + <value>Вид документа ID</value> + + 11 + + String + + + + true + + + true + + + + РегистрационныйНомер + + <key>ru</key> + <value>Регистрационный номер</value> + + 12 + + String + + + + true + + + true + + true + + + ДатаРегистрации + + <key>ru</key> + <value>от</value> + + 13 + + Date + + + + true + + + true + + true + + + Состояние + + <key>ru</key> + <value>Состояние</value> + + 14 + + String + + + + true + + + true + + true + + + СостояниеТип + + <key>ru</key> + <value>Состояние</value> + + 15 + + String + + + + true + + + true + + + + СостояниеID + + <key>ru</key> + <value>Состояние ID</value> + + 16 + + String + + + + true + + + true + + + + ПодписалID + + <key>ru</key> + <value>Подписал ID</value> + + 17 + + String + + + + true + + + true + + + + Подписал + + <key>ru</key> + <value>Подписал</value> + + 18 + + String + + + + true + + + true + + true + + + ПодписалТип + + <key>ru</key> + <value>Подписал тип</value> + + 19 + + String + + + + true + + + true + + + + ДатаОтправителя + + <key>ru</key> + <value>Дата отправителя</value> + + 20 + + Date + + Date + + + + true + + + true + + true + + + НомерОтправителя + + <key>ru</key> + <value>Номер отправителя</value> + + 21 + + String + + + + true + + + true + + true + + + ПодразделениеID + + <key>ru</key> + <value>Подразделение ID</value> + + 22 + + String + + + + true + + + true + + + + Подразделение + + <key>ru</key> + <value>Подразделение</value> + + 23 + + String + + + + true + + + true + + true + + + ПодразделениеТип + + <key>ru</key> + <value>Подразделение тип</value> + + 24 + + String + + + + true + + + true + + + + ГрифДоступаID + + <key>ru</key> + <value>Гриф доступа ID</value> + + 25 + + String + + + + true + + + true + + + + ГрифДоступа + + <key>ru</key> + <value>Гриф доступа</value> + + 26 + + String + + + + true + + + true + + true + + + ГрифДоступаТип + + <key>ru</key> + <value>Гриф доступа тип</value> + + 27 + + String + + + + true + + + true + + + + СпособПолученияID + + <key>ru</key> + <value>Способ получения ID</value> + + 28 + + String + + + + true + + + true + + + + СпособПолучения + + <key>ru</key> + <value>Способ доставки</value> + + 29 + + String + + + + true + + + true + + true + + + СпособПолученияТип + + <key>ru</key> + <value>Способ получения тип</value> + + 30 + + String + + + + true + + + true + + + + Сумма + + <key>ru</key> + <value>Сумма</value> + + 31 + + Number + + 15 + 2 + true + + + + true + + + true + + true + + + ВалютаID + + <key>ru</key> + <value>Валюта ID</value> + + 32 + + String + + + + true + + + true + + + + Валюта + + <key>ru</key> + <value>Валюта</value> + + 33 + + String + + + + true + + + true + + true + + + ВалютаТип + + <key>ru</key> + <value>Валюта тип</value> + + 34 + + String + + + + true + + + true + + + + Комментарий + + <key>ru</key> + <value>Комментарий</value> + + 35 + + String + + + + true + + + true + + true + + + ОтветственныйID + + <key>ru</key> + <value>Ответственный ID</value> + + 36 + + String + + + + true + + + true + + + + ОтветственныйТип + + <key>ru</key> + <value>Ответственный тип</value> + + 37 + + String + + + + true + + + true + + + + Ответственный + + <key>ru</key> + <value>Ответственный</value> + + 38 + + String + + + + true + + + true + + true + + + Файлы + + <key>ru</key> + <value>Файлы</value> + + 39 + + ValueTable + + + true + + + true + + + Тип + + <key>ru</key> + <value>Тип</value> + + 2 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 3 + + String + + + + true + + + true + + + + Описание + + <key>ru</key> + <value>Описание</value> + + 4 + + String + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 5 + + String + + + + true + + + true + + + + ИндексКартинки + + <key>ru</key> + <value>Индекс картинки</value> + + 6 + + Number + + + + true + + + true + + + + УникальныйИдентификатор + + <key>ru</key> + <value>Уникальный идентификатор</value> + + 7 + + String + + + + true + + + true + + + + Размер + + <key>ru</key> + <value>Размер (Кб)</value> + + 1 + + Number + + + + true + + + true + + + + Расширение + + <key>ru</key> + <value>Расширение</value> + + 8 + + String + + + + true + + + true + + + + ДатаСоздания + + <key>ru</key> + <value>Дата создания</value> + + 9 + + Date + + + + true + + + true + + + + Зашифрован + + <key>ru</key> + <value>Зашифрован</value> + + 10 + + Boolean + + + true + + + true + + + + Редактируется + + <key>ru</key> + <value>Редактируется</value> + + 11 + + Boolean + + + true + + + true + + + + ПодписанЭЦП + + <key>ru</key> + <value>Подписан ЭЦП</value> + + 12 + + Boolean + + + true + + + true + + + + ДатаМодификацииУниверсальная + + <key>ru</key> + <value>Дата модификации универсальная</value> + + 13 + + Date + + + + true + + + true + + + + + РежимОткрытия + + <key>ru</key> + <value>Режим открытия</value> + + 40 + + String + + + + true + + + true + + + + ID + + <key>ru</key> + <value>ID</value> + + 41 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 42 + + String + + + + true + + + true + + + + ОрганизацияID + + <key>ru</key> + <value>Организация ID</value> + + 43 + + String + + + + true + + + true + + + + ОрганизацияТип + + <key>ru</key> + <value>Организация тип</value> + + 44 + + String + + + + true + + + true + + + + Организация + + <key>ru</key> + <value>Организация</value> + + 45 + + String + + + + true + + + true + + true + + + ВопросДеятельностиID + + <key>ru</key> + <value>Вопрос деятельности ID</value> + + 46 + + String + + + + true + + + true + + + + ВопросДеятельностиТип + + <key>ru</key> + <value>Вопрос деятельности тип</value> + + 47 + + String + + + + true + + + true + + + + ВопросДеятельности + + <key>ru</key> + <value>Вопрос</value> + + 48 + + String + + + + true + + + true + + true + + + СрокИсполнения + + <key>ru</key> + <value>Срок исполнения</value> + + 49 + + Date + + Date + + + + true + + + true + + true + + + ВнешнийОбъект + + <key>ru</key> + <value>Внешний объект</value> + + 50 + + AnyRef + + + true + + + true + + + + Представление + + <key>ru</key> + <value>Представление</value> + + 51 + + String + + + + true + + + true + + + + КаталогДляСохраненияДанных + + <key>ru</key> + <value>Каталог для сохранения данных</value> + + 52 + + String + + + + true + + + true + + + + ТаблицаПодписей + + <key>ru</key> + <value>Таблица подписей</value> + + 53 + + ValueTree + + + true + + + true + + + КомуВыданСертификат + + <key>ru</key> + <value>Автор подписи</value> + + 1 + + String + + + + true + + + true + + + + ДатаПодписи + + <key>ru</key> + <value>Дата подписи</value> + + 2 + + Date + + + + true + + + true + + + + Комментарий + + <key>ru</key> + <value>Комментарий</value> + + 3 + + String + + + + true + + + true + + + + Статус + + <key>ru</key> + <value>Статус</value> + + 4 + + String + + + + true + + + true + + + + АдресПодписи + + <key>ru</key> + <value>Адрес подписи</value> + + 6 + + String + + + + true + + + true + + + + Отпечаток + + <key>ru</key> + <value>Отпечаток</value> + + 7 + + String + + + + true + + + true + + + + Неверна + + <key>ru</key> + <value>Неверна</value> + + 8 + + Boolean + + + true + + + true + + + + ИндексКартинки + + <key>ru</key> + <value>Индекс картинки</value> + + 9 + + Number + + 10 + + + + true + + + true + + + + УстановившийПодпись + + <key>ru</key> + <value>Установивший подпись</value> + + 11 + + String + + + + true + + + true + + + + НомерСтроки + + <key>ru</key> + <value>Номер строки</value> + + 10 + + Number + + 10 + + + + true + + + true + + + + АдресСертификата + + <key>ru</key> + <value>Адрес сертификата</value> + + 12 + + String + + + + true + + + true + + + + Зашифрован + + <key>ru</key> + <value>Зашифрован</value> + + 13 + + Boolean + + + true + + + true + + + + ОбъектИд + + <key>ru</key> + <value>Объект ид</value> + + 5 + + String + + + + true + + + true + + + + ОбъектТип + + <key>ru</key> + <value>Объект тип</value> + + 14 + + String + + + + true + + + true + + + + ОбъектИмя + + <key>ru</key> + <value>Объект имя</value> + + 15 + + String + + + + true + + + true + + + + Объект + + <key>ru</key> + <value>Объект</value> + + 16 + + String + + + + true + + + true + + + + ИмяФайлаПодписи + + <key>ru</key> + <value>Имя файла подписи</value> + + 17 + + String + + + + true + + + true + + + + УстановившийПодписьИд + + <key>ru</key> + <value>Установивший подпись ид</value> + + 18 + + String + + + + true + + + true + + + + + Свойства + + <key>ru</key> + <value>Свойства</value> + + 54 + + ValueTable + + + true + + + true + + true + + Свойство + + <key>ru</key> + <value>Свойство</value> + + 1 + + String + + + + true + + + true + + + + Значение + + <key>ru</key> + <value>Значение</value> + + 2 + + Boolean + String + Date + Number + + 10 + + + + Date + + + + true + + + true + + + + ЗначениеТип + + <key>ru</key> + <value>Значение тип</value> + + 3 + + String + + + + true + + + true + + + + ЗначениеID + + <key>ru</key> + <value>Значение ID</value> + + 4 + + String + + + + true + + + true + + + + СписокДоступныхТипов + + <key>ru</key> + <value>Список доступных типов</value> + + 5 + + ValueList + + + true + + + true + + + + СвойствоТип + + <key>ru</key> + <value>Свойство тип</value> + + 6 + + String + + + + true + + + true + + + + СвойствоID + + <key>ru</key> + <value>Свойство ID</value> + + 7 + + String + + + + true + + + true + + + + + ЗакрытиеСПараметром + + <key>ru</key> + <value>Закрытие с параметром</value> + + 55 + + Boolean + + + true + + + true + + + + НачальныйРегистрационныйНомер + + <key>ru</key> + <value>Начальный регистрационный номер</value> + + 56 + + String + + + + true + + + true + + + + НачальнаяДатаРегистрации + + <key>ru</key> + <value>Начальная дата регистрации</value> + + 57 + + Date + + + + true + + + true + + + + ОграничиватьДоступностьПолей + + <key>ru</key> + <value>Ограничивать доступность полей</value> + + 58 + + Boolean + + + true + + + true + + + + АдресСлепкаДокумента + + <key>ru</key> + <value>Адрес слепка документа</value> + + 59 + + String + + + + true + + + true + + + + ЗаписатьИЗакрыть + + <key>ru</key> + <value>Записать и закрыть</value> + + 1 + + ru + Записать и закрыть + + + true + + + + ЗаписатьИЗакрыть + + + true + Auto + Auto + + + Записать + + <key>ru</key> + <value>Записать</value> + + 2 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + true + Auto + Auto + + + Зарегистрировать + + <key>ru</key> + <value>Зарегистрировать</value> + + 3 + + ru + Зарегистрировать + + + true + + + + Зарегистрировать + + + Auto + Auto + + + ДобавитьЭЦПИзФайла + + <key>ru</key> + <value>Добавить ЭЦП из файла</value> + + 4 + + ru + Добавить ЭЦП из файла + + + true + + + + ДобавитьЭЦПИзФайла + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ОбновитьИзФайлаНаДиске + + <key>ru</key> + <value>Обновить из файла на диске</value> + + 5 + + ru + Обновить из файла на диске + + + true + + + CommonPicture.КартинкаОбновитьИзФайлаНаДиске + + + + ОбновитьИзФайлаНаДиске + + + TextPicture + Auto + Auto + + + ОткрытьФайл + + <key>ru</key> + <value>Просмотреть</value> + + 6 + + ru + Открыть файл для просмотра + + + true + + + CommonPicture.КартинкаОткрыть + + + + ОткрытьФайл + + + TextPicture + Auto + Auto + + + Подписать + + <key>ru</key> + <value>Подписать</value> + + 7 + + ru + Подписать + + + true + + + CommonPicture.ПодписанЭЦП + + + + Подписать + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + СоздатьФайл + + <key>ru</key> + <value>Добавить</value> + + 8 + + ru + Создать новый файл (Ins) + + + true + + + StdPicture.CreateListItem + + + + СоздатьФайл + + + TextPicture + true + Auto + Auto + + + СохранитьВместеСЭЦП + + <key>ru</key> + <value>Сохранить вместе с ЭЦП</value> + + 9 + + ru + Сохранить вместе СЭЦП + + + true + + + + СохранитьВместеСЭЦП + + + Auto + Auto + + + СохранитьКак + + <key>ru</key> + <value>Сохранить как...</value> + + 10 + + ru + Сохранить файл на диск или другое устройство + + + true + + + CommonPicture.КартинкаСохранитьКак + + + + СохранитьКак + + + TextPicture + Auto + Auto + + + ОткрытьПодпись + + <key>ru</key> + <value>Открыть подпись</value> + + 11 + + ru + Открыть подпись + + + true + + + + ОткрытьПодпись + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + Проверить + + <key>ru</key> + <value>Проверить</value> + + 12 + + ru + Проверить + + + true + + + + Проверить + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ПроверитьВсе + + <key>ru</key> + <value>Проверить все</value> + + 13 + + ru + Проверить все + + + true + + + + ПроверитьВсе + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + Сохранить + + <key>ru</key> + <value>Сохранить</value> + + 14 + + ru + Сохранить + + + true + + + + Сохранить + + + Auto + Auto + + + Удалить + + <key>ru</key> + <value>Удалить</value> + + 15 + + ru + Удалить + + + true + + + + Удалить + + + Auto + Auto + + + ПодписатьДокумент + + <key>ru</key> + <value>Подписать</value> + + 16 + + ru + Подписать + + + true + + + CommonPicture.ПодписанЭЦП + + + + ПодписатьДокумент + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + СоздатьБизнесПроцесс + + <key>ru</key> + <value>Создать бизнес-процесс</value> + + 17 + + ru + Создать бизнес-процесс документооборота + + + true + + + StdPicture.BusinessProcess + + + + СоздатьБизнесПроцесс + + + Auto + Auto + + + ЗаполнитьКопированием + + <key>ru</key> + <value>Копировать из присоединенных файлов</value> + + 18 + + ru + Заполнить копированием из присоединенных файлов + + + true + + + + ЗаполнитьКопированием + + + Auto + Auto + + + ID + + String + + + true + + + Тип + + String + + + true + + + ВнешнийОбъект + + AnyRef + + + + ТолькоПросмотр + + Boolean + + + + + + +
diff --git a/SSL/src/CommonForms/ДокументооборотВходящийДокумент/Help/ru.html b/SSL/src/CommonForms/ДокументооборотВходящийДокумент/Help/ru.html new file mode 100644 index 000000000..2e626acc6 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВходящийДокумент/Help/ru.html @@ -0,0 +1,16 @@ + +

Справочник "Входящие документы" служит для учета официальной корреспонденции, поступающей в Вашу организацию от внешних адресатов.

+

К каждому входящему документу можно присоединить один или несколько файлов. Учет файлов возможен, если настройка программы "Использовать файлы у входящих документов" установлена.

+

Для документа следует задать: 

+
  • отправителя (корреспондента, от которого получен документ); +
  • контактное лицо, подписавшее документ (если для корреспондента определено одно контактное лицо, то оно сразу подставляется при выборе отправителя); +
  • номер и дату отправления; +
  • если документ был получен в ответ на исходящий документ, то в поле "В ответ на" указывается исходящий документ; +
  • адресат - пользователя, которому адресуется документ; +
  • подразделение, в которое адресован документ; +
  • гриф доступа - если установлена настройка программы "Использовать грифы доступа", то входящему документу нужно обязательно присвоить гриф доступа, выбрав его из числа заранее настроенных администратором грифов. Гриф определяет права доступа пользователей к входящему документу; +
  • вид документа - показывается, если настройка программы "Использовать виды входящих документов" установлена; +
  • способ получения документа; +
  • состояние документа - показывается, если настройка программы "Использовать состояние документов" установлена; +
  • организацию - в случае ведения документооборота для нескольких организаций (показывается, если настройка программы "Использовать учет по организациям" установлена);


Документ может нумероваться вручную или автоматически (в зависимости от настроек вида документа).
Если задана автоматическая нумерация, то для того, чтобы присвоить регистрационный номер необходимо нажать кнопку "Зарегистрировать".
Если задана ручная нумерация, то достаточно заполнить поля "Регистрационный номер" и "Дата регистрации" и записать документ.

+

Если настройка программы "Использовать электронно цифровые подписи" включена, то в карточке документа добавляются группа команд "ЭЦП" (содержит команду "Подписать", с помощью которой выполняется удостоверение документа электронной подписью) и закладка "ЭЦП", в которой редактируются и проверяются электронно цифровые подписи.
Если документ подписан, то его редактирование невозможно. Для редактирования нужно сначала удалить все подписи. Текущий пользователь может удалять только свои подписи. Право удаления всех подписей принадлежит администратору.
Подпись можно сохранить в файл (например, для пересылки по электронной почте), а также посмотреть сертификат подписи. 

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотВходящийДокумент/Module.bsl b/SSL/src/CommonForms/ДокументооборотВходящийДокумент/Module.bsl new file mode 100644 index 000000000..2787bc3f3 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВходящийДокумент/Module.bsl @@ -0,0 +1,1828 @@ +//////////////////////////////////////////////////////////////////////////////// +// Вспомогательные процедуры + +&НаСервере +Процедура ЗаполнитьРеквизитыФормыИзXDTO(ИмяРеквизитаФормы, ОбъектXDTO, ИмяСвойстваXDTO) + + Если ОбъектXDTO.Установлено(ИмяСвойстваXDTO) Тогда + ЗначениеСвойстваXDTO = ОбъектXDTO[ИмяСвойстваXDTO]; + Если ТипЗнч(ЗначениеСвойстваXDTO) = Тип("ОбъектXDTO") Тогда + ЭтаФорма[ИмяРеквизитаФормы + "Тип"] = ЗначениеСвойстваXDTO.objectId.type; + ЭтаФорма[ИмяРеквизитаФормы + "ID"] = ЗначениеСвойстваXDTO.objectId.id; + ЭтаФорма[ИмяРеквизитаФормы] = ЗначениеСвойстваXDTO.name; + Иначе + ЭтаФорма[ИмяРеквизитаФормы] = ЗначениеСвойстваXDTO; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьXDTOизРеквизитовФормы(Прокси, ОбъектXDTO, ИмяСвойстваXDTO, ИмяРеквизитаФормы) + + ТипСвойства = ОбъектXDTO.Тип().Свойства.Получить(ИмяСвойстваXDTO).Тип; + ТипРодитель = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObject"); + + Если ТипЗнч(ТипСвойства) = Тип("ТипОбъектаXDTO") И ТипРодитель.ЭтоПотомок(ТипСвойства) Тогда + + Реквизит = ЭтаФорма[ИмяРеквизитаФормы]; + РеквизитID = ЭтаФорма[ИмяРеквизитаФормы + "ID"]; + РеквизитТип = ЭтаФорма[ИмяРеквизитаФормы + "Тип"]; + + ЗначениеСвойства = Прокси.ФабрикаXDTO.Создать(ТипСвойства); + + // заполнить из потребителя + Если Метаданные.НайтиПоПолномуИмени(РеквизитТип) <> Неопределено Тогда + + РеквизитТип = СтрЗаменить(РеквизитТип, "ПланВидовХарактеристик.", "ПланыВидовХарактеристик."); + РеквизитТип = СтрЗаменить(РеквизитТип, "БизнесПроцесс.", "БизнесПроцессы."); + РеквизитТип = СтрЗаменить(РеквизитТип, "Справочник.", "Справочники."); + РеквизитТип = СтрЗаменить(РеквизитТип, "Документ.", "Документы."); + РеквизитТип = СтрЗаменить(РеквизитТип, "Задача.", "Задачи."); + + СсылкаНаПотребителя = Неопределено; + Выполнить("СсылкаНаПотребителя = " + РеквизитТип + ".ПолучитьСсылку(Новый УникальныйИдентификатор(РеквизитID))"); + + РаботаС1СДокументооборот.ЗаполнитьРеквизитыИзПотребителя(Прокси, ЗначениеСвойства, СсылкаНаПотребителя); + + ИначеЕсли РеквизитТип = "Строка" Тогда + + ЗначениеСвойства.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, "", ""); + ЗначениеСвойства.name = Реквизит; + + ExternalObject = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "ExternalObject"); + ExternalObject.id = ""; + ExternalObject.type = ""; + ExternalObject.name = ""; + + ЗначениеСвойства.externalObject = ExternalObject; + + ИначеЕсли ЗначениеЗаполнено(Реквизит) Тогда + + ЗначениеСвойства.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, РеквизитID, РеквизитТип); + ЗначениеСвойства.name = Реквизит; + + Иначе + + ЗначениеСвойства.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, "", ""); + ЗначениеСвойства.name = ""; + + КонецЕсли; + + ОбъектXDTO.Установить(ИмяСвойстваXDTO, ЗначениеСвойства); + + Иначе + ОбъектXDTO.Установить(ИмяСвойстваXDTO, ЭтаФорма[ИмяРеквизитаФормы]); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриИзмененииВидаДокумента() + + РаботаС1СДокументооборот.ПриИзмененииВидаНаФормеДокумента(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьДоступностьПоСостоянию(ОбъектXDTO) + + ДосупныеПоля = Новый Массив; + Для Каждого ИмяПоля Из ОбъектXDTO.EnabledProperties Цикл + ДосупныеПоля.Добавить(НРег(ИмяПоля)); + КонецЦикла; + + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти(НРег(СтрокаСоответсвия.Ключ)) <> Неопределено Тогда + Элементы[СтрокаСоответсвия.Значение].ТолькоПросмотр = Ложь; + Иначе + Элементы[СтрокаСоответсвия.Значение].ТолькоПросмотр = Истина; + КонецЕсли; + КонецЦикла; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("addFile") <> Неопределено Тогда + Элементы.ФайлыСоздатьФайл.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюСоздатьФайл.Доступность = Истина; + Элементы.Файлы.ИзменятьСоставСтрок = Истина; + Иначе + Элементы.ФайлыСоздатьФайл.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюСоздатьФайл.Доступность = Ложь; + Элементы.Файлы.ИзменятьСоставСтрок = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("openFile") <> Неопределено Тогда + Элементы.ФайлыОткрытьФайл.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюОткрытьФайл.Доступность = Истина; + Иначе + Элементы.ФайлыОткрытьФайл.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюОткрытьФайл.Доступность = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("saveFile") <> Неопределено Тогда + Элементы.ФайлыСохранитьКак.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюСохранитьКак.Доступность = Истина; + Иначе + Элементы.ФайлыСохранитьКак.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюСохранитьКак.Доступность = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("editFile") <> Неопределено Тогда + Элементы.ФайлыОбновитьИзФайлаНаДиске.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске.Доступность = Истина; + Иначе + Элементы.ФайлыОбновитьИзФайлаНаДиске.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске.Доступность = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("register") <> Неопределено Тогда + Элементы.Зарегистрировать.Доступность = Истина; + Иначе + Элементы.Зарегистрировать.Доступность = Ложь; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьДоступностьПоЭЦП(ОбъектXDTO) + + Если ОбъектXDTO.Signatures.Количество() <> 0 Тогда + МассивИменПолей = ПолучитьИменаКлючевыхПолей(); + + Для Каждого ИмяПоля Из МассивИменПолей Цикл + Элементы[ИмяПоля].ТолькоПросмотр = Истина; + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +// Возвращает массив имен ключевых полей формы +Функция ПолучитьИменаКлючевыхПолей() + + МассивИмен = Новый Массив; + + МассивИмен.Добавить("ЗаголовокДокумента"); + МассивИмен.Добавить("Описание"); + + Возврат МассивИмен; + +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// События формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ID = Параметры.ID; + Тип = Параметры.Тип; + Если НЕ ЗначениеЗаполнено(Тип) Тогда + Тип = "DMIncomingDocument"; + КонецЕсли; + ВнешнийОбъект = Параметры.ВнешнийОбъект; + КаталогДляСохраненияДанных = РаботаС1СДокументооборотВызовСервера.ПолучитьЛокальныйКаталогФайлов(); + + // считать данные документа + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Если ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(Тип) Тогда + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRetrieveRequest"); + + ОбъектИд = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Запрос.objectIds.Добавить(ОбъектИд); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + Заголовок = Объект.name + НСтр("ru = ' (Входящий документ)'"); + Иначе + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetNewObjectRequest"); + Запрос.type = Тип; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат; + Заголовок = НСтр("ru = 'Входящий документ (создание)'"); + КонецЕсли; + + // перенести данные в форму + ПрочитатьОбъектВФорму(Объект); + + // файлы + РаботаС1СДокументооборотВызовСервера.ОбновитьСписокФайлов(Объект.Files, Файлы, Элементы.ГруппаФайлы); + + // ЭЦП + ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот + = РаботаС1СДокументооборотПовтИсп.ПолучитьНастройки().ИспользоватьЭлектронныеЦифровыеПодписи; + + ИспользоватьЭлектронныеЦифровыеПодписиВБСП = РаботаС1СДокументооборотВызовСервера.ПолучитьИспользоватьЭлектронныеЦифровыеПодписи(); + + Если ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот = Ложь Тогда + Элементы.ФайлыПодписанЭЦП.Видимость = Ложь; + Элементы.ГруппаЭЦП.Видимость = Ложь; + + Элементы.ФайлыСохранитьВместеСЭЦП.Видимость = Ложь; + Элементы.ФайлыКонтекстноеМенюСохранитьВместеСЭЦП.Видимость = Ложь; + + Иначе + ЗаполнитьСписокПодписей(Объект.Signatures, Объект.Files); + + Если Объект.Установлено("keyPropertiesValue") Тогда + АдресСлепкаДокумента = ПоместитьВоВременноеХранилище(Объект.keyPropertiesValue, УникальныйИдентификатор); + КонецЕсли; + КонецЕсли; + + Если ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот = Ложь ИЛИ ИспользоватьЭлектронныеЦифровыеПодписиВБСП = Ложь Тогда + Элементы.ФайлыПодписать.Видимость = Ложь; + Элементы.ФайлыКонтекстноеМенюПодписать.Видимость = Ложь; + Элементы.ФайлыДобавитьЭЦПИзФайла.Видимость = Ложь; + Элементы.ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла.Видимость = Ложь; + Элементы.ФормаПодписатьДокумент.Видимость = Ложь; + КонецЕсли; + + // реквизиты из потребителя + Если Не ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(ВнешнийОбъект) Тогда + РаботаС1СДокументооборот.ЗаполнитьФормуИзПотребителя(ВнешнийОбъект, ЭтаФорма); + КонецЕсли; + + Элементы.ФайлыЗаполнитьКопированием.Видимость = Ложь; + Если ЗначениеЗаполнено(ВнешнийОбъект) Тогда + Если ФайловыеФункцииПереопределяемый.ЕстьХранимыеФайлы(ВнешнийОбъект) Тогда + Элементы.ФайлыЗаполнитьКопированием.Видимость = Истина; + Элементы.ФайлыЗаполнитьКопированием.Доступность = (Файлы.Количество() = 0); + КонецЕсли; + КонецЕсли; + + Если Параметры.ТолькоПросмотр Тогда + ЭтаФорма.ТолькоПросмотр = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьОбъектВФорму(Объект) + + // заполнение реквизитов + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + ЗаполнитьРеквизитыФормыИзXDTO(СтрокаСоответсвия.Значение, Объект, СтрокаСоответсвия.Ключ); + КонецЦикла; + Представление = Объект.name; + + НачальныйРегистрационныйНомер = РегистрационныйНомер; + НачальнаяДатаРегистрации = ДатаРегистрации; + + // доступность по состоянию + УстановитьДоступностьПоСостоянию(Объект); + УстановитьДоступностьПоЭЦП(Объект); + + Элементы.Организация.Видимость = (Объект.organizationEnabled = Истина); + Элементы.ВопросДеятельности.Видимость = (Объект.activityMatterEnabled = Истина); + Элементы.ГрифДоступа.Видимость = (Объект.accessLevelEnabled = Истина); + Элементы.Файлы.Видимость = (Объект.filesEnabled = Истина); + Элементы.ВидДокумента.Видимость = (Объект.documentTypeEnabled = Истина); + Элементы.Состояние.Видимость = (Объект.statusEnabled = Истина); + Элементы.Состояние.Доступность = (Объект.statusChangeEnabled = Истина); + ОграничиватьДоступностьПолей = (Объект.limitPropertiesAvailability = Истина); + + // по виду + Элементы.СрокИсполнения.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.performanceDateEnabled = Истина); + Элементы.Сумма.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.sumEnabled = Истина); + Элементы.Валюта.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.sumEnabled = Истина); + + АвтоматическаяНумерация = (Объект.documentType <> Неопределено И Объект.documentType.automaticNumeration = Истина); + Если АвтоматическаяНумерация Тогда + Элементы.РегистрационныйНомер.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.Отображать; + Элементы.ДатаРегистрации.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.Отображать; + Элементы.Зарегистрировать.Доступность = Истина; + Иначе + Элементы.РегистрационныйНомер.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.НеОтображать; + Элементы.ДатаРегистрации.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.НеОтображать; + Элементы.Зарегистрировать.Доступность = Ложь; + КонецЕсли; + + // дополнительные реквизиты + РаботаС1СДокументооборот.ПоместитьДополнительныеРеквизитыНаФорму(ЭтаФорма, Объект); + +КонецПроцедуры + +&НаСервере +Процедура ДобавитьПодписиКОбъекту(Прокси, Объект) + + // тут ЭЦП добавить + МассивПодписей = ПолучитьМассивСуществующихПодписейФайла(ID); + ПодписьТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMSignature"); + Для Каждого ДанныеПодписи Из МассивПодписей Цикл + ПодписьXDTO = Прокси.ФабрикаXDTO.Создать(ПодписьТип); + РаботаС1СДокументооборотВызовСервера.ЗаполнитьXDTOПодпись(Прокси, ПодписьXDTO, ДанныеПодписи); + Объект.Signatures.Добавить(ПодписьXDTO); + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьОбъект() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMIncomingDocument"); + + РаботаС1СДокументооборот.СформироватьДополнительныеСвойства(Прокси, ЭтаФорма, Объект); + + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + ЗаполнитьXDTOизРеквизитовФормы(Прокси, Объект, СтрокаСоответсвия.Ключ, СтрокаСоответсвия.Значение); + КонецЦикла; + + Если ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(Тип) Тогда // обновление + + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Объект.name = Представление; + + ДобавитьПодписиКОбъекту(Прокси, Объект); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMUpdateRequest"); + Запрос.objects.Добавить(Объект); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + + Иначе // создание + + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, "", ""); + Объект.name = Представление; + + Если ЗначениеЗаполнено(ВнешнийОбъект) Тогда + ExternalObject = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "ExternalObject"); + ExternalObject.id = Строка(ВнешнийОбъект.УникальныйИдентификатор()); + ExternalObject.type = Строка(ТипЗнч(ВнешнийОбъект)); + ExternalObject.name = Строка(ВнешнийОбъект); + + Объект.externalObject = ExternalObject; + КонецЕсли; + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMCreateRequest"); + Запрос.object = Объект; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.object; + ID = Объект.objectId.id; + Тип = Объект.objectId.type; + + КонецЕсли; + + // перечитать объект в форму + ПрочитатьОбъектВФорму(Объект); + + Если Объект.Установлено("keyPropertiesValue") Тогда + АдресСлепкаДокумента = ПоместитьВоВременноеХранилище(Объект.keyPropertiesValue, УникальныйИдентификатор); + КонецЕсли; + + Модифицированность = Ложь; + Заголовок = Представление + НСтр("ru = ' (Входящий документ)'"); + +КонецПроцедуры + +&НаКлиенте +Процедура Записать(Команда) + + Если ОграничиватьДоступностьПолей И ЗначениеЗаполнено(РегистрационныйНомер) И Не ЗначениеЗаполнено(НачальныйРегистрационныйНомер) Тогда + ТекстСообщения = НСтр("ru = 'При записи документ будет зарегистрирован и станет недоступным для изменения. + |Продолжить?'"); + + Ответ = Вопрос(ТекстСообщения, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьИЗакрыть(Команда) + + Если ОграничиватьДоступностьПолей И ЗначениеЗаполнено(РегистрационныйНомер) И Не ЗначениеЗаполнено(НачальныйРегистрационныйНомер) Тогда + ТекстСообщения = НСтр("ru = 'При записи документ будет зарегистрирован и станет недоступным для изменения. + |Продолжить?'"); + + Ответ = Вопрос(ТекстСообщения, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если ЗакрытиеСПараметром Тогда + Возврат; + КонецЕсли; + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена,,КодВозвратаДиалога.Да); + Если Ответ = КодВозвратаДиалога.Да Тогда + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + ИначеЕсли Ответ <> КодВозвратаДиалога.Нет Тогда + Отказ = Истина; + Возврат; + КонецЕсли; + КонецЕсли; + + Отказ = Истина; + Результат = Новый Структура; + Результат.Вставить("ID", ID); + Результат.Вставить("Type", Тип); + Результат.Вставить("Name", Представление); + + ЗакрытиеСПараметром = Истина; + Закрыть(Результат); + +КонецПроцедуры + +&НаСервере +Процедура ЗарегистрироватьНаСервере() + + ЗаписатьОбъект(); + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMIncomingDocument"); + + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Объект.name = Представление; + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDocumentRegistrationRequest"); + Запрос.document = Объект; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + ЗаполнитьРеквизитыФормыИзXDTO("ДатаРегистрации", Результат.document, "regDate"); + ЗаполнитьРеквизитыФормыИзXDTO("РегистрационныйНомер", Результат.document, "regNumber"); + ЗаполнитьРеквизитыФормыИзXDTO("Состояние", Результат.document, "status"); + Представление = Результат.document.name; + + // доступность по состоянию + УстановитьДоступностьПоСостоянию(Результат.document); + УстановитьДоступностьПоЭЦП(Результат.document); + + НачальныйРегистрационныйНомер = РегистрационныйНомер; + НачальнаяДатаРегистрации = ДатаРегистрации; + +КонецПроцедуры + +&НаКлиенте +Процедура Зарегистрировать(Команда) + + Если ОграничиватьДоступностьПолей Тогда + ТекстСообщения = НСтр("ru = 'После регистрации документ станет недоступным для изменения. + |Продолжить?'"); + + Ответ = Вопрос(ТекстСообщения, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + ЗарегистрироватьНаСервере(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + +КонецПроцедуры + + +//////////////////////////////////////////////////////////////////////////////// +// Выбор ссылочных реквизитов + + +&НаКлиенте +Процедура ОтправительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMCorrespondent", "Отправитель", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ОтправительОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCorrespondent", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Отправитель", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтправительАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCorrespondent", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтправительОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Отправитель", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ПодписалНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ОтправительID) И ЗначениеЗаполнено(ОтправительТип) Тогда + + Correspondent = Новый Структура; + Correspondent.Вставить("ID", ОтправительID); + Correspondent.Вставить("Type", ОтправительТип); + + Отбор = Новый Структура; + Отбор.Вставить("сorrespondent", Correspondent); + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMContactPerson", "Подписал", ЭтаФорма, Отбор); + + Иначе + ТекстСообщения = НСтр("ru = 'Не указано поле ""Отправитель""'"); + Предупреждение(ТекстСообщения); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписалОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMContactPerson", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подписал", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписалАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMContactPerson", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписалОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подписал", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура АдресатНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Адресат", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура АдресатОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Адресат", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АдресатАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АдресатОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Адресат", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ПодразделениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMSubdivision", "Подразделение", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодразделениеОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMSubdivision", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подразделение", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодразделениеАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMSubdivision", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодразделениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подразделение", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ГрифДоступаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMAccessLevel", "ГрифДоступа", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ГрифДоступаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMAccessLevel", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ГрифДоступа", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГрифДоступаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMAccessLevel", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГрифДоступаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ГрифДоступа", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ВидДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + Если РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMIncomingDocumentType", "ВидДокумента", ЭтаФорма) Тогда + ПриИзмененииВидаДокумента(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидДокументаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMIncomingDocumentType", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВидДокумента", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + + ПриИзмененииВидаДокумента(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидДокументаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMIncomingDocumentType", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидДокументаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВидДокумента", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + + ПриИзмененииВидаДокумента(); + +КонецПроцедуры + + + +&НаКлиенте +Процедура СпособПолученияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMDeliveryMethod", "СпособПолучения", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СпособПолученияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMDeliveryMethod", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("СпособПолучения", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СпособПолученияАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMDeliveryMethod", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СпособПолученияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("СпособПолучения", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура СостояниеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMDocumentStatus", "Состояние", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СостояниеОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMDocumentStatus", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Состояние", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СостояниеАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMDocumentStatus", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СостояниеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Состояние", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ВалютаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMCurrency", "Валюта", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ВалютаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCurrency", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Валюта", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВалютаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCurrency", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВалютаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Валюта", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ОрганизацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMOrganization", "Организация", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ОрганизацияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMOrganization", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Организация", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОрганизацияАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMOrganization", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОрганизацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Организация", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ВопросДеятельностиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMActivityMatter", "ВопросДеятельности", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ВопросДеятельностиОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMActivityMatter", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВопросДеятельности", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВопросДеятельностиАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMActivityMatter", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВопросДеятельностиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВопросДеятельности", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ОтветственныйНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Ответственный", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Ответственный", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Ответственный", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + +&НаКлиенте +Процедура СвойстваЗначениеПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеДополнительногоРеквизита(ЭтаФорма, Элемент, СтандартнаяОбработка); + +КонецПроцедуры + + +//////////////////////////////////////////////////////////////////////////////// +// Команды работы с файлами + +&НаКлиенте +Процедура ОткрытьФайл(Команда) + ОткрытьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + ОткрытьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьФайлВыполнить() + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Расширение = ТекущиеДанные.Расширение; + Имя = ТекущиеДанные.Наименование; + Размер = ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.ОткрытьФайл(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, + КаталогДляСохраненияДанных, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПередНачаломИзменения(Элемент, Отказ) + Отказ = Истина; + ОткрытьКарточкуВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьКарточкуВыполнить() + + Если Элементы.Файлы.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура("УникальныйИдентификатор", Элементы.Файлы.ТекущиеДанные.УникальныйИдентификатор); + ОткрытьФорму("ОбщаяФорма.ДокументооборотКарточкаФайла", ПараметрыФормы); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьФайл(Команда) + СоздатьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + Отказ = Истина; + СоздатьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьФайлВыполнить() + + Если ПустаяСтрока(ID) Тогда + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + КонецЕсли; + + СоздатьИзФайлаНаДиске(); +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьИзФайлаНаДиске() + + РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); + ИдентификаторСозданногоФайла = Неопределено; + + Если РасширениеПодключено Тогда + + ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); + ВыборФайла.МножественныйВыбор = Ложь; + ВыборФайла.Заголовок = НСтр("ru = 'Выбор файла'"); + ВыборФайла.Фильтр = НСтр("ru = 'Все файлы (*.*)|*.*'"); + + Результат = ВыборФайла.Выбрать(); + ПолноеИмяФайла = ВыборФайла.ПолноеИмяФайла; + + Если НЕ Результат Тогда + Возврат; + КонецЕсли; + + ИдентификаторСозданногоФайла = РаботаС1СДокументооборотКлиент.СоздатьИзФайлаНаДискеКлиент(ПолноеИмяФайла, УникальныйИдентификатор, ID, Тип, Представление); + + Иначе + // Если веб-клиент без расширения + + ПараметрыСоздания = Новый Структура("Имя, Расширение, Размер, ВремяИзменения, ВремяИзмененияУниверсальное, АдресВременногоХранилищаФайла, Текст, ВебКлиент"); + + ВремяИзменения = ТекущаяДата(); // Т.к. не можем получить дату модификации файла на диске + ВремяИзмененияУниверсальное = УниверсальноеВремя(ТекущаяДата()); + Размер = 0; // Т.к. не можем получить размер файла на диске + ИмяБезРасширения = ""; + Расширение = ""; + АдресВременногоХранилищаТекста = ""; + + // Поместим Файл в ВременноеХранилище + АдресВременногоХранилищаФайла = ""; + ИмяФайла = ""; + Если НЕ ПоместитьФайл(АдресВременногоХранилищаФайла, ИмяФайла, ИмяФайла, Истина, УникальныйИдентификатор) Тогда + Возврат; + КонецЕсли; + + СтрокиПути = ФайловыеФункцииКлиентСервер.РазложитьСтрокуПоТочкамИСлэшам(ИмяФайла); + Если СтрокиПути.Количество() >= 2 Тогда + Расширение = СтрокиПути[СтрокиПути.Количество()-1]; + ИмяБезРасширения = СтрокиПути[СтрокиПути.Количество()-2]; + Иначе + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка при помещении файла в хранилище: %1'"),ИмяФайла); + КонецЕсли; + + ПараметрыСоздания.АдресВременногоХранилищаФайла = АдресВременногоХранилищаФайла; + ПараметрыСоздания.Расширение = Расширение; + ПараметрыСоздания.ВремяИзменения = ВремяИзменения; + ПараметрыСоздания.ВремяИзмененияУниверсальное = ВремяИзмененияУниверсальное; + ПараметрыСоздания.Имя = ИмяБезРасширения; + ПараметрыСоздания.Размер = Размер; + ПараметрыСоздания.Текст = ""; + ПараметрыСоздания.ВебКлиент = Истина; + + ТекстПояснения = + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Идет сохранение файла ""%1"". + |Пожалуйста, подождите...'"), + ИмяФайла); + + Состояние(ТекстПояснения); + + ИдентификаторСозданногоФайла = РаботаС1СДокументооборотВызовСервера.СоздатьИзФайлаНаДискеСервер(ПараметрыСоздания, ID, Тип, Представление); + Состояние(); + + КонецЕсли; + + + Если ИдентификаторСозданногоФайла <> Неопределено Тогда + // обновить список + ОбновитьСписокФайловКлиент(ИдентификаторСозданногоФайла); + КонецЕсли; + + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьСписокПодписей(Подписи, ФайлыXDTO) + + РаботаС1СДокументооборотВызовСервера.ЗаполнитьСписокПодписейСервер(Подписи, ФайлыXDTO, Представление, ID, Тип, ТаблицаПодписей, + УникальныйИдентификатор, Элементы.ГруппаЭЦП, Файлы); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСписокФайловКлиент(ИдентификаторФайла = Неопределено) + + Если ИдентификаторФайла <> Неопределено Тогда + ТекущийИдентификаторФайла = ИдентификаторФайла; + ИначеЕсли Элементы.Файлы.ТекущиеДанные <> Неопределено Тогда + ТекущийИдентификаторФайла = Элементы.Файлы.ТекущиеДанные.УникальныйИдентификатор; + КонецЕсли; + + ПрочитатьИОбновитьСписокФайлов(); + Элементы.Файлы.Обновить(); + + // восстановим положение в списке + Для Каждого Строка Из Файлы Цикл + Если Строка.УникальныйИдентификатор = ТекущийИдентификаторФайла Тогда + Элементы.Файлы.ТекущаяСтрока = Строка.ПолучитьИдентификатор(); + Прервать; + КонецЕсли; + КонецЦикла; + + Элементы.ФайлыЗаполнитьКопированием.Доступность = (Файлы.Количество() = 0); + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьИОбновитьСписокФайлов() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + ОбъектИд = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRetrieveRequest"); + Запрос.objectIds.Добавить(ОбъектИд); + Запрос.columnSet.Добавить("files"); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + РаботаС1СДокументооборотВызовСервера.ОбновитьСписокФайлов(Объект.files, Файлы, Элементы.ГруппаФайлы); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "ФайлДокументооборотИзменен" Тогда + ОбновитьСписокФайловКлиент(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПередУдалением(Элемент, Отказ) + + Отказ = Истина; + + Если Элементы.Файлы.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + СтрокаВопроса = ""; + + Если Элементы.Файлы.ВыделенныеСтроки.Количество() = 1 Тогда + СтрокаВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Пометить ""%1"" на удаление?'"), Элементы.Файлы.ТекущиеДанные.Наименование); + Иначе + СтрокаВопроса = НСтр("ru='Пометить выделенные элементы на удаление?'"); + КонецЕсли; + + Если Вопрос(СтрокаВопроса, РежимДиалогаВопрос.ДаНет) <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + ПометитьНаУдаление(Элементы.Файлы.ВыделенныеСтроки); + // обновить список + ОбновитьСписокФайловКлиент(); + +КонецПроцедуры + +&НаСервере +Процедура ПометитьНаУдаление(Знач ВыделенныеСтроки) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDeleteRequest"); + + Для Каждого НомерСтроки Из ВыделенныеСтроки Цикл + + Данные = Файлы.НайтиПоИдентификатору(НомерСтроки); + Объект = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, Данные.УникальныйИдентификатор, "DMFile"); + Запрос.objectIds.Добавить(Объект); + + КонецЦикла; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьКак(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Расширение = ТекущиеДанные.Расширение; + Имя = ТекущиеДанные.Наименование; + Размер = ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.СохранитьКак(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьИзФайлаНаДиске(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Если РаботаС1СДокументооборотКлиент.ОбновитьИзФайлаНаДиске(ИдентификаторФайла, УникальныйИдентификатор) Тогда + ОбновитьСписокФайловКлиент(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + СтандартнаяОбработка = Ложь; +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + СтандартнаяОбработка = Ложь; + + МассивИменФайлов = Новый Массив; + + Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Файл") И ПараметрыПеретаскивания.Значение.ЭтоФайл() = Истина Тогда + МассивИменФайлов.Добавить(ПараметрыПеретаскивания.Значение.ПолноеИмя); + ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Массив") Тогда + + Если ПараметрыПеретаскивания.Значение.Количество() >= 1 И ТипЗнч(ПараметрыПеретаскивания.Значение[0]) = Тип("Файл") Тогда + Для Каждого ФайлПринятый Из ПараметрыПеретаскивания.Значение Цикл + Если ФайлПринятый.ЭтоФайл() Тогда + МассивИменФайлов.Добавить(ФайлПринятый.ПолноеИмя); + КонецЕсли; + КонецЦикла; + КонецЕсли; + + КонецЕсли; + + ИдентификаторСозданногоФайла = Неопределено; + Для Каждого ИмяФайла Из МассивИменФайлов Цикл + ИдентификаторСозданногоФайла = РаботаС1СДокументооборотКлиент.СоздатьИзФайлаНаДискеКлиент(ИмяФайла, УникальныйИдентификатор, ID, Тип, Представление); + КонецЦикла; + + // обновить список + ОбновитьСписокФайловКлиент(ИдентификаторСозданногоФайла); + +КонецПроцедуры + + +// ЭЦП + +&НаКлиенте +Процедура УстановитьДоступностьКомандСпискаЭЦП() + + ЭтоПодпись = Истина; + ЕстьПодписи = (ТаблицаПодписей.ПолучитьЭлементы().Количество() <> 0); + + ТекущиеДанные = Элементы.ТаблицаПодписей.ТекущиеДанные; + Если ТекущиеДанные <> Неопределено Тогда + ЭтоПодпись = НЕ ПустаяСтрока(ТекущиеДанные.Объект); + КонецЕсли; + + Элементы.ТаблицаПодписейПроверить.Доступность = ЕстьПодписи И ЭтоПодпись; + Элементы.ТаблицаПодписейПроверитьВсе.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейОткрытьПодпись.Доступность = ЕстьПодписи И ЭтоПодпись; + Элементы.ТаблицаПодписейУдалить.Доступность = ЕстьПодписи И ЭтоПодпись; + Элементы.ТаблицаПодписейСохранить.Доступность = ЕстьПодписи И ЭтоПодпись; + + Элементы.ТаблицаПодписейПроверить.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейПроверитьВсе.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейОткрытьПодпись.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейУдалить.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейСохранить.Доступность = ЕстьПодписи; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + УстановитьДоступностьКомандСпискаЭЦП(); +КонецПроцедуры + +&НаСервере +// вернет массив подписей файла +Функция ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла) + Возврат РаботаС1СДокументооборотВызовСервера.ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла, ТаблицаПодписей); +КонецФункции + +&НаКлиенте +Процедура Подписать(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + ИмяФайла = ТекущиеДанные.Наименование; + Описание = ТекущиеДанные.Описание; + Редактируется = ТекущиеДанные.Редактируется; + Зашифрован = ТекущиеДанные.Зашифрован; + + МассивСуществующихПодписейФайла = ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла); + + РаботаС1СДокументооборотКлиент.ПодписатьФайл(ИдентификаторФайла, ИмяФайла, Редактируется, Зашифрован, Описание, + МассивСуществующихПодписейФайла); + + ПрочитатьИОбновитьСписокПодписей(); + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьЭЦПИзФайла(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + ИмяФайла = ТекущиеДанные.Наименование; + Описание = ТекущиеДанные.Описание; + Редактируется = ТекущиеДанные.Редактируется; + Зашифрован = ТекущиеДанные.Зашифрован; + + МассивСуществующихПодписейФайла = ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла); + + РаботаС1СДокументооборотКлиент.ДобавитьЭЦПИзФайла(ИдентификаторФайла, ИмяФайла, УникальныйИдентификатор, + Описание, МассивСуществующихПодписейФайла); + + ПрочитатьИОбновитьСписокПодписей(); + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьВместеСЭЦП(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Расширение = ТекущиеДанные.Расширение; + Имя = ТекущиеДанные.Наименование; + Размер = ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.СохранитьВместеСЭЦП(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьПодпись(Команда) + ЭлектроннаяЦифроваяПодписьКлиент.ОткрытьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные); +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаПодписейВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + ЭлектроннаяЦифроваяПодписьКлиент.ОткрытьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные); +КонецПроцедуры + +&НаКлиенте +Процедура Сохранить(Команда) + + Если Элементы.ТаблицаПодписей.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если НЕ ПустаяСтрока(Элементы.ТаблицаПодписей.ТекущиеДанные.Объект) Тогда + ЭлектроннаяЦифроваяПодписьКлиент.СохранитьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные.АдресПодписи); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Проверить(Команда) + + ВыполнятьПроверкуЭЦПНаСервере = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ВыполнятьПроверкуЭЦПНаСервере; + + Если ВыполнятьПроверкуЭЦПНаСервере Тогда + ПроверитьНаСервере(); + Иначе + МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии(); + РаботаС1СДокументооборотКлиент.ПроверитьПодписи(Элементы.ТаблицаПодписей.ВыделенныеСтроки, + ТаблицаПодписей, УникальныйИдентификатор, АдресСлепкаДокумента); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПроверитьНаСервере() + РаботаС1СДокументооборотВызовСервера.ПроверитьПодписиНаСервере(Элементы.ТаблицаПодписей.ВыделенныеСтроки, + ТаблицаПодписей, УникальныйИдентификатор, АдресСлепкаДокумента); +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьВсе(Команда) + + ВыполнятьПроверкуЭЦПНаСервере = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ВыполнятьПроверкуЭЦПНаСервере; + + Если ВыполнятьПроверкуЭЦПНаСервере Тогда + + ПроверитьВсеНаСервере(); + + Иначе + + МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии(); + Подписи = РаботаС1СДокументооборотКлиент.ПолучитьМассивДанныхПодписей(ТаблицаПодписей); + РаботаС1СДокументооборотКлиент.ПроверитьПодписи(Подписи, ТаблицаПодписей, УникальныйИдентификатор, + АдресСлепкаДокумента); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПроверитьВсеНаСервере() + РаботаС1СДокументооборотВызовСервера.ПроверитьВсеПодписиНаСервере(ТаблицаПодписей, УникальныйИдентификатор, + АдресСлепкаДокумента); +КонецПроцедуры + +&НаКлиенте +Процедура Удалить(Команда) + + Если Вопрос(НСтр("ru = 'Удалить выделенные подписи?'"), РежимДиалогаВопрос.ДаНет) <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + УдалитьПодписиИОбновитьСписок(); + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + +&НаСервере +Процедура УдалитьПодписиИОбновитьСписок() + + //получаем массив для удаления + ТаблицаУдаленныеСтроки = РаботаС1СДокументооборотВызовСервера.ПолучитьВыделенныеПодписи( + Элементы.ТаблицаПодписей.ВыделенныеСтроки, ТаблицаПодписей); + + Если ТаблицаУдаленныеСтроки.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Соответствие = РаботаС1СДокументооборотВызовСервера.УдалитьПодписиДокумента(ТаблицаУдаленныеСтроки, ТаблицаПодписей, ЭтаФорма, + ID, Тип, Файлы, Представление); + + МассивXDTOОбъектов = Новый Массив; + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Для Каждого ПараКлючЗначение Из Соответствие Цикл + + ИдОбъекта = ПараКлючЗначение.Ключ; + ДанныеВладельца = ПараКлючЗначение.Значение; + ТипОбъекта = ДанныеВладельца.Тип; + + Если ТипОбъекта <> "DMFile" Тогда // документ + + Объект = СоздатьXDTOДокумент(Прокси, ДанныеВладельца.МассивПодписей); + МассивXDTOОбъектов.Добавить(Объект); + + Иначе // файл + + Для Каждого Файл Из Файлы Цикл + + Если Файл.УникальныйИдентификатор = ИдОбъекта Тогда + Объект = РаботаС1СДокументооборотВызовСервера.СоздатьXDTOФайл(Прокси, ДанныеВладельца.МассивПодписей, Файл); + МассивXDTOОбъектов.Добавить(Объект); + Прервать; + КонецЕсли; + + КонецЦикла; + + + КонецЕсли; + + КонецЦикла; + + РаботаС1СДокументооборот.ЗаписатьОбъекты(Прокси, МассивXDTOОбъектов); + + ПрочитатьИОбновитьСписокПодписей(); + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьИОбновитьСписокПодписей() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + ОбъектИд = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRetrieveRequest"); + Запрос.objectIds.Добавить(ОбъектИд); + Запрос.columnSet.Добавить("signatures"); + Запрос.columnSet.Добавить("files"); // также и файлы обновляем - чтобы иконку Подписан расставить + Запрос.columnSet.Добавить("enabledProperties"); + Запрос.columnSet.Добавить("keyPropertiesValue"); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + + ЗаполнитьСписокПодписей(Объект.signatures, Объект.files); + РаботаС1СДокументооборотВызовСервера.ОбновитьСписокФайлов(Объект.files, Файлы, Элементы.ГруппаФайлы); + + УстановитьДоступностьПоСостоянию(Объект);// доступность по состоянию + УстановитьДоступностьПоЭЦП(Объект); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписатьДокумент(Команда) + + Если ПустаяСтрока(ID) Тогда + + ТекстВопроса = НСтр("ru = 'Данные еще не записаны. + |Выполнение действия ""Подписать"" возможно только после записи данных. + |Данные будут записаны.'"); + Результат = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ОКОтмена); + + Если Результат <> КодВозвратаДиалога.ОК Тогда + Возврат; + КонецЕсли; + + ЗаписатьОбъект(); + + КонецЕсли; + + МассивДанныхДляЗанесенияВРегистр = Новый Массив; + МассивАдресов = Новый Массив; + + // УстановкаПодписиЭЦП + + Если РаботаС1СДокументооборотКлиент.СформироватьПодписьОбъекта(ID, Представление, Тип, УникальныйИдентификатор, + МассивДанныхДляЗанесенияВРегистр, МассивАдресов, Файлы, АдресСлепкаДокумента) Тогда + + ПодписатьЭЦПСервер(МассивДанныхДляЗанесенияВРегистр, МассивАдресов); + + РаботаС1СДокументооборотКлиент.ИнформироватьОПодписании(Представление); + УстановитьДоступностьКомандСпискаЭЦП(); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция СоздатьXDTOДокумент(Прокси, МассивПодписей) + + Объект = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMIncomingDocument"); + + РаботаС1СДокументооборот.СформироватьДополнительныеСвойства(Прокси, ЭтаФорма, Объект); + + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + ЗаполнитьXDTOизРеквизитовФормы(Прокси, Объект, СтрокаСоответсвия.Ключ, СтрокаСоответсвия.Значение); + КонецЦикла; + + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Объект.name = Представление; + + // тут ЭЦП добавить + ПодписьТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMSignature"); + + Для Каждого ДанныеПодписи Из МассивПодписей Цикл + + ПодписьXDTO = Прокси.ФабрикаXDTO.Создать(ПодписьТип); + РаботаС1СДокументооборотВызовСервера.ЗаполнитьXDTOПодпись(Прокси, ПодписьXDTO, ДанныеПодписи); + Объект.Signatures.Добавить(ПодписьXDTO); + + КонецЦикла; + + Возврат Объект; + +КонецФункции + +&НаСервере +Процедура ПодписатьЭЦПСервер(ДобавленныеПодписи, МассивАдресов) + + Соответствие = РаботаС1СДокументооборотВызовСервера.ПодписатьДокумент( + ДобавленныеПодписи, ТаблицаПодписей, ЭтаФорма, + ID, Тип, Файлы, Представление); + + МассивXDTOОбъектов = Новый Массив; + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Для Каждого ПараКлючЗначение Из Соответствие Цикл + + ИдОбъекта = ПараКлючЗначение.Ключ; + ДанныеВладельца = ПараКлючЗначение.Значение; + ТипОбъекта = ДанныеВладельца.Тип; + + Если ТипОбъекта <> "DMFile" Тогда // документ + + Объект = СоздатьXDTOДокумент(Прокси, ДанныеВладельца.МассивПодписей); + МассивXDTOОбъектов.Добавить(Объект); + + Иначе // файл + + Для Каждого Файл Из Файлы Цикл + + Если Файл.УникальныйИдентификатор = ИдОбъекта Тогда + Объект = РаботаС1СДокументооборотВызовСервера.СоздатьXDTOФайл(Прокси, ДанныеВладельца.МассивПодписей, Файл); + МассивXDTOОбъектов.Добавить(Объект); + Прервать; + КонецЕсли; + + КонецЦикла; + + + КонецЕсли; + + КонецЦикла; + + РаботаС1СДокументооборот.ЗаписатьОбъекты(Прокси, МассивXDTOОбъектов); + + ПрочитатьИОбновитьСписокПодписей(); + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПриАктивизацииСтроки(Элемент) + ОбновитьДоступностьКомандСпискаФайлов(); +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьДоступностьКомандСпискаФайлов() + УстановитьДоступностьКомманд(Элементы.Файлы.ТекущиеДанные); +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомманды(Команда, Доступность) + Команда.Доступность = Доступность; +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомманд(ТекущиеДанные) + + Если ТекущиеДанные = Неопределено Тогда + + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОткрытьФайл, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьКак, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюПодписать, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьВместеСЭЦП, Ложь); + + УстановитьДоступностьКомманды(Элементы.ФайлыОткрытьФайл, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьКак, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыОбновитьИзФайлаНаДиске, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыПодписать, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыДобавитьЭЦПИзФайла, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьВместеСЭЦП, Ложь); + + Иначе + + Редактируется = ТекущиеДанные.Редактируется; + ПодписанЭЦП = ТекущиеДанные.ПодписанЭЦП; + Зашифрован = ТекущиеДанные.Зашифрован; + + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОткрытьФайл, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьКак, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюПодписать, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьВместеСЭЦП, ПодписанЭЦП); + + УстановитьДоступностьКомманды(Элементы.ФайлыОткрытьФайл, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьКак, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыОбновитьИзФайлаНаДиске, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыПодписать, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыДобавитьЭЦПИзФайла, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьВместеСЭЦП, ПодписанЭЦП); + + КонецЕсли; + +КонецПроцедуры + +// Бизнес-процессы + +&НаКлиенте +Процедура СоздатьБизнесПроцесс(Команда) + + Если ЗначениеЗаполнено(ID) Тогда + РаботаС1СДокументооборотКлиент.СоздатьБизнесПроцессПоДокументуИзДО(ID, Тип); + Иначе + ТекстВопроса = НСтр("ru = 'Данные еще не записаны." + Символы.ВК + "Создание бизнес-процесса возможно только после записи данных." + Символы.ВК + "Данные будут записаны.'"); + Режим = РежимДиалогаВопрос.ОКОтмена; + Ответ = Вопрос(ТекстВопроса, Режим, 0); + Если Ответ = КодВозвратаДиалога.ОК Тогда + Записать(Неопределено); + РаботаС1СДокументооборотКлиент.СоздатьБизнесПроцессПоДокументуИзДО(ID, Тип); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьКопированием(Команда) + + Ответ = Вопрос(НСтр("ru = 'Заполнить файлы копированием из присоединенных файлов?'"), РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + Если ПустаяСтрока(ID) Тогда + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + КонецЕсли; + + Состояние(НСтр("ru = 'Идет заполнение файлов копированием из присоединенных файлов ....'")); + + ЗаполнитьКопированиемСервер(); + + Состояние(); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКопированиемСервер() + + РаботаС1СДокументооборотВызовСервера.ЗаполнитьКопированием(ВнешнийОбъект, ID, Тип, Представление, УникальныйИдентификатор); + ПрочитатьИОбновитьСписокФайлов(); + Элементы.ФайлыЗаполнитьКопированием.Доступность = (Файлы.Количество() = 0); + +КонецПроцедуры + + + diff --git a/SSL/src/CommonForms/ДокументооборотВходящийДокумент/ДокументооборотВходящийДокумент.mdo b/SSL/src/CommonForms/ДокументооборотВходящийДокумент/ДокументооборотВходящийДокумент.mdo new file mode 100644 index 000000000..76e0371d2 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВходящийДокумент/ДокументооборотВходящийДокумент.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотВходящийДокумент + + ru + Входящий документ + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотВыборИзСписка/Form.form b/SSL/src/CommonForms/ДокументооборотВыборИзСписка/Form.form new file mode 100644 index 000000000..fbef8a1bc --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборИзСписка/Form.form @@ -0,0 +1,650 @@ + + + + <key>ru</key> + <value>Выберите значение</value> + + + Дерево + 1 + true + true + + true + + + Дерево + + None + Change + + СписокНаименование + 6 + true + true + + true + + + Дерево.Наименование + + + СписокНаименованиеРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + + СписокНаименованиеКонтекстноеМеню + 7 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + None + + ДеревоКоманднаяПанель + 3 + Left + true + + + ValueChoice + ДеревоВыборЗначения + + + BeforeExpand + ДеревоПередРазворачиванием + + + ДеревоСтрокаПоиска + 19 + + ДеревоСтрокаПоискаРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + ДеревоСтрокаПоискаКонтекстноеМеню + 20 + true + + Дерево + + true + + + + ДеревоСостояниеПросмотра + 22 + + ДеревоСостояниеПросмотраРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ДеревоСостояниеПросмотраКонтекстноеМеню + 23 + true + + ViewStatusAddition + Дерево + + true + + + + ДеревоУправлениеПоиском + 25 + + ДеревоУправлениеПоискомРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + + ДеревоУправлениеПоискомКонтекстноеМеню + 26 + true + + SearchControlAddition + Дерево + + true + + + + ДеревоРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + ДеревоКонтекстноеМеню + 2 + + ДеревоКонтекстноеМенюНайти + 10 + true + true + + true + + + ДеревоКонтекстноеМенюНайтиРасширеннаяПодсказка + 16 + Label + true + true + + Left + + + Form.Command.Найти + Normal + Auto + true + true + UserCmds + Auto + + + ДеревоКонтекстноеМенюОтменитьПоиск + 12 + true + true + + true + + + ДеревоКонтекстноеМенюОтменитьПоискРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + Form.Command.ОтменитьПоиск + Normal + Auto + true + true + UserCmds + Auto + + true + + Tree + true + 50 + true + 20 + true + true + true + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + + Дерево.Картинка + + + CommonPicture.ПиктограммыЭлементов + + None + None + None + true + + + ФормаКоманднаяПанель + -1 + + ФормаВыбрать + 8 + true + true + + true + + + ФормаВыбратьРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + Form.Command.Выбрать + Auto + true + true + true + UserCmds + Auto + + + ФормаНайти + 9 + true + true + + true + + + ФормаНайтиРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + Form.Command.Найти + Normal + Auto + true + true + UserCmds + Auto + + + ФормаОтменитьПоиск + 11 + true + true + + true + + + ФормаОтменитьПоискРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + Form.Command.ОтменитьПоиск + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + Vertical + true + true + UseIfNecessary + auto + true + + Дерево + + <key>ru</key> + <value>Дерево</value> + + 1 + + ValueTree + + + true + + + true + + + Код + + <key>ru</key> + <value>Код</value> + + 1 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 2 + + String + + + + true + + + true + + + + ID + + <key>ru</key> + <value>ID</value> + + 5 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 4 + + String + + + + true + + + true + + + + Картинка + + <key>ru</key> + <value>Картинка</value> + + 6 + + Number + + 10 + + + + true + + + true + + + + ПодпапкиСчитаны + + <key>ru</key> + <value>Подпапки считаны</value> + + 7 + + Boolean + + + true + + + true + + + + ЭтоГруппа + + <key>ru</key> + <value>Это группа</value> + + 3 + + Boolean + + + true + + + true + + + + + ТипОбъектаВыбора + + <key>ru</key> + <value>Тип объекта выбора</value> + + 2 + + String + + + + true + + + true + + + + Отбор + + <key>ru</key> + <value>Отбор</value> + + 3 + + + true + + + true + + + + ВыборГрупп + + <key>ru</key> + <value>Выбор групп</value> + + 4 + + Boolean + + + true + + + true + + + + Выбрать + + <key>ru</key> + <value>Выбрать</value> + + 1 + + ru + Выбрать + + + true + + + StdPicture.ChooseValue + + + + Выбрать + + + TextPicture + Auto + Auto + + + Найти + + <key>ru</key> + <value>Найти</value> + + 2 + + ru + Найти + + + true + + Ctrl+F + + StdPicture.Find + + + + НайтиВыполнить + + + TextPicture + Auto + Auto + + + ОтменитьПоиск + + <key>ru</key> + <value>Отменить поиск</value> + + 3 + + ru + Отменить поиск + + + true + + Ctrl+Q + + StdPicture.CancelSearch + + + + ОтменитьПоиск + + + Auto + Auto + + + ТипОбъектаВыбора + + String + + + + + Отбор + + + + СписокЗначенийДляВыбора + + ValueList + + + + Заголовок + + String + + + + + ВыборГрупп + + Boolean + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотВыборИзСписка/Module.bsl b/SSL/src/CommonForms/ДокументооборотВыборИзСписка/Module.bsl new file mode 100644 index 000000000..ee48688b3 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборИзСписка/Module.bsl @@ -0,0 +1,214 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.СписокЗначенийДляВыбора <> Неопределено + И Параметры.СписокЗначенийДляВыбора.Количество() > 0 Тогда + + ЭлементыДерева = Дерево.ПолучитьЭлементы(); + Для Каждого Элемент Из Параметры.СписокЗначенийДляВыбора Цикл + НоваяСтрока = ЭлементыДерева.Добавить(); + НоваяСтрока.Наименование = Элемент.Значение.Name; + НоваяСтрока.ID = Элемент.Значение.ID; + НоваяСтрока.Тип = Элемент.Значение.Type; + НоваяСтрока.Картинка = 2; + КонецЦикла; + + Элементы.ФормаНайти.Видимость = Ложь; + Элементы.ФормаОтменитьПоиск.Видимость = Ложь; + Элементы.ДеревоКонтекстноеМенюНайти.Видимость = Ложь; + Элементы.ДеревоКонтекстноеМенюОтменитьПоиск.Видимость = Ложь; + + Иначе + ТипОбъектаВыбора = Параметры.ТипОбъектаВыбора; + Отбор = Параметры.Отбор; + + ЗаполнитьДеревоПапок(Дерево.ПолучитьЭлементы(), ""); // корневые папки + + // найти эл по умолч + КонецЕсли; + + Если ЗначениеЗаполнено(Параметры.Заголовок) Тогда + ЭтаФорма.Заголовок = Параметры.Заголовок; + КонецЕсли; + + ВыборГрупп = Параметры.ВыборГрупп; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьДеревоПапок(ВеткаДерева, ИдентификаторПапки = Неопределено, СтрокаПоиска = Неопределено) + + ВеткаДерева.Очистить(); + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + СписокУсловий = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListQuery"); + Если ИдентификаторПапки <> Неопределено Тогда + РодительИд = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ИдентификаторПапки, ТипОбъектаВыбора); + + Условие = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListCondition"); + Условие.property = "Parent"; + Условие.value = РодительИд; + + СписокУсловий.conditions.Добавить(Условие); + КонецЕсли; + + Если СтрокаПоиска <> Неопределено Тогда + Условие = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListCondition"); + Условие.property = "Name"; + Условие.value = СтрокаПоиска; + + СписокУсловий.conditions.Добавить(Условие); + КонецЕсли; + + Если ТипЗнч(Отбор) = Тип("Структура") Тогда + Для Каждого СтрокаОтбора Из Отбор Цикл + Условие = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListCondition"); + Условие.property = СтрокаОтбора.Ключ; + + Если ТипЗнч(СтрокаОтбора.Значение) = Тип("Структура") Тогда + Условие.value = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, СтрокаОтбора.Значение.id, СтрокаОтбора.Значение.type); + Иначе + Условие.value = СтрокаОтбора.Значение; + КонецЕсли; + + СписокУсловий.conditions.Добавить(Условие); + КонецЦикла; + КонецЕсли; + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetObjectListRequest"); + Запрос.type = ТипОбъектаВыбора; + Запрос.query = СписокУсловий; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Для Каждого Элемент Из Результат.items Цикл + + НоваяСтрока = ВеткаДерева.Добавить(); + НоваяСтрока.Наименование = Элемент.object.name; + НоваяСтрока.ID = Элемент.object.objectId.id; + НоваяСтрока.Тип = Элемент.object.objectId.type; + НоваяСтрока.ЭтоГруппа = Элемент.isFolder; + + Если ТипОбъектаВыбора = "DMFileFolder" ИЛИ ТипОбъектаВыбора = "DMInternalDocumentFolder" Тогда + НоваяСтрока.Картинка = 0; + Иначе + Если Элемент.isFolder Тогда + НоваяСтрока.Картинка = 0; + Иначе + НоваяСтрока.Картинка = 2; + КонецЕсли; + КонецЕсли; + + Если Элемент.canHaveChildren И (СтрокаПоиска = Неопределено) Тогда + НоваяСтрока.ПодпапкиСчитаны = Ложь; + ФиктивныйЛист = НоваяСтрока.ПолучитьЭлементы().Добавить(); // чтобы появился плюсик + Иначе + НоваяСтрока.ПодпапкиСчитаны = Истина; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоВыборЗначения(Элемент, Значение, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ТекущиеДанные = Дерево.НайтиПоИдентификатору(Значение); + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ТекущиеДанные.ЭтоГруппа И Не ВыборГрупп Тогда + Предупреждение(НСтр("ru = 'Выберите элемент, а не группу!'")); + Возврат; + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("РеквизитID", ТекущиеДанные.ID); + Результат.Вставить("РеквизитТип", ТекущиеДанные.Тип); + Результат.Вставить("РеквизитПредставление", ТекущиеДанные.Наименование); + + Закрыть(Результат); + +КонецПроцедуры + +&НаКлиенте +Процедура Выбрать(Команда) + + ТекущиеДанные = Элементы.Дерево.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ТекущиеДанные.ЭтоГруппа И Не ВыборГрупп Тогда + Предупреждение(НСтр("ru = 'Выберите элемент, а не группу!'")); + Возврат; + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("РеквизитID", ТекущиеДанные.ID); + Результат.Вставить("РеквизитТип", ТекущиеДанные.Тип); + Результат.Вставить("РеквизитПредставление", ТекущиеДанные.Наименование); + + Закрыть(Результат); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоПередРазворачиванием(Элемент, Строка, Отказ) + + Лист = Дерево.НайтиПоИдентификатору(Строка); + + Если Лист = Неопределено Тогда + Возврат; + КонецЕсли; + + Если НЕ Лист.ПодпапкиСчитаны Тогда + ЗаполнитьДеревоПапокПоИдентификатору(Строка, Лист.ID); + Лист.ПодпапкиСчитаны = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьДеревоПапокПоИдентификатору(ИдентификаторЭлементаДерева, ИдентификаторПапки) + + Лист = Дерево.НайтиПоИдентификатору(ИдентификаторЭлементаДерева); + + Если Лист = Неопределено Тогда + Возврат; + КонецЕсли; + + ЗаполнитьДеревоПапок(Лист.ПолучитьЭлементы(), Лист.ID); + +КонецПроцедуры + +&НаКлиенте +Процедура НайтиВыполнить(Команда) + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотПоискВСписке"); + + Если ТипЗнч(Результат) = Тип("Строка") Тогда + ЗаполнитьДеревоПапокОтКорня(, Результат); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтменитьПоиск(Команда) + + // отменяем режим поиска + ЗаполнитьДеревоПапокОтКорня(""); // корневые папки + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьДеревоПапокОтКорня(ИдентификаторПапки = Неопределено, СтрокаПоиска = Неопределено) + + ЗаполнитьДеревоПапок(Дерево.ПолучитьЭлементы(), ИдентификаторПапки, СтрокаПоиска); + +КонецПроцедуры diff --git a/SSL/src/CommonForms/ДокументооборотВыборИзСписка/ДокументооборотВыборИзСписка.mdo b/SSL/src/CommonForms/ДокументооборотВыборИзСписка/ДокументооборотВыборИзСписка.mdo new file mode 100644 index 000000000..f84be2cad --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборИзСписка/ДокументооборотВыборИзСписка.mdo @@ -0,0 +1,10 @@ + + + ДокументооборотВыборИзСписка + + ru + Документооборот выбор из списка + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/ConditionalAppearance.dcssca b/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/ConditionalAppearance.dcssca new file mode 100644 index 000000000..1b538267c --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/ConditionalAppearance.dcssca @@ -0,0 +1,23 @@ + + + + + + ПользователиПользовательПредставление + + + + + Пользователи.Руководитель + Equal + true + + + + + Шрифт + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/Form.form b/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/Form.form new file mode 100644 index 000000000..e917341f5 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/Form.form @@ -0,0 +1,1339 @@ + + + + <key>ru</key> + <value>Выбор исполнителя</value> + + + ГруппаПользователиРоли + 1 + + ГруппаПользователи + 2 + + ГруппаПоиск + 29 + + Найти + 31 + true + true + + true + + + НайтиРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + Form.Item.Пользователи.StandardCommand.Find + Normal + Auto + true + true + UserCmds + Auto + + + ОтменитьПоиск + 32 + true + true + + true + + + ОтменитьПоискРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + Form.Item.Пользователи.StandardCommand.CancelSearch + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Группа поиск</value> + + + ru + Группа поиск + + + ГруппаПоискРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + CommandBar + + Left + + + + ГруппаСписки + 30 + + Дерево + 24 + true + true + + true + + + Дерево + + None + + ДеревоНаименование + 27 + true + true + + true + + + Дерево.Наименование + + + ДеревоНаименованиеРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + + ДеревоНаименованиеКонтекстноеМеню + 28 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ДеревоКоманднаяПанель + 26 + Left + + + OnActivateRow + ДеревоПриАктивизацииСтроки + + + BeforeExpand + ДеревоПередРазворачиванием + + + ДеревоСтрокаПоиска + 43 + + ДеревоСтрокаПоискаРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + + ДеревоСтрокаПоискаКонтекстноеМеню + 44 + true + + Дерево + + true + + + + ДеревоСостояниеПросмотра + 46 + + ДеревоСостояниеПросмотраРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + ДеревоСостояниеПросмотраКонтекстноеМеню + 47 + true + + ViewStatusAddition + Дерево + + true + + + + ДеревоУправлениеПоиском + 49 + + ДеревоУправлениеПоискомРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + ДеревоУправлениеПоискомКонтекстноеМеню + 50 + true + + SearchControlAddition + Дерево + + true + + + + ДеревоРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + ДеревоКонтекстноеМеню + 25 + true + + Tree + true + true + 10 + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + false + false + false + true + Auto + Auto + true + true + true + true + None + None + None + true + + + Пользователи + 4 + true + true + + true + + + Пользователи + + None + Add + Change + Copy + CopyToClipboard + Delete + EndEdit + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + ПользователиПользовательПредставление + 7 + true + true + + true + + + Пользователи.Пользователь + + + ПользователиПользовательПредставлениеРасширеннаяПодсказка + 72 + Label + true + true + + Left + + + + ПользователиПользовательПредставлениеКонтекстноеМеню + 8 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + Normal + + + + ПользователиКоманднаяПанель + 6 + Left + + + Selection + ПользователиВыбор + + + ПользователиСтрокаПоиска + 63 + + ПользователиСтрокаПоискаРасширеннаяПодсказка + 65 + Label + true + true + + Left + + + + ПользователиСтрокаПоискаКонтекстноеМеню + 64 + true + + Пользователи + + true + + + + ПользователиСостояниеПросмотра + 66 + + ПользователиСостояниеПросмотраРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + + ПользователиСостояниеПросмотраКонтекстноеМеню + 67 + true + + ViewStatusAddition + Пользователи + + true + + + + ПользователиУправлениеПоиском + 69 + + ПользователиУправлениеПоискомРасширеннаяПодсказка + 71 + Label + true + true + + Left + + + + ПользователиУправлениеПоискомКонтекстноеМеню + 70 + true + + SearchControlAddition + Пользователи + + true + + + + ПользователиРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + + ПользователиКонтекстноеМеню + 5 + true + + true + true + 10 + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + false + false + false + true + Auto + Auto + true + true + true + true + None + None + None + true + + + true + true + + true + + + <key>ru</key> + <value>Группа списки</value> + + + ru + Группа списки + + + ГруппаСпискиРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Пользователи</value> + + + ru + Группа пользователи + + + ГруппаПользователиРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + Page + + Vertical + auto + + + + ГруппаРоли + 3 + + Роли + 13 + true + true + + true + + + Роли + + None + Add + CancelSearch + Change + Copy + CopyToClipboard + Delete + EndEdit + Find + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + Роли1РольПредставление + 16 + true + true + + true + + + Роли.Роль + + + Роли1РольПредставлениеРасширеннаяПодсказка + 93 + Label + true + true + + Left + + + + Роли1РольПредставлениеКонтекстноеМеню + 17 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + Normal + + + + РолиКоманднаяПанель + 15 + Left + + + Selection + РолиВыбор + + + РолиСтрокаПоиска + 84 + + РолиСтрокаПоискаРасширеннаяПодсказка + 86 + Label + true + true + + Left + + + + РолиСтрокаПоискаКонтекстноеМеню + 85 + true + + Роли + + true + + + + РолиСостояниеПросмотра + 87 + + РолиСостояниеПросмотраРасширеннаяПодсказка + 89 + Label + true + true + + Left + + + + РолиСостояниеПросмотраКонтекстноеМеню + 88 + true + + ViewStatusAddition + Роли + + true + + + + РолиУправлениеПоиском + 90 + + РолиУправлениеПоискомРасширеннаяПодсказка + 92 + Label + true + true + + Left + + + + РолиУправлениеПоискомКонтекстноеМеню + 91 + true + + SearchControlAddition + Роли + + true + + + + РолиРасширеннаяПодсказка + 83 + Label + true + true + + Left + + + + РолиКонтекстноеМеню + 14 + true + + true + true + true + true + 10 + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + false + false + false + true + Auto + Auto + true + true + true + true + None + None + None + true + + + true + true + + true + + + <key>ru</key> + <value>Роли</value> + + + ru + Группа роли + + + ГруппаРолиРасширеннаяПодсказка + 82 + Label + true + true + + Left + + + Page + + Vertical + auto + + + true + true + + true + + + <key>ru</key> + <value>Группа пользователи роли</value> + + + ru + Группа пользователи роли + + + ГруппаПользователиРолиРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + Pages + + + OnCurrentPageChange + ГруппаПользователиРолиПриСменеСтраницы + + TabsOnTop + Auto + + + + ГруппаКнопка + 23 + true + true + + true + + + <key>ru</key> + <value>Группа кнопка</value> + + + ru + Группа кнопка + + + ГруппаКнопкаРасширеннаяПодсказка + 103 + Label + true + true + + Left + + + CommandBar + + Right + + + + ФормаКоманднаяПанель + -1 + + ФормаВыбрать + 22 + true + true + + true + + + ФормаВыбратьРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + Form.Command.Выбрать + Auto + true + true + true + UserCmds + Auto + + + ФормаСправка + 33 + true + true + + true + + + ФормаСправкаРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Пользователи + + <key>ru</key> + <value>Пользователи</value> + + 1 + + ValueTable + + + true + + + true + + + Пользователь + + <key>ru</key> + <value>Пользователь</value> + + 1 + + String + + + + true + + + true + + + + ПользовательТип + + <key>ru</key> + <value>Пользователь тип</value> + + 2 + + String + + + + true + + + true + + + + ПользовательID + + <key>ru</key> + <value>Пользователь ID</value> + + 3 + + String + + + + true + + + true + + + + Руководитель + + <key>ru</key> + <value>Руководитель</value> + + 4 + + Boolean + + + true + + + true + + + + + Роли + + <key>ru</key> + <value>Пользователи</value> + + 2 + + ValueTable + + + true + + + true + + + Роль + + <key>ru</key> + <value>Роль</value> + + 1 + + String + + + + true + + + true + + + + РольТип + + <key>ru</key> + <value>Роль тип</value> + + 2 + + String + + + + true + + + true + + + + РольID + + <key>ru</key> + <value>Роль ID</value> + + 3 + + String + + + + true + + + true + + + + ИспользуетсяСОбъектамиАдресации + + <key>ru</key> + <value>Используется с объектами адресации</value> + + 4 + + Boolean + + + true + + + true + + + + ИспользуетсяБезОбъектовАдресации + + <key>ru</key> + <value>Используется без объектов адресации</value> + + 5 + + Boolean + + + true + + + true + + + + ТипОсновногоОбъектаАдресации + + <key>ru</key> + <value>Тип основного объекта адресации</value> + + 6 + + ValueList + + + true + + + true + + + + ТипДополнительногоОбъектаАдресации + + <key>ru</key> + <value>Тип дополнительного объекта адресации</value> + + 7 + + ValueList + + + true + + + true + + + + ПрочитаноИзДокументооборота + + <key>ru</key> + <value>Прочитано из документооборота</value> + + 8 + + Boolean + + + true + + + true + + + + ИмяОсновногоОбъектаАдресации + + <key>ru</key> + <value>Имя основного объекта адресации</value> + + 9 + + String + + + + true + + + true + + + + ИмяДополнительногоОбъектаАдресации + + <key>ru</key> + <value>Имя дополнительного объекта адресации</value> + + 10 + + String + + + + true + + + true + + + + + ТекущаяРоль + + <key>ru</key> + <value>Текущая роль</value> + + 9 + + String + + + + true + + + true + + + + Дерево + + <key>ru</key> + <value>Дерево</value> + + 3 + + ValueTree + + + true + + + true + + + Код + + <key>ru</key> + <value>Код</value> + + 1 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 2 + + String + + + + true + + + true + + + + ID + + <key>ru</key> + <value>ID</value> + + 5 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 4 + + String + + + + true + + + true + + + + Картинка + + <key>ru</key> + <value>Картинка</value> + + 6 + + Number + + 10 + + + + true + + + true + + + + ПодпапкиСчитаны + + <key>ru</key> + <value>Подпапки считаны</value> + + 7 + + Boolean + + + true + + + true + + + + + Выбрать + + <key>ru</key> + <value>Выбрать</value> + + 1 + + ru + Выбрать + + + true + + + StdPicture.ChooseValue + + + + Выбрать + + + TextPicture + Auto + Auto + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/Help/ru.html b/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/Help/ru.html new file mode 100644 index 000000000..294fb5c90 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/Help/ru.html @@ -0,0 +1,3 @@ + +

На форме выбора исполнителя можно выбрать как пользователя, так и роль исполнителей.

+

Если для выбранной роли в 1С:Документообороте настроено использование объектов адресации, после выбора роли будет необходимо указать значения этих объектов адресации.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/Module.bsl b/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/Module.bsl new file mode 100644 index 000000000..2d2582c6c --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/Module.bsl @@ -0,0 +1,257 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ЗаполнитьДеревоПодразделений(Дерево.ПолучитьЭлементы(), "DMSubdivision", ""); + ЭлементВсеПользователи = Дерево.ПолучитьЭлементы().Вставить(0); + ЭлементВсеПользователи.Наименование = НСтр("ru = 'Все пользователи'"); + ЭлементВсеПользователи.ID = ""; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьДеревоПодразделений(ВеткаДерева, ТипОбъектаВыбора, ИдентификаторПапки = Неопределено, СтрокаПоиска = Неопределено) + + ВеткаДерева.Очистить(); + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + УсловияОтбораОбъектов = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListQuery"); + Если ИдентификаторПапки <> Неопределено Тогда + Условие = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListCondition"); + Условие.property = "Parent"; + Условие.value = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ИдентификаторПапки, ТипОбъектаВыбора); + + УсловияОтбораОбъектов.conditions.Добавить(Условие); + КонецЕсли; + + Если СтрокаПоиска <> Неопределено Тогда + Условие = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListCondition"); + Условие.property = "Name"; + Условие.value = СтрокаПоиска; + + УсловияОтбораОбъектов.conditions.Добавить(Условие); + КонецЕсли; + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetObjectListRequest"); + Запрос.Type = ТипОбъектаВыбора; + Запрос.query = УсловияОтбораОбъектов; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Для Каждого Элемент Из Результат.Items Цикл + + НоваяСтрока = ВеткаДерева.Добавить(); + НоваяСтрока.Наименование = Элемент.object.name; + НоваяСтрока.ID = Элемент.object.objectId.id; + НоваяСтрока.Тип = Элемент.object.objectId.type; + + Если ТипОбъектаВыбора = "DMFileFolder" Тогда + НоваяСтрока.Картинка = 0; + Иначе + Если Элемент.isFolder Тогда + НоваяСтрока.Картинка = 0; + Иначе + НоваяСтрока.Картинка = 2; + КонецЕсли; + КонецЕсли; + + Если Элемент.canHaveChildren И (СтрокаПоиска = Неопределено) Тогда + НоваяСтрока.ПодпапкиСчитаны = Ложь; + ФиктивныйЛист = НоваяСтрока.ПолучитьЭлементы().Добавить(); // чтобы появился плюсик + Иначе + НоваяСтрока.ПодпапкиСчитаны = Истина; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьПользователи(ПодразделениеИД) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Если ЗначениеЗаполнено(ПодразделениеИД) Тогда + //получение руководителя текущего подразделения + Подразделения = РаботаС1СДокументооборот.ПолучитьОбъект("DMSubdivision", ПодразделениеИД); + IDРуководителя = Подразделения.objects[0].head.objectId.id; + КонецЕсли; + + //заполнение списка пользователей + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + УсловияОтбораОбъектовТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectListQuery"); + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMGetObjectListRequest"); + ЗапросУсловиеТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectListCondition"); + + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + Запрос.Type = "DMUser"; + + Если ЗначениеЗаполнено(ПодразделениеИД) Тогда + УсловияОтбораОбъектов = Прокси.ФабрикаXDTO.Создать(УсловияОтбораОбъектовТип); + ПодрИД = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + ПодрИД.id = ПодразделениеИД; + ПодрИД.type = "DMSubdivision"; + + Условие = Прокси.ФабрикаXDTO.Создать(ЗапросУсловиеТип); + Условие.property = "Subdivision"; + Условие.value = ПодрИД; + + УсловияОтбораОбъектов.conditions.Добавить(Условие); + + Запрос.query = УсловияОтбораОбъектов; + КонецЕсли; + + Результат = Прокси.execute(Запрос); + + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Пользователи.Очистить(); + Для Каждого ПользовательВСписке Из Результат.Items Цикл + НоваяСтрока = Пользователи.Добавить(); + НоваяСтрока.Пользователь = ПользовательВСписке.object.name; + НоваяСтрока.ПользовательID = ПользовательВСписке.object.objectId.id; + НоваяСтрока.ПользовательТип = ПользовательВСписке.object.objectId.type; + НоваяСтрока.Руководитель = (IDРуководителя = ПользовательВСписке.object.objectId.id); + КонецЦикла; + + Пользователи.Сортировать("Пользователь Возр"); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоПередРазворачиванием(Элемент, Строка, Отказ) + + Лист = Дерево.НайтиПоИдентификатору(Строка); + + Если Лист = Неопределено Тогда + Возврат; + КонецЕсли; + + Если НЕ Лист.ПодпапкиСчитаны Тогда + ЗаполнитьДеревоПапокПоИдентификатору(Строка, Лист.ID); + Лист.ПодпапкиСчитаны = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьДеревоПапокПоИдентификатору(ИдентификаторЭлементаДерева, ИдентификаторПапки) + + Лист = Дерево.НайтиПоИдентификатору(ИдентификаторЭлементаДерева); + + Если Лист = Неопределено Тогда + Возврат; + КонецЕсли; + + ЗаполнитьДеревоПодразделений(Лист.ПолучитьЭлементы(), "DMSubdivision", Лист.ID); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоПриАктивизацииСтроки(Элемент) + + ПодключитьОбработчикОжидания("ОбработкаОжидания", 0.2, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОжидания() + + ЗаполнитьПользователи(Элементы.Дерево.ТекущиеДанные.ID); + +КонецПроцедуры + +&НаКлиенте +Процедура ГруппаПользователиРолиПриСменеСтраницы(Элемент, ТекущаяСтраница) + + Если Роли.Количество() = 0 Тогда + ЗаполнитьСписокДоступныхРолей(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьСписокДоступныхРолей() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + УсловияОтбораОбъектовТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectListQuery"); + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMGetObjectListRequest"); + ЗапросУсловиеТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectListCondition"); + + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + Запрос.type = "DMBusinessProcessExecutorRole"; + + УсловияОтбораОбъектов = Прокси.ФабрикаXDTO.Создать(УсловияОтбораОбъектовТип); + + Запрос.query = УсловияОтбораОбъектов; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Роли.Очистить(); + Для Каждого Элемент Из Результат.Items Цикл + НоваяСтрока = Роли.Добавить(); + НоваяСтрока.Роль = Элемент.object.name; + НоваяСтрока.РольID = Элемент.object.objectId.id; + НоваяСтрока.РольТип = Элемент.object.objectId.type; + КонецЦикла; + + Роли.Сортировать("Роль Возр"); + +КонецПроцедуры + +&НаКлиенте +Процедура Выбрать(Команда) + + ВыбратьВыполнить(); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыбратьВыполнить() + + Если Элементы.ГруппаПользователиРоли.ТекущаяСтраница = Элементы.ГруппаПользователи Тогда + + Если Элементы.Пользователи.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + ДанныеВозврата = Новый Структура; + ДанныеВозврата.Вставить("Исполнитель", Элементы.Пользователи.ТекущиеДанные.Пользователь); + ДанныеВозврата.Вставить("ИсполнительID", Элементы.Пользователи.ТекущиеДанные.ПользовательID); + ДанныеВозврата.Вставить("ИсполнительТип", Элементы.Пользователи.ТекущиеДанные.ПользовательТип); + + ИначеЕсли Элементы.ГруппаПользователиРоли.ТекущаяСтраница = Элементы.ГруппаРоли Тогда + + Если Элементы.Роли.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ДанныеВозврата = РаботаС1СДокументооборотКлиент.ПолучитьОбъектыАдресацииРоли(Элементы.Роли.ТекущиеДанные.Роль, Элементы.Роли.ТекущиеДанные.РольТип, Элементы.Роли.ТекущиеДанные.РольID, ЭтаФорма); + + Если ДанныеВозврата = Неопределено Тогда + Возврат; + КонецЕсли; + + КонецЕсли; + + Закрыть (ДанныеВозврата); + +КонецПроцедуры + +&НаКлиенте +Процедура ПользователиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ВыбратьВыполнить(); + +КонецПроцедуры + +&НаКлиенте +Процедура РолиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ВыбратьВыполнить(); + +КонецПроцедуры + diff --git a/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/ДокументооборотВыборИсполнителяБизнесПроцесса.mdo b/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/ДокументооборотВыборИсполнителяБизнесПроцесса.mdo new file mode 100644 index 000000000..b904f7e38 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборИсполнителяБизнесПроцесса/ДокументооборотВыборИсполнителяБизнесПроцесса.mdo @@ -0,0 +1,19 @@ + + + ДокументооборотВыборИсполнителяБизнесПроцесса + + ru + Документооборот выбор исполнителя бизнес процесса + + + + ru + + + PersonalComputer + MobileDevice + + ru + Выбор исполнителя бизнес-процесса + + diff --git a/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/Form.form b/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/Form.form new file mode 100644 index 000000000..8d7ecfe5d --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/Form.form @@ -0,0 +1,464 @@ + + + + Роль + 5 + true + true + + true + + + Роль + + + РольРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + + РольКонтекстноеМеню + 6 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ОсновнойОбъектАдресации + 1 + true + true + + true + + + ОсновнойОбъектАдресации + + + ОсновнойОбъектАдресацииРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + ОсновнойОбъектАдресацииКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + + StartChoice + ОсновнойОбъектАдресацииНачалоВыбора + + 30 + true + true + true + true + true + true + true + true + Normal + + + + ДополнительныйОбъектАдресации + 3 + true + true + + true + + + ДополнительныйОбъектАдресации + + + ДополнительныйОбъектАдресацииРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + + ДополнительныйОбъектАдресацииКонтекстноеМеню + 4 + true + + InputField + Enter + true + Left + true + + + StartChoice + ДополнительныйОбъектАдресацииНачалоВыбора + + 30 + true + true + true + true + true + true + true + true + Normal + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаОк + 7 + true + true + + true + + + ФормаОкРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + Form.Command.ОК + Auto + true + true + true + UserCmds + Auto + + + ФормаОтмена + 8 + true + true + + true + + + ФормаОтменаРасширеннаяПодсказка + 11 + Label + true + true + + Left + + + Form.Command.Отмена + Normal + Auto + true + true + UserCmds + Auto + + + ФормаСправка + 9 + true + true + + true + + + ФормаСправкаРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + Right + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ДополнительныйОбъектАдресации + + <key>ru</key> + <value>Дополнительный объект адресации</value> + + 1 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииТип + + <key>ru</key> + <value>Дополнительный объект адресации тип</value> + + 2 + + String + + + + true + + + true + + + + ДополнительныйОбъектАдресацииID + + <key>ru</key> + <value>Дополнительный объект адресации ID</value> + + 3 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресации + + <key>ru</key> + <value>Основной объект адресации</value> + + 4 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииID + + <key>ru</key> + <value>Основной объект адресации ID</value> + + 5 + + String + + + + true + + + true + + + + ОсновнойОбъектАдресацииТип + + <key>ru</key> + <value>Основной объект адресации тип</value> + + 6 + + String + + + + true + + + true + + + + Роль + + <key>ru</key> + <value>Роль</value> + + 7 + + String + + + + true + + + true + + + + ДанныеРоли + + <key>ru</key> + <value>Данные роли</value> + + 8 + + + true + + + true + + + + РольТип + + <key>ru</key> + <value>Роль тип</value> + + 9 + + String + + + + true + + + true + + + + РольID + + <key>ru</key> + <value>Роль ID</value> + + 10 + + String + + + + true + + + true + + + + ОК + + <key>ru</key> + <value>ОК</value> + + 1 + + ru + ОК + + + true + + + + ОК + + + Auto + Auto + + + Отмена + + <key>ru</key> + <value>Отмена</value> + + 2 + + ru + Отмена + + + true + + + + Отмена + + + Auto + Auto + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/Help/ru.html b/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/Help/ru.html new file mode 100644 index 000000000..796e5bb72 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/Help/ru.html @@ -0,0 +1,2 @@ + +

На форме "Выбор объектов адресации" указываются основной и дополнительный объекты адресации для выбранной в ходе заполнения карточки бизнес-процесса роли. Объекты адресации используются для точного определения исполнителя роли.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/Module.bsl b/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/Module.bsl new file mode 100644 index 000000000..67f59b776 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/Module.bsl @@ -0,0 +1,189 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Роль = Параметры.Роль; + РольТип = Параметры.РольТип; + РольID =Параметры.РольID; + + ДанныеРоли = ПолучитьДанныеВыбраннойРоли( + Параметры.РольТип, + Параметры.РольID); + +КонецПроцедуры + +&НаСервере +Функция ПолучитьДанныеВыбраннойРоли(Тип, ID) + + ДанныеВозврата = Новый Структура; + + Элементы.ОсновнойОбъектАдресации.Видимость = Ложь; + Элементы.ДополнительныйОбъектАдресации.Видимость = Ложь; + Элементы.ОсновнойОбъектАдресации.Заголовок = ""; + Элементы.ДополнительныйОбъектАдресации.Заголовок = ""; + + ДанныеОбъекта = РаботаС1СДокументооборот.ПолучитьОбъект(Тип, ID); + + ПолученнаяРоль = ДанныеОбъекта.objects[0]; + + ДанныеВозврата.Вставить("ИспользуетсяСОбъектамиАдресации", ПолученнаяРоль.withAddressingObjects); + ДанныеВозврата.Вставить("ИспользуетсяБезОбъектовАдресации", ПолученнаяРоль.withoutAddressingObjects); + Если ПолученнаяРоль.withAddressingObjects Тогда + Элементы.ОсновнойОбъектАдресации.Заголовок = ПолученнаяРоль.mainAddressingObjectName; + Элементы.ДополнительныйОбъектАдресации.Заголовок = ПолученнаяРоль.secondaryAddressingObjectName; + + ДанныеВозврата.Вставить("ИмяОсновногоОбъектаАдресации", ПолученнаяРоль.mainAddressingObjectName); + ДанныеВозврата.Вставить("ИмяДополнительногоОбъектаАдресации", ПолученнаяРоль.secondaryAddressingObjectName); + + ТипОсновногоОбъектаАдресации = Новый СписокЗначений; + Для Каждого ТипЭлемента Из ПолученнаяРоль.mainAddressingObjectType Цикл + ДанныеТипа = Новый Структура; + ДанныеТипа.Вставить("XDTOClassName", ТипЭлемента.xdtoClassName); + ДанныеТипа.Вставить("Presentation", ТипЭлемента.presentation); + ТипОсновногоОбъектаАдресации.Добавить(ДанныеТипа); + КонецЦикла; + + ТипДополнительногоОбъектаАдресации = Новый СписокЗначений; + Для Каждого ТипЭлемента Из ПолученнаяРоль.secondaryAddressingObjectType Цикл + ДанныеТипа = Новый Структура; + ДанныеТипа.Вставить("XDTOClassName", ТипЭлемента.xdtoClassName); + ДанныеТипа.Вставить("Presentation", ТипЭлемента.presentation); + ТипДополнительногоОбъектаАдресации.Добавить(ДанныеТипа); + КонецЦикла; + + ДанныеВозврата.Вставить("ТипОсновногоОбъектаАдресации", ТипОсновногоОбъектаАдресации); + ДанныеВозврата.Вставить("ТипДополнительногоОбъектаАдресации", ТипДополнительногоОбъектаАдресации); + + Элементы.ОсновнойОбъектАдресации.Видимость = ЗначениеЗаполнено(Элементы.ОсновнойОбъектАдресации.Заголовок); + Элементы.ДополнительныйОбъектАдресации.Видимость = ЗначениеЗаполнено(Элементы.ДополнительныйОбъектАдресации.Заголовок); + + Элементы.ОсновнойОбъектАдресации.ОтметкаНезаполненного = Ложь; + Элементы.ДополнительныйОбъектАдресации.ОтметкаНезаполненного = Ложь; + + Элементы.ОсновнойОбъектАдресации.АвтоОтметкаНезаполненного = Ложь; + Элементы.ДополнительныйОбъектАдресации.АвтоОтметкаНезаполненного = Ложь; + + Если ДанныеВозврата.ИспользуетсяСОбъектамиАдресации = Истина + И ДанныеВозврата.ИспользуетсяБезОбъектовАдресации = Ложь Тогда + Элементы.ОсновнойОбъектАдресации.АвтоОтметкаНезаполненного = Элементы.ОсновнойОбъектАдресации.Видимость; + Элементы.ДополнительныйОбъектАдресации.АвтоОтметкаНезаполненного = Элементы.ДополнительныйОбъектАдресации.Видимость; + КонецЕсли; + + КонецЕсли; + + Возврат ДанныеВозврата; + +КонецФункции + +&НаКлиенте +Процедура ОсновнойОбъектАдресацииНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ВыбратьОбъектАдресации("ОсновнойОбъектАдресации", "ТипОсновногоОбъектаАдресации"); + +КонецПроцедуры + +&НаКлиенте +Процедура ДополнительныйОбъектАдресацииНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ВыбратьОбъектАдресации("ДополнительныйОбъектАдресации", "ТипДополнительногоОбъектаАдресации"); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыбратьОбъектАдресации(ИмяПеременной, ИмяПоля) + + ИмяТипа = ""; + Если ДанныеРоли[ИмяПоля].Количество() > 1 Тогда + ЗаголовокФормы = НСтр("ru = 'Тип объекта адресации'"); + ПараметрыФормы = Новый Структура("СписокДоступныхТипов, ЗаголовокФормы", ДанныеРоли[ИмяПоля], ЗаголовокФормы); + РезультатВыбораТипа = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборОдногоТипаИзСоставногоТипа", ПараметрыФормы, ЭтаФорма); + Если РезультатВыбораТипа = Неопределено Тогда + Возврат; + КонецЕсли; + ИмяТипа = РезультатВыбораТипа; + ИначеЕсли ДанныеРоли[ИмяПоля].Количество() = 1 Тогда + ИмяТипа = ДанныеРоли[ИмяПоля][0].Значение.XDTOClassName; + Иначе + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ТипОбъектаВыбора", ИмяТипа); + РезультатВыбора = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИзСписка", ПараметрыФормы, ЭтаФорма); + + Если РезультатВыбора <> Неопределено Тогда + ЭтаФорма[ИмяПеременной] = РезультатВыбора.РеквизитПредставление; + ЭтаФорма[ИмяПеременной + "ID"] = РезультатВыбора.РеквизитID; + ЭтаФорма[ИмяПеременной + "Тип"] = РезультатВыбора.РеквизитТип; + Конецесли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОК(Команда) + + Отказ = Ложь; + ОчиститьСообщения(); + Если ДанныеРоли.ИспользуетсяСОбъектамиАдресации = Истина + И ДанныеРоли.ИспользуетсяБезОбъектовАдресации = Ложь Тогда + Если Элементы.ОсновнойОбъектАдресации.Видимость + И НЕ ЗначениеЗаполнено(ОсновнойОбъектАдресации) Тогда + Текст = НСтр("ru = 'Не заполнено поле """ + Элементы.ОсновнойОбъектАдресации.Заголовок + """'"); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Текст,,,"ОсновнойОбъектАдресации"); + Отказ = Истина; + КонецЕсли; + Если Элементы.ДополнительныйОбъектАдресации.Видимость + И НЕ ЗначениеЗаполнено(ДополнительныйОбъектАдресации) Тогда + Текст = НСтр("ru = 'Не заполнено поле """ + Элементы.ДополнительныйОбъектАдресации.Заголовок + """'"); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Текст,,,"ДополнительныйОбъектАдресации"); + Отказ = Истина; + КонецЕсли; + КонецЕсли; + + Если Отказ Тогда + Возврат; + КонецЕсли; + + ДанныеВозврата = Новый Структура; + + ДанныеВозврата.Вставить("Результат", "ОК"); + + ДанныеВозврата.Вставить("Исполнитель", Роль); + ДанныеВозврата.Вставить("ИсполнительID", РольID); + ДанныеВозврата.Вставить("ИсполнительТип", РольТип); + + ДанныеВозврата.Вставить("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации); + ДанныеВозврата.Вставить("ОсновнойОбъектАдресацииID", ОсновнойОбъектАдресацииID); + ДанныеВозврата.Вставить("ОсновнойОбъектАдресацииТип", ОсновнойОбъектАдресацииТип); + + ДанныеВозврата.Вставить("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации); + ДанныеВозврата.Вставить("ДополнительныйОбъектАдресацииID", ДополнительныйОбъектАдресацииID); + ДанныеВозврата.Вставить("ДополнительныйОбъектАдресацииТип", ДополнительныйОбъектАдресацииТип); + + Закрыть(ДанныеВозврата); + +КонецПроцедуры + +&НаКлиенте +Процедура Отмена(Команда) + + ДанныеВозврата = Новый Структура; + ДанныеВозврата.Вставить("Результат", "Отмена"); + Закрыть(ДанныеВозврата); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + Если ДанныеРоли.ИспользуетсяБезОбъектовАдресации = Истина + И ДанныеРоли.ИспользуетсяСОбъектамиАдресации = Ложь Тогда + Отказ = Истина; + ДанныеВозврата = Новый Структура("Результат", "БезОбъектовАдресации"); + Закрыть(ДанныеВозврата); + КонецЕсли; + +КонецПроцедуры + diff --git a/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/ДокументооборотВыборОбъектовАдресацииРоли.mdo b/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/ДокументооборотВыборОбъектовАдресацииРоли.mdo new file mode 100644 index 000000000..27367d31e --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборОбъектовАдресацииРоли/ДокументооборотВыборОбъектовАдресацииРоли.mdo @@ -0,0 +1,19 @@ + + + ДокументооборотВыборОбъектовАдресацииРоли + + ru + Документооборот выбор объектов адресации роли + + + + ru + + + PersonalComputer + MobileDevice + + ru + Выбор объектов адресации + + diff --git a/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/Form.form b/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/Form.form new file mode 100644 index 000000000..d8cfd1b05 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/Form.form @@ -0,0 +1,474 @@ + + + + <key>ru</key> + <value>Выбор типа значения</value> + + + ГруппаЭлементы + 7 + + ДоступныеТипы + 1 + + <key>ru</key> + <value>Выберите тип значения</value> + + true + true + + true + + + ДоступныеТипы + + None + + ДоступныеТипыПредставление + 4 + true + true + + true + + + ДоступныеТипы.Представление + + + ДоступныеТипыПредставлениеРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + + ДоступныеТипыПредставлениеКонтекстноеМеню + 5 + true + + InputField + true + Auto + Left + true + + true + true + true + true + true + Normal + + + + ДоступныеТипыКоманднаяПанель + 3 + Left + + + Selection + ДоступныеТипыВыбор + + + ДоступныеТипыСтрокаПоиска + 13 + + ДоступныеТипыСтрокаПоискаРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + ДоступныеТипыСтрокаПоискаКонтекстноеМеню + 14 + true + + ДоступныеТипы + + true + + + + ДоступныеТипыСостояниеПросмотра + 16 + + ДоступныеТипыСостояниеПросмотраРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + ДоступныеТипыСостояниеПросмотраКонтекстноеМеню + 17 + true + + ViewStatusAddition + ДоступныеТипы + + true + + + + ДоступныеТипыУправлениеПоиском + 19 + + ДоступныеТипыУправлениеПоискомРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + ДоступныеТипыУправлениеПоискомКонтекстноеМеню + 20 + true + + SearchControlAddition + ДоступныеТипы + + true + + + + ДоступныеТипыРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + ДоступныеТипыКонтекстноеМеню + 2 + true + + 35 + true + true + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + false + false + false + true + Auto + Auto + true + true + true + true + None + None + None + true + + + + ГруппаКнопки + 8 + + ФормаВыбрать + 6 + + <key>ru</key> + <value>ОК</value> + + true + true + + true + + + ФормаВыбратьРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + UsualButton + Form.Command.Выбрать + Auto + true + true + true + UserCmds + Auto + + + Закрыть + 9 + true + true + + true + + + ЗакрытьРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + UsualButton + Form.Command.Отмена + Normal + Auto + true + true + UserCmds + Auto + + + Справка + 10 + true + true + + true + + + СправкаРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + UsualButton + Form.StandardCommand.Help + Normal + PictureAndText + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Группа кнопки</value> + + + ru + Группа кнопки + + + ГруппаКнопкиРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа элементы</value> + + + ru + Группа элементы + + + ГруппаЭлементыРасширеннаяПодсказка + 11 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ДоступныеТипы + + <key>ru</key> + <value>Доступные типы</value> + + 1 + + ValueTable + + + true + + + true + + + Представление + + <key>ru</key> + <value>Представление</value> + + 1 + + String + + + + true + + + true + + + + Имя + + <key>ru</key> + <value>Имя</value> + + 2 + + String + + + + true + + + true + + + + + Выбрать + + <key>ru</key> + <value>Выбрать</value> + + 1 + + ru + Выбрать + + + true + + + + Выбрать + + + Auto + Auto + + + Отмена + + <key>ru</key> + <value>Отмена</value> + + 2 + + ru + Отмена + + + true + + + + Отмена + + + Auto + Auto + + + СписокДоступныхТипов + + ValueList + + + + ЗаголовокФормы + + String + + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/Help/ru.html b/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/Help/ru.html new file mode 100644 index 000000000..94b8fbbd0 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/Help/ru.html @@ -0,0 +1,6 @@ + +

Выбор типа значения осуществляется, когда в поле на карточке объекта может быть указано значение нескольких типов. В таком случае сначала необходимо выбрать тип значения.

+

 

+

Для продолжения заполнения поля карточки выберите требуемый тип данных и нажмите кнопку "ОК".

+

 

+

При создании бизнес-процесса документооборота выберите тип бизнес-процесса и нажмите кнопку "ОК".

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/Module.bsl b/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/Module.bsl new file mode 100644 index 000000000..db14d60a5 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/Module.bsl @@ -0,0 +1,40 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Параметры.ЗаголовокФормы) Тогда + АвтоЗаголовок = Ложь; + Заголовок = Параметры.ЗаголовокФормы; + КонецЕсли; + + Если Параметры.СписокДоступныхТипов.Количество() = 0 Тогда + Отказ = Истина; + Возврат; + КонецЕсли; + + Для Каждого Элемент Из Параметры.СписокДоступныхТипов Цикл + НоваяСтрока = ДоступныеТипы.Добавить(); + НоваяСтрока.Представление = Элемент.Значение.Presentation; + НоваяСтрока.Имя = Элемент.Значение.XDTOClassName; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура Выбрать(Команда) + + Закрыть(Элементы.ДоступныеТипы.ТекущиеДанные.Имя); + +КонецПроцедуры + +&НаКлиенте +Процедура ДоступныеТипыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + Закрыть(Элементы.ДоступныеТипы.ТекущиеДанные.Имя); + +КонецПроцедуры + +&НаКлиенте +Процедура Отмена(Команда) + Закрыть(Неопределено); +КонецПроцедуры diff --git a/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/ДокументооборотВыборОдногоТипаИзСоставногоТипа.mdo b/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/ДокументооборотВыборОдногоТипаИзСоставногоТипа.mdo new file mode 100644 index 000000000..1c3b6ff65 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборОдногоТипаИзСоставногоТипа/ДокументооборотВыборОдногоТипаИзСоставногоТипа.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотВыборОдногоТипаИзСоставногоТипа + + ru + Документооборот выбор одного типа из составного типа + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/ConditionalAppearance.dcssca b/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/ConditionalAppearance.dcssca new file mode 100644 index 000000000..96103830c --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/ConditionalAppearance.dcssca @@ -0,0 +1,23 @@ + + + + + + СписокПользователейНаименование + + + + + СписокПользователей.Руководитель + Equal + true + + + + + Шрифт + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/Form.form b/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/Form.form new file mode 100644 index 000000000..a1227cd19 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/Form.form @@ -0,0 +1,783 @@ + + + + <key>ru</key> + <value>Выберите пользователя</value> + + + ГруппаСписки + 6 + + Дерево + 1 + true + true + + true + + + Дерево + + None + + ДеревоНаименование + 4 + + <key>ru</key> + <value>Подразделение</value> + + true + true + + true + + + Дерево.Наименование + + + ДеревоНаименованиеРасширеннаяПодсказка + 29 + Label + true + true + + Left + + + + ДеревоНаименованиеКонтекстноеМеню + 5 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + Normal + + + + ДеревоКоманднаяПанель + 3 + Left + + + OnActivateRow + ДеревоПриАктивизацииСтроки + + + BeforeExpand + ДеревоПередРазворачиванием + + + ДеревоСтрокаПоиска + 20 + + ДеревоСтрокаПоискаРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + + ДеревоСтрокаПоискаКонтекстноеМеню + 21 + true + + Дерево + + true + + + + ДеревоСостояниеПросмотра + 23 + + ДеревоСостояниеПросмотраРасширеннаяПодсказка + 25 + Label + true + true + + Left + + + + ДеревоСостояниеПросмотраКонтекстноеМеню + 24 + true + + ViewStatusAddition + Дерево + + true + + + + ДеревоУправлениеПоиском + 26 + + ДеревоУправлениеПоискомРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + + ДеревоУправлениеПоискомКонтекстноеМеню + 27 + true + + SearchControlAddition + Дерево + + true + + + + ДеревоРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + + ДеревоКонтекстноеМеню + 2 + + Tree + true + true + 10 + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + false + false + false + true + Auto + Auto + true + true + true + true + + CommonPicture.ПиктограммыПользователя04 + + None + None + None + true + + + СписокПользователей + 7 + true + true + + true + + + СписокПользователей + + None + + СписокПользователейНаименование + 10 + + <key>ru</key> + <value>Пользователи</value> + + true + true + + true + + + СписокПользователей.Наименование + + + СписокПользователейНаименованиеРасширеннаяПодсказка + 49 + Label + true + true + + Left + + + + СписокПользователейНаименованиеКонтекстноеМеню + 11 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + Normal + + + + СписокПользователейКоманднаяПанель + 9 + Left + + + Selection + СписокПользователейВыбор + + + СписокПользователейСтрокаПоиска + 40 + + СписокПользователейСтрокаПоискаРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + СписокПользователейСтрокаПоискаКонтекстноеМеню + 41 + true + + СписокПользователей + + true + + + + СписокПользователейСостояниеПросмотра + 43 + + СписокПользователейСостояниеПросмотраРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + + СписокПользователейСостояниеПросмотраКонтекстноеМеню + 44 + true + + ViewStatusAddition + СписокПользователей + + true + + + + СписокПользователейУправлениеПоиском + 46 + + СписокПользователейУправлениеПоискомРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + СписокПользователейУправлениеПоискомКонтекстноеМеню + 47 + true + + SearchControlAddition + СписокПользователей + + true + + + + СписокПользователейРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + СписокПользователейКонтекстноеМеню + 8 + + true + true + 10 + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + false + false + false + true + Auto + Auto + true + true + true + true + + CommonPicture.ПиктограммыПользователя02 + + None + None + None + true + + + true + true + + true + + + <key>ru</key> + <value>Группа списки</value> + + + ru + Группа списки + + + ГруппаСпискиРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаВыбрать + 12 + true + true + + true + + + ФормаВыбратьРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + Form.Command.Выбрать + Auto + true + true + true + UserCmds + Auto + + + ФормаНайти + 13 + true + true + + true + + + ФормаНайтиРасширеннаяПодсказка + 16 + Label + true + true + + Left + + + Form.Item.СписокПользователей.StandardCommand.Find + Normal + Auto + true + true + UserCmds + Auto + + + ФормаОтменитьПоиск + 14 + true + true + + true + + + ФормаОтменитьПоискРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + Form.Item.СписокПользователей.StandardCommand.CancelSearch + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Дерево + + <key>ru</key> + <value>Дерево</value> + + 2 + + ValueTree + + + true + + + true + + + Код + + <key>ru</key> + <value>Код</value> + + 1 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 2 + + String + + + + true + + + true + + + + ID + + <key>ru</key> + <value>ID</value> + + 5 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 4 + + String + + + + true + + + true + + + + Картинка + + <key>ru</key> + <value>Картинка</value> + + 6 + + Number + + 10 + + + + true + + + true + + + + ПодпапкиСчитаны + + <key>ru</key> + <value>Подпапки считаны</value> + + 7 + + Boolean + + + true + + + true + + + + + СписокПользователей + + <key>ru</key> + <value>Список пользователей</value> + + 1 + + ValueTable + + + true + + + true + + + Код + + <key>ru</key> + <value>Код</value> + + 1 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 2 + + String + + + + true + + + true + + + + ID + + <key>ru</key> + <value>ID</value> + + 3 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 4 + + String + + + + true + + + true + + + + Руководитель + + <key>ru</key> + <value>Руководитель</value> + + 5 + + Boolean + + + true + + + true + + + + + Отбор + + <key>ru</key> + <value>Отбор</value> + + 4 + + + true + + + true + + + + Выбрать + + <key>ru</key> + <value>Выбрать</value> + + 1 + + ru + Выбрать + + + true + + + StdPicture.ChooseValue + + + + Выбрать + + + TextPicture + Auto + Auto + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/Help/ru.html b/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/Help/ru.html new file mode 100644 index 000000000..a6c5ba54c --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/Help/ru.html @@ -0,0 +1,4 @@ + +

На форме происходит выбор пользователя из системы 1С:Документооборот.

+

В левом списке показываются подразделения. При выборе подразделения в правом списке показываются пользователи, входящие в это подразделение, при этом уководитель подразделения указывается выделенным текстом. При выборе группы "Все пользователи" показываются все пользователи (независимо от вхождения в какое-либо из подразделений).

+

Для выбора пользователя необходимо выбрать его в правом списке и нажать кнопку "Выбрать".

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/Module.bsl b/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/Module.bsl new file mode 100644 index 000000000..63edf92aa --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/Module.bsl @@ -0,0 +1,201 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ЗаполнитьДеревоПодразделений(Дерево.ПолучитьЭлементы(), "DMSubdivision", ""); + ЭлементВсеПользователи = Дерево.ПолучитьЭлементы().Вставить(0); + ЭлементВсеПользователи.Наименование = НСтр("ru = 'Все пользователи'"); + ЭлементВсеПользователи.ID = ""; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьДеревоПодразделений(ВеткаДерева, ТипОбъектаВыбора, ИдентификаторПапки = Неопределено, СтрокаПоиска = Неопределено) + + ВеткаДерева.Очистить(); + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + УсловияОтбораОбъектов = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListQuery"); + Если ИдентификаторПапки <> Неопределено Тогда + РодительИд = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ИдентификаторПапки, ТипОбъектаВыбора); + + Условие = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListCondition"); + Условие.property = "parent"; + Условие.value = РодительИд; + + УсловияОтбораОбъектов.conditions.Добавить(Условие); + КонецЕсли; + + Если СтрокаПоиска <> Неопределено Тогда + Условие = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListCondition"); + Условие.property = "name"; + Условие.value = СтрокаПоиска; + + УсловияОтбораОбъектов.conditions.Добавить(Условие); + КонецЕсли; + + Если ТипЗнч(Отбор) = Тип("Структура") Тогда + Для Каждого СтрокаОтбора Из Отбор Цикл + Условие = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListCondition"); + Условие.property = СтрокаОтбора.Ключ; + + Если ТипЗнч(СтрокаОтбора.Значение) = Тип("Структура") Тогда + Условие.value = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, СтрокаОтбора.Значение.id, СтрокаОтбора.Значение.type); + Иначе + Условие.value = СтрокаОтбора.Значение; + КонецЕсли; + + УсловияОтбораОбъектов.conditions.Добавить(Условие); + КонецЦикла; + КонецЕсли; + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetObjectListRequest"); + Запрос.type = ТипОбъектаВыбора; + Запрос.query = УсловияОтбораОбъектов; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Для Каждого Элемент Из Результат.items Цикл + + НоваяСтрока = ВеткаДерева.Добавить(); + НоваяСтрока.Наименование = Элемент.object.name; + НоваяСтрока.ID = Элемент.object.objectId.id; + НоваяСтрока.Тип = Элемент.object.objectId.type; + + Если ТипОбъектаВыбора = "DMFileFolder" Тогда + НоваяСтрока.Картинка = 0; + Иначе + Если Элемент.isFolder Тогда + НоваяСтрока.Картинка = 0; + Иначе + НоваяСтрока.Картинка = 2; + КонецЕсли; + КонецЕсли; + + Если Элемент.CanHaveChildren И (СтрокаПоиска = Неопределено) Тогда + НоваяСтрока.ПодпапкиСчитаны = Ложь; + ФиктивныйЛист = НоваяСтрока.ПолучитьЭлементы().Добавить(); // чтобы появился плюсик + Иначе + НоваяСтрока.ПодпапкиСчитаны = Истина; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьСписокПользователей(ПодразделениеИД) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + //получение руководителя текущего подразделения + Если ЗначениеЗаполнено(ПодразделениеИД) Тогда + Подразделения = РаботаС1СДокументооборот.ПолучитьОбъект("DMSubdivision", ПодразделениеИД); + IDРуководителя = Подразделения.objects[0].head.objectId.id; + КонецЕсли; + + //заполнение списка пользователей + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetObjectListRequest"); + Запрос.type = "DMUser"; + + УсловияОтбораОбъектов = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListQuery"); + Если ЗначениеЗаполнено(ПодразделениеИД) Тогда + Условие = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListCondition"); + Условие.property = "Subdivision"; + Условие.value = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ПодразделениеИД, "DMSubdivision"); + + УсловияОтбораОбъектов.conditions.Добавить(Условие); + Запрос.query = УсловияОтбораОбъектов; + КонецЕсли; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + СписокПользователей.Очистить(); + Для Каждого ПользовательВСписке Из Результат.Items Цикл + НоваяСтрока = СписокПользователей.Добавить(); + НоваяСтрока.Наименование = ПользовательВСписке.object.name; + НоваяСтрока.ID = ПользовательВСписке.object.objectId.id; + НоваяСтрока.Тип = ПользовательВСписке.object.objectId.type; + НоваяСтрока.Руководитель = (IDРуководителя = ПользовательВСписке.object.objectId.id); + КонецЦикла; + + СписокПользователей.Сортировать("Наименование Возр"); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоПередРазворачиванием(Элемент, Строка, Отказ) + + Лист = Дерево.НайтиПоИдентификатору(Строка); + + Если Лист = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ЗначениеЗаполнено(Лист.ID) И НЕ Лист.ПодпапкиСчитаны Тогда + ЗаполнитьДеревоПапокПоИдентификатору(Строка, Лист.ID); + Лист.ПодпапкиСчитаны = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьДеревоПапокПоИдентификатору(ИдентификаторЭлементаДерева, ИдентификаторПапки) + + Лист = Дерево.НайтиПоИдентификатору(ИдентификаторЭлементаДерева); + + Если Лист = Неопределено Тогда + Возврат; + КонецЕсли; + + ЗаполнитьДеревоПодразделений(Лист.ПолучитьЭлементы(), "DMSubdivision", Лист.ID); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоПриАктивизацииСтроки(Элемент) + + ПодключитьОбработчикОжидания("ОбработкаОжидания", 0.2, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОжидания() + + ЗаполнитьСписокПользователей(Элементы.Дерево.ТекущиеДанные.ID); + +КонецПроцедуры + +&НаКлиенте +Процедура Выбрать(Команда) + + ВыбратьВыполнить(); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокПользователейВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + ВыбратьВыполнить(); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыбратьВыполнить() + + ТекущиеДанные = Элементы.СписокПользователей.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("РеквизитID", ТекущиеДанные.ID); + Результат.Вставить("РеквизитТип", ТекущиеДанные.Тип); + Результат.Вставить("РеквизитПредставление", ТекущиеДанные.Наименование); + + Закрыть(Результат); + +КонецПроцедуры + diff --git a/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/ДокументооборотВыборПользователяСПодразделениями.mdo b/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/ДокументооборотВыборПользователяСПодразделениями.mdo new file mode 100644 index 000000000..e98e644f1 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборПользователяСПодразделениями/ДокументооборотВыборПользователяСПодразделениями.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотВыборПользователяСПодразделениями + + ru + Выбор пользователя + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотВыборФайла/Form.form b/SSL/src/CommonForms/ДокументооборотВыборФайла/Form.form new file mode 100644 index 000000000..408450b66 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборФайла/Form.form @@ -0,0 +1,1318 @@ + + + + ГруппаСписки + 25 + + ДеревоПапок + 26 + true + true + + true + + + ДеревоПапок + + None + Change + SelectAll + + ДеревоПапокГруппаИконкаИНаименование + 35 + + ДеревоПапокИндексКартинки + 33 + true + true + + true + + + ДеревоПапок.ИндексКартинки + + + ДеревоПапокИндексКартинкиРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + + ДеревоПапокИндексКартинкиКонтекстноеМеню + 34 + true + + PictureField + Auto + Left + true + + true + true + true + true + + CommonPicture.Папки + + + + 1 + + + + + ДеревоПапокНаименование + 31 + true + true + + true + + + ДеревоПапок.Наименование + + + ДеревоПапокНаименованиеРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + + ДеревоПапокНаименованиеКонтекстноеМеню + 32 + true + + InputField + Auto + Left + true + + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Дерево папок группа иконка и наименование</value> + + + ru + Дерево папок группа иконка и наименование + + + ДеревоПапокГруппаИконкаИНаименованиеРасширеннаяПодсказка + 55 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + ДеревоПапокКоманднаяПанель + 28 + Left + + + OnActivateRow + ДеревоПапокПриАктивизацииСтроки + + + BeforeExpand + ДеревоПапокПередРазворачиванием + + + ДеревоПапокСтрокаПоиска + 46 + + ДеревоПапокСтрокаПоискаРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + ДеревоПапокСтрокаПоискаКонтекстноеМеню + 47 + true + + ДеревоПапок + + true + + + + ДеревоПапокСостояниеПросмотра + 49 + + ДеревоПапокСостояниеПросмотраРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + ДеревоПапокСостояниеПросмотраКонтекстноеМеню + 50 + true + + ViewStatusAddition + ДеревоПапок + + true + + + + ДеревоПапокУправлениеПоиском + 52 + + ДеревоПапокУправлениеПоискомРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + + ДеревоПапокУправлениеПоискомКонтекстноеМеню + 53 + true + + SearchControlAddition + ДеревоПапок + + true + + + + ДеревоПапокРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + + ДеревоПапокКонтекстноеМеню + 27 + true + + Tree + 24 + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + false + false + true + Auto + Auto + true + true + true + true + None + None + None + true +
+ + СписокФайлов + 1 + true + true + + true + + + СписокФайлов + + None + Change + CopyToClipboard + MoveDown + MoveUp + SelectAll + SortListAsc + SortListDesc + + СписокФайловПодписанЭЦП + 17 + true + true + + true + + + СписокФайлов.ПодписанЭЦП + + None + + СписокФайловПодписанЭЦПРасширеннаяПодсказка + 80 + Label + true + true + + Left + + + + СписокФайловПодписанЭЦПКонтекстноеМеню + 18 + true + + PictureField + Auto + true + + CommonPicture.ПодписанЭЦП + + Left + true + + true + true + true + true + + CommonPicture.ПодписанЭЦП + + + + 1 + + + + + ГруппаКартинкаИНаименование + 16 + + СписокФайловИндексКартинки + 12 + true + true + + true + + + СписокФайлов.ИндексКартинки + + + СписокФайловИндексКартинкиРасширеннаяПодсказка + 83 + Label + true + true + + Left + + + + СписокФайловИндексКартинкиКонтекстноеМеню + 13 + true + + PictureField + Auto + Left + true + + true + true + true + true + + CommonPicture.ПиктограммыФайлов + + + + 1 + + + + + СписокФайловФайл + 4 + true + true + + true + + + СписокФайлов.Файл + + + СписокФайловФайлРасширеннаяПодсказка + 85 + Label + true + true + + Left + + + + СписокФайловФайлКонтекстноеМеню + 5 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа картинка и наименование</value> + + + ru + Группа картинка и наименование + + + ГруппаКартинкаИНаименованиеРасширеннаяПодсказка + 82 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + СписокФайловОписание + 8 + true + true + + true + + + СписокФайлов.Описание + + + СписокФайловОписаниеРасширеннаяПодсказка + 87 + Label + true + true + + Left + + + + СписокФайловОписаниеКонтекстноеМеню + 9 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + Normal + + + + СписокФайловРазмер + 10 + true + true + + true + + + СписокФайлов.Размер + + + СписокФайловРазмерРасширеннаяПодсказка + 89 + Label + true + true + + Left + + + + СписокФайловРазмерКонтекстноеМеню + 11 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + Normal + + + + СписокФайловДатаСоздания + 21 + true + true + + true + + + СписокФайлов.ДатаСоздания + + + СписокФайловДатаСозданияРасширеннаяПодсказка + 91 + Label + true + true + + Left + + + + СписокФайловДатаСозданияКонтекстноеМеню + 22 + true + + InputField + true + Auto + true + Left + true + + true + true + true + + ru + ДФ=dd.MM.yyyy + + + ru + ДФ=dd.MM.yyyy + + true + true + Normal + + + + СписокФайловАвтор + 19 + true + true + + true + + + СписокФайлов.Автор + + + СписокФайловАвторРасширеннаяПодсказка + 93 + Label + true + true + + Left + + + + СписокФайловАвторКонтекстноеМеню + 20 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + Normal + + + + СписокФайловКоманднаяПанель + 3 + Left + + + Selection + СписокФайловВыбор + + + СписокФайловСтрокаПоиска + 71 + + СписокФайловСтрокаПоискаРасширеннаяПодсказка + 73 + Label + true + true + + Left + + + + СписокФайловСтрокаПоискаКонтекстноеМеню + 72 + true + + СписокФайлов + + true + + + + СписокФайловСостояниеПросмотра + 74 + + СписокФайловСостояниеПросмотраРасширеннаяПодсказка + 76 + Label + true + true + + Left + + + + СписокФайловСостояниеПросмотраКонтекстноеМеню + 75 + true + + ViewStatusAddition + СписокФайлов + + true + + + + СписокФайловУправлениеПоиском + 77 + + СписокФайловУправлениеПоискомРасширеннаяПодсказка + 79 + Label + true + true + + Left + + + + СписокФайловУправлениеПоискомКонтекстноеМеню + 78 + true + + SearchControlAddition + СписокФайлов + + true + + + + СписокФайловРасширеннаяПодсказка + 70 + Label + true + true + + Left + + + + СписокФайловКонтекстноеМеню + 2 + + СписокФайловКонтекстноеМенюВыбрать + 40 + true + true + + true + + + СписокФайловКонтекстноеМенюВыбратьРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + Form.Command.Выбрать + Normal + Auto + true + true + UserCmds + Auto + + + СписокФайловКонтекстноеМенюОткрытьКарточку + 39 + true + true + + true + + + СписокФайловКонтекстноеМенюОткрытьКарточкуРасширеннаяПодсказка + 69 + Label + true + true + + Left + + + Form.Command.ОткрытьКарточку + Normal + Auto + true + true + UserCmds + Auto + + + 48 + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ true + true + + true + + + <key>ru</key> + <value>Группа списки</value> + + + ru + Группа списки + + + ГруппаСпискиРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + +
+ Top + true + + ФормаКоманднаяПанель + -1 + + ФормаВыбрать + 36 + true + true + + true + + + ФормаВыбратьРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + Form.Command.Выбрать + Auto + true + true + true + UserCmds + Auto + + + ФормаОткрытьКарточку + 38 + true + true + + true + + + ФормаОткрытьКарточкуРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + Form.Command.ОткрытьКарточку + Normal + Auto + true + true + UserCmds + Auto + + + ФормаСправка + 37 + true + true + + true + + + ФормаСправкаРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + 15 + LockOwner + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + СписокФайлов + + <key>ru</key> + <value>Список файлов</value> + + 1 + + ValueTable + + + true + + + true + + + Файл + + <key>ru</key> + <value>Файл</value> + + 1 + + String + + + + true + + + true + + + + Расширение + + <key>ru</key> + <value>Расширение</value> + + 2 + + String + + + + true + + + true + + + + Описание + + <key>ru</key> + <value>Описание</value> + + 3 + + String + + + + true + + + true + + + + Размер + + <key>ru</key> + <value>Размер (Кб)</value> + + 4 + + Number + + + + true + + + true + + + + ИндексКартинки + + <key>ru</key> + <value>Индекс картинки</value> + + 5 + + Number + + + + true + + + true + + + + УникальныйИдентификатор + + <key>ru</key> + <value>Уникальный идентификатор</value> + + 6 + + String + + + + true + + + true + + + + ПодписанЭЦП + + <key>ru</key> + <value>Подписан ЭЦП</value> + + 7 + + Boolean + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 8 + + String + + + + true + + + true + + + + ДатаСоздания + + <key>ru</key> + <value>Дата создания</value> + + 9 + + Date + + + + true + + + true + + + + + ОбъектСсылка + + <key>ru</key> + <value>Объект ссылка</value> + + 2 + + + true + + + true + + + + КаталогДляСохраненияДанных + + <key>ru</key> + <value>Каталог для сохранения данных</value> + + 3 + + String + + + + true + + + true + + + + ДеревоПапок + + <key>ru</key> + <value>Дерево папок</value> + + 4 + + ValueTree + + + true + + + true + + + УникальныйИдентификатор + + <key>ru</key> + <value>Уникальный идентификатор</value> + + 1 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 2 + + String + + + + true + + + true + + + + ИндексКартинки + + <key>ru</key> + <value>Индекс картинки</value> + + 4 + + Number + + + + true + + + true + + + + ПодпапкиСчитаны + + <key>ru</key> + <value>Подпапки считаны</value> + + 5 + + Boolean + + + true + + + true + + + + + ИдентификаторТекущейПапки + + <key>ru</key> + <value>Идентификатор текущей папки</value> + + 5 + + String + + + + true + + + true + + + + ИмяТекущейПапки + + <key>ru</key> + <value>Имя текущей папки</value> + + 6 + + String + + + + true + + + true + + + + ОткрытьКарточку + + <key>ru</key> + <value>Открыть карточку</value> + + 1 + + ru + Открыть карточку + + + true + + + StdPicture.Change + + + + ОткрытьКарточку + + + Picture + Auto + Auto + + + Выбрать + + <key>ru</key> + <value>Выбрать</value> + + 2 + + ru + Выбрать + + + true + + + StdPicture.ChooseValue + + + + Выбрать + + + TextPicture + Auto + Auto + + + + + +
diff --git a/SSL/src/CommonForms/ДокументооборотВыборФайла/Help/ru.html b/SSL/src/CommonForms/ДокументооборотВыборФайла/Help/ru.html new file mode 100644 index 000000000..2bb35f8fa --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборФайла/Help/ru.html @@ -0,0 +1,2 @@ + +

Эта форма предназначена для выбора существующего файла в 1С:Документообороте при выполнении команды Создать - Выбрать из 1С:Документооборота.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотВыборФайла/Module.bsl b/SSL/src/CommonForms/ДокументооборотВыборФайла/Module.bsl new file mode 100644 index 000000000..3ebe5bcfe --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборФайла/Module.bsl @@ -0,0 +1,161 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ЗаполнитьДеревоПапок(ДеревоПапок.ПолучитьЭлементы(), ""); // корневые папки + +КонецПроцедуры + + +&НаСервере +Процедура ЗаполнитьДеревоПапок(ВеткаДерева, ИдентификаторПапки) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMGetSubFoldersRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + ОбъектТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + Запрос.folder = Прокси.ФабрикаXDTO.Создать(ОбъектТип); + Запрос.folder.id = ИдентификаторПапки; + Запрос.folder.type = "DMFileFolder"; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + + ВеткаДерева.Очистить(); + + Для Каждого ПапкаXDTO Из Ответ.folders Цикл + Лист = ВеткаДерева.Добавить(); + Лист.УникальныйИдентификатор = ПапкаXDTO.objectId.id; + Лист.Наименование = ПапкаXDTO.name; + Лист.ИндексКартинки = 0; + Лист.ПодпапкиСчитаны = Ложь; + + ФиктивныйЛист = Лист.ПолучитьЭлементы().Добавить(); // чтобы появился плюсик + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьСписокФайлов() + + СписокФайлов.Очистить(); + + Файлы = РаботаС1СДокументооборотВызовСервера.ПолучитьСписокФайловПоВладельцу(ИдентификаторТекущейПапки, ИмяТекущейПапки, "DMFileFolder"); + + Для каждого СведенияОФайле Из Файлы.files Цикл + НоваяСтрока = СписокФайлов.Добавить(); + + НоваяСтрока.Файл = СведенияОФайле.name; + НоваяСтрока.Расширение = СведенияОФайле.extension; + НоваяСтрока.Описание = СведенияОФайле.description; + НоваяСтрока.Размер = Формат(СведенияОФайле.size/1024, "ЧЦ=10; ЧН=0"); + НоваяСтрока.ПодписанЭЦП = СведенияОФайле.signed; + НоваяСтрока.Автор = СведенияОФайле.author.name; + НоваяСтрока.УникальныйИдентификатор = СведенияОФайле.objectId.id; + НоваяСтрока.ДатаСоздания = СведенияОФайле.creationDate; + + НоваяСтрока.ИндексКартинки = ФайловыеФункцииКлиентСервер.ПолучитьИндексПиктограммыФайла(НоваяСтрока.Расширение); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьКарточку(Команда) + + ОткрытьКарточкуВыполнить(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьКарточкуВыполнить() + + Если Элементы.СписокФайлов.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура("УникальныйИдентификатор", Элементы.СписокФайлов.ТекущиеДанные.УникальныйИдентификатор); + ОткрытьФорму("ОбщаяФорма.ДокументооборотКарточкаФайла", ПараметрыФормы); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьДеревоПапокПоИдентификатору(ИдентификаторЭлементаДерева, ИдентификаторПапки) + + Лист = ДеревоПапок.НайтиПоИдентификатору(ИдентификаторЭлементаДерева); + + Если Лист = Неопределено Тогда + Возврат; + КонецЕсли; + + ЗаполнитьДеревоПапок(Лист.ПолучитьЭлементы(), Лист.УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоПапокПередРазворачиванием(Элемент, Строка, Отказ) + + Лист = ДеревоПапок.НайтиПоИдентификатору(Строка); + + Если Лист = Неопределено Тогда + Возврат; + КонецЕсли; + + Если НЕ Лист.ПодпапкиСчитаны Тогда + ЗаполнитьДеревоПапокПоИдентификатору(Строка, Лист.УникальныйИдентификатор); + Лист.ПодпапкиСчитаны = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоПапокПриАктивизацииСтроки(Элемент) + + Если Элементы.ДеревоПапок.ТекущаяСтрока <> Неопределено Тогда + ПодключитьОбработчикОжидания("ОбработкаОжидания", 0.2, Истина); + КонецЕсли; + +КонецПроцедуры + +// Процедура обновляет правый список +&НаКлиенте +Процедура ОбработкаОжидания() + + Данные = Элементы.ДеревоПапок.ТекущиеДанные; + + Если Данные.УникальныйИдентификатор <> ИдентификаторТекущейПапки Тогда + ИдентификаторТекущейПапки = Данные.УникальныйИдентификатор; + ИмяТекущейПапки = Данные.Наименование; + ОбновитьСписокФайлов(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Выбрать(Команда) + ВыбратьВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + ВыбратьВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ВыбратьВыполнить() + + Если Элементы.СписокФайлов.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = Элементы.СписокФайлов.ТекущиеДанные.УникальныйИдентификатор; + Закрыть(ИдентификаторФайла); + +КонецПроцедуры + diff --git a/SSL/src/CommonForms/ДокументооборотВыборФайла/ДокументооборотВыборФайла.mdo b/SSL/src/CommonForms/ДокументооборотВыборФайла/ДокументооборотВыборФайла.mdo new file mode 100644 index 000000000..815b50129 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотВыборФайла/ДокументооборотВыборФайла.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотВыборФайла + + ru + Выбор файла в 1С:Документооборот + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотДокументы/Form.form b/SSL/src/CommonForms/ДокументооборотДокументы/Form.form new file mode 100644 index 000000000..73104ac7d --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотДокументы/Form.form @@ -0,0 +1,2077 @@ + + + + <key>ru</key> + <value>Документы 1С:Документооборота</value> + + + ГруппаДокументДО + 22 + + Документ + 20 + + <key>ru</key> + <value>Документ</value> + + true + true + + true + + + Документ + + + ru + Документ из "1С:Документооборот", соответствующий текущему объекту + + + ДокументРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + + ДокументКонтекстноеМеню + 21 + true + + InputField + Enter + true + Left + true + + + Opening + ДокументОткрытие + + + Clearing + ДокументОчистка + + 40 + true + true + true + true + true + true + Normal + + + + ГруппаКоманднаяПанель + 23 + + ГруппаСоздать + 10 + + СоздатьВходящийДокумент + 12 + + <key>ru</key> + <value>Входящий документ</value> + + true + true + + true + + + СоздатьВходящийДокументРасширеннаяПодсказка + 66 + Label + true + true + + Left + + + Form.Command.СоздатьВходящийДокумент + Normal + Auto + true + true + UserCmds + Auto + + + СоздатьИсходящийДокумент + 13 + + <key>ru</key> + <value>Исходящий документ</value> + + true + true + + true + + + СоздатьИсходящийДокументРасширеннаяПодсказка + 67 + Label + true + true + + Left + + + Form.Command.СоздатьИсходящийДокумент + Normal + Auto + true + true + UserCmds + Auto + + + СоздатьВнутреннийДокумент + 11 + + <key>ru</key> + <value>Внутренний документ</value> + + true + true + + true + + + СоздатьВнутреннийДокументРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + Form.Command.СоздатьВнутреннийДокумент + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Создать</value> + + + ru + Создать документ + + + ГруппаСоздатьРасширеннаяПодсказка + 65 + Label + true + true + + Left + + + Popup + + + StdPicture.CreateListItem + + Auto + Normal + + + + Выбрать + 24 + true + true + + true + + + ВыбратьРасширеннаяПодсказка + 69 + Label + true + true + + Left + + + Form.Command.Выбрать + Normal + Picture + true + true + UserCmds + Auto + + + Справка + 25 + true + true + + true + + + СправкаРасширеннаяПодсказка + 70 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + + СоздатьБизнесПроцессОсновнойДокумент + 42 + true + true + + true + + + СоздатьБизнесПроцессОсновнойДокументРасширеннаяПодсказка + 71 + Label + true + true + + Left + + + Form.Command.СоздатьБизнесПроцессОсновнойДокумент + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Группа командная панель</value> + + + ru + Группа командная панель + + + ГруппаКоманднаяПанельРасширеннаяПодсказка + 64 + Label + true + true + + Left + + + CommandBar + + Left + + + true + true + + true + + + <key>ru</key> + <value>Группа документ ДО</value> + + + ru + Группа документ ДО + + + ГруппаДокументДОРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ГруппаОтступ + 26 + + СписокДокументов + 1 + + <key>ru</key> + <value>Связанные документы</value> + + true + true + + true + + + СписокДокументов + + true + Top + Add + Copy + Delete + EndEdit + HierarchicalList + List + MoveDown + MoveUp + OutputList + SortListAsc + SortListDesc + Tree + + Заголовок + 4 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + СписокДокументов.Заголовок + + + ЗаголовокРасширеннаяПодсказка + 107 + Label + true + true + + Left + + + + ЗаголовокКонтекстноеМеню + 5 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + РегистрационныйНомер + 6 + + <key>ru</key> + <value>№</value> + + true + true + + true + + + СписокДокументов.РегистрационныйНомер + + + РегистрационныйНомерРасширеннаяПодсказка + 109 + Label + true + true + + Left + + + + РегистрационныйНомерКонтекстноеМеню + 7 + true + + InputField + Enter + true + Left + true + + 10 + true + true + true + true + true + true + Normal + + + + ДатаРегистрации + 8 + + <key>ru</key> + <value>от</value> + + true + true + + true + + + СписокДокументов.ДатаРегистрации + + + ДатаРегистрацииРасширеннаяПодсказка + 111 + Label + true + true + + Left + + + + ДатаРегистрацииКонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + 10 + true + true + true + + ru + ДФ=dd.MM.yyyy + + + ru + ДФ=dd.MM.yyyy + + true + true + true + Normal + + + + СписокДокументовКоманднаяПанель + 3 + + СписокДокументовГруппаСоздать + 31 + + СоздатьСвязанныйВходящий + 33 + true + true + + true + + + СоздатьСвязанныйВходящийРасширеннаяПодсказка + 85 + Label + true + true + + Left + + + Form.Command.СоздатьСвязанныйВходящий + Normal + Auto + true + true + UserCmds + Auto + + + СоздатьСвязанныйИсходящий + 34 + true + true + + true + + + СоздатьСвязанныйИсходящийРасширеннаяПодсказка + 86 + Label + true + true + + Left + + + Form.Command.СоздатьСвязанныйИсходящий + Normal + Auto + true + true + UserCmds + Auto + + + СоздатьСвязанныйВнутренний + 32 + true + true + + true + + + СоздатьСвязанныйВнутреннийРасширеннаяПодсказка + 87 + Label + true + true + + Left + + + Form.Command.СоздатьСвязанныйВнутренний + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Создать</value> + + + ru + Создать связанный документ + + + СписокДокументовГруппаСоздатьРасширеннаяПодсказка + 84 + Label + true + true + + Left + + + Popup + + + StdPicture.CreateListItem + + PictureAndText + Normal + + + + СписокДокументовГруппаПрисоединить + 35 + + ПрисоединитьСвязанныйВходящий + 37 + true + true + + true + + + ПрисоединитьСвязанныйВходящийРасширеннаяПодсказка + 89 + Label + true + true + + Left + + + Form.Command.ПрисоединитьСвязанныйВходящий + Normal + Auto + true + true + UserCmds + Auto + + + ПрисоединитьСвязанныйИсходящий + 38 + true + true + + true + + + ПрисоединитьСвязанныйИсходящийРасширеннаяПодсказка + 90 + Label + true + true + + Left + + + Form.Command.ПрисоединитьСвязанныйИсходящий + Normal + Auto + true + true + UserCmds + Auto + + + ПрисоединитьСвязанныйВнутренний + 36 + true + true + + true + + + ПрисоединитьСвязанныйВнутреннийРасширеннаяПодсказка + 91 + Label + true + true + + Left + + + Form.Command.ПрисоединитьСвязанныйВнутренний + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Приложить</value> + + + ru + Добавить документ в список связанных + + + СписокДокументовГруппаПрисоединитьРасширеннаяПодсказка + 88 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + СписокДокументовСоздатьБизнесПроцессСвязанныйДокумент + 43 + true + true + + true + + + СписокДокументовСоздатьБизнесПроцессСвязанныйДокументРасширеннаяПодсказка + 92 + Label + true + true + + Left + + + Form.Command.СоздатьБизнесПроцессСвязанныйДокумент + Normal + Auto + true + true + UserCmds + Auto + + + ИзменитьСвязанный + 29 + true + true + + true + + + ИзменитьСвязанныйРасширеннаяПодсказка + 93 + Label + true + true + + Left + + + Form.Command.ИзменитьСвязанный + Normal + Auto + true + true + UserCmds + Auto + + + СписокДокументовГруппаУдалить + 44 + + УдалитьСвязь + 45 + true + true + + true + + + УдалитьСвязьРасширеннаяПодсказка + 95 + Label + true + true + + Left + + + Form.Command.УдалитьСвязь + Normal + Auto + true + true + UserCmds + Auto + + + УдалитьСвязанный + 30 + true + true + + true + + + УдалитьСвязанныйРасширеннаяПодсказка + 96 + Label + true + true + + Left + + + Form.Command.УдалитьСвязанный + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Удалить</value> + + + ru + Удалить связь или связанный документ + + + СписокДокументовГруппаУдалитьРасширеннаяПодсказка + 94 + Label + true + true + + Left + + + Popup + + + StdPicture.Delete + + Auto + Normal + + + Left + + + Selection + СписокДокументовВыбор + + + OnActivateRow + СписокДокументовПриАктивизацииСтроки + + + BeforeRowChange + СписокДокументовПередНачаломИзменения + + + СписокДокументовСтрокаПоиска + 98 + + СписокДокументовСтрокаПоискаРасширеннаяПодсказка + 100 + Label + true + true + + Left + + + + СписокДокументовСтрокаПоискаКонтекстноеМеню + 99 + true + + СписокДокументов + + true + + + + СписокДокументовСостояниеПросмотра + 101 + + СписокДокументовСостояниеПросмотраРасширеннаяПодсказка + 103 + Label + true + true + + Left + + + + СписокДокументовСостояниеПросмотраКонтекстноеМеню + 102 + true + + ViewStatusAddition + СписокДокументов + + true + + + + СписокДокументовУправлениеПоиском + 104 + + СписокДокументовУправлениеПоискомРасширеннаяПодсказка + 106 + Label + true + true + + Left + + + + СписокДокументовУправлениеПоискомКонтекстноеМеню + 105 + true + + SearchControlAddition + СписокДокументов + + true + + + + СписокДокументовРасширеннаяПодсказка + 97 + Label + true + true + + Left + + + + СписокДокументовКонтекстноеМеню + 2 + + СписокДокументовКонтекстноеМенюГруппаСоздать + 53 + + СписокДокументовКонтекстноеМенюСоздатьСвязанныйВходящий + 54 + true + true + + true + + + СписокДокументовКонтекстноеМенюСоздатьСвязанныйВходящийРасширеннаяПодсказка + 74 + Label + true + true + + Left + + + Form.Command.СоздатьСвязанныйВходящий + Normal + Auto + true + true + UserCmds + Auto + + + СписокДокументовКонтекстноеМенюСоздатьСвязанныйИсходящий + 55 + true + true + + true + + + СписокДокументовКонтекстноеМенюСоздатьСвязанныйИсходящийРасширеннаяПодсказка + 75 + Label + true + true + + Left + + + Form.Command.СоздатьСвязанныйИсходящий + Normal + Auto + true + true + UserCmds + Auto + + + СписокДокументовКонтекстноеМенюСоздатьСвязанныйВнутренний + 56 + true + true + + true + + + СписокДокументовКонтекстноеМенюСоздатьСвязанныйВнутреннийРасширеннаяПодсказка + 76 + Label + true + true + + Left + + + Form.Command.СоздатьСвязанныйВнутренний + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Создать</value> + + + ru + Список документов контекстное меню группа создать + + + СписокДокументовКонтекстноеМенюГруппаСоздатьРасширеннаяПодсказка + 73 + Label + true + true + + Left + + + Popup + + + StdPicture.CreateListItem + + PictureAndText + Normal + + + + СписокДокументовКонтекстноеМенюГруппаПрисоединить + 57 + + СписокДокументовКонтекстноеМенюПрисоединитьСвязанныйВходящий + 58 + true + true + + true + + + СписокДокументовКонтекстноеМенюПрисоединитьСвязанныйВходящийРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + Form.Command.ПрисоединитьСвязанныйВходящий + Normal + Auto + true + true + UserCmds + Auto + + + СписокДокументовКонтекстноеМенюПрисоединитьСвязанныйИсходящий + 59 + true + true + + true + + + СписокДокументовКонтекстноеМенюПрисоединитьСвязанныйИсходящийРасширеннаяПодсказка + 79 + Label + true + true + + Left + + + Form.Command.ПрисоединитьСвязанныйИсходящий + Normal + Auto + true + true + UserCmds + Auto + + + СписокДокументовКонтекстноеМенюПрисоединитьСвязанныйВнутренний + 60 + true + true + + true + + + СписокДокументовКонтекстноеМенюПрисоединитьСвязанныйВнутреннийРасширеннаяПодсказка + 80 + Label + true + true + + Left + + + Form.Command.ПрисоединитьСвязанныйВнутренний + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Приложить</value> + + + ru + Список документов контекстное меню группа присоединить + + + СписокДокументовКонтекстноеМенюГруппаПрисоединитьРасширеннаяПодсказка + 77 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + СписокДокументовИзменитьСвязанный + 40 + + <key>ru</key> + <value>Открыть</value> + + true + true + + true + + + СписокДокументовИзменитьСвязанныйРасширеннаяПодсказка + 81 + Label + true + true + + Left + + + Form.Item.СписокДокументов.StandardCommand.Change + Normal + Auto + true + true + UserCmds + Auto + + + СписокДокументовОбновитьСвязанные + 39 + true + true + + true + + + СписокДокументовОбновитьСвязанныеРасширеннаяПодсказка + 82 + Label + true + true + + Left + + + Form.Command.ОбновитьСвязанные + Normal + Auto + true + true + UserCmds + Auto + + + СписокДокументовКонтекстноеМенюГруппа + 41 + true + true + + true + + + <key>ru</key> + <value>Список документов контекстное меню группа</value> + + + ru + Список документов контекстное меню группа + + + СписокДокументовКонтекстноеМенюГруппаРасширеннаяПодсказка + 83 + Label + true + true + + Left + + + + Item.СписокДокументов + + + + Tree + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true +
+ + ГруппаИнфо + 46 + + ДекорацияВнимание + 47 + + <key>ru</key> + <value>Декорация внимание</value> + + true + true + + true + + + ДекорацияВниманиеРасширеннаяПодсказка + 122 + Label + true + true + + Left + + + + ДекорацияВниманиеКонтекстноеМеню + 48 + true + + 2 + true + 1 + true + + + CommonPicture.Внимание + + + + + ДекорацияИнфо + 49 + + <key>ru</key> + <value>Не настроено заполнение документа 1С:Документооборота из</value> + + true + true + + true + + + ДекорацияИнфоРасширеннаяПодсказка + 123 + Label + true + true + + Left + + + + ДекорацияИнфоКонтекстноеМеню + 50 + true + + Label + true + true + + Left + + + + ДекорацияСсылка + 51 + + <key>ru</key> + <value>[?]</value> + + true + true + + true + + + ДекорацияСсылкаРасширеннаяПодсказка + 124 + Label + true + true + + Left + + + + ДекорацияСсылкаКонтекстноеМеню + 52 + true + + Label + true + true + + + Click + ДекорацияСсылкаНажатие + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Группа инфо</value> + + + ru + Группа инфо + + + ГруппаИнфоРасширеннаяПодсказка + 121 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Связанные документы</value> + + + ru + Группа отступ + + + ГруппаОтступРасширеннаяПодсказка + 72 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + +
+ None + false + + ФормаКоманднаяПанель + -1 + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + СписокДокументов + + <key>ru</key> + <value>Список документов</value> + + 1 + + ValueTree + + + true + + + true + + + Заголовок + + <key>ru</key> + <value>Заголовок</value> + + 1 + + String + + + + true + + + true + + + + РегистрационныйНомер + + <key>ru</key> + <value>Регистрационный номер</value> + + 2 + + String + + + + true + + + true + + + + ДатаРегистрации + + <key>ru</key> + <value>Дата регистрации</value> + + 3 + + Date + + + + true + + + true + + + + ID + + <key>ru</key> + <value>ID</value> + + 4 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 6 + + String + + + + true + + + true + + + + + Документ + + <key>ru</key> + <value>Документ</value> + + 2 + + String + + + + true + + + true + + + + ДокументID + + <key>ru</key> + <value>Документ</value> + + 3 + + String + + + + true + + + true + + + + ДокументТип + + <key>ru</key> + <value>Документ</value> + + 4 + + String + + + + true + + + true + + + + ИмяПотребителя + + <key>ru</key> + <value>Имя потребителя</value> + + 5 + + String + + + + true + + + true + + + + СоздатьВходящийДокумент + + <key>ru</key> + <value>Создать входящий документ</value> + + 1 + + ru + Создать входящий документ + + + true + + + + СоздатьВходящийДокумент + + + Auto + Auto + + + СоздатьИсходящийДокумент + + <key>ru</key> + <value>Создать исходящий документ</value> + + 2 + + ru + Создать исходящий документ + + + true + + + + СоздатьИсходящийДокумент + + + Auto + Auto + + + СоздатьВнутреннийДокумент + + <key>ru</key> + <value>Создать внутренний документ</value> + + 3 + + ru + Создать внутренний документ + + + true + + + + СоздатьВнутреннийДокумент + + + Auto + Auto + + + Выбрать + + <key>ru</key> + <value>Выбрать</value> + + 4 + + ru + Выбрать документ + + + true + + + StdPicture.ChooseValue + + + + Выбрать + + + Auto + Auto + + + СоздатьСвязанныйВходящий + + <key>ru</key> + <value>Входящий документ</value> + + 6 + + ru + Создать связанный входящий + + + true + + + + СоздатьСвязанныйВходящий + + + Auto + Auto + + + ПрисоединитьСвязанныйВходящий + + <key>ru</key> + <value>Входящий документ</value> + + 7 + + ru + Присоединить связанный входящий + + + true + + + + ПрисоединитьСвязанныйВходящий + + + Auto + Auto + + + УдалитьСвязанный + + <key>ru</key> + <value>Пометить документ на удаление</value> + + 5 + + ru + Пометить связанный документ на удаление + + + true + + + + УдалитьСвязанный + + + Auto + Auto + + + ИзменитьСвязанный + + <key>ru</key> + <value>Изменить</value> + + 8 + + ru + Изменить связанный документ (F2) + + + true + + + StdPicture.Change + + + + ИзменитьСвязанный + + + Auto + Auto + + + СоздатьСвязанныйИсходящий + + <key>ru</key> + <value>Исходящий документ</value> + + 9 + + ru + Создать связанный входящий + + + true + + + + СоздатьСвязанныйИсходящий + + + Auto + Auto + + + СоздатьСвязанныйВнутренний + + <key>ru</key> + <value>Внутренний документ</value> + + 10 + + ru + Создать связанный входящий + + + true + + + + СоздатьСвязанныйВнутренний + + + Auto + Auto + + + ПрисоединитьСвязанныйИсходящий + + <key>ru</key> + <value>Исходящий документ</value> + + 11 + + ru + Присоединить связанный входящий + + + true + + + + ПрисоединитьСвязанныйИсходящий + + + Auto + Auto + + + ПрисоединитьСвязанныйВнутренний + + <key>ru</key> + <value>Внутренний документ</value> + + 12 + + ru + Присоединить связанный входящий + + + true + + + + ПрисоединитьСвязанныйВнутренний + + + Auto + Auto + + + ОбновитьСвязанные + + <key>ru</key> + <value>Обновить</value> + + 13 + + ru + Обновить связанные + + + true + + F5 + + StdPicture.Refresh + + + + ОбновитьСвязанные + + + Auto + Auto + + + СоздатьБизнесПроцессОсновнойДокумент + + <key>ru</key> + <value>Создать бизнес-процесс</value> + + 14 + + ru + Создать бизнес-процесс документооборота по основному документу + + + true + + + StdPicture.BusinessProcess + + + + СоздатьБизнесПроцессОсновнойДокумент + + + Auto + Auto + + + СоздатьБизнесПроцессСвязанныйДокумент + + <key>ru</key> + <value>Создать бизнес-процесс</value> + + 15 + + ru + Создать бизнес-процесс документооборота по связанному документу + + + true + + + StdPicture.BusinessProcess + + + + СоздатьБизнесПроцессСвязанныйДокумент + + + Auto + Auto + + + УдалитьСвязь + + <key>ru</key> + <value>Удалить связь с документом</value> + + 16 + + ru + Удалить связь + + + true + + + + УдалитьСвязь + + + Auto + Auto + + + ВнешнийОбъект + + AnyRef + + true + + + + + +
diff --git a/SSL/src/CommonForms/ДокументооборотДокументы/Help/ru.html b/SSL/src/CommonForms/ДокументооборотДокументы/Help/ru.html new file mode 100644 index 000000000..843ef327f --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотДокументы/Help/ru.html @@ -0,0 +1,5 @@ + +

В форме выводится информация о входящем, исходящем или внутреннем документе, соответствующем объекту внешней по отношению к 1С:Документооборот системы.

+

Внешнему объекту может соответствовать только один входящий, исходящий или внутренний документ в 1С:Документообороте.
В поле "Документ" выводится наименование, номер и дата этого документа.
Кнопка "Создать" позволяет создать новый документ, соответствующий внешнему объекту.
Изменить или просмотреть уже созданный документ можно с помощью кнопки "Открыть".
С помощью кнопки "Выбрать" можно привязать к внешнему объекту уже существующий в 1С:Документообороте документ.

+

В списке "Связанные документы" выводятся документы, связанные с документом, соответствующем внешнему объекту.
Например, для договора в этом списке могут отображаться дополнительные соглашения, акты, спецификации и пр.
Кнопка "Создать связанный" позволяет создать новый связанный документ, при этом требуется указать тип связи.
Кнопка "Приложить связанный" позволяет сделать связанным уже существующий документ.

+

 

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотДокументы/Module.bsl b/SSL/src/CommonForms/ДокументооборотДокументы/Module.bsl new file mode 100644 index 000000000..3be90046e --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотДокументы/Module.bsl @@ -0,0 +1,929 @@ + +/////////////////////////////////////////////////////////// +// Процедуры и функции + +&НаСервере +Процедура ПолучитьДанныеДокумента() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + ExternalObject = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "ExternalObject"); + ExternalObject.id = Строка(Параметры.ВнешнийОбъект.УникальныйИдентификатор()); + ExternalObject.type = Строка(ТипЗнч(Параметры.ВнешнийОбъект)); + ExternalObject.name = Строка(Параметры.ВнешнийОбъект); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetDocumentListRequest"); + Запрос.externalObjects.Добавить(ExternalObject); + + Запрос.columnSet.Добавить("name"); + Запрос.columnSet.Добавить("relations"); + + Результат = Прокси.execute(Запрос); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат, "DMError") Тогда + ВызватьИсключение Результат.description; + КонецЕсли; + + Если Результат.documents.Количество() > 0 Тогда + Объект = Результат.documents[0]; + + ДокументID = Объект.objectId.id; + ДокументТип = Объект.objectId.type; + Документ = Объект.name; + ДополнитьПредставлениеДокумента(Документ, ДокументТип); + + Дерево = РеквизитФормыВЗначение("СписокДокументов"); + Дерево.Строки.Очистить(); + Для Каждого Связь Из Объект.relations Цикл + + НайденнаяСтрока = Дерево.Строки.Найти(Связь.relationType.name, "Заголовок", Ложь); + Если НайденнаяСтрока <> Неопределено Тогда + СтрокаТипСвязи = НайденнаяСтрока; + Иначе + СтрокаТипСвязи = Дерево.Строки.Добавить(); + СтрокаТипСвязи.Заголовок = Связь.relationType.name; + СтрокаТипСвязи.ID = Связь.relationType.objectId.id; + СтрокаТипСвязи.Тип = Связь.relationType.objectId.type; + КонецЕсли; + + НоваяСтрока = СтрокаТипСвязи.Строки.Добавить(); + НоваяСтрока.Заголовок = Связь.relatedDocument.title; + НоваяСтрока.Тип = Связь.relatedDocument.objectId.type; + НоваяСтрока.ID = Связь.relatedDocument.objectId.id; + НоваяСтрока.РегистрационныйНомер = Связь.relatedDocument.regNumber; + НоваяСтрока.ДатаРегистрации = Связь.relatedDocument.regDate; + КонецЦикла; + ЗначениеВРеквизитФормы(Дерево, "СписокДокументов"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьФормуДокумента(Тип, ID) + + Владелец = Элементы.Документ; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Тип", Тип); + ПараметрыФормы.Вставить("ID", ID); + ПараметрыФормы.Вставить("ВнешнийОбъект", Параметры.ВнешнийОбъект); + + Если Тип = "DMIncomingDocument" Тогда + ОткрытьФорму("ОбщаяФорма.ДокументооборотВходящийДокумент", ПараметрыФормы, Владелец); + ИначеЕсли Тип = "DMOutgoingDocument" Тогда + ОткрытьФорму("ОбщаяФорма.ДокументооборотИсходящийДокумент", ПараметрыФормы, Владелец); + ИначеЕсли Тип = "DMInternalDocument" Тогда + ОткрытьФорму("ОбщаяФорма.ДокументооборотВнутреннийДокумент", ПараметрыФормы, Владелец); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьФормуСвязанногоДокумента(Тип, ID) + + Владелец = Элементы.СписокДокументов; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Тип", Тип); + ПараметрыФормы.Вставить("ID", ID); + + Если Тип = "DMIncomingDocument" Тогда + ОткрытьФорму("ОбщаяФорма.ДокументооборотВходящийДокумент", ПараметрыФормы, Владелец); + ИначеЕсли Тип = "DMOutgoingDocument" Тогда + ОткрытьФорму("ОбщаяФорма.ДокументооборотИсходящийДокумент", ПараметрыФормы, Владелец); + ИначеЕсли Тип = "DMInternalDocument" Тогда + ОткрытьФорму("ОбщаяФорма.ДокументооборотВнутреннийДокумент", ПараметрыФормы, Владелец); + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ДобавлениеСвязи(ID, Тип, ВнешнийОбъект) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMAddObjectLinkRequest"); + + Запрос.ownerObject = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "ExternalObject"); + Запрос.ownerObject.id = Строка(ВнешнийОбъект.УникальныйИдентификатор()); + Запрос.ownerObject.type = Строка(ТипЗнч(ВнешнийОбъект)); + Запрос.ownerObject.name = Строка(ВнешнийОбъект); + + Запрос.linkedObject = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectID"); + Запрос.linkedObject.id = ID; + Запрос.linkedObject.type = Тип; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура УдалениеСвязи(ID, Тип, ВнешнийОбъект) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRemoveObjectLinkRequest"); + + Запрос.ownerObject = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "ExternalObject"); + Запрос.ownerObject.id = Строка(ВнешнийОбъект.УникальныйИдентификатор()); + Запрос.ownerObject.type = Строка(ТипЗнч(ВнешнийОбъект)); + Запрос.ownerObject.name = Строка(ВнешнийОбъект); + + Запрос.linkedObject = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectID"); + Запрос.linkedObject.id = ID; + Запрос.linkedObject.type = Тип; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура ДополнитьПредставлениеДокумента(Документ, ДокументТип) + + Если ЗначениеЗаполнено(Документ) Тогда + Если ДокументТип = "DMIncomingDocument" Тогда + Документ = Документ + НСтр("ru = ' (Входящий документ)'"); + ИначеЕсли ДокументТип = "DMOutgoingDocument" Тогда + Документ = Документ + НСтр("ru = ' (Исходящий документ)'"); + ИначеЕсли ДокументТип = "DMInternalDocument" Тогда + Документ = Документ + НСтр("ru = ' (Внутренний документ)'"); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура РазвернутьДеревоСвязанных() + + Строки = СписокДокументов.ПолучитьЭлементы(); + Для Каждого Строка Из Строки Цикл + Элементы.СписокДокументов.Развернуть(Строка.ПолучитьИдентификатор(), Истина); + КонецЦикла; + +КонецПроцедуры + + +/////////////////////////////////////////////////////////// +// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + МетаданныеПотребителя = Параметры.ВнешнийОбъект.Метаданные(); + ИмяПотребителя = ?(МетаданныеПотребителя.Синоним <> "", МетаданныеПотребителя.Синоним, МетаданныеПотребителя.Имя); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | ТипОбъектаДокументооборота + |ИЗ + | Справочник.НастройкиЗаполненияОбъектов1СДокументооборота + |ГДЕ + | ТипОбъектаПотребителя = &ТипОбъектаПотребителя + | И Не ПометкаУдаления"; + + Запрос.УстановитьПараметр("ТипОбъектаПотребителя", Параметры.ВнешнийОбъект.Метаданные().ПолноеИмя()); + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + ТипОбъектаДокументооборота = Выборка.ТипОбъектаДокументооборота; + Если ТипОбъектаДокументооборота = "DMIncomingDocument" Тогда + Элементы.СоздатьВходящийДокумент.Видимость = Истина; + Элементы.СоздатьИсходящийДокумент.Видимость = Ложь; + Элементы.СоздатьВнутреннийДокумент.Видимость = Ложь; + ИначеЕсли ТипОбъектаДокументооборота = "DMOutgoingDocument" Тогда + Элементы.СоздатьВходящийДокумент.Видимость = Ложь; + Элементы.СоздатьИсходящийДокумент.Видимость = Истина; + Элементы.СоздатьВнутреннийДокумент.Видимость = Ложь; + ИначеЕсли ТипОбъектаДокументооборота = "DMInternalDocument" Тогда + Элементы.СоздатьВходящийДокумент.Видимость = Ложь; + Элементы.СоздатьИсходящийДокумент.Видимость = Ложь; + Элементы.СоздатьВнутреннийДокумент.Видимость = Истина; + КонецЕсли; + Элементы.ГруппаИнфо.Видимость = Ложь; + Иначе + Элементы.ДекорацияИнфо.Заголовок = НСтр("ru = 'Не настроено заполнение документа 1С:Документооборота из '''") + ИмяПотребителя + НСтр("ru = ''''"); + КонецЕсли; + + ПолучитьДанныеДокумента(); + + Если ЗначениеЗаполнено(Документ) Тогда + Элементы.ГруппаСоздать.Доступность = Ложь; + Элементы.СоздатьВходящийДокумент.Доступность = Ложь; + Элементы.СоздатьИсходящийДокумент.Доступность = Ложь; + Элементы.СоздатьВнутреннийДокумент.Доступность = Ложь; + + Элементы.Выбрать.Доступность = Ложь; + Элементы.ГруппаИнфо.Видимость = Ложь; + Иначе + Элементы.СписокДокументовГруппаСоздать.Доступность = Ложь; + Элементы.СоздатьСвязанныйВходящий.Доступность = Ложь; + Элементы.СоздатьСвязанныйИсходящий.Доступность = Ложь; + Элементы.СоздатьСвязанныйВнутренний.Доступность = Ложь; + + Элементы.СписокДокументовКонтекстноеМенюГруппаСоздать.Доступность = Ложь; + + Элементы.СписокДокументовГруппаПрисоединить.Доступность = Ложь; + Элементы.ПрисоединитьСвязанныйВходящий.Доступность = Ложь; + Элементы.ПрисоединитьСвязанныйИсходящий.Доступность = Ложь; + Элементы.ПрисоединитьСвязанныйВнутренний.Доступность = Ложь; + + Элементы.СписокДокументовКонтекстноеМенюГруппаПрисоединить.Доступность = Ложь; + + Элементы.СоздатьБизнесПроцессОсновнойДокумент.Доступность = Ложь; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + РазвернутьДеревоСвязанных(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.Документ Тогда + ДокументID = Источник.ID; + ДокументТип = Источник.Тип; + Документ = Источник.Представление; + + Элементы.ГруппаСоздать.Доступность = Ложь; + Элементы.СоздатьВходящийДокумент.Доступность = Ложь; + Элементы.СоздатьИсходящийДокумент.Доступность = Ложь; + Элементы.СоздатьВнутреннийДокумент.Доступность = Ложь; + + Элементы.Выбрать.Доступность = Ложь; + Элементы.СоздатьБизнесПроцессОсновнойДокумент.Доступность = Истина; + + Элементы.СписокДокументовГруппаСоздать.Доступность = Истина; + Элементы.СоздатьСвязанныйВходящий.Доступность = Истина; + Элементы.СоздатьСвязанныйИсходящий.Доступность = Истина; + Элементы.СоздатьСвязанныйВнутренний.Доступность = Истина; + + Элементы.СписокДокументовКонтекстноеМенюГруппаСоздать.Доступность = Истина; + + Элементы.СписокДокументовГруппаПрисоединить.Доступность = Истина; + Элементы.ПрисоединитьСвязанныйВходящий.Доступность = Истина; + Элементы.ПрисоединитьСвязанныйИсходящий.Доступность = Истина; + Элементы.ПрисоединитьСвязанныйВнутренний.Доступность = Истина; + + Элементы.СписокДокументовКонтекстноеМенюГруппаПрисоединить.Доступность = Истина; + + ДополнитьПредставлениеДокумента(Документ, ДокументТип); + КонецЕсли; + + Если ИмяСобытия = "Изменен" И Параметр = Элементы.СписокДокументов Тогда + СвязанныйДокументID = Источник.ID; + СвязанныйДокументТип = Источник.Тип; + + ПолучитьДанныеДокумента(); + РазвернутьДеревоСвязанных(); + + Для Каждого СтрокаТипСвязи Из СписокДокументов.ПолучитьЭлементы() Цикл + Для Каждого СтрокаСвязанныйДокумент Из СтрокаТипСвязи.ПолучитьЭлементы() Цикл + Если СтрокаСвязанныйДокумент.ID = СвязанныйДокументID И СтрокаСвязанныйДокумент.Тип = СвязанныйДокументТип Тогда + Элементы.СписокДокументов.ТекущаяСтрока = СтрокаСвязанныйДокумент.ПолучитьИдентификатор(); + Прервать; + КонецЕсли; + КонецЦикла; + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + + +///////////////////////////////////////////////////////////////////////////////////////////////// +// Основной документ + +&НаКлиенте +Процедура СоздатьВходящийДокумент(Команда) + + Если ЗначениеЗаполнено(Документ) Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ВнешнийОбъект", Параметры.ВнешнийОбъект); + + ОткрытьФорму("ОбщаяФорма.ДокументооборотВходящийДокумент", ПараметрыФормы, Элементы.Документ); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьИсходящийДокумент(Команда) + + Если ЗначениеЗаполнено(Документ) Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ВнешнийОбъект", Параметры.ВнешнийОбъект); + + ОткрытьФорму("ОбщаяФорма.ДокументооборотИсходящийДокумент", ПараметрыФормы, Элементы.Документ); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьВнутреннийДокумент(Команда) + + Если ЗначениеЗаполнено(Документ) Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ВнешнийОбъект", Параметры.ВнешнийОбъект); + + ОткрытьФорму("ОбщаяФорма.ДокументооборотВнутреннийДокумент", ПараметрыФормы, Элементы.Документ); + +КонецПроцедуры + +&НаКлиенте +Процедура ДокументОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ОткрытьФормуДокумента(ДокументТип, ДокументID); + +КонецПроцедуры + +&НаКлиенте +Процедура Выбрать(Команда) + + СтарыйID = ДокументID; + СтарыйТип = ДокументТип; + СтароеПредставление = Документ; + + Если ЗначениеЗаполнено(Документ) Тогда + ТекстВопроса = НСтр("ru = 'Вы действительно хотите заменить документ, соответствующий'") + + Символы.ПС + + Строка(Параметры.ВнешнийОбъект) + + "?"; + + Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, ,КодВозвратаДиалога.Нет); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + + СписокВыбора = Новый СписокЗначений; + СписокВыбора.Добавить("DMIncomingDocument", "Входящий документ"); + СписокВыбора.Добавить("DMOutgoingDocument", "Исходящий документ"); + СписокВыбора.Добавить("DMInternalDocument", "Внутренний документ"); + + ВыбранныйЭлемент = СписокВыбора.ВыбратьЭлемент("Укажите тип документа"); + Если ВыбранныйЭлемент <> Неопределено Тогда + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка(ВыбранныйЭлемент.Значение, "Документ", ЭтаФорма); + Модифицированность = Ложь; + + ИзменитьДокументТекущегоОбъекта(СтарыйID, СтарыйТип); + РазвернутьДеревоСвязанных(); + + Если Не ЗначениеЗаполнено(СтароеПредставление) И ЗначениеЗаполнено(Документ) Тогда + Элементы.ГруппаСоздать.Доступность = Ложь; + Элементы.СоздатьВходящийДокумент.Доступность = Ложь; + Элементы.СоздатьИсходящийДокумент.Доступность = Ложь; + Элементы.СоздатьВнутреннийДокумент.Доступность = Ложь; + + Элементы.Выбрать.Доступность = Ложь; + Элементы.СоздатьБизнесПроцессОсновнойДокумент.Доступность = Истина; + + Элементы.СписокДокументовГруппаСоздать.Доступность = Истина; + Элементы.СоздатьСвязанныйВходящий.Доступность = Истина; + Элементы.СоздатьСвязанныйИсходящий.Доступность = Истина; + Элементы.СоздатьСвязанныйВнутренний.Доступность = Истина; + + Элементы.СписокДокументовКонтекстноеМенюГруппаСоздать.Доступность = Истина; + + Элементы.СписокДокументовГруппаПрисоединить.Доступность = Истина; + Элементы.ПрисоединитьСвязанныйВходящий.Доступность = Истина; + Элементы.ПрисоединитьСвязанныйИсходящий.Доступность = Истина; + Элементы.ПрисоединитьСвязанныйВнутренний.Доступность = Истина; + + Элементы.СписокДокументовКонтекстноеМенюГруппаПрисоединить.Доступность = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ИзменитьДокументТекущегоОбъекта(СтарыйID, СтарыйТип) + + Если (СтарыйID <> ДокументID) Или (СтарыйТип <> ДокументТип) Тогда + + Если ЗначениеЗаполнено(СтарыйID) И ЗначениеЗаполнено(СтарыйТип) Тогда // удаление старой связи + УдалениеСвязи(СтарыйID, СтарыйТип, Параметры.ВнешнийОбъект) + КонецЕсли; + + Если ЗначениеЗаполнено(ДокументID) И ЗначениеЗаполнено(ДокументТип) Тогда // добавление новой связи + ДобавлениеСвязи(ДокументID, ДокументТип, Параметры.ВнешнийОбъект); + КонецЕсли; + + ПолучитьДанныеДокумента(); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДокументОчистка(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если Не ЗначениеЗаполнено(Документ) Тогда + Возврат; + КонецЕсли; + + ТекстВопроса = НСтр("ru = 'Вы действительно хотите удалить соответствие для'") + + Символы.ПС + + Строка(Параметры.ВнешнийОбъект) + + "?"; + + Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, ,КодВозвратаДиалога.Нет); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + УдалениеСвязи(ДокументID, ДокументТип, Параметры.ВнешнийОбъект); + + ДокументID = ""; + ДокументТип = ""; + Документ = ""; + + СписокДокументов.ПолучитьЭлементы().Очистить(); + + Элементы.ГруппаСоздать.Доступность = Истина; + Элементы.СоздатьВходящийДокумент.Доступность = Истина; + Элементы.СоздатьИсходящийДокумент.Доступность = Истина; + Элементы.СоздатьВнутреннийДокумент.Доступность = Истина; + + Элементы.Выбрать.Доступность = Истина; + Элементы.СоздатьБизнесПроцессОсновнойДокумент.Доступность = Ложь; + + Элементы.СписокДокументовГруппаСоздать.Доступность = Ложь; + Элементы.СоздатьСвязанныйВходящий.Доступность = Ложь; + Элементы.СоздатьСвязанныйИсходящий.Доступность = Ложь; + Элементы.СоздатьСвязанныйВнутренний.Доступность = Ложь; + + Элементы.СписокДокументовКонтекстноеМенюГруппаСоздать.Доступность = Ложь; + + Элементы.СписокДокументовГруппаПрисоединить.Доступность = Ложь; + Элементы.ПрисоединитьСвязанныйВходящий.Доступность = Ложь; + Элементы.ПрисоединитьСвязанныйИсходящий.Доступность = Ложь; + Элементы.ПрисоединитьСвязанныйВнутренний.Доступность = Ложь; + + Элементы.СписокДокументовКонтекстноеМенюГруппаПрисоединить.Доступность = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьБизнесПроцессОсновнойДокумент(Команда) + + РаботаС1СДокументооборотКлиент.СоздатьБизнесПроцессПоДокументуИзДО(ДокументID, ДокументТип); + +КонецПроцедуры + +///////////////////////////////////////////////////////////////////////////////////////////////// +// Связанные документы + +&НаКлиенте +Процедура СписокДокументовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ТекущиеДанные = Элементы.СписокДокументов.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ОткрытьФормуСвязанногоДокумента(ТекущиеДанные.Тип, ТекущиеДанные.ID); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокДокументовПередНачаломИзменения(Элемент, Отказ) + + Отказ = Истина; + + ТекущиеДанные = Элементы.СписокДокументов.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ОткрытьФормуСвязанногоДокумента(ТекущиеДанные.Тип, ТекущиеДанные.ID); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьСвязанный(Команда) + + ТекущиеДанные = Элементы.СписокДокументов.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ОткрытьФормуДокумента(ТекущиеДанные.Тип, ТекущиеДанные.ID); + +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьСвязь(Команда) + + ТекущиеДанные = Элементы.СписокДокументов.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Тип = ТекущиеДанные.Тип; + ID = ТекущиеДанные.ID; + + Если Тип = "DMIncomingDocument" Или Тип = "DMOutgoingDocument" Или Тип = "DMInternalDocument" Тогда + + ДокументСтруктура = Новый Структура; + ДокументСтруктура.Вставить("РеквизитID", ДокументID); + ДокументСтруктура.Вставить("РеквизитТип", ДокументТип); + ДокументСтруктура.Вставить("РеквизитПредставление", Документ); + + СвязанныйДокументСтруктура = Новый Структура; + СвязанныйДокументСтруктура.Вставить("РеквизитID", ТекущиеДанные.ID); + СвязанныйДокументСтруктура.Вставить("РеквизитТип", ТекущиеДанные.Тип); + СвязанныйДокументСтруктура.Вставить("РеквизитПредставление", ТекущиеДанные.Заголовок); + + НайденнаяСтрока = СписокДокументов.НайтиПоИдентификатору(Элементы.СписокДокументов.ТекущаяСтрока); + Родитель = НайденнаяСтрока.ПолучитьРодителя(); + + ТипСвязиСтруктура = Новый Структура; + ТипСвязиСтруктура.Вставить("РеквизитID", Родитель.ID); + ТипСвязиСтруктура.Вставить("РеквизитТип", Родитель.Тип); + ТипСвязиСтруктура.Вставить("РеквизитПредставление", Родитель.Заголовок); + + ОтсоединитьСвязанныйДокументНаСервере(ДокументСтруктура, ТипСвязиСтруктура, СвязанныйДокументСтруктура); + РазвернутьДеревоСвязанных(); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьСвязанный(Команда) + + УдалитьСвязанныйНаКлиенте(); + +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьСвязанныйНаКлиенте() + + ТекущиеДанные = Элементы.СписокДокументов.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Тип = ТекущиеДанные.Тип; + ID = ТекущиеДанные.ID; + + Если Тип = "DMIncomingDocument" Или Тип = "DMOutgoingDocument" Или Тип = "DMInternalDocument" Тогда + ТекстВопроса = НСтр("ru = 'Пометить ""'") + ТекущиеДанные.Заголовок + НСтр("ru = '"" на удаление?'"); + Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет,,КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + УдалитьСвязанныйНаСервере(ТекущиеДанные.ID, ТекущиеДанные.Тип); + + ПолучитьДанныеДокумента(); + РазвернутьДеревоСвязанных(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура УдалитьСвязанныйНаСервере(ID, Тип) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDeleteRequest"); + + ОбъектИд = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectID"); + ОбъектИд.id = ID; + ОбъектИд.type = Тип; + + Запрос.objectIds.Добавить(ОбъектИд); + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСвязанные(Команда) + + Если ЗначениеЗаполнено(Документ) Тогда + ПолучитьДанныеДокумента(); + РазвернутьДеревоСвязанных(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьСвязанныйДокумент(ТипДокумента) + + //открытие карточки документа + Если ТипДокумента = "DMInternalDocument" Тогда + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВнутреннийДокумент", , ЭтаФорма); + ИначеЕсли ТипДокумента = "DMIncomingDocument" Тогда + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВходящийДокумент", , ЭтаФорма); + ИначеЕсли ТипДокумента = "DMOutgoingDocument" Тогда + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотИсходящийДокумент", , ЭтаФорма); + КонецЕсли; + + Если ТипЗнч(Результат) = Тип("Структура") + И ЗначениеЗаполнено(Результат.id) + И ЗначениеЗаполнено(Результат.type) Тогда + + СвязанныйДокументСтруктура = Новый Структура; + СвязанныйДокументСтруктура.Вставить("РеквизитID", Результат.id); + СвязанныйДокументСтруктура.Вставить("РеквизитТип", Результат.type); + СвязанныйДокументСтруктура.Вставить("РеквизитПредставление", Результат.name); + Иначе + Возврат; + КонецЕсли; + + // выбор типа связи + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ТипОбъектаВыбора", "DMRelationType"); + ПараметрыФормы.Вставить("Заголовок", НСтр("ru = 'Укажите тип связи исходного и созданного документа'")); + + DocumentFrom = Новый Структура("id, type", ДокументID, ДокументТип); + DocumentTo = Новый Структура("id, type", СвязанныйДокументСтруктура.РеквизитID, СвязанныйДокументСтруктура.РеквизитТип); + ПараметрыФормы.Вставить("Отбор", Новый Структура("documentFrom, documentTo", DocumentFrom, DocumentTo)); + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИзСписка", ПараметрыФормы, ЭтаФорма); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + ТипСвязиСтруктура = Результат; + Иначе + Возврат; + КонецЕсли; + + //создание связи + ДокументСтруктура = Новый Структура; + ДокументСтруктура.Вставить("РеквизитID", ДокументID); + ДокументСтруктура.Вставить("РеквизитТип", ДокументТип); + ДокументСтруктура.Вставить("РеквизитПредставление", Документ); + + ПрисоединитьСвязанныйДокументНаСервере(ДокументСтруктура, ТипСвязиСтруктура, СвязанныйДокументСтруктура); + РазвернутьДеревоСвязанных(); + + Для Каждого СтрокаТипСвязи Из СписокДокументов.ПолучитьЭлементы() Цикл + Для Каждого СтрокаСвязанныйДокумент Из СтрокаТипСвязи.ПолучитьЭлементы() Цикл + Если СтрокаСвязанныйДокумент.ID = СвязанныйДокументСтруктура.РеквизитID + И СтрокаСвязанныйДокумент.Тип = СвязанныйДокументСтруктура.РеквизитТип Тогда + Элементы.СписокДокументов.ТекущаяСтрока = СтрокаСвязанныйДокумент.ПолучитьИдентификатор(); + Прервать; + КонецЕсли; + КонецЦикла; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьСвязанныйВнутренний(Команда) + + Если Не ЗначениеЗаполнено(Документ) Тогда + Возврат; + КонецЕсли; + + СоздатьСвязанныйДокумент("DMInternalDocument"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьСвязанныйВходящий(Команда) + + Если Не ЗначениеЗаполнено(Документ) Тогда + Возврат; + КонецЕсли; + + СоздатьСвязанныйДокумент("DMIncomingDocument"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьСвязанныйИсходящий(Команда) + + Если Не ЗначениеЗаполнено(Документ) Тогда + Возврат; + КонецЕсли; + + СоздатьСвязанныйДокумент("DMOutgoingDocument"); + +КонецПроцедуры + +&НаСервере +Процедура ПрисоединитьСвязанныйДокументНаСервере(ДокументСтруктура, ТипСвязиСтруктура, СвязанныйДокументСтруктура) + + // создание связи + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Document = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDocument"); + Document.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ДокументСтруктура.РеквизитID, ДокументСтруктура.РеквизитТип); + Document.name = ДокументСтруктура.РеквизитПредставление; + + RelatedDocument = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDocument"); + RelatedDocument.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, СвязанныйДокументСтруктура.РеквизитID, СвязанныйДокументСтруктура.РеквизитТип); + RelatedDocument.name = СвязанныйДокументСтруктура.РеквизитПредставление; + + RelationType = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRelationType"); + RelationType.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ТипСвязиСтруктура.РеквизитID, ТипСвязиСтруктура.РеквизитТип); + RelationType.name = ТипСвязиСтруктура.РеквизитПредставление; + + Связь = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDocumentRelation"); + Связь.document = Document; + Связь.relationType = RelationType; + Связь.relatedDocument = RelatedDocument; + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMAddDocumentRelationRequest"); + Запрос.relation = Связь; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + + ПолучитьДанныеДокумента(); + +КонецПроцедуры + +&НаСервере +Процедура ОтсоединитьСвязанныйДокументНаСервере(ДокументСтруктура, ТипСвязиСтруктура, СвязанныйДокументСтруктура) + + // создание связи + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Document = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDocument"); + Document.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ДокументСтруктура.РеквизитID, ДокументСтруктура.РеквизитТип); + Document.name = ДокументСтруктура.РеквизитПредставление; + + RelatedDocument = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDocument"); + RelatedDocument.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, СвязанныйДокументСтруктура.РеквизитID, СвязанныйДокументСтруктура.РеквизитТип); + RelatedDocument.name = СвязанныйДокументСтруктура.РеквизитПредставление; + + RelationType = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRelationType"); + RelationType.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ТипСвязиСтруктура.РеквизитID, ТипСвязиСтруктура.РеквизитТип); + RelationType.name = ТипСвязиСтруктура.РеквизитПредставление; + + Связь = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDocumentRelation"); + Связь.document = Document; + Связь.relationType = RelationType; + Связь.relatedDocument = RelatedDocument; + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRemoveDocumentRelationRequest"); + Запрос.relation = Связь; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + + ПолучитьДанныеДокумента(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПрисоединитьСвязанныйДокумент(ТипДокумента) + + // выбор документа + Если ТипДокумента = "DMInternalDocument" Тогда Заголовок = НСтр("ru = 'Выбор внутреннего документа'"); + ИначеЕсли ТипДокумента = "DMIncomingDocument" Тогда Заголовок = НСтр("ru = 'Выбор входящего документа'"); + ИначеЕсли ТипДокумента = "DMOutgoingDocument" Тогда Заголовок = НСтр("ru = 'Выбор исходящего документа'"); + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ТипОбъектаВыбора", ТипДокумента); + ПараметрыФормы.Вставить("Заголовок", Заголовок); + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИзСписка", ПараметрыФормы, ЭтаФорма); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + СвязанныйДокументСтруктура = Результат; + Иначе + Возврат; + КонецЕсли; + + // выбор типа связи + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ТипОбъектаВыбора", "DMRelationType"); + ПараметрыФормы.Вставить("Заголовок", НСтр("ru = 'Укажите тип связи исходного и выбранного документа'")); + + DocumentFrom = Новый Структура("id, type", ДокументID, ДокументТип); + DocumentTo = Новый Структура("id, type", СвязанныйДокументСтруктура.РеквизитID, СвязанныйДокументСтруктура.РеквизитТип); + ПараметрыФормы.Вставить("Отбор", Новый Структура("documentFrom, documentTo", DocumentFrom, DocumentTo)); + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИзСписка", ПараметрыФормы, ЭтаФорма); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + ТипСвязиСтруктура = Результат; + Иначе + Возврат; + КонецЕсли; + + ДокументСтруктура = Новый Структура; + ДокументСтруктура.Вставить("РеквизитID", ДокументID); + ДокументСтруктура.Вставить("РеквизитТип", ДокументТип); + ДокументСтруктура.Вставить("РеквизитПредставление", Документ); + + ПрисоединитьСвязанныйДокументНаСервере(ДокументСтруктура, ТипСвязиСтруктура, СвязанныйДокументСтруктура); + РазвернутьДеревоСвязанных(); + + Для Каждого СтрокаТипСвязи Из СписокДокументов.ПолучитьЭлементы() Цикл + Для Каждого СтрокаСвязанныйДокумент Из СтрокаТипСвязи.ПолучитьЭлементы() Цикл + Если СтрокаСвязанныйДокумент.ID = СвязанныйДокументСтруктура.РеквизитID + И СтрокаСвязанныйДокумент.Тип = СвязанныйДокументСтруктура.РеквизитТип Тогда + Элементы.СписокДокументов.ТекущаяСтрока = СтрокаСвязанныйДокумент.ПолучитьИдентификатор(); + Прервать; + КонецЕсли; + КонецЦикла; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ПрисоединитьСвязанныйВнутренний(Команда) + + Если Не ЗначениеЗаполнено(Документ) Тогда + Возврат; + КонецЕсли; + + ПрисоединитьСвязанныйДокумент("DMInternalDocument"); + +КонецПроцедуры + +&НаКлиенте +Процедура ПрисоединитьСвязанныйВходящий(Команда) + + Если Не ЗначениеЗаполнено(Документ) Тогда + Возврат; + КонецЕсли; + + ПрисоединитьСвязанныйДокумент("DMIncomingDocument"); + +КонецПроцедуры + +&НаКлиенте +Процедура ПрисоединитьСвязанныйИсходящий(Команда) + + Если Не ЗначениеЗаполнено(Документ) Тогда + Возврат; + КонецЕсли; + + ПрисоединитьСвязанныйДокумент("DMOutgoingDocument"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьБизнесПроцессСвязанныйДокумент(Команда) + + Если Элементы.СписокДокументов.ТекущиеДанные = Неопределено + ИЛИ НЕ ЗначениеЗаполнено(Элементы.СписокДокументов.ТекущиеДанные.ID) Тогда + Возврат; + КонецЕсли; + + РаботаС1СДокументооборотКлиент.СоздатьБизнесПроцессПоДокументуИзДО(Элементы.СписокДокументов.ТекущиеДанные.ID, Элементы.СписокДокументов.ТекущиеДанные.Тип); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокДокументовПриАктивизацииСтроки(Элемент) + + Если Элементы.СписокДокументов.ТекущиеДанные = Неопределено Тогда + Элементы.СписокДокументовСоздатьБизнесПроцессСвязанныйДокумент.Доступность = Ложь; + Элементы.ИзменитьСвязанный.Доступность = Ложь; + Элементы.СписокДокументовИзменитьСвязанный.Доступность = Ложь; + Элементы.СписокДокументовГруппаУдалить.Доступность = Ложь; + Иначе + Тип = Элементы.СписокДокументов.ТекущиеДанные.Тип; + Если Тип = "DMIncomingDocument" Или Тип = "DMOutgoingDocument" Или Тип = "DMInternalDocument" Тогда + Элементы.СписокДокументовСоздатьБизнесПроцессСвязанныйДокумент.Доступность = Истина; + Элементы.ИзменитьСвязанный.Доступность = Истина; + Элементы.СписокДокументовИзменитьСвязанный.Доступность = Истина; + Элементы.СписокДокументовГруппаУдалить.Доступность = Истина; + Иначе + Элементы.СписокДокументовСоздатьБизнесПроцессСвязанныйДокумент.Доступность = Ложь; + Элементы.ИзменитьСвязанный.Доступность = Ложь; + Элементы.СписокДокументовИзменитьСвязанный.Доступность = Ложь; + Элементы.СписокДокументовГруппаУдалить.Доступность = Ложь; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДекорацияСсылкаНажатие(Элемент) + + ТекстПредупреждения = + НСтр("ru = 'Для настройки правил автоматического заполнения документов 1С:Документооборота обратитесь к Администратору.'"); + + Предупреждение(ТекстПредупреждения); + +КонецПроцедуры + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотДокументы/ДокументооборотДокументы.mdo b/SSL/src/CommonForms/ДокументооборотДокументы/ДокументооборотДокументы.mdo new file mode 100644 index 000000000..625a8d322 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотДокументы/ДокументооборотДокументы.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотДокументы + + ru + Документооборот: Документы + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотЗадачи/ConditionalAppearance.dcssca b/SSL/src/CommonForms/ДокументооборотЗадачи/ConditionalAppearance.dcssca new file mode 100644 index 000000000..b3ee4a452 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотЗадачи/ConditionalAppearance.dcssca @@ -0,0 +1,54 @@ + + + + + + ДеревоБизнесПроцессовИЗадачВажность + + + ДеревоБизнесПроцессовИЗадачВыполнено + + + ДеревоБизнесПроцессовИЗадачТип + + + ДеревоБизнесПроцессовИЗадачНаименование + + + ДеревоБизнесПроцессовИЗадачИсполнитель + + + ДеревоБизнесПроцессовИЗадачСрокИсполнения + + + ДеревоБизнесПроцессовИЗадачДатаНачала + + + ДеревоБизнесПроцессовИЗадачАвтор + + + + + ТолькоНевыполненные + Equal + true + + + ДеревоБизнесПроцессовИЗадач.Выполнено + Equal + true + + + + + Видимость + false + + + false + Отображать + false + + + + diff --git a/SSL/src/CommonForms/ДокументооборотЗадачи/Form.form b/SSL/src/CommonForms/ДокументооборотЗадачи/Form.form new file mode 100644 index 000000000..40a74e991 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотЗадачи/Form.form @@ -0,0 +1,1033 @@ + + + + ДеревоБизнесПроцессовИЗадач + 1 + true + true + + true + + + ДеревоБизнесПроцессовИЗадач + + None + Add + Copy + Delete + EndEdit + HierarchicalList + List + MoveDown + MoveUp + SortListAsc + SortListDesc + Tree + + ДеревоБизнесПроцессовИЗадачВажность + 4 + true + true + + true + + + ДеревоБизнесПроцессовИЗадач.Важность + + None + + ru + Важность + + + ДеревоБизнесПроцессовИЗадачВажностьРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачВажностьКонтекстноеМеню + 5 + true + + PictureField + Enter + true + + CommonPicture.ВосклицательныйЗнакСерый + + Left + true + + true + true + true + true + + CommonPicture.КоллекцияВариантыВажностиЗадачи + + + + 1 + + + + + ДеревоБизнесПроцессовИЗадачВыполнено + 6 + true + true + + true + + + ДеревоБизнесПроцессовИЗадач.Выполнено + + None + + ru + Выполнено + + + ДеревоБизнесПроцессовИЗадачВыполненоРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачВыполненоКонтекстноеМеню + 7 + true + + CheckBoxField + true + Enter + true + + StdPicture.ExecuteTask + + Left + true + + + + ДеревоБизнесПроцессовИЗадачГруппаТипНаименование + 18 + + ДеревоБизнесПроцессовИЗадачТип + 19 + true + true + + true + + + ДеревоБизнесПроцессовИЗадач.Тип + + None + + ДеревоБизнесПроцессовИЗадачТипРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачТипКонтекстноеМеню + 20 + true + + PictureField + Enter + true + Left + true + + true + true + true + true + + CommonPicture.КоллекцияЗадачиИБизнесПроцессы + + + + 1 + + + + + ДеревоБизнесПроцессовИЗадачНаименование + 8 + + <key>ru</key> + <value>Бизнес-процесс/Задача</value> + + true + true + + true + + + ДеревоБизнесПроцессовИЗадач.Наименование + + + ДеревоБизнесПроцессовИЗадачНаименованиеРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачНаименованиеКонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Дерево бизнес процессов и задач группа тип наименование</value> + + + ru + Дерево бизнес процессов и задач группа тип наименование + + + ДеревоБизнесПроцессовИЗадачГруппаТипНаименованиеРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + ДеревоБизнесПроцессовИЗадачИсполнитель + 10 + true + true + + true + + + ДеревоБизнесПроцессовИЗадач.Исполнитель + + + ДеревоБизнесПроцессовИЗадачИсполнительРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачИсполнительКонтекстноеМеню + 11 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ДеревоБизнесПроцессовИЗадачСрокИсполнения + 12 + true + true + + true + + + ДеревоБизнесПроцессовИЗадач.СрокИсполнения + + + ДеревоБизнесПроцессовИЗадачСрокИсполненияРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачСрокИсполненияКонтекстноеМеню + 13 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ДеревоБизнесПроцессовИЗадачДатаНачала + 14 + true + true + + true + + + ДеревоБизнесПроцессовИЗадач.ДатаНачала + + + ДеревоБизнесПроцессовИЗадачДатаНачалаРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачДатаНачалаКонтекстноеМеню + 15 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ДеревоБизнесПроцессовИЗадачАвтор + 16 + true + true + + true + + + ДеревоБизнесПроцессовИЗадач.Автор + + + ДеревоБизнесПроцессовИЗадачАвторРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачАвторКонтекстноеМеню + 17 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ДеревоБизнесПроцессовИЗадачКоманднаяПанель + 3 + + ДеревоБизнесПроцессовИЗадачСоздатьБП + 24 + true + true + + true + + + ДеревоБизнесПроцессовИЗадачСоздатьБПРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + Form.Command.СоздатьБП + Normal + Auto + true + true + UserCmds + Auto + + + ДеревоБизнесПроцессовИЗадачОткрытьКарточку + 22 + true + true + + true + + + ДеревоБизнесПроцессовИЗадачОткрытьКарточкуРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + Form.Command.ОткрытьКарточку + Normal + Auto + true + true + UserCmds + Auto + + + ДеревоБизнесПроцессовИЗадачОбновитьСписок + 26 + true + true + + true + + + ДеревоБизнесПроцессовИЗадачОбновитьСписокРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + Form.Command.ОбновитьСписок + Normal + Auto + true + true + UserCmds + Auto + + Left + + + Selection + ДеревоБизнесПроцессовИЗадачВыбор + + + BeforeRowChange + ДеревоБизнесПроцессовИЗадачПередНачаломИзменения + + + ДеревоБизнесПроцессовИЗадачСтрокаПоиска + 34 + + ДеревоБизнесПроцессовИЗадачСтрокаПоискаРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачСтрокаПоискаКонтекстноеМеню + 35 + true + + ДеревоБизнесПроцессовИЗадач + + true + + + + ДеревоБизнесПроцессовИЗадачСостояниеПросмотра + 37 + + ДеревоБизнесПроцессовИЗадачСостояниеПросмотраРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачСостояниеПросмотраКонтекстноеМеню + 38 + true + + ViewStatusAddition + ДеревоБизнесПроцессовИЗадач + + true + + + + ДеревоБизнесПроцессовИЗадачУправлениеПоиском + 40 + + ДеревоБизнесПроцессовИЗадачУправлениеПоискомРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачУправлениеПоискомКонтекстноеМеню + 41 + true + + SearchControlAddition + ДеревоБизнесПроцессовИЗадач + + true + + + + ДеревоБизнесПроцессовИЗадачРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + ДеревоБизнесПроцессовИЗадачКонтекстноеМеню + 2 + + ДеревоБизнесПроцессовИЗадачОткрытьКарточкуКонтекст + 25 + true + true + + true + + + ДеревоБизнесПроцессовИЗадачОткрытьКарточкуКонтекстРасширеннаяПодсказка + 29 + Label + true + true + + Left + + + Form.Command.ОткрытьКарточку + Normal + Auto + true + true + UserCmds + Auto + + + Tree + true + true + true + MultiRow + Row +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + ExpandAllLevels + true + true + true + true + None + None + None + true +
+ + ТолькоНевыполненные + 27 + + <key>ru</key> + <value>Только невыполненные бизнес-процессы и задачи</value> + + true + true + + true + + + ТолькоНевыполненные + + Right + + ТолькоНевыполненныеРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + + ТолькоНевыполненныеКонтекстноеМеню + 28 + true + + CheckBoxField + Enter + true + Left + true + + + + ФормаКоманднаяПанель + -1 + Left + + + NotificationProcessing + ОбработкаОповещения + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ДеревоБизнесПроцессовИЗадач + + <key>ru</key> + <value>Дерево бизнес процессов и задач</value> + + 1 + + ValueTree + + + true + + + true + + + Важность + + <key>ru</key> + <value>Важность</value> + + 1 + + Number + + 10 + + + + true + + + true + + + + Выполнено + + <key>ru</key> + <value>Выполнено</value> + + 2 + + Boolean + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 3 + + String + + + + true + + + true + + + + Исполнитель + + <key>ru</key> + <value>Исполнитель</value> + + 4 + + String + + + + true + + + true + + + + СрокИсполнения + + <key>ru</key> + <value>Срок исполнения</value> + + 5 + + Date + + + + true + + + true + + + + ДатаНачала + + <key>ru</key> + <value>Дата начала</value> + + 6 + + Date + + Date + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 7 + + String + + + + true + + + true + + + + Тип + + <key>ru</key> + <value>Тип</value> + + 8 + + Number + + 10 + + + + true + + + true + + + + DMИд + + <key>ru</key> + <value>DMИд</value> + + 9 + + String + + + + true + + + true + + + + DMТип + + <key>ru</key> + <value>DMТип</value> + + 10 + + String + + + + true + + + true + + + + + СсылкаНаВнешнийОбъект + + <key>ru</key> + <value>Ссылка на внешний объект</value> + + 2 + + AnyRef + + + true + + + true + + + + ТолькоНевыполненные + + <key>ru</key> + <value>Только невыполненные</value> + + 3 + + Boolean + + + true + + + true + + + + ОткрытьКарточку + + <key>ru</key> + <value>Открыть карточку</value> + + 2 + + ru + Открыть карточку + + + true + + F2 + + StdPicture.Change + + + + ОткрытьКарточку + + + TextPicture + Auto + Auto + + + СоздатьБП + + <key>ru</key> + <value>Создать бизнес-процесс документооборота...</value> + + 3 + + ru + Создать бизнес-процесс документооборота + + + true + + + StdPicture.BusinessProcess + + + + СоздатьБизнесПроцесс + + + TextPicture + Auto + Auto + + + ОбновитьСписок + + <key>ru</key> + <value>Обновить список</value> + + 1 + + ru + Обновить список + + + true + + F5 + + StdPicture.Refresh + + + + ОбновитьСписок + + + TextPicture + Auto + Auto + + + IDПредметаЗадач + + true + + + НаименованиеПредметаЗадач + + String + + + true + + + СсылкаНаВнешнийОбъект + + AnyRef + + + + + + +
diff --git a/SSL/src/CommonForms/ДокументооборотЗадачи/Help/ru.html b/SSL/src/CommonForms/ДокументооборотЗадачи/Help/ru.html new file mode 100644 index 000000000..8c9638191 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотЗадачи/Help/ru.html @@ -0,0 +1,6 @@ + +

На форме отображается дерево бизнес-процессов и задач документооборота, предметами которых являются документы в 1С:Документооборот, связанные с текущим объектом.

+

Для запуска бизнес-процесса по основному документу документооборота, связанному с текущим объектом, необходимо нажать на кнопку "Создать бизнес-процесс документооборота...", расположенную на командной панели дерева. После этого необходимо выбрать тип создаваемого бизнес-процесса.

+

Для открытия карточки бизнес-процесса или задачи необходимо воспользоваться командой "Открыть карточку" или нажать клавишу F2.

+

Для обновления списке необходимо воспользоваться командой "Обновить список" или нажать клавишу F5.

+

Для того, чтобы скрыть выполненные бизнес-процессы и задачи, необходимо установить отметку в поле "Только невыполненные бизнес-процессы и задачи".

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотЗадачи/Module.bsl b/SSL/src/CommonForms/ДокументооборотЗадачи/Module.bsl new file mode 100644 index 000000000..bdda91f0e --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотЗадачи/Module.bsl @@ -0,0 +1,310 @@ + +/////////////////////////////////////// +//// Обработка событий формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ЭтаФорма.Заголовок = "Задачи по документу """ + Параметры.НаименованиеПредметаЗадач + """"; + ЗагрузитьДеревоБизнесПроцессовИЗадач(); + СсылкаНаВнешнийОбъект = Параметры.СсылкаНаВнешнийОбъект; + + //условное оформление + УстановитьУсловноеОформлениеДерева(); + +КонецПроцедуры + +/////////////////////////////////////// +//// Обработка команд формы + +&НаКлиенте +Процедура ОткрытьКарточку(Команда) + + ОткрытьКарточкуВыполнить(); + +КонецПроцедуры + +/////////////////////////////////////// +//// Служебные процедуры и функции + +// Удаление элемента оформления просроченных невыполненных задач для старой даты и установка нового элемента для текущей даты. +&НаСервере +Процедура УстановитьУсловноеОформлениеДерева() + + Если ЭтаФорма.УсловноеОформление.Элементы.Количество() = 2 Тогда + ЭлементДляУдаления = ЭтаФорма.УсловноеОформление.Элементы[1]; + ЭтаФорма.УсловноеОформление.Элементы.Удалить(ЭлементДляУдаления); + КонецЕсли; + + ЭлементУсловногоОформления = ЭтаФорма.УсловноеОформление.Элементы.Добавить(); + + ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоБизнесПроцессовИЗадач.СрокИсполнения"); + ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; + ЭлементОтбораДанных.Использование = Истина; + + ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоБизнесПроцессовИЗадач.Выполнено"); + ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбораДанных.ПравоеЗначение = Ложь; + ЭлементОтбораДанных.Использование = Истина; + + ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоБизнесПроцессовИЗадач.СрокИсполнения"); + ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше; + ЭлементОтбораДанных.ПравоеЗначение = ТекущаяДата(); + ЭлементОтбораДанных.Использование = Истина; + + НовыйЭлемент = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); + НовыйЭлемент.Поле = Новый ПолеКомпоновкиДанных("ДеревоБизнесПроцессовИЗадачНаименование"); + + НовыйЭлемент = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); + НовыйЭлемент.Поле = Новый ПолеКомпоновкиДанных("ДеревоБизнесПроцессовИЗадачСрокИсполнения"); + + ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor"); + ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ПросроченнаяЗадача.Значение; + ЭлементЦветаОформления.Использование = Истина; + +КонецПроцедуры + +&НаСервере +Процедура ПостроитьДеревоЗадачИзОтветаВебСервиса(СтрокиДереваЗадач, СтрокиОтвета) + + + Для Каждого ОднаСтрокаОтвета Из СтрокиОтвета Цикл + Важность = 1; + Если ОднаСтрокаОтвета.importance.objectId.id = "Низкая" Тогда + Важность = 0; + ИначеЕсли ОднаСтрокаОтвета.importance.objectId.id = "Обычная" Тогда + Важность = 1; + ИначеЕсли ОднаСтрокаОтвета.importance.objectId.id = "Высокая" Тогда + Важность = 2; + КонецЕсли; + Если Найти(ОднаСтрокаОтвета.objectId.type, "BusinessProcess") > 0 + И Найти(ОднаСтрокаОтвета.objectId.type, "Task") = 0 Тогда + НоваяСтрока = СтрокиДереваЗадач.Добавить(); + НоваяСтрока.Важность = Важность; + НоваяСтрока.Выполнено = ЗначениеЗаполнено(ОднаСтрокаОтвета.endDate); + НоваяСтрока.Наименование = ОднаСтрокаОтвета.name; + НоваяСтрока.ДатаНачала = ОднаСтрокаОтвета.beginDate; + НоваяСтрока.Автор = ОднаСтрокаОтвета.author.name; + НоваяСтрока.Тип = 0; + НоваяСтрока.DMТип = ОднаСтрокаОтвета.objectId.type; + НоваяСтрока.DMИд = ОднаСтрокаОтвета.objectId.id; + ПостроитьДеревоЗадачИзОтветаВебСервиса(НоваяСтрока.Строки, ОднаСтрокаОтвета.tasks); + ИначеЕсли Найти(ОднаСтрокаОтвета.objectId.type, "Task") > 0 Тогда + НоваяСтрока = СтрокиДереваЗадач.Добавить(); + НоваяСтрока.Важность = Важность; + НоваяСтрока.Выполнено = ОднаСтрокаОтвета.executed; + НоваяСтрока.Наименование = ОднаСтрокаОтвета.name; + НоваяСтрока.СрокИсполнения = ОднаСтрокаОтвета.dueDate; + НоваяСтрока.ДатаНачала = ОднаСтрокаОтвета.beginDate; + Если ОднаСтрокаОтвета.performer.Установлено("user") Тогда + НоваяСтрока.Исполнитель = ОднаСтрокаОтвета.performer.user.name; + ИначеЕсли ОднаСтрокаОтвета.performer.Установлено("role") Тогда + НоваяСтрока.Исполнитель = ОднаСтрокаОтвета.performer.role.name; + Если ОднаСтрокаОтвета.performer.Установлено("mainAddressingObject") Тогда + НоваяСтрока.Исполнитель = НоваяСтрока.Исполнитель + ", " + ОднаСтрокаОтвета.performer.mainAddressingObject.name; + КонецЕсли; + Если ОднаСтрокаОтвета.Performer.Установлено("secondaryAddressingObject") Тогда + НоваяСтрока.Исполнитель = НоваяСтрока.Исполнитель + ", " + ОднаСтрокаОтвета.performer.secondaryAddressingObject.name; + КонецЕсли; + КонецЕсли; + НоваяСтрока.Тип = 1; + НоваяСтрока.DMТип = ОднаСтрокаОтвета.objectId.type; + НоваяСтрока.DMИд = ОднаСтрокаОтвета.objectId.id; + ПостроитьДеревоЗадачИзОтветаВебСервиса(НоваяСтрока.Строки, ОднаСтрокаОтвета.businessProcesses); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоБизнесПроцессовИЗадачВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ОткрытьКарточкуВыполнить(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьКарточкуВыполнить() + + Если Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные = Неопределено Тогда + возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура("id, type", Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMИд, Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип); + + ФормаИмя = ""; + Если Найти(Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип, "Task") > 0 Тогда + ФормаИмя = "ОбщаяФорма.ДокументооборотКарточкаЗадачи"; + + ИначеЕсли Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип = "DMBusinessProcessPerformance" Тогда + ФормаИмя = "ОбщаяФорма.ДокументооборотБизнесПроцессИсполнение"; + + ИначеЕсли Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип = "DMBusinessProcessAcquaintance" Тогда + ФормаИмя = "ОбщаяФорма.ДокументооборотБизнесПроцессОзнакомление"; + + ИначеЕсли Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип = "DMBusinessProcessOrder" Тогда + ФормаИмя = "ОбщаяФорма.ДокументооборотБизнесПроцессПоручение"; + + ИначеЕсли Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип = "DMBusinessProcessConsideration" Тогда + ФормаИмя = "ОбщаяФорма.ДокументооборотБизнесПроцессРассмотрение"; + + ИначеЕсли Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип = "DMBusinessProcessRegistration" Тогда + ФормаИмя = "ОбщаяФорма.ДокументооборотБизнесПроцессРегистрация"; + + ИначеЕсли Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип = "DMBusinessProcessApproval" Тогда + ФормаИмя = "ОбщаяФорма.ДокументооборотБизнесПроцессСогласование"; + + ИначеЕсли Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип = "DMBusinessProcessConfirmation" Тогда + ФормаИмя = "ОбщаяФорма.ДокументооборотБизнесПроцессУтверждение"; + + ИначеЕсли Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип = "DMBusinessProcessInternalDocumentProcessing" Тогда + ФормаИмя = "ОбщаяФорма.ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента"; + + ИначеЕсли Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип = "DMBusinessProcessIncomingDocumentProcessing" Тогда + ФормаИмя = "ОбщаяФорма.ДокументооборотБизнесПроцессОбработкаВходящегоДокумента"; + + ИначеЕсли Элементы.ДеревоБизнесПроцессовИЗадач.ТекущиеДанные.DMТип = "DMBusinessProcessOutgoingDocumentProcessing" Тогда + ФормаИмя = "ОбщаяФорма.ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента"; + + КонецЕсли; + + Если НЕ ЗначениеЗаполнено(ФормаИмя) Тогда + Возврат; + КонецЕсли; + + ОткрытьФормуМодально(ФормаИмя, ПараметрыФормы); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "БизнесПроцессИзменен" Тогда + РаскрытыеЭлементы = Новый СписокЗначений; + ПолучитьМассивРаскрытыхЭлементов(Элементы.ДеревоБизнесПроцессовИЗадач, ДеревоБизнесПроцессовИЗадач.ПолучитьЭлементы(), РаскрытыеЭлементы); + РаскрытыеЭлементы.Добавить(Параметр.ID); + ЗагрузитьДеревоБизнесПроцессовИЗадач(); + УстановитьРазвернутостьЭлементовДерева(Элементы.ДеревоБизнесПроцессовИЗадач, ДеревоБизнесПроцессовИЗадач, РаскрытыеЭлементы); + УстановитьТекущийЭлементВДереве(Элементы.ДеревоБизнесПроцессовИЗадач, ДеревоБизнесПроцессовИЗадач, Параметр.ID); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗагрузитьДеревоБизнесПроцессовИЗадач() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMGetTasksTreeRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + QueryТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMGetTasksTreeQuery"); + Запрос.query = Прокси.ФабрикаXDTO.Создать(QueryТип); + + TargetТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "ExternalObject"); + Для Каждого ВнешнийID Из Параметры.IDПредметаЗадач Цикл + Target = Прокси.ФабрикаXDTO.Создать(TargetТип); + Target.id = ВнешнийID; + Target.type = ""; + Target.name = ""; + Запрос.query.externalTarget.Добавить(Target); + КонецЦикла; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборот.ПроверитьВозвратВебСервиса(Прокси, Ответ); + + ДеревоЗадач = РеквизитФормыВЗначение("ДеревоБизнесПроцессовИЗадач", Тип("ДеревоЗначений")); + ДеревоЗадач.Строки.Очистить(); + ПостроитьДеревоЗадачИзОтветаВебСервиса(ДеревоЗадач.Строки, Ответ.businessProcesses); + ЗначениеВРеквизитФормы(ДеревоЗадач, "ДеревоБизнесПроцессовИЗадач"); + УстановитьУсловноеОформлениеДерева(); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьБизнесПроцесс(Команда) + РаботаС1СДокументооборотКлиент.СоздатьБизнесПроцесс(СсылкаНаВнешнийОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСписок(Команда) + + РаскрытыеЭлементы = Новый СписокЗначений; + ПолучитьМассивРаскрытыхЭлементов(Элементы.ДеревоБизнесПроцессовИЗадач, ДеревоБизнесПроцессовИЗадач.ПолучитьЭлементы(), РаскрытыеЭлементы); + ЗагрузитьДеревоБизнесПроцессовИЗадач(); + УстановитьРазвернутостьЭлементовДерева(Элементы.ДеревоБизнесПроцессовИЗадач, ДеревоБизнесПроцессовИЗадач, РаскрытыеЭлементы); + +КонецПроцедуры + +&НаКлиенте +Процедура ПолучитьМассивРаскрытыхЭлементов(ДеревоЭлемент, МассивСтрокОдногоУровня, СписокРаскрытыхЭлементов) + + Для Каждого СтрокаОдногоУровня Из МассивСтрокОдногоУровня Цикл + ИдЭлемента = СтрокаОдногоУровня.ПолучитьИдентификатор(); + Если ДеревоЭлемент.Развернут(ИдЭлемента) <> Неопределено + И ДеревоЭлемент.Развернут(ИдЭлемента) Тогда + СписокРаскрытыхЭлементов.Добавить(СтрокаОдногоУровня.DMИд); + КонецЕсли; + ПолучитьМассивРаскрытыхЭлементов(ДеревоЭлемент, СтрокаОдногоУровня.ПолучитьЭлементы(), СписокРаскрытыхЭлементов); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьРазвернутостьЭлементовДерева(ДеревоЭлемент, ДеревоРеквизит, СписокЭлементовДляРазвертывания) + + Если СписокЭлементовДляРазвертывания <> Неопределено Тогда + Для Каждого ЭлементСписка Из СписокЭлементовДляРазвертывания Цикл + Индекс = -1; + НайтиЭлементВДереве(ДеревоБизнесПроцессовИЗадач.ПолучитьЭлементы(), ЭлементСписка.Значение, Индекс); + Если Индекс > -1 Тогда + Если ДеревоРеквизит.НайтиПоИдентификатору(Индекс).ПолучитьЭлементы().Количество() > 0 Тогда + ДеревоЭлемент.Развернуть(ДеревоБизнесПроцессовИЗадач.НайтиПоИдентификатору(Индекс).ПолучитьИдентификатор(), Ложь); + Иначе + Если ДеревоРеквизит.НайтиПоИдентификатору(Индекс).ПолучитьРодителя() <> Неопределено Тогда + ДеревоЭлемент.Развернуть(ДеревоБизнесПроцессовИЗадач.НайтиПоИдентификатору(Индекс).ПолучитьРодителя().ПолучитьИдентификатор(), Ложь); + КонецЕсли; + КонецЕсли; + КонецЕсли; + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НайтиЭлементВДереве(КоллекцияЭлементовОдногоУровня, ИскомыйЭлемент, Индекс) + + Если КоллекцияЭлементовОдногоУровня.Количество() > 0 Тогда + Для Каждого ЭлементДерева Из КоллекцияЭлементовОдногоУровня Цикл + Если ЭлементДерева.DMИд = ИскомыйЭлемент Тогда + Индекс = ЭлементДерева.ПолучитьИдентификатор(); + Иначе + НайтиЭлементВДереве(ЭлементДерева.ПолучитьЭлементы(), ИскомыйЭлемент, Индекс); + КонецЕсли; + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьТекущийЭлементВДереве(ДеревоЭлемент, ДеревоРеквизит, ТекущийЭлемент) + + Если ТекущийЭлемент <> Неопределено Тогда + Индекс = -1; + НайтиЭлементВДереве(ДеревоРеквизит.ПолучитьЭлементы(), ТекущийЭлемент, Индекс); + Если Индекс > -1 Тогда + ДеревоЭлемент.ТекущаяСтрока = Индекс; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоБизнесПроцессовИЗадачПередНачаломИзменения(Элемент, Отказ) + Отказ = Истина; + ОткрытьКарточкуВыполнить(); +КонецПроцедуры diff --git a/SSL/src/CommonForms/ДокументооборотЗадачи/ДокументооборотЗадачи.mdo b/SSL/src/CommonForms/ДокументооборотЗадачи/ДокументооборотЗадачи.mdo new file mode 100644 index 000000000..28e9a6f36 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотЗадачи/ДокументооборотЗадачи.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотЗадачи + + ru + Задачи в системе 1С:Документооборот + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/ConditionalAppearance.dcssca b/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/ConditionalAppearance.dcssca new file mode 100644 index 000000000..4468d6a9f --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/ConditionalAppearance.dcssca @@ -0,0 +1,32 @@ + + + + + + ТаблицаПодписейКомуВыданСертификат + + + ТаблицаПодписейДатаПодписи + + + ТаблицаПодписейКомментарий + + + ТаблицаПодписейСтатус + + + + + ТаблицаПодписей.Неверна + Equal + true + + + + + ЦветТекста + style:SpecialTextColor + + + + diff --git a/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/Form.form b/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/Form.form new file mode 100644 index 000000000..7df4e0a01 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/Form.form @@ -0,0 +1,5702 @@ + + + + ГруппаШапка + 3 + + ГруппаПолучатель + 4 + + Получатель + 5 + true + true + + true + + + Получатель + + + ПолучательРасширеннаяПодсказка + 149 + Label + true + true + + Left + + + + ПолучательКонтекстноеМеню + 6 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПолучательАвтоПодбор + + + StartChoice + ПолучательНачалоВыбора + + + TextEditEnd + ПолучательОкончаниеВводаТекста + + + ChoiceProcessing + ПолучательОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Адресат + 16 + true + true + + true + + + Адресат + + + АдресатРасширеннаяПодсказка + 151 + Label + true + true + + Left + + + + АдресатКонтекстноеМеню + 17 + true + + InputField + Enter + true + Left + true + + + AutoComplete + АдресатАвтоПодбор + + + StartChoice + АдресатНачалоВыбора + + + TextEditEnd + АдресатОкончаниеВводаТекста + + + ChoiceProcessing + АдресатОбработкаВыбора + + true + true + true + true + true + true + Normal + + + + ГруппаИсхНомер + 63 + + НомерПолучателя + 64 + + <key>ru</key> + <value>№ получателя</value> + + true + true + + true + + + НомерПолучателя + + + ru + Входящий номер, присвоенный получателем + + + НомерПолучателяРасширеннаяПодсказка + 154 + Label + true + true + + Left + + + + НомерПолучателяКонтекстноеМеню + 65 + true + + InputField + Enter + true + Left + true + + 10 + true + true + true + true + true + Normal + + + + ДатаПолучателя + 66 + + <key>ru</key> + <value>от</value> + + true + true + + true + + + ДатаПолучателя + + + ru + Входящая дата, присвоенная получателем + + + ДатаПолучателяРасширеннаяПодсказка + 156 + Label + true + true + + Left + + + + ДатаПолучателяКонтекстноеМеню + 67 + true + + InputField + Enter + true + Left + true + + 12 + true + true + false + true + true + true + Normal + + + true + true + + true + + + ru + Группа исх номер + + + ГруппаИсхНомерРасширеннаяПодсказка + 153 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Подписал + 7 + true + true + + true + + + Подписал + + + ПодписалРасширеннаяПодсказка + 158 + Label + true + true + + Left + + + + ПодписалКонтекстноеМеню + 8 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПодписалАвтоПодбор + + + StartChoice + ПодписалНачалоВыбора + + + TextEditEnd + ПодписалОкончаниеВводаТекста + + + ChoiceProcessing + ПодписалОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Подготовил + 68 + true + true + + true + + + Подготовил + + + ПодготовилРасширеннаяПодсказка + 160 + Label + true + true + + Left + + + + ПодготовилКонтекстноеМеню + 69 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПодготовилАвтоПодбор + + + StartChoice + ПодготовилНачалоВыбора + + + TextEditEnd + ПодготовилОкончаниеВводаТекста + + + ChoiceProcessing + ПодготовилОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Подразделение + 18 + true + true + + true + + + Подразделение + + + ПодразделениеРасширеннаяПодсказка + 162 + Label + true + true + + Left + + + + ПодразделениеКонтекстноеМеню + 19 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПодразделениеАвтоПодбор + + + StartChoice + ПодразделениеНачалоВыбора + + + TextEditEnd + ПодразделениеОкончаниеВводаТекста + + + ChoiceProcessing + ПодразделениеОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + СрокИсполнения + 20 + true + true + + true + + + СрокИсполнения + + + СрокИсполненияРасширеннаяПодсказка + 164 + Label + true + true + + Left + + + + СрокИсполненияКонтекстноеМеню + 21 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа получатель</value> + + + ru + Группа получатель + + + ГруппаПолучательРасширеннаяПодсказка + 148 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ГруппаРегистрация + 22 + + ГруппаОтправка + 80 + + Отправлен + 81 + true + true + + true + + + Отправлен + + + OnChange + ОтправленПриИзменении + + + ОтправленРасширеннаяПодсказка + 168 + Label + true + true + + Left + + + + ОтправленКонтекстноеМеню + 82 + true + + CheckBoxField + Enter + true + Left + true + + + + ДатаОтправки + 83 + true + true + + true + + + ДатаОтправки + + + ДатаОтправкиРасширеннаяПодсказка + 170 + Label + true + true + + Left + + + + ДатаОтправкиКонтекстноеМеню + 84 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа отправка</value> + + + ru + Группа отправка + + + ГруппаОтправкаРасширеннаяПодсказка + 167 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ГрифДоступа + 23 + + <key>ru</key> + <value>Гриф</value> + + true + true + + true + + + ГрифДоступа + + + ГрифДоступаРасширеннаяПодсказка + 172 + Label + true + true + + Left + + + + ГрифДоступаКонтекстноеМеню + 24 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ГрифДоступаАвтоПодбор + + + StartChoice + ГрифДоступаНачалоВыбора + + + TextEditEnd + ГрифДоступаОкончаниеВводаТекста + + + ChoiceProcessing + ГрифДоступаОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ВидДокумента + 25 + + <key>ru</key> + <value>Вид</value> + + true + true + + true + + + ВидДокумента + + + ВидДокументаРасширеннаяПодсказка + 174 + Label + true + true + + Left + + + + ВидДокументаКонтекстноеМеню + 26 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВидДокументаАвтоПодбор + + + StartChoice + ВидДокументаНачалоВыбора + + + TextEditEnd + ВидДокументаОкончаниеВводаТекста + + + ChoiceProcessing + ВидДокументаОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + СпособОтправки + 27 + + <key>ru</key> + <value>Способ</value> + + true + true + + true + + + СпособОтправки + + + СпособОтправкиРасширеннаяПодсказка + 176 + Label + true + true + + Left + + + + СпособОтправкиКонтекстноеМеню + 28 + true + + InputField + Enter + true + Left + true + + + AutoComplete + СпособОтправкиАвтоПодбор + + + StartChoice + СпособОтправкиНачалоВыбора + + + TextEditEnd + СпособОтправкиОкончаниеВводаТекста + + + ChoiceProcessing + СпособОтправкиОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Состояние + 29 + true + true + + true + + + Состояние + + + СостояниеРасширеннаяПодсказка + 178 + Label + true + true + + Left + + + + СостояниеКонтекстноеМеню + 30 + true + + InputField + Enter + true + Left + true + + + AutoComplete + СостояниеАвтоПодбор + + + StartChoice + СостояниеНачалоВыбора + + + TextEditEnd + СостояниеОкончаниеВводаТекста + + + ChoiceProcessing + СостояниеОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ГруппаРегНомер + 31 + + РегистрационныйНомер + 32 + + <key>ru</key> + <value>Рег. номер</value> + + true + true + + true + + + РегистрационныйНомер + + + РегистрационныйНомерРасширеннаяПодсказка + 181 + Label + true + true + + Left + + + + РегистрационныйНомерКонтекстноеМеню + 33 + true + + InputField + + ru + Для документа установлена автоматическая нумерация. Редактирование поля не рекомендуется. + + Enter + true + Left + true + + 12 + true + true + true + true + true + true + Normal + + + + ДатаРегистрации + 34 + true + true + + true + + + ДатаРегистрации + + + ДатаРегистрацииРасширеннаяПодсказка + 183 + Label + true + true + + Left + + + + ДатаРегистрацииКонтекстноеМеню + 35 + true + + InputField + Enter + true + Left + true + + 10 + true + true + true + + ru + ДФ=dd.MM.yyyy + + true + true + true + Normal + + + + Зарегистрировать + 36 + + <key>ru</key> + <value>№</value> + + true + true + + true + + + ЗарегистрироватьРасширеннаяПодсказка + 185 + Label + true + true + + Left + + + UsualButton + Form.Command.Зарегистрировать + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Группа рег номер</value> + + + ru + Группа рег номер + + + ГруппаРегНомерРасширеннаяПодсказка + 180 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Организация + 37 + true + true + + true + + + Организация + + + ОрганизацияРасширеннаяПодсказка + 186 + Label + true + true + + Left + + + + ОрганизацияКонтекстноеМеню + 38 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ОрганизацияАвтоПодбор + + + StartChoice + ОрганизацияНачалоВыбора + + + TextEditEnd + ОрганизацияОкончаниеВводаТекста + + + ChoiceProcessing + ОрганизацияОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ВопросДеятельности + 39 + true + true + + true + + + ВопросДеятельности + + + ВопросДеятельностиРасширеннаяПодсказка + 188 + Label + true + true + + Left + + + + ВопросДеятельностиКонтекстноеМеню + 40 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВопросДеятельностиАвтоПодбор + + + StartChoice + ВопросДеятельностиНачалоВыбора + + + TextEditEnd + ВопросДеятельностиОкончаниеВводаТекста + + + ChoiceProcessing + ВопросДеятельностиОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + ГруппаСумма + 41 + + Сумма + 42 + true + true + + true + + + Сумма + + + СуммаРасширеннаяПодсказка + 191 + Label + true + true + + Left + + + + СуммаКонтекстноеМеню + 43 + true + + InputField + Enter + true + Left + true + + 12 + true + true + true + true + true + true + Normal + + + + Валюта + 44 + true + true + + true + + + Валюта + + None + + ВалютаРасширеннаяПодсказка + 193 + Label + true + true + + Left + + + + ВалютаКонтекстноеМеню + 45 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ВалютаАвтоПодбор + + + StartChoice + ВалютаНачалоВыбора + + + TextEditEnd + ВалютаОкончаниеВводаТекста + + + ChoiceProcessing + ВалютаОбработкаВыбора + + 8 + true + true + false + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа сумма</value> + + + ru + Группа сумма + + + ГруппаСуммаРасширеннаяПодсказка + 190 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа регистрация</value> + + + ru + Группа регистрация + + + ГруппаРегистрацияРасширеннаяПодсказка + 166 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа шапка</value> + + + ru + Группа шапка + + + ГруппаШапкаРасширеннаяПодсказка + 147 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Equal + Auto + Auto + + + + ЗаголовокДокумента + 46 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + ЗаголовокДокумента + + + ЗаголовокДокументаРасширеннаяПодсказка + 195 + Label + true + true + + Left + + + + ЗаголовокДокументаКонтекстноеМеню + 47 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Описание + 48 + + <key>ru</key> + <value>Краткое описание</value> + + true + true + + true + + + Описание + + None + + ОписаниеРасширеннаяПодсказка + 197 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 49 + true + + InputField + Enter + true + Left + true + + true + 3 + true + true + true + true + true + true + Normal + + + + ГруппаСтраницы + 85 + + ГруппаФайлы + 86 + + Файлы + 50 + true + true + + true + + + Файлы + + None + Add + Copy + EndEdit + MoveDown + MoveUp + SelectAll + SortListAsc + SortListDesc + + ФайлыПодписанЭЦП + 95 + true + true + + true + + + Файлы.ПодписанЭЦП + + + ФайлыПодписанЭЦПРасширеннаяПодсказка + 229 + Label + true + true + + Left + + + + ФайлыПодписанЭЦПКонтекстноеМеню + 96 + true + + PictureField + Enter + + CommonPicture.ПодписанЭЦП + + Left + true + + true + true + true + true + + CommonPicture.ПодписанЭЦП + + + + 1 + + + + + ГруппаКартинкаИНаименование + 97 + + ФайлыИндексКартинки + 98 + true + true + + true + + + Файлы.ИндексКартинки + + + ФайлыИндексКартинкиРасширеннаяПодсказка + 232 + Label + true + true + + Left + + + + ФайлыИндексКартинкиКонтекстноеМеню + 99 + true + + PictureField + Enter + Left + true + + true + true + true + true + + CommonPicture.ПиктограммыФайлов + + + + 1 + + + + + ФайлыНаименование + 100 + true + true + + true + + + Файлы.Наименование + + + ФайлыНаименованиеРасширеннаяПодсказка + 234 + Label + true + true + + Left + + + + ФайлыНаименованиеКонтекстноеМеню + 101 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ФайлыОписание + 102 + true + true + + true + + + Файлы.Описание + + + ФайлыОписаниеРасширеннаяПодсказка + 236 + Label + true + true + + Left + + + + ФайлыОписаниеКонтекстноеМеню + 103 + true + + InputField + Enter + Left + true + + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа картинка и наименование</value> + + + ru + Группа картинка и наименование + + + ГруппаКартинкаИНаименованиеРасширеннаяПодсказка + 231 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + ФайлыКоманднаяПанель + 52 + + ФайлыСоздатьФайл + 106 + true + true + + true + + + ФайлыСоздатьФайлРасширеннаяПодсказка + 210 + Label + true + true + + Left + + + Form.Command.СоздатьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыОткрытьФайл + 107 + true + true + + true + + + ФайлыОткрытьФайлРасширеннаяПодсказка + 211 + Label + true + true + + Left + + + Form.Command.ОткрытьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыОбновитьИзФайлаНаДиске + 108 + true + true + + true + + + ФайлыОбновитьИзФайлаНаДискеРасширеннаяПодсказка + 212 + Label + true + true + + Left + + + Form.Command.ОбновитьИзФайлаНаДиске + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыСохранитьКак + 109 + true + true + + true + + + ФайлыСохранитьКакРасширеннаяПодсказка + 213 + Label + true + true + + Left + + + Form.Command.СохранитьКак + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыГруппаЭЦП + 110 + + ФайлыПодписать + 111 + true + true + + true + + + ФайлыПодписатьРасширеннаяПодсказка + 215 + Label + true + true + + Left + + + Form.Command.Подписать + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыДобавитьЭЦПИзФайла + 112 + true + true + + true + + + ФайлыДобавитьЭЦПИзФайлаРасширеннаяПодсказка + 216 + Label + true + true + + Left + + + Form.Command.ДобавитьЭЦПИзФайла + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФайлыСохранитьВместеСЭЦП + 113 + true + true + + true + + + ФайлыСохранитьВместеСЭЦПРасширеннаяПодсказка + 217 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭЦП + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ФайлыГруппаЭЦПРасширеннаяПодсказка + 214 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + ФайлыЗаполнитьКопированием + 141 + true + true + + true + + + ФайлыЗаполнитьКопированиемРасширеннаяПодсказка + 218 + Label + true + true + + Left + + + Form.Command.ЗаполнитьКопированием + Normal + Auto + true + true + UserCmds + Auto + + Left + + + DragCheck + СписокФайловПроверкаПеретаскивания + + + Selection + ФайлыВыбор + + + BeforeAddRow + ФайлыПередНачаломДобавления + + + BeforeDeleteRow + ФайлыПередУдалением + + + OnActivateRow + ФайлыПриАктивизацииСтроки + + + Drag + СписокФайловПеретаскивание + + + BeforeRowChange + ФайлыПередНачаломИзменения + + + ФайлыСтрокаПоиска + 220 + + ФайлыСтрокаПоискаРасширеннаяПодсказка + 222 + Label + true + true + + Left + + + + ФайлыСтрокаПоискаКонтекстноеМеню + 221 + true + + Файлы + + true + + + + ФайлыСостояниеПросмотра + 223 + + ФайлыСостояниеПросмотраРасширеннаяПодсказка + 225 + Label + true + true + + Left + + + + ФайлыСостояниеПросмотраКонтекстноеМеню + 224 + true + + ViewStatusAddition + Файлы + + true + + + + ФайлыУправлениеПоиском + 226 + + ФайлыУправлениеПоискомРасширеннаяПодсказка + 228 + Label + true + true + + Left + + + + ФайлыУправлениеПоискомКонтекстноеМеню + 227 + true + + SearchControlAddition + Файлы + + true + + + + ФайлыРасширеннаяПодсказка + 219 + Label + true + true + + Left + + + + ФайлыКонтекстноеМеню + 51 + + ФайлыКонтекстноеМенюСоздатьФайл + 114 + true + true + + true + + + ФайлыКонтекстноеМенюСоздатьФайлРасширеннаяПодсказка + 201 + Label + true + true + + Left + + + Form.Command.СоздатьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюГруппаСтандартные + 115 + true + true + + true + + + <key>ru</key> + <value>Файлы контекстное меню группа стандартные</value> + + + ru + Файлы контекстное меню группа стандартные + + + ФайлыКонтекстноеМенюГруппаСтандартныеРасширеннаяПодсказка + 202 + Label + true + true + + Left + + + + Item.Файлы + + + + ФайлыКонтекстноеМенюОткрытьФайл + 116 + true + true + + true + + + ФайлыКонтекстноеМенюОткрытьФайлРасширеннаяПодсказка + 203 + Label + true + true + + Left + + + Form.Command.ОткрытьФайл + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюСохранитьКак + 117 + true + true + + true + + + ФайлыКонтекстноеМенюСохранитьКакРасширеннаяПодсказка + 204 + Label + true + true + + Left + + + Form.Command.СохранитьКак + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске + 118 + true + true + + true + + + ФайлыКонтекстноеМенюОбновитьИзФайлаНаДискеРасширеннаяПодсказка + 205 + Label + true + true + + Left + + + Form.Command.ОбновитьИзФайлаНаДиске + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюГруппаЭЦП + 119 + + ФайлыКонтекстноеМенюПодписать + 120 + true + true + + true + + + ФайлыКонтекстноеМенюПодписатьРасширеннаяПодсказка + 207 + Label + true + true + + Left + + + Form.Command.Подписать + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла + 121 + true + true + + true + + + ФайлыКонтекстноеМенюДобавитьЭЦПИзФайлаРасширеннаяПодсказка + 208 + Label + true + true + + Left + + + Form.Command.ДобавитьЭЦПИзФайла + Normal + Auto + true + true + UserCmds + Auto + + + ФайлыКонтекстноеМенюСохранитьВместеСЭЦП + 122 + true + true + + true + + + ФайлыКонтекстноеМенюСохранитьВместеСЭЦПРасширеннаяПодсказка + 209 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭЦП + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ФайлыКонтекстноеМенюГруппаЭЦПРасширеннаяПодсказка + 206 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ true + true + + true + + + <key>ru</key> + <value>Файлы</value> + + + ru + Группа файлы + + + ГруппаФайлыРасширеннаяПодсказка + 200 + Label + true + true + + Left + + + Page + + Vertical + auto + +
+ + ГруппаЭЦП + 123 + + ТаблицаПодписей + 124 + true + true + + true + + + ТаблицаПодписей + + None + + ТаблицаПодписейКомуВыданСертификат + 127 + true + true + + true + + + ТаблицаПодписей.КомуВыданСертификат + + + ТаблицаПодписейКомуВыданСертификатРасширеннаяПодсказка + 262 + Label + true + true + + Left + + + + ТаблицаПодписейКомуВыданСертификатКонтекстноеМеню + 128 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейДатаПодписи + 129 + true + true + + true + + + ТаблицаПодписей.ДатаПодписи + + + ТаблицаПодписейДатаПодписиРасширеннаяПодсказка + 264 + Label + true + true + + Left + + + + ТаблицаПодписейДатаПодписиКонтекстноеМеню + 130 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейКомментарий + 131 + true + true + + true + + + ТаблицаПодписей.Комментарий + + + ТаблицаПодписейКомментарийРасширеннаяПодсказка + 266 + Label + true + true + + Left + + + + ТаблицаПодписейКомментарийКонтекстноеМеню + 132 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейСтатус + 133 + true + true + + true + + + ТаблицаПодписей.Статус + + + ТаблицаПодписейСтатусРасширеннаяПодсказка + 268 + Label + true + true + + Left + + + + ТаблицаПодписейСтатусКонтекстноеМеню + 134 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейКоманднаяПанель + 126 + + ТаблицаПодписейОткрытьПодпись + 135 + true + true + + true + + + ТаблицаПодписейОткрытьПодписьРасширеннаяПодсказка + 247 + Label + true + true + + Left + + + Form.Command.ОткрытьПодпись + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейПроверить + 136 + true + true + + true + + + ТаблицаПодписейПроверитьРасширеннаяПодсказка + 248 + Label + true + true + + Left + + + Form.Command.Проверить + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейПроверитьВсе + 137 + true + true + + true + + + ТаблицаПодписейПроверитьВсеРасширеннаяПодсказка + 249 + Label + true + true + + Left + + + Form.Command.ПроверитьВсе + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейСохранить + 138 + true + true + + true + + + ТаблицаПодписейСохранитьРасширеннаяПодсказка + 250 + Label + true + true + + Left + + + Form.Command.Сохранить + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейУдалить + 139 + true + true + + true + + + ТаблицаПодписейУдалитьРасширеннаяПодсказка + 251 + Label + true + true + + Left + + + Form.Command.Удалить + Normal + Auto + true + true + UserCmds + Auto + + Left + + + Selection + ТаблицаПодписейВыбор + + + ТаблицаПодписейСтрокаПоиска + 253 + + ТаблицаПодписейСтрокаПоискаРасширеннаяПодсказка + 255 + Label + true + true + + Left + + + + ТаблицаПодписейСтрокаПоискаКонтекстноеМеню + 254 + true + + ТаблицаПодписей + + true + + + + ТаблицаПодписейСостояниеПросмотра + 256 + + ТаблицаПодписейСостояниеПросмотраРасширеннаяПодсказка + 258 + Label + true + true + + Left + + + + ТаблицаПодписейСостояниеПросмотраКонтекстноеМеню + 257 + true + + ViewStatusAddition + ТаблицаПодписей + + true + + + + ТаблицаПодписейУправлениеПоиском + 259 + + ТаблицаПодписейУправлениеПоискомРасширеннаяПодсказка + 261 + Label + true + true + + Left + + + + ТаблицаПодписейУправлениеПоискомКонтекстноеМеню + 260 + true + + SearchControlAddition + ТаблицаПодписей + + true + + + + ТаблицаПодписейРасширеннаяПодсказка + 252 + Label + true + true + + Left + + + + ТаблицаПодписейКонтекстноеМеню + 125 + true + + Tree + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + + ТаблицаПодписей.ИндексКартинки + + + CommonPicture.ПиктограммыФайлов + + None + None + None + true +
+ true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ГруппаЭЦПРасширеннаяПодсказка + 246 + Label + true + true + + Left + + + Page + + Vertical + auto + +
+ + ГруппаСвойства + 87 + + Свойства + 88 + true + true + + true + + + Свойства + + None + Add + CancelSearch + Change + Copy + CopyToClipboard + Delete + EndEdit + Find + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + СвойстваСвойство + 91 + + <key>ru</key> + <value>Свойство</value> + + true + true + + true + + + Свойства.Свойство + + + СвойстваСвойствоРасширеннаяПодсказка + 289 + Label + true + true + + Left + + + + СвойстваСвойствоКонтекстноеМеню + 92 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + СвойстваЗначение + 93 + + <key>ru</key> + <value>Значение</value> + + true + true + + true + + + Свойства.Значение + + + СвойстваЗначениеРасширеннаяПодсказка + 291 + Label + true + true + + Left + + + + СвойстваЗначениеКонтекстноеМеню + 94 + true + + InputField + Auto + true + Left + true + + + StartChoice + СвойстваЗначениеПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + СвойстваКоманднаяПанель + 90 + Left + true + + + СвойстваСтрокаПоиска + 280 + + СвойстваСтрокаПоискаРасширеннаяПодсказка + 282 + Label + true + true + + Left + + + + СвойстваСтрокаПоискаКонтекстноеМеню + 281 + true + + Свойства + + true + + + + СвойстваСостояниеПросмотра + 283 + + СвойстваСостояниеПросмотраРасширеннаяПодсказка + 285 + Label + true + true + + Left + + + + СвойстваСостояниеПросмотраКонтекстноеМеню + 284 + true + + ViewStatusAddition + Свойства + + true + + + + СвойстваУправлениеПоиском + 286 + + СвойстваУправлениеПоискомРасширеннаяПодсказка + 288 + Label + true + true + + Left + + + + СвойстваУправлениеПоискомКонтекстноеМеню + 287 + true + + SearchControlAddition + Свойства + + true + + + + СвойстваРасширеннаяПодсказка + 279 + Label + true + true + + Left + + + + СвойстваКонтекстноеМеню + 89 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ true + true + + true + + + <key>ru</key> + <value>Свойства</value> + + + ru + Группа свойства + + + ГруппаСвойстваРасширеннаяПодсказка + 278 + Label + true + true + + Left + + + Page + + Vertical + auto + +
+ true + true + + true + + + <key>ru</key> + <value>Группа страницы</value> + + + ru + Группа страницы + + + ГруппаСтраницыРасширеннаяПодсказка + 199 + Label + true + true + + Left + + + Pages + + TabsOnTop + Auto + +
+ + Ответственный + 59 + + <key>ru</key> + <value>Ответственный</value> + + true + true + + true + + + Ответственный + + + ОтветственныйРасширеннаяПодсказка + 301 + Label + true + true + + Left + + + + ОтветственныйКонтекстноеМеню + 60 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ОтветственныйАвтоПодбор + + + StartChoice + ОтветственныйНачалоВыбора + + + TextEditEnd + ОтветственныйОкончаниеВводаТекста + + + ChoiceProcessing + ОтветственныйОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + + Комментарий + 61 + true + true + + true + + + Комментарий + + + КомментарийРасширеннаяПодсказка + 303 + Label + true + true + + Left + + + + КомментарийКонтекстноеМеню + 62 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ФормаКоманднаяПанель + -1 + + ЗаписатьИЗакрыть + 1 + true + true + + true + + + ЗаписатьИЗакрытьРасширеннаяПодсказка + 142 + Label + true + true + + Left + + + Form.Command.ЗаписатьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + Записать + 2 + true + true + + true + + + ЗаписатьРасширеннаяПодсказка + 143 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаСоздатьБизнесПроцесс + 140 + true + true + + true + + + ФормаСоздатьБизнесПроцессРасширеннаяПодсказка + 144 + Label + true + true + + Left + + + Form.Command.СоздатьБизнесПроцесс + Normal + Auto + true + true + UserCmds + Auto + + + ГруппаКомандЭЦП + 104 + + ФормаПодписатьДокумент + 105 + true + true + + true + + + ФормаПодписатьДокументРасширеннаяПодсказка + 146 + Label + true + true + + Left + + + Form.Command.ПодписатьДокумент + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ГруппаКомандЭЦПРасширеннаяПодсказка + 145 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + OnOpen + ПриОткрытии + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ID + + <key>ru</key> + <value>ID</value> + + 1 + + String + + + + true + + + true + + + + АдресатID + + <key>ru</key> + <value>Адресат ID</value> + + 2 + + String + + + + true + + + true + + + + Адресат + + <key>ru</key> + <value>Адресат</value> + + 3 + + String + + + + true + + + true + + true + + + АдресатТип + + <key>ru</key> + <value>Адресат тип</value> + + 4 + + String + + + + true + + + true + + + + ВалютаID + + <key>ru</key> + <value>Валюта ID</value> + + 5 + + String + + + + true + + + true + + + + Валюта + + <key>ru</key> + <value>Валюта</value> + + 6 + + String + + + + true + + + true + + true + + + ВалютаТип + + <key>ru</key> + <value>Валюта тип</value> + + 7 + + String + + + + true + + + true + + + + ВидДокументаID + + <key>ru</key> + <value>Вид документа ID</value> + + 8 + + String + + + + true + + + true + + + + ВидДокумента + + <key>ru</key> + <value>Вид документа</value> + + 9 + + String + + + + true + + + true + + true + + + ВидДокументаТип + + <key>ru</key> + <value>Вид документа тип</value> + + 10 + + String + + + + true + + + true + + + + ВнешнийОбъект + + <key>ru</key> + <value>Внешний объект</value> + + 11 + + AnyRef + + + true + + + true + + + + ВопросДеятельностиID + + <key>ru</key> + <value>Вопрос деятельности ID</value> + + 12 + + String + + + + true + + + true + + + + ВопросДеятельности + + <key>ru</key> + <value>Вопрос</value> + + 13 + + String + + + + true + + + true + + true + + + ВопросДеятельностиТип + + <key>ru</key> + <value>Вопрос деятельности тип</value> + + 14 + + String + + + + true + + + true + + + + ГрифДоступаID + + <key>ru</key> + <value>Гриф доступа ID</value> + + 18 + + String + + + + true + + + true + + + + ГрифДоступа + + <key>ru</key> + <value>Гриф доступа</value> + + 19 + + String + + + + true + + + true + + true + + + ГрифДоступаТип + + <key>ru</key> + <value>Гриф доступа тип</value> + + 20 + + String + + + + true + + + true + + + + ДатаПолучателя + + <key>ru</key> + <value>Дата получателя</value> + + 21 + + Date + + Date + + + + true + + + true + + true + + + ДатаРегистрации + + <key>ru</key> + <value>от</value> + + 22 + + Date + + + + true + + + true + + true + + + ЗаголовокДокумента + + <key>ru</key> + <value>Заголовок документа</value> + + 23 + + String + + + + true + + + true + + true + + + Комментарий + + <key>ru</key> + <value>Комментарий</value> + + 24 + + String + + + + true + + + true + + true + + + НомерПолучателя + + <key>ru</key> + <value>Номер получателя</value> + + 25 + + String + + + + true + + + true + + true + + + Описание + + <key>ru</key> + <value>Описание</value> + + 26 + + String + + + + true + + + true + + true + + + ОрганизацияID + + <key>ru</key> + <value>Организация ID</value> + + 27 + + String + + + + true + + + true + + + + Организация + + <key>ru</key> + <value>Организация</value> + + 28 + + String + + + + true + + + true + + true + + + ОрганизацияТип + + <key>ru</key> + <value>Организация тип</value> + + 29 + + String + + + + true + + + true + + + + ОтветственныйID + + <key>ru</key> + <value>Ответственный ID</value> + + 30 + + String + + + + true + + + true + + + + Ответственный + + <key>ru</key> + <value>Ответственный</value> + + 31 + + String + + + + true + + + true + + true + + + ОтветственныйТип + + <key>ru</key> + <value>Ответственный тип</value> + + 32 + + String + + + + true + + + true + + + + ПолучательID + + <key>ru</key> + <value>Получатель ID</value> + + 33 + + String + + + + true + + + true + + + + Получатель + + <key>ru</key> + <value>Получатель</value> + + 34 + + String + + + + true + + + true + + true + + + ПолучательТип + + <key>ru</key> + <value>Получатель тип</value> + + 35 + + String + + + + true + + + true + + + + ПодписалID + + <key>ru</key> + <value>Подписал ID</value> + + 36 + + String + + + + true + + + true + + + + Подписал + + <key>ru</key> + <value>Подписал</value> + + 37 + + String + + + + true + + + true + + true + + + ПодписалТип + + <key>ru</key> + <value>Подписал тип</value> + + 38 + + String + + + + true + + + true + + + + ПодразделениеID + + <key>ru</key> + <value>Подразделение ID</value> + + 39 + + String + + + + true + + + true + + + + Подразделение + + <key>ru</key> + <value>Подразделение</value> + + 40 + + String + + + + true + + + true + + true + + + ПодразделениеТип + + <key>ru</key> + <value>Подразделение тип</value> + + 41 + + String + + + + true + + + true + + + + РегистрационныйНомер + + <key>ru</key> + <value>Регистрационный номер</value> + + 42 + + String + + + + true + + + true + + true + + + РежимОткрытия + + <key>ru</key> + <value>Режим открытия</value> + + 43 + + String + + + + true + + + true + + + + СостояниеID + + <key>ru</key> + <value>Состояние ID</value> + + 44 + + String + + + + true + + + true + + + + Состояние + + <key>ru</key> + <value>Состояние</value> + + 45 + + String + + + + true + + + true + + true + + + СостояниеТип + + <key>ru</key> + <value>Состояние</value> + + 46 + + String + + + + true + + + true + + + + СпособОтправкиID + + <key>ru</key> + <value>Способ отправки ID</value> + + 47 + + String + + + + true + + + true + + + + СпособОтправки + + <key>ru</key> + <value>Способ доставки</value> + + 48 + + String + + + + true + + + true + + true + + + СпособОтправкиТип + + <key>ru</key> + <value>Способ отправки тип</value> + + 49 + + String + + + + true + + + true + + + + СрокИсполнения + + <key>ru</key> + <value>Срок ответа</value> + + 50 + + Date + + Date + + + + true + + + true + + true + + + Сумма + + <key>ru</key> + <value>Сумма</value> + + 51 + + Number + + 15 + 2 + true + + + + true + + + true + + true + + + Тип + + <key>ru</key> + <value>Тип</value> + + 52 + + String + + + + true + + + true + + + + Подготовил + + <key>ru</key> + <value>Подготовил</value> + + 54 + + String + + + + true + + + true + + true + + + ПодготовилID + + <key>ru</key> + <value>Подготовил ID</value> + + 55 + + String + + + + true + + + true + + + + ПодготовилТип + + <key>ru</key> + <value>Подготовил тип</value> + + 56 + + String + + + + true + + + true + + + + Отправлен + + <key>ru</key> + <value>Отправлен</value> + + 57 + + Boolean + + + true + + + true + + true + + + ДатаОтправки + + <key>ru</key> + <value>Дата</value> + + 58 + + Date + + + + true + + + true + + true + + + Представление + + <key>ru</key> + <value>Представление</value> + + 15 + + String + + + + true + + + true + + + + ЗакрытиеСПараметром + + <key>ru</key> + <value>Закрытие с параметром</value> + + 16 + + Boolean + + + true + + + true + + + + Свойства + + <key>ru</key> + <value>Свойства</value> + + 17 + + ValueTable + + + true + + + true + + true + + Свойство + + <key>ru</key> + <value>Свойство</value> + + 1 + + String + + + + true + + + true + + + + Значение + + <key>ru</key> + <value>Значение</value> + + 2 + + Boolean + String + Date + Number + + 10 + + + + Date + + + + true + + + true + + + + ЗначениеТип + + <key>ru</key> + <value>Значение тип</value> + + 3 + + String + + + + true + + + true + + + + ЗначениеID + + <key>ru</key> + <value>Значение ID</value> + + 4 + + String + + + + true + + + true + + + + СписокДоступныхТипов + + <key>ru</key> + <value>Список доступных типов</value> + + 5 + + ValueList + + + true + + + true + + + + СвойствоТип + + <key>ru</key> + <value>Свойство тип</value> + + 6 + + String + + + + true + + + true + + + + СвойствоID + + <key>ru</key> + <value>Свойство ID</value> + + 7 + + String + + + + true + + + true + + + + + КаталогДляСохраненияДанных + + <key>ru</key> + <value>Каталог для сохранения данных</value> + + 59 + + String + + + + true + + + true + + + + ТаблицаПодписей + + <key>ru</key> + <value>Таблица подписей</value> + + 53 + + ValueTree + + + true + + + true + + + КомуВыданСертификат + + <key>ru</key> + <value>Автор подписи</value> + + 1 + + String + + + + true + + + true + + + + ДатаПодписи + + <key>ru</key> + <value>Дата подписи</value> + + 2 + + Date + + + + true + + + true + + + + Комментарий + + <key>ru</key> + <value>Комментарий</value> + + 3 + + String + + + + true + + + true + + + + Статус + + <key>ru</key> + <value>Статус</value> + + 4 + + String + + + + true + + + true + + + + АдресПодписи + + <key>ru</key> + <value>Адрес подписи</value> + + 6 + + String + + + + true + + + true + + + + Отпечаток + + <key>ru</key> + <value>Отпечаток</value> + + 7 + + String + + + + true + + + true + + + + Неверна + + <key>ru</key> + <value>Неверна</value> + + 8 + + Boolean + + + true + + + true + + + + ИндексКартинки + + <key>ru</key> + <value>Индекс картинки</value> + + 9 + + Number + + 10 + + + + true + + + true + + + + УстановившийПодпись + + <key>ru</key> + <value>Установивший подпись</value> + + 11 + + String + + + + true + + + true + + + + НомерСтроки + + <key>ru</key> + <value>Номер строки</value> + + 10 + + Number + + 10 + + + + true + + + true + + + + АдресСертификата + + <key>ru</key> + <value>Адрес сертификата</value> + + 12 + + String + + + + true + + + true + + + + Зашифрован + + <key>ru</key> + <value>Зашифрован</value> + + 13 + + Boolean + + + true + + + true + + + + ОбъектИд + + <key>ru</key> + <value>Объект ид</value> + + 5 + + String + + + + true + + + true + + + + ОбъектТип + + <key>ru</key> + <value>Объект тип</value> + + 14 + + String + + + + true + + + true + + + + ОбъектИмя + + <key>ru</key> + <value>Объект имя</value> + + 15 + + String + + + + true + + + true + + + + Объект + + <key>ru</key> + <value>Объект</value> + + 16 + + String + + + + true + + + true + + + + ИмяФайлаПодписи + + <key>ru</key> + <value>Имя файла подписи</value> + + 17 + + String + + + + true + + + true + + + + УстановившийПодписьИд + + <key>ru</key> + <value>Установивший подпись ид</value> + + 18 + + String + + + + true + + + true + + + + + Файлы + + <key>ru</key> + <value>Файлы</value> + + 60 + + ValueTable + + + true + + + true + + + Тип + + <key>ru</key> + <value>Тип</value> + + 2 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 3 + + String + + + + true + + + true + + + + Описание + + <key>ru</key> + <value>Описание</value> + + 4 + + String + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 5 + + String + + + + true + + + true + + + + ИндексКартинки + + <key>ru</key> + <value>Индекс картинки</value> + + 6 + + Number + + + + true + + + true + + + + УникальныйИдентификатор + + <key>ru</key> + <value>Уникальный идентификатор</value> + + 7 + + String + + + + true + + + true + + + + Размер + + <key>ru</key> + <value>Размер (Кб)</value> + + 1 + + Number + + + + true + + + true + + + + Расширение + + <key>ru</key> + <value>Расширение</value> + + 8 + + String + + + + true + + + true + + + + ДатаСоздания + + <key>ru</key> + <value>Дата создания</value> + + 9 + + Date + + + + true + + + true + + + + Зашифрован + + <key>ru</key> + <value>Зашифрован</value> + + 10 + + Boolean + + + true + + + true + + + + Редактируется + + <key>ru</key> + <value>Редактируется</value> + + 11 + + Boolean + + + true + + + true + + + + ПодписанЭЦП + + <key>ru</key> + <value>Подписан ЭЦП</value> + + 12 + + Boolean + + + true + + + true + + + + ДатаМодификацииУниверсальная + + <key>ru</key> + <value>Дата модификации универсальная</value> + + 13 + + Date + + + + true + + + true + + + + + НачальныйРегистрационныйНомер + + <key>ru</key> + <value>Начальный регистрационный номер</value> + + 61 + + String + + + + true + + + true + + + + НачальнаяДатаРегистрации + + <key>ru</key> + <value>Начальная дата регистрации</value> + + 62 + + Date + + + + true + + + true + + + + ОграничиватьДоступностьПолей + + <key>ru</key> + <value>Ограничивать доступность полей</value> + + 63 + + Boolean + + + true + + + true + + + + АдресСлепкаДокумента + + <key>ru</key> + <value>Адрес слепка документа</value> + + 64 + + String + + + + true + + + true + + + + Записать + + <key>ru</key> + <value>Записать</value> + + 1 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + true + Auto + Auto + + + ЗаписатьИЗакрыть + + <key>ru</key> + <value>Записать и закрыть</value> + + 2 + + ru + Записать и закрыть + + + true + + + + ЗаписатьИЗакрыть + + + true + Auto + Auto + + + Зарегистрировать + + <key>ru</key> + <value>Зарегистрировать</value> + + 3 + + ru + Зарегистрировать + + + true + + + + Зарегистрировать + + + Auto + Auto + + + ДобавитьЭЦПИзФайла + + <key>ru</key> + <value>Добавить ЭЦП из файла</value> + + 4 + + ru + Добавить ЭЦП из файла + + + true + + + + ДобавитьЭЦПИзФайла + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ОбновитьИзФайлаНаДиске + + <key>ru</key> + <value>Обновить из файла на диске</value> + + 5 + + ru + Обновить из файла на диске + + + true + + + CommonPicture.КартинкаОбновитьИзФайлаНаДиске + + + + ОбновитьИзФайлаНаДиске + + + TextPicture + Auto + Auto + + + ОткрытьПодпись + + <key>ru</key> + <value>Открыть подпись</value> + + 6 + + ru + Открыть подпись + + + true + + + + ОткрытьПодпись + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ОткрытьФайл + + <key>ru</key> + <value>Просмотреть</value> + + 7 + + ru + Открыть файл для просмотра + + + true + + + CommonPicture.КартинкаОткрыть + + + + ОткрытьФайл + + + TextPicture + Auto + Auto + + + Подписать + + <key>ru</key> + <value>Подписать</value> + + 8 + + ru + Подписать + + + true + + + CommonPicture.ПодписанЭЦП + + + + Подписать + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ПодписатьДокумент + + <key>ru</key> + <value>Подписать</value> + + 9 + + ru + Подписать + + + true + + + CommonPicture.ПодписанЭЦП + + + + ПодписатьДокумент + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + Проверить + + <key>ru</key> + <value>Проверить</value> + + 10 + + ru + Проверить + + + true + + + + Проверить + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ПроверитьВсе + + <key>ru</key> + <value>Проверить все</value> + + 11 + + ru + Проверить все + + + true + + + + ПроверитьВсе + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + СоздатьФайл + + <key>ru</key> + <value>Добавить</value> + + 12 + + ru + Создать новый файл (Ins) + + + true + + + StdPicture.CreateListItem + + + + СоздатьФайл + + + TextPicture + true + Auto + Auto + + + Сохранить + + <key>ru</key> + <value>Сохранить</value> + + 13 + + ru + Сохранить + + + true + + + + Сохранить + + + Auto + Auto + + + СохранитьВместеСЭЦП + + <key>ru</key> + <value>Сохранить вместе с ЭЦП</value> + + 14 + + ru + Сохранить вместе СЭЦП + + + true + + + + СохранитьВместеСЭЦП + + + Auto + Auto + + + СохранитьКак + + <key>ru</key> + <value>Сохранить как...</value> + + 15 + + ru + Сохранить файл на диск или другое устройство + + + true + + + CommonPicture.КартинкаСохранитьКак + + + + СохранитьКак + + + TextPicture + Auto + Auto + + + Удалить + + <key>ru</key> + <value>Удалить</value> + + 16 + + ru + Удалить + + + true + + + + Удалить + + + Auto + Auto + + + СоздатьБизнесПроцесс + + <key>ru</key> + <value>Создать бизнес-процесс</value> + + 17 + + ru + Создать бизнес-процесс документооборота + + + true + + + StdPicture.BusinessProcess + + + + СоздатьБизнесПроцесс + + + Auto + Auto + + + ЗаполнитьКопированием + + <key>ru</key> + <value>Копировать из присоединенных файлов</value> + + 18 + + ru + Заполнить копированием из присоединенных файлов + + + true + + + + ЗаполнитьКопированием + + + Auto + Auto + + + ID + + String + + + true + + + ВнешнийОбъект + + AnyRef + + + + Тип + + String + + + true + + + ТолькоПросмотр + + Boolean + + + + + + +
diff --git a/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/Help/ru.html b/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/Help/ru.html new file mode 100644 index 000000000..897a19717 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/Help/ru.html @@ -0,0 +1,18 @@ + +

Справочник "Исходящие документы" служит для учета официальной корреспонденции, которую Ваша организация отправляет внешним адресатам.

+

К каждому исходящему документу можно присоединить один или несколько файлов. Учет файлов возможен, если настройка программы "Использовать файлы у исходящих документов" установлена.

+

Для документа следует задать: 

+
  • получателя (корреспондента, для которого предназначен документ).  +
  • адресат - контактное лицо; +
  • руководителя (пользователя), подписавшего документ; +
  • пользователя, подготовившего документ; +
  • подразделение, которое выпускает документ; +
  • срок ответа (если требуется) - показывается, если настройка программы "Использовать срок ответа" установлена; +
  • флажок "Отправлен" устанавливается, если документ уже отправлен, также устанавливается дата отправки; +
  • способ отправки документа; +
  • гриф доступа - если установлена настройка программы "Использовать грифы доступа", то входящему документу нужно обязательно присвоить гриф доступа, выбрав его из числа заранее настроенных администратором грифов. Гриф определяет права доступа пользователей к входящему документу; +
  • вид документа - показывается, если настройка программы "Использовать виды исходящих документов" установлена; +
  • состояние документа - показывается, если настройка программы "Использовать состояние документов" установлена; +
  • организацию - в случае ведения документооборота для нескольких организаций (показывается, если настройка программы "Использовать учет по организациям" установлена); +
  • в поле "Краткое содержание" (ниже поля "Наименование") записывается текст, поясняющий цель отправки документа;


Документ может нумероваться вручную или автоматически (в зависимости от настроек вида документа).
Если задана автоматическая нумерация, то для того, чтобы присвоить регистрационный номер необходимо нажать кнопку "Зарегистрировать".
Если задана ручная нумерация, то достаточно заполнить поля "Регистрационный номер" и "Дата регистрации" и записать документ.

+

Если настройка программы "Использовать электронно цифровые подписи" включена, то в карточке документа добавляются группа команд "ЭЦП" (содержит команду "Подписать", с помощью которой выполняется удостоверение документа электронной подписью) и закладка "ЭЦП", в которой редактируются и проверяются электронно цифровые подписи.
Если документ подписан, то его редактирование невозможно. Для редактирования нужно сначала удалить все подписи. Текущий пользователь может удалять только свои подписи. Право удаления всех подписей принадлежит администратору.
Подпись можно сохранить в файл (например, для пересылки по электронной почте), а также посмотреть сертификат подписи. 

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/Module.bsl b/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/Module.bsl new file mode 100644 index 000000000..d974b7b5a --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/Module.bsl @@ -0,0 +1,1865 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Вспомогательные процедуры + +&НаСервере +Процедура ЗаполнитьРеквизитыФормыИзXDTO(ИмяРеквизитаФормы, ОбъектXDTO, ИмяСвойстваXDTO) + + Если ОбъектXDTO.Установлено(ИмяСвойстваXDTO) Тогда + ЗначениеСвойстваXDTO = ОбъектXDTO[ИмяСвойстваXDTO]; + Если ТипЗнч(ЗначениеСвойстваXDTO) = Тип("ОбъектXDTO") Тогда + ЭтаФорма[ИмяРеквизитаФормы + "Тип"] = ЗначениеСвойстваXDTO.objectId.type; + ЭтаФорма[ИмяРеквизитаФормы + "ID"] = ЗначениеСвойстваXDTO.objectId.id; + ЭтаФорма[ИмяРеквизитаФормы] = ЗначениеСвойстваXDTO.name; + Иначе + ЭтаФорма[ИмяРеквизитаФормы] = ЗначениеСвойстваXDTO; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьXDTOизРеквизитовФормы(Прокси, ОбъектXDTO, ИмяСвойстваXDTO, ИмяРеквизитаФормы) + + ТипСвойства = ОбъектXDTO.Тип().Свойства.Получить(ИмяСвойстваXDTO).Тип; + ТипРодитель = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObject"); + + Если ТипЗнч(ТипСвойства) = Тип("ТипОбъектаXDTO") И ТипРодитель.ЭтоПотомок(ТипСвойства) Тогда + + Реквизит = ЭтаФорма[ИмяРеквизитаФормы]; + РеквизитID = ЭтаФорма[ИмяРеквизитаФормы + "ID"]; + РеквизитТип = ЭтаФорма[ИмяРеквизитаФормы + "Тип"]; + + ЗначениеСвойства = Прокси.ФабрикаXDTO.Создать(ТипСвойства); + + // заполнить из потребителя + Если Метаданные.НайтиПоПолномуИмени(РеквизитТип) <> Неопределено Тогда + РеквизитТип = СтрЗаменить(РеквизитТип, "ПланВидовХарактеристик.", "ПланыВидовХарактеристик."); + РеквизитТип = СтрЗаменить(РеквизитТип, "БизнесПроцесс.", "БизнесПроцессы."); + РеквизитТип = СтрЗаменить(РеквизитТип, "Справочник.", "Справочники."); + РеквизитТип = СтрЗаменить(РеквизитТип, "Документ.", "Документы."); + РеквизитТип = СтрЗаменить(РеквизитТип, "Задача.", "Задачи."); + + СсылкаНаПотребителя = Неопределено; + Выполнить("СсылкаНаПотребителя = " + РеквизитТип + ".ПолучитьСсылку(Новый УникальныйИдентификатор(РеквизитID))"); + + РаботаС1СДокументооборот.ЗаполнитьРеквизитыИзПотребителя(Прокси, ЗначениеСвойства, СсылкаНаПотребителя); + + ИначеЕсли РеквизитТип = "Строка" Тогда + + ЗначениеСвойства.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, "", ""); + ЗначениеСвойства.name = Реквизит; + + ExternalObject = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "ExternalObject"); + ExternalObject.id = ""; + ExternalObject.type = ""; + ExternalObject.name = ""; + + ЗначениеСвойства.ExternalObject = ExternalObject; + + ИначеЕсли ЗначениеЗаполнено(Реквизит) Тогда + + ЗначениеСвойства.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, РеквизитID, РеквизитТип); + ЗначениеСвойства.name = Реквизит; + + Иначе + + ЗначениеСвойства.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, "", ""); + ЗначениеСвойства.name = ""; + + КонецЕсли; + + ОбъектXDTO.Установить(ИмяСвойстваXDTO, ЗначениеСвойства); + + + Иначе + ОбъектXDTO.Установить(ИмяСвойстваXDTO, ЭтаФорма[ИмяРеквизитаФормы]); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриИзмененииВидаДокумента() + + РаботаС1СДокументооборот.ПриИзмененииВидаНаФормеДокумента(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьДоступностьПоСостоянию(ОбъектXDTO) + + ДосупныеПоля = Новый Массив; + Для Каждого ИмяПоля Из ОбъектXDTO.EnabledProperties Цикл + ДосупныеПоля.Добавить(НРег(ИмяПоля)); + КонецЦикла; + + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти(НРег(СтрокаСоответсвия.Ключ)) <> Неопределено Тогда + Элементы[СтрокаСоответсвия.Значение].ТолькоПросмотр = Ложь; + Иначе + Элементы[СтрокаСоответсвия.Значение].ТолькоПросмотр = Истина; + КонецЕсли; + КонецЦикла; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("addFile") <> Неопределено Тогда + Элементы.ФайлыСоздатьФайл.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюСоздатьФайл.Доступность = Истина; + Элементы.Файлы.ИзменятьСоставСтрок = Истина; + Иначе + Элементы.ФайлыСоздатьФайл.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюСоздатьФайл.Доступность = Ложь; + Элементы.Файлы.ИзменятьСоставСтрок = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("openFile") <> Неопределено Тогда + Элементы.ФайлыОткрытьФайл.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюОткрытьФайл.Доступность = Истина; + Иначе + Элементы.ФайлыОткрытьФайл.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюОткрытьФайл.Доступность = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("saveFile") <> Неопределено Тогда + Элементы.ФайлыСохранитьКак.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюСохранитьКак.Доступность = Истина; + Иначе + Элементы.ФайлыСохранитьКак.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюСохранитьКак.Доступность = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("editFile") <> Неопределено Тогда + Элементы.ФайлыОбновитьИзФайлаНаДиске.Доступность = Истина; + Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске.Доступность = Истина; + Иначе + Элементы.ФайлыОбновитьИзФайлаНаДиске.Доступность = Ложь; + Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске.Доступность = Ложь; + КонецЕсли; + + Если ДосупныеПоля.Количество() = 0 Или ДосупныеПоля.Найти("register") <> Неопределено Тогда + Элементы.Зарегистрировать.Доступность = Истина; + Иначе + Элементы.Зарегистрировать.Доступность = Ложь; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьДоступностьПоЭЦП(ОбъектXDTO) + + Если ОбъектXDTO.signatures.Количество() <> 0 Тогда + МассивИменПолей = ПолучитьИменаКлючевыхПолей(); + + Для Каждого ИмяПоля Из МассивИменПолей Цикл + Элементы[ИмяПоля].ТолькоПросмотр = Истина; + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +// Возвращает массив имен ключевых полей формы +Функция ПолучитьИменаКлючевыхПолей() + + МассивИмен = Новый Массив; + + МассивИмен.Добавить("ЗаголовокДокумента"); + МассивИмен.Добавить("Описание"); + + Возврат МассивИмен; + +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// События формы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ID = Параметры.ID; + Тип = Параметры.Тип; + Если НЕ ЗначениеЗаполнено(Тип) Тогда + Тип = "DMOutgoingDocument"; + КонецЕсли; + ВнешнийОбъект = Параметры.ВнешнийОбъект; + КаталогДляСохраненияДанных = РаботаС1СДокументооборотВызовСервера.ПолучитьЛокальныйКаталогФайлов(); + + // считать данные объекта + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Если ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(Тип) Тогда + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRetrieveRequest"); + + ОбъектИд = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Запрос.objectIds.Добавить(ОбъектИд); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + Заголовок = Объект.name + НСтр("ru = ' (Исходящий документ)'"); + Иначе + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetNewObjectRequest"); + Запрос.type = Тип; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат; + Заголовок = НСтр("ru = 'Исходящий документ (создание)'"); + КонецЕсли; + + // перенести данные в форму + ПрочитатьОбъектВФорму(Объект); + + // файлы + РаботаС1СДокументооборотВызовСервера.ОбновитьСписокФайлов(Объект.files, Файлы, Элементы.ГруппаФайлы); + + // ЭЦП + ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот + = РаботаС1СДокументооборотПовтИсп.ПолучитьНастройки().ИспользоватьЭлектронныеЦифровыеПодписи; + + ИспользоватьЭлектронныеЦифровыеПодписиВБСП = РаботаС1СДокументооборотВызовСервера.ПолучитьИспользоватьЭлектронныеЦифровыеПодписи(); + + Если ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот = Ложь Тогда + Элементы.ФайлыПодписанЭЦП.Видимость = Ложь; + Элементы.ГруппаЭЦП.Видимость = Ложь; + + Элементы.ФайлыСохранитьВместеСЭЦП.Видимость = Ложь; + Элементы.ФайлыКонтекстноеМенюСохранитьВместеСЭЦП.Видимость = Ложь; + + Иначе + ЗаполнитьСписокПодписей(Объект.signatures, Объект.files); + + Если Объект.Установлено("keyPropertiesValue") Тогда + АдресСлепкаДокумента = ПоместитьВоВременноеХранилище(Объект.keyPropertiesValue, УникальныйИдентификатор); + КонецЕсли; + КонецЕсли; + + Если ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот = Ложь ИЛИ ИспользоватьЭлектронныеЦифровыеПодписиВБСП = Ложь Тогда + Элементы.ФайлыПодписать.Видимость = Ложь; + Элементы.ФайлыКонтекстноеМенюПодписать.Видимость = Ложь; + Элементы.ФайлыДобавитьЭЦПИзФайла.Видимость = Ложь; + Элементы.ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла.Видимость = Ложь; + Элементы.ФормаПодписатьДокумент.Видимость = Ложь; + КонецЕсли; + + // реквизиты из потребителя + Если Не ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(ВнешнийОбъект) Тогда + РаботаС1СДокументооборот.ЗаполнитьФормуИзПотребителя(Параметры.ВнешнийОбъект, ЭтаФорма); + КонецЕсли; + + Элементы.ФайлыЗаполнитьКопированием.Видимость = Ложь; + Если ЗначениеЗаполнено(ВнешнийОбъект) Тогда + Если ФайловыеФункцииПереопределяемый.ЕстьХранимыеФайлы(ВнешнийОбъект) Тогда + Элементы.ФайлыЗаполнитьКопированием.Видимость = Истина; + Элементы.ФайлыЗаполнитьКопированием.Доступность = (Файлы.Количество() = 0); + КонецЕсли; + КонецЕсли; + + Если Параметры.ТолькоПросмотр Тогда + ЭтаФорма.ТолькоПросмотр = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьОбъектВФорму(Объект) + + // заполнение реквизитов + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + ЗаполнитьРеквизитыФормыИзXDTO(СтрокаСоответсвия.Значение, Объект, СтрокаСоответсвия.Ключ); + КонецЦикла; + Представление = Объект.Name; + + НачальныйРегистрационныйНомер = РегистрационныйНомер; + НачальнаяДатаРегистрации = ДатаРегистрации; + + // доступность по состоянию + УстановитьДоступностьПоСостоянию(Объект); + УстановитьДоступностьПоЭЦП(Объект); + + Элементы.Организация.Видимость = (Объект.organizationEnabled = Истина); + Элементы.ВопросДеятельности.Видимость = (Объект.activityMatterEnabled = Истина); + Элементы.ГрифДоступа.Видимость = (Объект.accessLevelEnabled = Истина); + Элементы.Файлы.Видимость = (Объект.filesEnabled = Истина); + Элементы.ВидДокумента.Видимость = (Объект.documentTypeEnabled = Истина); + Элементы.Состояние.Видимость = (Объект.statusEnabled = Истина); + Элементы.Состояние.Доступность = (Объект.statusChangeEnabled = Истина); + ОграничиватьДоступностьПолей = (Объект.limitPropertiesAvailability = Истина); + + // по виду + Элементы.СрокИсполнения.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.performanceDateEnabled = Истина); + Элементы.НомерПолучателя.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.externalNumberEnabled = Истина); + Элементы.ДатаПолучателя.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.externalNumberEnabled = Истина); + Элементы.Сумма.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.sumEnabled = Истина); + Элементы.Валюта.Видимость = (Объект.documentType <> Неопределено И Объект.documentType.sumEnabled = Истина); + + АвтоматическаяНумерация = (Объект.documentType <> Неопределено И Объект.documentType.automaticNumeration = Истина); + Если АвтоматическаяНумерация Тогда + Элементы.РегистрационныйНомер.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.Отображать; + Элементы.ДатаРегистрации.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.Отображать; + Элементы.Зарегистрировать.Доступность = Истина; + Иначе + Элементы.РегистрационныйНомер.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.НеОтображать; + Элементы.ДатаРегистрации.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.НеОтображать; + Элементы.Зарегистрировать.Доступность = Ложь; + КонецЕсли; + + // дополнительные реквизиты + РаботаС1СДокументооборот.ПоместитьДополнительныеРеквизитыНаФорму(ЭтаФорма, Объект); + +КонецПроцедуры + +&НаСервере +Процедура ДобавитьПодписиКОбъекту(Прокси, Объект) + + // тут ЭЦП добавить + МассивПодписей = ПолучитьМассивСуществующихПодписейФайла(ID); + ПодписьТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMSignature"); + Для Каждого ДанныеПодписи Из МассивПодписей Цикл + ПодписьXDTO = Прокси.ФабрикаXDTO.Создать(ПодписьТип); + РаботаС1СДокументооборотВызовСервера.ЗаполнитьXDTOПодпись(Прокси, ПодписьXDTO, ДанныеПодписи); + Объект.Signatures.Добавить(ПодписьXDTO); + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьОбъект() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Объект = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMOutgoingDocument"); + + РаботаС1СДокументооборот.СформироватьДополнительныеСвойства(Прокси, ЭтаФорма, Объект); + + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + ЗаполнитьXDTOизРеквизитовФормы(Прокси, Объект, СтрокаСоответсвия.Ключ, СтрокаСоответсвия.Значение); + КонецЦикла; + + Если ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(Тип) Тогда // обновление + + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Объект.name = Представление; + + ДобавитьПодписиКОбъекту(Прокси, Объект); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMUpdateRequest"); + Запрос.objects.Добавить(Объект); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + + Иначе // создание + + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, "", ""); + Объект.name = Представление; + + Если ЗначениеЗаполнено(ВнешнийОбъект) Тогда + ExternalObject = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "ExternalObject"); + ExternalObject.id = Строка(ВнешнийОбъект.УникальныйИдентификатор()); + ExternalObject.type = Строка(ТипЗнч(ВнешнийОбъект)); + ExternalObject.name = Строка(ВнешнийОбъект); + + Объект.externalObject = ExternalObject; + КонецЕсли; + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMCreateRequest"); + Запрос.object = Объект; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.object; + ID = Объект.objectId.id; + Тип = Объект.objectId.type; + + КонецЕсли; + + // перечитать объект в форму + ПрочитатьОбъектВФорму(Объект); + + Если Объект.Установлено("keyPropertiesValue") Тогда + АдресСлепкаДокумента = ПоместитьВоВременноеХранилище(Объект.keyPropertiesValue, УникальныйИдентификатор); + КонецЕсли; + + Модифицированность = Ложь; + Заголовок = Представление + НСтр("ru = ' (Исходящий документ)'"); + +КонецПроцедуры + +&НаКлиенте +Процедура Записать(Команда) + + Если ОграничиватьДоступностьПолей И ЗначениеЗаполнено(РегистрационныйНомер) И Не ЗначениеЗаполнено(НачальныйРегистрационныйНомер) Тогда + ТекстСообщения = НСтр("ru = 'При записи документ будет зарегистрирован и станет недоступным для изменения. + |Продолжить?'"); + + Ответ = Вопрос(ТекстСообщения, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьИЗакрыть(Команда) + + Если ОграничиватьДоступностьПолей И ЗначениеЗаполнено(РегистрационныйНомер) И Не ЗначениеЗаполнено(НачальныйРегистрационныйНомер) Тогда + ТекстСообщения = НСтр("ru = 'При записи документ будет зарегистрирован и станет недоступным для изменения. + |Продолжить?'"); + + Ответ = Вопрос(ТекстСообщения, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если ЗакрытиеСПараметром Тогда + Возврат; + КонецЕсли; + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена,,КодВозвратаДиалога.Да); + Если Ответ = КодВозвратаДиалога.Да Тогда + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + ИначеЕсли Ответ <> КодВозвратаДиалога.Нет Тогда + Отказ = Истина; + Возврат; + КонецЕсли; + КонецЕсли; + + Отказ = Истина; + Результат = Новый Структура; + Результат.Вставить("id", ID); + Результат.Вставить("type", Тип); + Результат.Вставить("name", Представление); + + ЗакрытиеСПараметром = Истина; + Закрыть(Результат); + +КонецПроцедуры + +&НаСервере +Процедура ЗарегистрироватьНаСервере() + + ЗаписатьОбъект(); + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Объект = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMOutgoingDocument"); + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Объект.name = Представление; + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDocumentRegistrationRequest"); + Запрос.document = Объект; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + ЗаполнитьРеквизитыФормыИзXDTO("ДатаРегистрации", Результат.document, "regDate"); + ЗаполнитьРеквизитыФормыИзXDTO("РегистрационныйНомер", Результат.document, "regNumber"); + ЗаполнитьРеквизитыФормыИзXDTO("Состояние", Результат.document, "status"); + Представление = Результат.document.name; + + // доступность по состоянию + УстановитьДоступностьПоСостоянию(Результат.document); + УстановитьДоступностьПоЭЦП(Результат.document); + + НачальныйРегистрационныйНомер = РегистрационныйНомер; + НачальнаяДатаРегистрации = ДатаРегистрации; + +КонецПроцедуры + +&НаКлиенте +Процедура Зарегистрировать(Команда) + + Если ОграничиватьДоступностьПолей Тогда + ТекстСообщения = НСтр("ru = 'После регистрации документ станет недоступным для изменения. + |Продолжить?'"); + + Ответ = Вопрос(ТекстСообщения, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + ЗарегистрироватьНаСервере(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + +КонецПроцедуры + + +//////////////////////////////////////////////////////////////////////////////// +// Выбор ссылочных реквизитов + +&НаКлиенте +Процедура ПолучательНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMCorrespondent", "Получатель", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПолучательОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCorrespondent", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Получатель", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПолучательАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCorrespondent", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПолучательОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Получатель", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура АдресатНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(ПолучательID) И ЗначениеЗаполнено(ПолучательТип) Тогда + + Correspondent = Новый Структура; + Correspondent.Вставить("ID", ПолучательID); + Correspondent.Вставить("Type", ПолучательТип); + + Отбор = Новый Структура; + Отбор.Вставить("сorrespondent", Correspondent); + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMContactPerson", "Адресат", ЭтаФорма, Отбор); + + Иначе + ТекстСообщения = НСтр("ru = 'Не указано поле ""Получатель""'"); + Предупреждение(ТекстСообщения); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АдресатОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMContactPerson", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Адресат", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АдресатАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMContactPerson", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура АдресатОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Адресат", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + + +&НаКлиенте +Процедура ПодписалНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Подписал", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписалОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подписал", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписалАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписалОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подписал", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + + +&НаКлиенте +Процедура ПодготовилНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Подготовил", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодготовилОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подготовил", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодготовилАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодготовилОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подготовил", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодразделениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMSubdivision", "Подразделение", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодразделениеОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMSubdivision", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подразделение", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодразделениеАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMSubdivision", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПодразделениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Подразделение", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ГрифДоступаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMAccessLevel", "ГрифДоступа", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ГрифДоступаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMAccessLevel", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ГрифДоступа", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГрифДоступаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMAccessLevel", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГрифДоступаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ГрифДоступа", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + + +&НаКлиенте +Процедура ВидДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + Если РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMOutgoingDocumentType", "ВидДокумента", ЭтаФорма) Тогда + ПриИзмененииВидаДокумента(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидДокументаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMOutgoingDocumentType", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВидДокумента", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + + ПриИзмененииВидаДокумента(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидДокументаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMOutgoingDocumentType", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидДокументаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВидДокумента", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + + ПриИзмененииВидаДокумента(); + +КонецПроцедуры + +&НаКлиенте +Процедура СпособОтправкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMDeliveryMethod", "СпособОтправки", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СпособОтправкиОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMDeliveryMethod", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("СпособОтправки", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СпособОтправкиАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMDeliveryMethod", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СпособОтправкиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("СпособОтправки", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СостояниеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMDocumentStatus", "Состояние", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СостояниеОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMDocumentStatus", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Состояние", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СостояниеАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMDocumentStatus", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СостояниеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Состояние", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ОрганизацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMOrganization", "Организация", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ОрганизацияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMOrganization", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Организация", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОрганизацияАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMOrganization", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОрганизацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Организация", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ВопросДеятельностиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMActivityMatter", "ВопросДеятельности", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ВопросДеятельностиОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMActivityMatter", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВопросДеятельности", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВопросДеятельностиАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMActivityMatter", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВопросДеятельностиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("ВопросДеятельности", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ВалютаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеИзСписка("DMCurrency", "Валюта", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ВалютаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCurrency", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Валюта", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВалютаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMCurrency", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВалютаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Валюта", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьПользователяИзДереваПодразделений("Ответственный", ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + + Если ДанныеВыбора.Количество() = 1 Тогда + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Ответственный", ДанныеВыбора[0].Значение, СтандартнаяОбработка, ЭтаФорма); + СтандартнаяОбработка = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Текст) Тогда + РаботаС1СДокументооборотВызовСервера.ПолучитьДанныеДляАвтоПодбора("DMUser", ДанныеВыбора, Текст, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтветственныйОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ОбработкаВыбораДанныхДляАвтоПодбора("Ответственный", ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма); + +КонецПроцедуры + + + +&НаКлиенте +Процедура ОтправленПриИзменении(Элемент) + + Если Отправлен Тогда + ДатаОтправки = ТекущаяДата(); + Иначе + ДатаОтправки = '00010101'; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СвойстваЗначениеПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеДополнительногоРеквизита(ЭтаФорма, Элемент, СтандартнаяОбработка); + +КонецПроцедуры + + +//////////////////////////////////////////////////////////////////////////////// +// Команды работы с файлами + +&НаКлиенте +Процедура ОткрытьФайл(Команда) + ОткрытьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + ОткрытьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьФайлВыполнить() + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Расширение = ТекущиеДанные.Расширение; + Имя = ТекущиеДанные.Наименование; + Размер = ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.ОткрытьФайл(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, + КаталогДляСохраненияДанных, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПередНачаломИзменения(Элемент, Отказ) + Отказ = Истина; + ОткрытьКарточкуВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьКарточкуВыполнить() + + Если Элементы.Файлы.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура("УникальныйИдентификатор", Элементы.Файлы.ТекущиеДанные.УникальныйИдентификатор); + ОткрытьФорму("ОбщаяФорма.ДокументооборотКарточкаФайла", ПараметрыФормы); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьФайл(Команда) + СоздатьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + Отказ = Истина; + СоздатьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьФайлВыполнить() + + Если ПустаяСтрока(ID) Тогда + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + КонецЕсли; + + СоздатьИзФайлаНаДиске(); +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьИзФайлаНаДиске() + + РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); + ИдентификаторСозданногоФайла = Неопределено; + + Если РасширениеПодключено Тогда + + ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); + ВыборФайла.МножественныйВыбор = Ложь; + ВыборФайла.Заголовок = НСтр("ru = 'Выбор файла'"); + ВыборФайла.Фильтр = НСтр("ru = 'Все файлы (*.*)|*.*'"); + + Результат = ВыборФайла.Выбрать(); + ПолноеИмяФайла = ВыборФайла.ПолноеИмяФайла; + + Если НЕ Результат Тогда + Возврат; + КонецЕсли; + + ИдентификаторСозданногоФайла = РаботаС1СДокументооборотКлиент.СоздатьИзФайлаНаДискеКлиент(ПолноеИмяФайла, УникальныйИдентификатор, ID, Тип, Представление); + + Иначе + // Если веб-клиент без расширения + + ПараметрыСоздания = Новый Структура("Имя, Расширение, Размер, ВремяИзменения, ВремяИзмененияУниверсальное, АдресВременногоХранилищаФайла, Текст, ВебКлиент"); + + ВремяИзменения = ТекущаяДата(); // Т.к. не можем получить дату модификации файла на диске + ВремяИзмененияУниверсальное = УниверсальноеВремя(ТекущаяДата()); + Размер = 0; // Т.к. не можем получить размер файла на диске + ИмяБезРасширения = ""; + Расширение = ""; + АдресВременногоХранилищаТекста = ""; + + // Поместим Файл в ВременноеХранилище + АдресВременногоХранилищаФайла = ""; + ИмяФайла = ""; + Если НЕ ПоместитьФайл(АдресВременногоХранилищаФайла, ИмяФайла, ИмяФайла, Истина, УникальныйИдентификатор) Тогда + Возврат; + КонецЕсли; + + СтрокиПути = ФайловыеФункцииКлиентСервер.РазложитьСтрокуПоТочкамИСлэшам(ИмяФайла); + Если СтрокиПути.Количество() >= 2 Тогда + Расширение = СтрокиПути[СтрокиПути.Количество()-1]; + ИмяБезРасширения = СтрокиПути[СтрокиПути.Количество()-2]; + Иначе + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка при помещении файла в хранилище: %1'"),ИмяФайла); + КонецЕсли; + + ПараметрыСоздания.АдресВременногоХранилищаФайла = АдресВременногоХранилищаФайла; + ПараметрыСоздания.Расширение = Расширение; + ПараметрыСоздания.ВремяИзменения = ВремяИзменения; + ПараметрыСоздания.ВремяИзмененияУниверсальное = ВремяИзмененияУниверсальное; + ПараметрыСоздания.Имя = ИмяБезРасширения; + ПараметрыСоздания.Размер = Размер; + ПараметрыСоздания.Текст = ""; + ПараметрыСоздания.ВебКлиент = Истина; + + ТекстПояснения = + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Идет сохранение файла ""%1"". + |Пожалуйста, подождите...'"), + ИмяФайла); + + Состояние(ТекстПояснения); + + ИдентификаторСозданногоФайла = РаботаС1СДокументооборотВызовСервера.СоздатьИзФайлаНаДискеСервер(ПараметрыСоздания, ID, Тип, Представление); + Состояние(); + + КонецЕсли; + + + Если ИдентификаторСозданногоФайла <> Неопределено Тогда + // обновить список + ОбновитьСписокФайловКлиент(ИдентификаторСозданногоФайла); + КонецЕсли; + + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьСписокПодписей(Подписи, ФайлыXDTO) + + РаботаС1СДокументооборотВызовСервера.ЗаполнитьСписокПодписейСервер(Подписи, ФайлыXDTO, Представление, ID, Тип, ТаблицаПодписей, + УникальныйИдентификатор, Элементы.ГруппаЭЦП, Файлы); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСписокФайловКлиент(ИдентификаторФайла = Неопределено) + + Если ИдентификаторФайла <> Неопределено Тогда + ТекущийИдентификаторФайла = ИдентификаторФайла; + ИначеЕсли Элементы.Файлы.ТекущиеДанные <> Неопределено Тогда + ТекущийИдентификаторФайла = Элементы.Файлы.ТекущиеДанные.УникальныйИдентификатор; + КонецЕсли; + + ПрочитатьИОбновитьСписокФайлов(); + Элементы.Файлы.Обновить(); + + // восстановим положение в списке + Для Каждого Строка Из Файлы Цикл + Если Строка.УникальныйИдентификатор = ТекущийИдентификаторФайла Тогда + Элементы.Файлы.ТекущаяСтрока = Строка.ПолучитьИдентификатор(); + Прервать; + КонецЕсли; + КонецЦикла; + + Элементы.ФайлыЗаполнитьКопированием.Доступность = (Файлы.Количество() = 0); + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьИОбновитьСписокФайлов() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + ОбъектИд = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRetrieveRequest"); + Запрос.objectIds.Добавить(ОбъектИд); + Запрос.columnSet.Добавить("files"); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + РаботаС1СДокументооборотВызовСервера.ОбновитьСписокФайлов(Объект.Files, Файлы, Элементы.ГруппаФайлы); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "ФайлДокументооборотИзменен" Тогда + ОбновитьСписокФайловКлиент(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПередУдалением(Элемент, Отказ) + + Отказ = Истина; + + Если Элементы.Файлы.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + СтрокаВопроса = ""; + + Если Элементы.Файлы.ВыделенныеСтроки.Количество() = 1 Тогда + СтрокаВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Пометить ""%1"" на удаление?'"), Элементы.Файлы.ТекущиеДанные.Наименование); + Иначе + СтрокаВопроса = НСтр("ru='Пометить выделенные элементы на удаление?'"); + КонецЕсли; + + Если Вопрос(СтрокаВопроса, РежимДиалогаВопрос.ДаНет) <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + ПометитьНаУдаление(Элементы.Файлы.ВыделенныеСтроки); + // обновить список + ОбновитьСписокФайловКлиент(); + +КонецПроцедуры + +&НаСервере +Процедура ПометитьНаУдаление(Знач ВыделенныеСтроки) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMDeleteRequest"); + + Для Каждого НомерСтроки Из ВыделенныеСтроки Цикл + + Данные = Файлы.НайтиПоИдентификатору(НомерСтроки); + + Объект = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, Данные.УникальныйИдентификатор, "DMFile"); + + Запрос.objectIds.Добавить(Объект); + + КонецЦикла; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьКак(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Расширение = ТекущиеДанные.Расширение; + Имя = ТекущиеДанные.Наименование; + Размер = ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.СохранитьКак(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьИзФайлаНаДиске(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Если РаботаС1СДокументооборотКлиент.ОбновитьИзФайлаНаДиске(ИдентификаторФайла, УникальныйИдентификатор) Тогда + ОбновитьСписокФайловКлиент(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + СтандартнаяОбработка = Ложь; +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + СтандартнаяОбработка = Ложь; + + МассивИменФайлов = Новый Массив; + + Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Файл") И ПараметрыПеретаскивания.Значение.ЭтоФайл() = Истина Тогда + МассивИменФайлов.Добавить(ПараметрыПеретаскивания.Значение.ПолноеИмя); + ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Массив") Тогда + + Если ПараметрыПеретаскивания.Значение.Количество() >= 1 И ТипЗнч(ПараметрыПеретаскивания.Значение[0]) = Тип("Файл") Тогда + Для Каждого ФайлПринятый Из ПараметрыПеретаскивания.Значение Цикл + Если ФайлПринятый.ЭтоФайл() Тогда + МассивИменФайлов.Добавить(ФайлПринятый.ПолноеИмя); + КонецЕсли; + КонецЦикла; + КонецЕсли; + + КонецЕсли; + + ИдентификаторСозданногоФайла = Неопределено; + Для Каждого ИмяФайла Из МассивИменФайлов Цикл + ИдентификаторСозданногоФайла = РаботаС1СДокументооборотКлиент.СоздатьИзФайлаНаДискеКлиент(ИмяФайла, УникальныйИдентификатор, ID, Тип, Представление); + КонецЦикла; + + // обновить список + ОбновитьСписокФайловКлиент(ИдентификаторСозданногоФайла); + +КонецПроцедуры + +// ЭЦП + +&НаКлиенте +Процедура УстановитьДоступностьКомандСпискаЭЦП() + + ЭтоПодпись = Истина; + ЕстьПодписи = (ТаблицаПодписей.ПолучитьЭлементы().Количество() <> 0); + + ТекущиеДанные = Элементы.ТаблицаПодписей.ТекущиеДанные; + Если ТекущиеДанные <> Неопределено Тогда + ЭтоПодпись = НЕ ПустаяСтрока(ТекущиеДанные.Объект); + КонецЕсли; + + Элементы.ТаблицаПодписейПроверить.Доступность = ЕстьПодписи И ЭтоПодпись; + Элементы.ТаблицаПодписейПроверитьВсе.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейОткрытьПодпись.Доступность = ЕстьПодписи И ЭтоПодпись; + Элементы.ТаблицаПодписейУдалить.Доступность = ЕстьПодписи И ЭтоПодпись; + Элементы.ТаблицаПодписейСохранить.Доступность = ЕстьПодписи И ЭтоПодпись; + + Элементы.ТаблицаПодписейПроверить.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейПроверитьВсе.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейОткрытьПодпись.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейУдалить.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейСохранить.Доступность = ЕстьПодписи; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + УстановитьДоступностьКомандСпискаЭЦП(); +КонецПроцедуры + +&НаСервере +// вернет массив подписей файла +Функция ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла) + Возврат РаботаС1СДокументооборотВызовСервера.ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла, ТаблицаПодписей); +КонецФункции + +&НаКлиенте +Процедура Подписать(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + ИмяФайла = ТекущиеДанные.Наименование; + Описание = ТекущиеДанные.Описание; + Редактируется = ТекущиеДанные.Редактируется; + Зашифрован = ТекущиеДанные.Зашифрован; + + МассивСуществующихПодписейФайла = ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла); + + РаботаС1СДокументооборотКлиент.ПодписатьФайл(ИдентификаторФайла, ИмяФайла, Редактируется, Зашифрован, Описание, + МассивСуществующихПодписейФайла); + + ПрочитатьИОбновитьСписокПодписей(); + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьЭЦПИзФайла(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + ИмяФайла = ТекущиеДанные.Наименование; + Описание = ТекущиеДанные.Описание; + Редактируется = ТекущиеДанные.Редактируется; + Зашифрован = ТекущиеДанные.Зашифрован; + + МассивСуществующихПодписейФайла = ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла); + + РаботаС1СДокументооборотКлиент.ДобавитьЭЦПИзФайла(ИдентификаторФайла, ИмяФайла, УникальныйИдентификатор, + Описание, МассивСуществующихПодписейФайла); + + ПрочитатьИОбновитьСписокПодписей(); + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьВместеСЭЦП(Команда) + + ТекущиеДанные = Элементы.Файлы.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = ТекущиеДанные.УникальныйИдентификатор; + Расширение = ТекущиеДанные.Расширение; + Имя = ТекущиеДанные.Наименование; + Размер = ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.СохранитьВместеСЭЦП(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьПодпись(Команда) + ЭлектроннаяЦифроваяПодписьКлиент.ОткрытьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные); +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаПодписейВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + ЭлектроннаяЦифроваяПодписьКлиент.ОткрытьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные); +КонецПроцедуры + +&НаКлиенте +Процедура Сохранить(Команда) + + Если Элементы.ТаблицаПодписей.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если НЕ ПустаяСтрока(Элементы.ТаблицаПодписей.ТекущиеДанные.Объект) Тогда + ЭлектроннаяЦифроваяПодписьКлиент.СохранитьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные.АдресПодписи); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Проверить(Команда) + + ВыполнятьПроверкуЭЦПНаСервере = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ВыполнятьПроверкуЭЦПНаСервере; + + Если ВыполнятьПроверкуЭЦПНаСервере Тогда + ПроверитьНаСервере(); + Иначе + МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии(); + РаботаС1СДокументооборотКлиент.ПроверитьПодписи(Элементы.ТаблицаПодписей.ВыделенныеСтроки, ТаблицаПодписей, + УникальныйИдентификатор, АдресСлепкаДокумента); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПроверитьНаСервере() + РаботаС1СДокументооборотВызовСервера.ПроверитьПодписиНаСервере(Элементы.ТаблицаПодписей.ВыделенныеСтроки, + ТаблицаПодписей, УникальныйИдентификатор, АдресСлепкаДокумента); +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьВсе(Команда) + + ВыполнятьПроверкуЭЦПНаСервере = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ВыполнятьПроверкуЭЦПНаСервере; + + Если ВыполнятьПроверкуЭЦПНаСервере Тогда + + ПроверитьВсеНаСервере(); + + Иначе + + МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии(); + Подписи = РаботаС1СДокументооборотКлиент.ПолучитьМассивДанныхПодписей(ТаблицаПодписей); + РаботаС1СДокументооборотКлиент.ПроверитьПодписи(Подписи, ТаблицаПодписей, УникальныйИдентификатор, + АдресСлепкаДокумента); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПроверитьВсеНаСервере() + РаботаС1СДокументооборотВызовСервера.ПроверитьВсеПодписиНаСервере(ТаблицаПодписей, УникальныйИдентификатор, + АдресСлепкаДокумента); +КонецПроцедуры + +&НаКлиенте +Процедура Удалить(Команда) + + Если Вопрос(НСтр("ru = 'Удалить выделенные подписи?'"), РежимДиалогаВопрос.ДаНет) <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + УдалитьПодписиИОбновитьСписок(); + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + +&НаСервере +Процедура УдалитьПодписиИОбновитьСписок() + + //получаем массив для удаления + ТаблицаУдаленныеСтроки = РаботаС1СДокументооборотВызовСервера.ПолучитьВыделенныеПодписи( + Элементы.ТаблицаПодписей.ВыделенныеСтроки, ТаблицаПодписей); + + Если ТаблицаУдаленныеСтроки.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Соответствие = РаботаС1СДокументооборотВызовСервера.УдалитьПодписиДокумента(ТаблицаУдаленныеСтроки, ТаблицаПодписей, ЭтаФорма, + ID, Тип, Файлы, Представление); + + МассивXDTOОбъектов = Новый Массив; + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Для Каждого ПараКлючЗначение Из Соответствие Цикл + + ИдОбъекта = ПараКлючЗначение.Ключ; + ДанныеВладельца = ПараКлючЗначение.Значение; + ТипОбъекта = ДанныеВладельца.Тип; + + Если ТипОбъекта <> "DMFile" Тогда // документ + + Объект = СоздатьXDTOДокумент(Прокси, ДанныеВладельца.МассивПодписей); + МассивXDTOОбъектов.Добавить(Объект); + + Иначе // файл + + Для Каждого Файл Из Файлы Цикл + + Если Файл.УникальныйИдентификатор = ИдОбъекта Тогда + Объект = РаботаС1СДокументооборотВызовСервера.СоздатьXDTOФайл(Прокси, ДанныеВладельца.МассивПодписей, Файл); + МассивXDTOОбъектов.Добавить(Объект); + Прервать; + КонецЕсли; + + КонецЦикла; + + + КонецЕсли; + + КонецЦикла; + + РаботаС1СДокументооборот.ЗаписатьОбъекты(Прокси, МассивXDTOОбъектов); + + ПрочитатьИОбновитьСписокПодписей(); + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьИОбновитьСписокПодписей() + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + ОбъектИд = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMRetrieveRequest"); + Запрос.objectIds.Добавить(ОбъектИд); + Запрос.columnSet.Добавить("signatures"); + Запрос.columnSet.Добавить("files"); // также и файлы обновляем - чтобы иконку Подписан расставить + Запрос.columnSet.Добавить("enabledProperties"); + Запрос.columnSet.Добавить("keyPropertiesValue"); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Объект = Результат.objects[0]; + + ЗаполнитьСписокПодписей(Объект.signatures, Объект.files); + РаботаС1СДокументооборотВызовСервера.ОбновитьСписокФайлов(Объект.files, Файлы, Элементы.ГруппаФайлы); + + УстановитьДоступностьПоСостоянию(Объект);// доступность по состоянию + УстановитьДоступностьПоЭЦП(Объект); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодписатьДокумент(Команда) + + Если ПустаяСтрока(ID) Тогда + + ТекстВопроса = НСтр("ru = 'Данные еще не записаны. + |Выполнение действия ""Подписать"" возможно только после записи данных. + |Данные будут записаны.'"); + Результат = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ОКОтмена); + + Если Результат <> КодВозвратаДиалога.ОК Тогда + Возврат; + КонецЕсли; + + ЗаписатьОбъект(); + + КонецЕсли; + + МассивДанныхДляЗанесенияВРегистр = Новый Массив; + МассивАдресов = Новый Массив; + + // УстановкаПодписиЭЦП + + Если РаботаС1СДокументооборотКлиент.СформироватьПодписьОбъекта(ID, Представление, Тип, УникальныйИдентификатор, + МассивДанныхДляЗанесенияВРегистр, МассивАдресов, Файлы, АдресСлепкаДокумента) Тогда + + ПодписатьЭЦПСервер(МассивДанныхДляЗанесенияВРегистр, МассивАдресов); + + РаботаС1СДокументооборотКлиент.ИнформироватьОПодписании(Представление); + УстановитьДоступностьКомандСпискаЭЦП(); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция СоздатьXDTOДокумент(Прокси, МассивПодписей) + + Объект = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMOutgoingDocument"); + + РаботаС1СДокументооборот.СформироватьДополнительныеСвойства(Прокси, ЭтаФорма, Объект); + + СоответсвиеРеквизитов = РаботаС1СДокументооборот.СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ЭтаФорма.ИмяФормы); + Для Каждого СтрокаСоответсвия Из СоответсвиеРеквизитов Цикл + ЗаполнитьXDTOизРеквизитовФормы(Прокси, Объект, СтрокаСоответсвия.Ключ, СтрокаСоответсвия.Значение); + КонецЦикла; + + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, ID, Тип); + Объект.name = Представление; + + // тут ЭЦП добавить + ПодписьТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMSignature"); + + Для Каждого ДанныеПодписи Из МассивПодписей Цикл + + ПодписьXDTO = Прокси.ФабрикаXDTO.Создать(ПодписьТип); + РаботаС1СДокументооборотВызовСервера.ЗаполнитьXDTOПодпись(Прокси, ПодписьXDTO, ДанныеПодписи); + Объект.signatures.Добавить(ПодписьXDTO); + + КонецЦикла; + + Возврат Объект; + +КонецФункции + +&НаСервере +Процедура ПодписатьЭЦПСервер(ДобавленныеПодписи, МассивАдресов) + + Соответствие = РаботаС1СДокументооборотВызовСервера.ПодписатьДокумент( + ДобавленныеПодписи, ТаблицаПодписей, ЭтаФорма, + ID, Тип, Файлы, Представление); + + МассивXDTOОбъектов = Новый Массив; + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Для Каждого ПараКлючЗначение Из Соответствие Цикл + + ИдОбъекта = ПараКлючЗначение.Ключ; + ДанныеВладельца = ПараКлючЗначение.Значение; + ТипОбъекта = ДанныеВладельца.Тип; + + Если ТипОбъекта <> "DMFile" Тогда // документ + + Объект = СоздатьXDTOДокумент(Прокси, ДанныеВладельца.МассивПодписей); + МассивXDTOОбъектов.Добавить(Объект); + + Иначе // файл + + Для Каждого Файл Из Файлы Цикл + + Если Файл.УникальныйИдентификатор = ИдОбъекта Тогда + Объект = РаботаС1СДокументооборотВызовСервера.СоздатьXDTOФайл(Прокси, ДанныеВладельца.МассивПодписей, Файл); + МассивXDTOОбъектов.Добавить(Объект); + Прервать; + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + КонецЦикла; + + РаботаС1СДокументооборот.ЗаписатьОбъекты(Прокси, МассивXDTOОбъектов); + + ПрочитатьИОбновитьСписокПодписей(); + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлыПриАктивизацииСтроки(Элемент) + ОбновитьДоступностьКомандСпискаФайлов(); +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьДоступностьКомандСпискаФайлов() + УстановитьДоступностьКомманд(Элементы.Файлы.ТекущиеДанные); +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомманды(Команда, Доступность) + Команда.Доступность = Доступность; +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомманд(ТекущиеДанные) + + Если ТекущиеДанные = Неопределено Тогда + + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОткрытьФайл, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьКак, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюПодписать, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьВместеСЭЦП, Ложь); + + УстановитьДоступностьКомманды(Элементы.ФайлыОткрытьФайл, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьКак, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыОбновитьИзФайлаНаДиске, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыПодписать, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыДобавитьЭЦПИзФайла, Ложь); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьВместеСЭЦП, Ложь); + + Иначе + + Редактируется = ТекущиеДанные.Редактируется; + ПодписанЭЦП = ТекущиеДанные.ПодписанЭЦП; + Зашифрован = ТекущиеДанные.Зашифрован; + + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОткрытьФайл, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьКак, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюОбновитьИзФайлаНаДиске, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюПодписать, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюДобавитьЭЦПИзФайла, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыКонтекстноеМенюСохранитьВместеСЭЦП, ПодписанЭЦП); + + УстановитьДоступностьКомманды(Элементы.ФайлыОткрытьФайл, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьКак, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыОбновитьИзФайлаНаДиске, Истина); + УстановитьДоступностьКомманды(Элементы.ФайлыПодписать, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыДобавитьЭЦПИзФайла, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.ФайлыСохранитьВместеСЭЦП, ПодписанЭЦП); + + КонецЕсли; + +КонецПроцедуры + +// Бизнес-процессы + +&НаКлиенте +Процедура СоздатьБизнесПроцесс(Команда) + + Если ЗначениеЗаполнено(ID) Тогда + РаботаС1СДокументооборотКлиент.СоздатьБизнесПроцессПоДокументуИзДО(ID, Тип); + Иначе + ТекстВопроса = НСтр("ru = 'Данные еще не записаны." + Символы.ВК + "Создание бизнес-процесса возможно только после записи данных." + Символы.ВК + "Данные будут записаны.'"); + Режим = РежимДиалогаВопрос.ОКОтмена; + Ответ = Вопрос(ТекстВопроса, Режим, 0); + Если Ответ = КодВозвратаДиалога.ОК Тогда + Записать(Неопределено); + РаботаС1СДокументооборотКлиент.СоздатьБизнесПроцессПоДокументуИзДО(ID, Тип); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьКопированием(Команда) + + Ответ = Вопрос(НСтр("ru = 'Заполнить файлы копированием из присоединенных файлов?'"), РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + Если ПустаяСтрока(ID) Тогда + ЗаписатьОбъект(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + КонецЕсли; + + Состояние(НСтр("ru = 'Идет заполнение файлов копированием из присоединенных файлов ....'")); + + ЗаполнитьКопированиемСервер(); + + Состояние(); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКопированиемСервер() + + РаботаС1СДокументооборотВызовСервера.ЗаполнитьКопированием(ВнешнийОбъект, ID, Тип, Представление, УникальныйИдентификатор); + ПрочитатьИОбновитьСписокФайлов(); + Элементы.ФайлыЗаполнитьКопированием.Доступность = (Файлы.Количество() = 0); + +КонецПроцедуры diff --git a/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/ДокументооборотИсходящийДокумент.mdo b/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/ДокументооборотИсходящийДокумент.mdo new file mode 100644 index 000000000..dff66fa3d --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотИсходящийДокумент/ДокументооборотИсходящийДокумент.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотИсходящийДокумент + + ru + Исходящий документ + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/Form.form b/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/Form.form new file mode 100644 index 000000000..1112c8e69 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/Form.form @@ -0,0 +1,269 @@ + + + + <key>ru</key> + <value>Задача</value> + + + HTMLпредставление + 1 + true + true + + true + + + HTMLпредставление + + None + + HTMLпредставлениеРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + HTMLпредставлениеКонтекстноеМеню + 2 + true + + HTMLDocumentField + Enter + true + Left + true + + + OnClick + HTMLпредставлениеПриНажатии + + 50 + true + 10 + true + true + true + + + Top + true + + ФормаКоманднаяПанель + -1 + + Отмена + 3 + + <key>ru</key> + <value>Закрыть</value> + + true + true + + true + + + ОтменаРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + Form.Command.Отмена + Auto + true + true + true + UserCmds + Auto + + + ФормаСправка + 4 + true + true + + true + + + ФормаСправкаРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + + ФормаОткрытьБизнесПроцесс + 5 + true + true + + true + + + ФормаОткрытьБизнесПроцессРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + Form.Command.ОткрытьБизнесПроцесс + Normal + Auto + true + true + UserCmds + Auto + + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + 98 + 14 + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + HTMLпредставление + + <key>ru</key> + <value>HTMLпредставление</value> + + 1 + + String + + + + true + + + true + + + + ЗадачаID + + <key>ru</key> + <value>Задача ID</value> + + 2 + + String + + + + true + + + true + + + + ЗадачаТип + + <key>ru</key> + <value>Задача тип</value> + + 3 + + String + + + + true + + + true + + + + Отмена + + <key>ru</key> + <value>Закрыть</value> + + 1 + + ru + Закрыть + + + true + + + + Отмена + + + Auto + Auto + + + ОткрытьБизнесПроцесс + + <key>ru</key> + <value>Открыть бизнес процесс</value> + + 2 + + ru + Открыть бизнес процесс + + + true + + + StdPicture.BusinessProcess + + + + ОткрытьБизнесПроцесс + + + Auto + Auto + + + HTMLView + + String + + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/Help/ru.html b/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/Help/ru.html new file mode 100644 index 000000000..ec54368c1 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/Help/ru.html @@ -0,0 +1,5 @@ + +

Форма "Задача" предназначена для отображения информации о задаче в режиме "только чтение".

+

Для открытия карточки предмета бизнес-процесса, в рамках которого была создана данная задача, необходимо нажать на ссылку, расположенную в поле "Предмет".

+

Для открытия карточки бизнес-процесса необходимо выполнить команду "Открыть бизнес-процесс", расположенную в панели инструментов формы.

+

Исполнение задач осуществляется в 1С:Документооборот.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/Module.bsl b/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/Module.bsl new file mode 100644 index 000000000..7c1740fd0 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/Module.bsl @@ -0,0 +1,67 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + HTMLпредставление = ПолучитьHTMLПредставлениеФормыЗадачи(Параметры.Type, Параметры.ID) +КонецПроцедуры + +&НаСервере +Функция ПолучитьHTMLПредставлениеФормыЗадачи(Тип, Ид) + + Колонки = Новый Массив(); + Колонки.Добавить("HTMLView"); + Ответ = РаботаС1СДокументооборот.ПолучитьОбъект(Тип, Ид, Колонки); + ЗадачаID = Ответ.objects[0].objectId.id; + ЗадачаТип = Ответ.objects[0].objectId.type; + Заголовок = "Задача """ + Ответ.objects[0].name + """"; + Возврат Ответ.objects[0].htmlView; + +КонецФункции + +&НаКлиенте +Процедура HTMLпредставлениеПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Если ДанныеСобытия.Anchor <> Неопределено И ЗначениеЗаполнено(ДанныеСобытия.Anchor.href) Тогда + + МассивПодстрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ДанныеСобытия.Anchor.href, "/"); + + СтрокаСсылка = МассивПодстрок[МассивПодстрок.Количество() - 1]; + + МассивПараметров = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаСсылка, "$"); + + Type = МассивПараметров[0]; + ID = МассивПараметров[1]; + + РаботаС1СДокументооборотКлиент.ОткрытьКарточкуПредметаБизнесПроцесса(Type, ID, ЭтаФорма, Истина); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Отмена(Команда) + Закрыть(); +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьБизнесПроцесс(Команда) + + ПараметрыБизнесПроцесса = Новый Структура; + ТипБизнесПроцесса = ""; + ПолучитьБизнесПроцесс(ТипБизнесПроцесса, ПараметрыБизнесПроцесса); + РаботаС1СДокументооборотКлиент.ПоказатьФормуБизнесПроцесса(ТипБизнесПроцесса, ПараметрыБизнесПроцесса); + +КонецПроцедуры + +&НаСервере +Процедура ПолучитьБизнесПроцесс(ТипБизнесПроцесса, ПараметрыБизнесПроцесса) + + ДанныеЗадачи = РаботаС1СДокументооборот.ПолучитьОбъект(ЗадачаТип, ЗадачаID); + ТипБизнесПроцесса = ДанныеЗадачи.objects[0].parentBusinessProcess.objectId.type; + + ПараметрыБизнесПроцесса.Вставить("id", ДанныеЗадачи.objects[0].parentBusinessProcess.objectId.id); + ПараметрыБизнесПроцесса.Вставить("type", ТипБизнесПроцесса); + +КонецПроцедуры + + diff --git a/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/ДокументооборотКарточкаЗадачи.mdo b/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/ДокументооборотКарточкаЗадачи.mdo new file mode 100644 index 000000000..aae52d576 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотКарточкаЗадачи/ДокументооборотКарточкаЗадачи.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотКарточкаЗадачи + + ru + Карточка задачи + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотКарточкаФайла/ConditionalAppearance.dcssca b/SSL/src/CommonForms/ДокументооборотКарточкаФайла/ConditionalAppearance.dcssca new file mode 100644 index 000000000..4468d6a9f --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотКарточкаФайла/ConditionalAppearance.dcssca @@ -0,0 +1,32 @@ + + + + + + ТаблицаПодписейКомуВыданСертификат + + + ТаблицаПодписейДатаПодписи + + + ТаблицаПодписейКомментарий + + + ТаблицаПодписейСтатус + + + + + ТаблицаПодписей.Неверна + Equal + true + + + + + ЦветТекста + style:SpecialTextColor + + + + diff --git a/SSL/src/CommonForms/ДокументооборотКарточкаФайла/Form.form b/SSL/src/CommonForms/ДокументооборотКарточкаФайла/Form.form new file mode 100644 index 000000000..732d78ec8 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотКарточкаФайла/Form.form @@ -0,0 +1,2446 @@ + + + + <key>ru</key> + <value>Файл</value> + + + ГруппаОсновная + 14 + + ГруппаОсновныеДанные + 15 + + Наименование + 1 + true + true + + true + + + Наименование + + Top + + НаименованиеРасширеннаяПодсказка + 66 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Описание + 7 + true + true + + true + + + Описание + + Top + + ОписаниеРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + + ОписаниеКонтекстноеМеню + 8 + true + + InputField + Enter + true + Left + true + + true + 3 + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа основные данные</value> + + + ru + Группа основные данные + + + ГруппаОсновныеДанныеРасширеннаяПодсказка + 65 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаКоманды + 16 + + Открыть + 35 + true + true + + true + + + ОткрытьРасширеннаяПодсказка + 71 + Label + true + true + + Left + + + UsualButton + Form.Command.Открыть + Normal + Auto + true + true + UserCmds + Auto + + + СохранитьКак + 37 + true + true + + true + + + СохранитьКакРасширеннаяПодсказка + 72 + Label + true + true + + Left + + + UsualButton + Form.Command.СохранитьКак + Normal + Auto + true + true + UserCmds + Auto + + + ОбновитьИзФайлаНаДиске + 36 + true + true + + true + + + ОбновитьИзФайлаНаДискеРасширеннаяПодсказка + 73 + Label + true + true + + Left + + + UsualButton + Form.Command.ОбновитьИзФайлаНаДиске + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Группа команды</value> + + + ru + Группа команды + + + ГруппаКомандыРасширеннаяПодсказка + 70 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа основная</value> + + + ru + Группа основная + + + ГруппаОсновнаяРасширеннаяПодсказка + 64 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ГруппаДополнительныеДанныеСтраницы + 17 + + ГруппаСведенияОФайле + 18 + + ДатаСоздания + 20 + true + true + + true + + + ДатаСоздания + + + ДатаСозданияРасширеннаяПодсказка + 76 + Label + true + true + + Left + + + + ДатаСозданияКонтекстноеМеню + 21 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Автор + 22 + true + true + + true + + + Автор + + + АвторРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + + АвторКонтекстноеМеню + 23 + true + + InputField + true + Enter + true + Left + true + + true + true + false + true + true + true + true + Normal + + + + Расширение + 3 + true + true + + true + + + Расширение + + + РасширениеРасширеннаяПодсказка + 80 + Label + true + true + + Left + + + + РасширениеКонтекстноеМеню + 4 + true + + InputField + true + Enter + true + Left + true + + 4 + true + true + false + true + true + true + true + Normal + + + + Размер + 9 + true + true + + true + + + Размер + + + РазмерРасширеннаяПодсказка + 82 + Label + true + true + + Left + + + + РазмерКонтекстноеМеню + 10 + true + + InputField + true + Enter + true + Left + true + + 12 + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Сведения о файле</value> + + + ru + Группа сведения о файле + + + ГруппаСведенияОФайлеРасширеннаяПодсказка + 75 + Label + true + true + + Left + + + Page + + Vertical + auto + + + + ГруппаЭЦП + 19 + + ТаблицаПодписей + 24 + true + true + + true + + + ТаблицаПодписей + + None + Change + + ТаблицаПодписейКомуВыданСертификат + 27 + true + true + + true + + + ТаблицаПодписей.КомуВыданСертификат + + + ТаблицаПодписейКомуВыданСертификатРасширеннаяПодсказка + 101 + Label + true + true + + Left + + + + ТаблицаПодписейКомуВыданСертификатКонтекстноеМеню + 28 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейДатаПодписи + 29 + true + true + + true + + + ТаблицаПодписей.ДатаПодписи + + + ТаблицаПодписейДатаПодписиРасширеннаяПодсказка + 103 + Label + true + true + + Left + + + + ТаблицаПодписейДатаПодписиКонтекстноеМеню + 30 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейКомментарий + 31 + true + true + + true + + + ТаблицаПодписей.Комментарий + + + ТаблицаПодписейКомментарийРасширеннаяПодсказка + 105 + Label + true + true + + Left + + + + ТаблицаПодписейКомментарийКонтекстноеМеню + 32 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейСтатус + 33 + true + true + + true + + + ТаблицаПодписей.Статус + + + ТаблицаПодписейСтатусРасширеннаяПодсказка + 107 + Label + true + true + + Left + + + + ТаблицаПодписейСтатусКонтекстноеМеню + 34 + true + + InputField + Auto + true + Left + true + + 7 + true + true + true + true + true + true + Normal + + + + ТаблицаПодписейКоманднаяПанель + 26 + + ТаблицаПодписейПодписать + 44 + true + true + + true + + + ТаблицаПодписейПодписатьРасширеннаяПодсказка + 85 + Label + true + true + + Left + + + Form.Command.Подписать + Normal + true + true + UserCmds + Auto + + + ТаблицаПодписейОткрытьПодпись + 45 + true + true + + true + + + ТаблицаПодписейОткрытьПодписьРасширеннаяПодсказка + 86 + Label + true + true + + Left + + + Form.Command.ОткрытьПодпись + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейПроверить + 46 + true + true + + true + + + ТаблицаПодписейПроверитьРасширеннаяПодсказка + 87 + Label + true + true + + Left + + + Form.Command.Проверить + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейПроверитьВсе + 47 + true + true + + true + + + ТаблицаПодписейПроверитьВсеРасширеннаяПодсказка + 88 + Label + true + true + + Left + + + Form.Command.ПроверитьВсе + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейСохранить + 48 + true + true + + true + + + ТаблицаПодписейСохранитьРасширеннаяПодсказка + 89 + Label + true + true + + Left + + + Form.Command.Сохранить + Normal + Auto + true + true + UserCmds + Auto + + + ТаблицаПодписейУдалить + 49 + true + true + + true + + + ТаблицаПодписейУдалитьРасширеннаяПодсказка + 90 + Label + true + true + + Left + + + Form.Command.Удалить + Normal + Auto + true + true + UserCmds + Auto + + Left + + + Selection + ТаблицаПодписейВыбор + + + ТаблицаПодписейСтрокаПоиска + 92 + + ТаблицаПодписейСтрокаПоискаРасширеннаяПодсказка + 94 + Label + true + true + + Left + + + + ТаблицаПодписейСтрокаПоискаКонтекстноеМеню + 93 + true + + ТаблицаПодписей + + true + + + + ТаблицаПодписейСостояниеПросмотра + 95 + + ТаблицаПодписейСостояниеПросмотраРасширеннаяПодсказка + 97 + Label + true + true + + Left + + + + ТаблицаПодписейСостояниеПросмотраКонтекстноеМеню + 96 + true + + ViewStatusAddition + ТаблицаПодписей + + true + + + + ТаблицаПодписейУправлениеПоиском + 98 + + ТаблицаПодписейУправлениеПоискомРасширеннаяПодсказка + 100 + Label + true + true + + Left + + + + ТаблицаПодписейУправлениеПоискомКонтекстноеМеню + 99 + true + + SearchControlAddition + ТаблицаПодписей + + true + + + + ТаблицаПодписейРасширеннаяПодсказка + 91 + Label + true + true + + Left + + + + ТаблицаПодписейКонтекстноеМеню + 25 + true + + true + true + 5 + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ГруппаЭЦПРасширеннаяПодсказка + 84 + Label + true + true + + Left + + + Page + + Vertical + auto + +
+ + ГруппаСвойства + 50 + + Свойства + 51 + true + true + + true + + + Свойства + + None + Add + CancelSearch + Change + Copy + CopyToClipboard + Delete + EndEdit + Find + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + СвойстваСвойствоПредставление + 54 + + <key>ru</key> + <value>Свойство</value> + + true + true + + true + + + Свойства.Свойство + + + СвойстваСвойствоПредставлениеРасширеннаяПодсказка + 128 + Label + true + true + + Left + + + + СвойстваСвойствоПредставлениеКонтекстноеМеню + 55 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + СвойстваЗначениеПредставление + 56 + + <key>ru</key> + <value>Значение</value> + + true + true + + true + + + Свойства.Значение + + + СвойстваЗначениеПредставлениеРасширеннаяПодсказка + 130 + Label + true + true + + Left + + + + СвойстваЗначениеПредставлениеКонтекстноеМеню + 57 + true + + InputField + Auto + true + Left + true + + + StartChoice + СвойстваЗначениеПредставлениеНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + СвойстваКоманднаяПанель + 53 + Left + true + + + СвойстваСтрокаПоиска + 119 + + СвойстваСтрокаПоискаРасширеннаяПодсказка + 121 + Label + true + true + + Left + + + + СвойстваСтрокаПоискаКонтекстноеМеню + 120 + true + + Свойства + + true + + + + СвойстваСостояниеПросмотра + 122 + + СвойстваСостояниеПросмотраРасширеннаяПодсказка + 124 + Label + true + true + + Left + + + + СвойстваСостояниеПросмотраКонтекстноеМеню + 123 + true + + ViewStatusAddition + Свойства + + true + + + + СвойстваУправлениеПоиском + 125 + + СвойстваУправлениеПоискомРасширеннаяПодсказка + 127 + Label + true + true + + Left + + + + СвойстваУправлениеПоискомКонтекстноеМеню + 126 + true + + SearchControlAddition + Свойства + + true + + + + СвойстваРасширеннаяПодсказка + 118 + Label + true + true + + Left + + + + СвойстваКонтекстноеМеню + 52 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ true + true + + true + + + <key>ru</key> + <value>Свойства</value> + + + ru + Группа свойства + + + ГруппаСвойстваРасширеннаяПодсказка + 117 + Label + true + true + + Left + + + Page + + Vertical + auto + +
+ true + true + + true + + + <key>ru</key> + <value>Группа дополнительные данные страницы</value> + + + ru + Группа дополнительные данные страницы + + true + + ГруппаДополнительныеДанныеСтраницыРасширеннаяПодсказка + 74 + Label + true + true + + Left + + + Pages + + TabsOnTop + Auto + +
+ + ФормаКоманднаяПанель + -1 + + ФормаЗаписатьИЗакрыть + 38 + true + true + + true + + + ФормаЗаписатьИЗакрытьРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + Form.Command.ЗаписатьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 43 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаГруппаЭЦП + 39 + + ФормаПодписать + 41 + true + true + + true + + + ФормаПодписатьРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + Form.Command.Подписать + Normal + Auto + true + true + UserCmds + Auto + + + ФормаДобавитьЭЦПИзФайла + 40 + true + true + + true + + + ФормаДобавитьЭЦПИзФайлаРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + Form.Command.ДобавитьЭЦПИзФайла + Normal + Auto + true + true + UserCmds + Auto + + + ФормаСохранитьВместеСЭЦП + 42 + true + true + + true + + + ФормаСохранитьВместеСЭЦПРасширеннаяПодсказка + 63 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭЦП + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ФормаГруппаЭЦПРасширеннаяПодсказка + 60 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + OnOpen + ПриОткрытии + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + 70 + 18 + LockOwner + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 1 + + String + + + + true + + + true + + true + + + Расширение + + <key>ru</key> + <value>Расширение</value> + + 2 + + String + + + + true + + + true + + + + Описание + + <key>ru</key> + <value>Описание</value> + + 3 + + String + + + + true + + + true + + true + + + Размер + + <key>ru</key> + <value>Размер</value> + + 4 + + Number + + 10 + + + + true + + + true + + + + ДатаСоздания + + <key>ru</key> + <value>Создан</value> + + 5 + + Date + + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 6 + + String + + + + true + + + true + + + + ТаблицаПодписей + + <key>ru</key> + <value>Таблица подписей</value> + + 7 + + ValueTable + + + true + + + true + + + КомуВыданСертификат + + <key>ru</key> + <value>Автор подписи</value> + + 1 + + String + + + + true + + + true + + + + ДатаПодписи + + <key>ru</key> + <value>Дата подписи</value> + + 2 + + Date + + + + true + + + true + + + + Комментарий + + <key>ru</key> + <value>Комментарий</value> + + 3 + + String + + + + true + + + true + + + + Статус + + <key>ru</key> + <value>Статус</value> + + 4 + + String + + + + true + + + true + + + + АдресПодписи + + <key>ru</key> + <value>Адрес подписи</value> + + 6 + + String + + + + true + + + true + + + + Отпечаток + + <key>ru</key> + <value>Отпечаток</value> + + 7 + + String + + + + true + + + true + + + + Неверна + + <key>ru</key> + <value>Неверна</value> + + 8 + + Boolean + + + true + + + true + + + + ИндексКартинки + + <key>ru</key> + <value>Индекс картинки</value> + + 9 + + Number + + 10 + + + + true + + + true + + + + УстановившийПодпись + + <key>ru</key> + <value>Установивший подпись</value> + + 11 + + String + + + + true + + + true + + + + АдресСертификата + + <key>ru</key> + <value>Адрес сертификата</value> + + 12 + + String + + + + true + + + true + + + + Объект + + <key>ru</key> + <value>Объект</value> + + 5 + + String + + + + true + + + true + + + + ИмяФайлаПодписи + + <key>ru</key> + <value>Имя файла подписи</value> + + 10 + + String + + + + true + + + true + + + + УстановившийПодписьИд + + <key>ru</key> + <value>Установивший подпись ид</value> + + 13 + + String + + + + true + + + true + + + + НомерСтроки + + <key>ru</key> + <value>Номер строки</value> + + 14 + + Number + + 10 + + + + true + + + true + + + + + ИдентификаторФайла + + <key>ru</key> + <value>Идентификатор файла</value> + + 8 + + String + + + + true + + + true + + + + КаталогДляСохраненияДанных + + <key>ru</key> + <value>Каталог для сохранения данных</value> + + 9 + + String + + + + true + + + true + + + + ДатаМодификацииУниверсальная + + <key>ru</key> + <value>Дата модификации универсальная</value> + + 10 + + Date + + + + true + + + true + + + + Редактируется + + <key>ru</key> + <value>Редактируется</value> + + 11 + + Boolean + + + true + + + true + + + + Зашифрован + + <key>ru</key> + <value>Зашифрован</value> + + 12 + + Boolean + + + true + + + true + + + + ОписаниеКолонокТаблицыПодписей + + <key>ru</key> + <value>Описание колонок таблицы подписей</value> + + 13 + + + true + + + true + + + + Свойства + + <key>ru</key> + <value>Свойства</value> + + 14 + + ValueTable + + + true + + + true + + true + + Свойство + + <key>ru</key> + <value>Свойство</value> + + 1 + + String + + + + true + + + true + + + + Значение + + <key>ru</key> + <value>Значение</value> + + 2 + + Boolean + String + Date + Number + + 10 + + + + Date + + + + true + + + true + + + + ЗначениеТип + + <key>ru</key> + <value>Значение тип</value> + + 3 + + String + + + + true + + + true + + + + ЗначениеID + + <key>ru</key> + <value>Значение ID</value> + + 4 + + String + + + + true + + + true + + + + СписокДоступныхТипов + + <key>ru</key> + <value>Список доступных типов</value> + + 5 + + ValueList + + + true + + + true + + + + СвойствоТип + + <key>ru</key> + <value>Свойство тип</value> + + 6 + + String + + + + true + + + true + + + + СвойствоID + + <key>ru</key> + <value>Свойство ID</value> + + 7 + + String + + + + true + + + true + + + + + ЗакрытиеСПараметром + + <key>ru</key> + <value>Закрытие с параметром</value> + + 15 + + Boolean + + + true + + + true + + + + Открыть + + <key>ru</key> + <value>Просмотреть</value> + + 1 + + ru + Открыть файл для просмотра + + + true + + + CommonPicture.КартинкаОткрыть + + + + ОткрытьФайл + + + TextPicture + Auto + Auto + + + ОбновитьИзФайлаНаДиске + + <key>ru</key> + <value>Обновить из файла на диске</value> + + 2 + + ru + Обновить из файла на диске + + + true + + + CommonPicture.КартинкаОбновитьИзФайлаНаДиске + + + + ОбновитьИзФайлаНаДиске + + + TextPicture + Auto + Auto + + + СохранитьКак + + <key>ru</key> + <value>Сохранить как...</value> + + 3 + + ru + Сохранить файл на диск или другое устройство + + + true + + + CommonPicture.КартинкаСохранитьКак + + + + СохранитьКак + + + TextPicture + Auto + Auto + + + ЗаписатьИЗакрыть + + <key>ru</key> + <value>Записать и закрыть</value> + + 4 + + ru + Записать и закрыть + + + true + + + + ЗаписатьИЗакрыть + + + Text + Auto + Auto + + + ДобавитьЭЦПИзФайла + + <key>ru</key> + <value>Добавить ЭЦП из файла</value> + + 5 + + ru + Добавить ЭЦПИз файла + + + true + + + + ДобавитьЭЦПИзФайла + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + СохранитьВместеСЭЦП + + <key>ru</key> + <value>Сохранить вместе с ЭЦП</value> + + 6 + + ru + Сохранить вместе СЭЦП + + + true + + + + СохранитьВместеСЭЦП + + + Auto + Auto + + + Подписать + + <key>ru</key> + <value>Подписать</value> + + 7 + + ru + Подписать + + + true + + + CommonPicture.ПодписанЭЦП + + + + Подписать + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + Записать + + <key>ru</key> + <value>Записать</value> + + 8 + + ru + Записать + + + true + + Ctrl+S + + StdPicture.Write + + + + Записать + + + Picture + Auto + Auto + + + ОткрытьПодпись + + <key>ru</key> + <value>Открыть подпись</value> + + 10 + + ru + Открыть подпись + + + true + + + + ОткрытьПодпись + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + Проверить + + <key>ru</key> + <value>Проверить</value> + + 11 + + ru + Проверить + + + true + + + + Проверить + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ПроверитьВсе + + <key>ru</key> + <value>Проверить все</value> + + 12 + + ru + Проверить все + + + true + + + + ПроверитьВсе + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + Сохранить + + <key>ru</key> + <value>Сохранить</value> + + 13 + + ru + Сохранить + + + true + + + + Сохранить + + + Auto + Auto + + + Удалить + + <key>ru</key> + <value>Удалить</value> + + 14 + + ru + Удалить + + + true + + + + Удалить + + + Auto + Auto + + + + + +
diff --git a/SSL/src/CommonForms/ДокументооборотКарточкаФайла/Help/ru.html b/SSL/src/CommonForms/ДокументооборотКарточкаФайла/Help/ru.html new file mode 100644 index 000000000..6d8afa448 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотКарточкаФайла/Help/ru.html @@ -0,0 +1,19 @@ + +

Для открытия карточки файла используйте клавишу F2 или кнопку  ("Изменить текущий элемент") командной панели списка файлов. 

+

Карточка файла содержит различные сведения о файле и кнопки для выполнения основных действий с файлом. Дополнительные команды для работы с файлом находятся в подменю "Все действия" командной панели формы файла.

+

+

+

+ + + + + + + + + + + + +
Команда Описание
 ОткрытьОткрывает файл внешним приложением для просмотра.
 Сохранить какСохраняет файл в указанный каталог на жестком или сетевом диске. 
 Обновить из файла на дискеОбновляет файл в информационной базе выбранным файлом на жестком диске.
 ПодписатьОткрывает диалог для выбора сертификата и установки подписи.
Добавить ЭЦП из файлаДобавляет выбранный файл подписи к подписям файла.
Сохранить вместе с ЭЦПСохраняет файл в указанный каталог на жестком или сетевом диске, а также сохраняет подписи файла - все или выбранные, в зависимости от настройки "Действия при сохранении с ЭЦП"
Открыть подписьОткрывает форму для просмотра информации о подписи: кому выдан сертификат, кто установил подпись, дату установки подписи, комментарий к подписи
ПроверитьПроверяет истинность выделенных подписей
Проверить всеПроверяет истинность всех подписей
СохранитьСохраняет выбранную подпись в файл
УдалитьУдаляет выделенные подписи
\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотКарточкаФайла/Module.bsl b/SSL/src/CommonForms/ДокументооборотКарточкаФайла/Module.bsl new file mode 100644 index 000000000..29445d5d4 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотКарточкаФайла/Module.bsl @@ -0,0 +1,583 @@ +&НаКлиенте +Перем Подписи; + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ОписаниеФайла = РаботаС1СДокументооборотВызовСервера.ПолучитьКарточкуФайла(Параметры.УникальныйИдентификатор, ЭтаФорма); + + КаталогДляСохраненияДанных = РаботаС1СДокументооборотВызовСервера.ПолучитьЛокальныйКаталогФайлов(); + ЗаполнитьПоля(ОписаниеФайла); + + ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот + = РаботаС1СДокументооборотПовтИсп.ПолучитьНастройки().ИспользоватьЭлектронныеЦифровыеПодписи; + + ИспользоватьЭлектронныеЦифровыеПодписиВБСП = РаботаС1СДокументооборотВызовСервера.ПолучитьИспользоватьЭлектронныеЦифровыеПодписи(); + + Если ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот = Ложь Тогда + Элементы.ГруппаЭЦП.Видимость = Ложь; + + Элементы.ФормаСохранитьВместеСЭЦП.Видимость = Ложь; + КонецЕсли; + + Если ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот = Ложь ИЛИ ИспользоватьЭлектронныеЦифровыеПодписиВБСП = Ложь Тогда + + Элементы.ФормаПодписать.Видимость = Ложь; + Элементы.ФормаДобавитьЭЦПИзФайла.Видимость = Ложь; + + Элементы.ТаблицаПодписейПроверить.Видимость = Ложь; + Элементы.ТаблицаПодписейПроверитьВсе.Видимость = Ложь; + + КонецЕсли; + + КолонкиМассив = Новый Массив; + Для Каждого ОписаниеКолонки Из РеквизитФормыВЗначение("ТаблицаПодписей").Колонки Цикл + КолонкиМассив.Добавить(ОписаниеКолонки.Имя); + КонецЦикла; + ОписаниеКолонокТаблицыПодписей = Новый ФиксированныйМассив(КолонкиМассив); + + Заголовок = Наименование + НСтр("ru = ' (Файл)'"); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьПоля(Параметры) + + Размер = Параметры.Размер; + Наименование = Параметры.Наименование; + Описание = Параметры.Описание; + Расширение = Параметры.Расширение; + ДатаСоздания = Параметры.ДатаСоздания; + ДатаМодификацииУниверсальная = Параметры.ДатаМодификацииУниверсальная; + Автор = Параметры.Автор; + ИдентификаторФайла = Параметры.УникальныйИдентификатор; + Зашифрован = Параметры.Зашифрован; + Редактируется = Параметры.Редактируется; + + ТаблицаПодписей.Очистить(); + + Подписи = Параметры.Подписи; + + НомерСтроки = 0; + Для Каждого Подпись Из Параметры.Подписи Цикл + + НоваяСтрока = ТаблицаПодписей.Добавить(); + + НоваяСтрока.КомуВыданСертификат = Подпись.КомуВыданСертификат; + НоваяСтрока.ДатаПодписи = Подпись.ДатаПодписи; + НоваяСтрока.Комментарий = Подпись.Комментарий; + НоваяСтрока.Отпечаток = Подпись.Отпечаток; + НоваяСтрока.УстановившийПодпись = Подпись.УстановившийПодпись; + НоваяСтрока.Неверна = Ложь; + НоваяСтрока.ИндексКартинки = -1; + НоваяСтрока.Объект = "_"; // любая непустая строка + + ДвоичныеДанные = Подпись.Подпись; + Если ДвоичныеДанные <> Неопределено Тогда + НоваяСтрока.АдресПодписи = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор); + КонецЕсли; + + ДвоичныеДанныеСертификата = Подпись.Сертификат; + Если ДвоичныеДанныеСертификата <> Неопределено Тогда + НоваяСтрока.АдресСертификата = ПоместитьВоВременноеХранилище(ДвоичныеДанныеСертификата, УникальныйИдентификатор); + КонецЕсли; + + НоваяСтрока.ИмяФайлаПодписи = Подпись.ИмяФайлаПодписи; + НоваяСтрока.УстановившийПодпись = Подпись.УстановившийПодпись; + НоваяСтрока.УстановившийПодписьИд = Подпись.УстановившийПодписьИд; + НоваяСтрока.НомерСтроки = НомерСтроки; + + НомерСтроки = НомерСтроки + 1; + + КонецЦикла; + + ТекстЗаголовка = НСтр("ru = 'ЭЦП'"); + Если ТаблицаПодписей.Количество() <> 0 Тогда + ТекстЗаголовка = ТекстЗаголовка + " (" + Строка(ТаблицаПодписей.Количество()) + ")"; + КонецЕсли; + Элементы.ГруппаЭЦП.Заголовок = ТекстЗаголовка; + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьФайл(Команда) + + ОткрытьВыбранныйФайл(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьВыбранныйФайл() + + РаботаС1СДокументооборотКлиент.ОткрытьФайл(ИдентификаторФайла, Расширение, Наименование, + Размер, ДатаМодификацииУниверсальная, КаталогДляСохраненияДанных, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьИЗакрыть(Команда) + ЗаписатьВыполнитьКлиент(); + Закрыть(); +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьКак(Команда) + + РаботаС1СДокументооборотКлиент.СохранитьКак(ИдентификаторФайла, Расширение, Наименование, + Размер, ДатаМодификацииУниверсальная, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьИзФайлаНаДиске(Команда) + + Если РаботаС1СДокументооборотКлиент.ОбновитьИзФайлаНаДиске(ИдентификаторФайла, УникальныйИдентификатор) Тогда + ПолучитьКарточкуИЗаполнитьПоля(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПолучитьКарточкуИЗаполнитьПоля() + + ОписаниеФайла = РаботаС1СДокументооборотВызовСервера.ПолучитьКарточкуФайла(ИдентификаторФайла); + ЗаполнитьПоля(ОписаниеФайла); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "ФайлДокументооборотИзменен" Тогда + Если ИдентификаторФайла = Параметр Тогда + ПолучитьКарточкуИЗаполнитьПоля(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Подписать(Команда) + + МассивСуществующихПодписейФайла = РаботаС1СДокументооборотКлиент.ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла, ТаблицаПодписей); + + РаботаС1СДокументооборотКлиент.ПодписатьФайл(ИдентификаторФайла, Наименование, Редактируется, Зашифрован, + Описание, МассивСуществующихПодписейФайла); + + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьЭЦПИзФайла(Команда) + + МассивСуществующихПодписейФайла = РаботаС1СДокументооборотКлиент.ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла, ТаблицаПодписей); + + РаботаС1СДокументооборотКлиент.ДобавитьЭЦПИзФайла(ИдентификаторФайла, Наименование, УникальныйИдентификатор, + Описание, МассивСуществующихПодписейФайла); + + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьВместеСЭЦП(Команда) + + РаботаС1СДокументооборотКлиент.СохранитьВместеСЭЦП(ИдентификаторФайла, Расширение, Наименование, + Размер, ДатаМодификацииУниверсальная, УникальныйИдентификатор, Подписи); + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьОднуПодпись(ДанныеСтроки, МенеджерКриптографии, АдресФайла) + + АдресПодписи = ДанныеСтроки.АдресПодписи; + + ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресФайла); + ДвоичныеДанныеПодписи = ПолучитьИзВременногоХранилища(АдресПодписи); + + Попытка + ЭлектроннаяЦифроваяПодписьКлиент.ПроверитьПодпись(МенеджерКриптографии, ДвоичныеДанныеФайла, ДвоичныеДанныеПодписи); + + ДанныеСтроки.Статус = НСтр("ru = 'Верна'"); + ДанныеСтроки.Неверна = Ложь; + Исключение + ДанныеСтроки.Статус = НСтр("ru = 'Неверна. '"); + Инфо = ИнформацияОбОшибке(); + Если Инфо.Причина <> Неопределено Тогда + ДанныеСтроки.Статус = ДанныеСтроки.Статус + Инфо.Причина.Описание; + КонецЕсли; + ДанныеСтроки.Неверна = Истина; + КонецПопытки; + +КонецПроцедуры + +&НаКлиенте +Процедура Проверить(Команда) + + ВыполнятьПроверкуЭЦПНаСервере = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ВыполнятьПроверкуЭЦПНаСервере; + + Если ВыполнятьПроверкуЭЦПНаСервере И НЕ Зашифрован Тогда + ДанныеВыделенныхСтрок = Новый Массив; + ИменаКолонок = ""; + Для Каждого ИмяКолонки Из ОписаниеКолонокТаблицыПодписей Цикл + ИменаКолонок = ИменаКолонок + ИмяКолонки + ","; + КонецЦикла; + ИменаКолонок = Лев(ИменаКолонок, СтрДлина(ИменаКолонок)-1); + + Для Каждого Элемент Из Элементы.ТаблицаПодписей.ВыделенныеСтроки Цикл + ДанныеСтроки = Новый Структура(ИменаКолонок); + ЗаполнитьЗначенияСвойств(ДанныеСтроки, ТаблицаПодписей.НайтиПоИдентификатору(Элемент)); + ДанныеВыделенныхСтрок.Добавить(ДанныеСтроки); + КонецЦикла; + + ПроверитьНаСервере(ДанныеВыделенныхСтрок); + + Индекс = 0; + Для Каждого Элемент Из Элементы.ТаблицаПодписей.ВыделенныеСтроки Цикл + Строка = ТаблицаПодписей.НайтиПоИдентификатору(Элемент); + Строка.Статус = ДанныеВыделенныхСтрок[Индекс].Статус; + Строка.Неверна = ДанныеВыделенныхСтрок[Индекс].Неверна; + Индекс = Индекс + 1; + КонецЦикла; + Иначе + + МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии(); + + АдресФайла = РаботаС1СДокументооборотВызовСервера.ПолучитьАдресФайла(ИдентификаторФайла, УникальныйИдентификатор); + + Для Каждого Элемент Из Элементы.ТаблицаПодписей.ВыделенныеСтроки Цикл + ДанныеСтроки = Элементы.ТаблицаПодписей.ДанныеСтроки(Элемент); + + Если НЕ ПустаяСтрока(ДанныеСтроки.Объект) Тогда + ПроверитьОднуПодпись(ДанныеСтроки, МенеджерКриптографии, АдресФайла); + КонецЕсли; + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьВсе(Команда) + + ВыполнятьПроверкуЭЦПНаСервере = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ВыполнятьПроверкуЭЦПНаСервере; + + Если ВыполнятьПроверкуЭЦПНаСервере И НЕ Зашифрован Тогда + ДанныеСтрок = Новый Массив; + ИменаКолонок = ""; + Для Каждого ИмяКолонки Из ОписаниеКолонокТаблицыПодписей Цикл + ИменаКолонок = ИменаКолонок + ИмяКолонки + ","; + КонецЦикла; + ИменаКолонок = Лев(ИменаКолонок, СтрДлина(ИменаКолонок)-1); + + Для Каждого СтрокаТЗ Из ТаблицаПодписей Цикл + ДанныеСтроки = Новый Структура(ИменаКолонок); + ЗаполнитьЗначенияСвойств(ДанныеСтроки, СтрокаТЗ); + ДанныеСтрок.Добавить(ДанныеСтроки); + КонецЦикла; + + ПроверитьВсеНаСервере(ДанныеСтрок); + + Индекс = 0; + Для Каждого СтрокаТЗ Из ТаблицаПодписей Цикл + СтрокаТЗ.Статус = ДанныеСтрок[Индекс].Статус; + СтрокаТЗ.Неверна = ДанныеСтрок[Индекс].Неверна; + Индекс = Индекс + 1; + КонецЦикла; + Иначе + + МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии(); + + АдресФайла = РаботаС1СДокументооборотВызовСервера.ПолучитьАдресФайла(ИдентификаторФайла, УникальныйИдентификатор); + + Для Каждого Строка Из ТаблицаПодписей Цикл + Если НЕ ПустаяСтрока(Строка.Объект) Тогда + ПроверитьОднуПодпись(Строка, МенеджерКриптографии, АдресФайла); + КонецЕсли; + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +// Проверяет все подписи (на сервере) из массива ДанныеВыделенныхСтрок +Процедура ПроверитьНаСервере(ДанныеВыделенныхСтрок) + + УстановитьПривилегированныйРежим(Истина); + ПровайдерЭЦП = Константы.ПровайдерЭЦП.Получить(); + ПутьМодуляКриптографии = ЭлектроннаяЦифроваяПодписьПовтИсп.ПутьМодуляКриптографии(); + ТипПровайдераЭЦП = Константы.ТипПровайдераЭЦП.Получить(); + АлгоритмПодписи = Константы.АлгоритмПодписи.Получить(); + АлгоритмХеширования = Константы.АлгоритмХеширования.Получить(); + АлгоритмШифрования = Константы.АлгоритмШифрования.Получить(); + УстановитьПривилегированныйРежим(Ложь); + + МенеджерКриптографии = Новый МенеджерКриптографии(ПровайдерЭЦП, ПутьМодуляКриптографии, ТипПровайдераЭЦП); + МенеджерКриптографии.АлгоритмПодписи = АлгоритмПодписи; + МенеджерКриптографии.АлгоритмХеширования = АлгоритмХеширования; + МенеджерКриптографии.АлгоритмШифрования = АлгоритмШифрования; + + АдресФайла = РаботаС1СДокументооборотВызовСервера.ПолучитьАдресФайла(ИдентификаторФайла, УникальныйИдентификатор); + + Для Каждого ДанныеСтроки Из ДанныеВыделенныхСтрок Цикл + Если НЕ ПустаяСтрока(ДанныеСтроки.Объект) Тогда + ПроверитьОднуПодписьНаСервере(ДанныеСтроки, МенеджерКриптографии, АдресФайла); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +// Проверяет все подписи (на сервере) из ТаблицаПодписей +Процедура ПроверитьВсеНаСервере(ТаблицаПодписей) + + УстановитьПривилегированныйРежим(Истина); + ПровайдерЭЦП = Константы.ПровайдерЭЦП.Получить(); + ПутьМодуляКриптографии = ЭлектроннаяЦифроваяПодписьПовтИсп.ПутьМодуляКриптографии(); + ТипПровайдераЭЦП = Константы.ТипПровайдераЭЦП.Получить(); + АлгоритмПодписи = Константы.АлгоритмПодписи.Получить(); + АлгоритмХеширования = Константы.АлгоритмХеширования.Получить(); + АлгоритмШифрования = Константы.АлгоритмШифрования.Получить(); + УстановитьПривилегированныйРежим(Ложь); + + МенеджерКриптографии = Новый МенеджерКриптографии(ПровайдерЭЦП, ПутьМодуляКриптографии, ТипПровайдераЭЦП); + МенеджерКриптографии.АлгоритмПодписи = АлгоритмПодписи; + МенеджерКриптографии.АлгоритмХеширования = АлгоритмХеширования; + МенеджерКриптографии.АлгоритмШифрования = АлгоритмШифрования; + + АдресФайла = РаботаС1СДокументооборотВызовСервера.ПолучитьАдресФайла(ИдентификаторФайла, УникальныйИдентификатор); + + Для Каждого Строка Из ТаблицаПодписей Цикл + Если НЕ ПустаяСтрока(Строка.Объект) Тогда + ПроверитьОднуПодписьНаСервере(Строка, МенеджерКриптографии, АдресФайла); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +// Проверяет одну подпись( на сервере) +Процедура ПроверитьОднуПодписьНаСервере(ДанныеСтроки, МенеджерКриптографии, АдресФайла) + + ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресФайла); + ДвоичныеДанныеПодписи = ПолучитьИзВременногоХранилища(ДанныеСтроки.АдресПодписи); + + Попытка + ЭлектроннаяЦифроваяПодпись.ПроверитьПодпись(МенеджерКриптографии, ДвоичныеДанныеФайла, ДвоичныеДанныеПодписи); + ДанныеСтроки.Статус = НСтр("ru = 'Верна'"); + ДанныеСтроки.Неверна = Ложь; + Исключение + ДанныеСтроки.Статус = НСтр("ru = 'Неверна. '"); + Инфо = ИнформацияОбОшибке(); + Если Инфо.Причина <> Неопределено Тогда + ДанныеСтроки.Статус = ДанныеСтроки.Статус + Инфо.Причина.Описание; + КонецЕсли; + ДанныеСтроки.Неверна = Истина; + КонецПопытки; + +КонецПроцедуры + + +&НаКлиенте +Процедура ОткрытьПодпись(Команда) + ЭлектроннаяЦифроваяПодписьКлиент.ОткрытьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные); +КонецПроцедуры + + +&НаКлиенте +Процедура ТаблицаПодписейВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + ЭлектроннаяЦифроваяПодписьКлиент.ОткрытьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные); +КонецПроцедуры + + +&НаКлиенте +Процедура Сохранить(Команда) + + Если Элементы.ТаблицаПодписей.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если НЕ ПустаяСтрока(Элементы.ТаблицаПодписей.ТекущиеДанные.Объект) Тогда + ЭлектроннаяЦифроваяПодписьКлиент.СохранитьПодпись(Элементы.ТаблицаПодписей.ТекущиеДанные.АдресПодписи); + КонецЕсли; + +КонецПроцедуры + + +&НаКлиенте +Процедура Удалить(Команда) + + Если Вопрос(НСтр("ru = 'Удалить выделенные подписи?'"), РежимДиалогаВопрос.ДаНет) <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + МассивСуществующихПодписейФайла = РаботаС1СДокументооборотКлиент.ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла, ТаблицаПодписей); + + УдалитьПодписиИОбновитьСписок(МассивСуществующихПодписейФайла); + + Оповестить("ФайлДокументооборотИзменен", ""); // Идентификатор не важен - только для обновления списка + УстановитьДоступностьКомандСпискаЭЦП(); + +КонецПроцедуры + + +&НаСервере +Процедура УдалитьПодписиИОбновитьСписок(МассивСуществующихПодписейФайла) + + ТаблицаВыделенныеСтроки = Новый ТаблицаЗначений; + ТаблицаВыделенныеСтроки.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число")); + ТаблицаВыделенныеСтроки.Колонки.Добавить("ОбъектСсылка", Новый ОписаниеТипов("Строка")); + ТаблицаВыделенныеСтроки.Колонки.Добавить("ОбъектТип", Новый ОписаниеТипов("Строка")); + + Для Каждого Элемент Из Элементы.ТаблицаПодписей.ВыделенныеСтроки Цикл + ДанныеСтроки = ТаблицаПодписей.НайтиПоИдентификатору(Элемент); + + Если НЕ ПустаяСтрока(ДанныеСтроки.Объект) Тогда + + НоваяСтрока = ТаблицаВыделенныеСтроки.Добавить(); + НоваяСтрока.ОбъектСсылка = ИдентификаторФайла; + НоваяСтрока.ОбъектТип = "DMFile"; + НоваяСтрока.НомерСтроки = ДанныеСтроки.НомерСтроки; + + КонецЕсли; + КонецЦикла; + + МассивДанныхПодписей = Новый Массив; // подписи, оставшиеся после удаления + + // формируем массив данных подписи + Для Каждого ДанныеСтроки Из МассивСуществующихПодписейФайла Цикл + + // по GUID объекта + номер строки - удаляем из массива всех те, что надо удалить + ПодписьУдалена = Ложь; + Для Каждого СтрокаУдаленнойПодписи Из ТаблицаВыделенныеСтроки Цикл + Если СтрокаУдаленнойПодписи.НомерСтроки = ДанныеСтроки.НомерСтроки Тогда + ПодписьУдалена = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + Если НЕ ПодписьУдалена Тогда + МассивДанныхПодписей.Добавить(ДанныеСтроки); + КонецЕсли; + + КонецЦикла; + + ЗаписатьВыполнить(МассивДанныхПодписей); // запишем карточку файла с измененным списком подписей + + ПолучитьКарточкуИЗаполнитьПоля(); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомандСпискаЭЦП() + + ЕстьПодписи = (ТаблицаПодписей.Количество() <> 0); + + Элементы.ТаблицаПодписейПроверить.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейПроверитьВсе.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейОткрытьПодпись.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейУдалить.Доступность = ЕстьПодписи; + Элементы.ТаблицаПодписейСохранить.Доступность = ЕстьПодписи; + + Элементы.ФормаСохранитьВместеСЭЦП.Доступность = ЕстьПодписи; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + УстановитьДоступностьКомандСпискаЭЦП(); +КонецПроцедуры + +&НаКлиенте +Процедура Записать(Команда) + ЗаписатьВыполнитьКлиент(); +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьВыполнитьКлиент() + + МассивСуществующихПодписейФайла = РаботаС1СДокументооборотКлиент.ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла, ТаблицаПодписей); + + ЗаписатьВыполнить(МассивСуществующихПодписейФайла); + Оповестить("ФайлДокументооборотИзменен", ""); // Идентификатор не важен - только для обновления списка + + Модифицированность = Ложь; + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьВыполнить(МассивСуществующихПодписейФайла) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + ОбъектТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMFile"); + Объект = Прокси.ФабрикаXDTO.Создать(ОбъектТип); + + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + Объект.objectId = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + + Объект.objectId.id = ИдентификаторФайла; + Объект.objectId.type = "DMFile"; + + // только 2 поля - Имя и Описание передаем при записи + Объект.name = Наименование; + Объект.description = Описание; + + // тут ЭЦП добавить + ПодписьТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMSignature"); + + Для Каждого ДанныеПодписи Из МассивСуществующихПодписейФайла Цикл + + ПодписьXDTO = Прокси.ФабрикаXDTO.Создать(ПодписьТип); + РаботаС1СДокументооборотВызовСервера.ЗаполнитьXDTOПодпись(Прокси, ПодписьXDTO, ДанныеПодписи); + Объект.signatures.Добавить(ПодписьXDTO); + + КонецЦикла; + + //дополнительные реквизиты + РаботаС1СДокументооборот.СформироватьДополнительныеСвойства(Прокси, ЭтаФорма, Объект); + + Ответ = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + +КонецПроцедуры + +&НаКлиенте +Процедура СвойстваЗначениеПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаС1СДокументооборотКлиент.ВыбратьЗначениеДополнительногоРеквизита(ЭтаФорма, Элемент, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + Если ЗакрытиеСПараметром Тогда + Возврат; + КонецЕсли; + + Если Модифицированность Тогда + ТекстВопроса = НСтр("ru = 'Данные были изменены. Сохранить изменения?'"); + Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена,,КодВозвратаДиалога.Да); + Если Ответ = КодВозвратаДиалога.Да Тогда + ЗаписатьВыполнитьКлиент(); + Оповестить("Изменен", ЭтаФорма.ВладелецФормы, ЭтаФорма); + ИначеЕсли Ответ <> КодВозвратаДиалога.Нет Тогда + Отказ = Истина; + Возврат; + КонецЕсли; + КонецЕсли; + + Отказ = Истина; + + ЗакрытиеСПараметром = Истина; + Закрыть(КодВозвратаДиалога.Отмена); + +КонецПроцедуры diff --git a/SSL/src/CommonForms/ДокументооборотКарточкаФайла/ДокументооборотКарточкаФайла.mdo b/SSL/src/CommonForms/ДокументооборотКарточкаФайла/ДокументооборотКарточкаФайла.mdo new file mode 100644 index 000000000..dda2e0230 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотКарточкаФайла/ДокументооборотКарточкаФайла.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотКарточкаФайла + + ru + Документооборот карточка файла + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/Form.form b/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/Form.form new file mode 100644 index 000000000..09f0d9e93 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/Form.form @@ -0,0 +1,198 @@ + + + + КаталогДляСохраненияДанных + 1 + true + true + + true + + + КаталогДляСохраненияДанных + + Top + + КаталогДляСохраненияДанныхРасширеннаяПодсказка + 11 + Label + true + true + + Left + + + + КаталогДляСохраненияДанныхКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + + StartChoice + ПутьККаталогуНачалоВыбора + + 50 + true + true + true + true + true + true + true + Normal + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + Применить + 5 + true + true + + true + + false + + ПрименитьРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + Form.Command.ОК + Auto + true + true + true + UserCmds + Auto + + + Отмена + 6 + true + true + + true + + false + + ОтменаРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + Form.StandardCommand.Cancel + Normal + Auto + true + true + UserCmds + Auto + + + Справка + 7 + true + true + + true + + false + + СправкаРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + Right + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + КаталогДляСохраненияДанных + + <key>ru</key> + <value>Рабочий каталог для хранения временных файлов при просмотре через веб браузер</value> + + 1 + + String + + + + true + + + true + + + + ОК + + <key>ru</key> + <value>ОК</value> + + 1 + + ru + Установить каталог + + + true + + + + ОК + + + Auto + Auto + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/Help/ru.html b/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/Help/ru.html new file mode 100644 index 000000000..fd2d8b4e4 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/Help/ru.html @@ -0,0 +1 @@ +В этом диалоге настраивается рабочий каталог для хранения временных файлов при выполнении команды файла Просмотреть (при работе через веб браузер). \ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/Module.bsl b/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/Module.bsl new file mode 100644 index 000000000..88ba844ec --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/Module.bsl @@ -0,0 +1,32 @@ +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + КаталогДляСохраненияДанных = РаботаС1СДокументооборотВызовСервера.ПолучитьЛокальныйКаталогФайлов(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПутьККаталогуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + Если ПодключитьРасширениеРаботыСФайлами() Тогда + ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); + ДиалогОткрытияФайла.ПолноеИмяФайла = ""; + ДиалогОткрытияФайла.Каталог = КаталогДляСохраненияДанных; + ДиалогОткрытияФайла.МножественныйВыбор = Ложь; + ДиалогОткрытияФайла.Заголовок = НСтр("ru = 'Выберите путь к каталогу для временных файлов'"); + Если ДиалогОткрытияФайла.Выбрать() Тогда + КаталогДляСохраненияДанных = ДиалогОткрытияФайла.Каталог + "\"; + КонецЕсли; + Иначе + Предупреждение(НСтр("ru = 'Для выбора каталога необходимо установить расширение для работы с файлами в Веб-клиенте.'")); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОК(Команда) + + РаботаС1СДокументооборотВызовСервера.СохранитьЛокальныйКаталогФайлов(КаталогДляСохраненияДанных); + Закрыть(КаталогДляСохраненияДанных); + +КонецПроцедуры diff --git a/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/ДокументооборотНастройкаКаталогаФайлов.mdo b/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/ДокументооборотНастройкаКаталогаФайлов.mdo new file mode 100644 index 000000000..25791a5c1 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотНастройкаКаталогаФайлов/ДокументооборотНастройкаКаталогаФайлов.mdo @@ -0,0 +1,16 @@ + + + ДокументооборотНастройкаКаталогаФайлов + + ru + Настройка рабочего каталога файлов + + + + ru + + + PersonalComputer + MobileDevice + true + diff --git a/SSL/src/CommonForms/ДокументооборотПоискВСписке/Form.form b/SSL/src/CommonForms/ДокументооборотПоискВСписке/Form.form new file mode 100644 index 000000000..634c05144 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотПоискВСписке/Form.form @@ -0,0 +1,160 @@ + + + + <key>ru</key> + <value>Найти</value> + + + СтрокаПоиска + 4 + true + true + + true + + + СтрокаПоиска + + + СтрокаПоискаРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + + СтрокаПоискаКонтекстноеМеню + 5 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаНайти + 1 + true + true + + true + + + ФормаНайтиРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + Form.Command.Найти + Auto + true + true + true + UserCmds + Auto + + + ФормаЗакрыть + 3 + true + true + + true + + + ФормаЗакрытьРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + Form.StandardCommand.Close + Normal + true + true + UserCmds + Auto + + Right + true + + DontBlock + true + true + Vertical + true + true + UseIfNecessary + auto + true + + СтрокаПоиска + + <key>ru</key> + <value>Что искать</value> + + 1 + + String + + + + true + + + true + + + + Найти + + <key>ru</key> + <value>Найти</value> + + 1 + + ru + Найти + + + true + + + + НайтиВыполнить + + + Auto + Auto + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотПоискВСписке/Module.bsl b/SSL/src/CommonForms/ДокументооборотПоискВСписке/Module.bsl new file mode 100644 index 000000000..387c093a0 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотПоискВСписке/Module.bsl @@ -0,0 +1,5 @@ + +&НаКлиенте +Процедура НайтиВыполнить(Команда) + Закрыть(СтрокаПоиска); +КонецПроцедуры diff --git a/SSL/src/CommonForms/ДокументооборотПоискВСписке/ДокументооборотПоискВСписке.mdo b/SSL/src/CommonForms/ДокументооборотПоискВСписке/ДокументооборотПоискВСписке.mdo new file mode 100644 index 000000000..457dd162a --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотПоискВСписке/ДокументооборотПоискВСписке.mdo @@ -0,0 +1,10 @@ + + + ДокументооборотПоискВСписке + + ru + Документооборот поиск в списке + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/Form.form b/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/Form.form new file mode 100644 index 000000000..7d9af873d --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/Form.form @@ -0,0 +1,260 @@ + + + + <key>ru</key> + <value>Прикрепление файла</value> + + + РежимСоздания + 2 + + <key>ru</key> + <value>Откуда взять файл</value> + + true + true + + true + + + РежимСоздания + + Top + + РежимСозданияРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + + РежимСозданияКонтекстноеМеню + 3 + true + + RadioButtonField + Enter + true + Left + true + Left + + 1 + + + ru + Выбрать с диска + + + 1 + + + + + ru + Выбрать из 1С:Документооборота + + + 2 + + + Vertical + + + + ОсновнаяКоманднаяПанель + 1 + + СоздатьФайл + 4 + + <key>ru</key> + <value>Выбрать</value> + + true + true + + true + + false + + СоздатьФайлРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + Form.Command.СоздатьФайл + Auto + true + true + true + UserCmds + + Style.ButtonTextColor + + + Style.ButtonBackColor + + + Style.BorderColor + + Auto + + + Отмена + 8 + true + true + + true + + false + + ОтменаРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + Form.StandardCommand.Cancel + Normal + Auto + true + true + UserCmds + Auto + + + Справка + 9 + true + true + + true + + false + + СправкаРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + ОсновнаяКоманднаяПанельРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + CommandBar + + Right + Form + + + None + false + + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + 30 + DontBlock + true + true + Vertical + true + true + UseIfNecessary + auto + true + + РежимСоздания + + <key>ru</key> + <value>Режим создания</value> + + 1 + + Number + + 1 + true + + + + true + + + true + + + + СоздатьФайл + + <key>ru</key> + <value>ОК</value> + + 1 + + ru + Создать файл + + + true + + + + СоздатьФайлВыполнить + + + Auto + Auto + + + ГруппаСоздания + + CatalogRef.ПапкиФайлов + + + + + + + diff --git a/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/Help/ru.html b/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/Help/ru.html new file mode 100644 index 000000000..a01901261 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/Help/ru.html @@ -0,0 +1,9 @@ + +

Прикрепление файла

+

Варианты прикрепления файла:

+ + +
+

Выбрать с диска

Новый файл будет создан на основе существующего на локальном или сетевом диске файла и прикреплен к владельцу
+

Выбрать из 1С:Документооборота

Будет выбран уже существующий в 1С:Документообороте файл

 

+

См. также: Общая информация о файлах, Общая информация о формах.

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/Module.bsl b/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/Module.bsl new file mode 100644 index 000000000..5d6f71e98 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/Module.bsl @@ -0,0 +1,10 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + РежимСоздания = Параметры.РежимСоздания; +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьФайлВыполнить() + Закрыть(РежимСоздания); +КонецПроцедуры diff --git a/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/ДокументооборотСозданиеНовогоФайла.mdo b/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/ДокументооборотСозданиеНовогоФайла.mdo new file mode 100644 index 000000000..7e0433d59 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотСозданиеНовогоФайла/ДокументооборотСозданиеНовогоФайла.mdo @@ -0,0 +1,17 @@ + + + ДокументооборотСозданиеНовогоФайла + + ru + Создание нового файла + + true + + + ru + + + PersonalComputer + MobileDevice + true + diff --git a/SSL/src/CommonForms/ДокументооборотФайлы/Form.form b/SSL/src/CommonForms/ДокументооборотФайлы/Form.form new file mode 100644 index 000000000..8be68728e --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотФайлы/Form.form @@ -0,0 +1,1888 @@ + + + + СписокФайлов + 1 + true + true + + true + + + СписокФайлов + + None + Add + Copy + CopyToClipboard + EndEdit + MoveDown + MoveUp + SelectAll + SortListAsc + SortListDesc + + СписокФайловПодписанЭЦП + 17 + true + true + + true + + + СписокФайлов.ПодписанЭЦП + + None + + СписокФайловПодписанЭЦПРасширеннаяПодсказка + 79 + Label + true + true + + Left + + + + СписокФайловПодписанЭЦПКонтекстноеМеню + 18 + true + + PictureField + Enter + true + + CommonPicture.ПодписанЭЦП + + Left + true + + true + true + true + true + + CommonPicture.ПодписанЭЦП + + + + 1 + + + + + ГруппаКартинкаИНаименование + 16 + + СписокФайловИндексКартинки + 12 + true + true + + true + + + СписокФайлов.ИндексКартинки + + + СписокФайловИндексКартинкиРасширеннаяПодсказка + 82 + Label + true + true + + Left + + + + СписокФайловИндексКартинкиКонтекстноеМеню + 13 + true + + PictureField + Enter + Left + true + + true + true + true + true + + CommonPicture.ПиктограммыФайлов + + + + 1 + + + + + СписокФайловФайл + 4 + true + true + + true + + + СписокФайлов.Наименование + + + СписокФайловФайлРасширеннаяПодсказка + 84 + Label + true + true + + Left + + + + СписокФайловФайлКонтекстноеМеню + 5 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа картинка и наименование</value> + + + ru + Группа картинка и наименование + + + ГруппаКартинкаИНаименованиеРасширеннаяПодсказка + 81 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + СписокФайловОписание + 8 + true + true + + true + + + СписокФайлов.Описание + + + СписокФайловОписаниеРасширеннаяПодсказка + 86 + Label + true + true + + Left + + + + СписокФайловОписаниеКонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + СписокФайловРазмер + 10 + true + true + + true + + + СписокФайлов.Размер + + + СписокФайловРазмерРасширеннаяПодсказка + 88 + Label + true + true + + Left + + + + СписокФайловРазмерКонтекстноеМеню + 11 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + СписокФайловДатаСоздания + 21 + true + true + + true + + + СписокФайлов.ДатаСоздания + + + СписокФайловДатаСозданияРасширеннаяПодсказка + 90 + Label + true + true + + Left + + + + СписокФайловДатаСозданияКонтекстноеМеню + 22 + true + + InputField + Enter + true + Left + true + + true + true + true + + ru + ДФ=dd.MM.yyyy + + + ru + ДФ=dd.MM.yyyy + + true + true + Normal + + + + СписокФайловАвтор + 19 + true + true + + true + + + СписокФайлов.Автор + + + СписокФайловАвторРасширеннаяПодсказка + 92 + Label + true + true + + Left + + + + СписокФайловАвторКонтекстноеМеню + 20 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + СписокФайловКоманднаяПанель + 3 + + СписокФайловСоздатьФайл + 26 + true + true + + true + + + СписокФайловСоздатьФайлРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + Form.Command.СоздатьФайл + Normal + Auto + true + true + UserCmds + Auto + + + СписокФайловГруппаКоммандФайлов + 43 + + СписокФайловОткрытьФайл + 25 + true + true + + true + + + СписокФайловОткрытьФайлРасширеннаяПодсказка + 60 + Label + true + true + + Left + + + Form.Command.ОткрытьФайл + Normal + Picture + true + true + UserCmds + Auto + + + СписокФайловСохранитьКак + 27 + true + true + + true + + + СписокФайловСохранитьКакРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + Form.Command.СохранитьКак + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + СписокФайловОбновитьИзФайлаНаДиске + 31 + true + true + + true + + + СписокФайловОбновитьИзФайлаНаДискеРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + Form.Command.ОбновитьИзФайлаНаДиске + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Список файлов группа комманд файлов</value> + + + ru + Список файлов группа комманд файлов + + + СписокФайловГруппаКоммандФайловРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + + + ФормаГруппаЭЦП + 32 + + СписокФайловПодписать + 33 + true + true + + true + + + СписокФайловПодписатьРасширеннаяПодсказка + 64 + Label + true + true + + Left + + + Form.Command.Подписать + Normal + Auto + true + true + UserCmds + Auto + + + СписокФайловДобавитьЭЦПИзФайла + 34 + true + true + + true + + + СписокФайловДобавитьЭЦПИзФайлаРасширеннаяПодсказка + 65 + Label + true + true + + Left + + + Form.Command.ДобавитьЭЦПИзФайла + Normal + Auto + true + true + UserCmds + Auto + + + СписокФайловСохранитьВместеСЭЦП + 35 + true + true + + true + + + СписокФайловСохранитьВместеСЭЦПРасширеннаяПодсказка + 66 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭЦП + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ФормаГруппаЭЦПРасширеннаяПодсказка + 63 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + ГруппаКомандСписка + 29 + true + true + + true + + + <key>ru</key> + <value>Группа команд списка</value> + + + ru + Группа команд списка + + + ГруппаКомандСпискаРасширеннаяПодсказка + 67 + Label + true + true + + Left + + + + Item.СписокФайлов + + + + СписокФайловОбновить + 40 + true + true + + true + + + СписокФайловОбновитьРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + Form.Command.Обновить + Normal + Auto + true + true + UserCmds + Auto + + Left + + + DragCheck + СписокФайловПроверкаПеретаскивания + + + Selection + СписокФайловВыбор + + + BeforeAddRow + СписокФайловПередНачаломДобавления + + + BeforeDeleteRow + СписокФайловПередУдалением + + + OnActivateRow + СписокФайловПриАктивизацииСтроки + + + Drag + СписокФайловПеретаскивание + + + BeforeRowChange + СписокФайловПередНачаломИзменения + + + СписокФайловСтрокаПоиска + 70 + + СписокФайловСтрокаПоискаРасширеннаяПодсказка + 72 + Label + true + true + + Left + + + + СписокФайловСтрокаПоискаКонтекстноеМеню + 71 + true + + СписокФайлов + + true + + + + СписокФайловСостояниеПросмотра + 73 + + СписокФайловСостояниеПросмотраРасширеннаяПодсказка + 75 + Label + true + true + + Left + + + + СписокФайловСостояниеПросмотраКонтекстноеМеню + 74 + true + + ViewStatusAddition + СписокФайлов + + true + + + + СписокФайловУправлениеПоиском + 76 + + СписокФайловУправлениеПоискомРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + + СписокФайловУправлениеПоискомКонтекстноеМеню + 77 + true + + SearchControlAddition + СписокФайлов + + true + + + + СписокФайловРасширеннаяПодсказка + 69 + Label + true + true + + Left + + + + СписокФайловКонтекстноеМеню + 2 + + СписокФайловКонтекстноеМенюСоздатьФайл + 46 + true + true + + true + + + СписокФайловКонтекстноеМенюСоздатьФайлРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + Form.Command.СоздатьФайл + Normal + Auto + true + true + UserCmds + Auto + + + СписокФайловКонтекстноеМенюГруппаСтандартные + 45 + + СписокФайловКонтекстноеМенюОбновить + 41 + true + true + + true + + + СписокФайловКонтекстноеМенюОбновитьРасширеннаяПодсказка + 49 + Label + true + true + + Left + + + Form.Command.Обновить + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Список файлов контекстное меню группа стандартные</value> + + + ru + Список файлов контекстное меню группа стандартные + + + СписокФайловКонтекстноеМенюГруппаСтандартныеРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + Item.СписокФайлов + + + + ГруппаРаботыСФайлами + 42 + + СписокФайловКонтекстноеМенюОткрытьФайл + 44 + true + true + + true + + + СписокФайловКонтекстноеМенюОткрытьФайлРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + Form.Command.ОткрытьФайл + Normal + Auto + true + true + UserCmds + Auto + + + СписокФайловКонтекстноеМенюСохранитьКак + 28 + true + true + + true + + + СписокФайловКонтекстноеМенюСохранитьКакРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + Form.Command.СохранитьКак + Normal + Auto + true + true + UserCmds + Auto + + + СписокФайловКонтекстноеМенюОбновитьИзФайлаНаДиске + 30 + true + true + + true + + + СписокФайловКонтекстноеМенюОбновитьИзФайлаНаДискеРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + Form.Command.ОбновитьИзФайлаНаДиске + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Группа работы с файлами</value> + + + ru + Группа работы с файлами + + + ГруппаРаботыСФайламиРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + + + + ГруппаЭЦП + 36 + + СписокФайловКонтекстноеМенюПодписать + 39 + true + true + + true + + + СписокФайловКонтекстноеМенюПодписатьРасширеннаяПодсказка + 55 + Label + true + true + + Left + + + Form.Command.Подписать + Normal + Auto + true + true + UserCmds + Auto + + + СписокФайловКонтекстноеМенюДобавитьЭЦПИзФайла + 37 + true + true + + true + + + СписокФайловКонтекстноеМенюДобавитьЭЦПИзФайлаРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + Form.Command.ДобавитьЭЦПИзФайла + Normal + Auto + true + true + UserCmds + Auto + + + СписокФайловКонтекстноеМенюСохранитьВместеСЭЦП + 38 + true + true + + true + + + СписокФайловКонтекстноеМенюСохранитьВместеСЭЦПРасширеннаяПодсказка + 57 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭЦП + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>ЭЦП</value> + + + ru + ЭЦП + + + ГруппаЭЦПРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
+ None + false + + ФормаКоманднаяПанель + -1 + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + СписокФайлов + + <key>ru</key> + <value>Список файлов</value> + + 1 + + ValueTable + + + true + + + true + + + Наименование + + <key>ru</key> + <value>Наименование</value> + + 1 + + String + + + + true + + + true + + + + Расширение + + <key>ru</key> + <value>Расширение</value> + + 2 + + String + + + + true + + + true + + + + Описание + + <key>ru</key> + <value>Описание</value> + + 3 + + String + + + + true + + + true + + + + Размер + + <key>ru</key> + <value>Размер (Кб)</value> + + 4 + + Number + + + + true + + + true + + + + ИндексКартинки + + <key>ru</key> + <value>Индекс картинки</value> + + 5 + + Number + + + + true + + + true + + + + УникальныйИдентификатор + + <key>ru</key> + <value>Уникальный идентификатор</value> + + 6 + + String + + + + true + + + true + + + + ПодписанЭЦП + + <key>ru</key> + <value>Подписан ЭЦП</value> + + 7 + + Boolean + + + true + + + true + + + + Автор + + <key>ru</key> + <value>Автор</value> + + 8 + + String + + + + true + + + true + + + + ДатаСоздания + + <key>ru</key> + <value>Дата создания</value> + + 9 + + Date + + + + true + + + true + + + + ДатаМодификацииУниверсальная + + <key>ru</key> + <value>Дата модификации универсальная</value> + + 10 + + Date + + + + true + + + true + + + + Зашифрован + + <key>ru</key> + <value>Зашифрован</value> + + 11 + + Boolean + + + true + + + true + + + + Редактируется + + <key>ru</key> + <value>Редактируется</value> + + 12 + + Boolean + + + true + + + true + + + + ТаблицаПодписей + + <key>ru</key> + <value>Таблица подписей</value> + + 13 + + ValueTable + + + true + + + true + + + + + СписокФайлов.ТаблицаПодписей + + + КомуВыданСертификат + + <key>ru</key> + <value>Кому выдан сертификат</value> + + 1 + + String + + + + true + + + true + + + + ДатаПодписи + + <key>ru</key> + <value>Дата подписи</value> + + 2 + + Date + + + + true + + + true + + + + Комментарий + + <key>ru</key> + <value>Комментарий</value> + + 3 + + String + + + + true + + + true + + + + Статус + + <key>ru</key> + <value>Статус</value> + + 4 + + String + + + + true + + + true + + + + АдресПодписи + + <key>ru</key> + <value>Адрес подписи</value> + + 5 + + String + + + + true + + + true + + + + Отпечаток + + <key>ru</key> + <value>Отпечаток</value> + + 6 + + String + + + + true + + + true + + + + Неверна + + <key>ru</key> + <value>Неверна</value> + + 7 + + Boolean + + + true + + + true + + + + ИндексКартинки + + <key>ru</key> + <value>Индекс картинки</value> + + 8 + + Number + + 10 + + + + true + + + true + + + + УстановившийПодпись + + <key>ru</key> + <value>Установивший подпись</value> + + 9 + + String + + + + true + + + true + + + + АдресСертификата + + <key>ru</key> + <value>Адрес сертификата</value> + + 10 + + String + + + + true + + + true + + + + Объект + + <key>ru</key> + <value>Объект</value> + + 11 + + String + + + + true + + + true + + + + ИмяФайлаПодписи + + <key>ru</key> + <value>Имя файла подписи</value> + + 12 + + String + + + + true + + + true + + + + УстановившийПодписьИд + + <key>ru</key> + <value>Установивший подпись ид</value> + + 13 + + String + + + + true + + + true + + + + + + ОбъектСсылка + + <key>ru</key> + <value>Объект ссылка</value> + + 2 + + + true + + + true + + + + КаталогДляСохраненияДанных + + <key>ru</key> + <value>Каталог для сохранения данных</value> + + 3 + + String + + + + true + + + true + + + + ТекущийИдентификаторФайла + + <key>ru</key> + <value>Текущий идентификатор файла</value> + + 4 + + String + + + + true + + + true + + + + ИдентификаторКорневойПапки1СДокументооборот + + <key>ru</key> + <value>Идентификатор корневой папки 1C документооборот</value> + + 5 + + String + + + + true + + + true + + + + ОткрытьФайл + + <key>ru</key> + <value>Просмотреть</value> + + 2 + + ru + Открыть файл для просмотра + + + true + + + CommonPicture.КартинкаОткрыть + + + + ОткрытьФайл + + + TextPicture + Auto + Auto + + + СоздатьФайл + + <key>ru</key> + <value>Создать</value> + + 3 + + ru + Создать новый файл (Ins) + + + true + + + StdPicture.CreateListItem + + + + СоздатьФайл + + + TextPicture + Auto + Auto + + + СохранитьКак + + <key>ru</key> + <value>Сохранить как...</value> + + 4 + + ru + Сохранить файл на диск или другое устройство + + + true + + + CommonPicture.КартинкаСохранитьКак + + + + СохранитьКак + + + TextPicture + Auto + Auto + + + ОбновитьИзФайлаНаДиске + + <key>ru</key> + <value>Обновить из файла на диске</value> + + 1 + + ru + Обновить из файла на диске + + + true + + + CommonPicture.КартинкаОбновитьИзФайлаНаДиске + + + + ОбновитьИзФайлаНаДиске + + + TextPicture + Auto + Auto + + + Подписать + + <key>ru</key> + <value>Подписать</value> + + 5 + + ru + Подписать + + + true + + + CommonPicture.ПодписанЭЦП + + + + Подписать + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + ДобавитьЭЦПИзФайла + + <key>ru</key> + <value>Добавить ЭЦП из файла</value> + + 6 + + ru + Добавить ЭЦП из файла + + + true + + + + ДобавитьЭЦПИзФайла + + + FunctionalOption.ИспользоватьЭлектронныеЦифровыеПодписи + Auto + Auto + + + СохранитьВместеСЭЦП + + <key>ru</key> + <value>Сохранить вместе с ЭЦП</value> + + 7 + + ru + Сохранить вместе СЭЦП + + + true + + + + СохранитьВместеСЭЦП + + + Auto + Auto + + + Обновить + + <key>ru</key> + <value>Обновить</value> + + 8 + + ru + Обновить + + + true + + F5 + + StdPicture.Refresh + + + + Обновить + + + Auto + Auto + + + + + +
diff --git a/SSL/src/CommonForms/ДокументооборотФайлы/Help/ru.html b/SSL/src/CommonForms/ДокументооборотФайлы/Help/ru.html new file mode 100644 index 000000000..ae436dd0a --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотФайлы/Help/ru.html @@ -0,0 +1,22 @@ + +

Для работы с реквизитами файла (автор, название, описание и т.д.) используется карточка ("Открыть карточку"), а для работы с самим файлом - соответствующее приложение, установленное на компьютере.

+

Прикрепление файлов

+

+

Для прикрепления нового файла

+
  • Откройте список файлов; +
  • Выберите нужную папку;  +
  • Нажмите клавишу Insert или используйте команду " Создать"; +
  • Выберите способ прикрепления - "Выбрать с диска", "Выбрать из 1С:Документооборот".

Или же перетащите из проводника Windows выбранные файлы.

+

+

Работа с файлами

+

+

Для работы с файлами используйте команды, расположенные на командной панели или в подменю "Все действия" в списке файлов или карточке файла: 

+

+ + + + + + + +
Команда Описание
 ОткрытьОткрывает файл внешним приложением для просмотра.
 Сохранить какСохраняет файл в указанный каталог на жестком или сетевом диске. 
 Обновить из файла на дискеОбновляет файл в информационной базе выбранным файлом на жестком диске.
 ПодписатьОткрывает диалог для выбора сертификата и установки подписи.
Добавить ЭЦП из файлаДобавляет выбранный файл подписи к подписям файла.
Сохранить вместе с ЭЦПСохраняет файл в указанный каталог на жестком или сетевом диске, а также сохраняет подписи файла - все или выбранные, в зависимости от настройки "Действия при сохранении с ЭЦП"

 

\ No newline at end of file diff --git a/SSL/src/CommonForms/ДокументооборотФайлы/Module.bsl b/SSL/src/CommonForms/ДокументооборотФайлы/Module.bsl new file mode 100644 index 000000000..a7941f390 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотФайлы/Module.bsl @@ -0,0 +1,722 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ОбъектСсылка = Параметры.ОбъектСсылка; + ОбновитьСписокФайлов(); + + КаталогДляСохраненияДанных = РаботаС1СДокументооборотВызовСервера.ПолучитьЛокальныйКаталогФайлов(); + + ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот + = РаботаС1СДокументооборотПовтИсп.ПолучитьНастройки().ИспользоватьЭлектронныеЦифровыеПодписи; + + ИспользоватьЭлектронныеЦифровыеПодписиВБСП = РаботаС1СДокументооборотВызовСервера.ПолучитьИспользоватьЭлектронныеЦифровыеПодписи(); + + Если ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот = Ложь Тогда + Элементы.СписокФайловПодписанЭЦП.Видимость = Ложь; + + Элементы.СписокФайловСохранитьВместеСЭЦП.Видимость = Ложь; + Элементы.СписокФайловКонтекстноеМенюСохранитьВместеСЭЦП.Видимость = Ложь; + КонецЕсли; + + Если ИспользоватьЭлектронныеЦифровыеПодписиВ1СДокументооборот = Ложь ИЛИ ИспользоватьЭлектронныеЦифровыеПодписиВБСП = Ложь Тогда + Элементы.СписокФайловПодписать.Видимость = Ложь; + Элементы.СписокФайловКонтекстноеМенюПодписать.Видимость = Ложь; + Элементы.СписокФайловДобавитьЭЦПИзФайла.Видимость = Ложь; + Элементы.СписокФайловКонтекстноеМенюДобавитьЭЦПИзФайла.Видимость = Ложь; + КонецЕсли; + + ИдентификаторКорневойПапки1СДокументооборот = ПолучитьИдентификаторКорневойПапкиФайлов1СДокументооборот(); + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьСписокФайлов() + + СписокФайлов.Очистить(); + + Файлы = РаботаС1СДокументооборотВызовСервера.ПолучитьСписокФайлов(ОбъектСсылка.УникальныйИдентификатор(), + Строка(ОбъектСсылка), Строка(ТипЗнч(ОбъектСсылка))); + + Для каждого СведенияОФайле Из Файлы.files Цикл + НоваяСтрока = СписокФайлов.Добавить(); + + НоваяСтрока.Наименование = СведенияОФайле.name; + НоваяСтрока.Расширение = СведенияОФайле.extension; + НоваяСтрока.Описание = СведенияОФайле.description; + НоваяСтрока.Размер = Формат(СведенияОФайле.size/1024, "ЧЦ=10; ЧН=0"); + НоваяСтрока.ПодписанЭЦП = СведенияОФайле.signed; + НоваяСтрока.Автор = СведенияОФайле.author.name; + НоваяСтрока.УникальныйИдентификатор = СведенияОФайле.objectId.id; + НоваяСтрока.ДатаСоздания = СведенияОФайле.creationDate; + НоваяСтрока.ДатаМодификацииУниверсальная = СведенияОФайле.modificationDateUniversal; + Редактируется = СведенияОФайле.editing; + Зашифрован = СведенияОФайле.encrypted; + + НоваяСтрока.ИндексКартинки = ФайловыеФункцииКлиентСервер.ПолучитьИндексПиктограммыФайла(НоваяСтрока.Расширение); + + Для Каждого ПодписьXDTO Из СведенияОФайле.signatures Цикл + Подпись = НоваяСтрока.ТаблицаПодписей.Добавить(); + + Подпись.КомуВыданСертификат = ПодписьXDTO.author; + Подпись.ДатаПодписи = ПодписьXDTO.date; + Подпись.Комментарий = ПодписьXDTO.comment; + Подпись.Отпечаток = ПодписьXDTO.thumbprint; + + ДвоичныеДанные = ПодписьXDTO.signature; + Подпись.АдресПодписи = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор); + + ДвоичныеДанныеСертификата = ПодписьXDTO.certificate; + Если ДвоичныеДанныеСертификата <> Неопределено Тогда + Подпись.АдресСертификата = ПоместитьВоВременноеХранилище(ДвоичныеДанныеСертификата, УникальныйИдентификатор); + КонецЕсли; + + Подпись.ИмяФайлаПодписи = ПодписьXDTO.signatureFileName; + Подпись.УстановившийПодпись = ПодписьXDTO.signer.name; + Подпись.УстановившийПодписьИд = ПодписьXDTO.signer.objectId.id; + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + + +&НаКлиенте +Процедура ОбновитьСписокФайловКлиент(ИдентификаторФайла = Неопределено) + + Если ИдентификаторФайла <> Неопределено Тогда + ТекущийИдентификаторФайла = ИдентификаторФайла; + ИначеЕсли Элементы.СписокФайлов.ТекущиеДанные <> Неопределено Тогда + ТекущийИдентификаторФайла = Элементы.СписокФайлов.ТекущиеДанные.УникальныйИдентификатор; + КонецЕсли; + + ОбновитьСписокФайлов(); + Элементы.СписокФайлов.Обновить(); + + // восстановим положение в списке + Для Каждого Строка Из СписокФайлов Цикл + Если Строка.УникальныйИдентификатор = ТекущийИдентификаторФайла Тогда + Элементы.СписокФайлов.ТекущаяСтрока = Строка.ПолучитьИдентификатор(); + Прервать; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьКарточкуВыполнить() + + Если Элементы.СписокФайлов.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура("УникальныйИдентификатор", Элементы.СписокФайлов.ТекущиеДанные.УникальныйИдентификатор); + ОткрытьФорму("ОбщаяФорма.ДокументооборотКарточкаФайла", ПараметрыФормы); + +КонецПроцедуры + + +&НаКлиенте +Процедура ОткрытьФайл(Команда) + ОткрытьФайлВыполнить(); +КонецПроцедуры + + +&НаКлиенте +Процедура СписокФайловВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + ОткрытьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьФайлВыполнить() + + Если Элементы.СписокФайлов.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = Элементы.СписокФайлов.ТекущиеДанные.УникальныйИдентификатор; + Расширение = Элементы.СписокФайлов.ТекущиеДанные.Расширение; + Имя = Элементы.СписокФайлов.ТекущиеДанные.Наименование; + Размер = Элементы.СписокФайлов.ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = Элементы.СписокФайлов.ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.ОткрытьФайл(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, + КаталогДляСохраненияДанных, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + Отказ = Истина; + СоздатьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьФайл(Команда) + СоздатьФайлВыполнить(); +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьФайлВыполнить() + + ПараметрыОткрытия = Новый Структура("РежимСоздания", 1); + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотСозданиеНовогоФайла", ПараметрыОткрытия); + + Если (ТипЗнч(Результат) = Тип("КодВозвратаДиалога")) ИЛИ (Результат = Неопределено) Тогда + Возврат; + КонецЕсли; + + Если Результат = 1 Тогда + СоздатьИзФайлаНаДиске(); + ИначеЕсли Результат = 2 Тогда + ВыбратьСуществующийФайлВ1СДокументооборот(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьИзФайлаНаДиске() + + Если Не ЗначениеЗаполнено(ИдентификаторКорневойПапки1СДокументооборот) Тогда + Предупреждение(НСтр("ru = 'Не указана корневая папка для хранения файлов 1С:Документооборот.'")); + Возврат; + КонецЕсли; + + РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); + ИдентификаторСозданногоФайла = Неопределено; + + Если РасширениеПодключено Тогда + + ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); + ВыборФайла.МножественныйВыбор = Ложь; + ВыборФайла.Заголовок = НСтр("ru = 'Выбор файла'"); + ВыборФайла.Фильтр = НСтр("ru = 'Все файлы (*.*)|*.*'"); + + Результат = ВыборФайла.Выбрать(); + ПолноеИмяФайла = ВыборФайла.ПолноеИмяФайла; + + Если НЕ Результат Тогда + Возврат; + КонецЕсли; + + ИдентификаторСозданногоФайла = СоздатьИзФайлаНаДискеКлиент(ПолноеИмяФайла); + + Иначе + // Если веб-клиент без расширения + + ПараметрыСоздания = Новый Структура("Имя, Расширение, Размер, ВремяИзменения, ВремяИзмененияУниверсальное, АдресВременногоХранилищаФайла, Текст, ВебКлиент"); + + ВремяИзменения = ТекущаяДата(); // Т.к. не можем получить дату модификации файла на диске + ВремяИзмененияУниверсальное = УниверсальноеВремя(ТекущаяДата()); + Размер = 0; // Т.к. не можем получить размер файла на диске + ИмяБезРасширения = ""; + Расширение = ""; + АдресВременногоХранилищаТекста = ""; + + // Поместим Файл в ВременноеХранилище + АдресВременногоХранилищаФайла = ""; + ИмяФайла = ""; + Если НЕ ПоместитьФайл(АдресВременногоХранилищаФайла, ИмяФайла, ИмяФайла, Истина, УникальныйИдентификатор) Тогда + Возврат; + КонецЕсли; + + СтрокиПути = ФайловыеФункцииКлиентСервер.РазложитьСтрокуПоТочкамИСлэшам(ИмяФайла); + Если СтрокиПути.Количество() >= 2 Тогда + Расширение = СтрокиПути[СтрокиПути.Количество()-1]; + ИмяБезРасширения = СтрокиПути[СтрокиПути.Количество()-2]; + Иначе + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка при помещении файла в хранилище: %1'"),ИмяФайла); + КонецЕсли; + + ПараметрыСоздания.АдресВременногоХранилищаФайла = АдресВременногоХранилищаФайла; + ПараметрыСоздания.Расширение = Расширение; + ПараметрыСоздания.ВремяИзменения = ВремяИзменения; + ПараметрыСоздания.ВремяИзмененияУниверсальное = ВремяИзмененияУниверсальное; + ПараметрыСоздания.Имя = ИмяБезРасширения; + ПараметрыСоздания.Размер = Размер; + ПараметрыСоздания.Текст = ""; + ПараметрыСоздания.ВебКлиент = Истина; + + ТекстПояснения = + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Идет сохранение файла ""%1"". + |Пожалуйста, подождите...'"), + ИмяФайла); + + Состояние(ТекстПояснения); + + ИдентификаторСозданногоФайла = СоздатьИзФайлаНаДискеСервер(ПараметрыСоздания); + Состояние(); + + КонецЕсли; + + + Если ИдентификаторСозданногоФайла <> Неопределено Тогда + // обновить список + ОбновитьСписокФайловКлиент(ИдентификаторСозданногоФайла); + + // открыть карточку файла + ПараметрыФормы = Новый Структура("УникальныйИдентификатор", ИдентификаторСозданногоФайла); + ОткрытьФорму("ОбщаяФорма.ДокументооборотКарточкаФайла", ПараметрыФормы); + + КонецЕсли; + + +КонецПроцедуры + + +&НаКлиенте +Функция СоздатьИзФайлаНаДискеКлиент(ПолноеИмяФайла) + + ПараметрыСоздания = Новый Структура("Имя, Расширение, Размер, ВремяИзменения, ВремяИзмененияУниверсальное, АдресВременногоХранилищаФайла, Текст, ВебКлиент"); + ИдентификаторСозданногоФайла = Неопределено; + + НастройкиДокументооборот = РаботаС1СДокументооборотКлиентПовтИсп.ПолучитьНастройки(); + НужноИзвлечьТекст = НастройкиДокументооборот.НужноИзвлечьТекст; + + Файл = Новый Файл(ПолноеИмяФайла); + + ИмяФайла = Файл.ИмяБезРасширения + Файл.Расширение; + РазмерВМб = Файл.Размер() / (1024 * 1024); + + МаксРазмерФайла = РаботаС1СДокументооборотКлиентПовтИсп.ПолучитьМаксимальныйРазмерПередаваемогоФайла(); + РазмерВМбМакс = МаксРазмерФайла / (1024 * 1024); + + Если Файл.Размер() > МаксРазмерФайла Тогда + + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Размер файла ""%1"" (%2 Мб) превышает максимально допустимый размер файла для передачи (%3 Мб).'"), + Файл.Имя, + ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0")), + ?(РазмерВМбМакс >= 1, Формат(РазмерВМбМакс, "ЧДЦ=0"), Формат(РазмерВМбМакс, "ЧДЦ=1; ЧН=0"))); + КонецЕсли; + + ТекстПояснения = + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Идет сохранение файла ""%1"" (%2 Мб). + |Пожалуйста, подождите...'"), + ИмяФайла, + ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0"))); + + Состояние(ТекстПояснения); + + // Поместим Файл в ВременноеХранилище + АдресВременногоХранилищаФайла = ""; + + ПомещаемыеФайлы = Новый Массив; + Описание = Новый ОписаниеПередаваемогоФайла(Файл.ПолноеИмя, ""); + ПомещаемыеФайлы.Добавить(Описание); + + ПомещенныеФайлы = Новый Массив; + + Если НЕ ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, , Ложь, УникальныйИдентификатор) Тогда + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка при помещении файла в хранилище: %1'"), Файл.ПолноеИмя); + КонецЕсли; + + Если ПомещенныеФайлы.Количество() = 1 Тогда + АдресВременногоХранилищаФайла = ПомещенныеФайлы[0].Хранение; + КонецЕсли; + + ПараметрыСоздания.АдресВременногоХранилищаФайла = АдресВременногоХранилищаФайла; + ПараметрыСоздания.Расширение = ФайловыеФункцииКлиентСервер.РасширениеБезТочки(Файл.Расширение); + ПараметрыСоздания.ВремяИзменения = Файл.ПолучитьВремяИзменения(); + ПараметрыСоздания.ВремяИзмененияУниверсальное = Файл.ПолучитьУниверсальноеВремяИзменения(); + ПараметрыСоздания.Имя = Файл.ИмяБезРасширения; + ПараметрыСоздания.Размер = Файл.Размер(); + ПараметрыСоздания.ВебКлиент = Ложь; + + Текст = ""; + Если НужноИзвлечьТекст Тогда + Текст = ФайловыеФункцииКлиентСервер.ИзвлечьТекст(Файл.ПолноеИмя); + КонецЕсли; + ПараметрыСоздания.Текст = Текст; + + ИдентификаторСозданногоФайла = СоздатьИзФайлаНаДискеСервер(ПараметрыСоздания); + + Состояние(); + + Возврат ИдентификаторСозданногоФайла; + +КонецФункции + +&НаСервере +// Возвращает ИдентификаторКорневойПапкиФайлов1СДокументооборот +Функция ПолучитьИдентификаторКорневойПапкиФайлов1СДокументооборот() + УстановитьПривилегированныйРежим(Истина); + ИдентификаторКорневойПапкиФайлов1СДокументооборот = Константы.ИдентификаторКорневойПапкиФайлов1СДокументооборот.Получить(); + Возврат ИдентификаторКорневойПапкиФайлов1СДокументооборот; +КонецФункции + +&НаСервере +// создает в файл в 1С:Документооборот. возвращает UUID созданного файла +Функция СоздатьИзФайлаНаДискеСервер(ПараметрыСоздания) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMAddLinkedFileRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + Запрос.rootFolderID = ПолучитьИдентификаторКорневойПапкиФайлов1СДокументооборот(); + + ФайлТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMFile"); + Запрос.file = Прокси.ФабрикаXDTO.Создать(ФайлТип); + + ОбъектТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "ExternalObject"); + Запрос.file.externalObject = Прокси.ФабрикаXDTO.Создать(ОбъектТип); + Запрос.file.externalObject.name = Строка(ОбъектСсылка); + Запрос.file.externalObject.id = Строка(ОбъектСсылка.УникальныйИдентификатор()); + Запрос.file.externalObject.type = Строка(ТипЗнч(ОбъектСсылка)); + + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + Запрос.file.objectId = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + + Запрос.file.objectId.id = ""; // пусто - пока не создан + Запрос.file.objectId.type = "DMFile"; + + Запрос.file.binaryData = ПолучитьИзВременногоХранилища(ПараметрыСоздания.АдресВременногоХранилищаФайла); + Запрос.file.extension = ПараметрыСоздания.Расширение; + Запрос.file.modificationDate = ПараметрыСоздания.ВремяИзменения; + Запрос.file.modificationDateUniversal = ПараметрыСоздания.ВремяИзмененияУниверсальное; + Запрос.file.name = ПараметрыСоздания.Имя; + Запрос.file.size = ПараметрыСоздания.Размер; + + Размер = Запрос.File.BinaryData.Размер(); + МаксРазмерФайла = РаботаС1СДокументооборотВызовСервера.ПолучитьМаксимальныйРазмерПередаваемогоФайла(); + РазмерВМб = Размер / (1024 * 1024); + РазмерВМбМакс = МаксРазмерФайла / (1024 * 1024); + + Если Размер > МаксРазмерФайла Тогда + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Размер файла ""%1"" (%2 Мб) превышает максимально допустимый размер файла для передачи (%3 Мб).'"), + ПараметрыСоздания.Имя, + ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0")), + ?(РазмерВМбМакс >= 1, Формат(РазмерВМбМакс, "ЧДЦ=0"), Формат(РазмерВМбМакс, "ЧДЦ=1; ЧН=0"))); + КонецЕсли; + + Если НЕ ПустаяСтрока(ПараметрыСоздания.Текст) Тогда + Запрос.file.text = ПараметрыСоздания.Текст; + КонецЕсли; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + + Возврат Ответ.file.objectId.id; + +КонецФункции + +&НаКлиенте +Процедура ВыбратьСуществующийФайлВ1СДокументооборот() + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборФайла"); + + Если ТипЗнч(Результат) = Тип("Строка") Тогда + + ДобавитьСсылкуНаСуществующийФайл(Результат); + + // обновить список + ОбновитьСписокФайловКлиент(Результат); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +// создает в файл в 1С:Документооборот. возвращает UUID созданного файла +Функция ДобавитьСсылкуНаСуществующийФайл(ИдентификаторФайлаВДокументооборот) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMAddObjectLinkRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "ExternalObject"); + Запрос.ownerObject = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + Запрос.ownerObject.id = Строка(ОбъектСсылка.УникальныйИдентификатор()); + Запрос.ownerObject.type = Строка(ТипЗнч(ОбъектСсылка)); + Запрос.ownerObject.name = ""; + + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + Запрос.linkedObject = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + Запрос.linkedObject.id = ИдентификаторФайлаВДокументооборот; + Запрос.linkedObject.type = "DMFile"; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + +КонецФункции + +&НаКлиенте +Процедура СписокФайловПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + СтандартнаяОбработка = Ложь; +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + СтандартнаяОбработка = Ложь; + + МассивИменФайлов = Новый Массив; + + Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Файл") И ПараметрыПеретаскивания.Значение.ЭтоФайл() = Истина Тогда + МассивИменФайлов.Добавить(ПараметрыПеретаскивания.Значение.ПолноеИмя); + ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Массив") Тогда + + Если ПараметрыПеретаскивания.Значение.Количество() >= 1 И ТипЗнч(ПараметрыПеретаскивания.Значение[0]) = Тип("Файл") Тогда + Для Каждого ФайлПринятый Из ПараметрыПеретаскивания.Значение Цикл + Если ФайлПринятый.ЭтоФайл() Тогда + МассивИменФайлов.Добавить(ФайлПринятый.ПолноеИмя); + КонецЕсли; + КонецЦикла; + КонецЕсли; + + КонецЕсли; + + ИдентификаторСозданногоФайла = Неопределено; + Для Каждого ИмяФайла Из МассивИменФайлов Цикл + ИдентификаторСозданногоФайла = СоздатьИзФайлаНаДискеКлиент(ИмяФайла); + КонецЦикла; + + // обновить список + ОбновитьСписокФайловКлиент(); + + Если МассивИменФайлов.Количество() = 1 И ИдентификаторСозданногоФайла <> Неопределено Тогда + // открыть карточку файла + ПараметрыФормы = Новый Структура("УникальныйИдентификатор", ИдентификаторСозданногоФайла); + ОткрытьФорму("ОбщаяФорма.ДокументооборотКарточкаФайла", ПараметрыФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьКак(Команда) + + Если Элементы.СписокФайлов.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = Элементы.СписокФайлов.ТекущиеДанные.УникальныйИдентификатор; + Расширение = Элементы.СписокФайлов.ТекущиеДанные.Расширение; + Имя = Элементы.СписокФайлов.ТекущиеДанные.Наименование; + Размер = Элементы.СписокФайлов.ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = Элементы.СписокФайлов.ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.СохранитьКак(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловПередНачаломИзменения(Элемент, Отказ) + Отказ = Истина; + ОткрытьКарточкуВыполнить(); +КонецПроцедуры + +&НаСервере +Процедура ПометитьНаУдаление(Знач ВыделенныеСтроки) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMDeleteRequest"); + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + Для Каждого НомерСтроки Из ВыделенныеСтроки Цикл + + Данные = СписокФайлов.НайтиПоИдентификатору(НомерСтроки); + + Объект = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + Объект.id = Данные.УникальныйИдентификатор; + Объект.type = "DMFile"; + + Запрос.objectIds.Добавить(Объект); + + КонецЦикла; + + Ответ = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Ответ); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловПередУдалением(Элемент, Отказ) + Отказ = Истина; + + Если Элементы.СписокФайлов.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + СтрокаВопроса = ""; + + Если Элементы.СписокФайлов.ВыделенныеСтроки.Количество() = 1 Тогда + СтрокаВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Пометить ""%1"" на удаление?'"), Элементы.СписокФайлов.ТекущиеДанные.Наименование); + Иначе + СтрокаВопроса = НСтр("ru='Пометить выделенные элементы на удаление?'"); + КонецЕсли; + + Если Вопрос(СтрокаВопроса, РежимДиалогаВопрос.ДаНет) <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + ПометитьНаУдаление(Элементы.СписокФайлов.ВыделенныеСтроки); + // обновить список + ОбновитьСписокФайловКлиент(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьИзФайлаНаДиске(Команда) + + Если Элементы.СписокФайлов.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = Элементы.СписокФайлов.ТекущиеДанные.УникальныйИдентификатор; + Если РаботаС1СДокументооборотКлиент.ОбновитьИзФайлаНаДиске(ИдентификаторФайла, УникальныйИдентификатор) Тогда + ОбновитьСписокФайловКлиент(); + КонецЕсли; + +КонецПроцедуры + + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "ФайлДокументооборотИзменен" Тогда + ОбновитьСписокФайловКлиент(); + КонецЕсли; + +КонецПроцедуры + + +&НаКлиенте +Процедура Подписать(Команда) + + Если Элементы.СписокФайлов.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = Элементы.СписокФайлов.ТекущиеДанные.УникальныйИдентификатор; + ИмяФайла = Элементы.СписокФайлов.ТекущиеДанные.Наименование; + Описание = Элементы.СписокФайлов.ТекущиеДанные.Описание; + Редактируется = Элементы.СписокФайлов.ТекущиеДанные.Редактируется; + Зашифрован = Элементы.СписокФайлов.ТекущиеДанные.Зашифрован; + + МассивСуществующихПодписейФайла = РаботаС1СДокументооборотКлиент.ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла, Элементы.СписокФайлов.ТекущиеДанные.ТаблицаПодписей); + + РаботаС1СДокументооборотКлиент.ПодписатьФайл(ИдентификаторФайла, ИмяФайла, Редактируется, Зашифрован, + Описание, МассивСуществующихПодписейФайла); + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьЭЦПИзФайла(Команда) + + Если Элементы.СписокФайлов.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = Элементы.СписокФайлов.ТекущиеДанные.УникальныйИдентификатор; + ИмяФайла = Элементы.СписокФайлов.ТекущиеДанные.Наименование; + Описание = Элементы.СписокФайлов.ТекущиеДанные.Описание; + + МассивСуществующихПодписейФайла = РаботаС1СДокументооборотКлиент.ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла, Элементы.СписокФайлов.ТекущиеДанные.ТаблицаПодписей); + + РаботаС1СДокументооборотКлиент.ДобавитьЭЦПИзФайла(ИдентификаторФайла, ИмяФайла, УникальныйИдентификатор, + Описание, МассивСуществующихПодписейФайла); + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьВместеСЭЦП(Команда) + + Если Элементы.СписокФайлов.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторФайла = Элементы.СписокФайлов.ТекущиеДанные.УникальныйИдентификатор; + Расширение = Элементы.СписокФайлов.ТекущиеДанные.Расширение; + Имя = Элементы.СписокФайлов.ТекущиеДанные.Наименование; + Размер = Элементы.СписокФайлов.ТекущиеДанные.Размер * 1024; // преобразуем из КБ в байты + ДатаМодификацииУниверсальная = Элементы.СписокФайлов.ТекущиеДанные.ДатаМодификацииУниверсальная; + + РаботаС1СДокументооборотКлиент.СохранитьВместеСЭЦП(ИдентификаторФайла, Расширение, Имя, + Размер, ДатаМодификацииУниверсальная, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура Обновить(Команда) + ОбновитьСписокФайловКлиент(); +КонецПроцедуры + +&НаКлиенте +Процедура СписокФайловПриАктивизацииСтроки(Элемент) + ОбновитьДоступностьКомандСпискаФайлов(); +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьДоступностьКомандСпискаФайлов() + УстановитьДоступностьКомманд(Элементы.СписокФайлов.ТекущиеДанные); +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомманды(Команда, Доступность) + Команда.Доступность = Доступность; +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомманд(ТекущиеДанные) + + Если ТекущиеДанные = Неопределено Тогда + + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюОткрытьФайл, Ложь); + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюСохранитьКак, Ложь); + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюОбновитьИзФайлаНаДиске, Ложь); + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюПодписать, Ложь); + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюДобавитьЭЦПИзФайла, Ложь); + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюСохранитьВместеСЭЦП, Ложь); + + УстановитьДоступностьКомманды(Элементы.СписокФайловОткрытьФайл, Ложь); + УстановитьДоступностьКомманды(Элементы.СписокФайловСохранитьКак, Ложь); + УстановитьДоступностьКомманды(Элементы.СписокФайловОбновитьИзФайлаНаДиске, Ложь); + УстановитьДоступностьКомманды(Элементы.СписокФайловПодписать, Ложь); + УстановитьДоступностьКомманды(Элементы.СписокФайловДобавитьЭЦПИзФайла, Ложь); + УстановитьДоступностьКомманды(Элементы.СписокФайловСохранитьВместеСЭЦП, Ложь); + + Иначе + + Редактируется = ТекущиеДанные.Редактируется; + ПодписанЭЦП = ТекущиеДанные.ПодписанЭЦП; + Зашифрован = ТекущиеДанные.Зашифрован; + + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюОткрытьФайл, Истина); + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюСохранитьКак, Истина); + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюОбновитьИзФайлаНаДиске, Истина); + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюПодписать, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюДобавитьЭЦПИзФайла, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.СписокФайловКонтекстноеМенюСохранитьВместеСЭЦП, ПодписанЭЦП); + + УстановитьДоступностьКомманды(Элементы.СписокФайловОткрытьФайл, Истина); + УстановитьДоступностьКомманды(Элементы.СписокФайловСохранитьКак, Истина); + УстановитьДоступностьКомманды(Элементы.СписокФайловОбновитьИзФайлаНаДиске, Истина); + УстановитьДоступностьКомманды(Элементы.СписокФайловПодписать, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.СписокФайловДобавитьЭЦПИзФайла, НЕ Редактируется И НЕ Зашифрован); + УстановитьДоступностьКомманды(Элементы.СписокФайловСохранитьВместеСЭЦП, ПодписанЭЦП); + + КонецЕсли; + +КонецПроцедуры diff --git a/SSL/src/CommonForms/ДокументооборотФайлы/ДокументооборотФайлы.mdo b/SSL/src/CommonForms/ДокументооборотФайлы/ДокументооборотФайлы.mdo new file mode 100644 index 000000000..a4d0db778 --- /dev/null +++ b/SSL/src/CommonForms/ДокументооборотФайлы/ДокументооборотФайлы.mdo @@ -0,0 +1,15 @@ + + + ДокументооборотФайлы + + ru + Файлы 1С:Документооборот + + + + ru + + + PersonalComputer + MobileDevice + diff --git a/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Form.form b/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Form.form index 37d893f09..433154dbb 100644 --- a/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Form.form +++ b/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Form.form @@ -281,7 +281,7 @@ ПриСозданииНаСервере 80 - DontBlock + LockOwner true true Vertical diff --git a/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl b/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl index 1794c34c1..9fb089b8c 100644 --- a/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl +++ b/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl @@ -182,7 +182,6 @@ ////////////////////////////////////////////////////////// // ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ -//Обработчик выбора раздела на дереве &НаКлиенте Процедура ДеревоРазделовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) diff --git a/SSL/src/CommonForms/НастройкиЭЦП/Module.bsl b/SSL/src/CommonForms/НастройкиЭЦП/Module.bsl index bf295ae00..e836c0369 100644 --- a/SSL/src/CommonForms/НастройкиЭЦП/Module.bsl +++ b/SSL/src/CommonForms/НастройкиЭЦП/Module.bsl @@ -39,6 +39,8 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) + РасширениеПодключеноКрипто = ПодключитьРасширениеРаботыСКриптографией(); + ПровайдерЭЦП = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ПровайдерЭЦП; ПутьМодуляКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ПутьМодуляКриптографии; ТипПровайдераЭЦП = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ТипПровайдераЭЦП; diff --git a/SSL/src/CommonForms/ПодписьЭЦП/Form.form b/SSL/src/CommonForms/ПодписьЭЦП/Form.form new file mode 100644 index 000000000..ca3e3d307 --- /dev/null +++ b/SSL/src/CommonForms/ПодписьЭЦП/Form.form @@ -0,0 +1,457 @@ + + + + <key>ru</key> + <value>Подпись</value> + + + КомуВыдан + 2 + true + true + + true + + + КомуВыдан + + + КомуВыданРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + + КомуВыданКонтекстноеМеню + 3 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + УстановившийПодпись + 12 + true + true + + true + + + УстановившийПодпись + + + УстановившийПодписьРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + УстановившийПодписьКонтекстноеМеню + 13 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ДатаПодписи + 17 + true + true + + true + + + ДатаПодписи + + + ДатаПодписиРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + + ДатаПодписиКонтекстноеМеню + 18 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Комментарий + 14 + true + true + + true + + + Комментарий + + + КомментарийРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + + КомментарийКонтекстноеМеню + 15 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаЗакрыть + 1 + true + true + + true + + + ФормаЗакрытьРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + Form.StandardCommand.Close + true + true + true + UserCmds + Auto + + + ФормаСохранить + 10 + true + true + + true + + + ФормаСохранитьРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + Form.Command.Сохранить + Normal + Auto + true + true + UserCmds + Auto + + + ФормаОткрытьСертификат + 16 + true + true + + true + + + ФормаОткрытьСертификатРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + Form.Command.ОткрытьСертификат + Normal + Auto + true + true + UserCmds + Auto + + Right + true + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + UseIfNecessary + auto + true + + КомуВыдан + + <key>ru</key> + <value>Кому выдан сертификат</value> + + 1 + + String + + + + true + + + true + + + + Отпечаток + + <key>ru</key> + <value>Отпечаток</value> + + 5 + + String + + + + true + + + true + + + + АдресСертификата + + <key>ru</key> + <value>Адрес сертификата</value> + + 6 + + String + + + + true + + + true + + + + УстановившийПодпись + + <key>ru</key> + <value>Установивший подпись</value> + + 2 + + CatalogRef.Пользователи + + + true + + + true + + + + Комментарий + + <key>ru</key> + <value>Комментарий</value> + + 3 + + String + + + + true + + + true + + + + АдресПодписи + + <key>ru</key> + <value>Адрес подписи</value> + + 4 + + String + + + + true + + + true + + + + ДатаПодписи + + <key>ru</key> + <value>Дата подписи</value> + + 7 + + Date + + + + true + + + true + + + + Сохранить + + <key>ru</key> + <value>Сохранить</value> + + 1 + + ru + Сохранить + + + true + + + + Сохранить + + + Auto + Auto + + + ОткрытьСертификат + + <key>ru</key> + <value>Открыть сертификат</value> + + 2 + + ru + Открыть сертификат + + + true + + + + ОткрытьСертификат + + + Auto + Auto + + + СтруктураСертификата + + + + Отпечаток + + String + + + + + + + + diff --git a/SSL/src/CommonForms/ПодписьЭЦП/Help/ru.html b/SSL/src/CommonForms/ПодписьЭЦП/Help/ru.html new file mode 100644 index 000000000..5555ad047 --- /dev/null +++ b/SSL/src/CommonForms/ПодписьЭЦП/Help/ru.html @@ -0,0 +1,8 @@ + +

Форма предназначена для просмотра основных свойств электронной цифровой подписи (ЭЦП).

+

В ней можно посмотреть основные свойства подписи: кому выдан сертификат, кто установил подпись, дату установки подписи, комментарий к подписи.

+

По команде "Открыть сертификат" открывается форма просмотра сертификата.

+

 

+

См. также:

+
+

Настройка ЭЦП и шифрования
Персональные настройки ЭЦП

\ No newline at end of file diff --git a/SSL/src/CommonForms/ПодписьЭЦП/Module.bsl b/SSL/src/CommonForms/ПодписьЭЦП/Module.bsl new file mode 100644 index 000000000..b716a4368 --- /dev/null +++ b/SSL/src/CommonForms/ПодписьЭЦП/Module.bsl @@ -0,0 +1,29 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + СтруктураСертификата = Параметры.СтруктураСертификата; + Отпечаток = Параметры.Отпечаток; + + УстановившийПодпись = Параметры.УстановившийПодпись; + Комментарий = Параметры.Комментарий; + АдресПодписи = Параметры.АдресПодписи; + ДатаПодписи = Параметры.ДатаПодписи; + + Если Параметры.Свойство("АдресСертификата") Тогда + АдресСертификата = Параметры.АдресСертификата; + КонецЕсли; + + КомуВыдан = СтруктураСертификата.КомуВыдан; + +КонецПроцедуры + +&НаКлиенте +Процедура Сохранить(Команда) + ЭлектроннаяЦифроваяПодписьКлиент.СохранитьПодпись(АдресПодписи); +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьСертификат(Команда) + ЭлектроннаяЦифроваяПодписьКлиент.ОткрытьСертификатПоОтпечаткуИАдресу(Отпечаток, АдресСертификата); +КонецПроцедуры diff --git a/SSL/src/CommonForms/ПодписьЭЦП/ПодписьЭЦП.mdo b/SSL/src/CommonForms/ПодписьЭЦП/ПодписьЭЦП.mdo new file mode 100644 index 000000000..2bb3d0813 --- /dev/null +++ b/SSL/src/CommonForms/ПодписьЭЦП/ПодписьЭЦП.mdo @@ -0,0 +1,16 @@ + + + ПодписьЭЦП + + ru + Подпись ЭЦП + + + + ru + + + PersonalComputer + MobileDevice + true + diff --git a/SSL/src/CommonForms/ПодтверждениеПароляУчетнойЗаписи/Module.bsl b/SSL/src/CommonForms/ПодтверждениеПароляУчетнойЗаписи/Module.bsl index 08f6d7b73..1d30665cd 100644 --- a/SSL/src/CommonForms/ПодтверждениеПароляУчетнойЗаписи/Module.bsl +++ b/SSL/src/CommonForms/ПодтверждениеПароляУчетнойЗаписи/Module.bsl @@ -25,8 +25,6 @@ // СЕКЦИЯ ОБРАБОТЧИКОВ СОБЫТИЙ ФОРМЫ И ЭЛЕМЕНТОВ ФОРМЫ // -// Обработчик события "при создании на сервере" формы -// &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) diff --git a/SSL/src/CommonForms/РедактированиеНовогоПисьма/Module.bsl b/SSL/src/CommonForms/РедактированиеНовогоПисьма/Module.bsl index fff3ca7dd..5836e67da 100644 --- a/SSL/src/CommonForms/РедактированиеНовогоПисьма/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеНовогоПисьма/Module.bsl @@ -401,8 +401,6 @@ КонецПроцедуры -// Обработчик события "перед началом добавления" поля Вложения -// &НаКлиенте Процедура ВложенияПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl index a7ef68038..2870d84f6 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl @@ -100,50 +100,37 @@ // Параметры // Форма - УправляемаяФорма - форма выполнения задачи. // ВыполнитьЗадачу - Булево - задача записывается в режиме выполнения. +// ПараметрыОповещения - Структура - дополнительные параметры оповещения. // // Возвращаемое значение: // Булево - Истина, если запись прошла успешно. // -Функция ЗаписатьИЗакрытьВыполнить(Форма, ВыполнитьЗадачу = Ложь) Экспорт +Функция ЗаписатьИЗакрытьВыполнить(Форма, ВыполнитьЗадачу = Ложь, ПараметрыОповещения = Неопределено) Экспорт ОчиститьСообщения(); НовыйОбъект = Форма.Объект.Ссылка.Пустая(); + ТекстОповещения = ""; + Если ПараметрыОповещения = Неопределено Тогда + ПараметрыОповещения = Новый Структура; + КонецЕсли; Если НЕ Форма.НачальныйПризнакВыполнения И ВыполнитьЗадачу Тогда - Если НЕ Форма.Записать(Новый Структура("ВыполнитьЗадачу", Истина)) Тогда Возврат Ложь; КонецЕсли; - - ПоказатьОповещениеПользователя( - НСтр("ru = 'Задача выполнена'"), - ПолучитьНавигационнуюСсылку(Форма.Объект.Ссылка), - Строка(Форма.Объект.Ссылка), - БиблиотекаКартинок.Информация32); - Оповестить("ЗадачаВыполнена", Форма.Объект.Ссылка); - + ТекстОповещения = НСтр("ru = 'Задача выполнена'"); Иначе Если НЕ Форма.Записать() Тогда Возврат Ложь; КонецЕсли; - - Если НовыйОбъект Тогда - ПоказатьОповещениеПользователя( - НСтр("ru = 'Задача создана'"), - ПолучитьНавигационнуюСсылку(Форма.Объект.Ссылка), - Строка(Форма.Объект.Ссылка), - БиблиотекаКартинок.Информация32); - Оповестить("ЗадачаИзменена", Форма.Объект.Ссылка); - Иначе - ПоказатьОповещениеПользователя( - НСтр("ru = 'Задача изменена'"), - ПолучитьНавигационнуюСсылку(Форма.Объект.Ссылка), - Строка(Форма.Объект.Ссылка), - БиблиотекаКартинок.Информация32); - Оповестить("ЗадачаИзменена", Форма.Объект.Ссылка); - КонецЕсли; + ТекстОповещения = ?(НовыйОбъект, НСтр("ru = 'Задача создана'"), НСтр("ru = 'Задача изменена'")); КонецЕсли; + Оповестить("Запись_ЗадачаИсполнителя", ПараметрыОповещения, Форма.Объект.Ссылка); + ПоказатьОповещениеПользователя(ТекстОповещения, + ПолучитьНавигационнуюСсылку(Форма.Объект.Ссылка), + Строка(Форма.Объект.Ссылка), + БиблиотекаКартинок.Информация32); Форма.Закрыть(); Возврат Истина; @@ -255,3 +242,20 @@ ?(БизнесПроцессСсылка <> Неопределено, ПолучитьНавигационнуюСсылку(БизнесПроцессСсылка), ""), ?(БизнесПроцессСсылка <> Неопределено, Строка(БизнесПроцессСсылка), "")); КонецПроцедуры + +// Открывает форму выбора исполнителя +Процедура ВыбратьИсполнителя( + ЭлементИсполнитель, + РеквизитИсполнитель, + ТолькоПростыеРоли, + БезВнешнихРолей) Экспорт + + Если БизнесПроцессыИЗадачиКлиентПереопределяемый.ВыбратьИсполнителя(ЭлементИсполнитель, РеквизитИсполнитель, ТолькоПростыеРоли, БезВнешнихРолей) Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура("Исполнитель, ТолькоПростыеРоли, БезВнешнихРолей", РеквизитИсполнитель, ТолькоПростыеРоли, БезВнешнихРолей); + ОткрытьФорму("ОбщаяФорма.ВыборИсполнителяБизнесПроцесса", ПараметрыФормы, ЭлементИсполнитель); + +КонецПроцедуры + diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/Module.bsl new file mode 100644 index 000000000..f63ee8abb --- /dev/null +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/Module.bsl @@ -0,0 +1,6 @@ +// Открывает форму выбора исполнителя +Функция ВыбратьИсполнителя(ЭлементИсполнитель, РеквизитИсполнитель, ТолькоПростыеРоли, БезВнешнихРолей) Экспорт + + Возврат Ложь; + +КонецФункции diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/БизнесПроцессыИЗадачиКлиентПереопределяемый.mdo b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/БизнесПроцессыИЗадачиКлиентПереопределяемый.mdo new file mode 100644 index 000000000..8d4a9c8ad --- /dev/null +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/БизнесПроцессыИЗадачиКлиентПереопределяемый.mdo @@ -0,0 +1,10 @@ + + + БизнесПроцессыИЗадачиКлиентПереопределяемый + + ru + Бизнес процессы и задачи клиент переопределяемый + + true + true + diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl index deeff63a2..d5026af29 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl @@ -45,4 +45,11 @@ Возврат Ложь; -КонецФункции \ No newline at end of file +КонецФункции + +// Возвращает Истина, если используется подсистема ВнешниеЗадачиИБизнесПроцессы +Функция ИспользоватьВнешниеЗадачиИБизнесПроцессы() Экспорт + + Возврат Истина; + +КонецФункции diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl index 262c42d4f..32653a9c2 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl @@ -733,3 +733,37 @@ Задачи = НовыйМассивЗадач; КонецПроцедуры + +// Формирует список подбора для указания исполнителя в полях +// ввода составного типа (Пользователь и Роль) +Функция СформироватьДанныеВыбораИсполнителя(Текст) Экспорт + + ДанныеВыбора = Новый СписокЗначений; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | Пользователи.Ссылка КАК Ссылка + |ИЗ + | Справочник.Пользователи КАК Пользователи + |ГДЕ + | Пользователи.Наименование ПОДОБНО &Текст + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | РолиИсполнителей.Ссылка + |ИЗ + | Справочник.РолиИсполнителей КАК РолиИсполнителей + |ГДЕ + | РолиИсполнителей.Наименование ПОДОБНО &Текст"; + Запрос.УстановитьПараметр("Текст", Текст + "%"); + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + ДанныеВыбора.Добавить(Выборка.Ссылка); + КонецЦикла; + + Возврат ДанныеВыбора; + +КонецФункции diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСобытия/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСобытия/Module.bsl index f3a27e430..a23e79f4f 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСобытия/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСобытия/Module.bsl @@ -22,6 +22,10 @@ Возврат; КонецЕсли; + Если Источник.ЭтоНовый() Тогда + Возврат; + КонецЕсли; + БизнесПроцессыИЗадачиВызовСервера.УстановитьПометкуУдаленияЗадач(Источник.Ссылка, Источник.ПометкаУдаления); КонецПроцедуры diff --git a/SSL/src/CommonModules/ВнешниеЗадачиВызовСервера/Module.bsl b/SSL/src/CommonModules/ВнешниеЗадачиВызовСервера/Module.bsl new file mode 100644 index 000000000..95affcfe6 --- /dev/null +++ b/SSL/src/CommonModules/ВнешниеЗадачиВызовСервера/Module.bsl @@ -0,0 +1,131 @@ +// Возвращает содержание переданного объекта +// Параметры +// Объект - объект, представление которого надо сформировать +// Возвращает содержание в виде HTML или MXL документа +Функция ПолучитьСодержание(Объект) Экспорт + + Если Объект = Неопределено Или Объект.Пустая() Тогда + Возврат ""; + КонецЕсли; + + Строка = ВнешниеЗадачиПереопределяемыйВызовСервера.ПолучитьСодержание(Объект); + Если Не ПустаяСтрока(Строка) Тогда + Возврат Строка; + КонецЕсли; + + Возврат ""; + +КонецФункции + +// Возвращает массив объектов типа ОписаниеПередаваемогоФайла +// или Неопределено +Функция ПолучитьСписокФайлов(Источник) Экспорт + + МассивФайлов = ВнешниеЗадачиПереопределяемыйВызовСервера.ПолучитьСписокФайлов(Источник); + Если МассивФайлов <> Неопределено Тогда + Возврат МассивФайлов; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +// Возвращает Истина, если задача является внешней +Функция ЭтоВнешняяЗадача(ЗадачаСсылка) Экспорт + + ВнешняяЗадача = ВнешниеЗадачиПереопределяемыйВызовСервера.ЭтоВнешняяЗадача(ЗадачаСсылка); + Если ВнешняяЗадача <> Неопределено Тогда + Возврат ВнешняяЗадача; + КонецЕсли; + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьИнтеграциюКонфигураций") Тогда + Возврат Ложь; + КонецЕсли; + + // Проверяем бизнес-процесс + БизнесПроцесс = ОбщегоНазначения.ПолучитьЗначениеРеквизита(ЗадачаСсылка, "БизнесПроцесс"); + Если ТипЗнч(БизнесПроцесс) = Тип("БизнесПроцессСсылка.Задание") Тогда + + ВнешнееЗадание = ОбщегоНазначения.ПолучитьЗначениеРеквизита(БизнесПроцесс, "ВнешнееЗадание"); + Если ВнешнееЗадание Тогда + Возврат Истина; + КонецЕсли; + + КонецЕсли; + + // Проверяем роль исполнителя + Роль = ОбщегоНазначения.ПолучитьЗначениеРеквизита(ЗадачаСсылка, "РольИсполнителя"); + + Если Роль <> Неопределено И Роль.ВнешняяРоль = Истина Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +// Создает и стартует внешний бизнес-процесс Задание +// при записи задачи другого бизнес-процесса, если эта задача +// является внешней +Процедура СтартВнешнегоЗаданияПриЗаписиЗадач(Источник, Отказ) Экспорт + + Если ТипЗнч(Источник.БизнесПроцесс) = Тип("БизнесПроцессСсылка.Задание") Тогда + Возврат; + КонецЕсли; + + Если Источник.ДополнительныеСвойства.Свойство("ЗаписьНовойЗадачи") Тогда + ВнешняяРоль = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Источник.РольИсполнителя, "ВнешняяРоль"); + Если Не Источник.РольИсполнителя.Пустая() И ВнешняяРоль = Истина Тогда + // Создаем и стартуем внешний бизнес-процесс + СтартоватьВнешнийБизнесПроцесс(Источник); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Процедура СтартоватьВнешнийБизнесПроцесс(Задача) + + Если ВнешниеЗадачиПереопределяемыйВызовСервера.СтартоватьВнешнийБизнесПроцесс(Задача) Тогда + Возврат; + КонецЕсли; + + // Создаем бизнес-процесс задание + Задание = БизнесПроцессы.Задание.СоздатьБизнесПроцесс(); + Задание.Дата = ТекущаяДата(); + Задание.Автор = Задача.Автор; + Задание.Важность = Задача.Важность; + Задание.Исполнитель = Задача.РольИсполнителя; + Задание.Наименование = Задача.Наименование; + Задание.Предмет = Задача.Предмет; + Задание.СрокИсполнения = Задача.СрокИсполнения; + Задание.ЗадачаИсточник = Задача.Ссылка; + + Задание.Записать(); + Задание.Старт(); + +КонецПроцедуры + +// Помечает задачу-источник как выполненную +Процедура ВыполнитьЗадачуИсточник(БизнесПроцесс) Экспорт + + Если ВнешниеЗадачиПереопределяемыйВызовСервера.ВыполнитьЗадачуИсточник(БизнесПроцесс) Тогда + Возврат; + КонецЕсли; + + Если ТипЗнч(БизнесПроцесс) = Тип("БизнесПроцессОбъект.Задание") Тогда + Задача = БизнесПроцесс.ЗадачаИсточник.ПолучитьОбъект(); + Задача.РезультатВыполнения = БизнесПроцесс.РезультатВыполнения; + Задача.ВыполнитьЗадачу(); + КонецЕсли; + +КонецПроцедуры + +// Сохраняет сведения о записи новой задачи для последующей обработки +// в обработчике перед записью +Процедура СтартВнешнегоЗаданияПередЗаписьюЗадач(Источник, Отказ) Экспорт + + Если Источник.ЭтоНовый() Тогда + Источник.ДополнительныеСвойства.Вставить("ЗаписьНовойЗадачи"); + КонецЕсли; + +КонецПроцедуры diff --git a/SSL/src/CommonModules/ВнешниеЗадачиВызовСервера/ВнешниеЗадачиВызовСервера.mdo b/SSL/src/CommonModules/ВнешниеЗадачиВызовСервера/ВнешниеЗадачиВызовСервера.mdo new file mode 100644 index 000000000..66e3ad655 --- /dev/null +++ b/SSL/src/CommonModules/ВнешниеЗадачиВызовСервера/ВнешниеЗадачиВызовСервера.mdo @@ -0,0 +1,11 @@ + + + ВнешниеЗадачиВызовСервера + + ru + Внешние задачи вызов сервера + + true + true + true + diff --git a/SSL/src/CommonModules/ВнешниеЗадачиПереопределяемыйВызовСервера/Module.bsl b/SSL/src/CommonModules/ВнешниеЗадачиПереопределяемыйВызовСервера/Module.bsl new file mode 100644 index 000000000..03200368d --- /dev/null +++ b/SSL/src/CommonModules/ВнешниеЗадачиПереопределяемыйВызовСервера/Module.bsl @@ -0,0 +1,55 @@ +// Возвращает массив ссылок на файлы +// или Неопределено +Функция ПолучитьСписокФайлов(Объект) Экспорт + + // РаботаСФайлами + Возврат РаботаСФайламиВызовСервера.ПолучитьПрикрепленныеФайлыКОбъекту(Объект); + // Конец РаботаСФайлами + + // ПрисоединенныеФайлы + Возврат ПрисоединенныеФайлы.ПолучитьПрикрепленныеФайлыКОбъекту(Объект); + // Конец ПрисоединенныеФайлы + + Возврат Неопределено; + +КонецФункции + +// Возвращает содержание переданного объекта +// Параметры +// Объект - объект, представление которого надо сформировать +// Возвращает содержание в виде HTML или MXL документа +Функция ПолучитьСодержание(Объект) Экспорт + + + + Возврат ""; + +КонецФункции + +// Создает и стартует внешний бизнес-процесс по указанной задаче +Функция СтартоватьВнешнийБизнесПроцесс(Задача) Экспорт + + // Следует переопределить эту функцию, если в качестве внешнего + // нужно использовать не бизнес-процесс "Задание", а другой. + + Возврат Ложь; + +КонецФункции + +// Помечает задачу-источник указанного бизнес-процесса как выполненную +Функция ВыполнитьЗадачуИсточник(БизнесПроцесс) Экспорт + + Возврат Ложь; + +КонецФункции + +// Проверяет является ли задача внешней +// Если проверка выполнена, то возвращает Истина или Ложь +// Иначе возвращает Неопределено +Функция ЭтоВнешняяЗадача(ЗадачаСсылка) Экспорт + + Возврат Неопределено; + +КонецФункции + + diff --git a/SSL/src/CommonModules/ВнешниеЗадачиПереопределяемыйВызовСервера/ВнешниеЗадачиПереопределяемыйВызовСервера.mdo b/SSL/src/CommonModules/ВнешниеЗадачиПереопределяемыйВызовСервера/ВнешниеЗадачиПереопределяемыйВызовСервера.mdo new file mode 100644 index 000000000..abce073fe --- /dev/null +++ b/SSL/src/CommonModules/ВнешниеЗадачиПереопределяемыйВызовСервера/ВнешниеЗадачиПереопределяемыйВызовСервера.mdo @@ -0,0 +1,11 @@ + + + ВнешниеЗадачиПереопределяемыйВызовСервера + + ru + Внешние задачи переопределяемый вызов сервера + + true + true + true + diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl index 3935b4e0b..a5607063d 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl @@ -4,18 +4,17 @@ // Обработчик команд обращения к дополнительным отчетам и обработкам. // Открывает форму с доступными командами и передает ей объекты назначения // и вид обработок. -// Параметры -// ПараметрКоманды - Массив - объекты информационной базы, для которых была вызвана команда -// ПараметрыВыполненияКоманды - ДанныеФормыСтруктура -параметры выполнения команды -// Вид - строка - строковое представление вида обработки -// ИмяРаздела - строка - имя раздела для фильтрации обработок, +// +// Параметры: +// ПараметрКоманды - Массив - объекты информационной базы, для которых была вызвана команда +// ПараметрыВыполненияКоманды - ДанныеФормыСтруктура -параметры выполнения команды +// Вид - строка - строковое представление вида обработки +// ИмяРаздела - строка - имя раздела для фильтрации обработок, // указывается только для глобальных обработок // -Функция ОткрытьФормуКомандДополнительныхОтчетовИОбработок(ПараметрКоманды, - ПараметрыВыполненияКоманды, - Вид, - ИмяРаздела = "") Экспорт - +Процедура ОткрытьФормуКомандДополнительныхОтчетовИОбработок(ПараметрКоманды, + ПараметрыВыполненияКоманды, Вид, ИмяРаздела = "") Экспорт + ПараметрКомандыСписок = Новый СписокЗначений; Если ТипЗнч(ПараметрКоманды) = Тип("Массив") Тогда // назначаемая обработка @@ -23,19 +22,16 @@ КонецЕсли; Параметры = Новый Структура("ОбъектыНазначения,Вид,ИмяРаздела", - ПараметрКомандыСписок, - Вид, - ИмяРаздела); + ПараметрКомандыСписок, Вид, ИмяРаздела); Если ТипЗнч(ПараметрКоманды) = Тип("Массив") Тогда // назначаемая обработка Параметры.Вставить("ИмяФормы", ПараметрыВыполненияКоманды.Источник.ИмяФормы); КонецЕсли; - ОткрытьФормуМодально("ОбщаяФорма.ДополнительныеОтчетыИОбработки", - Параметры, - ПараметрыВыполненияКоманды.Источник); + ОткрытьФорму("ОбщаяФорма.ДополнительныеОтчетыИОбработки", Параметры, + ПараметрыВыполненияКоманды.Источник); -КонецФункции +КонецПроцедуры // Используется для управления вызовами внешних отчетов и обработок. // В зависимости от варианта запуска обработки либо открывает форму обработки, @@ -43,55 +39,35 @@ // для последующего вызова обработки на сервере. Так же отвечает за // отображения оповещения и оповещения об измененных объектах. // -// Параметры -// ВнешняяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки -// ВидОбработки - Строка - строковое представление вида обработки -// ИдентификаторКоманды - Строка - идентификатор команды -// БезопасныйРежим - Булево - требуется ли использовать обработку в безопасном режиме -// ВариантЗапуска - ПеречислениеСсылка.СпособыВызоваДополнительныхОбработок - вариант запуска обработки -// ПоказыватьОповещение - Булево - требуется ли показывать оповещение о начале и окончании -// выполнения обработки. Не используется если ВариантЗапуска задан как ОткрытиеФормы -// Модификатор - Строка - модификатор команды, используется для печатных форм на основе макетов табличных документов -// ОбъектыНазначенияМассив - Массив - ссылки на объекты информационной базы +// Параметры: +// ВнешняяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки +// ВидОбработки - Строка - строковое представление вида обработки +// ИдентификаторКоманды - Строка - идентификатор команды +// БезопасныйРежим - Булево - требуется ли использовать обработку в безопасном режиме +// ВариантЗапуска - ПеречислениеСсылка.СпособыВызоваДополнительныхОбработок - вариант запуска обработки +// ПоказыватьОповещение - Булево - требуется ли показывать оповещение о начале и окончании +// выполнения обработки. Не используется если ВариантЗапуска задан как ОткрытиеФормы +// Модификатор - Строка - модификатор команды, используется для печатных форм на основе макетов табличных документов +// ОбъектыНазначенияМассив - Массив - ссылки на объекты информационной базы // Процедура ВыполнитьОбработку(ВнешняяОбработка, - ВидОбработки, - ИдентификаторКоманды, - БезопасныйРежим, - ВариантЗапуска, - ПоказыватьОповещение, - Модификатор, - ОбъектыНазначенияМассив) Экспорт + ВидОбработки, ИдентификаторКоманды, БезопасныйРежим, ВариантЗапуска, ПоказыватьОповещение, + Модификатор, ОбъектыНазначенияМассив) Экспорт Если ВариантЗапуска = ВариантЗапускаОткрытиеФормы() Тогда - ВыполнитьОткрытиеФормыОбработки( - ВнешняяОбработка, - ВидОбработки, - ИдентификаторКоманды, - БезопасныйРежим, - ОбъектыНазначенияМассив); + ВыполнитьОткрытиеФормыОбработки(ВнешняяОбработка, ВидОбработки, ИдентификаторКоманды, + БезопасныйРежим, ОбъектыНазначенияМассив); ИначеЕсли ВариантЗапуска = ВариантЗапускаВызовКлиентскогоМетода() Тогда - ВыполнитьКлиентскийМетодОбработки( - ВнешняяОбработка, - ВидОбработки, - ИдентификаторКоманды, - БезопасныйРежим, - ПоказыватьОповещение, - ОбъектыНазначенияМассив); + ВыполнитьКлиентскийМетодОбработки(ВнешняяОбработка, ВидОбработки, ИдентификаторКоманды, + БезопасныйРежим, ПоказыватьОповещение, ОбъектыНазначенияМассив); ИначеЕсли ВариантЗапуска = ВариантЗапускаВызовСерверногоМетода() Тогда - ВыполнитьСерверныйМетодОбработки( - ВнешняяОбработка, - ВидОбработки, - ИдентификаторКоманды, - БезопасныйРежим, - ПоказыватьОповещение, - Модификатор, - ОбъектыНазначенияМассив); + ВыполнитьСерверныйМетодОбработки(ВнешняяОбработка, ВидОбработки, ИдентификаторКоманды, + БезопасныйРежим, ПоказыватьОповещение, Модификатор, ОбъектыНазначенияМассив); КонецЕсли; diff --git a/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСервер/Module.bsl b/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСервер/Module.bsl new file mode 100644 index 000000000..4a4614553 --- /dev/null +++ b/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСервер/Module.bsl @@ -0,0 +1,172 @@ +//////////////////////////////////////////////////////////////////////////////// +// ЭКСПОРТНЫЕ ВНЕШНИЕ ПРОЦЕДУРЫ И ФУНКЦИИ + +// получает узел из регистра сведений УзлыРолиИсполнителей (если он там есть) +Функция ПолучитьУзелИзРегистраИсточникиВнешнихЗадач(ОбъектСсылка) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + // Подготовить структуру отбора по измерениям + СтруктураОтбора = Новый Структура; + СтруктураОтбора.Вставить("Объект", ОбъектСсылка); + + // Получить структуру с данными ресурсов записи + СтруктураРесурсов = РегистрыСведений.ИсточникиВнешнихЗадач.Получить(СтруктураОтбора); + + Возврат СтруктураРесурсов.УзелИсточник; + +КонецФункции + +// записывает запись в регистр сведений ИсточникиВнешнихЗадач +Процедура ЗаписатьУзелВРегистрИсточникиВнешнихЗадач(ОбъектСсылка, УзелОбмена) Экспорт + + // Записать в регистр + НаборЗаписей = РегистрыСведений.ИсточникиВнешнихЗадач.СоздатьНаборЗаписей(); + + НаборЗаписей.Отбор.Объект.Установить(ОбъектСсылка); + + НоваяЗапись = НаборЗаписей.Добавить(); + НоваяЗапись.Объект = ОбъектСсылка; + НоваяЗапись.УзелИсточник = УзелОбмена; + + УстановитьПривилегированныйРежим(Истина); + НаборЗаписей.Записать(); + +КонецПроцедуры + +// очищает все записи с данным узлом +Процедура ОчиститьРегистрИсточникиВнешнихЗадач(УзелИсточник) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + СписокУдалить = Новый Массив; + ТекущийПользователь = ОбщегоНазначения.ТекущийПользователь(); + + // для каждой нашей записи находим запись в регистре сведений - оттуда берем поле Версия и Редактирует + ЗапросВРегистр = Новый Запрос; + ЗапросВРегистр.УстановитьПараметр("УзелИсточник", УзелИсточник); + ЗапросВРегистр.Текст = "ВЫБРАТЬ + | ИсточникиВнешнихЗадач.Объект КАК Объект + |ИЗ + | РегистрСведений.ИсточникиВнешнихЗадач КАК ИсточникиВнешнихЗадач + |ГДЕ + | ИсточникиВнешнихЗадач.УзелИсточник = &УзелИсточник"; + + РезультатЗапроса = ЗапросВРегистр.Выполнить(); + + Если НЕ РезультатЗапроса.Пустой() Тогда + + Выборка = РезультатЗапроса.Выбрать(); + Пока Выборка.Следующий() Цикл + СписокУдалить.Добавить(Выборка.Объект); + КонецЦикла; + КонецЕсли; + + Для Каждого Объект из СписокУдалить Цикл + // Создать набор записей + НаборЗаписей = РегистрыСведений.ИсточникиВнешнихЗадач.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.Объект.Установить(Объект); + НаборЗаписей.Записать(); + КонецЦикла; + +КонецПроцедуры + +// Вернет Истина, если ВерсияФайла принадлежит внешней роли +Функция ВерсияФайлаПринадлежитВнешнейРоли(Владелец) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Ссылка", Владелец); + Запрос.Текст = "ВЫБРАТЬ + | ЕСТЬNULL(ВЫРАЗИТЬ(ВЫРАЗИТЬ(Файлы.ВладелецФайла КАК БизнесПроцесс.Задание).Исполнитель КАК Справочник.РолиИсполнителей).ВнешняяРоль, ЛОЖЬ) КАК ВнешняяРоль + |ИЗ + | Справочник.Файлы КАК Файлы + |ГДЕ + | Файлы.Ссылка = &Ссылка"; + + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Возврат Выборка.ВнешняяРоль; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +// Вернет УзелОбмена роли, если ВерсияФайла принадлежит внешней роли +Функция ПолучитьУзелОбменаДляВерсииФайла(Владелец) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Ссылка", Владелец); + Запрос.Текст = "ВЫБРАТЬ + | ЕСТЬNULL(ВЫРАЗИТЬ(ВЫРАЗИТЬ(Файлы.ВладелецФайла КАК БизнесПроцесс.Задание).Исполнитель КАК Справочник.РолиИсполнителей).УзелОбмена, НЕОПРЕДЕЛЕНО) КАК УзелОбмена + |ИЗ + | Справочник.Файлы КАК Файлы + |ГДЕ + | Файлы.Ссылка = &Ссылка"; + + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Возврат Выборка.УзелОбмена; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +// Вернет Истина, если Файл принадлежит внешней роли +Функция ФайлПринадлежитВнешнейРоли(ВладелецФайла) Экспорт + + Если ТипЗнч(ВладелецФайла) <> Тип("БизнесПроцессСсылка.Задание") Тогда + Возврат Ложь; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Ссылка", ВладелецФайла); + Запрос.Текст = "ВЫБРАТЬ + | ЕСТЬNULL(ВЫРАЗИТЬ(Задание.Исполнитель КАК Справочник.РолиИсполнителей).ВнешняяРоль, ЛОЖЬ) КАК ВнешняяРоль + |ИЗ + | БизнесПроцесс.Задание КАК Задание + |ГДЕ + | Задание.Ссылка = &Ссылка"; + + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Возврат Выборка.ВнешняяРоль; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +// Вернет УзелОбмена роли, если Файл принадлежит внешней роли +Функция ПолучитьУзелОбменаДляФайла(ВладелецФайла) Экспорт + + Если ТипЗнч(ВладелецФайла) <> Тип("БизнесПроцессСсылка.Задание") Тогда + Возврат Неопределено; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Ссылка", ВладелецФайла); + Запрос.Текст = "ВЫБРАТЬ + | ЕСТЬNULL(ВЫРАЗИТЬ(Задание.Исполнитель КАК Справочник.РолиИсполнителей).УзелОбмена, НЕОПРЕДЕЛЕНО) КАК УзелОбмена + |ИЗ + | БизнесПроцесс.Задание КАК Задание + |ГДЕ + | Задание.Ссылка = &Ссылка"; + + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Возврат Выборка.УзелОбмена; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции diff --git a/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСервер/ОбменВнешнимиЗаданиямиСервер.mdo b/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСервер/ОбменВнешнимиЗаданиямиСервер.mdo new file mode 100644 index 000000000..5a0cd958a --- /dev/null +++ b/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСервер/ОбменВнешнимиЗаданиямиСервер.mdo @@ -0,0 +1,11 @@ + + + ОбменВнешнимиЗаданиямиСервер + + ru + Обмен внешними заданиями сервер + + true + true + true + diff --git a/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСобытия/Module.bsl b/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСобытия/Module.bsl new file mode 100644 index 000000000..29afebf62 --- /dev/null +++ b/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСобытия/Module.bsl @@ -0,0 +1,19 @@ +//////////////////////////////////////////////////////////////////////////////// +// ЭКСПОРТНЫЕ ВНЕШНИЕ ПРОЦЕДУРЫ И ФУНКЦИИ + +Процедура ОбменВнешнимиЗаданиямиПередЗаписьюПередЗаписью(Источник, Отказ) Экспорт + ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписью("ОбменВнешнимиЗаданиями", Источник, Отказ); +КонецПроцедуры + +Процедура ОбменВнешнимиЗаданиямиПередУдалениемПередУдалением(Источник, Отказ) Экспорт + ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередУдалением("ОбменВнешнимиЗаданиями", Источник, Отказ); +КонецПроцедуры + +Процедура ОбменВнешнимиЗаданиямиБСПДокументооборотПередЗаписьюПередЗаписью(Источник, Отказ) Экспорт + ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписью("ОбменВнешнимиЗаданиямиС1СДокументооборот", Источник, Отказ); +КонецПроцедуры + +Процедура ОбменВнешнимиЗаданиямиБСПДокументооборотУдалениемПередУдалением(Источник, Отказ) Экспорт + ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередУдалением("ОбменВнешнимиЗаданиямиС1СДокументооборот", Источник, Отказ); +КонецПроцедуры + diff --git a/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСобытия/ОбменВнешнимиЗаданиямиСобытия.mdo b/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСобытия/ОбменВнешнимиЗаданиямиСобытия.mdo new file mode 100644 index 000000000..5fb8a3638 --- /dev/null +++ b/SSL/src/CommonModules/ОбменВнешнимиЗаданиямиСобытия/ОбменВнешнимиЗаданиямиСобытия.mdo @@ -0,0 +1,12 @@ + + + ОбменВнешнимиЗаданиямиСобытия + + ru + Обмен внешними заданиями события + + true + true + true + true + diff --git a/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl index bda2098ed..811effc11 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl @@ -200,19 +200,34 @@ СтандартнаяОбработка = Ложь; - ИначеЕсли Объект.ОбменДанными.Загрузка - И ОбменДаннымиПовтИсп.ЭтоУзелРаспределеннойИнформационнойБазы(Объект.ОбменДанными.Отправитель) Тогда - - // Проверку на даты запрета изменения при обмене в РИБ не выполняем - СтандартнаяОбработка = Ложь; - ИначеЕсли Объект.ОбменДанными.Загрузка Тогда - СтандартнаяОбработка = Ложь; + Отправитель = Объект.ОбменДанными.Отправитель; - УзелПланаОбмена = Объект.ОбменДанными.Отправитель; + Если Отправитель = Неопределено Тогда + + Объект.ДополнительныеСвойства.Свойство("ОбменДанными_Отправитель", Отправитель); + + КонецЕсли; - СообщитьОЗапрете = Ложь; + Если Отправитель <> Неопределено Тогда + + Если ОбменДаннымиПовтИсп.ЭтоУзелРаспределеннойИнформационнойБазы(Отправитель) Тогда + + // Проверку на даты запрета изменения при обмене в РИБ не выполняем + СтандартнаяОбработка = Ложь; + + Иначе + + СтандартнаяОбработка = Ложь; + + УзелПланаОбмена = Отправитель; + + СообщитьОЗапрете = Ложь; + + КонецЕсли; + + КонецЕсли; КонецЕсли; @@ -1291,10 +1306,14 @@ // Функция ОбъектПрошелФильтрПравилРегистрацииПоСвойствам(ПРО, Объект, ПроверятьСсылку, РежимЗаписи = Неопределено) + НачальноеЗначениеСвойстваПроведен = Неопределено; + ПолучитьЗначенияАлгоритмовКонстант(ПРО, ПРО.ОтборПоСвойствамОбъекта); Если РежимЗаписи <> Неопределено Тогда + НачальноеЗначениеСвойстваПроведен = Объект.Проведен; + Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда Объект.Проведен = Ложь; @@ -1310,10 +1329,22 @@ // ПРОБ по значению свойств Объекта Если ОбъектПроходитФильтрПРОБ(ПРО, Объект) Тогда + Если НачальноеЗначениеСвойстваПроведен <> Неопределено Тогда + + Объект.Проведен = НачальноеЗначениеСвойстваПроведен; + + КонецЕсли; + Возврат Истина; КонецЕсли; + Если НачальноеЗначениеСвойстваПроведен <> Неопределено Тогда + + Объект.Проведен = НачальноеЗначениеСвойстваПроведен; + + КонецЕсли; + Если ПроверятьСсылку Тогда // ПРОБ по значению свойств Ссылки diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl index 1fdbcc18d..8a857582a 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl @@ -16,7 +16,6 @@ // Подключаются процедуры-обработчики обновления конфигурации // - Возврат Обработчики; КонецФункции diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl index 6a489d95f..4b08926fc 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl @@ -90,15 +90,6 @@ КонецПроцедуры -// Вызывается при запуске помощника обновления конфигурации. -// Записывает соответствующее сообщение в журнал регистрации. -Процедура ПриЗапускеПомощникаОбновленияКонфигурации() Экспорт - - ТекстСообщения = НСтр("ru = 'Открытие помощника обновления конфигурации...'"); - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,,,ТекстСообщения); - -КонецПроцедуры - Функция ПолучитьИнформациюОПользователе() ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); Возврат Новый Структура("Имя, ПолноеИмя, ПарольУстановлен, АутентификацияСтандартная, АутентификацияОС", @@ -330,7 +321,7 @@ КонецПроцедуры -// Возвращает представление текущего события для записи журнала регистрации. +// Возвращает имя события для записи журнала регистрации. Функция СобытиеЖурналаРегистрации() Экспорт Возврат НСтр("ru = 'Обновление конфигурации'"); КонецФункции diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl index 55645e605..339bf11ad 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // Программный интерфейс подсистемы. -// Проверяет наличие обновления конфигурации в Интернете при запуске программы. +// Проверяет наличие обновления конфигурации при запуске программы. // Процедура ПроверитьОбновлениеКонфигурации() Экспорт @@ -54,7 +54,6 @@ Параметры.ИсточникОбновления = НастройкиОбновленияКонфигурации.ИсточникОбновления; Параметры.НуженФайлОбновления = НастройкиОбновленияКонфигурации.НуженФайлОбновления; Параметры.ФлагАвтоПереходаНаСтраницуСОбновлением = Истина; - Параметры.НадписьОповещения = НСтр("ru = 'Обнаружено, что конфигурация отличается от основной конфигурации информационной базы'"); ПоказатьОповещениеПользователя(НСтр("ru = 'Обновление конфигурации'"), "e1cib/app/Обработка.ОбновлениеКонфигурации", НСтр("ru = 'Конфигурация отличается от основной конфигурации информационной базы.'"), @@ -71,7 +70,6 @@ Параметры.ИсточникОбновления = НастройкиОбновленияКонфигурации.ИсточникОбновления; Параметры.НуженФайлОбновления = НастройкиОбновленияКонфигурации.НуженФайлОбновления; Параметры.ФлагАвтоПереходаНаСтраницуСОбновлением = Истина; - Параметры.НадписьОповещения = НСтр("ru = 'Обнаружено доступное обновление в Интернете'"); ПоказатьОповещениеПользователя(НСтр("ru = 'Доступно обновление конфигурации'"), "e1cib/app/Обработка.ОбновлениеКонфигурации", НСтр("ru = 'Версия: '") + Параметры.ПараметрыФайлаПроверкиОбновления.Version, @@ -198,12 +196,11 @@ Если ДоступноеОбновлениеКонфигурации = Неопределено Тогда ДоступноеОбновлениеКонфигурации = Новый Структура( - "ИсточникОбновления,НуженФайлОбновления,ФлагАвтоПереходаНаСтраницуСОбновлением,НадписьОповещения," + + "ИсточникОбновления,НуженФайлОбновления,ФлагАвтоПереходаНаСтраницуСОбновлением," + "ПараметрыФайлаПроверкиОбновления,ИмяСтраницы,ВремяПолученияОбновления,ПоследняяВерсияКонфигурации", -1, // ИсточникОбновления Ложь, // НуженФайлОбновления Ложь, // ФлагАвтоПереходаНаСтраницуСОбновлением - "", // НадписьОповещения Неопределено, // ПараметрыФайлаПроверкиОбновления "", // ИмяСтраницы ТекущаяДата(), // ВремяПолученияОбновления @@ -386,7 +383,6 @@ Параметры.ИсточникОбновления = НастройкиОбновленияКонфигурации.ИсточникОбновления; Параметры.НуженФайлОбновления = НастройкиОбновленияКонфигурации.НуженФайлОбновления; Параметры.ФлагАвтоПереходаНаСтраницуСОбновлением = Истина; - Параметры.НадписьОповещения = НСтр("ru = 'Обнаружено доступное обновление в Интернете'"); ПоказатьОповещениеПользователя(НСтр("ru = 'Доступно обновление конфигурации'"), "e1cib/app/Обработка.ОбновлениеКонфигурации", НСтр("ru = 'Версия: '") + Параметры.ПараметрыФайлаПроверкиОбновления.Version, diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиентПереопределяемый/Module.bsl index c94407995..93364c58d 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиентПереопределяемый/Module.bsl @@ -65,7 +65,7 @@ // Булево - признак того, что обновления поставляются на диске ИТС. // Функция ИспользоватьОбновлениеСДискаИТС() Экспорт - Возврат Истина; // значение по умолчанию + Возврат Ложь; // значение по умолчанию КонецФункции // Получить адрес веб-страницы с информацией о том, как получить доступ к diff --git a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl index 6a9d3deed..764a765ea 100644 --- a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl @@ -142,8 +142,7 @@ КонецПроцедуры -// Функция ПолучитьЗначенияРеквизитов возвращает структуру, -// содержащую значения реквизитов прочитанные из информационной базы +// Возвращает структуру, содержащую значения реквизитов прочитанные из информационной базы // по ссылке на объект. // // Если доступа к одному из реквизитов нет, возникнет исключение прав доступа. @@ -152,9 +151,13 @@ // // Параметры: // Ссылка - ссылка на объект, - элемент справочника, документ, ... -// ИменаРеквизитов - Строка, имена реквизитов перечисленные через запятую, -// в формате требований к свойствам структуры. +// ИменаРеквизитов - Строка или Структура - если Строка, то имена реквизитов, +// перечисленные через запятую, в формате требований к свойствам структуры. // Например, "Код, Наименование, Родитель". +// Если Структура, то в качестве ключа передается псевдоним поля для +// возвращаемой структуры с результатом, а в качестве значения (опционально) +// - фактическое имя поля в таблице. +// Если значение не определено, то в имя поля берется из ключа. // // Возвращаемое значение: // Структура - содержит список свойств, как список имен в строке @@ -162,24 +165,44 @@ // из информационной базы. // Функция ПолучитьЗначенияРеквизитов(Ссылка, ИменаРеквизитов) Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = + + Если ТипЗнч(ИменаРеквизитов) = Тип("Структура") Тогда + СтруктураРеквизитов = ИменаРеквизитов; + ИначеЕсли ТипЗнч(ИменаРеквизитов) = Тип("Строка") Тогда + СтруктураРеквизитов = Новый Структура(ИменаРеквизитов);; + Иначе + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неверный тип второго параметра ИменаИлиСтруктураРеквизитов: %1'"), + Строка(ТипЗнч(ИменаРеквизитов))); + КонецЕсли; + + ТекстПолей = ""; + Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл + ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение), СокрЛП(КлючИЗначение.Значение), СокрЛП(КлючИЗначение.Ключ)); + Псевдоним = СокрЛП(КлючИЗначение.Ключ); + ТекстПолей = ТекстПолей + ?(ПустаяСтрока(ТекстПолей), "", ",") + " + | " + ИмяПоля + " КАК " + Псевдоним; + КонецЦикла; + + Запрос = Новый Запрос( "ВЫБРАТЬ - | " + ИменаРеквизитов + " + |" + ТекстПолей + " |ИЗ | " + Ссылка.Метаданные().ПолноеИмя() + " КАК Таблица |ГДЕ - | Таблица.Ссылка = &Ссылка"; + | Таблица.Ссылка = &Ссылка + |"); Запрос.УстановитьПараметр("Ссылка", Ссылка); - Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); - Результат = Новый Структура(ИменаРеквизитов); + + Результат = Новый Структура; + Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл + Результат.Вставить(КлючИЗначение.Ключ); + КонецЦикла; ЗаполнитьЗначенияСвойств(Результат, Выборка); - + Возврат Результат; - КонецФункции // Функция ПолучитьЗначениеРеквизита возвращает значение @@ -411,6 +434,64 @@ Возврат Результат; КонецФункции +// Выполняет пропорциональное распределение суммы в соответствии +// с заданными коэффициентами распределения. +// +// Параметры: +// ИсхСумма - распределяемая сумма +// МассивКоэф - массив коэффициентов распределения +// Точность - точность округления при распределении. Необязателен. +// +// Возврат: +// МассивСумм - массив размерностью равный массиву коэффициентов, содержит +// суммы в соответствии с весом коэффициента (из массива коэффициентов) +// В случае если распределить не удалось (сумма = 0, кол-во коэф. = 0, +// или суммарный вес коэф. = 0), тогда возвращается значение Неопределено +// +Функция РаспределитьСуммуПропорциональноКоэффициентам(Знач ИсхСумма, МассивКоэф, Знач Точность = 2) Экспорт + + Если МассивКоэф.Количество() = 0 Или НЕ ЗначениеЗаполнено(ИсхСумма) Тогда + Возврат Неопределено; + КонецЕсли; + + ИндексМакс = 0; + МаксЗнач = 0; + РаспрСумма = 0; + СуммаКоэф = 0; + + Для К = 0 По МассивКоэф.Количество() - 1 Цикл + + МодульЧисла = ?(МассивКоэф[К] > 0, МассивКоэф[К], - МассивКоэф[К]); + + Если МаксЗнач < МодульЧисла Тогда + МаксЗнач = МодульЧисла; + ИндексМакс = К; + КонецЕсли; + + СуммаКоэф = СуммаКоэф + МассивКоэф[К]; + + КонецЦикла; + + Если СуммаКоэф = 0 Тогда + Возврат Неопределено; + КонецЕсли; + + МассивСумм = Новый Массив(МассивКоэф.Количество()); + + Для К = 0 По МассивКоэф.Количество() - 1 Цикл + МассивСумм[К] = Окр(ИсхСумма * МассивКоэф[К] / СуммаКоэф, Точность, 1); + РаспрСумма = РаспрСумма + МассивСумм[К]; + КонецЦикла; + + // Погрешности округления отнесем на коэффицент с максимальным весом + Если Не РаспрСумма = ИсхСумма Тогда + МассивСумм[ИндексМакс] = МассивСумм[ИндексМакс] + ИсхСумма - РаспрСумма; + КонецЕсли; + + Возврат МассивСумм; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Вспомогательные процедуры и функции @@ -1746,9 +1827,6 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Вспомогательные функции для установки расширения работы с файлами в веб-клиенте. - //////////////////////////////////////////////////////////////////////////////// // Сохранение и чтение настроек diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl index 29b9c23d7..c49854980 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl @@ -356,6 +356,38 @@ КонецФункции +//////////////////////////////////////////////////////////////////////////////// +// Блок функций для поддержки формирования печатных форм +// + +// Возвращает заголовок документа в том виде, в котором его формирует платформа для представления ссылки на документ. +// +// Параметры +// Шапка - Структура с ключами +// Номер - строка или число - номер документа +// Дата - дата - дата документа +// НазваниеДокумента - Строка - название документа (например, синоним объекта метаданных) +// +// Возвращаемое значение +// Строка - заголовок документа +// +Функция СформироватьЗаголовокДокумента(Шапка, знач НазваниеДокумента = "") Экспорт + + // Если название документа не передано, получим название по представлению документа + Если НазваниеДокумента = "" И Шапка.Свойство("Представление") И ЗначениеЗаполнено(Шапка.Представление) Тогда + ПоложениеНомера = Найти(Шапка.Представление, Шапка.Номер); + Если ПоложениеНомера > 0 Тогда + НазваниеДокумента = СокрЛП(Лев(Шапка.Представление, ПоложениеНомера - 1)); + КонецЕсли; + КонецЕсли; + + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 № %2 от %3'"), + НазваниеДокумента, ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Шапка.Номер), + Формат(Шапка.Дата, "ДФ='дд ММММ гггг'")); + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Блок функций для работы с файловой системой // diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиКлиентГлобальный/ОценкаПроизводительностиКлиентГлобальный.mdo b/SSL/src/CommonModules/ОценкаПроизводительностиКлиентГлобальный/ОценкаПроизводительностиКлиентГлобальный.mdo index 82cf7be29..95454d02b 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиКлиентГлобальный/ОценкаПроизводительностиКлиентГлобальный.mdo +++ b/SSL/src/CommonModules/ОценкаПроизводительностиКлиентГлобальный/ОценкаПроизводительностиКлиентГлобальный.mdo @@ -7,4 +7,5 @@ true true + true diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl index 504fa2f7f..68645679b 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl @@ -29,7 +29,7 @@ // Возвращаемое значение: // Число - время окончания замера // -Функция ЗакончитьЗамерВермени(КлючеваяОперация = Неопределено) Экспорт +Функция ЗакончитьЗамерВремени(КлючеваяОперация = Неопределено) Экспорт Возврат ОценкаПроизводительностиСерверВызовСервера.ЗафиксироватьВремяОкончания(КлючеваяОперация, Ложь); diff --git a/SSL/src/CommonModules/ПрисоединенныеФайлы/Module.bsl b/SSL/src/CommonModules/ПрисоединенныеФайлы/Module.bsl index f9b39d2c4..57d5c9bd3 100644 --- a/SSL/src/CommonModules/ПрисоединенныеФайлы/Module.bsl +++ b/SSL/src/CommonModules/ПрисоединенныеФайлы/Module.bsl @@ -1225,6 +1225,56 @@ КонецФункции +// Получает все присоединенные к владельцу файлы +// +Функция ПолучитьВсеПодчиненныеФайлы(ВладелецФайла) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + ИмяОбъекта = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ВладелецФайла.Метаданные().ПолноеИмя(), ".")[1]; + ИмяСправочника = ИмяОбъекта + "ПрисоединенныеФайлы"; + + ТекстЗапроса = + "ВЫБРАТЬ + | Ссылка + |ИЗ + | Справочник.[ИмяСправочникаСФайлами] КАК ПрисоединенныеФайлы + |ГДЕ + | ПрисоединенныеФайлы.ВладелецФайла = &ВладелецФайла"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяСправочникаСФайлами]", ИмяСправочника); + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + Запрос.Параметры.Вставить("ВладелецФайла", ВладелецФайла); + + Результат = Запрос.Выполнить(); + Выборка = Результат.Выбрать(); + + МассивВозврата = Новый Массив; + Пока Выборка.Следующий() Цикл + МассивВозврата.Добавить(Выборка.Ссылка); + КонецЦикла; + + Возврат МассивВозврата; + +КонецФункции + +// Возвращает массив ссылок на файлы +Функция ПолучитьПрикрепленныеФайлыКОбъекту(Объект) Экспорт + + МассивФайлов = Новый Массив; + + ТипыВладельцев = Метаданные.ОбщиеКоманды.ПрисоединенныеФайлыКОбъекту.ТипПараметраКоманды.Типы(); + Если ТипыВладельцев.Найти(ТипЗнч(Объект)) <> Неопределено Тогда + МассивФайлов = ПрисоединенныеФайлы.ПолучитьВсеПодчиненныеФайлы(Объект); + Возврат МассивФайлов; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Служебные экспортные функции поддержки обработчиков событий diff --git a/SSL/src/CommonModules/ПрисоединенныеФайлыСобытия/Module.bsl b/SSL/src/CommonModules/ПрисоединенныеФайлыСобытия/Module.bsl index 3f78307b5..5dea8d2f8 100644 --- a/SSL/src/CommonModules/ПрисоединенныеФайлыСобытия/Module.bsl +++ b/SSL/src/CommonModules/ПрисоединенныеФайлыСобытия/Module.bsl @@ -86,6 +86,10 @@ Процедура ПометитьНаУдалениеПриложенныеФайлы(Источник) + Если Источник.ЭтоНовый() ТОгда + Возврат; + КонецЕсли; + УстановитьПривилегированныйРежим(Истина); ИсточникСсылкаПометкаУдаления = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Источник.Ссылка, "ПометкаУдаления"); diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборот/Module.bsl b/SSL/src/CommonModules/РаботаС1СДокументооборот/Module.bsl new file mode 100644 index 000000000..0fe67b32d --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборот/Module.bsl @@ -0,0 +1,934 @@ +////////////////////////////////////////////////////// +//// Запросы к Документообороту + +//Получает объект из Документооборота +//Параметры: +// Тип - имя типа XDTO +// Ид - уникальный идентификатор объекта в Документообороте +//Возвращает: +// XDTO Объект типа DMRetrieveResponse +Функция ПолучитьОбъект(Тип, Ид, Колонки = Неопределено) Экспорт + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Запрос = СоздатьОбъект(Прокси, "DMRetrieveRequest"); + + objectId = СоздатьObjectID(Прокси, Ид, Тип); + Запрос.objectIds.Добавить(objectId); + + Если Колонки <> Неопределено Тогда + Для Каждого Колонка Из Колонки Цикл + Запрос.columnSet.Добавить(Колонка); + КонецЦикла; + КонецЕсли; + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + + Возврат Ответ; + +КонецФункции + +//Записывает изменения объекта в Документообороте +//Параметры: +// Прокси - объект для подключения к web-сервисам Документооборота +// Объект - XDTO объект с сохраняемыми данными +//Возвращает: +// XDTO Объект типа DMUpdateResponse +Функция ЗаписатьОбъект(Прокси, Объект) Экспорт + + Запрос = СоздатьОбъект(Прокси, "DMUpdateRequest"); + Запрос.objects.Добавить(Объект); + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + + Возврат Ответ; + +КонецФункции + +//Записывает изменения объектов в Документообороте +//Параметры: +// Прокси - объект для подключения к web-сервисам Документооборота +// Объект - XDTO объект с сохраняемыми данными +//Возвращает: +// XDTO Объект типа DMUpdateResponse +Функция ЗаписатьОбъекты(Прокси, Объекты) Экспорт + + Запрос = СоздатьОбъект(Прокси, "DMUpdateRequest"); + + Для Каждого Объект Из Объекты Цикл + Запрос.objects.Добавить(Объект); + КонецЦикла; + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + + Возврат Ответ; + +КонецФункции + +//Создает объект в Документооборот +//Параметры: +// Прокси - объект для подключения к web-сервисам Документооборота +// Объект - XDTO объект с сохраняемыми данными +// ObjectIDВнешнегоОбъекта - уникальный идентификатор объекта в конфигурации-потребителе +//Возвращает: +// XDTO Объект типа DMCreateResponse +Функция СоздатьНовыйОбъект(Прокси, Объект) Экспорт + + Запрос = СоздатьОбъект(Прокси, "DMCreateRequest"); + Запрос.object = Объект; + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + + Возврат Ответ; + +КонецФункции + +//Получает заполненный по умолчанию объект из Документооборота +//Параметры: +// Тип - имя типа XDTO объекта +// ПредметБизнесПроцесса - Структура. Используется для получения бизнес-процессов. +// id - уникальный идентификатор объекта в Документооборот +// type - имя типа XDTO +//Возвращает: +// XDTO Объект типа DMGetNewObjectResponse +Функция ПолучитьНовыйОбъект(Тип, ПредметБизнесПроцесса = Неопределено) Экспорт + + Если ПредметБизнесПроцесса <> Неопределено Тогда + Возврат ПолучитьНовыйБизнесПроцесс(Тип, ПредметБизнесПроцесса); + Иначе + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Запрос = СоздатьОбъект(Прокси, "DMGetNewObjectRequest"); + Запрос.type = Тип; + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + + Если ПроверитьТип(Прокси, Ответ, "DMGetNewObjectResponse") Тогда + Возврат Ответ.object; + КонецЕсли; + + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +//Выполняет сохранение и запуск бизнес-процесса +//Параметры: +// Прокси - объект для подключения к web-сервисам Документооборота +// Объект - XDTO объект, хранящий данные бизнес-процесса +//Возвращает: +// XDTO Объект типа DMLaunchBusinessProcessResponse +Функция ЗапуститьБизнесПроцесс(Прокси, Объект) Экспорт + + Запрос = СоздатьОбъект(Прокси, "DMLaunchBusinessProcessRequest"); + Запрос.businessProcess = Объект; + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + + Возврат Ответ; + +КонецФункции + +////////////////////////////////////////////////////// +//// Работа с бизнес-процессами + +//Устанавливает контролера бизнес-процесса на форму +//Параметры: +// ОбъектXDTO - объект, содержащий данные бизнес-процесса, например, DMBusinessProcessOrder +// Форма - форма, на которую необходимо поместить значение контролера +Процедура УстановитьКонтролераНаКарточке(ОбъектXDTO, Форма) Экспорт + + Если ОбъектXDTO.controller.Установлено("user") Тогда + Форма.Контролер = ОбъектXDTO.controller.user.name; + Форма.КонтролерID = ОбъектXDTO.controller.user.objectId.id; + Форма.КонтролерТип = ОбъектXDTO.controller.user.objectId.type; + ИначеЕсли ОбъектXDTO.controller.Установлено("role") Тогда + Форма.Контролер = ОбъектXDTO.Controller.role.name; + Форма.КонтролерID = ОбъектXDTO.Controller.role.objectId.id; + Форма.КонтролерТип = ОбъектXDTO.Controller.role.objectId.type; + + Если ОбъектXDTO.controller.Установлено("mainAddressingObject") Тогда + Форма.ОсновнойОбъектАдресацииКонтролера = ОбъектXDTO.controller.mainAddressingObject.name; + Форма.ОсновнойОбъектАдресацииКонтролераID = ОбъектXDTO.controller.mainAddressingObject.objectId.id; + Форма.ОсновнойОбъектАдресацииКонтролераТип = ОбъектXDTO.controller.mainAddressingObject.objectId.type; + КонецЕсли; + + Если ОбъектXDTO.controller.Установлено("secondaryAddressingObject") Тогда + Форма.ДополнительныйОбъектАдресацииКонтролера = ОбъектXDTO.controller.secondaryAddressingObject.name; + Форма.ДополнительныйОбъектАдресацииКонтролераID = ОбъектXDTO.controller.secondaryAddressingObject.objectId.id; + Форма.ДополнительныйОбъектАдресацииКонтролераТип = ОбъектXDTO.controller.secondaryAddressingObject.objectId.type; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +//Устанавливает проверяющего бизнес-процесса на форму +//Параметры: +// ОбъектXDTO - объект, содержащий данные бизнес-процесса, например, DMBusinessProcessOrder +// Форма - форма, на которую необходимо поместить значение контролера +Процедура УстановитьПроверяющегоНаКарточке(ОбъектXDTO, Форма) Экспорт + + Если ОбъектXDTO.verifier.Установлено("user") Тогда + Форма.Проверяющий = ОбъектXDTO.verifier.user.name; + Форма.ПроверяющийID = ОбъектXDTO.verifier.user.objectId.id; + Форма.ПроверяющийТип = ОбъектXDTO.verifier.user.objectId.type; + ИначеЕсли ОбъектXDTO.verifier.Установлено("role") Тогда + Форма.Проверяющий = ОбъектXDTO.verifier.role.name; + Форма.ПроверяющийID = ОбъектXDTO.verifier.role.objectId.id; + Форма.ПроверяющийТип = ОбъектXDTO.verifier.role.objectId.type; + + Если ОбъектXDTO.verifier.Установлено("mainAddressingObject") Тогда + Форма.ОсновнойОбъектАдресацииПроверяющего = ОбъектXDTO.verifier.mainAddressingObject.name; + Форма.ОсновнойОбъектАдресацииПроверяющегоID = ОбъектXDTO.verifier.mainAddressingObject.objectId.id; + Форма.ОсновнойОбъектАдресацииПроверяющегоТип = ОбъектXDTO.verifier.mainAddressingObject.objectId.type; + КонецЕсли; + + Если ОбъектXDTO.verifier.Установлено("secondaryAddressingObject") Тогда + Форма.ДополнительныйОбъектАдресацииПроверяющего = ОбъектXDTO.verifier.secondaryAddressingObject.name; + Форма.ДополнительныйОбъектАдресацииПроверяющегоID = ОбъектXDTO.verifier.secondaryAddressingObject.objectId.id; + Форма.ДополнительныйОбъектАдресацииПроверяющегоТип = ОбъектXDTO.verifier.secondaryAddressingObject.objectId.type; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +//Устанавливает исполнителя бизнес-процесса на форму. +//Используется, когда у бизнес-процесса предусмотрен только один исполнитель. +//Параметры: +// ОбъектXDTO - объект, содержащий данные бизнес-процесса, например, DMBusinessProcessOrder +// Форма - форма, на которую необходимо поместить значение контролера +Процедура УстановитьЕдинственногоИсполнителяНаКарточке(ОбъектXDTO, Форма) Экспорт + + Исполнитель = ОбъектXDTO.performer; + Если Исполнитель.Установлено("user") Тогда + Форма.Исполнитель = Исполнитель.user.name; + Форма.ИсполнительID = Исполнитель.user.objectId.id; + Форма.ИсполнительТип = Исполнитель.user.objectId.type; + ИначеЕсли Исполнитель.Установлено("role") Тогда + Форма.Исполнитель = Исполнитель.role.name; + Форма.ИсполнительID = Исполнитель.role.objectId.id; + Форма.ИсполнительТип = Исполнитель.role.objectId.type; + + Если Исполнитель.Установлено("mainAddressingObject") Тогда + Форма.ОсновнойОбъектАдресации = Исполнитель.mainAddressingObject.name; + Форма.ОсновнойОбъектАдресацииID = Исполнитель.mainAddressingObject.objectId.id; + Форма.ОсновнойОбъектАдресацииТип = Исполнитель.mainAddressingObject.objectId.type; + КонецЕсли; + + Если Исполнитель.Установлено("secondaryAddressingObject") Тогда + Форма.ДополнительныйОбъектАдресации = Исполнитель.secondaryAddressingObject.name; + Форма.ДополнительныйОбъектАдресацииID = Исполнитель.secondaryAddressingObject.objectId.id; + Форма.ДополнительныйОбъектАдресацииТип = Исполнитель.secondaryAddressingObject.objectId.type; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +//Устанавливает исполнителя бизнес-процесса на форму. +//Используется, когда у бизнес-процесса предусмотрено несколько исполнителей. +//Параметры: +// ОбъектXDTO - объект, содержащий данные бизнес-процесса, например, DMBusinessProcessOrder +// Форма - форма, на которую необходимо поместить значение контролера +Процедура УстановитьИсполнителяВСпискеИсполнителейНаКарточке(ИсполнительXDTO, СтрокаСпискаИсполнителей) Экспорт + + Если ИсполнительXDTO.Установлено("user") Тогда + СтрокаСпискаИсполнителей.Исполнитель = ИсполнительXDTO.user.name; + СтрокаСпискаИсполнителей.ИсполнительID = ИсполнительXDTO.user.objectId.id; + СтрокаСпискаИсполнителей.ИсполнительТип = ИсполнительXDTO.user.objectId.type; + ИначеЕсли ИсполнительXDTO.Установлено("role") Тогда + СтрокаСпискаИсполнителей.Исполнитель = ИсполнительXDTO.role.name; + СтрокаСпискаИсполнителей.ИсполнительID = ИсполнительXDTO.role.objectId.id; + СтрокаСпискаИсполнителей.ИсполнительТип = ИсполнительXDTO.role.objectId.type; + Если ИсполнительXDTO.Установлено("mainAddressingObject") Тогда + СтрокаСпискаИсполнителей.ОсновнойОбъектАдресации = ИсполнительXDTO.mainAddressingObject.name; + СтрокаСпискаИсполнителей.ОсновнойОбъектАдресацииID = ИсполнительXDTO.mainAddressingObject.objectId.id; + СтрокаСпискаИсполнителей.ОсновнойОбъектАдресацииТип = ИсполнительXDTO.mainAddressingObject.objectId.type; + КонецЕсли; + Если ИсполнительXDTO.Установлено("secondaryAddressingObject") Тогда + СтрокаСпискаИсполнителей.ДополнительныйОбъектАдресации = ИсполнительXDTO.secondaryAddressingObject.name; + СтрокаСпискаИсполнителей.ДополнительныйОбъектАдресацииID = ИсполнительXDTO.secondaryAddressingObject.objectId.id; + СтрокаСпискаИсполнителей.ДополнительныйОбъектАдресацииТип = ИсполнительXDTO.secondaryAddressingObject.objectId.type; + КонецЕсли; + КонецЕсли; + + +КонецПроцедуры + +//Устанавливает стандартные реквизиты бизнес-процесса на форме +//Параметры: +// ОбъектXDTO - объект, содержащий данные бизнес-процесса, например, DMBusinessProcessOrder +// Форма - форма, на которую необходимо поместить значение реквизитов +Процедура УстановитьСтандартнуюШапкуБизнесПроцесса(ОбъектXDTO, Форма) Экспорт + + Если ОбъектXDTO.target = Неопределено Тогда + ТекстОшибки = НСтр("ru = 'Бизнес-процесс выбранного типа неприменим к данному документу.'"); + ВызватьИсключение(ТекстОшибки); + КонецЕсли; + + Форма.Стартован = ОбъектXDTO.started; + Форма.Завершен = ОбъектXDTO.completed; + Форма.ДатаНачала = ОбъектXDTO.beginDate; + Форма.ДатаЗавершения = ОбъектXDTO.endDate; + Форма.Наименование = ОбъектXDTO.name; + Если Форма.Элементы.Найти("СрокДата") <> Неопределено Тогда + Форма.Срок = ОбъектXDTO.dueDate; + КонецЕсли; + Если Форма.Элементы.Найти("Описание") <> Неопределено Тогда + Форма.Описание = ОбъектXDTO.description; + КонецЕсли; + Форма.Тип = ОбъектXDTO.objectId.type; + + ЗаполнитьОбъектныйРеквизитФормы(Форма, "Автор", ОбъектXDTO, "author"); + ЗаполнитьОбъектныйРеквизитФормы(Форма, "Важность", ОбъектXDTO, "importance"); + ЗаполнитьОбъектныйРеквизитФормы(Форма, "Предмет", ОбъектXDTO, "target"); + ЗаполнитьОбъектныйРеквизитФормы(Форма, "ГлавнаяЗадача", ОбъектXDTO, "parentTask"); + + Если ОбъектXDTO.started Или ОбъектXDTO.completed Тогда + Форма.ТолькоПросмотр = Истина; + Форма.Элементы.ФормаСтартоватьИЗакрыть.Доступность = Ложь; + Форма.Элементы.ФормаЗаписать.Доступность = Ложь; + Форма.Элементы.ФормаЗаполнитьПоШаблону.Доступность = Ложь; + КонецЕсли; + + //изменение формы в зависимости от функциональных опций + Если Форма.Элементы.Найти("ГлавнаяЗадачаПредставление") <> Неопределено Тогда + Форма.Элементы.ГлавнаяЗадачаПредставление.Видимость = ОбъектXDTO.parentTaskEnabled; + КонецЕсли; + Если Форма.Элементы.Найти("СрокВремя") <> Неопределено Тогда + Форма.Элементы.СрокВремя.Видимость = ОбъектXDTO.dueTimeEnabled; + ИначеЕсли Форма.Элементы.Найти("СрокИсполненияЧасов") <> Неопределено Тогда + Форма.Элементы.СрокИсполненияЧасов.Видимость = ОбъектXDTO.dueTimeEnabled; + Форма.Элементы.Часов.Видимость = ОбъектXDTO.dueTimeEnabled; + КонецЕсли; + +КонецПроцедуры + +Процедура ЗаполнитьОбъектныйРеквизитФормы(Форма, ИмяРеквизита, ОбъектXDTO, ИмяСвойстваОбъекта) + + Если ОбъектXDTO.Установлено(ИмяСвойстваОбъекта) И ЗначениеЗаполнено(ОбъектXDTO[ИмяСвойстваОбъекта].name) Тогда + Форма[ИмяРеквизита] = ОбъектXDTO[ИмяСвойстваОбъекта].name; + Форма[ИмяРеквизита + "ID"] = ОбъектXDTO[ИмяСвойстваОбъекта].objectId.id; + Форма[ИмяРеквизита + "Тип"] = ОбъектXDTO[ИмяСвойстваОбъекта].objectId.type; + КонецЕсли; + +КонецПроцедуры + +Функция ПолучитьНовыйБизнесПроцесс(Тип, ПредметБизнесПроцесса) + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + Запрос = СоздатьОбъект(Прокси, "DMGetNewBusinessProcessRequest"); + + Запрос.type = Тип; + Запрос.targetID = СоздатьОбъект(Прокси, "DMObjectID"); + Запрос.targetID.id = ПредметБизнесПроцесса.id; + Запрос.targetID.type = ПредметБизнесПроцесса.type; + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + + Если ПроверитьТип(Прокси, Ответ, "DMGetNewBusinessProcessResponse") Тогда + Возврат Ответ.object; + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + + +/////////////////////////////////////////////////////// +//// Общие процедуры и функции + +// проверить код возврата +Процедура ПроверитьВозвратВебСервиса(Прокси, Ответ) Экспорт + + Если ПроверитьТип(Прокси, Ответ, "DMError") Тогда + ВызватьИсключение Ответ.subject + ":" + Символы.ПС + Символы.ПС + Ответ.description; + КонецЕсли; + +КонецПроцедуры + +// получает набор дополнительных реквизитов объекта и помещает его на форму объекта +Процедура ПолучитьДополнительныеРеквизитыИПоместитьНаФорму(Форма) Экспорт + + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + + Объект = СоздатьОбъект(Прокси, Форма.Тип); + Объект.name = Форма.ЗаголовокДокумента; + Объект.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.objectId.id = Форма.ID; + Объект.objectId.type = Форма.Тип; + + Если ЗначениеЗаполнено(Форма.ВидДокумента) Тогда + Объект.DocumentType = СоздатьОбъект(Прокси, Форма.Тип + "Type"); + Объект.DocumentType.name = Форма.ВидДокумента; + Объект.DocumentType.objectId = СоздатьОбъект(Прокси, "DMObjectID"); + Объект.DocumentType.objectId.id = Форма.ВидДокументаID; + Объект.DocumentType.objectId.type = Форма.ВидДокументаТип; + КонецЕсли; + + Запрос = СоздатьОбъект(Прокси, "DMGetObjectAdditionalPropertiesRequest"); + Запрос.object = Объект; + + Результат = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Результат); + + ПоместитьДополнительныеРеквизитыНаФорму(Форма, Результат); + +КонецПроцедуры + +// помещает набор дополнительных реквизитов объекта на форму объекта +Процедура ПоместитьДополнительныеРеквизитыНаФорму(Форма, ОбъектXDTO) Экспорт + + Форма.Элементы.ГруппаСвойства.Видимость = Ложь; + Если ОбъектXDTO.additionalProperties.Количество() > 0 Тогда + Форма.Элементы.ГруппаСвойства.Видимость = Истина; + Форма.Свойства.Очистить(); + Для Каждого ДопСвойство Из ОбъектXDTO.additionalProperties Цикл + НоваяСтрока = Форма.Свойства.Добавить(); + + НоваяСтрока.Свойство = ДопСвойство.name; + НоваяСтрока.СвойствоТип = ДопСвойство.objectId.type; + НоваяСтрока.СвойствоID = ДопСвойство.objectId.id; + + Если ДопСвойство.Установлено("propertySimpleValue") Тогда + НоваяСтрока.Значение = ДопСвойство.propertySimpleValue; + ИначеЕсли ДопСвойство.Установлено("propertyObjectValue") Тогда + НоваяСтрока.Значение = ДопСвойство.propertyObjectValue.name; + НоваяСтрока.ЗначениеТип = ДопСвойство.propertyObjectValue.objectId.type; + НоваяСтрока.ЗначениеID = ДопСвойство.propertyObjectValue.objectId.id; + КонецЕсли; + + Для Каждого ОписаниеТипа Из ДопСвойство.PropertyValueTypes Цикл + ДанныеОТипе = Новый Структура("xdtoClassName, presentation"); + ДанныеОТипе.xdtoClassName = ОписаниеТипа.xdtoClassName; + ДанныеОТипе.presentation = ОписаниеТипа.presentation; + НоваяСтрока.СписокДоступныхТипов.Добавить(ДанныеОТипе); + КонецЦикла; + + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +// помещает значения дополнительных свойств объекта с формы объекта в объект XDTO +Процедура СформироватьДополнительныеСвойства(Прокси, Форма, ОбъектXDTO) Экспорт + + Для Каждого ДопСвойство Из Форма.Свойства Цикл + + ДополнительноеСвойство = СоздатьОбъект(Прокси, "DMAdditionalProperty"); + ДополнительноеСвойство.name = ДопСвойство.Свойство; + ДополнительноеСвойство.objectId = СоздатьObjectID(Прокси, ДопСвойство.СвойствоID, ДопСвойство.СвойствоТип); + + Если ЗначениеЗаполнено(ДопСвойство.Значение) Тогда + Если ЗначениеЗаполнено(ДопСвойство.ЗначениеID) Тогда //значение объектного типа + + ДоступныеТипы = ДопСвойство.СписокДоступныхТипов; + Если ДоступныеТипы.Количество() > 1 Тогда + ДополнительноеСвойство.propertyObjectValue = СоздатьОбъект(Прокси, "DMObject"); + ДополнительноеСвойство.propertyObjectValue.name = ДопСвойство.Значение; + ДополнительноеСвойство.propertyObjectValue.objectId = СоздатьObjectID(Прокси, ДопСвойство.ЗначениеID, ДопСвойство.ЗначениеТип); + Иначе + ТипСвойства = ДоступныеТипы[0].Значение.xdtoClassName; + ЗначениеСвойства = СоздатьОбъект(Прокси, ТипСвойства); + + // заполнить из потребителя + РеквизитТип = ДопСвойство.ЗначениеТип; + РеквизитID = ДопСвойство.ЗначениеID; + Если Метаданные.НайтиПоПолномуИмени(РеквизитТип) <> Неопределено Тогда + РеквизитТип = СтрЗаменить(РеквизитТип, "Справочник.", "Справочники."); + РеквизитТип = СтрЗаменить(РеквизитТип, "Документ.", "Документы."); + РеквизитТип = СтрЗаменить(РеквизитТип, "Задача.", "Задачи."); + РеквизитТип = СтрЗаменить(РеквизитТип, "БизнесПроцесс.", "БизнесПроцессы."); + РеквизитТип = СтрЗаменить(РеквизитТип, "ПланВидовХарактеристик.", "ПланыВидовХарактеристик."); + + СсылкаНаПотребителя = Неопределено; + Выполнить("СсылкаНаПотребителя = " + РеквизитТип + ".ПолучитьСсылку(Новый УникальныйИдентификатор(РеквизитID))"); + + ЗаполнитьРеквизитыИзПотребителя(Прокси, ЗначениеСвойства, СсылкаНаПотребителя); + + ИначеЕсли РеквизитТип = "Строка" Тогда + + ЗначениеСвойства.objectId = СоздатьObjectID(Прокси, "", ""); + ЗначениеСвойства.name = ДопСвойство.Значение; + + ВнешнийИД = СоздатьОбъект(Прокси, "externalObject"); + ВнешнийИД.id = ""; + ВнешнийИД.type = ""; + ВнешнийИД.name = ""; + + ЗначениеСвойства.externalObject = ВнешнийИД; + + Иначе + + ЗначениеСвойства.objectId = СоздатьObjectID(Прокси, ДопСвойство.ЗначениеID, ДопСвойство.ЗначениеТип); + ЗначениеСвойства.name = ДопСвойство.Значение; + + КонецЕсли; + + ДополнительноеСвойство.propertyObjectValue = ЗначениеСвойства; + + + КонецЕсли; + + Иначе //значение примитивного вида + ДополнительноеСвойство.propertySimpleValue = ДопСвойство.Значение; + КонецЕсли; + КонецЕсли; + + ОбъектXDTO.additionalProperties.Добавить(ДополнительноеСвойство); + + КонецЦикла; + +КонецПроцедуры + +// Создает XDTO объект указанного типа из пространства имен "http://www.1c.ru/dm" +Функция СоздатьОбъект(Прокси, ТипОбъекта) Экспорт + + Возврат Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", ТипОбъекта)); + +КонецФункции + +// Создает объект DMObjectID +Функция СоздатьObjectID(Прокси, id, type) Экспорт + + objectId = СоздатьОбъект(Прокси, "DMObjectID"); + objectId.id = id; + objectId.type = type; + + Возврат objectId; + +КонецФункции + +// Проверяет тип объекта XDTO +// Возвращает Истина если объект является объектом указанного типа и Ложь в +// противном случае +Функция ПроверитьТип(Прокси, ОбъектXDTO, Тип) Экспорт + + Если ОбъектXDTO.Тип() = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", Тип) Тогда + Возврат Истина; + Иначе + Возврат Ложь; + КонецЕсли; + +КонецФункции + +// Возвращает имя значения перечисления +Функция ИмяЗначенияПеречисления(Значение) Экспорт + + ОбъектМетаданных = Значение.Метаданные(); + + ИндексЗначения = Перечисления[ОбъектМетаданных.Имя].Индекс(Значение); + + Возврат ОбъектМетаданных.ЗначенияПеречисления[ИндексЗначения].Имя; + +КонецФункции + +Функция ЕстьУникальныйИдентификатор(Значение) + + Тип = ТипЗнч(Значение); + + Возврат Справочники.ТипВсеСсылки().СодержитТип(Тип) + ИЛИ Документы.ТипВсеСсылки().СодержитТип(Тип) + ИЛИ ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(Тип) + ИЛИ БизнесПроцессы.ТипВсеСсылки().СодержитТип(Тип) + ИЛИ Задачи.ТипВсеСсылки().СодержитТип(Тип); + +КонецФункции + +// Выполняет действия при изменении вида документа +Процедура ПриИзмененииВидаНаФормеДокумента(Форма) Экспорт + + ВидДокументаID = Форма.ВидДокументаID; + ВидДокументаТип = Форма.ВидДокументаТип; + + ИмяФормы = Форма.ИмяФормы; + Элементы = Форма.Элементы; + + Если ЗначениеЗаполнено(ВидДокументаID) И ЗначениеЗаполнено(ВидДокументаТип) Тогда + Прокси = РаботаС1СДокументооборотВызовСервера.ПолучитьПрокси(); + ОбъектИд = СоздатьObjectID(Прокси, ВидДокументаID, ВидДокументаТип); + + Запрос = СоздатьОбъект(Прокси, "DMRetrieveRequest"); + Запрос.objectIds.Добавить(ОбъектИд); + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборотВызовСервера.ПроверитьВозвратВебСервиса(Прокси, Результат); + + DocumentType = Результат.objects[0]; + Иначе + DocumentType = Неопределено; + КонецЕсли; + + Если ИмяФормы = "ОбщаяФорма.ДокументооборотВходящийДокумент" Тогда + + Элементы.СрокИсполнения.Видимость = (DocumentType <> Неопределено И DocumentType.performanceDateEnabled = Истина); + Элементы.Сумма.Видимость = (DocumentType <> Неопределено И DocumentType.sumEnabled = Истина); + Элементы.Валюта.Видимость = (DocumentType <> Неопределено И DocumentType.sumEnabled = Истина); + + ИначеЕсли ИмяФормы = "ОбщаяФорма.ДокументооборотИсходящийДокумент" Тогда + + Элементы.СрокИсполнения.Видимость = (DocumentType <> Неопределено И DocumentType.PerformanceDateEnabled = Истина); + Элементы.НомерПолучателя.Видимость = (DocumentType <> Неопределено И DocumentType.ExternalNumberEnabled = Истина); + Элементы.ДатаПолучателя.Видимость = (DocumentType <> Неопределено И DocumentType.ExternalNumberEnabled = Истина); + Элементы.Сумма.Видимость = (DocumentType <> Неопределено И DocumentType.SumEnabled = Истина); + Элементы.Валюта.Видимость = (DocumentType <> Неопределено И DocumentType.SumEnabled = Истина); + + ИначеЕсли ИмяФормы = "ОбщаяФорма.ДокументооборотВнутреннийДокумент" Тогда + + Элементы.СрокИсполнения.Видимость = (DocumentType <> Неопределено И DocumentType.performanceDateEnabled = Истина); + Элементы.Корреспондент.Видимость = (DocumentType <> Неопределено И DocumentType.correspondentEnabled = Истина); + Элементы.КонтактноеЛицо.Видимость = (DocumentType <> Неопределено И DocumentType.correspondentEnabled = Истина); + Элементы.Сумма.Видимость = (DocumentType <> Неопределено И DocumentType.sumEnabled = Истина); + Элементы.Валюта.Видимость = (DocumentType <> Неопределено И DocumentType.sumEnabled = Истина); + Элементы.Бессрочный.Видимость = (DocumentType <> Неопределено И DocumentType.durationEnabled = Истина); + Элементы.ПорядокПродления.Видимость = (DocumentType <> Неопределено И DocumentType.durationEnabled = Истина); + Элементы.ДатаНачалаДействия.Видимость = (DocumentType <> Неопределено И DocumentType.durationEnabled = Истина); + Элементы.ДатаОкончанияДействия.Видимость = (DocumentType <> Неопределено И DocumentType.durationEnabled = Истина); + + КонецЕсли; + + АвтоматическаяНумерация = (DocumentType <> Неопределено И DocumentType.automaticNumeration = Истина); + Если АвтоматическаяНумерация Тогда + Элементы.РегистрационныйНомер.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.Отображать; + Элементы.ДатаРегистрации.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.Отображать; + Элементы.Зарегистрировать.Доступность = Истина; + Иначе + Элементы.РегистрационныйНомер.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.НеОтображать; + Элементы.ДатаРегистрации.ОтображениеПредупрежденияПриРедактировании = ОтображениеПредупрежденияПриРедактировании.НеОтображать; + Элементы.Зарегистрировать.Доступность = Ложь; + КонецЕсли; + + //установка дополнительных реквизитов + ПолучитьДополнительныеРеквизитыИПоместитьНаФорму(Форма); + +КонецПроцедуры + +// Возвращает соответствие свойств XDTO и реквизитов формы документа +Функция СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(ИмяФормы) Экспорт + + СоответствиеРеквизитов = Новый Структура; + + Если ИмяФормы = "ОбщаяФорма.ДокументооборотВходящийДокумент" Тогда + + СоответствиеРеквизитов.Вставить("externalNumber", "НомерОтправителя"); + СоответствиеРеквизитов.Вставить("externalDate", "ДатаОтправителя"); + + СоответствиеРеквизитов.Вставить("title", "ЗаголовокДокумента"); + СоответствиеРеквизитов.Вставить("summary", "Описание"); + СоответствиеРеквизитов.Вставить("comment", "Комментарий"); + СоответствиеРеквизитов.Вставить("regNumber", "РегистрационныйНомер"); + СоответствиеРеквизитов.Вставить("regDate", "ДатаРегистрации"); + СоответствиеРеквизитов.Вставить("performanceDate", "СрокИсполнения"); + СоответствиеРеквизитов.Вставить("sum", "Сумма"); + + СоответствиеРеквизитов.Вставить("correspondent", "Отправитель"); + СоответствиеРеквизитов.Вставить("signer", "Подписал"); + СоответствиеРеквизитов.Вставить("addressee", "Адресат"); + СоответствиеРеквизитов.Вставить("subdivision", "Подразделение"); + СоответствиеРеквизитов.Вставить("accessLevel", "ГрифДоступа"); + СоответствиеРеквизитов.Вставить("documentType", "ВидДокумента"); + + СоответствиеРеквизитов.Вставить("deliveryMethod", "СпособПолучения"); + СоответствиеРеквизитов.Вставить("status", "Состояние"); + СоответствиеРеквизитов.Вставить("organization", "Организация"); + СоответствиеРеквизитов.Вставить("activityMatter", "ВопросДеятельности"); + СоответствиеРеквизитов.Вставить("responsible", "Ответственный"); + СоответствиеРеквизитов.Вставить("currency", "Валюта"); + + ИначеЕсли ИмяФормы = "ОбщаяФорма.ДокументооборотИсходящийДокумент" Тогда + + СоответствиеРеквизитов.Вставить("externalNumber", "НомерПолучателя"); + СоответствиеРеквизитов.Вставить("externalDate", "ДатаПолучателя"); + СоответствиеРеквизитов.Вставить("title", "ЗаголовокДокумента"); + СоответствиеРеквизитов.Вставить("summary", "Описание"); + СоответствиеРеквизитов.Вставить("comment", "Комментарий"); + СоответствиеРеквизитов.Вставить("regNumber", "РегистрационныйНомер"); + СоответствиеРеквизитов.Вставить("regDate", "ДатаРегистрации"); + СоответствиеРеквизитов.Вставить("performanceDate", "СрокИсполнения"); + СоответствиеРеквизитов.Вставить("sum", "Сумма"); + СоответствиеРеквизитов.Вставить("sent", "Отправлен"); + СоответствиеРеквизитов.Вставить("sendDate", "ДатаОтправки"); + + СоответствиеРеквизитов.Вставить("correspondent", "Получатель"); + СоответствиеРеквизитов.Вставить("addressee", "Адресат"); + СоответствиеРеквизитов.Вставить("signer", "Подписал"); + СоответствиеРеквизитов.Вставить("author", "Подготовил"); + СоответствиеРеквизитов.Вставить("subdivision", "Подразделение"); + СоответствиеРеквизитов.Вставить("accessLevel", "ГрифДоступа"); + СоответствиеРеквизитов.Вставить("documentType", "ВидДокумента"); + СоответствиеРеквизитов.Вставить("deliveryMethod", "СпособОтправки"); + СоответствиеРеквизитов.Вставить("status", "Состояние"); + СоответствиеРеквизитов.Вставить("organization", "Организация"); + СоответствиеРеквизитов.Вставить("activityMatter", "ВопросДеятельности"); + СоответствиеРеквизитов.Вставить("responsible", "Ответственный"); + СоответствиеРеквизитов.Вставить("currency", "Валюта"); + + ИначеЕсли ИмяФормы = "ОбщаяФорма.ДокументооборотВнутреннийДокумент" Тогда + + СоответствиеРеквизитов.Вставить("title", "ЗаголовокДокумента"); + СоответствиеРеквизитов.Вставить("summary", "Описание"); + СоответствиеРеквизитов.Вставить("comment", "Комментарий"); + СоответствиеРеквизитов.Вставить("regNumber", "РегистрационныйНомер"); + СоответствиеРеквизитов.Вставить("regDate", "ДатаРегистрации"); + СоответствиеРеквизитов.Вставить("performanceDate", "СрокИсполнения"); + СоответствиеРеквизитов.Вставить("sum", "Сумма"); + СоответствиеРеквизитов.Вставить("beginDate", "ДатаНачалаДействия"); + СоответствиеРеквизитов.Вставить("endDate", "ДатаОкончанияДействия"); + СоответствиеРеквизитов.Вставить("openEnded", "Бессрочный"); + + СоответствиеРеквизитов.Вставить("folder", "Папка"); + СоответствиеРеквизитов.Вставить("author", "Подготовил"); + СоответствиеРеквизитов.Вставить("signer", "Подписал"); + СоответствиеРеквизитов.Вставить("subdivision", "Подразделение"); + СоответствиеРеквизитов.Вставить("correspondent", "Корреспондент"); + СоответствиеРеквизитов.Вставить("contactPerson", "КонтактноеЛицо"); + СоответствиеРеквизитов.Вставить("prolongationProcedure","ПорядокПродления"); + СоответствиеРеквизитов.Вставить("accessLevel", "ГрифДоступа"); + СоответствиеРеквизитов.Вставить("documentType", "ВидДокумента"); + СоответствиеРеквизитов.Вставить("status", "Состояние"); + СоответствиеРеквизитов.Вставить("organization", "Организация"); + СоответствиеРеквизитов.Вставить("activityMatter", "ВопросДеятельности"); + СоответствиеРеквизитов.Вставить("responsible", "Ответственный"); + СоответствиеРеквизитов.Вставить("currency", "Валюта"); + + КонецЕсли; + + Возврат СоответствиеРеквизитов; + +КонецФункции + +// Заполняет реквизиты формы из данных объекта-потребителя +Процедура ЗаполнитьФормуИзПотребителя(ВнешнийОбъект, Форма) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | Ссылка + |ИЗ + | Справочник.НастройкиЗаполненияОбъектов1СДокументооборота + |ГДЕ + | ТипОбъектаПотребителя = &ТипОбъектаПотребителя + | И ТипОбъектаДокументооборота = &ТипОбъектаДокументооборота + | И Не ПометкаУдаления"; + + Запрос.УстановитьПараметр("ТипОбъектаПотребителя", ВнешнийОбъект.Метаданные().ПолноеИмя()); + Запрос.УстановитьПараметр("ТипОбъектаДокументооборота", Форма.Тип); + + Результат = Запрос.Выполнить(); + Если Результат.Пустой() Тогда + Форма["ЗаголовокДокумента"] = Строка(ВнешнийОбъект); + Возврат; + КонецЕсли; + + Выборка = Результат.Выбрать(); + Выборка.Следующий(); + НастройкаЗаполнения = Выборка.Ссылка; + + + ПараметрыОтбора = Новый Структура; + ПараметрыОтбора.Вставить("ИмяРеквизитаОбъектаДокументооборота", "DocumentType"); + ПараметрыОтбора.Вставить("ВариантПравилаЗаполненияРеквизитов", Перечисления.ВариантыПравилЗаполненияРеквизитов.ИзУказанногоЗначения); + ПараметрыОтбора.Вставить("ДополнительныйРеквизит", Ложь); + + СтрокиВидДокумента = НастройкаЗаполнения.ПравилаЗаполненияРеквизитов.НайтиСтроки(ПараметрыОтбора); + Если СтрокиВидДокумента.Количество() > 0 Тогда + СтрокаВидДокумента = СтрокиВидДокумента[0]; + + ПараметрыЗаполнения = Новый Структура; + ПараметрыЗаполнения.Вставить("DocumentType", + Новый Структура("ID, Тип, Представление", + СтрокаВидДокумента.ИдентификаторЗначенияРеквизита, + СтрокаВидДокумента.ТипЗначенияРеквизита, + СтрокаВидДокумента.ЗначениеРеквизитаДокументооборота)); + + Реквизиты = Справочники.НастройкиЗаполненияОбъектов1СДокументооборота. + ПолучитьРеквизитыОбъектаДокументооборота(НастройкаЗаполнения.ТипОбъектаДокументооборота, ПараметрыЗаполнения); + + Иначе + + Реквизиты = Справочники.НастройкиЗаполненияОбъектов1СДокументооборота. + ПолучитьРеквизитыОбъектаДокументооборота(НастройкаЗаполнения.ТипОбъектаДокументооборота); + + КонецЕсли; + + + СоответствиеРеквизитов = СоответсвиеСвойствXDTOиРеквизитовФормыДокумента(Форма.ИмяФормы); + + Для Каждого Реквизит Из Реквизиты Цикл + + Если Не Реквизит.ДопРеквизит Тогда + ПараметрыОтбора = Новый Структура("ДополнительныйРеквизит, ИмяРеквизитаОбъектаДокументооборота", Ложь, Реквизит.Имя); + Иначе + ПараметрыОтбора = Новый Структура("ДополнительныйРеквизит, ДополнительныйРеквизитID, ДополнительныйРеквизитТип", Истина, Реквизит.ДопРеквизитID, Реквизит.ДопРеквизитТип); + КонецЕсли; + + НайденныеСтроки = НастройкаЗаполнения.ПравилаЗаполненияРеквизитов.НайтиСтроки(ПараметрыОтбора); + Если НайденныеСтроки.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + НайденнаяСтрока = НайденныеСтроки[0]; + + + Если Не Реквизит.ДопРеквизит Тогда + + РеквизитФормы = СоответствиеРеквизитов[Реквизит.Имя]; + ТипРеквизита = Реквизит.Тип[0].Значение; + + Если НайденнаяСтрока.ВариантПравилаЗаполненияРеквизитов = Перечисления.ВариантыПравилЗаполненияРеквизитов.ИзРеквизитаОбъектаПотребителя Тогда + + ИмяРеквизитаОбъектаПотребителя = НайденнаяСтрока.ИмяРеквизитаОбъектаПотребителя; + Если ИмяРеквизитаОбъектаПотребителя = "Представление" Тогда + Результат = Строка(ВнешнийОбъект); + ИначеЕсли Найти(ИмяРеквизитаОбъектаПотребителя, ".") > 0 Тогда + Результат = Неопределено; + Выполнить("Результат = ВнешнийОбъект." + ИмяРеквизитаОбъектаПотребителя) + Иначе + Результат = ВнешнийОбъект[ИмяРеквизитаОбъектаПотребителя]; + КонецЕсли; + + Если ТипРеквизита = "Строка" Или ТипРеквизита = "Дата" Или ТипРеквизита = "Число" Или ТипРеквизита = "ДатаВремя" Или ТипРеквизита = "Булево" Тогда + Форма[РеквизитФормы] = Результат; + + ИначеЕсли ЗначениеЗаполнено(Результат) Тогда + Форма[РеквизитФормы] = Строка(Результат); + Если ЕстьУникальныйИдентификатор(Результат) Тогда + Форма[РеквизитФормы + "ID"] = Строка(Результат.УникальныйИдентификатор()); + Форма[РеквизитФормы + "Тип"] = Результат.Метаданные().ПолноеИмя(); + Иначе + Форма[РеквизитФормы + "Тип"] = "Строка"; + КонецЕсли; + КонецЕсли; + + ИначеЕсли НайденнаяСтрока.ВариантПравилаЗаполненияРеквизитов = Перечисления.ВариантыПравилЗаполненияРеквизитов.ИзУказанногоЗначения Тогда + + Если ТипРеквизита = "Строка" Или ТипРеквизита = "Дата" Или ТипРеквизита = "Число" Или ТипРеквизита = "ДатаВремя" Или ТипРеквизита = "Булево" Тогда + Форма[РеквизитФормы] = НайденнаяСтрока.ЗначениеРеквизитаДокументооборота; + Иначе + Форма[РеквизитФормы] = НайденнаяСтрока.ЗначениеРеквизитаДокументооборота; + Форма[РеквизитФормы + "ID"] = НайденнаяСтрока.ИдентификаторЗначенияРеквизита; + Форма[РеквизитФормы + "Тип"] = НайденнаяСтрока.ТипЗначенияРеквизита; + + Если Реквизит.Имя = "documentType" Тогда + ПриИзмененииВидаНаФормеДокумента(Форма); + КонецЕсли; + КонецЕсли; + + ИначеЕсли НайденнаяСтрока.ВариантПравилаЗаполненияРеквизитов = Перечисления.ВариантыПравилЗаполненияРеквизитов.ИзВыраженияНаВстроенномЯзыке Тогда + + Источник = ВнешнийОбъект; + Результат = Неопределено; + + Выполнить(НайденнаяСтрока.ВычисляемоеВыражение); + + Если ТипРеквизита = "Строка" Или ТипРеквизита = "Дата" Или ТипРеквизита = "Число" Или ТипРеквизита = "ДатаВремя" Или ТипРеквизита = "Булево" Тогда + Форма[РеквизитФормы] = Результат; + + ИначеЕсли ЗначениеЗаполнено(Результат) Тогда + Форма[РеквизитФормы] = Строка(Результат); + Если ЕстьУникальныйИдентификатор(Результат) Тогда + Форма[РеквизитФормы + "ID"] = Строка(Результат.УникальныйИдентификатор()); + Форма[РеквизитФормы + "Тип"] = Результат.Метаданные().ПолноеИмя(); + Иначе + Форма[РеквизитФормы + "Тип"] = "Строка"; + КонецЕсли; + КонецЕсли; + + КонецЕсли; + + Иначе + + ТипРеквизита = Реквизит.Тип[0].Значение; + + ПараметрыОтбора = Новый Структура("СвойствоТип, СвойствоID", Реквизит.ДопРеквизитТип, Реквизит.ДопРеквизитID); + СтрокиДопРеквизита = Форма.Свойства.НайтиСтроки(ПараметрыОтбора); + Если СтрокиДопРеквизита.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + СтрокаДопРеквизита = СтрокиДопРеквизита[0]; + + Если НайденнаяСтрока.ВариантПравилаЗаполненияРеквизитов = Перечисления.ВариантыПравилЗаполненияРеквизитов.ИзРеквизитаОбъектаПотребителя Тогда + + ИмяРеквизитаОбъектаПотребителя = НайденнаяСтрока.ИмяРеквизитаОбъектаПотребителя; + Если ИмяРеквизитаОбъектаПотребителя = "Представление" Тогда + Результат = Строка(ВнешнийОбъект); + ИначеЕсли Найти(ИмяРеквизитаОбъектаПотребителя, ".") > 0 Тогда + Результат = Неопределено; + Выполнить("Результат = ВнешнийОбъект." + ИмяРеквизитаОбъектаПотребителя) + Иначе + Результат = ВнешнийОбъект[ИмяРеквизитаОбъектаПотребителя]; + КонецЕсли; + + Если ТипРеквизита = "Строка" Или ТипРеквизита = "Дата" Или ТипРеквизита = "Число" Или ТипРеквизита = "ДатаВремя" Или ТипРеквизита = "Булево" Тогда + СтрокаДопРеквизита["Значение"] = Результат; + + ИначеЕсли ЗначениеЗаполнено(Результат) Тогда + СтрокаДопРеквизита["Значение"] = Строка(Результат); + Если ЕстьУникальныйИдентификатор(Результат) Тогда + СтрокаДопРеквизита["ЗначениеID"] = Строка(Результат.УникальныйИдентификатор()); + СтрокаДопРеквизита["ЗначениеТип"] = Результат.Метаданные().ПолноеИмя(); + Иначе + СтрокаДопРеквизита["ЗначениеТип"] = "Строка"; + КонецЕсли; + КонецЕсли; + + ИначеЕсли НайденнаяСтрока.ВариантПравилаЗаполненияРеквизитов = Перечисления.ВариантыПравилЗаполненияРеквизитов.ИзУказанногоЗначения Тогда + + СтрокаДопРеквизита["Значение"] = НайденнаяСтрока.ЗначениеРеквизитаДокументооборота; + СтрокаДопРеквизита["ЗначениеID"] = НайденнаяСтрока.ИдентификаторЗначенияРеквизита; + СтрокаДопРеквизита["ЗначениеТип"] = НайденнаяСтрока.ТипЗначенияРеквизита; + + ИначеЕсли НайденнаяСтрока.ВариантПравилаЗаполненияРеквизитов = Перечисления.ВариантыПравилЗаполненияРеквизитов.ИзВыраженияНаВстроенномЯзыке Тогда + + Источник = ВнешнийОбъект; + Результат = Неопределено; + + Выполнить(НайденнаяСтрока.ВычисляемоеВыражение); + + Если ТипРеквизита = "Строка" Или ТипРеквизита = "Дата" Или ТипРеквизита = "Число" Или ТипРеквизита = "ДатаВремя" Или ТипРеквизита = "Булево" Тогда + СтрокаДопРеквизита["Значение"] = Результат; + + ИначеЕсли ЗначениеЗаполнено(Результат) Тогда + СтрокаДопРеквизита["Значение"] = Строка(Результат); + Если ЕстьУникальныйИдентификатор(Результат) Тогда + СтрокаДопРеквизита["ЗначениеID"] = Строка(Результат.УникальныйИдентификатор()); + СтрокаДопРеквизита["ЗначениеТип"] = Результат.Метаданные().ПолноеИмя(); + Иначе + СтрокаДопРеквизита["ЗначениеТип"] = "Строка"; + КонецЕсли; + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +// Заполняет реквизиты из объекта потребителя +Процедура ЗаполнитьРеквизитыИзПотребителя(Прокси, РеквизитОбъектаXDTO, СсылкаНаПотребитель) Экспорт + + РеквизитОбъектаXDTO.name = Строка(СсылкаНаПотребитель); + РеквизитОбъектаXDTO.objectId = СоздатьObjectID(Прокси, "", ""); + + ВнешнийОбъект = СоздатьОбъект(Прокси, "ExternalObject"); + ПолноеИмя = СсылкаНаПотребитель.Метаданные().ПолноеИмя(); + Если Найти(ПолноеИмя, "Перечисление.") > 0 Тогда + ВнешнийОбъект.id = ИмяЗначенияПеречисления(СсылкаНаПотребитель); + ВнешнийОбъект.type = ПолноеИмя; + ВнешнийОбъект.name = Строка(СсылкаНаПотребитель); + Иначе + ВнешнийОбъект.id = Строка(СсылкаНаПотребитель.УникальныйИдентификатор()); + ВнешнийОбъект.type = ПолноеИмя; + ВнешнийОбъект.name = Строка(СсылкаНаПотребитель); + КонецЕсли; + РеквизитОбъектаXDTO.externalObject = ВнешнийОбъект; + + РаботаС1СДокументооборотПереопределяемый.ЗаполнитьРеквизитыИзПотребителя(Прокси, РеквизитОбъектаXDTO, СсылкаНаПотребитель); + +КонецПроцедуры diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборот/РаботаС1СДокументооборот.mdo b/SSL/src/CommonModules/РаботаС1СДокументооборот/РаботаС1СДокументооборот.mdo new file mode 100644 index 000000000..d10a0a875 --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборот/РаботаС1СДокументооборот.mdo @@ -0,0 +1,11 @@ + + + РаботаС1СДокументооборот + + ru + Работа с 1С:Документооборот + + true + true + true + diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборотВызовСервера/Module.bsl b/SSL/src/CommonModules/РаботаС1СДокументооборотВызовСервера/Module.bsl new file mode 100644 index 000000000..a8e2672ed --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборотВызовСервера/Module.bsl @@ -0,0 +1,1438 @@ +// Возвращает прокси веб-сервиса +// Возвращаемое значение +// Прокси веб-сервиса +// WSПрокси +// +Функция ПолучитьПрокси() Экспорт + + МестоположениеWSDL = Константы.АдресВебСервиса1СДокументооборот.Получить() + "ws/dm.1cws?wsdl"; + + ИмяПользователя = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ИнтеграцияС1СДокументооборот", "Пользователь"); + Пароль = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ИнтеграцияС1СДокументооборот", "Пароль"); + + Если ИмяПользователя = Неопределено ИЛИ ПустаяСтрока(ИмяПользователя) Тогда + ВызватьИсключение НСтр("ru = 'Не заполнены параметры авторизации в 1С:Документооборот'"); + КонецЕсли; + + Определение = Новый WSОпределения( + МестоположениеWSDL, + ИмяПользователя, + Пароль); + + Прокси = Новый WSПрокси( + Определение, + "http://www.1c.ru/dm", + "DMService", + "DMServiceSoap"); + + Прокси.Пользователь = ИмяПользователя; + Прокси.Пароль = Пароль; + + Возврат Прокси; + +КонецФункции + +////////////////////////////////////////////////////// +//// ОБЩИЕ ФУНКЦИИ +Функция ПолучитьИмяТипаДокументаДОИзНастроекЗаполнения(СсылкаНаВнешнийОбъект) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | НастройкиЗаполненияОбъектов1СДокументооборота.ТипОбъектаПотребителя, + | НастройкиЗаполненияОбъектов1СДокументооборота.ТипОбъектаДокументооборота + |ИЗ + | Справочник.НастройкиЗаполненияОбъектов1СДокументооборота КАК НастройкиЗаполненияОбъектов1СДокументооборота + |ГДЕ + | НастройкиЗаполненияОбъектов1СДокументооборота.ТипОбъектаПотребителя = &ТипВнешнегоОбъекта"; + + Запрос.УстановитьПараметр("ТипВнешнегоОбъекта", СсылкаНаВнешнийОбъект.Метаданные().ПолноеИмя()); + Результат = Запрос.Выполнить(); + + ВыборкаДетальныеЗаписи = Результат.Выбрать(); + + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + ИмяТипа = ВыборкаДетальныеЗаписи.ТипОбъектаДокументооборота; + Прервать; + КонецЦикла; + + УстановитьПривилегированныйРежим(Ложь); + + Возврат ИмяТипа; + +КонецФункции + +////////////////////////////////////////////////////// +//// ЗАПРОСЫ К ДОКУМЕНТООБОРОТУ + +// Получает из Документооборота документ, связанный с объектом конфигурации-потребителя +// Параметры: +// СсылкаНаВнешнийОбъект - ссылка на объект конфигурации-потребителя +// Возвращает: Структура +// name - имя документа Документооборота +// id - уникальный идентификатор документа в Документообороте +// type - имя типа XDTO, соответствующего документу +Функция ПолучитьСвязанныйCВнешнимОбъектомДокумент(СсылкаНаВнешнийОбъект) Экспорт + + Прокси = ПолучитьПрокси(); + + ВнешнийОбъект = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "ExternalObject"); + ВнешнийОбъект.id = Строка(СсылкаНаВнешнийОбъект.УникальныйИдентификатор()); + ВнешнийОбъект.type = Строка(ТипЗнч(СсылкаНаВнешнийОбъект)); + ВнешнийОбъект.name = Строка(СсылкаНаВнешнийОбъект); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetDocumentListRequest"); + Запрос.externalObjects.Добавить(ВнешнийОбъект); + + Запрос.columnSet.Добавить("name"); + + Результат = Прокси.execute(Запрос); + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Результат, "DMError") Тогда + ВызватьИсключение Результат.description; + КонецЕсли; + + Если Результат.documents.Количество() > 0 Тогда + Объект = Результат.documents[0]; + ДанныеВозврата = Новый Структура(); + ДанныеВозврата.Вставить("name", Объект.name); + ДанныеВозврата.Вставить("id", Объект.objectId.id); + ДанныеВозврата.Вставить("type", Объект.objectId.type); + Возврат ДанныеВозврата; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +// Получает список шаблонов, определенных в Документообороте +// для данного типа бизнес-процессов и вида данного предмета бизнес-процесса +// Параметры: +// ТипБизнесПроцесса - имя типа XDTO +// ПредметБизнесПроцесса - Структура +// id - уникальный идентификатор предмета бизнес-процесса в Документообороте +// type - имя типа XDTO предмета бизнес-процесса +// Возвращает: список структур +// name - имя шаблона в документообороте +// id - уникальный идентификатор шаблона +// type - имя типа XDTO шаблона +Функция ПолучитьСписокШаблоновБизнесПроцессов(ТипБизнесПроцесса, ПредметБизнесПроцесса) Экспорт + + Прокси = ПолучитьПрокси(); + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetBusinessProcessTemplatesRequest"); + Запрос.businessProcessType = ТипБизнесПроцесса; + + Если ПредметБизнесПроцесса <> Неопределено Тогда + ПредметБизнесПроцессаИд = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectID"); + ПредметБизнесПроцессаИд.id = ПредметБизнесПроцесса.id; + ПредметБизнесПроцессаИд.type = ПредметБизнесПроцесса.Тип; + + Запрос.businessProcessTargetId = ПредметБизнесПроцессаИд; + КонецЕсли; + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборот.ПроверитьВозвратВебСервиса(Прокси, Результат); + + СписокШаблоновДокументов = Новый СписокЗначений; + Для Каждого Шаблон Из Результат.BusinessProcessTemplates Цикл + ДанныеШаблона = Новый Структура; + ДанныеШаблона.Вставить("name", Шаблон.name); + ДанныеШаблона.Вставить("id", Шаблон.objectId.id); + ДанныеШаблона.Вставить("type", Шаблон.objectId.type); + СписокШаблоновДокументов.Добавить(ДанныеШаблона); + КонецЦикла; + + Возврат СписокШаблоновДокументов; + +КонецФункции + +// Заполняет форму бизнес-процесса на основании шаблона +Функция ЗаполнитьБизнесПроцессПоШаблону(Форма, ДанныеОШаблоне) Экспорт + + Прокси = ПолучитьПрокси(); + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetBusinessProcessByTemplateRequest"); + + Запрос.type = Форма.Тип; + + Если ЗначениеЗаполнено(Форма.Предмет)Тогда + ПредметБизнесПроцессаИд = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectID"); + ПредметБизнесПроцессаИд.id = Форма.ПредметID; + ПредметБизнесПроцессаИд.type = Форма.ПредметТип; + + Запрос.targetId = ПредметБизнесПроцессаИд; + КонецЕсли; + + ШаблонБизнесПроцессаИд = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectID"); + ШаблонБизнесПроцессаИд.id = ДанныеОШаблоне.РеквизитID; + ШаблонБизнесПроцессаИд.type = ДанныеОШаблоне.РеквизитТип; + + Запрос.businessProcessTemplateId = ШаблонБизнесПроцессаИд; + + + Результат = Прокси.execute(Запрос); + РаботаС1СДокументооборот.ПроверитьВозвратВебСервиса(Прокси, Результат); + + Возврат Результат; + +КонецФункции + +// Выполняет поиск объектов документооборота по части наименования +// Параметры: +// Тип - имя класса XDTO, соответствующего типу искомого объекта +// Наименование - часть наименования, по которой происходит поиск +// Возвращает: +// Список объектов XDTO, соответствующих найденным объектам в 1С:Документооборот +Функция ПолучитьОбъектыПоНаименованию(Тип, Наименование) Экспорт + + Прокси = ПолучитьПрокси(); + + Условие = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListCondition"); + Условие.property = "name"; + Условие.value = Наименование; + + СписокУсловий = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListQuery"); + СписокУсловий.conditions.Добавить(Условие); + + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetObjectListRequest"); + Запрос.type = Тип; + Запрос.Query = СписокУсловий; + + Результат = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Результат); + + Возврат Результат.items; + +КонецФункции + +// Готовит данные для выбора из списка при обработке события АвтоПодбор у полей ввода +// Параметры: +// ТипыЗначений - строка с именами классов XDTO, разделенными символом ';' +// ДанныеВыбора - список значений, который показывается для выбора значения в поле +// Текст - строка, по которой происходит поиск объектов +// СтандартнаяОбработка - параметр, передаваемый из обработчика события на форме +Процедура ПолучитьДанныеДляАвтоПодбора(ТипыЗначений, ДанныеВыбора, Текст, СтандартнаяОбработка) Экспорт + + СтандартнаяОбработка = Ложь; + + ДанныеВыбора = Новый СписокЗначений; + + МассивТипов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ТипыЗначений, ";"); + + Для Каждого ТипXDTO Из МассивТипов Цикл + + Если НЕ ЗначениеЗаполнено(ТипXDTO) Тогда + Продолжить; + КонецЕсли; + + НайденныеЗначения = ПолучитьОбъектыПоНаименованию(ТипXDTO, Текст); + + Для Каждого НайденноеЗначение Из НайденныеЗначения Цикл + ДанныеДляВыбора = Новый Структура; + ДанныеДляВыбора.Вставить("name", НайденноеЗначение.object.name); + ДанныеДляВыбора.Вставить("id", НайденноеЗначение.object.objectId.id); + ДанныеДляВыбора.Вставить("type", НайденноеЗначение.object.objectId.type); + + ДанныеВыбора.Добавить(ДанныеДляВыбора, НайденноеЗначение.object.name); + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + + +///////////////////////////////////////////////////////////////// +//// РАБОТА С ФАЙЛАМИ + +// получает двоичные данные файла и помещает во временное хранилище +Функция ПолучитьАдресФайла(ИдентификаторФайла, ИдентификаторФормы) Экспорт + + Прокси = ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMRetrieveRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + + objectId = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + objectId.id = ИдентификаторФайла; + objectId.type = "DMFile"; + + Запрос.objectIds.Добавить(objectId); + + Запрос.columnSet.Добавить("objectId"); + Запрос.columnSet.Добавить("name"); + Запрос.columnSet.Добавить("binaryData"); + Запрос.columnSet.Добавить("extension"); + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + ДанныеФайла = Ответ.objects[0]; + + Адрес = ПоместитьВоВременноеХранилище(ДанныеФайла.binaryData, ИдентификаторФормы); + Возврат Адрес; + +КонецФункции + +// получает двоичные данные файла +Функция ПолучитьДвоичныеДанныеФайла(ИдентификаторФайла) Экспорт + + Прокси = ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMRetrieveRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + + objectId = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + objectId.id = ИдентификаторФайла; + objectId.type = "DMFile"; + + Запрос.objectIds.Добавить(objectId); + + Запрос.columnSet.Добавить("objectId"); + Запрос.columnSet.Добавить("name"); + Запрос.columnSet.Добавить("binaryData"); + Запрос.columnSet.Добавить("extension"); + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + ДанныеФайла = Ответ.objects[0]; + + Возврат ДанныеФайла.binaryData; + +КонецФункции + +// возвращает массив структур +Функция ПолучитьДвоичныеДанныеФайлов(Файлы) Экспорт + + Прокси = ПолучитьПрокси(); + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMRetrieveRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + ObjectIDТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + + Для Каждого Файл Из Файлы Цикл + + objectId = Прокси.ФабрикаXDTO.Создать(ObjectIDТип); + + objectId.id = Файл; + objectId.type = "DMFile"; + + Запрос.objectIds.Добавить(objectId); + + КонецЦикла; + + Запрос.columnSet.Добавить("objectId"); + Запрос.columnSet.Добавить("name"); + Запрос.columnSet.Добавить("binaryData"); + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + + Возврат Ответ; + +КонецФункции + +// Возвращает доступные для реквизита типы +Функция ПолучитьДоступныеТипыДляРеквизита(ИмяТипаXDTO) Экспорт + + Прокси = ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", ИмяТипаXDTO); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + ДанныеДляВыбора = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, ДанныеДляВыбора); + + СписокДоступныхТипов = Новый СписокЗначений; + + Для Каждого ОдноЗначение Из ДанныеДляВыбора.type Цикл + ДанныеОдногоЗначения = Новый Структура; + ДанныеОдногоЗначения.Вставить("Имя", ОдноЗначение.xdtoClassName); + ДанныеОдногоЗначения.Вставить("Представление", ОдноЗначение.presentation); + СписокДоступныхТипов.Добавить(ДанныеОдногоЗначения); + КонецЦикла; + + Возврат СписокДоступныхТипов; + +КонецФункции + +// получает настройки базы 1С:Документооборот +Функция ПолучитьНастройки() Экспорт + + Прокси = ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMGetSettingsRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + НастройкиXDTO = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, НастройкиXDTO); + + Настройки = Новый Структура("НужноИзвлечьТекст, ИспользоватьЭлектронныеЦифровыеПодписи", + НастройкиXDTO.needExtractText, НастройкиXDTO.useDigitalSignatures); + Возврат Настройки; + +КонецФункции + +// Возвращает путь к каталогу, используемому при интеграции, из временного хранилища +// +Функция ПолучитьЛокальныйКаталогФайлов() Экспорт + + Значение = ХранилищеОбщихНастроек.Загрузить("ЛокальныйКаталогФайловИнтеграции"); + Возврат ?(Значение = Неопределено, "", Значение); + +КонецФункции + + +// Сохраняет путь к каталогу, используемому при интеграции, во временном хранилище +// Параметры +// Каталог - строка - путь к каталогу печати +// +Процедура СохранитьЛокальныйКаталогФайлов(Каталог) Экспорт + + ХранилищеОбщихНастроек.Сохранить("ЛокальныйКаталогФайловИнтеграции", , Каталог); + +КонецПроцедуры + +// Создает объект указанного типа в пространстве имен http://www.1c.ru/dm +// Параметры +// Прокси - объект для подключения к Документообороту +// Тип - имя типа XDTO +// Возвращает +// ОбъектXDTO указанного типа +Функция СоздатьОбъектDM(Прокси, Тип) Экспорт + + ТипОбъекта = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", Тип); + Объект = Прокси.ФабрикаXDTO.Создать(ТипОбъекта); + + Возврат Объект; + +КонецФункции + +// создает в файл в 1С:Документооборот. возвращает UUID созданного файла +Функция ОбновитьИзФайлаНаДиске(ПараметрыСоздания) Экспорт + + Прокси = ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMUpdateRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + ФайлТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMFile"); + Файл = Прокси.ФабрикаXDTO.Создать(ФайлТип); + + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + Файл.objectId = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + + Файл.objectId.id = ПараметрыСоздания.ИдентификаторФайла; + Файл.objectId.type = "DMFile"; + Файл.name = ""; // имя не меняется + + Файл.binaryData = ПолучитьИзВременногоХранилища(ПараметрыСоздания.АдресВременногоХранилищаФайла); + Файл.extension = ПараметрыСоздания.Расширение; + Файл.modificationDate = ПараметрыСоздания.ВремяИзменения; + Файл.modificationDateUniversal = ПараметрыСоздания.ВремяИзмененияУниверсальное; + Файл.size = ПараметрыСоздания.Размер; + + Если НЕ ПустаяСтрока(ПараметрыСоздания.Текст) Тогда + Файл.text = ПараметрыСоздания.Текст; + КонецЕсли; + + Запрос.objects.Добавить(Файл); + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + + Возврат Истина; + +КонецФункции + +// проверить код возврата +Процедура ПроверитьВозвратВебСервиса(Прокси, Ответ) Экспорт + + Если РаботаС1СДокументооборот.ПроверитьТип(Прокси, Ответ, "DMError") Тогда + ВызватьИсключение Ответ.subject + ":" + Символы.ПС + Символы.ПС + Ответ.description; + КонецЕсли; + +КонецПроцедуры + +// получить поля карточки файла +Функция ПолучитьКарточкуФайла(ИдентификаторФайла, Форма = Неопределено) Экспорт + + Прокси = ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMRetrieveRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + Файл = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + Файл.id = ИдентификаторФайла; + Файл.type = "DMFile"; + + Запрос.objectIds.Добавить(Файл); + + Запрос.columnSet.Добавить("objectId"); + Запрос.columnSet.Добавить("signed"); + Запрос.columnSet.Добавить("name"); + Запрос.columnSet.Добавить("size"); + Запрос.columnSet.Добавить("creationDate"); + Запрос.columnSet.Добавить("modificationDateUniversal"); + Запрос.columnSet.Добавить("author"); + Запрос.columnSet.Добавить("extension"); + Запрос.columnSet.Добавить("description"); + Запрос.columnSet.Добавить("editing"); + Запрос.columnSet.Добавить("encrypted"); + + Запрос.columnSet.Добавить("signatures.author"); + Запрос.columnSet.Добавить("signatures.date"); + Запрос.columnSet.Добавить("signatures.comment"); + Запрос.columnSet.Добавить("signatures.signature"); + Запрос.columnSet.Добавить("signatures.thumbprint"); + Запрос.columnSet.Добавить("signatures.lineNumber"); + Запрос.columnSet.Добавить("signatures.signer"); + Запрос.columnSet.Добавить("signatures.certificate"); + Запрос.columnSet.Добавить("signatures.signatureFileName"); + + Файлы = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Файлы); + + ОписаниеФайла = Новый Структура; + + СведенияОФайле = Файлы.objects[0]; + + ОписаниеФайла.Вставить("Наименование", СведенияОФайле.name); + ОписаниеФайла.Вставить("Расширение", СведенияОФайле.extension); + ОписаниеФайла.Вставить("Описание", СведенияОФайле.description); + ОписаниеФайла.Вставить("Размер", Формат(СведенияОФайле.size, "ЧЦ=10; ЧН=0")); + ОписаниеФайла.Вставить("ПодписанЭЦП", СведенияОФайле.signed); + ОписаниеФайла.Вставить("Автор", СведенияОФайле.author.name); + ОписаниеФайла.Вставить("УникальныйИдентификатор", СведенияОФайле.objectId.id); + ОписаниеФайла.Вставить("ДатаСоздания", СведенияОФайле.creationDate); + ОписаниеФайла.Вставить("ДатаМодификацииУниверсальная", СведенияОФайле.modificationDateUniversal); + ОписаниеФайла.Вставить("Редактируется", СведенияОФайле.editing); + ОписаниеФайла.Вставить("Зашифрован", СведенияОФайле.encrypted); + + Подписи = Новый Массив; + + Для Каждого ПодписьXDTO Из СведенияОФайле.signatures Цикл + Подпись = Новый Структура; + + Подпись.Вставить("КомуВыданСертификат", ПодписьXDTO.author); + Подпись.Вставить("ДатаПодписи", ПодписьXDTO.date); + Подпись.Вставить("Комментарий", ПодписьXDTO.comment); + Подпись.Вставить("Подпись", ПодписьXDTO.signature); + Подпись.Вставить("Отпечаток", ПодписьXDTO.thumbprint); + Подпись.Вставить("Сертификат", ПодписьXDTO.certificate); + Подпись.Вставить("ИмяФайлаПодписи", ПодписьXDTO.signatureFileName); + Подпись.Вставить("УстановившийПодпись", ПодписьXDTO.signer.name); + Подпись.Вставить("УстановившийПодписьИд", ПодписьXDTO.signer.objectId.id); + + Подписи.Добавить(Подпись); + КонецЦикла; + + ОписаниеФайла.Вставить("Подписи", Подписи); + + Если Форма <> Неопределено Тогда + // дополнительные реквизиты + РаботаС1СДокументооборот.ПоместитьДополнительныеРеквизитыНаФорму(Форма, СведенияОФайле); + КонецЕсли; + + Возврат ОписаниеФайла; + +КонецФункции + +// получить поля карточки файла +Функция ПолучитьСписокФайлов(ИдентификаторВладельца, ИмяВладельца, ТипВладельца) Экспорт + + Прокси = ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMGetFileListRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + ОбъектТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "ExternalObject"); + ОбъектВладелец = Прокси.ФабрикаXDTO.Создать(ОбъектТип); + + ОбъектВладелец.name = ИмяВладельца; + ОбъектВладелец.id = Строка(ИдентификаторВладельца); + ОбъектВладелец.type = ТипВладельца; + + Запрос.externalObjects.Добавить(ОбъектВладелец); + + Запрос.columnSet.Добавить("objectId"); + Запрос.columnSet.Добавить("signed"); + Запрос.columnSet.Добавить("name"); + Запрос.columnSet.Добавить("size"); + Запрос.columnSet.Добавить("creationDate"); + Запрос.columnSet.Добавить("modificationDateUniversal"); + Запрос.columnSet.Добавить("author"); + Запрос.columnSet.Добавить("extension"); + Запрос.columnSet.Добавить("description"); + Запрос.columnSet.Добавить("editing"); + Запрос.columnSet.Добавить("encrypted"); + + Запрос.columnSet.Добавить("signatures.author"); + Запрос.columnSet.Добавить("signatures.date"); + Запрос.columnSet.Добавить("signatures.comment"); + Запрос.columnSet.Добавить("signatures.signature"); + Запрос.columnSet.Добавить("signatures.thumbprint"); + Запрос.columnSet.Добавить("signatures.signer"); + Запрос.columnSet.Добавить("signatures.certificate"); + Запрос.columnSet.Добавить("signatures.signatureFileName"); + + Файлы = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Файлы); + + Возврат Файлы; + +КонецФункции + +// получить поля карточки файла +Функция ПолучитьСписокФайловПоВладельцу(ИдентификаторВладельца, ИмяВладельца, ТипВладельца) Экспорт + + Прокси = ПолучитьПрокси(); + + ЗапросТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMGetFileListByOwnerRequest"); + Запрос = Прокси.ФабрикаXDTO.Создать(ЗапросТип); + + ОбъектТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObject"); + ОбъектВладелец = Прокси.ФабрикаXDTO.Создать(ОбъектТип); + + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + ОбъектВладелец.name = ИмяВладельца; + ОбъектВладелец.objectId = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + ОбъектВладелец.objectId.id = Строка(ИдентификаторВладельца); + ОбъектВладелец.objectId.type = ТипВладельца; + + Запрос.owners.Добавить(ОбъектВладелец); + + Запрос.columnSet.Добавить("objectId"); + Запрос.columnSet.Добавить("signed"); + Запрос.columnSet.Добавить("name"); + Запрос.columnSet.Добавить("size"); + Запрос.columnSet.Добавить("creationDate"); + Запрос.columnSet.Добавить("modificationDateUniversal"); + Запрос.columnSet.Добавить("author"); + Запрос.columnSet.Добавить("extension"); + Запрос.columnSet.Добавить("description"); + Запрос.columnSet.Добавить("editing"); + Запрос.columnSet.Добавить("encrypted"); + + Файлы = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Файлы); + + Возврат Файлы; + +КонецФункции + +// заполняет XDTO объект подписи +Процедура ЗаполнитьXDTOПодпись(Прокси, ПодписьXDTO, ДанныеПодписи) Экспорт + + ОбъектТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObject"); + ПользовательТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMUser"); + + ПодписьXDTO.author = ДанныеПодписи.КомуВыданСертификат; + ПодписьXDTO.certificate = ДанныеПодписи.ДвоичныеДанныеСертификата; + ПодписьXDTO.comment = ДанныеПодписи.Комментарий; + ПодписьXDTO.date = ДанныеПодписи.ДатаПодписи; + ПодписьXDTO.signature = ДанныеПодписи.НоваяПодписьДвоичныеДанные; + ПодписьXDTO.signatureFileName = ДанныеПодписи.ИмяФайлаПодписи; + ПодписьXDTO.thumbprint = ДанныеПодписи.Отпечаток; + + Если ДанныеПодписи.Свойство("УстановившийПодпись") Тогда + + ПодписьXDTO.signer = Прокси.ФабрикаXDTO.Создать(ПользовательТип); + ПодписьXDTO.signer.name = ДанныеПодписи.УстановившийПодпись; + + ПодписьXDTO.signer.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, + ДанныеПодписи.УстановившийПодписьИд, "DMUser"); + + КонецЕсли; + +КонецПроцедуры + +// подписать документ +Функция ПодписатьДокумент(ДобавленныеПодписи, ТаблицаПодписей, ЭтаФорма, + id, Тип, Файлы, Представление) Экспорт + + // получаем массив всех подписей + НомераСтрок = ПолучитьМассивДанныхПодписейСервер(ТаблицаПодписей); + + МассивДанныхПодписей = Новый Массив; // подписи, оставшиеся после удаления + + // формируем массив данных подписи + Для Каждого Элемент Из НомераСтрок Цикл + + ДанныеСтроки = ТаблицаПодписей.НайтиПоИдентификатору(Элемент); + Если НЕ ПустаяСтрока(ДанныеСтроки.Объект) Тогда + + ПодписьДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеСтроки.АдресПодписи); + ДвоичныеДанныеСертификата = ПолучитьИзВременногоХранилища(ДанныеСтроки.АдресСертификата); + + ДанныеПодписи = Новый Структура("ОбъектСсылка, НоваяПодписьДвоичныеДанные, Отпечаток, ДатаПодписи, Комментарий, ИмяФайлаПодписи, КомуВыданСертификат, ДвоичныеДанныеСертификата, ОбъектТип, УстановившийПодпись, УстановившийПодписьИд", + ДанныеСтроки.ОбъектИд, + ПодписьДвоичныеДанные, + ДанныеСтроки.Отпечаток, + ДанныеСтроки.ДатаПодписи, + ДанныеСтроки.Комментарий, + ДанныеСтроки.ИмяФайлаПодписи, + ДанныеСтроки.КомуВыданСертификат, + ДвоичныеДанныеСертификата, + ДанныеСтроки.ОбъектТип, + ДанныеСтроки.УстановившийПодпись, + ДанныеСтроки.УстановившийПодписьИд); + + МассивДанныхПодписей.Добавить(ДанныеПодписи); + + КонецЕсли; + + КонецЦикла; + + Для Каждого ДанныеПодписи Из ДобавленныеПодписи Цикл + МассивДанныхПодписей.Добавить(ДанныеПодписи); + КонецЦикла; + + Соответствие = Новый Соответствие; + + // Из массива удаленных строим массив объектов, где изменились подписи - в том числе тех, где не осталось ни одной подписи + Для Каждого СтрокаДобавленнойПодписи Из ДобавленныеПодписи Цикл + + Ид = СтрокаДобавленнойПодписи.ОбъектСсылка; + + ДанныеВладельца = Соответствие.Получить(Ид); + + Если ДанныеВладельца = Неопределено Тогда + ДанныеВладельца = Новый Структура("Тип, МассивПодписей", СтрокаДобавленнойПодписи.ОбъектТип, Новый Массив); + Соответствие.Вставить(Ид, ДанныеВладельца); + КонецЕсли; + + КонецЦикла; + + // Распределяем массив всех оставшихся подписей по объектам + Для Каждого Подпись Из МассивДанныхПодписей Цикл + + Ид = Подпись.ОбъектСсылка; + ДанныеВладельца = Соответствие.Получить(Ид); + + Если ДанныеВладельца <> Неопределено Тогда + ДанныеВладельца.МассивПодписей.Добавить(Подпись); + КонецЕсли; + + КонецЦикла; + + Возврат Соответствие; + +КонецФункции + +// Удаляет подписи документа и его файлов +Функция УдалитьПодписиДокумента(ТаблицаУдаленныеСтроки, ТаблицаПодписей, ЭтаФорма, + id, Тип, Файлы, Представление) Экспорт + + // получаем массив всех подписей + НомераСтрок = ПолучитьМассивДанныхПодписейСервер(ТаблицаПодписей); + + МассивДанныхПодписей = Новый Массив; // подписи, оставшиеся после удаления + + // формируем массив данных подписи + Для Каждого Элемент Из НомераСтрок Цикл + ДанныеСтроки = ТаблицаПодписей.НайтиПоИдентификатору(Элемент); + Если НЕ ПустаяСтрока(ДанныеСтроки.Объект) Тогда + + // по GUID объекта + номер строки - удаляем из массива всех те, что надо удалить + ПодписьУдалена = Ложь; + Для Каждого СтрокаУдаленнойПодписи Из ТаблицаУдаленныеСтроки Цикл + Если СтрокаУдаленнойПодписи.ОбъектСсылка = ДанныеСтроки.ОбъектИд И СтрокаУдаленнойПодписи.НомерСтроки = ДанныеСтроки.НомерСтроки Тогда + ПодписьУдалена = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + Если НЕ ПодписьУдалена Тогда + + ПодписьДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеСтроки.АдресПодписи); + ДвоичныеДанныеСертификата = ПолучитьИзВременногоХранилища(ДанныеСтроки.АдресСертификата); + + ДанныеПодписи = Новый Структура("ОбъектСсылка, НоваяПодписьДвоичныеДанные, Отпечаток, ДатаПодписи, Комментарий, ИмяФайлаПодписи, КомуВыданСертификат, ДвоичныеДанныеСертификата, ОбъектТип, УстановившийПодпись, УстановившийПодписьИд", + ДанныеСтроки.ОбъектИд, + ПодписьДвоичныеДанные, + ДанныеСтроки.Отпечаток, + ДанныеСтроки.ДатаПодписи, + ДанныеСтроки.Комментарий, + ДанныеСтроки.ИмяФайлаПодписи, + ДанныеСтроки.КомуВыданСертификат, + ДвоичныеДанныеСертификата, + ДанныеСтроки.ОбъектТип, + ДанныеСтроки.УстановившийПодпись, + ДанныеСтроки.УстановившийПодписьИд); + + МассивДанныхПодписей.Добавить(ДанныеПодписи); + КонецЕсли; + + КонецЕсли; + КонецЦикла; + + Соответствие = Новый Соответствие; + + // Из массива удаленных строим массив объектов, где изменились подписи - в том числе тех, где не осталось ни одной подписи + Для Каждого СтрокаУдаленнойПодписи Из ТаблицаУдаленныеСтроки Цикл + + Ид = СтрокаУдаленнойПодписи.ОбъектСсылка; + + ДанныеВладельца = Соответствие.Получить(Ид); + + Если ДанныеВладельца = Неопределено Тогда + ДанныеВладельца = Новый Структура("Тип, МассивПодписей", СтрокаУдаленнойПодписи.ОбъектТип, Новый Массив); + Соответствие.Вставить(Ид, ДанныеВладельца); + КонецЕсли; + + КонецЦикла; + + // Распределяем массив всех оставшихся подписей по объектам + Для Каждого Подпись Из МассивДанныхПодписей Цикл + + Ид = Подпись.ОбъектСсылка; + ДанныеВладельца = Соответствие.Получить(Ид); + + Если ДанныеВладельца <> Неопределено Тогда + ДанныеВладельца.МассивПодписей.Добавить(Подпись); + КонецЕсли; + + КонецЦикла; + + Возврат Соответствие; + +КонецФункции + +// заносит информацию о подписи файла в базу Документооборот +Процедура ЗанестиИнформациюОПодписяхОбъекта(Идентификатор, Имя, ОписаниеФайла, Тип, + МассивДанныхПодписей, МассивСуществующихПодписейФайла) Экспорт + + Прокси = ПолучитьПрокси(); + + ОбъектТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", Тип); + Объект = Прокси.ФабрикаXDTO.Создать(ОбъектТип); + + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + Объект.objectId = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + + Объект.objectId.id = Идентификатор; + Объект.objectId.type = Тип; + + // только 2 поля - Имя и Описание передаем при записи + Объект.name = Имя; + Объект.description = ОписаниеФайла; + + ПодписьТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMSignature"); + + Для Каждого ДанныеПодписи Из МассивСуществующихПодписейФайла Цикл + + ПодписьXDTO = Прокси.ФабрикаXDTO.Создать(ПодписьТип); + ЗаполнитьXDTOПодпись(Прокси, ПодписьXDTO, ДанныеПодписи); + Объект.signatures.Добавить(ПодписьXDTO); + + КонецЦикла; + + Для Каждого ДанныеПодписи Из МассивДанныхПодписей Цикл + + ПодписьXDTO = Прокси.ФабрикаXDTO.Создать(ПодписьТип); + + ПодписьXDTO.author = ДанныеПодписи.КомуВыданСертификат; + ПодписьXDTO.certificate = ДанныеПодписи.ДвоичныеДанныеСертификата; + ПодписьXDTO.comment = ДанныеПодписи.Комментарий; + ПодписьXDTO.date = ДанныеПодписи.ДатаПодписи; + ПодписьXDTO.signature = ДанныеПодписи.НоваяПодписьДвоичныеДанные; + ПодписьXDTO.signatureFileName = ДанныеПодписи.ИмяФайлаПодписи; + ПодписьXDTO.thumbprint = ДанныеПодписи.Отпечаток; + + Объект.signatures.Добавить(ПодписьXDTO); + + КонецЦикла; + + Ответ = РаботаС1СДокументооборот.ЗаписатьОбъект(Прокси, Объект); + +КонецПроцедуры + +//создает XDTO объект Файл +Функция СоздатьXDTOФайл(Прокси, МассивПодписей, Файл) Экспорт + + ОбъектТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMFile"); + Объект = Прокси.ФабрикаXDTO.Создать(ОбъектТип); + + Объект.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, Файл.УникальныйИдентификатор, "DMFile"); + + // только 2 поля - Имя и Описание передаем при записи + Объект.name = Файл.Наименование; + Объект.description = Файл.Описание; + + // тут ЭЦП добавить + ПодписьТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMSignature"); + + Для Каждого ДанныеПодписи Из МассивПодписей Цикл + + ПодписьXDTO = Прокси.ФабрикаXDTO.Создать(ПодписьТип); + ЗаполнитьXDTOПодпись(Прокси, ПодписьXDTO, ДанныеПодписи); + Объект.signatures.Добавить(ПодписьXDTO); + + КонецЦикла; + + Возврат Объект; + +КонецФункции + +// Возвращает ИспользоватьЭлектронныеЦифровыеПодписи +Функция ПолучитьИспользоватьЭлектронныеЦифровыеПодписи() Экспорт + УстановитьПривилегированныйРежим(Истина); + ИспользоватьЭлектронныеЦифровыеПодписи = Константы.ИспользоватьЭлектронныеЦифровыеПодписи.Получить(); + Возврат ИспользоватьЭлектронныеЦифровыеПодписи; +КонецФункции + +// создает в файл в 1С:Документооборот. возвращает UUID созданного файла +Функция СоздатьИзФайлаНаДискеСервер(ПараметрыСоздания, id, Тип, Представление) Экспорт + + Прокси = ПолучитьПрокси(); + Запрос = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMAddFileRequest"); + + ОбъектВладелец = РаботаС1СДокументооборот.СоздатьОбъект(Прокси, "DMObject"); + ОбъектВладелец.objectId = РаботаС1СДокументооборот.СоздатьObjectID(Прокси, id, Тип); + ОбъектВладелец.name = Представление; + + Запрос.owner = ОбъектВладелец; + + ФайлТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMFile"); + Запрос.file = Прокси.ФабрикаXDTO.Создать(ФайлТип); + + ОбъектИдТип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", "DMObjectID"); + Запрос.file.objectId = Прокси.ФабрикаXDTO.Создать(ОбъектИдТип); + + Запрос.file.objectId.id = ""; // пусто - пока не создан + Запрос.file.objectId.type = "DMFile"; + Запрос.file.name = ""; + + Запрос.file.binaryData = ПолучитьИзВременногоХранилища(ПараметрыСоздания.АдресВременногоХранилищаФайла); + Запрос.file.extension = ПараметрыСоздания.Расширение; + Запрос.file.modificationDate = ПараметрыСоздания.ВремяИзменения; + Запрос.file.modificationDateUniversal = ПараметрыСоздания.ВремяИзмененияУниверсальное; + Запрос.file.name = ПараметрыСоздания.Имя; + Запрос.file.size = ПараметрыСоздания.Размер; + + Размер = Запрос.file.binaryData.Размер(); + МаксРазмерФайла = ПолучитьМаксимальныйРазмерПередаваемогоФайла(); + РазмерВМб = Размер / (1024 * 1024); + РазмерВМбМакс = МаксРазмерФайла / (1024 * 1024); + + Если Размер > МаксРазмерФайла Тогда + + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Размер файла ""%1"" (%2 Мб) превышает максимально допустимый размер файла для передачи (%3 Мб).'"), + ПараметрыСоздания.Имя, + ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0")), + ?(РазмерВМбМакс >= 1, Формат(РазмерВМбМакс, "ЧДЦ=0"), Формат(РазмерВМбМакс, "ЧДЦ=1; ЧН=0"))); + КонецЕсли; + + Если НЕ ПустаяСтрока(ПараметрыСоздания.Текст) Тогда + Запрос.file.text = ПараметрыСоздания.Текст; + КонецЕсли; + + Ответ = Прокси.execute(Запрос); + ПроверитьВозвратВебСервиса(Прокси, Ответ); + + Возврат Ответ.file.objectId.id; + +КонецФункции + +// заполняет список файлов в карточке документа +Процедура ОбновитьСписокФайлов(files, Файлы, ГруппаФайлы) Экспорт + + Файлы.Очистить(); + + // файлы + Для каждого СведенияОФайле Из files Цикл + НоваяСтрока = Файлы.Добавить(); + + НоваяСтрока.Наименование = СведенияОФайле.name; + НоваяСтрока.Расширение = СведенияОФайле.extension; + НоваяСтрока.Описание = СведенияОФайле.description; + НоваяСтрока.Размер = Формат(СведенияОФайле.size/1024, "ЧЦ=10; ЧН=0"); + НоваяСтрока.ПодписанЭЦП = СведенияОФайле.signed; + НоваяСтрока.Автор = СведенияОФайле.author.name; + НоваяСтрока.УникальныйИдентификатор = СведенияОФайле.objectId.id; + НоваяСтрока.ДатаСоздания = СведенияОФайле.creationDate; + НоваяСтрока.ДатаМодификацииУниверсальная = СведенияОФайле.modificationDateUniversal; + Редактируется = СведенияОФайле.editing; + Зашифрован = СведенияОФайле.encrypted; + + НоваяСтрока.ИндексКартинки = ФайловыеФункцииКлиентСервер.ПолучитьИндексПиктограммыФайла(НоваяСтрока.Расширение); + КонецЦикла; + + ФайлыЗаголовок = НСтр("ru = 'Файлы'"); + + Если Файлы.Количество() <> 0 Тогда + ФайлыЗаголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Файлы (%1)'"), + Файлы.Количество()); + КонецЕсли; + + ГруппаФайлы.Заголовок = ФайлыЗаголовок; + +КонецПроцедуры + +// заполняет строку дерева на закладке ЭЦП в документе +Процедура ЗаполнитьСтрокуДерева(НоваяСтрокаДерева, Подпись, УникальныйИдентификатор) Экспорт + + НоваяСтрокаДерева.КомуВыданСертификат = Подпись.КомуВыданСертификат; + НоваяСтрокаДерева.ДатаПодписи = Подпись.ДатаПодписи; + НоваяСтрокаДерева.Комментарий = Подпись.Комментарий; + + НоваяСтрокаДерева.ОбъектИмя = Подпись.ОбъектИмя; + НоваяСтрокаДерева.ОбъектИд = Подпись.ОбъектИд; + НоваяСтрокаДерева.ОбъектТип = Подпись.ОбъектТип; + + НоваяСтрокаДерева.Объект = Подпись.ОбъектИд; + + НоваяСтрокаДерева.Отпечаток = Подпись.Отпечаток; + НоваяСтрокаДерева.НомерСтроки = Подпись.НомерСтроки; + НоваяСтрокаДерева.УстановившийПодпись = Подпись.УстановившийПодпись; + НоваяСтрокаДерева.УстановившийПодписьИд = Подпись.УстановившийПодписьИд; + НоваяСтрокаДерева.Неверна = Ложь; + НоваяСтрокаДерева.ИндексКартинки = -1; + + НоваяСтрокаДерева.ИмяФайлаПодписи = Подпись.ИмяФайлаПодписи; + + ДвоичныеДанные = Подпись.Подпись; + НоваяСтрокаДерева.АдресПодписи = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор); + + ДвоичныеДанныеСертификата = Подпись.Сертификат; + Если ДвоичныеДанныеСертификата <> Неопределено Тогда + НоваяСтрокаДерева.АдресСертификата = ПоместитьВоВременноеХранилище(ДвоичныеДанныеСертификата, УникальныйИдентификатор); + КонецЕсли; + +КонецПроцедуры + + +Функция ПолучитьПредставлениеТипа(ОбъектТип) + + ПредставлениеТипа = ""; + + Если ОбъектТип = "DMFile" Тогда + ПредставлениеТипа = "Файл"; + ИначеЕсли ОбъектТип = "DMInternalDocument" Тогда + ПредставлениеТипа = "Внутренний документ"; + ИначеЕсли ОбъектТип = "DMIncomingDocument" Тогда + ПредставлениеТипа = "Входящий документ"; + ИначеЕсли ОбъектТип = "DMOutgoingDocument" Тогда + ПредставлениеТипа = "Исходящий документ"; + КонецЕсли; + + Возврат ПредставлениеТипа; + +КонецФункции + +Процедура ЗаполнитьПоляПодписи(Подпись, ПодписьXDTO) + Подпись.Вставить("КомуВыданСертификат", ПодписьXDTO.author); + Подпись.Вставить("ДатаПодписи", ПодписьXDTO.date); + Подпись.Вставить("Комментарий", ПодписьXDTO.comment); + Подпись.Вставить("Подпись", ПодписьXDTO.signature); + Подпись.Вставить("Отпечаток", ПодписьXDTO.thumbprint); + Подпись.Вставить("Сертификат", ПодписьXDTO.certificate); + Подпись.Вставить("ИмяФайлаПодписи", ПодписьXDTO.signatureFileName); + Подпись.Вставить("УстановившийПодпись", ПодписьXDTO.signer.name); + Подпись.Вставить("УстановившийПодписьИд", ПодписьXDTO.signer.objectId.id); +КонецПроцедуры + +// Заполняет список подписей Входящего Исходящего Внутреннего документа и его подчиненных файлов +Процедура ЗаполнитьСписокПодписейСервер(ПодписиXDTO, ФайлыXDTO, Представление, id, Тип, ТаблицаПодписей, + УникальныйИдентификатор, ГруппаЭЦП, Файлы) Экспорт + + Соответствие = Новый Соответствие; + + Счетчик = 0; + Для Каждого ПодписьXDTO Из ПодписиXDTO Цикл + + Подпись = Новый Структура; + ЗаполнитьПоляПодписи(Подпись, ПодписьXDTO); + + Подпись.Вставить("НомерСтроки", Счетчик); + Подпись.Вставить("ОбъектИмя", Представление); + Подпись.Вставить("ОбъектИд", id); + Подпись.Вставить("ОбъектТип", Тип); + + Ид = Подпись.ОбъектИд; + ДанныеВладельца = Соответствие.Получить(Ид); + + Если ДанныеВладельца = Неопределено Тогда + ДанныеВладельца = Новый Структура("Тип, МассивПодписей", Подпись.ОбъектТип, Новый Массив); + Соответствие.Вставить(Ид, ДанныеВладельца); + КонецЕсли; + + ДанныеВладельца.МассивПодписей.Добавить(Подпись); + + Счетчик = Счетчик + 1; + + КонецЦикла; + + Для Каждого Файл Из ФайлыXDTO Цикл + + Счетчик = 0; + Для Каждого ПодписьXDTO Из Файл.signatures Цикл + + Подпись = Новый Структура; + ЗаполнитьПоляПодписи(Подпись, ПодписьXDTO); + + Подпись.Вставить("НомерСтроки", Счетчик); + Подпись.Вставить("ОбъектИмя", Файл.name); + Подпись.Вставить("ОбъектИд", Файл.objectId.id); + Подпись.Вставить("ОбъектТип", Файл.objectId.type); + + Ид = Подпись.ОбъектИд; + ДанныеВладельца = Соответствие.Получить(Ид); + + Если ДанныеВладельца = Неопределено Тогда + ДанныеВладельца = Новый Структура("Тип, МассивПодписей", Подпись.ОбъектТип, Новый Массив); + Соответствие.Вставить(Ид, ДанныеВладельца); + КонецЕсли; + + ДанныеВладельца.МассивПодписей.Добавить(Подпись); + + Счетчик = Счетчик + 1; + + КонецЦикла; + + КонецЦикла; + + ВсегоПодписей = 0; + ТаблицаПодписей.ПолучитьЭлементы().Очистить(); + + ЭлементыДерева = ТаблицаПодписей.ПолучитьЭлементы(); + + КоличествоПодписей = 0; + + Для Каждого ПараКлючЗначение Из Соответствие Цикл + + ИмяОбъекта = ПараКлючЗначение.Ключ; + ДанныеВладельца = ПараКлючЗначение.Значение; + + ТипОбъекта = ДанныеВладельца.Тип; + + Если ТипОбъекта <> "DMFile" И ДанныеВладельца.МассивПодписей.Количество() <> 0 Тогда + + НоваяСтрока = ЭлементыДерева.Добавить(); + // для ветки дерева используем КомуВыданСертификат как Представление + + ПредставлениеТипа = ПолучитьПредставлениеТипа(ДанныеВладельца.МассивПодписей[0].ОбъектТип); + + НоваяСтрока.КомуВыданСертификат = ПредставлениеТипа + " """ + Представление + """"; + НоваяСтрока.ИндексКартинки = 0; // стандартная иконка справочника + + Для Каждого Подпись Из ДанныеВладельца.МассивПодписей Цикл + + НоваяСтрокаДерева = НоваяСтрока.ПолучитьЭлементы().Добавить(); + ЗаполнитьСтрокуДерева(НоваяСтрокаДерева, Подпись, УникальныйИдентификатор); + КоличествоПодписей = КоличествоПодписей + 1; + + КонецЦикла; + + КонецЕсли; + + КонецЦикла; + + ВсегоПодписей = ВсегоПодписей + КоличествоПодписей; + + Для Каждого ПараКлючЗначение Из Соответствие Цикл + + ИмяОбъекта = ПараКлючЗначение.Ключ; + ДанныеВладельца = ПараКлючЗначение.Значение; + + ТипОбъекта = ДанныеВладельца.Тип; + + Если ТипОбъекта = "DMFile" И ДанныеВладельца.МассивПодписей.Количество() <> 0 Тогда + + НоваяСтрока = ЭлементыДерева.Добавить(); + // для ветки дерева используем КомуВыданСертификат как Представление + ПредставлениеТипа = ПолучитьПредставлениеТипа(ДанныеВладельца.МассивПодписей[0].ОбъектТип); + НоваяСтрока.КомуВыданСертификат = ПредставлениеТипа + " """ + Подпись.ОбъектИмя + """"; + + Отбор = Новый Структура("УникальныйИдентификатор", ДанныеВладельца.МассивПодписей[0].ОбъектИд); + СтрокаФайлов = Файлы.НайтиСтроки(Отбор); + Если СтрокаФайлов.Количество() <> 0 Тогда + НоваяСтрока.ИндексКартинки = СтрокаФайлов[0].ИндексКартинки; + КонецЕсли; + + КоличествоПодписей = 0; + + Для Каждого Подпись Из ДанныеВладельца.МассивПодписей Цикл + + НоваяСтрокаДерева = НоваяСтрока.ПолучитьЭлементы().Добавить(); + ЗаполнитьСтрокуДерева(НоваяСтрокаДерева, Подпись, УникальныйИдентификатор); + КоличествоПодписей = КоличествоПодписей + 1; + + КонецЦикла; + + ВсегоПодписей = ВсегоПодписей + КоличествоПодписей; + + КонецЕсли; + + КонецЦикла; + + ТекстЗаголовка = НСтр("ru = 'ЭЦП'"); + Если ВсегоПодписей <> 0 Тогда + ТекстЗаголовка = ТекстЗаголовка + " (" + Строка(ВсегоПодписей) + ")"; + КонецЕсли; + ГруппаЭЦП.Заголовок = ТекстЗаголовка; + +КонецПроцедуры + +// Проверяет все подписи (на сервере) из массива ВыделенныеСтроки +Процедура ПроверитьПодписиНаСервере(Знач ВыделенныеСтроки, ТаблицаПодписей, УникальныйИдентификатор, + АдресСлепкаДокумента) Экспорт + + МенеджерКриптографии = ПолучитьМенеджерКриптографии(); + + СоответствиеИдОбъектаИДвоичныхДанных = Новый Соответствие; + + Для Каждого Элемент Из ВыделенныеСтроки Цикл + ДанныеСтроки = ТаблицаПодписей.НайтиПоИдентификатору(Элемент); + + Если НЕ ПустаяСтрока(ДанныеСтроки.Объект) Тогда + ПроверитьОднуПодписьНаСервере(ДанныеСтроки, МенеджерКриптографии, УникальныйИдентификатор, + СоответствиеИдОбъектаИДвоичныхДанных, АдресСлепкаДокумента); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +// Проверяет одну электронно-цифровую подпись +Процедура ПроверитьОднуПодписьНаСервере(ДанныеСтроки, МенеджерКриптографии, УникальныйИдентификатор, + СоответствиеИдОбъектаИДвоичныхДанных, АдресСлепкаДокумента) Экспорт + + АдресПодписи = ДанныеСтроки.АдресПодписи; + ДвоичныеДанныеПодписи = ПолучитьИзВременногоХранилища(АдресПодписи); + + ДвоичныеДанныеФайла = СоответствиеИдОбъектаИДвоичныхДанных[ДанныеСтроки.ОбъектИд]; + + Если ДвоичныеДанныеФайла = Неопределено Тогда + + Если ДанныеСтроки.ОбъектТип = "DMFile" Тогда + ДвоичныеДанныеФайла = ПолучитьДвоичныеДанныеФайла(ДанныеСтроки.ОбъектИд); + Иначе + ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресСлепкаДокумента); + КонецЕсли; + + СоответствиеИдОбъектаИДвоичныхДанных[ДанныеСтроки.ОбъектИд] = ДвоичныеДанныеФайла; + КонецЕсли; + + Попытка + ЭлектроннаяЦифроваяПодпись.ПроверитьПодпись(МенеджерКриптографии, ДвоичныеДанныеФайла, ДвоичныеДанныеПодписи); + + ДанныеСтроки.Статус = НСтр("ru = 'Верна'"); + ДанныеСтроки.Неверна = Ложь; + Исключение + ДанныеСтроки.Статус = НСтр("ru = 'Неверна. '"); + Инфо = ИнформацияОбОшибке(); + Если Инфо.Причина <> Неопределено Тогда + ДанныеСтроки.Статус = ДанныеСтроки.Статус + Инфо.Причина.Описание; + КонецЕсли; + ДанныеСтроки.Неверна = Истина; + КонецПопытки; + +КонецПроцедуры + +// Проверяет все подписи (на сервере) из массива ВыделенныеСтроки +Процедура ПроверитьВсеПодписиНаСервере(ТаблицаПодписей, УникальныйИдентификатор, + АдресСлепкаДокумента) Экспорт + + МенеджерКриптографии = ПолучитьМенеджерКриптографии(); + СоответствиеИдОбъектаИДвоичныхДанных = Новый Соответствие; + + НомераСтрок = ПолучитьМассивДанныхПодписейСервер(ТаблицаПодписей); + Для Каждого Элемент Из НомераСтрок Цикл + ДанныеСтроки = ТаблицаПодписей.НайтиПоИдентификатору(Элемент); + Если НЕ ПустаяСтрока(ДанныеСтроки.Объект) Тогда + ПроверитьОднуПодписьНаСервере(ДанныеСтроки, МенеджерКриптографии, УникальныйИдентификатор, + СоответствиеИдОбъектаИДвоичныхДанных, АдресСлепкаДокумента); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +// Получает менеджер криптографии +Функция ПолучитьМенеджерКриптографии() Экспорт + + УстановитьПривилегированныйРежим(Истина); + ПровайдерЭЦП = Константы.ПровайдерЭЦП.Получить(); + ПутьМодуляКриптографии = ЭлектроннаяЦифроваяПодписьПовтИсп.ПутьМодуляКриптографии(); + ТипПровайдераЭЦП = Константы.ТипПровайдераЭЦП.Получить(); + АлгоритмПодписи = Константы.АлгоритмПодписи.Получить(); + АлгоритмХеширования = Константы.АлгоритмХеширования.Получить(); + АлгоритмШифрования = Константы.АлгоритмШифрования.Получить(); + УстановитьПривилегированныйРежим(Ложь); + + МенеджерКриптографии = Новый МенеджерКриптографии(ПровайдерЭЦП, ПутьМодуляКриптографии, ТипПровайдераЭЦП); + МенеджерКриптографии.АлгоритмПодписи = АлгоритмПодписи; + МенеджерКриптографии.АлгоритмХеширования = АлгоритмХеширования; + МенеджерКриптографии.АлгоритмШифрования = АлгоритмШифрования; + + Возврат МенеджерКриптографии; + +КонецФункции + +// Преобразует 2-уровневое дерево в массив +Функция ПолучитьМассивДанныхПодписейСервер(ТаблицаПодписей) Экспорт + + ДанныеСтрок = Новый Массив; + + ЭлементыПервогоУровня = ТаблицаПодписей.ПолучитьЭлементы(); + + Для Каждого СтрокаУровняОдин Из ЭлементыПервогоУровня Цикл + ЭлементыВторогоУровня = СтрокаУровняОдин.ПолучитьЭлементы(); + + Для Каждого Строка Из ЭлементыВторогоУровня Цикл + ДанныеСтрок.Добавить(Строка.ПолучитьИдентификатор()); + КонецЦикла; + КонецЦикла; + + Возврат ДанныеСтрок; + +КонецФункции + + +// получает массив подписей +Функция ПолучитьВыделенныеПодписи( + ВыделенныеСтроки, ТаблицаПодписей) Экспорт + + ТаблицаВыделенныеСтроки = Новый ТаблицаЗначений; + + ТаблицаВыделенныеСтроки.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число")); + ТаблицаВыделенныеСтроки.Колонки.Добавить("ОбъектСсылка", Новый ОписаниеТипов("Строка")); + ТаблицаВыделенныеСтроки.Колонки.Добавить("ОбъектТип", Новый ОписаниеТипов("Строка")); + + Для Каждого Элемент Из ВыделенныеСтроки Цикл + + ДанныеСтроки = ТаблицаПодписей.НайтиПоИдентификатору(Элемент); + + Если НЕ ПустаяСтрока(ДанныеСтроки.Объект) Тогда + + НоваяСтрока = ТаблицаВыделенныеСтроки.Добавить(); + НоваяСтрока.НомерСтроки = ДанныеСтроки.НомерСтроки; + НоваяСтрока.ОбъектСсылка = ДанныеСтроки.ОбъектИд; + НоваяСтрока.ОбъектТип = ДанныеСтроки.ОбъектТип; + + КонецЕсли; + КонецЦикла; + + Возврат ТаблицаВыделенныеСтроки; + +КонецФункции + +Процедура ПолучитьОбъектыДляПодписи(ОбъектИд, ОбъектТип, УникальныйИдентификатор, МассивОбъектовДляПодписи, Файлы, + ДвоичныеДанные) Экспорт + + ОбъектДляПодписи = Новый Структура("ДвоичныеДанные, ОбъектСсылкаДляПодписи, ОбъектТип", + ДвоичныеДанные, ОбъектИд, ОбъектТип); + МассивОбъектовДляПодписи.Добавить(ОбъектДляПодписи); + + // тут собираем все подчиненные файлы + ДанныеФайлов = ПолучитьДвоичныеДанныеФайлов(Файлы); + + Для Каждого Файл Из ДанныеФайлов.objects Цикл + + ОбъектДляПодписи = Новый Структура("ДвоичныеДанные, ОбъектСсылкаДляПодписи, ОбъектТип", + Файл.binaryData, Файл.objectId.id, Файл.objectId.type); + МассивОбъектовДляПодписи.Добавить(ОбъектДляПодписи); + + КонецЦикла; + +КонецПроцедуры + +// вернет массив подписей файла +Функция ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла, ТаблицаПодписей) Экспорт + + // получаем массив всех подписей + НомераСтрок = ПолучитьМассивДанныхПодписейСервер(ТаблицаПодписей); + + МассивДанныхПодписей = Новый Массив; // подписи, оставшиеся после удаления + + // формируем массив данных подписи + Для Каждого Элемент Из НомераСтрок Цикл + ДанныеСтроки = ТаблицаПодписей.НайтиПоИдентификатору(Элемент); + Если НЕ ПустаяСтрока(ДанныеСтроки.Объект) Тогда + + Если ДанныеСтроки.ОбъектИд = ИдентификаторФайла Тогда + + ПодписьДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеСтроки.АдресПодписи); + ДвоичныеДанныеСертификата = ПолучитьИзВременногоХранилища(ДанныеСтроки.АдресСертификата); + + ДанныеПодписи = Новый Структура("ОбъектСсылка, НоваяПодписьДвоичныеДанные, Отпечаток, ДатаПодписи, Комментарий, ИмяФайлаПодписи, КомуВыданСертификат, ДвоичныеДанныеСертификата, ОбъектТип, УстановившийПодпись, УстановившийПодписьИд", + ДанныеСтроки.ОбъектИд, + ПодписьДвоичныеДанные, + ДанныеСтроки.Отпечаток, + ДанныеСтроки.ДатаПодписи, + ДанныеСтроки.Комментарий, + ДанныеСтроки.ИмяФайлаПодписи, + ДанныеСтроки.КомуВыданСертификат, + ДвоичныеДанныеСертификата, + ДанныеСтроки.ОбъектТип, + ДанныеСтроки.УстановившийПодпись, + ДанныеСтроки.УстановившийПодписьИд); + + МассивДанныхПодписей.Добавить(ДанныеПодписи); + КонецЕсли; + + КонецЕсли; + КонецЦикла; + + Возврат МассивДанныхПодписей; + +КонецФункции + +// Интеграция с 1С:Документооборот +// Возвращает максимальный размер файла +// +Функция ПолучитьМаксимальныйРазмерПередаваемогоФайла() Экспорт + + УстановитьПривилегированныйРежим(Истина); + МаксимальныйРазмерФайлаПередачи = Константы.МаксимальныйРазмерФайлаДляПередачиВ1СДокументооборот.Получить(); + + Если МаксимальныйРазмерФайлаПередачи = Неопределено ИЛИ МаксимальныйРазмерФайлаПередачи = 0 Тогда + МаксимальныйРазмерФайлаПередачи = 10*1024*1024; // 10 мб + Константы.МаксимальныйРазмерФайлаДляПередачиВ1СДокументооборот.Установить(МаксимальныйРазмерФайлаПередачи); + КонецЕсли; + + Возврат МаксимальныйРазмерФайлаПередачи; + +КонецФункции + +// заполнить список файлов копированием присоединенных файлов или Файлов из внешнего объекта +Процедура ЗаполнитьКопированием(ВнешнийОбъект, id, Тип, Представление, УникальныйИдентификатор) Экспорт + + МассивФайлов = ФайловыеФункцииПереопределяемый.ПолучитьХранимыеФайлы(ВнешнийОбъект); + + Для Каждого ДанныеФайла Из МассивФайлов Цикл + + ПараметрыСоздания = Новый Структура("Имя, Расширение, Размер, ВремяИзменения, ВремяИзмененияУниверсальное, АдресВременногоХранилищаФайла, Текст, ВебКлиент"); + + ВремяИзменения = МестноеВремя(ДанныеФайла.ДатаМодификацииУниверсальная); + ВремяИзмененияУниверсальное = ДанныеФайла.ДатаМодификацииУниверсальная; + Размер = ДанныеФайла.Размер; + ИмяБезРасширения = ДанныеФайла.Наименование; + Расширение = ДанныеФайла.Расширение; + + // Поместим Файл в ВременноеХранилище + Если ТипЗнч(ДанныеФайла.ДвоичныеДанныеФайла) = Тип("Строка") И ЭтоАдресВременногоХранилища(ДанныеФайла.ДвоичныеДанныеФайла) Тогда + АдресВременногоХранилищаФайла = ДанныеФайла.ДвоичныеДанныеФайла; + Иначе // двоичные данные + АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДанныеФайла.ДвоичныеДанныеФайла, УникальныйИдентификатор); + КонецЕсли; + + ПараметрыСоздания.АдресВременногоХранилищаФайла = АдресВременногоХранилищаФайла; + ПараметрыСоздания.Расширение = Расширение; + ПараметрыСоздания.ВремяИзменения = ВремяИзменения; + ПараметрыСоздания.ВремяИзмененияУниверсальное = ВремяИзмененияУниверсальное; + ПараметрыСоздания.Имя = ИмяБезРасширения; + ПараметрыСоздания.Размер = Размер; + ПараметрыСоздания.Текст = ДанныеФайла.Текст; + + ИдентификаторСозданногоФайла = СоздатьИзФайлаНаДискеСервер(ПараметрыСоздания, id, Тип, Представление); + + КонецЦикла; + +КонецПроцедуры diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборотВызовСервера/РаботаС1СДокументооборотВызовСервера.mdo b/SSL/src/CommonModules/РаботаС1СДокументооборотВызовСервера/РаботаС1СДокументооборотВызовСервера.mdo new file mode 100644 index 000000000..ff718348c --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборотВызовСервера/РаботаС1СДокументооборотВызовСервера.mdo @@ -0,0 +1,10 @@ + + + РаботаС1СДокументооборотВызовСервера + + ru + Работа с 1С:Документооборот + + true + true + diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборотКлиент/Module.bsl b/SSL/src/CommonModules/РаботаС1СДокументооборотКлиент/Module.bsl new file mode 100644 index 000000000..8fe01f502 --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборотКлиент/Module.bsl @@ -0,0 +1,1326 @@ + +// Открывает форму выбора значения из списка объектов документооборота и помещает выбранное значение на форме +// Параметры: +// ТипОбъектаВыбора - имя класса XDTO, соответствующего типу выбираемого объекта +// Реквизит - имя реквизита формы, в который будет помещено значение, выбранное из документооборота +// ФормаВладелец - форма, из которой вызывается форма выбора +// Отбор - условия, накладываемые на список +Функция ВыбратьЗначениеИзСписка(ТипОбъектаВыбора, Реквизит, ФормаВладелец, Отбор = Неопределено) Экспорт + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ТипОбъектаВыбора", ТипОбъектаВыбора); + ПараметрыФормы.Вставить("Отбор", Отбор); + + Заголовок = "Выбор значения"; + Если ТипОбъектаВыбора = "DMFile" Тогда Заголовок = "Выбор файла"; + ИначеЕсли ТипОбъектаВыбора = "DMFileFolder" Тогда Заголовок = "Выбор папки файлов"; + ИначеЕсли ТипОбъектаВыбора = "DMOrganization" Тогда Заголовок = "Выбор организации"; + ИначеЕсли ТипОбъектаВыбора = "DMUser" Тогда Заголовок = "Выбор пользователя"; + ИначеЕсли ТипОбъектаВыбора = "DMActivityMatter" Тогда Заголовок = "Выбор вопроса деятельности"; + ИначеЕсли ТипОбъектаВыбора = "DMCurrency" Тогда Заголовок = "Выбор валюты"; + ИначеЕсли ТипОбъектаВыбора = "DMInternalDocument" Тогда Заголовок = "Выбор внутреннего документа"; + ИначеЕсли ТипОбъектаВыбора = "DMIncomingDocument" Тогда Заголовок = "Выбор входящего документа"; + ИначеЕсли ТипОбъектаВыбора = "DMOutgoingDocument" Тогда Заголовок = "Выбор исходящего документа"; + ИначеЕсли ТипОбъектаВыбора = "DMCorrespondent" Тогда Заголовок = "Выбор корреспондента"; + ИначеЕсли ТипОбъектаВыбора = "DMContactPerson" Тогда Заголовок = "Выбор контактного лица"; + ИначеЕсли ТипОбъектаВыбора = "DMSubdivision" Тогда Заголовок = "Выбор подразделения"; + ИначеЕсли ТипОбъектаВыбора = "DMAccessLevel" Тогда Заголовок = "Выбор грифа доступа"; + ИначеЕсли ТипОбъектаВыбора = "DMDeliveryMethod" Тогда Заголовок = "Выбор способа доставки"; + ИначеЕсли ТипОбъектаВыбора = "DMIncomingDocumentType" Тогда Заголовок = "Выбор вида входящего документа"; + ИначеЕсли ТипОбъектаВыбора = "DMOutgoingDocumentType" Тогда Заголовок = "Выбор вида исходящего документа"; + ИначеЕсли ТипОбъектаВыбора = "DMInternalDocumentType" Тогда Заголовок = "Выбор вида внутреннего документа"; + ИначеЕсли ТипОбъектаВыбора = "DMInternalDocumentFolder" Тогда Заголовок = "Выбор папки внутреннего документа"; + ИначеЕсли ТипОбъектаВыбора = "DMRelationType" Тогда Заголовок = "Выбор типа связи"; + ИначеЕсли ТипОбъектаВыбора = "DMPrivatePerson" Тогда Заголовок = "Выбор физического лица"; + ИначеЕсли ТипОбъектаВыбора = "DMProlongationProcedure" Тогда Заголовок = "Выбор способа продления"; + ИначеЕсли ТипОбъектаВыбора = "DMDocumentStatus" Тогда Заголовок = "Выбор состояния документа"; + ИначеЕсли ТипОбъектаВыбора = "DMBusinessProcessOrderTemplate" Тогда Заголовок = "Выбор шаблона поручения"; + ИначеЕсли ТипОбъектаВыбора = "DMBusinessProcessConsiderationTemplate" Тогда Заголовок = "Выбор шаблона рассмотрения"; + ИначеЕсли ТипОбъектаВыбора = "DMBusinessProcessRegistrationTemplate" Тогда Заголовок = "Выбор шаблона регистрации"; + ИначеЕсли ТипОбъектаВыбора = "DMBusinessProcessApprovalTemplate" Тогда Заголовок = "Выбор шаблона согласования"; + ИначеЕсли ТипОбъектаВыбора = "DMBusinessProcessConfirmationTemplate" Тогда Заголовок = "Выбор шаблона утверждения"; + ИначеЕсли ТипОбъектаВыбора = "DMBusinessProcessPerformanceTemplate" Тогда Заголовок = "Выбор шаблона исполнения"; + ИначеЕсли ТипОбъектаВыбора = "DMBusinessProcessAcquaintanceTemplate" Тогда Заголовок = "Выбор шаблона ознакомления"; + ИначеЕсли ТипОбъектаВыбора = "DMComplexBusinessProcessTemplate" Тогда Заголовок = "Выбор шаблона составного бизнес-процесса"; + ИначеЕсли ТипОбъектаВыбора = "DMBusinessProcessImportance" Тогда Заголовок = "Выбор варианта важности"; + КонецЕсли; + ПараметрыФормы.Вставить("Заголовок", Заголовок); + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИзСписка", ПараметрыФормы, ФормаВладелец); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + ФормаВладелец[Реквизит] = Результат.РеквизитПредставление; + ФормаВладелец[Реквизит + "ID"] = Результат.РеквизитID; + ФормаВладелец[Реквизит + "Тип"] = Результат.РеквизитТип; + ФормаВладелец.Модифицированность = Истина; + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +// Открывает форму выбора пользователей в разрезе подразделений и помещает выбранного пользователя в реквизит формы +// Параметры: +// Реквизит - имя реквизита формы, в который будет помещен выбранный пользователь +// ФормаВладелец - форма, из которой вызывается форма выбора пользователя +Процедура ВыбратьПользователяИзДереваПодразделений(Реквизит, ФормаВладелец) Экспорт + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборПользователяСПодразделениями", , ФормаВладелец); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + ФормаВладелец[Реквизит] = Результат.РеквизитПредставление; + ФормаВладелец[Реквизит + "id"] = Результат.РеквизитID; + ФормаВладелец[Реквизит + "Тип"] = Результат.РеквизитТип; + ФормаВладелец.Модифицированность = Истина; + КонецЕсли; + +КонецПроцедуры + +// Открывает форму для указания значения дополнительного реквизита +// Параметры: +// Форма - форма, на которой осуществляется работа с дополнительным реквизитом +// и из которой вызывается форма заполнения +// Элемент - элемент формы, в который будет помещено указанной значение +// СтандартнаяОбработка - параметр обработки, используемый в обработчике на форме, +// из которой вызывается заполнение значения доп. реквизита +Процедура ВыбратьЗначениеДополнительногоРеквизита(Форма, Элемент, СтандартнаяОбработка) Экспорт + + СтандартнаяОбработка = Ложь; + + СписокДоступныхТипов = Элемент.Родитель.ТекущиеДанные.СписокДоступныхТипов; + + Если СписокДоступныхТипов.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Если СписокДоступныхТипов.Количество() > 1 Тогда + ЗаголовокФормы = НСтр("ru = 'Тип реквизита """ + Элемент.Родитель.ТекущиеДанные.Свойство + """'"); + ПараметрыФормы = Новый Структура("СписокДоступныхТипов, ЗаголовокФормы", СписокДоступныхТипов, ЗаголовокФормы); + ИмяТипа = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборОдногоТипаИзСоставногоТипа", ПараметрыФормы, Форма); + Если ИмяТипа = Неопределено Тогда + Возврат; + КонецЕсли; + Иначе + ИмяТипа = СписокДоступныхТипов[0].Значение.XDTOClassName; + КонецЕсли; + + Если ИмяТипа = "integer" + ИЛИ ИмяТипа = "boolean" + ИЛИ ИмяТипа = "string" + ИЛИ ИмяТипа = "date" Тогда + + Если ИмяТипа = "integer" Тогда + ТипЗначения = Тип("Число"); + ИначеЕсли ИмяТипа = "boolean" Тогда + ТипЗначения = Тип("Булево"); + ИначеЕсли ИмяТипа = "string" Тогда + ТипЗначения = Тип("Строка"); + ИначеЕсли ИмяТипа = "date" Тогда + ТипЗначения = Тип("Дата"); + КонецЕсли; + //ввод значения примитивного типа - строка, число и т.п. + ВвестиЗначение(Элемент.Родитель.ТекущиеДанные.Значение, Элемент.Родитель.ТекущиеДанные.Свойство, ТипЗначения); + + Иначе + + ПараметрыФормы = Новый Структура; + + Владелец = Новый Структура; + Владелец.Вставить("id", Элемент.Родитель.ТекущиеДанные.СвойствоID); + Владелец.Вставить("type", Элемент.Родитель.ТекущиеДанные.СвойствоТип); + Отбор = Новый Структура; + Отбор.Вставить("additionalProperty", Владелец); + + ПараметрыФормы.Вставить("Отбор", Отбор); + ПараметрыФормы.Вставить("ТипОбъектаВыбора", ИмяТипа); + + Результат = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИзСписка", ПараметрыФормы, Форма); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + Элемент.Родитель.ТекущиеДанные.ЗначениеID = Результат.РеквизитID; + Элемент.Родитель.ТекущиеДанные.ЗначениеТип = Результат.РеквизитТип; + Элемент.Родитель.ТекущиеДанные.Значение = Результат.РеквизитПредставление; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +// Очищает id и Тип при очистке реквизита +Процедура ОчиститьСсылочныйРеквизит(Реквизит, ФормаВладелец) Экспорт + + ФормаВладелец[Реквизит + "id"] = ""; + ФормаВладелец[Реквизит + "Тип"] = ""; + ФормаВладелец.Модифицированность = Истина; + +КонецПроцедуры + +Процедура ОбработкаВыбораДанныхДляАвтоПодбора(Реквизит, ВыбранноеЗначение, СтандартнаяОбработка, ФормаВладелец) Экспорт + + Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда + СтандартнаяОбработка = Ложь; + + ФормаВладелец[Реквизит] = ВыбранноеЗначение.Name; + ФормаВладелец[Реквизит + "id"] = ВыбранноеЗначение.id; + ФормаВладелец[Реквизит + "Тип"] = ВыбранноеЗначение.type; + ФормаВладелец.Модифицированность = Истина; + КонецЕсли; + +КонецПроцедуры + +Процедура ПрименитьВыборЗначенияРеквизитаВСписке(ЭлементСписок, ВыбранноеЗначение, СтандартнаяОбработка, ФормаВладелец) Экспорт + + Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда + СтандартнаяОбработка = Ложь; + + ЭлементСписок.ТекущиеДанные["Значение"] = ВыбранноеЗначение.Name; + ЭлементСписок.ТекущиеДанные["ЗначениеID"] = ВыбранноеЗначение.id; + ЭлементСписок.ТекущиеДанные["ЗначениеТип"] = ВыбранноеЗначение.type; + ФормаВладелец.Модифицированность = Истина; + КонецЕсли; + +КонецПроцедуры + +///////////////////////////////////////////////////////////////// +//// РАБОТА С ФАЙЛАМИ + +// Открывать файл для просмотра +Процедура ОткрытьФайл(ИдентификаторФайла, Расширение, Имя, Размер, ДатаМодификацииУниверсальная, КаталогДляСохраненияДанных, УникальныйИдентификаторФормы) Экспорт + + АдресВременногоХранилища = РаботаС1СДокументооборотВызовСервера.ПолучитьАдресФайла(ИдентификаторФайла, УникальныйИдентификаторФормы); + + РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); + + Если НЕ РасширениеПодключено Тогда + + ИмяФайла = ПолучитьИмяСРасширением(Имя, Расширение); + ПолучитьФайл(АдресВременногоХранилища, ИмяФайла, Истина); + + Иначе + ИмяВременногоФайла = ""; + #Если НЕ ВебКлиент Тогда + ИмяВременногоФайла = ПолучитьИмяВременногоФайла(Расширение); + #Иначе + Если ПустаяСтрока(КаталогДляСохраненияДанных) Тогда + Предупреждение(НСтр("ru='Выберите рабочий каталог для интеграции.'")); + Возврат; + КонецЕсли; + + ИмяВременногоФайла = КаталогДляСохраненияДанных; + ФайловыеФункцииКлиентСервер.ДобавитьСлешЕслиНужно(ИмяВременногоФайла, ФайловыеФункцииКлиентПовтИсп.ТипПлатформыКлиента()); + СлучайноеИмяФайла = Имя + " (" + Секунда(ТекущаяДата()) + ")"; + ИмяВременногоФайла = ИмяВременногоФайла + СлучайноеИмяФайла + "." + Расширение; + + #КонецЕсли + + ПередаваемыеФайлы = Новый Массив; + Описание = Новый ОписаниеПередаваемогоФайла(ИмяВременногоФайла, АдресВременногоХранилища); + ПередаваемыеФайлы.Добавить(Описание); + + Файл = Новый Файл(ИмяВременногоФайла); + ПутьКФайлу = Файл.Путь; + Если Прав(ПутьКФайлу,1) <> "\" Тогда + ПутьКФайлу = ПутьКФайлу + "\"; + КонецЕсли; + + ИмяФайла = ПолучитьИмяСРасширением(Имя, Расширение); + РазмерВМб = Размер / (1024 * 1024); + + ТекстПояснения = + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Выполняется передача файла ""%1"" (%2 Мб)... + |Пожалуйста, подождите.'"), + ИмяФайла, ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0"))); + + Состояние(ТекстПояснения); + + // Сохраним Файл из БД на диск + Если ПолучитьФайлы(ПередаваемыеФайлы,, ПутьКФайлу, Ложь) Тогда + + Состояние(); + + ДатаСоздаваемогоФайлаНаДиске = ДатаМодификацииУниверсальная; + ОбщегоНазначенияКлиент.ПреобразоватьЗимнееВремяКТекущему(ДатаСоздаваемогоФайлаНаДиске); + Файл.УстановитьВремяИзменения(ДатаСоздаваемогоФайлаНаДиске); + + ОткрытьФайлПриложением(ИмяВременногоФайла); + Иначе + Состояние(); + КонецЕсли; + + КонецЕсли; + + УдалитьИзВременногоХранилища(АдресВременногоХранилища); + +КонецПроцедуры + +Процедура ОткрытьФайлПриложением(ИмяОткрываемогоФайла) + + РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); + + Если РасширениеПодключено Тогда + // Открыть Файл + Попытка + + ЗапуститьПриложение(ИмяОткрываемогоФайла); + + Исключение + + Инфо = ИнформацияОбОшибке(); + Предупреждение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Описание=""%1""'"), + Инфо.Описание)); + + КонецПопытки; + КонецЕсли; + +КонецПроцедуры + +// Возвращает имя с расширением- если расширение пусто - только имя +// +Функция ПолучитьИмяСРасширением(ПолноеНаименование, Расширение) Экспорт + + ИмяСРасширением = ПолноеНаименование; + + Если Расширение <> "" Тогда + ИмяСРасширением = ИмяСРасширением + "." + Расширение; + КонецЕсли; + + Возврат ИмяСРасширением; + +КонецФункции + +// Сохранение на диск Файла +// +Функция СохранитьКак(ИдентификаторФайла, Расширение, Имя, Размер, ДатаМодификацииУниверсальная, УникальныйИдентификаторФормы) Экспорт + + АдресВременногоХранилища = РаботаС1СДокументооборотВызовСервера.ПолучитьАдресФайла(ИдентификаторФайла, УникальныйИдентификаторФормы); + + РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); + + Если РасширениеПодключено Тогда + + ПутьВыбора = ""; + #Если НЕ ВебКлиент Тогда + + Если СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента().ЭтоБазоваяВерсияКонфигурации Тогда + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Данная операция не поддерживается в базовой версии.'")); + Возврат ""; + КонецЕсли; + + Оболочка = Новый COMОбъект("MSScriptControl.ScriptControl"); + Оболочка.Language = "vbscript"; + Оболочка.AddCode(" + |Function SpecialFoldersName(Name) + |set Shell=CreateObject(""WScript.Shell"") + |SpecialFoldersName=Shell.SpecialFolders(Name) + |End Function"); + ПутьВыбора = Оболочка.Run("SpecialFoldersName", "MyDocuments"); + #КонецЕсли + + ИмяСРасширением = ПолучитьИмяСРасширением(Имя, Расширение); + + // выбираем путь к файлу на диске + ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); + ВыборФайла.МножественныйВыбор = Ложь; + ВыборФайла.ПолноеИмяФайла = ИмяСРасширением; + Фильтр = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Все файлы (*.%1)|*.%1'"), Расширение, Расширение); + ВыборФайла.Фильтр = Фильтр; + ВыборФайла.Каталог = ПутьВыбора; + + Если ВыборФайла.Выбрать() Тогда + + АдресФайла = АдресВременногоХранилища; + + ИмяФайла = ИмяСРасширением; + РазмерВМб = Размер / (1024 * 1024); + + ТекстПояснения = + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Выполняется сохранение файла ""%1"" (%2 Мб)... + |Пожалуйста, подождите.'"), + ИмяФайла, ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0"))); + + Состояние(ТекстПояснения); + + Файл = Новый Файл(ВыборФайла.ПолноеИмяФайла); + Если Файл.Существует() Тогда + Файл.УстановитьТолькоЧтение(Ложь); + УдалитьФайлы(ВыборФайла.ПолноеИмяФайла); + КонецЕсли; + + ПередаваемыеФайлы = Новый Массив; + Описание = Новый ОписаниеПередаваемогоФайла(ВыборФайла.ПолноеИмяФайла, АдресФайла); + ПередаваемыеФайлы.Добавить(Описание); + + ПутьКФайлу = Файл.Путь; + Если Прав(ПутьКФайлу,1) <> "\" Тогда + ПутьКФайлу = ПутьКФайлу + "\"; + КонецЕсли; + + // Сохраним Файл из БД на диск + Если ПолучитьФайлы(ПередаваемыеФайлы,, ПутьКФайлу, Ложь) Тогда + + // для варианта с хранением файлов на диске (на сервере) удаляем Файл из временного хранилища после получения + Если ЭтоАдресВременногоХранилища(АдресФайла) Тогда + УдалитьИзВременногоХранилища(АдресФайла); + КонецЕсли; + + НовыйФайл = Новый Файл(ВыборФайла.ПолноеИмяФайла); + + ДатаСоздаваемогоФайлаНаДиске = ДатаМодификацииУниверсальная; + ОбщегоНазначенияКлиент.ПреобразоватьЗимнееВремяКТекущему(ДатаСоздаваемогоФайлаНаДиске); + + НовыйФайл.УстановитьВремяИзменения(ДатаСоздаваемогоФайлаНаДиске); + + Состояние(НСтр("ru = 'Файл успешно сохранен'"), , ВыборФайла.ПолноеИмяФайла); + КонецЕсли; + + Возврат ВыборФайла.ПолноеИмяФайла; + КонецЕсли; + + Иначе // веб клиент + АдресФайла = АдресВременногоХранилища; + + ИмяФайла = ИмяСРасширением; + РазмерВМб = Размер / (1024 * 1024); + + ТекстПояснения = + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Выполняется сохранение файла ""%1"" (%2 Мб)... + |Пожалуйста, подождите.'"), + ИмяФайла, ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0"))); + + Состояние(ТекстПояснения); + + // Сохраним Файл из БД на диск + ПолучитьФайл(АдресФайла, ИмяФайла, Истина); + + // для варианта с хранением файлов на диске (на сервере) удаляем Файл из временного хранилища после получения + Если ЭтоАдресВременногоХранилища(АдресФайла) Тогда + УдалитьИзВременногоХранилища(АдресФайла); + КонецЕсли; + + КонецЕсли; + + Возврат ""; +КонецФункции + +// обновить из файла на диске +Функция ОбновитьИзФайлаНаДиске(ИдентификаторФайла, УникальныйИдентификатор) Экспорт + + РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); + ИдентификаторСозданногоФайла = Неопределено; + + Если РасширениеПодключено Тогда + + ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); + ВыборФайла.МножественныйВыбор = Ложь; + ВыборФайла.Заголовок = НСтр("ru = 'Выбор файла'"); + ВыборФайла.Фильтр = НСтр("ru = 'Все файлы (*.*)|*.*'"); + + Результат = ВыборФайла.Выбрать(); + ПолноеИмяФайла = ВыборФайла.ПолноеИмяФайла; + + Если НЕ Результат Тогда + Возврат Ложь; + КонецЕсли; + + ОбновитьИзФайлаНаДискеТонкийКлиент(ПолноеИмяФайла, ИдентификаторФайла, УникальныйИдентификатор); + + Иначе + + // Если веб-клиент без расширения + + ПараметрыСоздания = Новый Структура("Имя, Расширение, Размер, ВремяИзменения, ВремяИзмененияУниверсальное, АдресВременногоХранилищаФайла, Текст, ВебКлиент, ИдентификаторФайла"); + + ВремяИзменения = ТекущаяДата(); // Т.к. не можем получить дату модификации файла на диске + ВремяИзмененияУниверсальное = УниверсальноеВремя(ТекущаяДата()); + Размер = 0; // Т.к. не можем получить размер файла на диске + ИмяБезРасширения = ""; + Расширение = ""; + Текст = ""; + + // Поместим Файл в ВременноеХранилище + АдресВременногоХранилищаФайла = ""; + ИмяФайла = ""; + Если НЕ ПоместитьФайл(АдресВременногоХранилищаФайла, ИмяФайла, ИмяФайла, Истина, УникальныйИдентификатор) Тогда + Возврат Ложь; + КонецЕсли; + + СтрокиПути = ФайловыеФункцииКлиентСервер.РазложитьСтрокуПоТочкамИСлэшам(ИмяФайла); + Если СтрокиПути.Количество() >= 2 Тогда + Расширение = СтрокиПути[СтрокиПути.Количество()-1]; + ИмяБезРасширения = СтрокиПути[СтрокиПути.Количество()-2]; + Иначе + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка при помещении файла в хранилище: %1'"),ИмяФайла); + КонецЕсли; + + ПараметрыСоздания.АдресВременногоХранилищаФайла = АдресВременногоХранилищаФайла; + ПараметрыСоздания.Расширение = Расширение; + ПараметрыСоздания.ВремяИзменения = ВремяИзменения; + ПараметрыСоздания.ВремяИзмененияУниверсальное = ВремяИзмененияУниверсальное; + ПараметрыСоздания.Имя = ИмяБезРасширения; + ПараметрыСоздания.Размер = Размер; + ПараметрыСоздания.Текст = ""; + ПараметрыСоздания.ВебКлиент = Истина; + ПараметрыСоздания.ИдентификаторФайла = ИдентификаторФайла; + + ТекстПояснения = + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Идет сохранение файла ""%1"". + |Пожалуйста, подождите...'"), + ИмяФайла); + + Состояние(ТекстПояснения); + + ИдентификаторСозданногоФайла = РаботаС1СДокументооборотВызовСервера.ОбновитьИзФайлаНаДиске(ПараметрыСоздания); + Состояние(); + + КонецЕсли; + + Оповестить("ФайлДокументооборотИзменен", ИдентификаторФайла); + Возврат Истина; + +КонецФункции + +// Обновить файл из файла на диске - реализация для тонкого клиента +Функция ОбновитьИзФайлаНаДискеТонкийКлиент(ПолноеИмяФайла, ИдентификаторФайла, УникальныйИдентификатор) Экспорт + + ПараметрыСоздания = Новый Структура("Имя, Расширение, Размер, ВремяИзменения, ВремяИзмененияУниверсальное, АдресВременногоХранилищаФайла, Текст, ВебКлиент, ИдентификаторФайла"); + + НастройкиДокументооборот = РаботаС1СДокументооборотКлиентПовтИсп.ПолучитьНастройки(); + НужноИзвлечьТекст = НастройкиДокументооборот.НужноИзвлечьТекст; + + Файл = Новый Файл(ПолноеИмяФайла); + + ИмяФайла = Файл.ИмяБезРасширения + Файл.Расширение; + РазмерВМб = Файл.Размер() / (1024 * 1024); + + ТекстПояснения = + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Идет сохранение файла ""%1"" (%2 Мб). + |Пожалуйста, подождите...'"), + ИмяФайла, + ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0"))); + + Состояние(ТекстПояснения); + + // Поместим Файл в ВременноеХранилище + АдресВременногоХранилищаФайла = ""; + + ПомещаемыеФайлы = Новый Массив; + Описание = Новый ОписаниеПередаваемогоФайла(Файл.ПолноеИмя, ""); + ПомещаемыеФайлы.Добавить(Описание); + + ПомещенныеФайлы = Новый Массив; + + Если НЕ ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, , Ложь, УникальныйИдентификатор) Тогда + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка при помещении файла в хранилище: %1'"), Файл.ПолноеИмя); + КонецЕсли; + + Если ПомещенныеФайлы.Количество() = 1 Тогда + АдресВременногоХранилищаФайла = ПомещенныеФайлы[0].Хранение; + КонецЕсли; + + ПараметрыСоздания.АдресВременногоХранилищаФайла = АдресВременногоХранилищаФайла; + ПараметрыСоздания.Расширение = ФайловыеФункцииКлиентСервер.РасширениеБезТочки(Файл.Расширение); + ПараметрыСоздания.ВремяИзменения = Файл.ПолучитьВремяИзменения(); + ПараметрыСоздания.ВремяИзмененияУниверсальное = Файл.ПолучитьУниверсальноеВремяИзменения(); + ПараметрыСоздания.Имя = Файл.ИмяБезРасширения; + ПараметрыСоздания.Размер = Файл.Размер(); + ПараметрыСоздания.ВебКлиент = Ложь; + ПараметрыСоздания.ИдентификаторФайла = ИдентификаторФайла; + + Текст = ""; + + Если НужноИзвлечьТекст Тогда + Текст = ФайловыеФункцииКлиентСервер.ИзвлечьТекст(Файл.ПолноеИмя); + КонецЕсли; + + ПараметрыСоздания.Текст = Текст; + + РаботаС1СДокументооборотВызовСервера.ОбновитьИзФайлаНаДиске(ПараметрыСоздания); + + Состояние(); + + Возврат Истина; + +КонецФункции + + +// Функции - текстовые сообщения + +// Возвращает Строку сообщения о недопустимости подписания занятого файла +// +Функция СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла(ФайлСсылка = Неопределено) Экспорт + + Если ФайлСсылка = Неопределено Тогда + Возврат НСтр("ru = 'Нельзя подписать занятый файл.'"); + Иначе + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Нельзя подписать занятый файл: %1.'"), + Строка(ФайлСсылка) ); + КонецЕсли; + +КонецФункции + +// Возвращает Строку сообщения о недопустимости подписания зашифрованного файла +// +Функция СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла(ФайлСсылка = Неопределено) Экспорт + + Если ФайлСсылка = Неопределено Тогда + Возврат НСтр("ru = 'Нельзя подписать зашифрованный файл.'"); + Иначе + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Нельзя подписать зашифрованный файл: %1.'"), + Строка(ФайлСсылка) ); + КонецЕсли; + +КонецФункции + + +// Подписать файл +Процедура ПодписатьФайл(ИдентификаторФайла, ИмяФайла, Редактируется, Зашифрован, ОписаниеФайла, + МассивСуществующихПодписейФайла) Экспорт + + Если Редактируется Тогда + Предупреждение(ФайловыеФункцииКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла()); + Возврат; + КонецЕсли; + + Если Зашифрован Тогда + Предупреждение(ФайловыеФункцииКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла()); + Возврат; + КонецЕсли; + + ТолькоЛичные = Истина; + МассивСтруктурСертификатов = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМассивСтруктурСертификатов(ТолькоЛичные); + ПараметрыФормы = Новый Структура("МассивСтруктурСертификатов, ОбъектСсылка", МассивСтруктурСертификатов, ИмяФайла); + + СтруктураПараметровПодписи = ОткрытьФормуМодально("ОбщаяФорма.УстановкаПодписиЭЦП", ПараметрыФормы); + + Если ТипЗнч(СтруктураПараметровПодписи) = Тип("Структура") Тогда + + ДвоичныеДанные = РаботаС1СДокументооборотВызовСервера.ПолучитьДвоичныеДанныеФайла(ИдентификаторФайла); + + МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии(); + МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = СтруктураПараметровПодписи.Пароль; + + ДанныеПодписи = ЭлектроннаяЦифроваяПодписьКлиент.СформироватьДанныеПодписи( + МенеджерКриптографии, ИдентификаторФайла, + ДвоичныеДанные, СтруктураПараметровПодписи); + ДанныеПодписи.Вставить("ОбъектТип", "DMFile"); + + МассивДанныхПодписей = Новый Массив; + МассивДанныхПодписей.Добавить(ДанныеПодписи); + + РаботаС1СДокументооборотВызовСервера.ЗанестиИнформациюОПодписяхОбъекта( + ИдентификаторФайла, ИмяФайла, ОписаниеФайла, "DMFile", МассивДанныхПодписей, МассивСуществующихПодписейФайла); + + ИнформироватьОПодписанииОбъекта(ИмяФайла, ИдентификаторФайла); + + КонецЕсли; + +КонецПроцедуры + +// По окончании подписания нотифицирует о подписании +// +// Параметры +// ОбъектСсылка - любая ссылка - объект, в табличную часть которого будет занесена информация о ЭЦП +Процедура ИнформироватьОПодписанииОбъекта(ИмяФайла, ИдентификаторФайла) Экспорт + + Оповестить("ФайлДокументооборотИзменен", ИдентификаторФайла); + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Установлена подпись для ""%1""'"), + ИмяФайла); + Состояние(ТекстСообщения); + +КонецПроцедуры + +// Добавляет ЭЦП из файла +Функция ДобавитьЭЦПИзФайла(ИдентификаторФайла, ИмяФайла, УникальныйИдентификатор, + ОписаниеФайла, МассивСуществующихПодписейФайла) Экспорт + + РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); + Если РасширениеПодключено Тогда + + МассивФайловПодписей = ОткрытьФормуМодально("ОбщаяФорма.ДобавлениеПодписиИзФайла"); + + Если ТипЗнч(МассивФайловПодписей) <> Тип("Массив") ИЛИ МассивФайловПодписей.Количество() = 0 Тогда + Возврат Ложь; + КонецЕсли; + + МассивДанныхДляЗанесенияВБазу = ЭлектроннаяЦифроваяПодписьКлиент.СформироватьПодписиДляЗанесениюВБазу(ИдентификаторФайла, МассивФайловПодписей, УникальныйИдентификатор); + + Если МассивДанныхДляЗанесенияВБазу.Количество() > 0 Тогда + + Для Каждого ДанныеПодписи Из МассивДанныхДляЗанесенияВБазу Цикл + ДанныеПодписи.Вставить("ОбъектТип", "DMFile"); + КонецЦикла; + + РаботаС1СДокументооборотВызовСервера.ЗанестиИнформациюОПодписяхОбъекта( + ИдентификаторФайла, ИмяФайла, ОписаниеФайла, "DMFile", + МассивДанныхДляЗанесенияВБазу, МассивСуществующихПодписейФайла); + + Оповестить("ФайлДокументооборотИзменен", ИдентификаторФайла); + + Если МассивДанныхДляЗанесенияВБазу.Количество() = 1 Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Добавлена подпись из файла для ""%1""'"), + ИмяФайла); + Иначе + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Добавлены подписи из файлов для ""%1""'"), + ИмяФайла); + КонецЕсли; + + Состояние(ТекстСообщения); + + КонецЕсли; + + Возврат Истина; + + Иначе + Предупреждение(НСтр("ru = 'Для выполнения данной операции вам нужно установить расширение работы с файлами.'")); + Возврат Ложь; + КонецЕсли; + +КонецФункции + +// Сохранение на диск Файла +// +Процедура СохранитьВместеСЭЦП(ИдентификаторФайла, Расширение, Имя, Размер, ДатаМодификацииУниверсальная, + УникальныйИдентификатор, Подписи = Неопределено) Экспорт + + РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); + Если РасширениеПодключено Тогда + + ПолноеИмяФайла = СохранитьКак(ИдентификаторФайла, Расширение, Имя, Размер, ДатаМодификацииУниверсальная, УникальныйИдентификатор); + + Если ПолноеИмяФайла = "" Тогда + Возврат; // пользователь нажал Отмена или это веб клиент без расширения + КонецЕсли; + + Настройка = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().ДействияПриСохраненииСЭЦП; + МассивСтруктурПодписей = Неопределено; + + Если Подписи = Неопределено Тогда + ОписаниеФайла = РаботаС1СДокументооборотВызовСервера.ПолучитьКарточкуФайла(ИдентификаторФайла); + Подписи = ОписаниеФайла.Подписи; + КонецЕсли; + + Если Настройка = "Спрашивать" Тогда + + ПараметрыФормы = Новый Структура("УникальныйИдентификатор, Подписи", + УникальныйИдентификатор, Подписи); + МассивСтруктурПодписей = ОткрытьФормуМодально("ОбщаяФорма.ВыборПодписей", ПараметрыФормы); + + ИначеЕсли Настройка = "СохранятьВсеПодписи" Тогда + + МассивСтруктурПодписей = Новый Массив; + + Для Каждого Строка Из Подписи Цикл + + АдресПодписи = ПоместитьВоВременноеХранилище(Строка.Подпись, УникальныйИдентификатор); + + СтруктураВозврата = Новый Структура("АдресПодписи, КомуВыданСертификат, ИмяФайлаПодписи", + АдресПодписи, + Строка.КомуВыданСертификат, + Строка.ИмяФайлаПодписи); + МассивСтруктурПодписей.Добавить(СтруктураВозврата); + + КонецЦикла; + + КонецЕсли; + + Если ТипЗнч(МассивСтруктурПодписей) = Тип("Массив") И МассивСтруктурПодписей.Количество() > 0 Тогда + ЭлектроннаяЦифроваяПодписьКлиент.СохранитьПодписи(Имя, ПолноеИмяФайла, Неопределено, МассивСтруктурПодписей); + КонецЕсли; + + Иначе + Предупреждение(НСтр("ru = 'Для выполнения данной операции вам нужно установить расширение работы с файлами.'")); + КонецЕсли; + +КонецПроцедуры + +// создать Файл из файла на диске +Функция СоздатьИзФайлаНаДискеКлиент(ПолноеИмяФайла, УникальныйИдентификатор, id, Тип, Представление) Экспорт + + ПараметрыСоздания = Новый Структура("Имя, Расширение, Размер, ВремяИзменения, ВремяИзмененияУниверсальное, АдресВременногоХранилищаФайла, Текст, ВебКлиент"); + ИдентификаторСозданногоФайла = Неопределено; + + НастройкиДокументооборот = РаботаС1СДокументооборотКлиентПовтИсп.ПолучитьНастройки(); + НужноИзвлечьТекст = НастройкиДокументооборот.НужноИзвлечьТекст; + + Файл = Новый Файл(ПолноеИмяФайла); + + ИмяФайла = Файл.ИмяБезРасширения + Файл.Расширение; + РазмерВМб = Файл.Размер() / (1024 * 1024); + + МаксРазмерФайла = РаботаС1СДокументооборотКлиентПовтИсп.ПолучитьМаксимальныйРазмерПередаваемогоФайла(); + РазмерВМбМакс = МаксРазмерФайла / (1024 * 1024); + + Если Файл.Размер() > МаксРазмерФайла Тогда + + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Размер файла ""%1"" (%2 Мб) превышает максимально допустимый размер файла для передачи (%3 Мб).'"), + Файл.Имя, + ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0")), + ?(РазмерВМбМакс >= 1, Формат(РазмерВМбМакс, "ЧДЦ=0"), Формат(РазмерВМбМакс, "ЧДЦ=1; ЧН=0"))); + КонецЕсли; + + ТекстПояснения = + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Идет сохранение файла ""%1"" (%2 Мб). + |Пожалуйста, подождите...'"), + ИмяФайла, + ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0"))); + + Состояние(ТекстПояснения); + + // Поместим Файл в ВременноеХранилище + АдресВременногоХранилищаФайла = ""; + + ПомещаемыеФайлы = Новый Массив; + ОписаниеПередаваемогоФайла = Новый ОписаниеПередаваемогоФайла(Файл.ПолноеИмя, ""); + ПомещаемыеФайлы.Добавить(ОписаниеПередаваемогоФайла); + + ПомещенныеФайлы = Новый Массив; + + Если НЕ ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, , Ложь, УникальныйИдентификатор) Тогда + ВызватьИсключение + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка при помещении файла в хранилище: %1'"), Файл.ПолноеИмя); + КонецЕсли; + + Если ПомещенныеФайлы.Количество() = 1 Тогда + АдресВременногоХранилищаФайла = ПомещенныеФайлы[0].Хранение; + КонецЕсли; + + ПараметрыСоздания.АдресВременногоХранилищаФайла = АдресВременногоХранилищаФайла; + ПараметрыСоздания.Расширение = ФайловыеФункцииКлиентСервер.РасширениеБезТочки(Файл.Расширение); + ПараметрыСоздания.ВремяИзменения = Файл.ПолучитьВремяИзменения(); + ПараметрыСоздания.ВремяИзмененияУниверсальное = Файл.ПолучитьУниверсальноеВремяИзменения(); + ПараметрыСоздания.Имя = Файл.ИмяБезРасширения; + ПараметрыСоздания.Размер = Файл.Размер(); + ПараметрыСоздания.ВебКлиент = Ложь; + + Текст = ""; + + Если НужноИзвлечьТекст Тогда + Текст = ФайловыеФункцииКлиентСервер.ИзвлечьТекст(Файл.ПолноеИмя); + КонецЕсли; + + ПараметрыСоздания.Текст = Текст; + + ИдентификаторСозданногоФайла = РаботаС1СДокументооборотВызовСервера.СоздатьИзФайлаНаДискеСервер(ПараметрыСоздания, id, Тип, Представление); + + Состояние(); + + Возврат ИдентификаторСозданногоФайла; + +КонецФункции + +// Проверяет все выделенные подписи ЭЦП +Процедура ПроверитьПодписи(ВыделенныеСтроки, ТаблицаПодписей, УникальныйИдентификатор, АдресСлепкаДокумента) Экспорт + + МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии(); + СоответствиеИдОбъектаИДвоичныхДанных = Новый Соответствие; + + Для Каждого Элемент Из ВыделенныеСтроки Цикл + ДанныеСтроки = ТаблицаПодписей.НайтиПоИдентификатору(Элемент); + + Если ЗначениеЗаполнено(ДанныеСтроки.Объект) Тогда + ПроверитьОднуПодпись(ДанныеСтроки, МенеджерКриптографии, УникальныйИдентификатор, + СоответствиеИдОбъектаИДвоичныхДанных, АдресСлепкаДокумента); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +// Проверяет одну электронно-цифровую подпись +Процедура ПроверитьОднуПодпись(ДанныеСтроки, МенеджерКриптографии, УникальныйИдентификатор, + СоответствиеИдОбъектаИДвоичныхДанных, АдресСлепкаДокумента) Экспорт + + АдресПодписи = ДанныеСтроки.АдресПодписи; + ДвоичныеДанныеПодписи = ПолучитьИзВременногоХранилища(АдресПодписи); + + ДвоичныеДанныеФайла = СоответствиеИдОбъектаИДвоичныхДанных[ДанныеСтроки.ОбъектИд]; + + Если ДвоичныеДанныеФайла = Неопределено Тогда + + Если ДанныеСтроки.ОбъектТип = "DMFile" Тогда + ДвоичныеДанныеФайла = РаботаС1СДокументооборотВызовСервера.ПолучитьДвоичныеДанныеФайла(ДанныеСтроки.ОбъектИд); + Иначе + ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресСлепкаДокумента); + КонецЕсли; + + СоответствиеИдОбъектаИДвоичныхДанных[ДанныеСтроки.ОбъектИд] = ДвоичныеДанныеФайла; + КонецЕсли; + + Попытка + ЭлектроннаяЦифроваяПодписьКлиент.ПроверитьПодпись(МенеджерКриптографии, ДвоичныеДанныеФайла, ДвоичныеДанныеПодписи); + + ДанныеСтроки.Статус = НСтр("ru = 'Верна'"); + ДанныеСтроки.Неверна = Ложь; + Исключение + ДанныеСтроки.Статус = НСтр("ru = 'Неверна. '"); + Инфо = ИнформацияОбОшибке(); + Если Инфо.Причина <> Неопределено Тогда + ДанныеСтроки.Статус = ДанныеСтроки.Статус + Инфо.Причина.Описание; + КонецЕсли; + ДанныеСтроки.Неверна = Истина; + КонецПопытки; + +КонецПроцедуры + +// Преобразует 2-уровневое дерево в массив +Функция ПолучитьМассивДанныхПодписей(ТаблицаПодписейПереданная) Экспорт + + ДанныеСтрок = Новый Массив; + + ЭлементыПервогоУровня = ТаблицаПодписейПереданная.ПолучитьЭлементы(); + + Для Каждого СтрокаУровняОдин Из ЭлементыПервогоУровня Цикл + ЭлементыВторогоУровня = СтрокаУровняОдин.ПолучитьЭлементы(); + + Для Каждого Строка Из ЭлементыВторогоУровня Цикл + ДанныеСтрок.Добавить(Строка.ПолучитьИдентификатор()); + КонецЦикла; + КонецЦикла; + + Возврат ДанныеСтрок; + +КонецФункции + +// По окончании подписания нотифицирует +Процедура ИнформироватьОПодписании(Представление) Экспорт + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Установлена подпись для ""%1""'"), + Представление); + Состояние(ТекстСообщения); + +КонецПроцедуры + +Функция СформироватьПодписьОбъекта(id, Представление, Тип, УникальныйИдентификатор, + МассивДанныхДляЗанесенияВРегистр, МассивАдресов, Файлы, АдресСлепкаДокумента) Экспорт + + ТолькоЛичные = Истина; + МассивСтруктурСертификатов = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМассивСтруктурСертификатов(ТолькоЛичные); + ПараметрыФормы = Новый Структура("МассивСтруктурСертификатов, ОбъектСсылка", МассивСтруктурСертификатов, Представление); + + СтруктураПараметровПодписи = ОткрытьФормуМодально("ОбщаяФорма.УстановкаПодписиЭЦП", ПараметрыФормы); + + Если ТипЗнч(СтруктураПараметровПодписи) = Тип("Структура") Тогда + + МенеджерКриптографии = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьМенеджерКриптографии(); + МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = СтруктураПараметровПодписи.Пароль; + + МассивФайлов = Новый Массив; + Для Каждого Файл Из Файлы Цикл + МассивФайлов.Добавить(Файл.УникальныйИдентификатор); + КонецЦикла; + + ДвоичныеДанныеДокумента = ПолучитьИзВременногоХранилища(АдресСлепкаДокумента); + + МассивОбъектовДляПодписи = Новый Массив; + РаботаС1СДокументооборотВызовСервера.ПолучитьОбъектыДляПодписи(id, Тип, УникальныйИдентификатор, + МассивОбъектовДляПодписи, МассивФайлов, ДвоичныеДанныеДокумента); + + Для Каждого ОбъектДляПодписи Из МассивОбъектовДляПодписи Цикл + + ОбъектСсылкаДляПодписи = ОбъектДляПодписи.ОбъектСсылкаДляПодписи; + + АдресФайла = ""; + ДвоичныеДанныеФайла = Неопределено; + + Если НЕ ОбъектДляПодписи.Свойство("ДвоичныеДанные", ДвоичныеДанныеФайла) Тогда + АдресФайла = ОбъектДляПодписи.АдресФайла; + ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресФайла); + КонецЕсли; + + // удаляем двоичные данные из временного хранилища после получения + Если ЭтоАдресВременногоХранилища(АдресФайла) Тогда + МассивАдресов.Добавить(АдресФайла); + КонецЕсли; + + ДанныеДляЗанесенияВРегистр = ЭлектроннаяЦифроваяПодписьКлиент.СформироватьДанныеПодписи( + МенеджерКриптографии, ОбъектСсылкаДляПодписи, + ДвоичныеДанныеФайла, СтруктураПараметровПодписи); + ДанныеДляЗанесенияВРегистр.Вставить("ОбъектТип", ОбъектДляПодписи.ОбъектТип); + + МассивДанныхДляЗанесенияВРегистр.Добавить(ДанныеДляЗанесенияВРегистр); + + КонецЦикла; + + КонецЕсли; + + Возврат Истина; +КонецФункции + +// формирует массив существующих подписей файла +Функция ПолучитьМассивСуществующихПодписейФайла(ИдентификаторФайла, ТаблицаПодписей) Экспорт + + МассивДанныхПодписей = Новый Массив; // подписи, оставшиеся после удаления + + НомерСтроки = 0; + + // формируем массив данных подписи + Для Каждого ДанныеСтроки Из ТаблицаПодписей Цикл + + ПодписьДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеСтроки.АдресПодписи); + ДвоичныеДанныеСертификата = ПолучитьИзВременногоХранилища(ДанныеСтроки.АдресСертификата); + + ДанныеПодписи = Новый Структура("ОбъектСсылка, НоваяПодписьДвоичныеДанные, Отпечаток, ДатаПодписи, Комментарий, ИмяФайлаПодписи, КомуВыданСертификат, ДвоичныеДанныеСертификата, ОбъектТип, УстановившийПодпись, УстановившийПодписьИд, НомерСтроки", + ИдентификаторФайла, + ПодписьДвоичныеДанные, + ДанныеСтроки.Отпечаток, + ДанныеСтроки.ДатаПодписи, + ДанныеСтроки.Комментарий, + ДанныеСтроки.ИмяФайлаПодписи, + ДанныеСтроки.КомуВыданСертификат, + ДвоичныеДанныеСертификата, + "DMFile", + ДанныеСтроки.УстановившийПодпись, + ДанныеСтроки.УстановившийПодписьИд, + НомерСтроки); + + МассивДанныхПодписей.Добавить(ДанныеПодписи); + + НомерСтроки = НомерСтроки + 1; + + КонецЦикла; + + Возврат МассивДанныхПодписей; + +КонецФункции + +///////////////////////////////////////////////////////////////// +//// РАБОТА С БИЗНЕС-ПРОЦЕССАМИ + +// Выбрать тип бизнес-процесса +Функция ВыбратьТипБизнесПроцесса() Экспорт + + СписокДоступныхТиповБизнесПроцессов = Новый СписокЗначений; + СписокДоступныхТиповБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessPerformance", "Исполнение")); + СписокДоступныхТиповБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessAcquaintance", "Ознакомление")); + СписокДоступныхТиповБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessOrder", "Поручение")); + СписокДоступныхТиповБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessConsideration", "Рассмотрение")); + СписокДоступныхТиповБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessRegistration", "Регистрация")); + СписокДоступныхТиповБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessApproval", "Согласование")); + СписокДоступныхТиповБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessConfirmation", "Утверждение")); + СписокДоступныхТиповБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessInternalDocumentProcessing", "Обработка внутреннего документа")); + СписокДоступныхТиповБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessIncomingDocumentProcessing", "Обработка входящего документа")); + СписокДоступныхТиповБизнесПроцессов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMBusinessProcessOutgoingDocumentProcessing", "Обработка исходящего документа")); + + ЗаголовокФормы = НСтр("ru = 'Тип бизнес-процесса'"); + + ПараметрыФормы = Новый Структура("СписокДоступныхТипов, ЗаголовокФормы", СписокДоступныхТиповБизнесПроцессов, ЗаголовокФормы); + ТипБизнесПроцесса = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборОдногоТипаИзСоставногоТипа", ПараметрыФормы); + Возврат ТипБизнесПроцесса; + +КонецФункции + +// Создать бизнес-процесс по документу из 1С:Документооборот +// Параметры: +// ИД - уникальный идентификатор документа в Документообороте +// Тип - имя типа XDTO для документа +Процедура СоздатьБизнесПроцессПоДокументуИзДО(ИД, Тип) Экспорт + + ТипБизнесПроцесса = ВыбратьТипБизнесПроцесса(); + Если ТипБизнесПроцесса = Неопределено Тогда + Возврат; + КонецЕсли; + ПредметБизнесПроцесса = Новый Структура; + ПредметБизнесПроцесса.Вставить("id", ИД); + ПредметБизнесПроцесса.Вставить("type", Тип); + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Предмет", ПредметБизнесПроцесса); + + ПоказатьФормуБизнесПроцесса(ТипБизнесПроцесса, ПараметрыФормы); + +КонецПроцедуры + +// Глобальный обработчик команды создания бизнес-процесса. Открывает пользователю необходимые формы для создания и запуска бизнес-процесса. +// Параметры: +// СсылкаНаВнешнийОбъект - ссылка на объект конфигурации-потребителя +// ТипБизнесПроцесса - имя типа XDTO +Процедура СоздатьБизнесПроцесс(СсылкаНаВнешнийОбъект) Экспорт + + ТипБизнесПроцесса = ВыбратьТипБизнесПроцесса(); + + Если ТипБизнесПроцесса = Неопределено Тогда + Возврат; + КонецЕсли; + + РезультатПоискаДокументаВДО = РаботаС1СДокументооборотВызовСервера.ПолучитьСвязанныйCВнешнимОбъектомДокумент(СсылкаНаВнешнийОбъект); + + Если ТипЗнч(РезультатПоискаДокументаВДО) = Тип("Структура") Тогда + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Предмет", РезультатПоискаДокументаВДО); + + ПоказатьФормуБизнесПроцесса(ТипБизнесПроцесса, ПараметрыФормы); + + Иначе + + ИмяТипа = РаботаС1СДокументооборотВызовСервера.ПолучитьИмяТипаДокументаДОИзНастроекЗаполнения(СсылкаНаВнешнийОбъект); + + Если ИмяТипа = Неопределено Тогда + //выбор типа документа + СписокДоступныхТиповДокументов = Новый СписокЗначений; + СписокДоступныхТиповДокументов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMInternalDocument", "Внутренний документ")); + СписокДоступныхТиповДокументов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMIncomingDocument", "Входящий документ")); + СписокДоступныхТиповДокументов.Добавить(Новый Структура("XDTOClassName, Presentation", "DMOutgoingDocument", "Исходящий документ")); + ЗаголовокФормы = НСтр("ru = 'Тип предмета бизнес-процесса'"); + + ПараметрыФормы = Новый Структура("СписокДоступныхТипов, ЗаголовокФормы", СписокДоступныхТиповДокументов, ЗаголовокФормы); + РезультатВыбораТипа = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборОдногоТипаИзСоставногоТипа", ПараметрыФормы); + Если РезультатВыбораТипа = Неопределено Тогда + Возврат; + КонецЕсли; + ИмяТипа = РезультатВыбораТипа; + КонецЕсли; + + //открытие карточки документа + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ВнешнийОбъект", СсылкаНаВнешнийОбъект); + Если ИмяТипа = "DMInternalDocument" Тогда + РезультатЗаполненияДокумента = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВнутреннийДокумент", ПараметрыФормы); + ИначеЕсли ИмяТипа = "DMIncomingDocument" Тогда + РезультатЗаполненияДокумента = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВходящийДокумент", ПараметрыФормы); + ИначеЕсли ИмяТипа = "DMOutgoingDocument" Тогда + РезультатЗаполненияДокумента = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотИсходящийДокумент", ПараметрыФормы); + КонецЕсли; + + //открытие карточки бизнес-процесса + Если ТипЗнч(РезультатЗаполненияДокумента) = Тип("Структура") + И ЗначениеЗаполнено(РезультатЗаполненияДокумента.id) Тогда + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Предмет", РезультатЗаполненияДокумента); + ПоказатьФормуБизнесПроцесса(ТипБизнесПроцесса, ПараметрыФормы); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Открыть форму бизнес-процесса +Процедура ПоказатьФормуБизнесПроцесса(ТипБизнесПроцесса, Параметрыформы) Экспорт + + Если ТипБизнесПроцесса = "DMBusinessProcessPerformance" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотБизнесПроцессИсполнение", ПараметрыФормы); + + ИначеЕсли ТипБизнесПроцесса = "DMBusinessProcessAcquaintance" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотБизнесПроцессОзнакомление", ПараметрыФормы); + + ИначеЕсли ТипБизнесПроцесса = "DMBusinessProcessOrder" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотБизнесПроцессПоручение", ПараметрыФормы); + + ИначеЕсли ТипБизнесПроцесса = "DMBusinessProcessConsideration" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотБизнесПроцессРассмотрение", ПараметрыФормы); + + ИначеЕсли ТипБизнесПроцесса = "DMBusinessProcessRegistration" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотБизнесПроцессРегистрация", ПараметрыФормы); + + ИначеЕсли ТипБизнесПроцесса = "DMBusinessProcessApproval" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотБизнесПроцессСогласование", ПараметрыФормы); + + ИначеЕсли ТипБизнесПроцесса = "DMBusinessProcessConfirmation" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотБизнесПроцессУтверждение", ПараметрыФормы); + + ИначеЕсли ТипБизнесПроцесса = "DMBusinessProcessInternalDocumentProcessing" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента", ПараметрыФормы); + + ИначеЕсли ТипБизнесПроцесса = "DMBusinessProcessIncomingDocumentProcessing" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотБизнесПроцессОбработкаВходящегоДокумента", ПараметрыФормы); + + ИначеЕсли ТипБизнесПроцесса = "DMBusinessProcessOutgoingDocumentProcessing" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента", ПараметрыФормы); + + КонецЕсли; + +КонецПроцедуры + +// Открывает форму для работы с предметов бизнес-процесса. Это может быть Внутренний, Входящий или Исходящий документ. +Процедура ОткрытьКарточкуПредметаБизнесПроцесса(Тип, id, ЭлементВладелец, ТолькоЧтение = Ложь) Экспорт + + ПараметрыФормы = Новый Структура("id, Тип, ТолькоПросмотр", id, Тип, ТолькоЧтение); + + Если Тип = "DMInternalDocument" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВнутреннийДокумент", ПараметрыФормы, ЭлементВладелец); + ИначеЕсли Тип = "DMIncomingDocument" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВходящийДокумент", ПараметрыФормы, ЭлементВладелец); + ИначеЕсли Тип = "DMOutgoingDocument" Тогда + ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотИсходящийДокумент", ПараметрыФормы, ЭлементВладелец); + КонецЕсли; + +КонецПроцедуры + +// Открывает форму выбора шаблона бизнес-процесса из списка +Функция ВыбратьШаблонБизнесПроцесса(Форма) Экспорт + + ДанныеОПредмете = Неопределено; + Если ЗначениеЗаполнено(Форма.Предмет) Тогда + ДанныеОПредмете = Новый Структура; + ДанныеОПредмете.Вставить("id", Форма.ПредметID); + ДанныеОПредмете.Вставить("Тип", Форма.ПредметТип); + КонецЕсли; + + СписокШаблонов = РаботаС1СДокументооборотВызовСервера.ПолучитьСписокШаблоновБизнесПроцессов(Форма.Тип, ДанныеОПредмете); + Если СписокШаблонов.Количество() > 1 Тогда + ПараметрыФормы = Новый Структура("СписокЗначенийДляВыбора", СписокШаблонов); + РезультатВыбораШаблона = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборИзСписка", ПараметрыФормы, Форма); + Возврат РезультатВыбораШаблона; + + ИначеЕсли СписокШаблонов.Количество() = 1 Тогда + РезультатВыбораШаблона = Новый Структура("РеквизитID, РеквизитТип, РеквизитПредставление"); + РезультатВыбораШаблона.РеквизитID = СписокШаблонов[0].Значение.id; + РезультатВыбораШаблона.РеквизитТип = СписокШаблонов[0].Значение.type; + РезультатВыбораШаблона.РеквизитПредставление = СписокШаблонов[0].Значение.Name; + Возврат РезультатВыбораШаблона; + + Иначе + Предупреждение("Не найдено ни одного подходящего шаблона бизнес-процесса."); + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +// Получить объекты адресации роли +Функция ПолучитьОбъектыАдресацииРоли(ИмяРоли, ТипРоли, IDРоли, ФормаВладелец) Экспорт + + ДанныеВозврата = Новый Структура; + ПараметрыФормы = Новый Структура; + + ПараметрыФормы.Вставить("Роль", ИмяРоли); + ПараметрыФормы.Вставить("РольID", IDРоли); + ПараметрыФормы.Вставить("РольТип", ТипРоли); + + РезультатЗаполненияОбъектовАдресации = ОткрытьФормуМодально("ОбщаяФорма.ДокументооборотВыборОбъектовАдресацииРоли", ПараметрыФормы, ФормаВладелец); + + Если ТипЗнч(РезультатЗаполненияОбъектовАдресации) = Тип("Структура") Тогда + Если РезультатЗаполненияОбъектовАдресации.Результат = "ОК" Тогда + + ДанныеВозврата.Вставить("Исполнитель", РезультатЗаполненияОбъектовАдресации.Исполнитель); + ДанныеВозврата.Вставить("ИсполнительID", РезультатЗаполненияОбъектовАдресации.ИсполнительID); + ДанныеВозврата.Вставить("ИсполнительТип", РезультатЗаполненияОбъектовАдресации.ИсполнительТип); + + ДанныеВозврата.Вставить("ОсновнойОбъектАдресации", РезультатЗаполненияОбъектовАдресации.ОсновнойОбъектАдресации); + ДанныеВозврата.Вставить("ОсновнойОбъектАдресацииID", РезультатЗаполненияОбъектовАдресации.ОсновнойОбъектАдресацииID); + ДанныеВозврата.Вставить("ОсновнойОбъектАдресацииТип", РезультатЗаполненияОбъектовАдресации.ОсновнойОбъектАдресацииТип); + + ДанныеВозврата.Вставить("ДополнительныйОбъектАдресации", РезультатЗаполненияОбъектовАдресации.ДополнительныйОбъектАдресации); + ДанныеВозврата.Вставить("ДополнительныйОбъектАдресацииID", РезультатЗаполненияОбъектовАдресации.ДополнительныйОбъектАдресацииID); + ДанныеВозврата.Вставить("ДополнительныйОбъектАдресацииТип", РезультатЗаполненияОбъектовАдресации.ДополнительныйОбъектАдресацииТип); + + ИначеЕсли РезультатЗаполненияОбъектовАдресации.Результат = "БезОбъектовАдресации" Тогда + + ДанныеВозврата.Вставить("Исполнитель", ИмяРоли); + ДанныеВозврата.Вставить("ИсполнительID", IDРоли); + ДанныеВозврата.Вставить("ИсполнительТип", ТипРоли); + + ДанныеВозврата.Вставить("ОсновнойОбъектАдресации", ""); + ДанныеВозврата.Вставить("ОсновнойОбъектАдресацииID", ""); + ДанныеВозврата.Вставить("ОсновнойОбъектАдресацииТип", ""); + + ДанныеВозврата.Вставить("ДополнительныйОбъектАдресации", ""); + ДанныеВозврата.Вставить("ДополнительныйОбъектАдресацииID", ""); + ДанныеВозврата.Вставить("ДополнительныйОбъектАдресацииТип", ""); + + Иначе + Возврат Неопределено; + КонецЕсли; + Иначе + Возврат Неопределено; + КонецЕсли; + + Возврат ДанныеВозврата; + +КонецФункции + +// Устанавливает в строку таблицы участников бизнес-процесса результат выбора участника бизнес-процесса из списка, который формируется при автоподборе +Процедура ПрименитьВыборУчастникаБизнесПроцессаВСписке(Элемент, ВыбранноеЗначение, СтандартнаяОбработка, Форма) Экспорт + + Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда + СтандартнаяОбработка = Ложь; + + Если ВыбранноеЗначение.type = "DMUser" Тогда + Элемент.ТекущиеДанные.Исполнитель = ВыбранноеЗначение.Name; + Элемент.ТекущиеДанные.ИсполнительID = ВыбранноеЗначение.id; + Элемент.ТекущиеДанные.ИсполнительТип = ВыбранноеЗначение.type; + ИначеЕсли ВыбранноеЗначение.type = "DMBusinessProcessExecutorRole" Тогда + + РезультатВыбораРоли = ПолучитьОбъектыАдресацииРоли( + ВыбранноеЗначение.Name, + ВыбранноеЗначение.type, + ВыбранноеЗначение.id, Форма); + + Если РезультатВыбораРоли = Неопределено Тогда + Возврат; + КонецЕсли; + + Элемент.ТекущиеДанные.Исполнитель = РезультатВыбораРоли.Исполнитель; + Элемент.ТекущиеДанные.ИсполнительID = РезультатВыбораРоли.ИсполнительID; + Элемент.ТекущиеДанные.ИсполнительТип = РезультатВыбораРоли.ИсполнительТип; + + Элемент.ТекущиеДанные.ОсновнойОбъектАдресации = РезультатВыбораРоли.ОсновнойОбъектАдресации; + Элемент.ТекущиеДанные.ОсновнойОбъектАдресацииID = РезультатВыбораРоли.ОсновнойОбъектАдресацииID; + Элемент.ТекущиеДанные.ОсновнойОбъектАдресацииТип = РезультатВыбораРоли.ОсновнойОбъектАдресацииТип; + + Элемент.ТекущиеДанные.ДополнительныйОбъектАдресации = РезультатВыбораРоли.ДополнительныйОбъектАдресации; + Элемент.ТекущиеДанные.ДополнительныйОбъектАдресацииID = РезультатВыбораРоли.ДополнительныйОбъектАдресацииID; + Элемент.ТекущиеДанные.ДополнительныйОбъектАдресацииТип = РезультатВыбораРоли.ДополнительныйОбъектАдресацииТип; + + КонецЕсли; + + Модифицированность = Истина; + КонецЕсли; + +КонецПроцедуры + +// Устанавливает в поле на форме результат выбора участника бизнес-процесса из списка, который формируется при автоподборе +Процедура ПрименитьВыборУчастникаБизнесПроцессаВПоле(ИмяПоля, ИмяПоляОбъектаАдресации, ВыбранноеЗначение, СтандартнаяОбработка, Форма) Экспорт + + Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда + СтандартнаяОбработка = Ложь; + + Если ВыбранноеЗначение.type = "DMUser" Тогда + Форма[ИмяПоля] = ВыбранноеЗначение.Name; + Форма[ИмяПоля + "id"] = ВыбранноеЗначение.id; + Форма[ИмяПоля + "Тип"] = ВыбранноеЗначение.type; + ИначеЕсли ВыбранноеЗначение.type = "DMBusinessProcessExecutorRole" Тогда + + РезультатВыбораРоли = ПолучитьОбъектыАдресацииРоли( + ВыбранноеЗначение.Name, + ВыбранноеЗначение.type, + ВыбранноеЗначение.id, Форма); + + Если РезультатВыбораРоли = Неопределено Тогда + Возврат; + КонецЕсли; + + Форма[ИмяПоля] = РезультатВыбораРоли.Исполнитель; + Форма[ИмяПоля + "id"] = РезультатВыбораРоли.ИсполнительID; + Форма[ИмяПоля + "Тип"] = РезультатВыбораРоли.ИсполнительТип; + + Форма["Основной" + ИмяПоляОбъектаАдресации] = РезультатВыбораРоли.ОсновнойОбъектАдресации; + Форма["Основной" + ИмяПоляОбъектаАдресации + "id"] = РезультатВыбораРоли.ОсновнойОбъектАдресацииID; + Форма["Основной" + ИмяПоляОбъектаАдресации + "Тип"] = РезультатВыбораРоли.ОсновнойОбъектАдресацииТип; + + Форма["Дополнительный" + ИмяПоляОбъектаАдресации] = РезультатВыбораРоли.ДополнительныйОбъектАдресации; + Форма["Дополнительный" + ИмяПоляОбъектаАдресации + "id"] = РезультатВыбораРоли.ДополнительныйОбъектАдресацииID; + Форма["Дополнительный" + ИмяПоляОбъектаАдресации + "Тип"] = РезультатВыбораРоли.ДополнительныйОбъектАдресацииТип; + + КонецЕсли; + + Модифицированность = Истина; + КонецЕсли; + +КонецПроцедуры diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборотКлиент/РаботаС1СДокументооборотКлиент.mdo b/SSL/src/CommonModules/РаботаС1СДокументооборотКлиент/РаботаС1СДокументооборотКлиент.mdo new file mode 100644 index 000000000..1f1b977a5 --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборотКлиент/РаботаС1СДокументооборотКлиент.mdo @@ -0,0 +1,10 @@ + + + РаботаС1СДокументооборотКлиент + + ru + Работа с 1С документооборот клиент + + true + true + diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборотКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаС1СДокументооборотКлиентПовтИсп/Module.bsl new file mode 100644 index 000000000..c25b923b4 --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборотКлиентПовтИсп/Module.bsl @@ -0,0 +1,16 @@ + +// получает настройки базы 1С:Документооборот +Функция ПолучитьНастройки() Экспорт + + Возврат РаботаС1СДокументооборотВызовСервера.ПолучитьНастройки(); + +КонецФункции + +// Интеграция с 1С:Документооборот +// Возвращает максимальный размер файла +// +Функция ПолучитьМаксимальныйРазмерПередаваемогоФайла() Экспорт + + Возврат РаботаС1СДокументооборотВызовСервера.ПолучитьМаксимальныйРазмерПередаваемогоФайла(); + +КонецФункции diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборотКлиентПовтИсп/РаботаС1СДокументооборотКлиентПовтИсп.mdo b/SSL/src/CommonModules/РаботаС1СДокументооборотКлиентПовтИсп/РаботаС1СДокументооборотКлиентПовтИсп.mdo new file mode 100644 index 000000000..65adb9bef --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборотКлиентПовтИсп/РаботаС1СДокументооборотКлиентПовтИсп.mdo @@ -0,0 +1,11 @@ + + + РаботаС1СДокументооборотКлиентПовтИсп + + ru + Работа с 1С документооборот клиент + + true + true + DuringSession + diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборотПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаС1СДокументооборотПереопределяемый/Module.bsl new file mode 100644 index 000000000..0eea6f6e4 --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборотПереопределяемый/Module.bsl @@ -0,0 +1,8 @@ + +// Заполняет свойства объекта XDTO +// из реквизитов объекта потребителя +Процедура ЗаполнитьРеквизитыИзПотребителя(Прокси, ОбъектXDTO, СсылкаНаПотребитель) Экспорт + + + +КонецПроцедуры \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборотПереопределяемый/РаботаС1СДокументооборотПереопределяемый.mdo b/SSL/src/CommonModules/РаботаС1СДокументооборотПереопределяемый/РаботаС1СДокументооборотПереопределяемый.mdo new file mode 100644 index 000000000..2e3dc166b --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборотПереопределяемый/РаботаС1СДокументооборотПереопределяемый.mdo @@ -0,0 +1,11 @@ + + + РаботаС1СДокументооборотПереопределяемый + + ru + Работа с 1С:Документооборот переопределяемый + + true + true + true + diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборотПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаС1СДокументооборотПовтИсп/Module.bsl new file mode 100644 index 000000000..46b6ccf00 --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборотПовтИсп/Module.bsl @@ -0,0 +1,6 @@ +// получает настройки базы 1С:Документооборот +Функция ПолучитьНастройки() Экспорт + + Возврат РаботаС1СДокументооборотВызовСервера.ПолучитьНастройки(); + +КонецФункции diff --git a/SSL/src/CommonModules/РаботаС1СДокументооборотПовтИсп/РаботаС1СДокументооборотПовтИсп.mdo b/SSL/src/CommonModules/РаботаС1СДокументооборотПовтИсп/РаботаС1СДокументооборотПовтИсп.mdo new file mode 100644 index 000000000..b8ad1a618 --- /dev/null +++ b/SSL/src/CommonModules/РаботаС1СДокументооборотПовтИсп/РаботаС1СДокументооборотПовтИсп.mdo @@ -0,0 +1,10 @@ + + + РаботаС1СДокументооборотПовтИсп + + ru + Работа с 1С:Документооборот + + true + DuringSession + diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl index 611c0850d..28b492d92 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl @@ -1,3 +1,61 @@ +// Функция пересчитывает сумму из валюты ВалютаНач по курсу ПоКурсуНач +// в валюту ВалютаКон по курсу ПоКурсуКон +// +// Параметры: +// Сумма - сумма, которую следует пересчитать; +// ВалютаНач - ссылка на элемент справочника Валют; +// определяет валюты из которой надо пересчитвать; +// ВалютаКон - ссылка на элемент справочника Валют; +// определяет валюты в которую надо пересчитвать; +// ПоКурсуНач - курс из которого надо пересчитать; +// ПоКурсуКон - курс в который надо пересчитать; +// ПоКратностьНач - кратность из которого надо пересчитать (по умолчанию = 1); +// ПоКратностьКон - кратность в который надо пересчитать (по умолчанию = 1); +// +// Возвращаемое значение: +// Сумма, пересчитанная в другую валюту +// +Функция ПересчитатьИзВалютыВВалюту(Сумма, ВалютаНач, ВалютаКон, ПоКурсуНач, ПоКурсуКон, + ПоКратностьНач =1, ПоКратностьКон = 1 ) Экспорт + + Если (ВалютаНач = ВалютаКон) Тогда + Возврат Сумма; + КонецЕсли; + + Если (ПоКурсуНач = ПоКурсуКон) + И (ПоКратностьНач = ПоКратностьКон) Тогда + Возврат Сумма; + КонецЕсли; + + Если ПоКурсуНач = 0 + Или ПоКурсуКон = 0 + Или ПоКратностьНач = 0 + Или ПоКратностьКон = 0 Тогда + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'ПересчитатьИзВалютыВВалюту(): при пересчете обнаружен нулевой курс.'")); + Возврат 0; + КонецЕсли; + + Возврат Окр((Сумма * ПоКурсуНач * ПоКратностьКон) / (ПоКурсуКон * ПоКратностьНач), 2); + +КонецФункции + +// Возвращает курс валюты на дату +// +// Параметры: +// Валюта - Валюта (элемент справочника "Валюты") +// ДатаКурса - Дата, на которую следует получить курс +// +// Возвращаемое значение: +// Структура, содержащая: +// Курс - курс валюты +// Кратность - кратность валюты +// +Функция ПолучитьКурсВалюты(Валюта, ДатаКурса) Экспорт + + Возврат РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаКурса, Новый Структура("Валюта", Валюта)); + +КонецФункции + // Копирует в регистр сведений подчиненной валюты всю информацию из регистра // сведений базовой валюты (период, курс, кратность). // diff --git a/SSL/src/CommonModules/РаботаСФайламиВызовСервера/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиВызовСервера/Module.bsl index b281df881..96292e153 100644 --- a/SSL/src/CommonModules/РаботаСФайламиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиВызовСервера/Module.bsl @@ -3391,3 +3391,101 @@ КонецЦикла; КонецПроцедуры + +// Возвращает массив ссылок на файлы +Функция ПолучитьПрикрепленныеФайлыКОбъекту(Объект) Экспорт + + МассивФайлов = Новый Массив; + + Если ТипЗнч(Объект) = Тип("СправочникСсылка.Файлы") Тогда + МассивФайлов.Добавить(Объект); + Возврат МассивФайлов; + КонецЕсли; + + ТипыПараметраКоманды = Метаданные.ОбщиеКоманды.ПрисоединенныеФайлы.ТипПараметраКоманды.Типы(); + ТипыВладельцев = Метаданные.Справочники.Файлы.Реквизиты.ВладелецФайла.Тип.Типы(); + + Если ТипыВладельцев.Найти(ТипЗнч(Объект)) <> Неопределено + И ТипыПараметраКоманды.Найти(ТипЗнч(Объект)) <> Неопределено Тогда + + МассивФайлов = ПолучитьВсеПодчиненныеФайлы(Объект); + Возврат МассивФайлов; + + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +// Создает новый файл по аналогии с указанным и возвращает ссылку на него +Функция СкопироватьФайл(ИсходныйФайл, ВладелецНовогоФайла) Экспорт + + Если ИсходныйФайл = Неопределено Или ИсходныйФайл.Пустая() Или ИсходныйФайл.ТекущаяВерсия.Пустая()Тогда + Возврат Неопределено; + КонецЕсли; + + НовыйФайл = СоздатьФайл( + ВладелецНовогоФайла, + ИсходныйФайл.Описание, + ИсходныйФайл.ПолноеНаименование, + ИсходныйФайл.ТекущаяВерсия.Расширение, + ИсходныйФайл.ХранитьВерсии, + ""); + + Версия = СоздатьВерсию( + ТекущаяДата(), + УниверсальноеВремя(ТекущаяДата()), + НовыйФайл, + НовыйФайл.ПолноеНаименование, + ИсходныйФайл.ТекущаяВерсия.Размер, + ИсходныйФайл.ТекущаяВерсия.Расширение, + ИсходныйФайл.ТекущаяВерсия.ФайлХранилище, + ИсходныйФайл.ТекущаяВерсия.ТекстХранилище, + Истина, + ИсходныйФайл.ТекущаяВерсия); + + ОбновитьВерсиюВФайле(НовыйФайл, Версия, ИсходныйФайл.ТекущаяВерсия.ТекстХранилище); + + ВерсияОбъект = НовыйФайл.ТекущаяВерсия.ПолучитьОбъект(); + + ЧислоПодписей = 0; + Для Каждого Строка Из ИсходныйФайл.ТекущаяВерсия.ЭлектронныеЦифровыеПодписи Цикл + НоваяСтрока = ВерсияОбъект.ЭлектронныеЦифровыеПодписи.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка); + ЧислоПодписей = ЧислоПодписей + 1; + КонецЦикла; + + Если ЧислоПодписей <> 0 Тогда + ФайлОбъект = НовыйФайл.ПолучитьОбъект(); + ФайлОбъект.ПодписанЭЦП = Истина; + ФайлОбъект.Записать(); + + ВерсияОбъект.ПодписанЭЦП = Истина; + ВерсияОбъект.Записать(); + КонецЕсли; + + Если ИсходныйФайл.Зашифрован Тогда + + ФайлОбъект = НовыйФайл.ПолучитьОбъект(); + ФайлОбъект.Зашифрован = Истина; + + Для Каждого Строка Из ИсходныйФайл.СертификатыШифрования Цикл + НоваяСтрока = ФайлОбъект.СертификатыШифрования.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка); + КонецЦикла; + + ФайлОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина); // чтобы прошла запись ранее подписанного объекта + ФайлОбъект.Записать(); + + ВерсияОбъект = НовыйФайл.ТекущаяВерсия.ПолучитьОбъект(); + ВерсияОбъект.Зашифрован = Истина; + ВерсияОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина); // чтобы прошла запись ранее подписанного объекта + ВерсияОбъект.Записать(); + + КонецЕсли; + + РаботаСФайламиВызовСервераПереопределяемый.ЗаполнитьРеквизитыФайлаИзИсходногоФайла(НовыйФайл, ИсходныйФайл); + + Возврат НовыйФайл; + +КонецФункции diff --git a/SSL/src/CommonModules/РаботаСФайламиВызовСервераПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиВызовСервераПереопределяемый/Module.bsl new file mode 100644 index 000000000..7e524a278 --- /dev/null +++ b/SSL/src/CommonModules/РаботаСФайламиВызовСервераПереопределяемый/Module.bsl @@ -0,0 +1,6 @@ +// Вызывается после копирования файла из исходного файла +// для заполнения таких реквизитов нового файла, которые не +// предусмотрены в БСП и были добавлены к справочнику Файлы или +// ВерсииФайлов в конфигурации. +Процедура ЗаполнитьРеквизитыФайлаИзИсходногоФайла(НовыйФайл, ИсходныйФайл) Экспорт +КонецПроцедуры \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаСФайламиВызовСервераПереопределяемый/РаботаСФайламиВызовСервераПереопределяемый.mdo b/SSL/src/CommonModules/РаботаСФайламиВызовСервераПереопределяемый/РаботаСФайламиВызовСервераПереопределяемый.mdo new file mode 100644 index 000000000..22f737ffc --- /dev/null +++ b/SSL/src/CommonModules/РаботаСФайламиВызовСервераПереопределяемый/РаботаСФайламиВызовСервераПереопределяемый.mdo @@ -0,0 +1,10 @@ + + + РаботаСФайламиВызовСервераПереопределяемый + + ru + Работа с файлами вызов сервера переопределяемый + + true + true + diff --git a/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl index 22b915296..687bf16f9 100644 --- a/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl @@ -3,16 +3,19 @@ // Подключение управления доступом в подсистеме РаботаСФайламиВызовСервера. // Можно ли занять данный файл +// +// Параметры: +// ДанныеФайла - структура с данными файла +// СтрокаОшибки - строка, содержащая текст ошибки в случае невозможности занять +// +// Возвращаемое значение: +// Булево. Функция ВозможноЗанятьФайл(ДанныеФайла, СтрокаОшибки = "") Экспорт Возврат Истина; КонецФункции -Процедура ПередЗаписьюФайла(ЭтотОбъект, Отказ) Экспорт - -КонецПроцедуры - // Функция ПометкаУдаленияРазрешена, при использовании ограничения // пометки удаления проверяет, разрешена ли текущему пользователю // пометка удаления папки файлов или файла. diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl index 3e4e19a18..e9a9a3f57 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl @@ -13,7 +13,7 @@ // Функция ВерсияБиблиотеки() Экспорт - Возврат "1.1.2.3"; + Возврат "1.1.3.1"; КонецФункции diff --git a/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl index 921865841..a01683817 100644 --- a/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl @@ -18,6 +18,7 @@ Функция ОписанияНачальногоЗаполненияПрофилейГруппДоступа() Экспорт ОписанияПрофилей = Новый Массив; + Возврат ОписанияПрофилей; КонецФункции @@ -49,7 +50,6 @@ ИначеЕсли Свойства.ВидДоступа = ПланыВидовХарактеристик.ВидыДоступа.ДополнительныеСведения Тогда Свойства.Таблицы.Добавить("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения"); // Конец Свойства - КонецЕсли; КонецПроцедуры diff --git a/SSL/src/CommonModules/ФайловыеФункцииКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/ФайловыеФункцииКлиентПовтИсп/Module.bsl index cc67554b1..7482be489 100644 --- a/SSL/src/CommonModules/ФайловыеФункцииКлиентПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ФайловыеФункцииКлиентПовтИсп/Module.bsl @@ -21,3 +21,8 @@ Возврат ПолучитьФорму("ОбщаяФорма.НапоминаниеПриРедактировании"); КонецФункции +// Возвращает тип платформы клиента +Функция ТипПлатформыКлиента() Экспорт + СистемнаяИнфо = Новый СистемнаяИнформация; + Возврат СистемнаяИнфо.ТипПлатформы; +КонецФункции diff --git a/SSL/src/CommonModules/ФайловыеФункцииПереопределяемый/Module.bsl b/SSL/src/CommonModules/ФайловыеФункцииПереопределяемый/Module.bsl index e281ac5c6..da87e0705 100644 --- a/SSL/src/CommonModules/ФайловыеФункцииПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ФайловыеФункцииПереопределяемый/Module.bsl @@ -247,3 +247,82 @@ // Конец ПрисоединенныеФайлы КонецПроцедуры + +// Возвращает есть ли хранимые файлы к этому объекту +Функция ЕстьХранимыеФайлы(ВнешнийОбъект) Экспорт + + // РаботаСФайлами + ТипыВладельцев = Метаданные.ОбщиеКоманды.ПрисоединенныеФайлы.ТипПараметраКоманды.Типы(); + Если ТипыВладельцев.Найти(ТипЗнч(ВнешнийОбъект)) <> Неопределено Тогда + МассивФайлов = РаботаСФайламиВызовСервера.ПолучитьВсеПодчиненныеФайлы(ВнешнийОбъект); + Возврат (МассивФайлов.Количество() <> 0); + КонецЕсли; + // Конец РаботаСФайлами + + // ПрисоединенныеФайлы + ТипыВладельцев = Метаданные.ОбщиеКоманды.ПрисоединенныеФайлыКОбъекту.ТипПараметраКоманды.Типы(); + Если ТипыВладельцев.Найти(ТипЗнч(ВнешнийОбъект)) <> Неопределено Тогда + Возврат ПрисоединенныеФайлы.ОбъектИмеетФайлы(ВнешнийОбъект); + КонецЕсли; + // Конец ПрисоединенныеФайлы + + Возврат Ложь; + +КонецФункции + +// Возвращает хранимые файлы к этому объекту +Функция ПолучитьХранимыеФайлы(ВнешнийОбъект) Экспорт + + МассивДанных = Новый Массив; + + // РаботаСФайлами + ТипыВладельцев = Метаданные.ОбщиеКоманды.ПрисоединенныеФайлы.ТипПараметраКоманды.Типы(); + Если ТипыВладельцев.Найти(ТипЗнч(ВнешнийОбъект)) <> Неопределено Тогда + + МассивФайлов = РаботаСФайламиВызовСервера.ПолучитьВсеПодчиненныеФайлы(ВнешнийОбъект); + + Для Каждого Файл Из МассивФайлов Цикл + ДанныеФайла = Новый Структура("ДатаМодификацииУниверсальная, Размер, Наименование, Расширение, ДвоичныеДанныеФайла, Текст"); + + ДанныеФайла.ДатаМодификацииУниверсальная = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Файл.ТекущаяВерсия, "ДатаМодификацииУниверсальная"); + ДанныеФайла.Размер = Файл.ТекущаяВерсияРазмер; + ДанныеФайла.Наименование = Файл.Наименование; + ДанныеФайла.Расширение = Файл.ТекущаяВерсияРасширение; + + ДанныеДляОткрытия = РаботаСФайламиВызовСервера.ПолучитьНавигационнуюСсылкуВоВременномХранилище(Файл.ТекущаяВерсия); + ДанныеФайла.ДвоичныеДанныеФайла = ДанныеДляОткрытия; + + ДанныеФайла.Текст = Файл.ТекстХранилище.Получить(); + + МассивДанных.Добавить(ДанныеФайла); + КонецЦикла; + + КонецЕсли; + // Конец РаботаСФайлами + + // ПрисоединенныеФайлы + ТипыВладельцев = Метаданные.ОбщиеКоманды.ПрисоединенныеФайлыКОбъекту.ТипПараметраКоманды.Типы(); + Если ТипыВладельцев.Найти(ТипЗнч(ВнешнийОбъект)) <> Неопределено Тогда + + МассивФайлов = ПрисоединенныеФайлы.ПолучитьВсеПодчиненныеФайлы(ВнешнийОбъект); + + Для Каждого Файл Из МассивФайлов Цикл + ДанныеФайла = Новый Структура("ДатаМодификацииУниверсальная, Размер, Наименование, Расширение, ДвоичныеДанныеФайла, Текст"); + + ДанныеФайла.ДатаМодификацииУниверсальная = Файл.ДатаМодификацииУниверсальная; + ДанныеФайла.Размер = Файл.Размер; + ДанныеФайла.Наименование = Файл.Наименование; + ДанныеФайла.Расширение = Файл.Расширение; + + ДанныеФайла.ДвоичныеДанныеФайла = ПолучитьНавигационнуюСсылкуФайла(Файл, Неопределено); + ДанныеФайла.Текст = Файл.ТекстХранилище.Получить(); + + МассивДанных.Добавить(ДанныеФайла); + КонецЦикла; + + КонецЕсли; + // Конец ПрисоединенныеФайлы + + Возврат МассивДанных; + +КонецФункции diff --git a/SSL/src/CommonModules/ФайловыеФункцииПовтИсп/Module.bsl b/SSL/src/CommonModules/ФайловыеФункцииПовтИсп/Module.bsl new file mode 100644 index 000000000..65be91cab --- /dev/null +++ b/SSL/src/CommonModules/ФайловыеФункцииПовтИсп/Module.bsl @@ -0,0 +1,10 @@ +//////////////////////////////////////////////////////////////////////////////// +// МОДУЛЬ СОДЕРЖИТ ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ С ФАЙЛАМИ +// +// + +// Возвращает тип платформы сервера +Функция ТипПлатформыСервера() Экспорт + СистемнаяИнфо = Новый СистемнаяИнформация; + Возврат СистемнаяИнфо.ТипПлатформы; +КонецФункции diff --git a/SSL/src/CommonModules/ФайловыеФункцииПовтИсп/ФайловыеФункцииПовтИсп.mdo b/SSL/src/CommonModules/ФайловыеФункцииПовтИсп/ФайловыеФункцииПовтИсп.mdo new file mode 100644 index 000000000..4061c0646 --- /dev/null +++ b/SSL/src/CommonModules/ФайловыеФункцииПовтИсп/ФайловыеФункцииПовтИсп.mdo @@ -0,0 +1,11 @@ + + + ФайловыеФункцииПовтИсп + + ru + Файловые функции повт исп + + true + true + DuringSession + diff --git a/SSL/src/CommonModules/ФизическиеЛица/Module.bsl b/SSL/src/CommonModules/ФизическиеЛица/Module.bsl index d4898afe3..b20d76c46 100644 --- a/SSL/src/CommonModules/ФизическиеЛица/Module.bsl +++ b/SSL/src/CommonModules/ФизическиеЛица/Module.bsl @@ -444,3 +444,46 @@ Возврат Истина; КонецФункции + +// Формирует фамилию и инициалы либо по наименованию элемента справочника ФизическиеЛица, +// либо по переданным строкам. +// Если передан Объект, то извлеченная из него строка считается совокупностью +// Фамилия + Имя + Отчество, разделенными пробелами. +// +// Параметры +// ОбъектИлиСтрока - строка, ссылка или объект элемента справочника ФизическиеЛица. +// Фамилия - фамилия физического лица. +// Имя - имя физического лица. +// Отчество - отчество физического лица. +// +// Возвращаемое значение +// Строка - фамилия и инициалы одной строкой. +// В параметрах Фамилия, Имя и Отчество записываются вычисленные части. +// +// Пример: +// Результат = ФамилияИнициалыФизЛица("Иванов Иван Иванович"); // Результат = "Иванов И. И." +// +Функция ФамилияИнициалыФизЛица(ОбъектИлиСтрока = "", Фамилия = " ", Имя = " ", Отчество = " ") Экспорт + + ТипОбъекта = ТипЗнч(ОбъектИлиСтрока); + Если ТипОбъекта = Тип("Строка") Тогда + ФИО = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СокрЛП(ОбъектИлиСтрока), " "); + ИначеЕсли ТипОбъекта = Тип("СправочникСсылка.ФизическиеЛица") Или ТипОбъекта = Тип("СправочникОбъект.ФизическиеЛица") Тогда + ФИО = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СокрЛП(ОбъектИлиСтрока.Наименование), " "); + Иначе + // используем возможно переданные отдельные строки + Возврат ?(Не ПустаяСтрока(Фамилия), + Фамилия + ?(Не ПустаяСтрока(Имя), " " + Лев(Имя,1) + "." + ?(Не ПустаяСтрока(Отчество), Лев(Отчество,1) + ".", ""), ""), + "") + КонецЕсли; + + КоличествоПодстрок = ФИО.Количество(); + Фамилия = ?(КоличествоПодстрок > 0, ФИО[0], ""); + Имя = ?(КоличествоПодстрок > 1, ФИО[1], ""); + Отчество = ?(КоличествоПодстрок > 2, ФИО[2], ""); + + Возврат ?(Не ПустаяСтрока(Фамилия), + Фамилия + ?(Не ПустаяСтрока(Имя), " " + Лев(Имя,1) + "." + ?(Не ПустаяСтрока(Отчество), Лев(Отчество, 1) + ".", ""), ""), + ""); + +КонецФункции diff --git a/SSL/src/CommonModules/ЭлектроннаяЦифроваяПодписьКлиент/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяЦифроваяПодписьКлиент/Module.bsl index 5f7173aca..da28553d3 100644 --- a/SSL/src/CommonModules/ЭлектроннаяЦифроваяПодписьКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяЦифроваяПодписьКлиент/Module.bsl @@ -211,6 +211,11 @@ ПутьМодуляКриптографии = ПолучитьПерсональныеНастройкиРаботыСЭЦП().ПутьМодуляКриптографии; ТипПровайдераЭЦП = ПолучитьПерсональныеНастройкиРаботыСЭЦП().ТипПровайдераЭЦП; + Если ПустаяСтрока(ПровайдерЭЦП) Тогда + СтрокаОшибки = НСтр("ru='Не указан провайдер ЭЦП. В настройках криптографии укажите провайдера ЭЦП, тип провайдера, алгоритмы подписи и хеширования.'"); + ВызватьИсключение СтрокаОшибки; + КонецЕсли; + МенеджерКриптографии = Новый МенеджерКриптографии(ПровайдерЭЦП, ПутьМодуляКриптографии, ТипПровайдераЭЦП); МенеджерКриптографии.АлгоритмПодписи = ПолучитьПерсональныеНастройкиРаботыСЭЦП().АлгоритмПодписи; @@ -305,7 +310,17 @@ РасширениеПодключеноФайл = ПодключитьРасширениеРаботыСФайлами(); - Если ТекущиеДанные.Объект <> Неопределено И (НЕ ТекущиеДанные.Объект.Пустая()) Тогда + ОбъектУказан = Ложь; + + Если ТипЗнч(ТекущиеДанные.Объект) = Тип("Строка") Тогда + Если НЕ ПустаяСтрока(ТекущиеДанные.Объект) Тогда + ОбъектУказан = Истина; + КонецЕсли; + ИначеЕсли ТекущиеДанные.Объект <> Неопределено И (НЕ ТекущиеДанные.Объект.Пустая()) Тогда + ОбъектУказан = Истина; + КонецЕсли; + + Если ОбъектУказан Тогда Отпечаток = ТекущиеДанные.Отпечаток; Сертификат = Неопределено; @@ -337,7 +352,7 @@ Возврат; КонецЕсли; - РасширениеДляФайловПодписи = ЭлектроннаяЦифроваяПодписьКлиент.ПолучитьПерсональныеНастройкиРаботыСЭЦП().РасширениеДляФайловПодписи; + РасширениеДляФайловПодписи = ПолучитьПерсональныеНастройкиРаботыСЭЦП().РасширениеДляФайловПодписи; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); Фильтр = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Все файлы (*.%1)|*.%1'"), РасширениеДляФайловПодписи, РасширениеДляФайловПодписи); @@ -372,3 +387,168 @@ КонецПроцедуры + +// "Сохранить как" вместе с подписями - все или выбранные +// +// Параметры +// ФайлСсылка - СправочникСсылка - объект, в табличной части которого содержатся подписи +// ПолноеИмяФайла - Строка - полное имя с путем, под которым сохранен файл +// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы +// МассивСтруктурПодписей - Массив - массив структур подписей. Если Неопределено - сохраняем все подписи +// +Процедура СохранитьПодписи(ФайлСсылка, ПолноеИмяФайла, УникальныйИдентификатор, МассивСтруктурПодписей) Экспорт + + ОсновнойФайл = Новый Файл(ПолноеИмяФайла); + Путь = ОсновнойФайл.Путь; + + МассивИмен = Новый Массив; + МассивИмен.Добавить(ОсновнойФайл.Имя); + + РасширениеДляФайловПодписи = ПолучитьПерсональныеНастройкиРаботыСЭЦП().РасширениеДляФайловПодписи; + + Для Каждого СтруктураПодписи Из МассивСтруктурПодписей Цикл + ИмяФайлаПодписи = СтруктураПодписи.ИмяФайлаПодписи; + + Если ПустаяСтрока(ИмяФайлаПодписи) Тогда + ИмяФайлаПодписи = Строка(ФайлСсылка) + "-" + Строка(СтруктураПодписи.КомуВыданСертификат) + "." + РасширениеДляФайловПодписи; + КонецЕсли; + + СкорректироватьИмяФайла(ИмяФайлаПодписи); + + ПолныйПутьПодписи = Путь; + ФайловыеФункцииКлиентСервер.ДобавитьСлешЕслиНужно(ПолныйПутьПодписи); + ПолныйПутьПодписи = ПолныйПутьПодписи + ИмяФайлаПодписи; + + ФайлПоИмени = Новый Файл(ПолныйПутьПодписи); + ФайлСуществует = ФайлПоИмени.Существует(); + + Счетчик = 0; + ИмяФайлаПодписиБезПостфикса = ФайлПоИмени.ИмяБезРасширения; + Пока ФайлСуществует Цикл + Счетчик = Счетчик + 1; + ИмяФайлаПодписи = ИмяФайлаПодписиБезПостфикса + " (" + Строка(Счетчик) + ")" + "." + РасширениеДляФайловПодписи; + СкорректироватьИмяФайла(ИмяФайлаПодписи); + + ПолныйПутьПодписи = Путь; + ФайловыеФункцииКлиентСервер.ДобавитьСлешЕслиНужно(ПолныйПутьПодписи); + ПолныйПутьПодписи = ПолныйПутьПодписи + ИмяФайлаПодписи; + + ФайлДляПроверки = Новый Файл(ПолныйПутьПодписи); + ФайлСуществует = ФайлДляПроверки.Существует(); + КонецЦикла; + + Файл = Новый Файл(ПолныйПутьПодписи); + МассивИмен.Добавить(Файл.Имя); + ПередаваемыеФайлы = Новый Массив; + Описание = Новый ОписаниеПередаваемогоФайла(ПолныйПутьПодписи, СтруктураПодписи.АдресПодписи); + ПередаваемыеФайлы.Добавить(Описание); + + ПутьКФайлу = Файл.Путь; + Если Прав(ПутьКФайлу,1) <> "\" Тогда + ПутьКФайлу = ПутьКФайлу + "\"; + КонецЕсли; + + // Сохраним Файл из БД на диск + ПолучитьФайлы(ПередаваемыеФайлы,, ПутьКФайлу, Ложь); + + УдалитьИзВременногоХранилища(СтруктураПодписи.АдресПодписи); + КонецЦикла; + + Если МассивСтруктурПодписей.Количество() <> 0 Тогда + Текст = НСтр("ru = 'Каталог:'") + Символы.ПС; + Текст = Текст + Путь; + Текст = Текст + Символы.ПС + Символы.ПС; + Текст = Текст + НСтр("ru = 'Файлы:'") + Символы.ПС; + + Для Каждого ИмяФайла Из МассивИмен Цикл + Текст = Текст + ИмяФайла + Символы.ПС; + КонецЦикла; + + ПараметрыФормы = Новый Структура("Текст", Текст); + ОткрытьФорму("ОбщаяФорма.ОтчетОСохраненииФайлов", ПараметрыФормы); + + КонецЕсли; + +КонецПроцедуры + +// Добавляет ЭЦП из файла (файлов) +// +// Параметры +// ФайлСсылка - любая ссылка - объект, в табличную часть которого будет занесена информация о ЭЦП +// МассивФайловПодписей - Массив структур - массив структур (ПутьКФайлу, Комментарий) +// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы +// ВладелецФайла - любая ссылка - значение реквизита ВладелецФайла у ФайлСсылка +Функция СформироватьПодписиДляЗанесениюВБазу(ФайлСсылка, МассивФайловПодписей, УникальныйИдентификатор = Неопределено) Экспорт + + Отказ = Ложь; + МенеджерКриптографии = ПолучитьМенеджерКриптографии(Отказ); + + Если Отказ Тогда + Возврат Новый Массив; + КонецЕсли; + + ДатаПодписи = ТекущаяДата(); + + МассивДанныхДляЗанесенияВБазу = Новый Массив; + + Для Каждого Элемент Из МассивФайловПодписей Цикл + + ИмяФайлаСПутем = Элемент.ПутьКФайлу; + + Сертификаты = МенеджерКриптографии.ПолучитьСертификатыИзПодписи(ИмяФайлаСПутем); + + Если Сертификаты.Количество() <> 0 Тогда + + Сертификат = Сертификаты[0]; + + НоваяПодписьДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайлаСПутем); + + Файл = Новый Файл(ИмяФайлаСПутем); + ИмяФайлаПодписи = Файл.Имя; + + Отпечаток = Base64Строка(Сертификат.Отпечаток); + КомуВыданСертификат = ЭлектроннаяЦифроваяПодписьКлиентСервер.ПолучитьПредставлениеПользователя(Сертификат.Субъект); + ДвоичныеДанныеСертификата = Сертификат.Выгрузить(); + + ДанныеПодписи = Новый Структура("ОбъектСсылка, НоваяПодписьДвоичныеДанные, Отпечаток, ДатаПодписи, Комментарий, ИмяФайлаПодписи, КомуВыданСертификат, АдресФайла, ДвоичныеДанныеСертификата", + ФайлСсылка, + НоваяПодписьДвоичныеДанные, + Отпечаток, + ДатаПодписи, + Элемент.Комментарий, + ИмяФайлаПодписи, + КомуВыданСертификат, + "", // АдресФайла + ДвоичныеДанныеСертификата); + + МассивДанныхДляЗанесенияВБазу.Добавить(ДанныеПодписи); + + КонецЕсли; + + КонецЦикла; + + Возврат МассивДанныхДляЗанесенияВБазу; + +КонецФункции + +// Процедура предназначена для коррекции имени файла - замена некорректных символов на пробел +// +// Параметры +// СтрИмяФайла - Строка - Имя файла +Процедура СкорректироватьИмяФайла(СтрИмяФайла) + + // Перечень запрещенных символов взят отсюда: http://support.microsoft.com/kb/100108/ru. + // При этом были объединены запрещенные символы для файловых систем FAT и NTFS. + СтрИсключения = """ / \ [ ] : ; | = , ? * < >"; + СтрИсключения = СтрЗаменить(СтрИсключения, " ", ""); + + Для Сч=1 по СтрДлина(СтрИсключения) Цикл + Символ = Сред(СтрИсключения, Сч, 1); + Если Найти(СтрИмяФайла, Символ) <> 0 Тогда + СтрИмяФайла = СтрЗаменить(СтрИмяФайла, Символ, " "); + КонецЕсли; + КонецЦикла; + + СтрИмяФайла = СокрЛП(СтрИмяФайла); + +КонецПроцедуры // СкорректироватьИмяФайла() diff --git a/SSL/src/CommonModules/ЭлектроннаяЦифроваяПодписьКлиентСервер/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяЦифроваяПодписьКлиентСервер/Module.bsl index 469e09f94..a574ff7b8 100644 --- a/SSL/src/CommonModules/ЭлектроннаяЦифроваяПодписьКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяЦифроваяПодписьКлиентСервер/Module.bsl @@ -60,15 +60,36 @@ ДействителенДо = Сертификат.ДатаОкончания; EKU = Неопределено; + Назначение = ""; Если Сертификат.РасширенныеСвойства.Свойство("EKU", EKU) Тогда Назначение = ПолучитьНазначение(EKU); + ЗаменитьНедопустимыеСимволы(Назначение); КонецЕсли; Отпечаток = Base64Строка(Сертификат.Отпечаток); + ЗаменитьНедопустимыеСимволы(КомуВыдан); + ЗаменитьНедопустимыеСимволы(КемВыдан); + СтруктураВозврата = Новый Структура("КомуВыдан, КемВыдан, ДействителенДо, Назначение, Отпечаток", КомуВыдан, КемВыдан, ДействителенДо, Назначение, Отпечаток); Возврат СтруктураВозврата; КонецФункции +// заменяет недопустимые для XML символы на пробелы +Процедура ЗаменитьНедопустимыеСимволы(Текст) +#Если НЕ ВебКлиент Тогда + Позиция = 1; + Пока Позиция <> 0 Цикл + + Позиция = НайтиНедопустимыеСимволыXML(Текст, Позиция); + + Если Позиция <> 0 Тогда + НоваяСтрока = Лев(Текст, Позиция - 1) + " " + Сред(Текст, Позиция + 1); + Текст = НоваяСтрока; + КонецЕсли; + + КонецЦикла; +#КонецЕсли +КонецПроцедуры \ No newline at end of file diff --git a/SSL/src/CommonPictures/ЗаполнитьПоОснованию/Picture.png b/SSL/src/CommonPictures/ЗаполнитьПоОснованию/Picture.png new file mode 100644 index 000000000..77326c72b Binary files /dev/null and b/SSL/src/CommonPictures/ЗаполнитьПоОснованию/Picture.png differ diff --git a/SSL/src/CommonPictures/ЗаполнитьПоОснованию/ЗаполнитьПоОснованию.mdo b/SSL/src/CommonPictures/ЗаполнитьПоОснованию/ЗаполнитьПоОснованию.mdo new file mode 100644 index 000000000..2cec561e4 --- /dev/null +++ b/SSL/src/CommonPictures/ЗаполнитьПоОснованию/ЗаполнитьПоОснованию.mdo @@ -0,0 +1,8 @@ + + + ЗаполнитьПоОснованию + + ru + Заполнить по основанию + + diff --git a/SSL/src/CommonPictures/КартинкаОбновитьИзФайлаНаДиске/Picture.png b/SSL/src/CommonPictures/КартинкаОбновитьИзФайлаНаДиске/Picture.png new file mode 100644 index 000000000..eb5426fba Binary files /dev/null and b/SSL/src/CommonPictures/КартинкаОбновитьИзФайлаНаДиске/Picture.png differ diff --git a/SSL/src/CommonPictures/КартинкаОбновитьИзФайлаНаДиске/КартинкаОбновитьИзФайлаНаДиске.mdo b/SSL/src/CommonPictures/КартинкаОбновитьИзФайлаНаДиске/КартинкаОбновитьИзФайлаНаДиске.mdo new file mode 100644 index 000000000..70add42da --- /dev/null +++ b/SSL/src/CommonPictures/КартинкаОбновитьИзФайлаНаДиске/КартинкаОбновитьИзФайлаНаДиске.mdo @@ -0,0 +1,8 @@ + + + КартинкаОбновитьИзФайлаНаДиске + + ru + Картинка обновить из файла на диске + + diff --git a/SSL/src/Configuration/Configuration.mdo b/SSL/src/Configuration/Configuration.mdo index caa446960..b000f641b 100644 --- a/SSL/src/Configuration/Configuration.mdo +++ b/SSL/src/Configuration/Configuration.mdo @@ -10,13 +10,13 @@ - - + + ManagedApplication PersonalComputer Russian Фирма "1С" - 1.1.2.3 + 1.1.3.1 http://downloads.v8.1c.ru/tmplts/ true @@ -220,6 +220,8 @@ CommonPicture.УдалитьПользовательскийМакет CommonPicture.ЭлектронноеПисьмоВходящее CommonPicture.ЭлектронноеПисьмоИсходящее + CommonPicture.ЗаполнитьПоОснованию + CommonPicture.КартинкаОбновитьИзФайлаНаДиске SessionParameter.ВидыДоступаБезГруппЗначенияДоступа SessionParameter.ВидыДоступаБезОграничения SessionParameter.ВидыДоступаЕдинственныеДляТипаЗначенияДоступа @@ -304,6 +306,7 @@ CommonModule.АнкетированиеКлиентСервер CommonModule.БизнесПроцессыИЗадачиВызовСервера CommonModule.БизнесПроцессыИЗадачиКлиент + CommonModule.БизнесПроцессыИЗадачиКлиентПереопределяемый CommonModule.БизнесПроцессыИЗадачиПереопределяемый CommonModule.БизнесПроцессыИЗадачиСервер CommonModule.БизнесПроцессыИЗадачиСобытия @@ -320,6 +323,8 @@ CommonModule.ВзаимодействияКлиентСервер CommonModule.ВзаимодействияКлиентСерверПереопределяемый CommonModule.ВзаимодействияПереопределяемый + CommonModule.ВнешниеЗадачиВызовСервера + CommonModule.ВнешниеЗадачиПереопределяемыйВызовСервера CommonModule.ВнешниеПользователи CommonModule.ГрупповоеИзменениеОбъектовКлиент CommonModule.ДатыЗапретаИзменения @@ -343,6 +348,8 @@ CommonModule.НастройкаПорядкаЭлементов CommonModule.НастройкаПорядкаЭлементовКлиент CommonModule.НастройкаПорядкаЭлементовСобытия + CommonModule.ОбменВнешнимиЗаданиямиСервер + CommonModule.ОбменВнешнимиЗаданиямиСобытия CommonModule.ОбменДаннымиКлиент CommonModule.ОбменДаннымиПереопределяемый CommonModule.ОбменДаннымиПовтИсп @@ -385,6 +392,12 @@ CommonModule.ПрисоединенныеФайлыКлиент CommonModule.ПрисоединенныеФайлыСобытия CommonModule.ПроверкаЛегальностиПолученияОбновленияКлиент + CommonModule.РаботаС1СДокументооборот + CommonModule.РаботаС1СДокументооборотВызовСервера + CommonModule.РаботаС1СДокументооборотКлиент + CommonModule.РаботаС1СДокументооборотКлиентПовтИсп + CommonModule.РаботаС1СДокументооборотПереопределяемый + CommonModule.РаботаС1СДокументооборотПовтИсп CommonModule.РаботаСБиблиотекойФайлов CommonModule.РаботаСБиблиотекойФайловПереопределяемый CommonModule.РаботаСКурсамиВалют @@ -394,6 +407,7 @@ CommonModule.РаботаСПочтовымиСообщениями CommonModule.РаботаСПочтовымиСообщениямиКлиент CommonModule.РаботаСФайламиВызовСервера + CommonModule.РаботаСФайламиВызовСервераПереопределяемый CommonModule.РаботаСФайламиКлиент CommonModule.РаботаСФайламиКлиентПовтИсп CommonModule.РаботаСФайламиКлиентСервер @@ -441,6 +455,7 @@ CommonModule.ФайловыеФункцииКлиентПовтИсп CommonModule.ФайловыеФункцииКлиентСервер CommonModule.ФайловыеФункцииПереопределяемый + CommonModule.ФайловыеФункцииПовтИсп CommonModule.ФизическиеЛица CommonModule.ФизическиеЛицаКлиент CommonModule.ФизическиеЛицаПереопределяемый @@ -450,6 +465,8 @@ CommonModule.ЭлектроннаяЦифроваяПодписьКлиент CommonModule.ЭлектроннаяЦифроваяПодписьКлиентСервер CommonModule.ЭлектроннаяЦифроваяПодписьПовтИсп + ExchangePlan.ОбменВнешнимиЗаданиями + ExchangePlan.ОбменВнешнимиЗаданиямиС1СДокументооборот XDTOPackage.Files WebService.Files EventSubscription.ЗаписатьВСписокБизнесПроцессов @@ -457,6 +474,10 @@ EventSubscription.ЗаписатьЗависимыеНаборыЗначенийДоступа EventSubscription.ЗаписатьНаборыЗначенийДоступа EventSubscription.ЗаполнитьКонтактнуюИнформацию + EventSubscription.ОбменДаннымиОбменВнешнимиЗаданиямиПередЗаписью + EventSubscription.ОбменДаннымиОбменВнешнимиЗаданиямиПередУдалением + EventSubscription.ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередЗаписью + EventSubscription.ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередУдалением EventSubscription.ОбменДаннымиПередЗаписьюУзлаПланаОбмена EventSubscription.ОбменДаннымиПередУдалениемУзлаПланаОбмена EventSubscription.ОбновитьПредставлениеВнешнегоПользователя @@ -464,6 +485,8 @@ EventSubscription.ПрисоединенныйФайлПередЗаписьюВзаимодействия EventSubscription.ПрисоединенныйФайлПередУдалениемВзаимодействия EventSubscription.ПрисоединенныйФайлПриЗаписиВзаимодействия + EventSubscription.СтартВнешнегоЗаданияПередЗаписьюЗадач + EventSubscription.СтартВнешнегоЗаданияПриЗаписиЗадач EventSubscription.УстановитьПометкуУдаленияЗадач EventSubscription.УстановитьПометкуУдаленияПрисоединенныхФайловВзаимодействия ScheduledJob.ВыполнениеОбменаДанными @@ -501,6 +524,8 @@ FunctionalOption.ИспользоватьДополнительныеОтчетыИОбработкиПечатныеФормы FunctionalOption.ИспользоватьДополнительныеОтчетыИОбработкиСозданиеСвязанныхОбъектов FunctionalOption.ИспользоватьДополнительныеРеквизитыИСведения + FunctionalOption.ИспользоватьИнтеграциюКонфигураций + FunctionalOption.ИспользоватьИнтеграциюС1СДокументооборот FunctionalOption.ИспользоватьОбменДанными FunctionalOption.ИспользоватьПодчиненныеБизнесПроцессы FunctionalOption.ИспользоватьПолнотекстовыйПоиск @@ -542,12 +567,18 @@ CommonCommand.СтруктураПодчиненности CommonCommand.УстановитьРасширениеРаботыСФайлами CommonCommand.ФайлыВТоме + CommonCommand.ДокументооборотДокументы + CommonCommand.ДокументооборотЗадачи + CommonCommand.ДокументооборотСоздатьБизнесПроцесс + CommonCommand.ДокументооборотФайлы CommandGroup.Взаимодействия CommandGroup.ВыполнениеОбменаДанными CommandGroup.ПараметрыОбменаДанными CommandGroup.Печать + CommandGroup.Документооборот Constant.URLБиблиотекиФайлов Constant.АдресатыПолученияОтчетаПоЖурналуРегистрации + Constant.АдресВебСервиса1СДокументооборот Constant.АлгоритмПодписи Constant.АлгоритмХеширования Constant.АлгоритмШифрования @@ -557,6 +588,7 @@ Constant.ДатаУведомленияОНовыхЗадачах Constant.ЗаголовокСистемы Constant.ЗапретЗагрузкиФайловПоРасширению + Constant.ИдентификаторКорневойПапкиФайлов1СДокументооборот Constant.ИзвлекатьТекстыФайловНаСервере Constant.ИзменятьЗаданияЗаднимЧислом Constant.ИмяПользователяБиблиотекиФайлов @@ -565,17 +597,21 @@ Constant.ИспользоватьБизнесПроцессыИЗадачи Constant.ИспользоватьВерсионированиеОбъектов Constant.ИспользоватьВзаимодействия + Constant.ИспользоватьВнешниеЗадачи Constant.ИспользоватьВнешнихПользователей Constant.ИспользоватьГруппыПользователей Constant.ИспользоватьДатуИВремяВСрокахЗадач Constant.ИспользоватьДатуНачалаЗадач Constant.ИспользоватьДополнительныеРеквизитыИСведения + Constant.ИспользоватьИнтеграциюС1СДокументооборот Constant.ИспользоватьОбменДанными Constant.ИспользоватьПодчиненныеБизнесПроцессы Constant.ИспользоватьПолнотекстовыйПоиск Constant.ИспользоватьЭлектронныеЦифровыеПодписи Constant.КодКорневойПапкиБиблиотекиФайлов Constant.МаксимальныйРазмерФайла + Constant.МаксимальныйРазмерФайлаДляПередачиВ1СДокументооборот + Constant.НаименованиеКорневойПапкиФайлов1СДокументооборот Constant.НастройкаПодчиненногоУзлаРИБЗавершена Constant.НастройкаПроксиСервера Constant.НастройкиПодчиненногоУзлаРИБ @@ -588,6 +624,7 @@ Constant.СтатусОбновленияКонфигурации Constant.ТипПровайдераЭЦП Constant.ТипХраненияФайлов + CommonForm.АвторизацияВ1СДокументооборот CommonForm.АдреснаяКнига CommonForm.БиблиотекаФайлов CommonForm.ВводАдреса @@ -606,6 +643,33 @@ CommonForm.ВыборУзловПлановОбмена CommonForm.ВыполнениеОбменаДанными CommonForm.ДобавлениеПодписиИзФайла + CommonForm.ДокументооборотБизнесПроцессИсполнение + CommonForm.ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента + CommonForm.ДокументооборотБизнесПроцессОбработкаВходящегоДокумента + CommonForm.ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента + CommonForm.ДокументооборотБизнесПроцессОзнакомление + CommonForm.ДокументооборотБизнесПроцессПоручение + CommonForm.ДокументооборотБизнесПроцессРассмотрение + CommonForm.ДокументооборотБизнесПроцессРегистрация + CommonForm.ДокументооборотБизнесПроцессСогласование + CommonForm.ДокументооборотБизнесПроцессУтверждение + CommonForm.ДокументооборотВнутреннийДокумент + CommonForm.ДокументооборотВходящийДокумент + CommonForm.ДокументооборотВыборИзСписка + CommonForm.ДокументооборотВыборИсполнителяБизнесПроцесса + CommonForm.ДокументооборотВыборОбъектовАдресацииРоли + CommonForm.ДокументооборотВыборОдногоТипаИзСоставногоТипа + CommonForm.ДокументооборотВыборПользователяСПодразделениями + CommonForm.ДокументооборотВыборФайла + CommonForm.ДокументооборотДокументы + CommonForm.ДокументооборотЗадачи + CommonForm.ДокументооборотИсходящийДокумент + CommonForm.ДокументооборотКарточкаЗадачи + CommonForm.ДокументооборотКарточкаФайла + CommonForm.ДокументооборотНастройкаКаталогаФайлов + CommonForm.ДокументооборотПоискВСписке + CommonForm.ДокументооборотСозданиеНовогоФайла + CommonForm.ДокументооборотФайлы CommonForm.ДополнительныеОтчетыИОбработки CommonForm.ЗагрузкаСообщенияОбменаСИзменениямиКонфигурации CommonForm.КарточкаФайлаИзБиблиотекиФайлов @@ -623,6 +687,7 @@ CommonForm.ПараметрыПроксиСервера CommonForm.ПерсональныеНастройкиЭЦП CommonForm.ПечатьДокументов + CommonForm.ПодписьЭЦП CommonForm.ПодтверждениеПароляУчетнойЗаписи CommonForm.ПоискПоИндексу CommonForm.ПрисоединенныеФайлы @@ -656,6 +721,7 @@ Catalog.Календари Catalog.НаборыДополнительныхРеквизитовИСведений Catalog.НазначенияСертификатовЭЦП + Catalog.НастройкиЗаполненияОбъектов1СДокументооборота Catalog.Организации Catalog.ПапкиФайлов Catalog.Пользователи @@ -683,6 +749,7 @@ Enum.ВариантыВажностиВзаимодействия Enum.ВариантыВажностиЗадачи Enum.ВариантыВерсионированияОбъектов + Enum.ВариантыПравилЗаполненияРеквизитов Enum.ВариантыПубликацииДополнительныхОтчетовИОбработок Enum.ВариантыСжатияTIFF Enum.ВерсииПодсистемыОбменаДанными @@ -722,6 +789,7 @@ Enum.ЦветностиИзображения Report.АнализОпроса Report.АнкетированиеАналитическийОтчет + Report.ДатыЗапретаЗагрузки Report.ДатыЗапретаИзменения Report.Задачи Report.ОтчетПоБизнесПроцессам @@ -776,6 +844,7 @@ InformationRegister.ЗначенияГруппДоступа InformationRegister.ИдентификаторыПолученныхЭлектронныхПисем InformationRegister.ИсполнителиЗадач + InformationRegister.ИсточникиВнешнихЗадач InformationRegister.КалендарныеГрафики InformationRegister.КурсыВалют InformationRegister.НаборыЗначенийДоступа diff --git a/SSL/src/Configuration/ParentConfigurations.bin b/SSL/src/Configuration/ParentConfigurations.bin index 38ec72f04..a18c180e6 100644 --- a/SSL/src/Configuration/ParentConfigurations.bin +++ b/SSL/src/Configuration/ParentConfigurations.bin @@ -1 +1 @@ -{4,1,1,aa44c0d7-7253-420c-89af-423c3fa8b288,1,af145507-c34a-4475-80c2-4fdf0ff41ff3,"1.1.2.3","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",2491,1,0,5f58ee6e-a640-4d52-ae80-b7921a469466,5f58ee6e-a640-4d52-ae80-b7921a469466,0,1,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,0,1,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,0,1,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,0,1,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,0,1,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,0,1,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,0,1,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,0,1,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,0,1,48e2b615-925a-46d5-9f47-783bdb36ab02,48e2b615-925a-46d5-9f47-783bdb36ab02,0,1,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,0,1,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,0,1,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,0,1,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,0,1,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,0,1,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,0,1,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,0,1,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,0,1,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,0,1,9e36087a-baa8-4812-956a-6e1ac73aa7e0,9e36087a-baa8-4812-956a-6e1ac73aa7e0,0,1,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,0,1,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,0,1,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,0,1,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,0,1,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,0,1,cb8da2f3-f8bb-4736-8381-7c153670e3e2,cb8da2f3-f8bb-4736-8381-7c153670e3e2,0,1,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,0,1,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,0,1,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,0,1,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,0,1,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,0,1,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,0,1,c53df2d1-4564-47a7-b66e-6a23ba28270e,c53df2d1-4564-47a7-b66e-6a23ba28270e,0,1,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,0,1,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,0,1,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5-45fc-8da2-a36c435085a6,0,1,5d16e042-3889-4851-86f1-bc43bf06ee88,5d16e042-3889-4851-86f1-bc43bf06ee88,0,1,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,0,1,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,0,1,e39ecc8a-ce81-483d-85de-b0488c8b7749,e39ecc8a-ce81-483d-85de-b0488c8b7749,0,1,1514eaff-faea-4d82-9465-d0d5292bb31d,1514eaff-faea-4d82-9465-d0d5292bb31d,0,1,6d39c6df-8cd4-47ad-9125-252b37d94575,6d39c6df-8cd4-47ad-9125-252b37d94575,0,1,739bd762-01fc-41a8-87df-844eb201962f,739bd762-01fc-41a8-87df-844eb201962f,0,1,7ef99dd3-d799-4f53-ab56-5528b4c9d782,7ef99dd3-d799-4f53-ab56-5528b4c9d782,0,1,ad7c6165-2e44-4808-a77a-526882cf5dea,ad7c6165-2e44-4808-a77a-526882cf5dea,0,1,61cd6eab-6bab-4382-986e-4c7fc44f369b,61cd6eab-6bab-4382-986e-4c7fc44f369b,0,1,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,0,1,0c44fdea-7b81-45be-87f5-d64456a9d379,0c44fdea-7b81-45be-87f5-d64456a9d379,0,1,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,0,1,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,0,1,23dbb528-7ea8-44ae-a1f2-b7608118666e,23dbb528-7ea8-44ae-a1f2-b7608118666e,0,1,b9627855-6773-4a59-b7d3-f9e2e565cd9e,b9627855-6773-4a59-b7d3-f9e2e565cd9e,0,1,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,0,1,283ce432-3553-4de9-94a2-ca9a590437f5,283ce432-3553-4de9-94a2-ca9a590437f5,0,1,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,0,1,0d0ada8a-09bb-4634-bf50-199f3779dad5,0d0ada8a-09bb-4634-bf50-199f3779dad5,0,1,654523be-93d9-4faa-9a35-ce2fede13820,654523be-93d9-4faa-9a35-ce2fede13820,0,1,2c8e45b8-7d80-4137-85db-66cd1db94526,2c8e45b8-7d80-4137-85db-66cd1db94526,0,1,47accdc7-8fa0-4996-9305-c42b6ca12df9,47accdc7-8fa0-4996-9305-c42b6ca12df9,0,1,7df36398-7752-4f51-9978-1bcb4bcdd062,7df36398-7752-4f51-9978-1bcb4bcdd062,0,1,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,0,1,e6c42b5d-57fd-42ce-a968-653620e797f6,e6c42b5d-57fd-42ce-a968-653620e797f6,0,1,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,0,1,300ecdd6-144f-48c8-9fd4-6166f1de1047,300ecdd6-144f-48c8-9fd4-6166f1de1047,0,1,b6bbfb59-8249-47af-9394-be262f118811,b6bbfb59-8249-47af-9394-be262f118811,0,1,485911f7-a964-450d-82da-cab020836eb2,485911f7-a964-450d-82da-cab020836eb2,0,1,ac2e5217-aaeb-4b6f-b063-538c84f2da06,ac2e5217-aaeb-4b6f-b063-538c84f2da06,0,1,c08391e1-c4e3-42aa-8738-061031d0cb75,c08391e1-c4e3-42aa-8738-061031d0cb75,0,1,bf4c6723-e586-4643-9f03-9e672afea26f,bf4c6723-e586-4643-9f03-9e672afea26f,0,1,3de28e34-3c1e-4e7f-a720-3418c8c9c496,3de28e34-3c1e-4e7f-a720-3418c8c9c496,0,1,388b8576-9ba4-460f-b71b-3d644663656a,388b8576-9ba4-460f-b71b-3d644663656a,0,1,23204b0b-bf77-4f7c-9945-e73ad924ebb4,23204b0b-bf77-4f7c-9945-e73ad924ebb4,0,1,21032fa5-9426-40bd-91e4-ace1e4ceb013,21032fa5-9426-40bd-91e4-ace1e4ceb013,0,1,17d23818-d865-4df6-a5d3-aa21b0287d0c,17d23818-d865-4df6-a5d3-aa21b0287d0c,0,1,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,0,1,27a80757-c0fd-40c7-ad24-4c819c1ba72b,27a80757-c0fd-40c7-ad24-4c819c1ba72b,0,1,7fce9e49-e558-4760-9d95-dde6ac6c1e78,7fce9e49-e558-4760-9d95-dde6ac6c1e78,0,1,e5aba4a3-6056-4ef3-827c-d74283175393,e5aba4a3-6056-4ef3-827c-d74283175393,0,1,63039e62-7314-42ff-bdc6-c251f38b3827,63039e62-7314-42ff-bdc6-c251f38b3827,0,1,8a4b7aab-b602-4581-8fa4-fab66791f701,8a4b7aab-b602-4581-8fa4-fab66791f701,0,1,7c92c579-4651-4fe3-90dc-6c9b594b76f0,7c92c579-4651-4fe3-90dc-6c9b594b76f0,0,1,a2be2d7a-cca0-460f-a915-dadfb9cd588b,a2be2d7a-cca0-460f-a915-dadfb9cd588b,0,1,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,0,1,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,0,1,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,0,1,1f4408f5-460e-431b-9842-bc6875ccf0ae,1f4408f5-460e-431b-9842-bc6875ccf0ae,0,1,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,0,1,7bfc6163-a62f-45e8-9112-40a5d675ba4a,7bfc6163-a62f-45e8-9112-40a5d675ba4a,0,1,542ff510-0245-4a08-80ac-a9941c66ae93,542ff510-0245-4a08-80ac-a9941c66ae93,0,1,03297623-eaa2-4db0-bf1b-ce2076faf20a,03297623-eaa2-4db0-bf1b-ce2076faf20a,0,1,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,0,1,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,0,1,82a3802c-b6d6-4511-bd8b-eeec003afa33,82a3802c-b6d6-4511-bd8b-eeec003afa33,0,1,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,0,1,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,0,1,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,0,1,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,0,1,a755cb43-492d-4069-9b6a-29b92ebb5b0e,a755cb43-492d-4069-9b6a-29b92ebb5b0e,0,1,86d09107-f511-4148-b5d9-d97e92addfde,86d09107-f511-4148-b5d9-d97e92addfde,0,1,6cbedb49-746a-4d63-b3fd-1b0e77ab28c0,6cbedb49-746a-4d63-b3fd-1b0e77ab28c0,0,1,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,0,1,9c7f2728-10a9-463b-b04c-01ee26f3d4c5,9c7f2728-10a9-463b-b04c-01ee26f3d4c5,0,1,8b9be02b-cd1f-4231-a895-6c9be26348c2,8b9be02b-cd1f-4231-a895-6c9be26348c2,0,1,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,0,1,fa4f0b33-5253-4a5f-8121-feae3e1968a6,fa4f0b33-5253-4a5f-8121-feae3e1968a6,0,1,e0d21be2-91dc-4a04-9078-49420ddddcd5,e0d21be2-91dc-4a04-9078-49420ddddcd5,0,1,56c97764-7dba-42e0-8ba0-82712aca20e9,56c97764-7dba-42e0-8ba0-82712aca20e9,0,1,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,0,1,ea868745-71fc-483c-aa6e-f242c06c673f,ea868745-71fc-483c-aa6e-f242c06c673f,0,1,7f3c6269-ea41-492f-87b7-7eaaf712762e,7f3c6269-ea41-492f-87b7-7eaaf712762e,0,1,12f95031-b81f-4802-b2f3-6f70def90db0,12f95031-b81f-4802-b2f3-6f70def90db0,0,1,5732112a-f31d-41cd-9a7f-312a27395502,5732112a-f31d-41cd-9a7f-312a27395502,0,1,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,0,1,a5764a45-957c-40e4-9a3b-b57b9dfcf2fc,a5764a45-957c-40e4-9a3b-b57b9dfcf2fc,0,1,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,0,1,059b9a75-f53a-4518-a48a-afc72ab9ee36,059b9a75-f53a-4518-a48a-afc72ab9ee36,0,1,8486e623-1a54-4ad9-ab44-591b6a559bc3,8486e623-1a54-4ad9-ab44-591b6a559bc3,0,1,cb9f2231-49bb-4b14-a124-8996628afead,cb9f2231-49bb-4b14-a124-8996628afead,0,1,896de79f-3c34-4436-a4e2-4dd4f45c3e20,896de79f-3c34-4436-a4e2-4dd4f45c3e20,0,1,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,0,1,f551f78a-2f05-4932-ac33-cfa1b077f46f,f551f78a-2f05-4932-ac33-cfa1b077f46f,0,1,f646835e-61eb-4ebd-811e-dac5e70bd1b4,f646835e-61eb-4ebd-811e-dac5e70bd1b4,0,1,61b49c4c-3021-4868-834a-9137476ae169,61b49c4c-3021-4868-834a-9137476ae169,0,1,58911911-5192-45fe-87cf-c4a222a521a1,58911911-5192-45fe-87cf-c4a222a521a1,0,1,115d5d06-a2fc-453e-aab5-c869b6d5850b,115d5d06-a2fc-453e-aab5-c869b6d5850b,0,1,123bb339-b95e-44c3-b1e9-482dcaa6f297,123bb339-b95e-44c3-b1e9-482dcaa6f297,0,1,70067937-9f27-4442-b87b-6c4576ce1b78,70067937-9f27-4442-b87b-6c4576ce1b78,0,1,d33ca006-d81d-4ef8-8503-7878e81c599f,d33ca006-d81d-4ef8-8503-7878e81c599f,0,1,d2a2e332-a52c-4277-bd19-5ea8ef198469,d2a2e332-a52c-4277-bd19-5ea8ef198469,0,1,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,0,1,1c2ad932-150a-4b15-b958-62eaa8a1eebc,1c2ad932-150a-4b15-b958-62eaa8a1eebc,0,1,f8295f29-2533-4013-981b-240f017d9f7c,f8295f29-2533-4013-981b-240f017d9f7c,0,1,538b316b-3876-4da6-8b97-ad8ef59de17d,538b316b-3876-4da6-8b97-ad8ef59de17d,0,1,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,0,1,ebc5f182-482b-4dec-9961-ce3a448abd0e,ebc5f182-482b-4dec-9961-ce3a448abd0e,0,1,83e618f5-1bf4-474a-9d65-389f1e4b16c3,83e618f5-1bf4-474a-9d65-389f1e4b16c3,0,1,1357512e-3ed3-455d-bc91-81db3b92f9fe,1357512e-3ed3-455d-bc91-81db3b92f9fe,0,1,82223d0f-41d9-45a6-9612-ae4d8408fa1b,82223d0f-41d9-45a6-9612-ae4d8408fa1b,0,1,83cfa2d4-ad9a-4cfc-8d31-695c90adaeb8,83cfa2d4-ad9a-4cfc-8d31-695c90adaeb8,0,1,c2768e31-9e61-4d8d-838d-90b2e2683148,c2768e31-9e61-4d8d-838d-90b2e2683148,0,1,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,0,1,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,0,1,6e8fd732-2746-4c27-95a6-58b0adf94d88,6e8fd732-2746-4c27-95a6-58b0adf94d88,0,1,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,0,1,724fb328-fec6-4afe-bc99-0ff0951b184b,724fb328-fec6-4afe-bc99-0ff0951b184b,0,1,1692bf73-8ce6-4b0e-875b-79cdd4396ca7,1692bf73-8ce6-4b0e-875b-79cdd4396ca7,0,1,c565bf25-c55e-4324-851a-cec497f5114a,c565bf25-c55e-4324-851a-cec497f5114a,0,1,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,0,1,8943233f-5c9a-4e6b-b1c2-3bbb94b6c4a7,8943233f-5c9a-4e6b-b1c2-3bbb94b6c4a7,0,1,5b0e250c-4d2d-4e37-ade1-593854610d3f,5b0e250c-4d2d-4e37-ade1-593854610d3f,0,1,148f63d5-23ad-4824-a24c-14d5a54c62d3,148f63d5-23ad-4824-a24c-14d5a54c62d3,0,1,2d40609d-b56f-4082-9a6f-8216817ebd24,2d40609d-b56f-4082-9a6f-8216817ebd24,0,1,041daf91-e5b3-471d-934d-55229f8a81d6,041daf91-e5b3-471d-934d-55229f8a81d6,0,1,8c72f824-b667-4d74-84aa-30eccfbbd2f0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,1,0,ec7b492d-5d38-4f31-90e0-577ad181514e,ec7b492d-5d38-4f31-90e0-577ad181514e,0,1,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,0,1,5fb2c120-fd14-4e78-a35f-c8e9478b3235,5fb2c120-fd14-4e78-a35f-c8e9478b3235,0,1,9d514ce1-f9bd-4018-8107-545cdd372fbd,9d514ce1-f9bd-4018-8107-545cdd372fbd,0,1,fe6b732f-3a33-460f-9686-cffdd5f7d99b,fe6b732f-3a33-460f-9686-cffdd5f7d99b,0,1,06250212-aeb1-4cb8-8785-ea71b1dad848,06250212-aeb1-4cb8-8785-ea71b1dad848,0,1,0c068a61-e5e6-4475-96fa-b7c1d825da42,0c068a61-e5e6-4475-96fa-b7c1d825da42,0,1,1047e34d-397a-42cc-80e6-1be755bd6462,1047e34d-397a-42cc-80e6-1be755bd6462,0,1,1cd473c3-4e36-47a9-b466-73d86ec244b0,1cd473c3-4e36-47a9-b466-73d86ec244b0,0,1,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,0,1,b406b5f9-eeaf-43a0-8930-067554d783c9,b406b5f9-eeaf-43a0-8930-067554d783c9,0,1,47718840-2939-4e30-a72c-a20c88ac4c17,47718840-2939-4e30-a72c-a20c88ac4c17,0,1,58a38994-9fe4-4783-967d-79d1141b90f3,58a38994-9fe4-4783-967d-79d1141b90f3,0,1,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,0,1,e606f8eb-952a-4abb-b1ae-4211204bed84,e606f8eb-952a-4abb-b1ae-4211204bed84,0,1,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,0,1,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,0,1,766c7fb5-727e-4975-9ea1-3b0df4739620,766c7fb5-727e-4975-9ea1-3b0df4739620,0,1,93c347d8-66cb-406c-9ee6-b1962482893f,93c347d8-66cb-406c-9ee6-b1962482893f,0,1,79b17298-9b37-4b9a-ae0a-6924513a66ca,79b17298-9b37-4b9a-ae0a-6924513a66ca,0,1,4e3dc198-ce03-433c-bd0a-71845bfc4c89,4e3dc198-ce03-433c-bd0a-71845bfc4c89,0,1,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,0,1,64fae958-8da6-4924-85de-d4433710a5e0,64fae958-8da6-4924-85de-d4433710a5e0,0,1,12b6e2d3-9724-46a3-8747-833be46408be,12b6e2d3-9724-46a3-8747-833be46408be,0,1,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,0,1,e70a6eab-791f-4c70-bb92-f069c7486d1b,e70a6eab-791f-4c70-bb92-f069c7486d1b,0,1,f74f97b7-4cbf-4124-b441-d8bb5d9b1634,f74f97b7-4cbf-4124-b441-d8bb5d9b1634,0,1,fac2e2cb-c32a-4592-b6c8-fd18806e845d,fac2e2cb-c32a-4592-b6c8-fd18806e845d,0,1,f58bffe7-4a02-4c4e-bfed-7895177a400c,f58bffe7-4a02-4c4e-bfed-7895177a400c,0,1,fe285122-2257-4fb2-ab7e-1683c31db1c6,fe285122-2257-4fb2-ab7e-1683c31db1c6,0,1,0facc6eb-a178-45ee-a6bc-4bf085d80453,0facc6eb-a178-45ee-a6bc-4bf085d80453,0,1,f74eef36-9441-4b6f-b21c-de9643832f9f,f74eef36-9441-4b6f-b21c-de9643832f9f,0,1,b5e73fbe-499c-4666-a482-0ef399c97c1e,b5e73fbe-499c-4666-a482-0ef399c97c1e,0,1,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,0,1,58ffc4d9-d711-4b68-905c-d2ac4f78b547,58ffc4d9-d711-4b68-905c-d2ac4f78b547,0,1,94ab750f-46b4-427c-a7f2-4e94fb9b0678,94ab750f-46b4-427c-a7f2-4e94fb9b0678,0,1,397d9926-31a3-4c03-acb7-74478f9863e1,397d9926-31a3-4c03-acb7-74478f9863e1,0,1,9ad979d3-74ad-4d90-b279-c3a2bea36ea7,9ad979d3-74ad-4d90-b279-c3a2bea36ea7,0,1,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,0,1,74f02619-7fa8-4c6d-81d6-230156ee45f4,74f02619-7fa8-4c6d-81d6-230156ee45f4,0,1,a103cca0-8243-40e9-bcdd-97a1cc8a3943,a103cca0-8243-40e9-bcdd-97a1cc8a3943,0,1,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,0,1,da551cf6-4f86-4e37-8967-a84c80e1fb13,da551cf6-4f86-4e37-8967-a84c80e1fb13,0,1,bd539a52-d33e-4e9b-8508-230acf76e98a,bd539a52-d33e-4e9b-8508-230acf76e98a,0,1,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,0,1,6dc4c216-e49f-4833-b45f-6060b67995ef,6dc4c216-e49f-4833-b45f-6060b67995ef,0,1,4655fa12-9169-4d08-bdab-9b3174d0b223,4655fa12-9169-4d08-bdab-9b3174d0b223,0,1,ba5574bd-53ca-413f-a245-272f468a80fb,ba5574bd-53ca-413f-a245-272f468a80fb,0,1,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,0,1,ea653eca-f96a-447d-8b09-7a7cb6929ed6,ea653eca-f96a-447d-8b09-7a7cb6929ed6,0,1,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,0,1,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,0,1,3b380a63-9232-42c2-bfa2-e8fc89448bbd,3b380a63-9232-42c2-bfa2-e8fc89448bbd,0,1,10556a26-ea4b-46b4-84d1-175eb13b333f,10556a26-ea4b-46b4-84d1-175eb13b333f,0,1,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,0,1,ecfc7ede-fffb-4bea-9598-3e18845f603d,ecfc7ede-fffb-4bea-9598-3e18845f603d,0,1,ffea6f3b-86fb-438d-bc22-7e19831f57d3,ffea6f3b-86fb-438d-bc22-7e19831f57d3,0,1,eaae534f-b506-4c86-b649-5b103cf5791d,eaae534f-b506-4c86-b649-5b103cf5791d,0,1,18b4773a-5380-4e71-8b51-ef10e19df17e,18b4773a-5380-4e71-8b51-ef10e19df17e,0,1,42f454f7-cfc4-459b-898f-86cace30410c,42f454f7-cfc4-459b-898f-86cace30410c,0,1,2b72fe1c-afe1-4905-8db2-2bb1baca6295,2b72fe1c-afe1-4905-8db2-2bb1baca6295,0,1,910b3640-790c-4185-88b5-a7c7466374c0,910b3640-790c-4185-88b5-a7c7466374c0,0,1,b5eceb60-76ba-47e3-90bd-52078d4bae4e,b5eceb60-76ba-47e3-90bd-52078d4bae4e,0,1,b8869f44-b87f-4e3e-a0d5-2aec5ccda4e2,b8869f44-b87f-4e3e-a0d5-2aec5ccda4e2,0,1,f7c23753-ff8c-4c26-bdc5-58e3b038668d,f7c23753-ff8c-4c26-bdc5-58e3b038668d,0,1,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,0,1,10197638-2cde-4424-8390-3bc9abe9852e,10197638-2cde-4424-8390-3bc9abe9852e,0,1,4fb8564e-2338-4c23-84a4-31f768047ced,4fb8564e-2338-4c23-84a4-31f768047ced,0,1,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,0,1,e18b4527-8727-4a10-9e99-a80012debe6c,e18b4527-8727-4a10-9e99-a80012debe6c,0,1,26d823de-420b-4547-9394-0044b29b9d46,26d823de-420b-4547-9394-0044b29b9d46,0,1,1ed910db-e434-4efd-9b12-c25353a31d5a,1ed910db-e434-4efd-9b12-c25353a31d5a,1,0,101a4eb3-cdda-47af-8c69-615a6920347a,101a4eb3-cdda-47af-8c69-615a6920347a,1,0,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,1,0,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,1,0,f79bada2-838f-4e4f-a017-935cf671a70c,f79bada2-838f-4e4f-a017-935cf671a70c,1,0,ed394820-a216-4c4b-81ae-5dea33ced43b,ed394820-a216-4c4b-81ae-5dea33ced43b,1,0,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,1,0,8a310493-c06f-46db-b2b5-14d6ed203312,8a310493-c06f-46db-b2b5-14d6ed203312,1,0,b68ec95b-64f3-4a2b-9683-231d50f01eeb,b68ec95b-64f3-4a2b-9683-231d50f01eeb,1,0,4a008342-f72f-4ca1-bad1-64b59b509911,4a008342-f72f-4ca1-bad1-64b59b509911,1,0,cefa1723-a4d4-44c4-bd57-ffa713f9306c,cefa1723-a4d4-44c4-bd57-ffa713f9306c,1,0,497ce8f3-f6f0-4da8-aeb0-0fa01bb26dc6,497ce8f3-f6f0-4da8-aeb0-0fa01bb26dc6,1,0,4920aabf-6f53-4f91-932a-8ace24631a74,4920aabf-6f53-4f91-932a-8ace24631a74,1,0,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,1,0,dacd15cd-ffdc-444d-a45f-9b0c7776a7c5,dacd15cd-ffdc-444d-a45f-9b0c7776a7c5,1,0,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,1,0,8692ba41-d91d-4af0-8aba-69dd5409d593,8692ba41-d91d-4af0-8aba-69dd5409d593,1,0,852bd696-9a9e-4952-b676-4108f757ad9b,852bd696-9a9e-4952-b676-4108f757ad9b,1,0,a95b564a-c895-40f2-b947-ea08462bb2a0,a95b564a-c895-40f2-b947-ea08462bb2a0,1,0,ca63ca2f-703d-4317-8c5d-0650ea638f3f,ca63ca2f-703d-4317-8c5d-0650ea638f3f,1,0,aa2256c7-9847-40a5-9e49-11c508e0d45b,aa2256c7-9847-40a5-9e49-11c508e0d45b,1,0,a04493f4-508c-4047-b0e3-b7d4bde6427b,a04493f4-508c-4047-b0e3-b7d4bde6427b,1,0,418982cd-d403-47cf-a7ef-993a36104947,418982cd-d403-47cf-a7ef-993a36104947,1,0,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,1,0,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,1,0,35eea3b8-d017-442a-b5a0-a1571165b9a9,35eea3b8-d017-442a-b5a0-a1571165b9a9,1,0,7e84901c-cb7f-437c-a135-0902cd47acb6,7e84901c-cb7f-437c-a135-0902cd47acb6,1,0,c4d67026-2c97-4126-b8be-49aa6f567e2d,c4d67026-2c97-4126-b8be-49aa6f567e2d,1,0,fda2906d-f499-4016-b13a-99f7f713b898,fda2906d-f499-4016-b13a-99f7f713b898,1,0,da2b47f5-4109-4f72-a4a5-70be24a6881f,da2b47f5-4109-4f72-a4a5-70be24a6881f,1,0,849f034e-85dc-4515-aae6-240c1e0d46d9,849f034e-85dc-4515-aae6-240c1e0d46d9,1,0,1c7e9baa-7728-4afd-829a-806cee13ecdb,1c7e9baa-7728-4afd-829a-806cee13ecdb,1,0,5cc3a29d-aa98-42bf-9800-f584229c8e46,5cc3a29d-aa98-42bf-9800-f584229c8e46,1,0,f4cff4ff-68e9-4072-971e-1b359d3aa980,f4cff4ff-68e9-4072-971e-1b359d3aa980,1,0,acfa1919-07ce-4464-8552-6b104e284dca,acfa1919-07ce-4464-8552-6b104e284dca,1,0,007691a7-be0b-4d21-8f3d-74cfa08816e0,007691a7-be0b-4d21-8f3d-74cfa08816e0,1,0,fdb012c9-583a-42af-95da-070e75a58078,fdb012c9-583a-42af-95da-070e75a58078,1,0,40a52f83-f0e2-470d-9c17-7fdc8cc646b7,40a52f83-f0e2-470d-9c17-7fdc8cc646b7,1,0,7d069b11-cddd-463d-97be-3cbeaaf0954c,7d069b11-cddd-463d-97be-3cbeaaf0954c,1,0,06ff179c-864b-4d3b-83c5-f09c3e0f37f4,06ff179c-864b-4d3b-83c5-f09c3e0f37f4,1,0,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,1,0,1ae364d3-0bec-4089-af23-c60d2a274c85,1ae364d3-0bec-4089-af23-c60d2a274c85,1,0,f11ffcfd-3588-4785-b222-cebe80455303,f11ffcfd-3588-4785-b222-cebe80455303,1,0,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,1,0,bfdc6346-db5b-427f-acca-9b48db8fefd0,bfdc6346-db5b-427f-acca-9b48db8fefd0,1,0,1c3f258c-345e-47f6-9e29-98b1222fb348,1c3f258c-345e-47f6-9e29-98b1222fb348,1,0,35c938f4-065f-47f5-a75b-637ed0080725,35c938f4-065f-47f5-a75b-637ed0080725,1,0,b3847d64-46b8-4bd1-9362-d88d82b34254,b3847d64-46b8-4bd1-9362-d88d82b34254,1,0,14b58f6d-9243-47cd-a430-8408fcddd8d8,14b58f6d-9243-47cd-a430-8408fcddd8d8,0,1,6f3c5b90-b030-4267-a973-33d12c2c7680,6f3c5b90-b030-4267-a973-33d12c2c7680,0,1,8a0db1f1-fb8d-45fa-944d-72d460e49873,8a0db1f1-fb8d-45fa-944d-72d460e49873,0,1,7a62d031-c340-4b1e-90af-fff697a2e979,7a62d031-c340-4b1e-90af-fff697a2e979,1,0,1d723c7b-d4b0-47ee-af3f-81574cb058c0,1d723c7b-d4b0-47ee-af3f-81574cb058c0,1,0,18bf6916-83cc-41e5-a35b-1489450ae632,18bf6916-83cc-41e5-a35b-1489450ae632,0,1,ebab97cf-5335-4648-9845-8ca41f79fb49,ebab97cf-5335-4648-9845-8ca41f79fb49,0,1,bb29fa44-6772-4426-a0b8-422115e14288,bb29fa44-6772-4426-a0b8-422115e14288,0,1,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,0,1,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,0,1,40d3ed07-3b56-4c9f-8b96-d94455202ef0,40d3ed07-3b56-4c9f-8b96-d94455202ef0,0,1,5b3b3da9-8619-4fbd-b140-3528875cd179,5b3b3da9-8619-4fbd-b140-3528875cd179,0,1,99e5e866-7ac6-4916-ab66-3e2909822c56,99e5e866-7ac6-4916-ab66-3e2909822c56,0,1,03363877-2752-4a03-95f2-d73b732e0bfd,03363877-2752-4a03-95f2-d73b732e0bfd,0,1,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,0,1,78051e10-74ab-44be-adca-e4c93824a386,78051e10-74ab-44be-adca-e4c93824a386,1,0,a9c3065b-db68-4f59-9235-33f9fbfdaafd,a9c3065b-db68-4f59-9235-33f9fbfdaafd,0,1,3715cf3d-0abc-4711-8ac9-d41f0be7878f,3715cf3d-0abc-4711-8ac9-d41f0be7878f,0,1,8e8d8078-8b32-4c24-b26e-89a92bf60160,8e8d8078-8b32-4c24-b26e-89a92bf60160,0,1,f96cbb27-7619-41e0-8577-e623ef02dc58,f96cbb27-7619-41e0-8577-e623ef02dc58,0,1,d74dfd31-2016-435b-8652-15fdbca59490,d74dfd31-2016-435b-8652-15fdbca59490,1,0,6411e10c-04e3-4997-9196-c38d717edbb3,6411e10c-04e3-4997-9196-c38d717edbb3,1,0,27651e0e-d560-434b-a49c-f473a5b20c4d,27651e0e-d560-434b-a49c-f473a5b20c4d,0,1,ce85554b-81ba-4149-a951-d09bdc14fa16,ce85554b-81ba-4149-a951-d09bdc14fa16,0,1,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,0,1,2558d812-ac0a-49ba-87db-3f661209a3c4,2558d812-ac0a-49ba-87db-3f661209a3c4,0,1,20d712ef-77c1-4374-92e1-f20a3ebc7eab,20d712ef-77c1-4374-92e1-f20a3ebc7eab,0,1,65d23ce8-e326-45ee-86b0-6dcf35797201,65d23ce8-e326-45ee-86b0-6dcf35797201,1,0,a2683c3f-1b21-47d8-951d-7d30cde51efc,a2683c3f-1b21-47d8-951d-7d30cde51efc,0,1,54c77053-1728-4914-a354-73fe8853a0e1,54c77053-1728-4914-a354-73fe8853a0e1,1,0,21136691-078f-4bf7-bddd-f41416a76d86,21136691-078f-4bf7-bddd-f41416a76d86,1,0,30a121c7-c4f5-45c4-9504-9778ed85d9e3,30a121c7-c4f5-45c4-9504-9778ed85d9e3,0,1,e5dfee58-f748-48ee-81a3-7c6133f06365,e5dfee58-f748-48ee-81a3-7c6133f06365,0,1,5c4c9931-3fb0-47a8-9e4f-d552de12b355,5c4c9931-3fb0-47a8-9e4f-d552de12b355,0,1,2a498baf-ec2e-4dda-b568-801bb60db225,2a498baf-ec2e-4dda-b568-801bb60db225,0,1,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,1,0,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,0,1,35989876-16b1-4b02-9381-444a06a7a21d,35989876-16b1-4b02-9381-444a06a7a21d,0,1,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,0,1,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,0,1,5d7174d2-42b3-4e12-b705-4209dd73b53b,5d7174d2-42b3-4e12-b705-4209dd73b53b,1,0,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,0,1,4a9e4ace-b2e9-4445-a77b-ba30a4995900,4a9e4ace-b2e9-4445-a77b-ba30a4995900,0,1,9de4d430-95ec-4435-b3e8-4fc85778d517,9de4d430-95ec-4435-b3e8-4fc85778d517,0,1,205b8908-fa21-42bd-bff0-fb95e6787f15,205b8908-fa21-42bd-bff0-fb95e6787f15,0,1,fc78d8df-ab27-4544-a65c-73908b9c5425,fc78d8df-ab27-4544-a65c-73908b9c5425,0,1,bd97e481-cfc4-4a40-8438-985020f06abd,bd97e481-cfc4-4a40-8438-985020f06abd,0,1,120c5162-b03c-46ce-8a2a-8ef501971715,120c5162-b03c-46ce-8a2a-8ef501971715,0,1,33343620-673e-4aa3-9e58-c6a25f738001,33343620-673e-4aa3-9e58-c6a25f738001,0,1,8aaf780f-ed74-4f44-9598-c14180053ff9,8aaf780f-ed74-4f44-9598-c14180053ff9,0,1,dbd4d09d-f410-4453-9143-bd72da5464cc,dbd4d09d-f410-4453-9143-bd72da5464cc,0,1,1853a370-767a-4845-9425-2f9363d91bd8,1853a370-767a-4845-9425-2f9363d91bd8,0,1,945ae8d2-b74a-41e9-b740-c82acdd40d04,945ae8d2-b74a-41e9-b740-c82acdd40d04,0,1,e3476d0e-0ab4-4734-9261-04aef6281086,e3476d0e-0ab4-4734-9261-04aef6281086,0,1,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,0,1,8811ea1a-1221-47b7-9574-3f36ff15a3cf,8811ea1a-1221-47b7-9574-3f36ff15a3cf,1,0,1d715463-691b-4c01-ae39-57c261f2a6ad,1d715463-691b-4c01-ae39-57c261f2a6ad,0,1,4c3d007f-a62c-4fd9-beda-58dbf08ad188,4c3d007f-a62c-4fd9-beda-58dbf08ad188,0,1,c35373a9-f0b0-4ddb-a985-409ac9c64609,c35373a9-f0b0-4ddb-a985-409ac9c64609,0,1,c1c40916-fee5-46e3-90fc-10e7595866c9,c1c40916-fee5-46e3-90fc-10e7595866c9,0,1,437021b0-9f18-4238-9af6-7ca275b91fa4,437021b0-9f18-4238-9af6-7ca275b91fa4,0,1,761a35cb-8387-435f-b671-d5bb0fe9bfeb,761a35cb-8387-435f-b671-d5bb0fe9bfeb,0,1,87dad256-122b-4d7e-b249-a2c313a9cf33,87dad256-122b-4d7e-b249-a2c313a9cf33,0,1,ac5f945e-2d03-44fb-a8cf-5d786194cefd,ac5f945e-2d03-44fb-a8cf-5d786194cefd,1,0,698ec00f-bf75-420e-81ab-a98808daf3f7,698ec00f-bf75-420e-81ab-a98808daf3f7,1,0,f441907c-d02e-431e-baf4-1854e48a1f50,f441907c-d02e-431e-baf4-1854e48a1f50,0,1,dad9710a-73ca-4e0d-b98b-75f955d0822d,dad9710a-73ca-4e0d-b98b-75f955d0822d,0,1,2191939f-6f71-47c9-a3d2-57acbf7f411e,2191939f-6f71-47c9-a3d2-57acbf7f411e,0,1,19b9cbbb-1fcc-4492-9385-687742cb3d0b,19b9cbbb-1fcc-4492-9385-687742cb3d0b,1,0,247c41dd-c8dc-43dd-b348-1ba31ee92065,247c41dd-c8dc-43dd-b348-1ba31ee92065,1,0,da673406-078d-44c8-9d27-80ef172c4b5e,da673406-078d-44c8-9d27-80ef172c4b5e,0,1,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,0,1,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,0,1,701964a1-7762-45ee-a9a4-41dd9ce94783,701964a1-7762-45ee-a9a4-41dd9ce94783,0,1,55d1909e-f552-441f-8e14-47d2e604cf6a,55d1909e-f552-441f-8e14-47d2e604cf6a,1,0,eae627db-c52b-4e41-94d1-58db28cd0063,eae627db-c52b-4e41-94d1-58db28cd0063,0,1,ed137e05-1996-411d-9927-45a3d7e3ee3b,ed137e05-1996-411d-9927-45a3d7e3ee3b,0,1,fbebf341-9842-41e1-8e4d-490fa02065ce,fbebf341-9842-41e1-8e4d-490fa02065ce,0,1,12cf9412-baf5-4d32-a563-a11ac3d5e0ed,12cf9412-baf5-4d32-a563-a11ac3d5e0ed,1,0,b8029aa5-0268-49d8-bd1e-bdaa9b7ce34c,b8029aa5-0268-49d8-bd1e-bdaa9b7ce34c,0,1,c05f87b4-ec5f-4d14-981f-02ca8ba89863,c05f87b4-ec5f-4d14-981f-02ca8ba89863,0,1,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,0,1,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,0,1,875d1fc1-8172-4e48-8192-035882e1665d,875d1fc1-8172-4e48-8192-035882e1665d,0,1,0bd85b79-cc32-4c1d-b629-567a1bdfac56,0bd85b79-cc32-4c1d-b629-567a1bdfac56,1,0,ca81e0ea-c428-47f9-aedb-078214104a2f,ca81e0ea-c428-47f9-aedb-078214104a2f,0,1,35a28677-0653-47f9-82e1-02c4b9266fee,35a28677-0653-47f9-82e1-02c4b9266fee,0,1,9518d09c-6996-4439-9278-3c71d5ae8fce,9518d09c-6996-4439-9278-3c71d5ae8fce,0,1,259564b8-172e-4eed-9360-d561ec6dad69,259564b8-172e-4eed-9360-d561ec6dad69,0,1,461be12a-9f16-4826-978a-436608ca8733,461be12a-9f16-4826-978a-436608ca8733,1,0,9b143299-d300-4b6c-b667-5552fb3bdcde,9b143299-d300-4b6c-b667-5552fb3bdcde,0,1,74973d06-f57d-403e-945c-5cd2f4fc4869,74973d06-f57d-403e-945c-5cd2f4fc4869,0,1,91c799d7-2b3d-4d1a-87ff-221057a428c6,91c799d7-2b3d-4d1a-87ff-221057a428c6,0,1,6ec3463a-1e94-4de7-a8c0-b0e42f38573e,6ec3463a-1e94-4de7-a8c0-b0e42f38573e,0,1,a6846c5a-7cf6-4df2-a159-2fd33d18d18f,a6846c5a-7cf6-4df2-a159-2fd33d18d18f,0,1,a50fcacc-6d2d-496c-bea0-9c73cd153437,a50fcacc-6d2d-496c-bea0-9c73cd153437,0,1,5a2d5d8a-afd9-4954-9868-7c82bad00426,5a2d5d8a-afd9-4954-9868-7c82bad00426,0,1,37818589-95de-43df-8a0f-f7149f96f683,37818589-95de-43df-8a0f-f7149f96f683,1,0,5ea65812-6c39-440e-82a4-621a16595d86,5ea65812-6c39-440e-82a4-621a16595d86,0,1,31dd320b-06aa-4314-9914-2c2420f572a1,31dd320b-06aa-4314-9914-2c2420f572a1,0,1,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,0,1,0a91f0a5-95a7-4cd5-9e5b-735aee0ad1b4,0a91f0a5-95a7-4cd5-9e5b-735aee0ad1b4,0,1,d4655391-144c-4ba6-aee5-1edafebe862c,d4655391-144c-4ba6-aee5-1edafebe862c,0,1,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,0,1,8ceea1e8-42ce-469f-823a-ceffdbd6b112,8ceea1e8-42ce-469f-823a-ceffdbd6b112,0,1,68caf9e5-9a79-4b77-b0f4-ca9c0fe4fa16,68caf9e5-9a79-4b77-b0f4-ca9c0fe4fa16,0,1,e93a4293-0497-4f11-b8b9-40300104fb96,e93a4293-0497-4f11-b8b9-40300104fb96,0,1,deee8bde-381f-4094-8794-7a06248860dd,deee8bde-381f-4094-8794-7a06248860dd,0,1,61bf78c0-7004-4a74-b362-e979c7316e05,61bf78c0-7004-4a74-b362-e979c7316e05,1,0,c4351896-eff1-4e4d-8823-028d63a9d6bf,c4351896-eff1-4e4d-8823-028d63a9d6bf,0,1,6995ee71-5901-46d9-a5c1-b35d795bda20,6995ee71-5901-46d9-a5c1-b35d795bda20,0,1,b0ccc05d-8d39-4f57-8e87-6846014f92ea,b0ccc05d-8d39-4f57-8e87-6846014f92ea,0,1,0e2c2490-50ee-4fed-9119-5dec8385f925,0e2c2490-50ee-4fed-9119-5dec8385f925,0,1,aa368dd9-86e1-46f9-a296-591c3639734d,aa368dd9-86e1-46f9-a296-591c3639734d,0,1,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,0,1,8986c155-54be-4b1b-b31a-5c00b88bc40d,8986c155-54be-4b1b-b31a-5c00b88bc40d,0,1,d91441cf-d793-4dfa-9225-f0c16818edde,d91441cf-d793-4dfa-9225-f0c16818edde,0,1,42a39785-144c-4d2d-92c6-fd8b345f687b,42a39785-144c-4d2d-92c6-fd8b345f687b,0,1,a275802f-937a-49f4-92da-fcdd185a036d,a275802f-937a-49f4-92da-fcdd185a036d,0,1,f2dc9319-ba60-421a-8340-be3e3a291393,f2dc9319-ba60-421a-8340-be3e3a291393,0,1,bf4eb62a-bc74-4845-bad2-58a2a8302a65,bf4eb62a-bc74-4845-bad2-58a2a8302a65,0,1,b66eb190-1c16-4f20-a94f-954bcdf313b8,b66eb190-1c16-4f20-a94f-954bcdf313b8,1,0,cb747d24-6d8a-4d97-8a13-305ee6f39f75,cb747d24-6d8a-4d97-8a13-305ee6f39f75,0,1,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,1,0,38184767-167b-49b7-b995-4f13900b3822,38184767-167b-49b7-b995-4f13900b3822,0,1,3247e64e-b57e-4c33-8086-7ab93c5b6371,3247e64e-b57e-4c33-8086-7ab93c5b6371,0,1,e5dca369-dc9a-4332-a509-f734b8787e13,e5dca369-dc9a-4332-a509-f734b8787e13,0,1,f6939587-ff87-4eca-ae52-10e1bd2abfce,f6939587-ff87-4eca-ae52-10e1bd2abfce,1,0,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,0,1,b0d9086f-cef7-47a8-ad62-d85fea28ebda,b0d9086f-cef7-47a8-ad62-d85fea28ebda,0,1,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,0,1,3e127ace-1506-44ca-9df8-a7a30aa11c56,3e127ace-1506-44ca-9df8-a7a30aa11c56,0,1,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,0,1,2b3cab9a-fd05-42a8-811a-f443aee5e192,2b3cab9a-fd05-42a8-811a-f443aee5e192,0,1,9e9bb3df-4658-4278-8fe7-d4bfc46d2ce1,9e9bb3df-4658-4278-8fe7-d4bfc46d2ce1,0,1,2c02a558-8d12-44cf-be6b-9c399b9032e5,2c02a558-8d12-44cf-be6b-9c399b9032e5,1,0,093dfea8-18ea-457c-aa6f-9bea9bdba76c,093dfea8-18ea-457c-aa6f-9bea9bdba76c,0,1,6c58cc27-215e-4169-88ae-004ecc657d53,6c58cc27-215e-4169-88ae-004ecc657d53,0,1,9c267aa6-5f23-49f6-868a-3324ef2845ff,9c267aa6-5f23-49f6-868a-3324ef2845ff,0,1,495eeeee-d7bf-4063-99e2-86daa066451a,495eeeee-d7bf-4063-99e2-86daa066451a,0,1,b6184698-79e4-4c19-9440-092ccd9dabf8,b6184698-79e4-4c19-9440-092ccd9dabf8,0,1,6eeb4867-bf9d-48dc-b96b-934a0c293010,6eeb4867-bf9d-48dc-b96b-934a0c293010,1,0,e1803e54-ec5e-4a82-8097-5e2331820991,e1803e54-ec5e-4a82-8097-5e2331820991,0,1,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,0,1,8506dbe9-7066-444b-83b6-fb2d71a336e7,8506dbe9-7066-444b-83b6-fb2d71a336e7,1,0,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,0,1,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,0,1,ce235ab9-1dec-459a-9fec-498c262ece56,ce235ab9-1dec-459a-9fec-498c262ece56,0,1,39355e82-30a6-431e-9697-e2c42e82de83,39355e82-30a6-431e-9697-e2c42e82de83,0,1,15d09274-9508-4f64-9ea3-678c5aa50f0f,15d09274-9508-4f64-9ea3-678c5aa50f0f,0,1,4debe032-12e4-4777-b2fc-70b150f2aad1,4debe032-12e4-4777-b2fc-70b150f2aad1,0,1,37558fa2-0833-46d6-9e4f-63d4a3136870,37558fa2-0833-46d6-9e4f-63d4a3136870,1,0,18f4994a-d907-4182-b41b-6e8ec56ae7e0,18f4994a-d907-4182-b41b-6e8ec56ae7e0,0,1,361271fa-2faa-497d-adfe-dea8b825405e,361271fa-2faa-497d-adfe-dea8b825405e,0,1,5dceae8b-1ff3-4760-a1c4-975a92be1023,5dceae8b-1ff3-4760-a1c4-975a92be1023,1,0,db80ae50-2baf-445b-9055-80f2c7f22c24,db80ae50-2baf-445b-9055-80f2c7f22c24,0,1,086d69d6-e2fa-45cb-84b6-f8f3e2919160,086d69d6-e2fa-45cb-84b6-f8f3e2919160,1,0,3e9d6ca0-62e0-46b0-b3e4-c625a9792b47,3e9d6ca0-62e0-46b0-b3e4-c625a9792b47,0,1,1681dd7a-de80-4b8d-9657-c9702a19d653,1681dd7a-de80-4b8d-9657-c9702a19d653,0,1,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,0,1,9f593f27-8009-40c0-94d6-53f177ce55f4,9f593f27-8009-40c0-94d6-53f177ce55f4,0,1,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,0,1,033d9a8f-73d3-4be3-b0e9-7c9e9cb12161,033d9a8f-73d3-4be3-b0e9-7c9e9cb12161,0,1,dba0d5db-9499-42c0-b4e0-2dd9f7ec462b,dba0d5db-9499-42c0-b4e0-2dd9f7ec462b,0,1,8ecfdcbc-099e-4206-b3d8-541517117ac5,8ecfdcbc-099e-4206-b3d8-541517117ac5,0,1,9f845a0d-b0cb-40c3-9e70-04f4b473990c,9f845a0d-b0cb-40c3-9e70-04f4b473990c,0,1,30c0ab17-d8c7-46c3-82e2-b67572db0a83,30c0ab17-d8c7-46c3-82e2-b67572db0a83,0,1,e82dbb36-a077-47d9-a904-f01ce82b4c19,e82dbb36-a077-47d9-a904-f01ce82b4c19,0,1,f4afbbd8-c503-4715-b0f2-476e0dcbf14c,f4afbbd8-c503-4715-b0f2-476e0dcbf14c,0,1,65625b4e-9ff9-4e15-b3f1-cc0003df25ea,65625b4e-9ff9-4e15-b3f1-cc0003df25ea,0,1,5feb2e44-9d15-4bf8-9f7d-efea6b13e402,5feb2e44-9d15-4bf8-9f7d-efea6b13e402,0,1,619f64ea-78da-448b-86c7-fbb561500211,619f64ea-78da-448b-86c7-fbb561500211,0,1,820d02c2-2cdd-4b09-ab65-98048daef9a0,820d02c2-2cdd-4b09-ab65-98048daef9a0,0,1,b0d36a9d-9ef9-4eff-9360-aeca38d7e967,b0d36a9d-9ef9-4eff-9360-aeca38d7e967,0,1,7e283796-d8a9-442b-b646-92e85beec1e3,7e283796-d8a9-442b-b646-92e85beec1e3,0,1,5c79771f-f98c-453d-9672-8aff65978e20,5c79771f-f98c-453d-9672-8aff65978e20,0,1,51656bbb-096b-4be7-95fb-801e84651d32,51656bbb-096b-4be7-95fb-801e84651d32,0,1,f9b36fd7-095a-48ef-80a6-87415eac7225,f9b36fd7-095a-48ef-80a6-87415eac7225,0,1,1dbecc5f-fe9c-4d8b-a96b-c4c49c06d088,1dbecc5f-fe9c-4d8b-a96b-c4c49c06d088,0,1,97414063-7575-4bb2-9246-a5565fccc1e1,97414063-7575-4bb2-9246-a5565fccc1e1,0,1,e9c632b0-7977-4e44-ac56-882617ad7cdc,e9c632b0-7977-4e44-ac56-882617ad7cdc,1,0,6fbf63b7-1692-495e-a8ec-bdda182997a3,6fbf63b7-1692-495e-a8ec-bdda182997a3,1,0,e84acba7-7e0f-43e8-a545-6e53d529d5d4,e84acba7-7e0f-43e8-a545-6e53d529d5d4,1,0,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,1,0,6086d53f-f1b2-4126-ab46-64705fe63b87,6086d53f-f1b2-4126-ab46-64705fe63b87,0,1,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,0,1,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,1,0,8172256e-f51e-4de0-bd07-3668785f4cb9,8172256e-f51e-4de0-bd07-3668785f4cb9,1,0,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,0,1,6287eded-23d8-4b04-8415-1d9afa17713b,6287eded-23d8-4b04-8415-1d9afa17713b,0,1,8ce3513d-d086-46f4-81c3-1761594a64c5,8ce3513d-d086-46f4-81c3-1761594a64c5,0,1,79cb147c-8c6b-4f6e-8d5d-dfa29a6e6e53,79cb147c-8c6b-4f6e-8d5d-dfa29a6e6e53,0,1,db1062bc-4164-4095-9640-9804c0ebcd0b,db1062bc-4164-4095-9640-9804c0ebcd0b,0,1,ea7c61ff-745c-4908-9a94-bba022d12de4,ea7c61ff-745c-4908-9a94-bba022d12de4,0,1,e0519f0c-9c99-4f5c-a3a9-27adce45737d,e0519f0c-9c99-4f5c-a3a9-27adce45737d,0,1,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,0,1,53caada5-1d53-45dc-9432-90075ddca890,53caada5-1d53-45dc-9432-90075ddca890,0,1,d1472d23-954b-4069-b2d6-df08c6ec0be1,d1472d23-954b-4069-b2d6-df08c6ec0be1,0,1,93fe2ce6-7193-42bc-a966-4653b7989eaa,93fe2ce6-7193-42bc-a966-4653b7989eaa,0,1,73d04ff9-ca39-4a7b-82d6-a7dba677c7d8,73d04ff9-ca39-4a7b-82d6-a7dba677c7d8,0,1,a7fe0aa5-722c-4a09-889b-ee422421addc,a7fe0aa5-722c-4a09-889b-ee422421addc,0,1,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,0,1,0c838a31-2b08-447c-b39a-a613cfba526c,0c838a31-2b08-447c-b39a-a613cfba526c,0,1,879844f0-30b4-47f5-8d2e-5fea29910368,879844f0-30b4-47f5-8d2e-5fea29910368,0,1,9bc09758-a7ce-44e0-baa3-a3e909869d9b,9bc09758-a7ce-44e0-baa3-a3e909869d9b,0,1,04424730-6992-4a5b-838b-7a7c16dedbd0,04424730-6992-4a5b-838b-7a7c16dedbd0,0,1,0874a3c0-0d16-4172-b467-f0666d5fcaee,0874a3c0-0d16-4172-b467-f0666d5fcaee,0,1,cc380a19-ab29-4f20-93ad-9a58cd4de56e,cc380a19-ab29-4f20-93ad-9a58cd4de56e,0,1,e54a8786-86a4-48e3-a210-aaae4e5fce8c,e54a8786-86a4-48e3-a210-aaae4e5fce8c,0,1,3062c54f-92ed-42c5-b62f-1c0e685cfe75,3062c54f-92ed-42c5-b62f-1c0e685cfe75,0,1,14512818-58b0-44cc-b00d-d37913c57aad,14512818-58b0-44cc-b00d-d37913c57aad,0,1,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,0,1,57964dd6-4b0b-4590-bc44-de744cc423af,57964dd6-4b0b-4590-bc44-de744cc423af,0,1,46e0522b-b88b-43b2-9067-a5359e90994b,46e0522b-b88b-43b2-9067-a5359e90994b,0,1,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,0,1,72d41d01-9c9d-4fbe-8a39-932d82d171ef,72d41d01-9c9d-4fbe-8a39-932d82d171ef,0,1,697d5715-dd04-40be-9b28-539734725158,697d5715-dd04-40be-9b28-539734725158,0,1,d487e66e-a7b0-4110-903e-652fe0e6106c,d487e66e-a7b0-4110-903e-652fe0e6106c,0,1,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,0,1,d95fcb37-fc65-466d-93e2-489f41683276,d95fcb37-fc65-466d-93e2-489f41683276,0,1,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,0,1,3576ba1d-5b3a-4605-9092-0421767721ac,3576ba1d-5b3a-4605-9092-0421767721ac,0,1,a27a9296-46bb-49a1-8308-db675baa81d0,a27a9296-46bb-49a1-8308-db675baa81d0,0,1,1456f317-360c-4190-b2d1-1be7484369a5,1456f317-360c-4190-b2d1-1be7484369a5,0,1,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,0,1,4867948f-b027-44ae-b78c-a94e00eed52b,4867948f-b027-44ae-b78c-a94e00eed52b,0,1,39ed5463-b1c0-44bb-9d71-4ef08007a7d0,39ed5463-b1c0-44bb-9d71-4ef08007a7d0,0,1,56cc2ba7-fee3-4dcb-9a2a-93dc94a5ee1f,56cc2ba7-fee3-4dcb-9a2a-93dc94a5ee1f,0,1,f0ffe529-481f-4eed-8fc8-02a9d8f08f7a,f0ffe529-481f-4eed-8fc8-02a9d8f08f7a,0,1,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,0,1,618d13d5-fd1f-4b70-ad45-dd6a17a50730,618d13d5-fd1f-4b70-ad45-dd6a17a50730,0,1,8e45e18b-f99b-4838-ae26-124397d37a00,8e45e18b-f99b-4838-ae26-124397d37a00,0,1,349378d1-abe3-44de-84a4-d525b08e0474,349378d1-abe3-44de-84a4-d525b08e0474,0,1,1526b18d-7fab-414e-a5b2-377b67ac0b55,1526b18d-7fab-414e-a5b2-377b67ac0b55,0,1,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,0,1,28dc34df-1daa-49a2-a12e-db91ee963459,28dc34df-1daa-49a2-a12e-db91ee963459,0,1,2233ce53-b8a8-4c83-97a2-683c8575462a,2233ce53-b8a8-4c83-97a2-683c8575462a,0,1,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,0,1,c2ef8d6b-de7b-430d-ac30-76cdaf0579c2,c2ef8d6b-de7b-430d-ac30-76cdaf0579c2,0,1,8ca0258c-96d8-4a12-b94f-db968195ee0a,8ca0258c-96d8-4a12-b94f-db968195ee0a,0,1,c849fb09-7833-49c8-9461-98426dc6c0af,c849fb09-7833-49c8-9461-98426dc6c0af,0,1,6c58fc3a-37f8-44b7-b076-2c10ce09b554,6c58fc3a-37f8-44b7-b076-2c10ce09b554,1,0,b94523c0-33fe-452a-ada5-071cd78fc47b,b94523c0-33fe-452a-ada5-071cd78fc47b,1,0,47da49ee-b243-4e78-9c8f-bb26c60e6136,47da49ee-b243-4e78-9c8f-bb26c60e6136,1,0,39bee714-cacd-4d48-97a5-c838660e049a,39bee714-cacd-4d48-97a5-c838660e049a,1,0,fef727fa-f63b-4467-9367-73a2425b19e3,fef727fa-f63b-4467-9367-73a2425b19e3,1,0,bfa90848-930f-433d-8f6f-c11ac2c5eba2,bfa90848-930f-433d-8f6f-c11ac2c5eba2,1,0,2baf6d7a-12ed-4f22-ad96-92bb31b747ff,2baf6d7a-12ed-4f22-ad96-92bb31b747ff,1,0,75666bb9-f6d3-4dd6-8220-427a81f23fc9,75666bb9-f6d3-4dd6-8220-427a81f23fc9,1,0,becf53b6-3fbc-4c70-822f-4a70b0434353,becf53b6-3fbc-4c70-822f-4a70b0434353,1,0,652ee894-047b-4a5a-a500-2d61b4c4a473,652ee894-047b-4a5a-a500-2d61b4c4a473,1,0,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,1,0,33f8cd94-71e7-4703-92c3-22690fbd871a,33f8cd94-71e7-4703-92c3-22690fbd871a,1,0,b6e5de4d-0156-4342-b646-6e6920a4bd3a,b6e5de4d-0156-4342-b646-6e6920a4bd3a,0,1,085cbea9-1df1-4ee9-afb7-da2bf313697e,085cbea9-1df1-4ee9-afb7-da2bf313697e,1,0,09858042-6284-4499-8055-c1b5b783ce5f,09858042-6284-4499-8055-c1b5b783ce5f,1,0,c38d8135-e11f-4860-b370-84ff279b7fbd,c38d8135-e11f-4860-b370-84ff279b7fbd,1,0,ee0798f5-47a8-4118-a25c-cfd3473007c1,ee0798f5-47a8-4118-a25c-cfd3473007c1,1,0,29f2094a-d0d1-425c-8161-45a9ba186e19,29f2094a-d0d1-425c-8161-45a9ba186e19,1,0,38fc1e6e-7cd3-437b-b429-6655be34cd01,38fc1e6e-7cd3-437b-b429-6655be34cd01,1,0,69149ce1-d3f8-4e12-be8f-b328ade60882,69149ce1-d3f8-4e12-be8f-b328ade60882,1,0,ff592ecb-eb08-4554-87bf-1d2935b21d3c,ff592ecb-eb08-4554-87bf-1d2935b21d3c,0,1,e50cb13a-151b-45d2-a7b7-d23440ddfa24,e50cb13a-151b-45d2-a7b7-d23440ddfa24,1,0,b8a32c33-4e15-4c21-baab-64a86d44321b,b8a32c33-4e15-4c21-baab-64a86d44321b,1,0,e7d51ada-f286-4519-bfae-ece95dd4d7b0,e7d51ada-f286-4519-bfae-ece95dd4d7b0,0,1,d7dd9a03-6818-4987-8f39-58e1c906569f,d7dd9a03-6818-4987-8f39-58e1c906569f,1,0,fce028b8-b530-49f0-b6ad-a28d03e19b0f,fce028b8-b530-49f0-b6ad-a28d03e19b0f,0,1,d975aef4-8da8-4486-baeb-a99c48cff0ec,d975aef4-8da8-4486-baeb-a99c48cff0ec,1,0,4c293fd7-be16-493b-a6db-c22f7a0fc31c,4c293fd7-be16-493b-a6db-c22f7a0fc31c,1,0,41f87891-ddd5-4e0f-a4f2-8039fb71981b,41f87891-ddd5-4e0f-a4f2-8039fb71981b,0,1,893b2dd9-a939-4799-9b78-50d788a5f3ba,893b2dd9-a939-4799-9b78-50d788a5f3ba,1,0,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,0,1,e4842271-4fc0-4e15-afef-876f05af78c0,e4842271-4fc0-4e15-afef-876f05af78c0,0,1,135d57fe-d420-4bb0-9120-e43fd9b55c16,135d57fe-d420-4bb0-9120-e43fd9b55c16,0,1,c1a1f12b-3978-4047-956e-a5c7de8371a0,c1a1f12b-3978-4047-956e-a5c7de8371a0,0,1,ac39b903-0c60-417e-a50f-49ed375424f5,ac39b903-0c60-417e-a50f-49ed375424f5,0,1,3494fa21-02e0-46bb-b810-534e6f1b4b20,3494fa21-02e0-46bb-b810-534e6f1b4b20,0,1,9887e36d-0dba-4301-a77b-102caefc7ca9,9887e36d-0dba-4301-a77b-102caefc7ca9,0,1,64f667e5-6a8f-448f-aed5-a4d461232845,64f667e5-6a8f-448f-aed5-a4d461232845,0,1,a148cdff-0e67-48e6-9cc5-e8a6f5aa1ae8,a148cdff-0e67-48e6-9cc5-e8a6f5aa1ae8,0,1,037842ca-aeaf-4e27-9a0e-e929438b6f40,037842ca-aeaf-4e27-9a0e-e929438b6f40,1,0,fba74e94-e7e1-46d9-b72b-269cb1cc8a71,fba74e94-e7e1-46d9-b72b-269cb1cc8a71,0,1,59855d19-29cd-4efd-a453-b19e574113ef,59855d19-29cd-4efd-a453-b19e574113ef,0,1,94e08dcf-3885-4a73-82ab-cb291f1cf95f,94e08dcf-3885-4a73-82ab-cb291f1cf95f,0,1,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,0,1,a1875d63-4303-46f1-bdea-fc529b5891f3,a1875d63-4303-46f1-bdea-fc529b5891f3,0,1,133f181a-fade-4182-826d-904fac780326,133f181a-fade-4182-826d-904fac780326,0,1,641ebe22-7135-4adb-bbd6-e0c37d246a2d,641ebe22-7135-4adb-bbd6-e0c37d246a2d,0,1,f71ba01e-9f6b-4241-8048-4368c8888756,f71ba01e-9f6b-4241-8048-4368c8888756,0,1,60208d56-f778-4ff6-abdd-ea6622504ace,60208d56-f778-4ff6-abdd-ea6622504ace,0,1,6aa814fa-417e-428c-951e-6efd9d0775da,6aa814fa-417e-428c-951e-6efd9d0775da,0,1,5a979568-6bc7-4f75-b585-ebdcaafc119a,5a979568-6bc7-4f75-b585-ebdcaafc119a,0,1,a247efe1-8608-4780-9cc8-54e29944475b,a247efe1-8608-4780-9cc8-54e29944475b,0,1,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,0,1,bed22a72-1a5e-46e5-ad71-f94e9508e272,bed22a72-1a5e-46e5-ad71-f94e9508e272,0,1,a8f162e9-3f59-41a5-b82f-da20928213c7,a8f162e9-3f59-41a5-b82f-da20928213c7,0,1,ade68dfd-5037-4fd7-b043-9514e3fe6342,ade68dfd-5037-4fd7-b043-9514e3fe6342,0,1,7b008aad-9d05-43e1-8295-62ae58cfff42,7b008aad-9d05-43e1-8295-62ae58cfff42,0,1,fdaf9255-d621-4a98-9530-f618ed440795,fdaf9255-d621-4a98-9530-f618ed440795,0,1,65a331c0-7501-49f6-8027-35b703d11834,65a331c0-7501-49f6-8027-35b703d11834,0,1,f5417147-4d2a-4e49-911b-2bb5eccb8441,f5417147-4d2a-4e49-911b-2bb5eccb8441,0,1,475f8577-a141-496b-94e1-53215c0dd017,475f8577-a141-496b-94e1-53215c0dd017,0,1,97638762-c01e-4c8f-88e2-b356e517e18f,97638762-c01e-4c8f-88e2-b356e517e18f,0,1,0d124daf-dc52-4391-a2d9-3c43a45c422c,0d124daf-dc52-4391-a2d9-3c43a45c422c,0,1,f8139d21-0380-43b5-8025-c986f8598c74,f8139d21-0380-43b5-8025-c986f8598c74,0,1,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,0,1,b00c31d6-4fc6-4189-9f72-f91742ec705f,b00c31d6-4fc6-4189-9f72-f91742ec705f,0,1,1333101b-82e8-41a9-a793-5af5dcd6f68a,1333101b-82e8-41a9-a793-5af5dcd6f68a,0,1,0f25646a-90f9-4747-a778-7efdaabc284c,0f25646a-90f9-4747-a778-7efdaabc284c,0,1,ca179cb5-65e1-4a55-bf12-096b926accb0,ca179cb5-65e1-4a55-bf12-096b926accb0,0,1,07bb26ac-bd97-465f-a192-db7fedbb579b,07bb26ac-bd97-465f-a192-db7fedbb579b,0,1,84e63b9b-0293-49bc-ba7f-e803bc44fc42,84e63b9b-0293-49bc-ba7f-e803bc44fc42,0,1,c54f31ce-114b-46d3-b4c6-12c8f07727ca,c54f31ce-114b-46d3-b4c6-12c8f07727ca,0,1,b2c8bd74-21c9-4495-93e2-ca5355698350,b2c8bd74-21c9-4495-93e2-ca5355698350,0,1,b6566d54-e821-4a2a-a447-0f533f35de91,b6566d54-e821-4a2a-a447-0f533f35de91,0,1,84395058-d46a-428c-b782-a9fa89fea14a,84395058-d46a-428c-b782-a9fa89fea14a,0,1,39bc2bc6-2a4f-4e26-b1b9-fb8473234f09,39bc2bc6-2a4f-4e26-b1b9-fb8473234f09,0,1,9cf45640-aeb3-45aa-97aa-922a83e61510,9cf45640-aeb3-45aa-97aa-922a83e61510,0,1,f2e2df50-52fc-4e95-909b-80fc91a68f62,f2e2df50-52fc-4e95-909b-80fc91a68f62,0,1,36ec0fb5-a5f3-4685-9696-c44a393998f6,36ec0fb5-a5f3-4685-9696-c44a393998f6,0,1,1b887b59-9a72-4aa3-a985-7a8d6a427b95,1b887b59-9a72-4aa3-a985-7a8d6a427b95,0,1,1fca06d9-b015-4fc8-abdd-3e2397e0c307,1fca06d9-b015-4fc8-abdd-3e2397e0c307,0,1,05b6a743-5831-4c77-894c-b19005b0e141,05b6a743-5831-4c77-894c-b19005b0e141,0,1,1f7ec25a-05b1-468b-8857-2bb1aed3678a,1f7ec25a-05b1-468b-8857-2bb1aed3678a,0,1,b639ed30-3e37-4c65-a39f-00fe735950eb,b639ed30-3e37-4c65-a39f-00fe735950eb,0,1,b6ac957c-0525-4c48-854e-86007beb83db,b6ac957c-0525-4c48-854e-86007beb83db,0,1,f137eb0f-bde7-412d-9229-d7a4f9456e6c,f137eb0f-bde7-412d-9229-d7a4f9456e6c,0,1,57e9fcea-342c-4089-bd10-befb3faf0dbd,57e9fcea-342c-4089-bd10-befb3faf0dbd,0,1,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,0,1,f811b0b7-41b5-4591-9910-780f08780236,f811b0b7-41b5-4591-9910-780f08780236,0,1,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,0,1,7e089889-cf8d-4f5f-879c-0a1bcca1c19b,7e089889-cf8d-4f5f-879c-0a1bcca1c19b,0,1,7e2ba519-fbb9-4163-b20b-b99898e6ac57,7e2ba519-fbb9-4163-b20b-b99898e6ac57,1,0,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,0,1,1346045c-e747-4d5c-b8c6-d9dcc268ed3a,1346045c-e747-4d5c-b8c6-d9dcc268ed3a,0,1,2609ba3c-e4de-45b3-86e0-93db39a21eee,2609ba3c-e4de-45b3-86e0-93db39a21eee,0,1,d21971c9-9aa6-448a-ab37-49ad0b0547ec,d21971c9-9aa6-448a-ab37-49ad0b0547ec,0,1,0010dab9-d0db-48cd-903d-3234002ca1b5,0010dab9-d0db-48cd-903d-3234002ca1b5,0,1,e035494e-71ed-44f1-b04c-f2f47bcfa0fe,e035494e-71ed-44f1-b04c-f2f47bcfa0fe,0,1,00418e6c-77b2-4753-b9ff-3a8013436f8a,00418e6c-77b2-4753-b9ff-3a8013436f8a,0,1,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,0,1,a3c9a7eb-2104-4402-954c-3e12de4a7de3,a3c9a7eb-2104-4402-954c-3e12de4a7de3,0,1,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,0,1,ccd2536d-592f-4109-bda9-7964c8b9757d,ccd2536d-592f-4109-bda9-7964c8b9757d,0,1,6c34eef9-9405-4de0-9177-1bae85251ae4,6c34eef9-9405-4de0-9177-1bae85251ae4,0,1,295a5554-f6cc-437b-9e89-c6f653a8b858,295a5554-f6cc-437b-9e89-c6f653a8b858,0,1,e09534e3-ac6e-42a6-86e8-564acb20089a,e09534e3-ac6e-42a6-86e8-564acb20089a,0,1,63223883-06cf-4d01-be95-5e410cc58a22,63223883-06cf-4d01-be95-5e410cc58a22,0,1,1929139f-dabb-4c40-9423-158093360889,1929139f-dabb-4c40-9423-158093360889,0,1,dad92df4-685b-4260-b35f-4d031262dfea,dad92df4-685b-4260-b35f-4d031262dfea,0,1,4399c19a-ddba-42e9-88b4-c5c28abad237,4399c19a-ddba-42e9-88b4-c5c28abad237,0,1,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,0,1,bde70605-7ffc-4b38-b65d-e7b0d14e2f3a,bde70605-7ffc-4b38-b65d-e7b0d14e2f3a,0,1,cbc1c36d-7bbf-4892-8220-a33ec91a7b1f,cbc1c36d-7bbf-4892-8220-a33ec91a7b1f,0,1,5d4e67ae-7029-46d2-86f9-834a04a9dd71,5d4e67ae-7029-46d2-86f9-834a04a9dd71,0,1,b3554203-b930-496d-a712-353bc13a0946,b3554203-b930-496d-a712-353bc13a0946,0,1,59775ce0-f778-45f6-9453-bbd0a0ec1f27,59775ce0-f778-45f6-9453-bbd0a0ec1f27,0,1,078d3269-80fd-4406-9972-ab2a5fd83434,078d3269-80fd-4406-9972-ab2a5fd83434,0,1,f772abd3-8ea0-41e9-aaca-c5375778941a,f772abd3-8ea0-41e9-aaca-c5375778941a,0,1,d06e845a-9f54-40dd-b0df-6988def62017,d06e845a-9f54-40dd-b0df-6988def62017,0,1,b322b047-16eb-4500-826a-6dfebb7d997a,b322b047-16eb-4500-826a-6dfebb7d997a,0,1,c8da922f-e31e-49b0-b90e-1c060424bde5,c8da922f-e31e-49b0-b90e-1c060424bde5,0,1,35bc58df-8aff-48dd-83a9-b60b0461f94d,35bc58df-8aff-48dd-83a9-b60b0461f94d,0,1,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,0,1,b65afceb-a200-42d5-9948-831a5ad84b1b,b65afceb-a200-42d5-9948-831a5ad84b1b,0,1,feb1a5c1-c805-4079-8f05-8a44f51b0b02,feb1a5c1-c805-4079-8f05-8a44f51b0b02,0,1,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,0,1,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,0,1,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,0,1,231d3950-f363-4e63-83cd-8ddb81507c27,231d3950-f363-4e63-83cd-8ddb81507c27,0,1,87429f11-bf95-4013-bf13-da904570f88d,87429f11-bf95-4013-bf13-da904570f88d,0,1,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,0,1,feb41347-62db-41cf-ace0-d8b9de361af3,feb41347-62db-41cf-ace0-d8b9de361af3,0,1,5f91b00f-d8fc-4d63-8486-66339357ab22,5f91b00f-d8fc-4d63-8486-66339357ab22,0,1,16d44ab1-4bce-4df8-a215-6ed5173c75a8,16d44ab1-4bce-4df8-a215-6ed5173c75a8,0,1,cdce186a-229d-492d-8811-147fc4d7cdf5,cdce186a-229d-492d-8811-147fc4d7cdf5,0,1,543f976e-fea3-4a51-9962-b8e0fcd3f707,543f976e-fea3-4a51-9962-b8e0fcd3f707,0,1,375977c1-5745-4e78-a4df-cef966c0ccf8,375977c1-5745-4e78-a4df-cef966c0ccf8,0,1,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,0,1,c3796d85-2a24-43c4-9673-64e56249a1d0,c3796d85-2a24-43c4-9673-64e56249a1d0,0,1,fc1066b5-20d4-4c73-85f8-9889e554d6e1,fc1066b5-20d4-4c73-85f8-9889e554d6e1,0,1,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,0,1,731211c2-ef90-4883-9525-83cd91b742ac,731211c2-ef90-4883-9525-83cd91b742ac,0,1,0adf02da-940a-4bfc-afa5-59605494a169,0adf02da-940a-4bfc-afa5-59605494a169,0,1,06afe397-1c7e-400e-bb24-f8e611d114e8,06afe397-1c7e-400e-bb24-f8e611d114e8,0,1,8361991a-0f30-4a03-9a4c-90556b744f53,8361991a-0f30-4a03-9a4c-90556b744f53,0,1,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,0,1,f9196766-4ae2-4a73-bed6-4a8838323e02,f9196766-4ae2-4a73-bed6-4a8838323e02,0,1,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,0,1,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,0,1,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,0,1,f0105e51-9510-426a-8aa0-af827d93ffd9,f0105e51-9510-426a-8aa0-af827d93ffd9,0,1,3df19dbf-efe7-4e31-99ad-fafb59ec1329,3df19dbf-efe7-4e31-99ad-fafb59ec1329,0,1,292b47e7-5cf3-462d-a466-dac6253a7f03,292b47e7-5cf3-462d-a466-dac6253a7f03,0,1,07b53818-7318-4400-8af5-457fac012755,07b53818-7318-4400-8af5-457fac012755,0,1,11fe3a42-98c4-49ba-b697-86ffb172f16f,11fe3a42-98c4-49ba-b697-86ffb172f16f,0,1,8ecc070f-f6fb-46b1-9636-b77aa80f8804,8ecc070f-f6fb-46b1-9636-b77aa80f8804,0,1,8405be9d-465b-4744-b04f-03933b52f02e,8405be9d-465b-4744-b04f-03933b52f02e,0,1,2f67931e-543f-457e-80fd-78ca754e2e9c,2f67931e-543f-457e-80fd-78ca754e2e9c,0,1,595e5752-36a7-4bba-8a40-26920acae01d,595e5752-36a7-4bba-8a40-26920acae01d,0,1,ece7f438-0898-4a02-89cb-6a6aa689e331,ece7f438-0898-4a02-89cb-6a6aa689e331,0,1,15ca91d9-0373-435c-a69f-409f1eff6c3b,15ca91d9-0373-435c-a69f-409f1eff6c3b,0,1,dd9176ec-9186-4277-a155-14ed2efef15f,dd9176ec-9186-4277-a155-14ed2efef15f,0,1,b980519c-0fb7-45db-92ab-8241ec50c8c8,b980519c-0fb7-45db-92ab-8241ec50c8c8,0,1,d45f4ad8-c34a-4a14-9278-df88a071d610,d45f4ad8-c34a-4a14-9278-df88a071d610,0,1,eb3dfdc7-58b8-4b1f-b079-368c262364c9,eb3dfdc7-58b8-4b1f-b079-368c262364c9,0,1,5030a318-f8f7-4ec7-80d6-6eee0772562f,5030a318-f8f7-4ec7-80d6-6eee0772562f,0,1,242e911d-e49c-4b8a-8543-cc2e079220fd,242e911d-e49c-4b8a-8543-cc2e079220fd,0,1,73044e20-148c-46e9-b5b5-973c91de0d61,73044e20-148c-46e9-b5b5-973c91de0d61,0,1,f8ab477c-8e78-48c0-9f99-27748b109706,f8ab477c-8e78-48c0-9f99-27748b109706,0,1,24cff6c8-6c20-4383-b97c-6afa52738960,24cff6c8-6c20-4383-b97c-6afa52738960,0,1,462e2694-750d-49ef-93ac-17a7779be68d,462e2694-750d-49ef-93ac-17a7779be68d,0,1,c24ff02e-5afc-45df-81cf-64ea2b261c2d,c24ff02e-5afc-45df-81cf-64ea2b261c2d,0,1,2d51aae9-650d-4719-a94d-2609b69a2d36,2d51aae9-650d-4719-a94d-2609b69a2d36,0,1,6025f5b5-6dc7-46b8-96e6-02823c5b4de7,6025f5b5-6dc7-46b8-96e6-02823c5b4de7,0,1,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,0,1,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,0,1,85639a53-b367-49ce-84f2-4e21d81c489b,85639a53-b367-49ce-84f2-4e21d81c489b,0,1,24b59586-178e-4efc-90ae-529553f3bb6c,24b59586-178e-4efc-90ae-529553f3bb6c,0,1,20e75dd5-222a-4100-aa43-3684991e3f21,20e75dd5-222a-4100-aa43-3684991e3f21,0,1,3c611832-4bc2-4229-a27d-d5dc82f3a498,3c611832-4bc2-4229-a27d-d5dc82f3a498,0,1,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,0,1,5dadc422-1fbd-4918-9db3-09ec72c3404e,5dadc422-1fbd-4918-9db3-09ec72c3404e,0,1,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,0,1,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,0,1,c5478d09-c8d3-4cc6-878e-27656ecc8409,c5478d09-c8d3-4cc6-878e-27656ecc8409,0,1,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,0,1,75974146-5b1a-412c-b7d5-1575704bbdab,75974146-5b1a-412c-b7d5-1575704bbdab,0,1,949f87cb-258c-4b6b-95ee-8a7491a4b64e,949f87cb-258c-4b6b-95ee-8a7491a4b64e,0,1,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,0,1,5c089988-5381-41ed-9f05-f85db46b8d94,5c089988-5381-41ed-9f05-f85db46b8d94,0,1,85a36352-1569-4ce4-aeba-477db524c36d,85a36352-1569-4ce4-aeba-477db524c36d,0,1,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,0,1,2fcde115-5c5a-465c-a326-d7ba379675fc,2fcde115-5c5a-465c-a326-d7ba379675fc,0,1,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,0,1,b99c2068-15ea-43a1-9e9f-db29647e2387,b99c2068-15ea-43a1-9e9f-db29647e2387,0,1,9a4a0b04-3dfb-4551-90f0-16231f64b14f,9a4a0b04-3dfb-4551-90f0-16231f64b14f,0,1,98edcd6b-1c50-45c6-9a4c-390827a4ba52,98edcd6b-1c50-45c6-9a4c-390827a4ba52,0,1,346cb8b7-a20e-4a06-823e-26dfb2e3e741,346cb8b7-a20e-4a06-823e-26dfb2e3e741,0,1,6d83f50f-32e9-45a6-8b5e-d91ba005ae95,6d83f50f-32e9-45a6-8b5e-d91ba005ae95,0,1,9afe457f-3c88-4cd3-94e7-7cea8a1a99a1,9afe457f-3c88-4cd3-94e7-7cea8a1a99a1,0,1,86ff5ea0-394a-4d8f-9601-acc2eb841bf6,86ff5ea0-394a-4d8f-9601-acc2eb841bf6,1,0,782cb93d-36e6-4923-b2b6-75caa3459cd6,782cb93d-36e6-4923-b2b6-75caa3459cd6,1,0,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,1,0,996c7873-1cc9-44f6-915b-5c6ed7ef2370,996c7873-1cc9-44f6-915b-5c6ed7ef2370,1,0,45a2569e-820c-4d7d-ba74-4a781d26bb2b,45a2569e-820c-4d7d-ba74-4a781d26bb2b,1,0,ced01234-9417-49ce-adf0-8cdd15e6dd7d,ced01234-9417-49ce-adf0-8cdd15e6dd7d,1,0,0eea37cc-47f8-4819-85da-d4991f4e58ed,0eea37cc-47f8-4819-85da-d4991f4e58ed,1,0,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,1,0,7974e41d-5af3-4636-b405-c9405d89fb53,7974e41d-5af3-4636-b405-c9405d89fb53,1,0,21fad9b6-44df-417c-ba18-de4b8af98a34,21fad9b6-44df-417c-ba18-de4b8af98a34,1,0,11c086b0-c646-4701-983d-c38758286354,11c086b0-c646-4701-983d-c38758286354,1,0,92876c9e-52ff-480d-9878-5766f4f9d12c,92876c9e-52ff-480d-9878-5766f4f9d12c,1,0,bbfd9834-12b4-49ca-bdae-5c94efa80482,bbfd9834-12b4-49ca-bdae-5c94efa80482,1,0,d65c4485-7bac-4206-9a6c-7156f4bb876d,d65c4485-7bac-4206-9a6c-7156f4bb876d,1,0,433a114f-3198-4ef6-bbf8-ce9b54fdb736,433a114f-3198-4ef6-bbf8-ce9b54fdb736,1,0,d431d1e2-13dc-495c-9de1-b5ec872eceed,d431d1e2-13dc-495c-9de1-b5ec872eceed,1,0,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,1,0,c9ea4e72-5f01-42ae-88e3-52e49757b26f,c9ea4e72-5f01-42ae-88e3-52e49757b26f,1,0,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,0,1,0f564dbe-6a6e-48df-9718-5cea5d608ee6,0f564dbe-6a6e-48df-9718-5cea5d608ee6,0,1,a623fef1-96eb-41ba-93fe-09162698f419,a623fef1-96eb-41ba-93fe-09162698f419,0,1,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,0,1,d8e1f92f-9efa-422d-bb21-43bd1a363cec,d8e1f92f-9efa-422d-bb21-43bd1a363cec,0,1,c1416383-bd7e-4dc4-ad88-d98ac87157fd,c1416383-bd7e-4dc4-ad88-d98ac87157fd,0,1,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,0,1,d5d9976a-4cc0-43f7-afd6-d43cebb07940,d5d9976a-4cc0-43f7-afd6-d43cebb07940,0,1,79a0746b-4dbe-4068-8832-4d0da08d6fd3,79a0746b-4dbe-4068-8832-4d0da08d6fd3,0,1,899f1526-d6bc-42ef-852e-7297a06db9e3,899f1526-d6bc-42ef-852e-7297a06db9e3,0,1,c694c132-1ddb-4273-818a-d3cca88c082a,c694c132-1ddb-4273-818a-d3cca88c082a,0,1,cd4da06e-c06b-4233-befc-1bc4c4db58e3,cd4da06e-c06b-4233-befc-1bc4c4db58e3,0,1,918a01fe-f753-4a4a-9200-55bbd6edaf5f,918a01fe-f753-4a4a-9200-55bbd6edaf5f,0,1,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,0,1,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,0,1,d6704410-6297-481e-a6cb-6d6aa566b4f8,d6704410-6297-481e-a6cb-6d6aa566b4f8,0,1,398937ca-b035-43bd-b0da-8c5153a87cb8,398937ca-b035-43bd-b0da-8c5153a87cb8,0,1,5b441321-bd1e-4c56-8f09-365b05985eed,5b441321-bd1e-4c56-8f09-365b05985eed,0,1,559f1e66-e8da-437a-aa27-d0e1be6619b6,559f1e66-e8da-437a-aa27-d0e1be6619b6,0,1,704d69cd-d921-4957-a004-43bd7eb4d979,704d69cd-d921-4957-a004-43bd7eb4d979,0,1,f1594682-16ac-408c-8307-a7a8db79b09f,f1594682-16ac-408c-8307-a7a8db79b09f,0,1,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,0,1,4cb814d8-cb1b-4366-b500-e820ad526b0c,4cb814d8-cb1b-4366-b500-e820ad526b0c,0,1,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,0,1,6c43df9f-ca36-415b-afec-302807820d73,6c43df9f-ca36-415b-afec-302807820d73,0,1,c7fb7551-806a-40b2-8879-14cd897b60d8,c7fb7551-806a-40b2-8879-14cd897b60d8,0,1,68337023-d573-4d04-95b6-44f73258c2a4,68337023-d573-4d04-95b6-44f73258c2a4,0,1,7cf39337-b722-486f-8e37-a62239d0ccd2,7cf39337-b722-486f-8e37-a62239d0ccd2,0,1,2571cfaf-d876-4385-a60a-1488aacf7080,2571cfaf-d876-4385-a60a-1488aacf7080,0,1,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,0,1,44398566-3189-4584-8f8a-9deb1d07ce41,44398566-3189-4584-8f8a-9deb1d07ce41,0,1,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,0,1,accfa63a-479d-4996-95bc-cdf5acdf203c,accfa63a-479d-4996-95bc-cdf5acdf203c,0,1,351998e0-8939-4dd4-a833-f4756bcc53b8,351998e0-8939-4dd4-a833-f4756bcc53b8,0,1,cd69bad8-524e-4be4-88cc-7732a88b38b8,cd69bad8-524e-4be4-88cc-7732a88b38b8,0,1,0a32248c-6994-4988-90d1-30882bc9da6b,0a32248c-6994-4988-90d1-30882bc9da6b,0,1,b57b53cb-6972-4bda-ae46-96571be1ebec,b57b53cb-6972-4bda-ae46-96571be1ebec,0,1,1a1a9636-fb72-4e4a-af96-5858442b1e61,1a1a9636-fb72-4e4a-af96-5858442b1e61,0,1,bca9cf34-9e11-4014-976a-28c4330b136e,bca9cf34-9e11-4014-976a-28c4330b136e,0,1,65fffe1a-6f36-4f50-975f-4471ad29d3ec,65fffe1a-6f36-4f50-975f-4471ad29d3ec,0,1,8fe5dad5-686a-4631-ae05-2917c33f7d83,8fe5dad5-686a-4631-ae05-2917c33f7d83,0,1,edef86c6-73bf-4e47-b62d-b2b548a732cd,edef86c6-73bf-4e47-b62d-b2b548a732cd,0,1,a1715044-d76f-4238-ba3e-989d04078d83,a1715044-d76f-4238-ba3e-989d04078d83,0,1,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,0,1,299c47a7-0b30-4f62-8f5c-f087ad6411fb,299c47a7-0b30-4f62-8f5c-f087ad6411fb,0,1,4d4724df-24fb-4c59-9d04-3f984906214a,4d4724df-24fb-4c59-9d04-3f984906214a,0,1,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,0,1,1ed9a67b-5b15-4862-907f-b194d6113070,1ed9a67b-5b15-4862-907f-b194d6113070,0,1,1aceb0e8-9131-44c2-aaa5-db96eea1c0de,1aceb0e8-9131-44c2-aaa5-db96eea1c0de,1,0,cb9b73ee-8531-48d9-9266-9aaa4336a612,cb9b73ee-8531-48d9-9266-9aaa4336a612,1,0,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,1,0,aeee2eea-1bb9-4e8a-ac5c-c940eaa86511,aeee2eea-1bb9-4e8a-ac5c-c940eaa86511,1,0,d042687f-0725-4611-a868-f5b4f6a3a3a8,d042687f-0725-4611-a868-f5b4f6a3a3a8,1,0,bb143340-7fff-49ef-b121-355c96613f78,bb143340-7fff-49ef-b121-355c96613f78,1,0,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,1,0,f2f69644-80dc-4b5e-a208-ed1de131e25e,f2f69644-80dc-4b5e-a208-ed1de131e25e,1,0,f3a6219e-bff5-4d36-9baa-bb214cebc2ed,f3a6219e-bff5-4d36-9baa-bb214cebc2ed,1,0,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,1,0,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,1,0,d0106f3a-8490-4277-a278-75c318ec252c,d0106f3a-8490-4277-a278-75c318ec252c,1,0,5035aa55-d557-419a-89e2-10ed0f8d109b,5035aa55-d557-419a-89e2-10ed0f8d109b,1,0,fb79315a-8d27-4c5e-9cfb-c7778dabedef,fb79315a-8d27-4c5e-9cfb-c7778dabedef,1,0,5f93d2af-64ff-41cc-8403-4a0e83160fea,5f93d2af-64ff-41cc-8403-4a0e83160fea,1,0,c12c90e4-7c40-489b-b14b-6b9442016e0f,c12c90e4-7c40-489b-b14b-6b9442016e0f,1,0,6371e288-3502-4d66-9006-b5a36107c0b7,6371e288-3502-4d66-9006-b5a36107c0b7,1,0,0132e564-2cd3-4930-8962-1068532f4be4,0132e564-2cd3-4930-8962-1068532f4be4,1,0,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,1,0,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,1,0,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,1,0,7021fca5-d612-43e1-927b-7f822153cf75,7021fca5-d612-43e1-927b-7f822153cf75,1,0,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,1,0,ee0a8d23-660a-492b-a813-b57394acee05,ee0a8d23-660a-492b-a813-b57394acee05,1,0,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,1,0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,1,0,ade21e2e-349f-414b-8f35-6ae3b6a4064d,ade21e2e-349f-414b-8f35-6ae3b6a4064d,1,0,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,1,0,e3ca64af-7766-48e2-b7c6-2a96f4539905,e3ca64af-7766-48e2-b7c6-2a96f4539905,1,0,6b885571-126e-4d94-8e90-adb4b730532e,6b885571-126e-4d94-8e90-adb4b730532e,1,0,ccea0a50-b761-4acd-ae33-22fcaed0e88d,ccea0a50-b761-4acd-ae33-22fcaed0e88d,1,0,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,1,0,08efd7c8-3ac1-46c5-862c-2b4816b8081f,08efd7c8-3ac1-46c5-862c-2b4816b8081f,0,1,b03829e9-ba22-4584-85f0-c36d63f48242,b03829e9-ba22-4584-85f0-c36d63f48242,0,1,084a7c95-a59b-4861-b8b3-b5710a57ac60,084a7c95-a59b-4861-b8b3-b5710a57ac60,0,1,efcea6da-6746-4e00-913a-14cab38b5d84,efcea6da-6746-4e00-913a-14cab38b5d84,0,1,aff367fb-7fca-44d0-adf9-3731f14834f6,aff367fb-7fca-44d0-adf9-3731f14834f6,0,1,a2782760-dd4c-44d2-a785-814d6f610455,a2782760-dd4c-44d2-a785-814d6f610455,0,1,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,0,1,6581ac1f-11ef-42b8-9f3b-590bb7546e63,6581ac1f-11ef-42b8-9f3b-590bb7546e63,0,1,ce952e88-35b7-4506-81ac-d7081e50a650,ce952e88-35b7-4506-81ac-d7081e50a650,0,1,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,0,1,3bf1281f-7570-4633-86b9-3e953a7e6647,3bf1281f-7570-4633-86b9-3e953a7e6647,0,1,92707138-5004-4378-8477-f909166d319d,92707138-5004-4378-8477-f909166d319d,0,1,43661775-43bb-4d9e-bfbb-c46e7d194ca3,43661775-43bb-4d9e-bfbb-c46e7d194ca3,0,1,532637ef-be0d-4f42-9747-a88e17eb3def,532637ef-be0d-4f42-9747-a88e17eb3def,0,1,61127152-3e24-40b4-8a23-5eb6cae568ff,61127152-3e24-40b4-8a23-5eb6cae568ff,0,1,ad1142ed-183d-47a3-800c-997a3770e11e,ad1142ed-183d-47a3-800c-997a3770e11e,0,1,ebef37c6-4808-4683-93be-036ce19cafd5,ebef37c6-4808-4683-93be-036ce19cafd5,0,1,66364cd4-aaa5-421d-96d6-3c283c14650d,66364cd4-aaa5-421d-96d6-3c283c14650d,0,1,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,0,1,3c54d440-e908-43d6-a5cc-bb64620c82d7,3c54d440-e908-43d6-a5cc-bb64620c82d7,0,1,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,0,1,bf1dd911-8ee1-407b-acae-10c85b74baf3,bf1dd911-8ee1-407b-acae-10c85b74baf3,0,1,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,0,1,0481bc65-6a32-46b9-ae87-993ba52a29a5,0481bc65-6a32-46b9-ae87-993ba52a29a5,0,1,dbc5f419-63b0-4cbe-90ff-c0101105e46c,dbc5f419-63b0-4cbe-90ff-c0101105e46c,0,1,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,0,1,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,0,1,c708f6e9-b7a0-4046-90f3-83527da7b872,c708f6e9-b7a0-4046-90f3-83527da7b872,0,1,14256e0a-a947-42a3-8e36-47bfbb052a0c,14256e0a-a947-42a3-8e36-47bfbb052a0c,0,1,1b1aa77a-d14b-4751-a7da-0b5bac4db461,1b1aa77a-d14b-4751-a7da-0b5bac4db461,0,1,7a34f723-cd14-4949-a40f-7ce579bf0449,7a34f723-cd14-4949-a40f-7ce579bf0449,0,1,295f3692-0721-4c41-a69b-171ef20a5018,295f3692-0721-4c41-a69b-171ef20a5018,0,1,86c22871-6d1c-44e0-8ade-ce4bdeb23321,86c22871-6d1c-44e0-8ade-ce4bdeb23321,0,1,8d31ce6a-4d44-46c6-a11c-47fb33e88691,8d31ce6a-4d44-46c6-a11c-47fb33e88691,0,1,df22b227-b2c3-4e65-9706-7582f99fe59c,df22b227-b2c3-4e65-9706-7582f99fe59c,0,1,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,0,1,087480bb-8c89-4b00-a29b-b7e29926478d,087480bb-8c89-4b00-a29b-b7e29926478d,0,1,685373b7-638a-439a-8cba-703d56e4e404,685373b7-638a-439a-8cba-703d56e4e404,0,1,263bcd20-9878-48d4-aac4-b371ec49d8d6,263bcd20-9878-48d4-aac4-b371ec49d8d6,0,1,da1d8660-2757-4cea-bae0-c2210b9406ae,da1d8660-2757-4cea-bae0-c2210b9406ae,0,1,d60329c6-8f48-481d-82e7-18da355cb09c,d60329c6-8f48-481d-82e7-18da355cb09c,0,1,c4b14162-b25b-4099-9ec3-7251848ef08a,c4b14162-b25b-4099-9ec3-7251848ef08a,0,1,8eb5ba97-eb38-4357-8bfc-e9618280800d,8eb5ba97-eb38-4357-8bfc-e9618280800d,0,1,b72f73d5-e274-472b-871b-16af72dab603,b72f73d5-e274-472b-871b-16af72dab603,0,1,b008d184-0b61-460d-9490-89ecc1cd58ba,b008d184-0b61-460d-9490-89ecc1cd58ba,0,1,c8340e2f-6958-4bcd-8e17-499c4adfe60b,c8340e2f-6958-4bcd-8e17-499c4adfe60b,0,1,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,0,1,03f68d82-752c-45d1-bf9a-60ecd21a2c81,03f68d82-752c-45d1-bf9a-60ecd21a2c81,0,1,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,0,1,d4fffc79-2841-49a9-a382-e9e4138984df,d4fffc79-2841-49a9-a382-e9e4138984df,0,1,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,0,1,9f41f903-d316-4189-8dc0-603ea9036c1c,9f41f903-d316-4189-8dc0-603ea9036c1c,0,1,e19e70d6-8707-4dde-ae69-7bd97035ca03,e19e70d6-8707-4dde-ae69-7bd97035ca03,0,1,425b5272-1130-457d-8a05-aee8fad681d9,425b5272-1130-457d-8a05-aee8fad681d9,0,1,8d583436-f2a6-4a33-8137-1376f5754643,8d583436-f2a6-4a33-8137-1376f5754643,0,1,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,0,1,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,0,1,2d66502d-77ab-4cc9-9ccf-5433458fae9f,2d66502d-77ab-4cc9-9ccf-5433458fae9f,0,1,cff48da7-3c46-4602-83e8-90c9ea53e107,cff48da7-3c46-4602-83e8-90c9ea53e107,0,1,7155472d-c791-402c-96e1-d25612024c88,7155472d-c791-402c-96e1-d25612024c88,0,1,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,0,1,9005911d-ea81-48b6-bf50-1a328ff4d7be,9005911d-ea81-48b6-bf50-1a328ff4d7be,0,1,7df12006-c0c0-42a6-b852-bdced72c62e3,7df12006-c0c0-42a6-b852-bdced72c62e3,0,1,9c00987d-3c55-40eb-bae8-f36e71e4ef87,9c00987d-3c55-40eb-bae8-f36e71e4ef87,0,1,29273130-5142-48c9-8399-00e5ab4b6203,29273130-5142-48c9-8399-00e5ab4b6203,0,1,9e14cd7e-1293-4008-baf8-88df6a98abf7,9e14cd7e-1293-4008-baf8-88df6a98abf7,0,1,98e3aace-52a6-4911-8205-92165adca6de,98e3aace-52a6-4911-8205-92165adca6de,0,1,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,0,1,577e5fea-b792-4c8b-b3b3-a03a14b64b04,577e5fea-b792-4c8b-b3b3-a03a14b64b04,0,1,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,0,1,db4eb2f0-1e8c-4fd6-a818-ee1a09ed7caf,db4eb2f0-1e8c-4fd6-a818-ee1a09ed7caf,0,1,7898bdc8-e895-4894-810a-19607a553c53,7898bdc8-e895-4894-810a-19607a553c53,0,1,b18d312b-f9c3-4f37-ac77-d499e949f154,b18d312b-f9c3-4f37-ac77-d499e949f154,0,1,ace2beea-d393-412f-8b71-b845b665e2c4,ace2beea-d393-412f-8b71-b845b665e2c4,0,1,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,0,1,ebc25606-46e7-4252-8661-cfce0e77830e,ebc25606-46e7-4252-8661-cfce0e77830e,0,1,dfa258a8-7194-49a5-8c25-6de44cf97a0f,dfa258a8-7194-49a5-8c25-6de44cf97a0f,0,1,3fd4bc77-2a1b-4750-a54a-4171c8d40027,3fd4bc77-2a1b-4750-a54a-4171c8d40027,0,1,1c09bf33-9b54-4bfd-bc92-e7324025fab0,1c09bf33-9b54-4bfd-bc92-e7324025fab0,0,1,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,1,0,0a136ad9-22ad-4ba7-a31a-40a193b49d26,0a136ad9-22ad-4ba7-a31a-40a193b49d26,1,0,b456d820-8034-4381-960d-66d9f86b0a4b,b456d820-8034-4381-960d-66d9f86b0a4b,1,0,bd55fd03-cf67-4333-a554-98e03d18f780,bd55fd03-cf67-4333-a554-98e03d18f780,1,0,1a7c774d-5b86-4051-b797-3081e19fa30a,1a7c774d-5b86-4051-b797-3081e19fa30a,1,0,00949768-5833-4fe2-8752-b009d1bceef8,00949768-5833-4fe2-8752-b009d1bceef8,1,0,ef762828-452c-4d3a-ad7a-7f4933ab05ac,ef762828-452c-4d3a-ad7a-7f4933ab05ac,1,0,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,1,0,8b0faa1e-09da-4ba4-894e-e86abc5d39df,8b0faa1e-09da-4ba4-894e-e86abc5d39df,1,0,cb50b309-1b6c-400c-9e9e-67204dcccaae,cb50b309-1b6c-400c-9e9e-67204dcccaae,1,0,c5b3ca21-8f7b-4933-853c-7d95b17b5631,c5b3ca21-8f7b-4933-853c-7d95b17b5631,0,1,c46fd680-efbe-49a8-91f0-73e36d791fa9,c46fd680-efbe-49a8-91f0-73e36d791fa9,0,1,6995567b-5a3c-4e03-9fb4-e22363ed6555,6995567b-5a3c-4e03-9fb4-e22363ed6555,0,1,32c38c2b-072d-4cf2-bf9a-f9c4b4c463e8,32c38c2b-072d-4cf2-bf9a-f9c4b4c463e8,1,0,b8a966ba-3452-44df-91d0-7040ecd3e4c2,b8a966ba-3452-44df-91d0-7040ecd3e4c2,1,0,80d6883d-c608-4fe5-acae-78bc45e40e5f,80d6883d-c608-4fe5-acae-78bc45e40e5f,1,0,213b173a-c3b7-449c-a618-d479c4dc38e8,213b173a-c3b7-449c-a618-d479c4dc38e8,1,0,7a64dffc-5cfe-41e2-bd55-fbf4957559a4,7a64dffc-5cfe-41e2-bd55-fbf4957559a4,1,0,a78249aa-ca9f-4bee-b00d-68ff59ea81a4,a78249aa-ca9f-4bee-b00d-68ff59ea81a4,1,0,7534148d-0124-49a2-a446-c6205d153153,7534148d-0124-49a2-a446-c6205d153153,1,0,32ed8a10-7177-4e45-866e-04a1b6831570,32ed8a10-7177-4e45-866e-04a1b6831570,1,0,e2a90d7a-5480-47cd-b296-8d60d8baf7f9,e2a90d7a-5480-47cd-b296-8d60d8baf7f9,1,0,8190a432-1037-4334-b2c7-bae39f7f9442,8190a432-1037-4334-b2c7-bae39f7f9442,1,0,4733e5c1-8198-408b-8903-866d3b0fdc43,4733e5c1-8198-408b-8903-866d3b0fdc43,1,0,e1fc5146-37c5-4207-af05-7250976bd406,e1fc5146-37c5-4207-af05-7250976bd406,1,0,60038cd9-8d01-44b1-9d3f-f3a31e59e5db,60038cd9-8d01-44b1-9d3f-f3a31e59e5db,1,0,f0bfb98b-cc43-4b6c-8166-9b81b4c22cb0,f0bfb98b-cc43-4b6c-8166-9b81b4c22cb0,1,0,f5e27159-789a-4d34-ac51-fd99d753b83a,f5e27159-789a-4d34-ac51-fd99d753b83a,1,0,f1cb02ff-a2f0-4a34-93fa-e47c6e210ee1,f1cb02ff-a2f0-4a34-93fa-e47c6e210ee1,0,1,93701593-5ac8-4266-b471-7e9ed35a9c3e,93701593-5ac8-4266-b471-7e9ed35a9c3e,0,1,0fdb864e-ede9-4777-835c-0804968ee544,0fdb864e-ede9-4777-835c-0804968ee544,0,1,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,0,1,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,0,1,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,0,1,5dee9814-fe38-4631-8148-8d6c87ef6f47,5dee9814-fe38-4631-8148-8d6c87ef6f47,0,1,37d17053-5c2b-4972-b6a5-a589f2ddbde6,37d17053-5c2b-4972-b6a5-a589f2ddbde6,0,1,c349968a-3f87-425b-8efb-d847934dee4b,c349968a-3f87-425b-8efb-d847934dee4b,0,1,3bb8dc33-970c-4c58-9036-ce716d963847,3bb8dc33-970c-4c58-9036-ce716d963847,0,1,b3ff39fa-f665-4d01-9a2a-69722e6b1071,b3ff39fa-f665-4d01-9a2a-69722e6b1071,0,1,579baaa4-6493-4d99-8744-6399757295c7,579baaa4-6493-4d99-8744-6399757295c7,0,1,9c1325af-7492-42be-b3af-51b692534510,9c1325af-7492-42be-b3af-51b692534510,0,1,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,0,1,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,0,1,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,0,1,b7e85f5c-4312-44c6-895a-3f636a8c78d8,b7e85f5c-4312-44c6-895a-3f636a8c78d8,0,1,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,0,1,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,0,1,a1afacc5-f49a-4df2-a44d-479594d50179,a1afacc5-f49a-4df2-a44d-479594d50179,0,1,fe70eba3-7477-4a38-a511-d69960abb928,fe70eba3-7477-4a38-a511-d69960abb928,0,1,6534ea96-2145-49e6-9739-f59459dc7f6b,6534ea96-2145-49e6-9739-f59459dc7f6b,0,1,f49bffa0-cad6-4801-b82e-21aa580e72e6,f49bffa0-cad6-4801-b82e-21aa580e72e6,0,1,bbbfb817-8db3-4415-86c3-af028276d6e9,bbbfb817-8db3-4415-86c3-af028276d6e9,0,1,6a91112c-f6cc-47a0-9d26-a36c7702af7d,6a91112c-f6cc-47a0-9d26-a36c7702af7d,0,1,cb92dc2e-6053-4233-a408-4464514b1257,cb92dc2e-6053-4233-a408-4464514b1257,0,1,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,0,1,85550a7a-8fe0-4296-ace5-63cf053536b4,85550a7a-8fe0-4296-ace5-63cf053536b4,0,1,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,0,1,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,0,1,f31f3dab-5796-47ac-a54d-3081f8cad817,f31f3dab-5796-47ac-a54d-3081f8cad817,0,1,db497857-33d3-49a1-b328-dfc62c973ecb,db497857-33d3-49a1-b328-dfc62c973ecb,0,1,139c001c-7b07-465a-9187-399ad32d294f,139c001c-7b07-465a-9187-399ad32d294f,0,1,5d228ce4-069e-4f98-beed-b8e1de17c3d9,5d228ce4-069e-4f98-beed-b8e1de17c3d9,0,1,f3d8590a-dcfa-4d41-8d03-642b99ffa040,f3d8590a-dcfa-4d41-8d03-642b99ffa040,0,1,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,0,1,20156709-1481-4007-8e89-9ce79fc589fc,20156709-1481-4007-8e89-9ce79fc589fc,0,1,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,0,1,7e7c5abd-b645-4de5-a40e-5805ec4456e2,7e7c5abd-b645-4de5-a40e-5805ec4456e2,0,1,763a16c3-a728-4b65-a485-705990310b4a,763a16c3-a728-4b65-a485-705990310b4a,0,1,65338920-c744-4d1e-b351-848b90a3feda,65338920-c744-4d1e-b351-848b90a3feda,0,1,2aedb1ac-caf1-45c7-913e-82a36637d5d4,2aedb1ac-caf1-45c7-913e-82a36637d5d4,0,1,52c04b3f-24d2-414c-b05a-77a34078d793,52c04b3f-24d2-414c-b05a-77a34078d793,0,1,8e876c9a-670a-4f34-9525-d87311988268,8e876c9a-670a-4f34-9525-d87311988268,0,1,251bce43-7e0c-4842-aa9f-e1f0dd8bbf2b,251bce43-7e0c-4842-aa9f-e1f0dd8bbf2b,0,1,ef6f7bb6-6c2c-4777-b99a-624865222549,ef6f7bb6-6c2c-4777-b99a-624865222549,0,1,e6044088-2521-4c4b-9cbe-58c14bb871b1,e6044088-2521-4c4b-9cbe-58c14bb871b1,0,1,50fc45e9-1e29-4b0e-9c18-8a8354780755,50fc45e9-1e29-4b0e-9c18-8a8354780755,0,1,f6375eb0-448b-495b-8edf-198f2ac28aed,f6375eb0-448b-495b-8edf-198f2ac28aed,0,1,9e39be89-29c3-48d2-9568-eedfed776bf8,9e39be89-29c3-48d2-9568-eedfed776bf8,0,1,8f873523-b4b1-4522-a60c-04477b4a41ab,8f873523-b4b1-4522-a60c-04477b4a41ab,0,1,bcbb80fe-5d16-49a1-972c-492445c7db6f,bcbb80fe-5d16-49a1-972c-492445c7db6f,0,1,56177464-5e9f-4598-96bc-eb311993c503,56177464-5e9f-4598-96bc-eb311993c503,0,1,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,0,1,bdfe65f4-4174-4e66-915c-943137981cf0,bdfe65f4-4174-4e66-915c-943137981cf0,0,1,c895d58a-5be1-4157-81af-f4f6db9b4b9e,c895d58a-5be1-4157-81af-f4f6db9b4b9e,1,0,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,1,0,ed1369c5-c274-45bd-ae91-7648565ae09f,ed1369c5-c274-45bd-ae91-7648565ae09f,1,0,bfb3f026-e940-49c3-ac30-408186f9e11e,bfb3f026-e940-49c3-ac30-408186f9e11e,1,0,c9db6c68-965f-4567-b26e-5d497a389de1,c9db6c68-965f-4567-b26e-5d497a389de1,1,0,9edd9288-1463-4d67-b9f0-40f351d978e9,9edd9288-1463-4d67-b9f0-40f351d978e9,1,0,e1dc83eb-a8cd-454b-8de8-cff2049be78c,e1dc83eb-a8cd-454b-8de8-cff2049be78c,1,0,939bdb9a-294b-4b42-a56f-030f69bc29c4,939bdb9a-294b-4b42-a56f-030f69bc29c4,1,0,ee7a763b-bcbf-4ff3-89af-eb7965b33515,ee7a763b-bcbf-4ff3-89af-eb7965b33515,1,0,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,0,1,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,0,1,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,0,1,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,0,1,d915d338-3e4c-45c3-aef5-a07cf41b05f6,d915d338-3e4c-45c3-aef5-a07cf41b05f6,0,1,978640a2-5c4b-4e21-857e-34f00840fba8,978640a2-5c4b-4e21-857e-34f00840fba8,0,1,7649bd7b-fe8c-4338-80fc-153160a5e538,7649bd7b-fe8c-4338-80fc-153160a5e538,0,1,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,0,1,6137605e-4850-44ec-b4ee-048bd8e0ec3a,6137605e-4850-44ec-b4ee-048bd8e0ec3a,0,1,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,0,1,0e6e9372-beb4-478e-9428-71b19a60739b,0e6e9372-beb4-478e-9428-71b19a60739b,0,1,32b11498-542f-46b2-829f-1525936ab7fa,32b11498-542f-46b2-829f-1525936ab7fa,0,1,64afa916-4750-4008-8c6c-2a470fb11283,64afa916-4750-4008-8c6c-2a470fb11283,0,1,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,0,1,35354abc-9a76-4ee8-8796-c24b37365ea0,35354abc-9a76-4ee8-8796-c24b37365ea0,0,1,840a1d4d-e5f6-4a88-886f-03830fe4f99a,840a1d4d-e5f6-4a88-886f-03830fe4f99a,0,1,7078977f-31bf-427e-ac37-e309d81fe999,7078977f-31bf-427e-ac37-e309d81fe999,0,1,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,0,1,d8854555-9e15-4d82-a1fd-656a848a8e8a,d8854555-9e15-4d82-a1fd-656a848a8e8a,0,1,53191842-ea05-4491-84d7-071cd201992d,53191842-ea05-4491-84d7-071cd201992d,0,1,86c70449-4cf7-4baf-9742-b82b134ed929,86c70449-4cf7-4baf-9742-b82b134ed929,0,1,af3b1881-163a-4c07-a1d9-77ceadf59c77,af3b1881-163a-4c07-a1d9-77ceadf59c77,0,1,b78be6fb-7db8-48c8-ba7b-aab1fea34890,b78be6fb-7db8-48c8-ba7b-aab1fea34890,0,1,bd27276a-e80c-4135-b341-f99a816ffe86,bd27276a-e80c-4135-b341-f99a816ffe86,0,1,35306678-147c-4ad1-a3c6-c80a11afa22f,35306678-147c-4ad1-a3c6-c80a11afa22f,0,1,0da75726-ae71-4d83-a696-a774c787a8a2,0da75726-ae71-4d83-a696-a774c787a8a2,0,1,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,0,1,896a7267-0198-4cbb-b6e6-7aa157c0cc61,896a7267-0198-4cbb-b6e6-7aa157c0cc61,0,1,2005bf54-219b-4111-bff1-e12e2c6dca3e,2005bf54-219b-4111-bff1-e12e2c6dca3e,0,1,abab8f73-d705-4350-b44d-f912649a2190,abab8f73-d705-4350-b44d-f912649a2190,0,1,20c9c25c-f8c9-429f-84bd-543cb809abef,20c9c25c-f8c9-429f-84bd-543cb809abef,0,1,dc5f451e-3275-43a8-9f48-45b83220d461,dc5f451e-3275-43a8-9f48-45b83220d461,0,1,028f5e81-61df-4d13-876d-781c5fd18ee6,028f5e81-61df-4d13-876d-781c5fd18ee6,0,1,3cbb59ef-7f64-4590-8a54-ba01e78283c3,3cbb59ef-7f64-4590-8a54-ba01e78283c3,0,1,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,0,1,388eb513-fadb-40cd-8a7b-33b904dd758e,388eb513-fadb-40cd-8a7b-33b904dd758e,0,1,0613c6aa-e1fe-4632-a396-a17ec773158f,0613c6aa-e1fe-4632-a396-a17ec773158f,0,1,1a330987-4c79-4ab7-b250-db8d32c78751,1a330987-4c79-4ab7-b250-db8d32c78751,0,1,555062ed-9a04-41d8-877f-0a667e9a08cd,555062ed-9a04-41d8-877f-0a667e9a08cd,0,1,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,0,1,ac160e1c-fef7-4625-84e0-964b397f6bdb,ac160e1c-fef7-4625-84e0-964b397f6bdb,0,1,b8946d9c-dda8-4b94-8cbf-db62b647c53e,b8946d9c-dda8-4b94-8cbf-db62b647c53e,0,1,24215916-7732-4030-9f88-163f644e94f7,24215916-7732-4030-9f88-163f644e94f7,0,1,69697945-9748-4cea-a20f-e244b46de2e8,69697945-9748-4cea-a20f-e244b46de2e8,0,1,68538fd1-262c-43ea-b09f-8a66643a0062,68538fd1-262c-43ea-b09f-8a66643a0062,0,1,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,0,1,82ad24cc-d9f8-440b-a720-e204101d85da,82ad24cc-d9f8-440b-a720-e204101d85da,0,1,8010065f-aec8-4768-85ec-9eb7b2b01e7e,8010065f-aec8-4768-85ec-9eb7b2b01e7e,0,1,a44348cb-e20c-4afd-8483-3b9c735b352c,a44348cb-e20c-4afd-8483-3b9c735b352c,0,1,ebfe4c74-6e16-4b64-8a52-cea95c446903,ebfe4c74-6e16-4b64-8a52-cea95c446903,0,1,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,0,1,255e55e3-fc3a-4388-8667-486fe3b7557f,255e55e3-fc3a-4388-8667-486fe3b7557f,0,1,d4bfe208-c64c-4088-b33f-98e4cee03444,d4bfe208-c64c-4088-b33f-98e4cee03444,0,1,d912e472-9553-4b96-8b16-7aaff6c14239,d912e472-9553-4b96-8b16-7aaff6c14239,0,1,b04018b5-a74d-43c9-8519-6cc8aa23fe09,b04018b5-a74d-43c9-8519-6cc8aa23fe09,0,1,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,0,1,9283277f-2b75-4c3a-810a-8d4071b3afcc,9283277f-2b75-4c3a-810a-8d4071b3afcc,0,1,d03d5b18-57a2-43c0-99ea-8ad9d5788179,d03d5b18-57a2-43c0-99ea-8ad9d5788179,0,1,c491a7fc-14f9-498a-b7dd-575dfc66878e,c491a7fc-14f9-498a-b7dd-575dfc66878e,0,1,db15f8eb-4736-4b47-9cee-3e6883f0888c,db15f8eb-4736-4b47-9cee-3e6883f0888c,0,1,59064eb2-2770-4f1c-96bd-801926fe68ef,59064eb2-2770-4f1c-96bd-801926fe68ef,0,1,6b2340d7-687f-43a3-8eb8-8ddb86712466,6b2340d7-687f-43a3-8eb8-8ddb86712466,0,1,ca5d586f-81bb-40ee-b3bd-de854857c984,ca5d586f-81bb-40ee-b3bd-de854857c984,0,1,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,0,1,ee7d970c-cef7-4740-a357-1fe78f88a6e6,ee7d970c-cef7-4740-a357-1fe78f88a6e6,0,1,73f89524-dbe8-426f-8ee6-1277eb1967cc,73f89524-dbe8-426f-8ee6-1277eb1967cc,0,1,6733f1bd-7878-4a33-8995-c07526e87c1a,6733f1bd-7878-4a33-8995-c07526e87c1a,0,1,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,0,1,ec34befe-3c0b-4a75-b943-840c52e7dda5,ec34befe-3c0b-4a75-b943-840c52e7dda5,0,1,0b7c4cb7-5126-4b5e-8941-cd56eaef76a0,0b7c4cb7-5126-4b5e-8941-cd56eaef76a0,0,1,40b08a20-51a3-438b-ba54-466917ea809f,40b08a20-51a3-438b-ba54-466917ea809f,0,1,0e0670d6-d8f7-4728-bd1b-f016fffa0570,0e0670d6-d8f7-4728-bd1b-f016fffa0570,0,1,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,0,1,144d5498-bb61-4bec-bef3-85a5a4aec3d5,144d5498-bb61-4bec-bef3-85a5a4aec3d5,0,1,ff18803b-4c3a-4720-a718-7547f04c6e2f,ff18803b-4c3a-4720-a718-7547f04c6e2f,0,1,9328da5c-4689-4a60-8136-ae9eac46ab38,9328da5c-4689-4a60-8136-ae9eac46ab38,0,1,42641296-64da-46e0-a407-de2d492f9c90,42641296-64da-46e0-a407-de2d492f9c90,0,1,b834af0b-086c-445d-a271-7e178c324551,b834af0b-086c-445d-a271-7e178c324551,0,1,32c10512-7bb8-423b-9503-ab2fa41386a4,32c10512-7bb8-423b-9503-ab2fa41386a4,0,1,888edfc4-8140-4675-b267-c32bf1d8d29d,888edfc4-8140-4675-b267-c32bf1d8d29d,0,1,a53f6e85-fbf7-4fb1-9301-d63e812fe16c,a53f6e85-fbf7-4fb1-9301-d63e812fe16c,0,1,57a0f5f3-6573-4b35-af25-cea3a25641f1,57a0f5f3-6573-4b35-af25-cea3a25641f1,0,1,21d296a1-6809-4ff6-a4da-b455cad86cc2,21d296a1-6809-4ff6-a4da-b455cad86cc2,0,1,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,0,1,45a8c780-c067-40d7-bbe9-81f854aacf7a,45a8c780-c067-40d7-bbe9-81f854aacf7a,0,1,57885cac-059a-4a08-aa2c-43b116d2c777,57885cac-059a-4a08-aa2c-43b116d2c777,0,1,56b570b1-93b0-468a-9672-9c71113753f3,56b570b1-93b0-468a-9672-9c71113753f3,0,1,e7b0ae70-0192-456c-9dc5-e66049fa9df2,e7b0ae70-0192-456c-9dc5-e66049fa9df2,0,1,68944d09-618e-4fa3-a7af-8c84218e0ac7,68944d09-618e-4fa3-a7af-8c84218e0ac7,0,1,91b12ce3-e8ba-4c9d-9daa-1d5532500314,91b12ce3-e8ba-4c9d-9daa-1d5532500314,0,1,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,0,1,cb57aabc-eeef-42b4-9bc2-873cebd9618c,cb57aabc-eeef-42b4-9bc2-873cebd9618c,0,1,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,0,1,52f30ed7-aa16-4ce2-9684-e50229ab0015,52f30ed7-aa16-4ce2-9684-e50229ab0015,0,1,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,0,1,0526492c-be48-4c84-8d68-19fa1c7e9d6e,0526492c-be48-4c84-8d68-19fa1c7e9d6e,0,1,54ecaf7b-9bc5-483c-96e1-270bcd323590,54ecaf7b-9bc5-483c-96e1-270bcd323590,0,1,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,0,1,58f6f8fa-7473-40f5-973a-6279335d8f33,58f6f8fa-7473-40f5-973a-6279335d8f33,0,1,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,0,1,fa3632fe-185b-49aa-85ae-dfb721835d40,fa3632fe-185b-49aa-85ae-dfb721835d40,0,1,a4f15108-477c-465e-aaea-cb495ef52cf5,a4f15108-477c-465e-aaea-cb495ef52cf5,0,1,9cda5c2c-f401-4f63-b445-cef160296e48,9cda5c2c-f401-4f63-b445-cef160296e48,0,1,e8ae4a26-3127-43ae-af7a-c2e278d2611d,e8ae4a26-3127-43ae-af7a-c2e278d2611d,0,1,b923c78f-d074-41b4-b832-086686258f19,b923c78f-d074-41b4-b832-086686258f19,0,1,8ff96413-6fdd-4b8d-a181-ea0d8633defc,8ff96413-6fdd-4b8d-a181-ea0d8633defc,0,1,54604ed2-766b-4308-b99e-447817d82799,54604ed2-766b-4308-b99e-447817d82799,0,1,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,0,1,f48b4475-2cd9-41df-962a-6529f84985ca,f48b4475-2cd9-41df-962a-6529f84985ca,0,1,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,0,1,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,0,1,bf94feb9-edf7-4df8-b5f5-805613663a0a,bf94feb9-edf7-4df8-b5f5-805613663a0a,0,1,6d852a13-c85e-4e84-8396-f91c1ed0596e,6d852a13-c85e-4e84-8396-f91c1ed0596e,0,1,9c2d5313-a4fd-417e-a340-ad4980d0028b,9c2d5313-a4fd-417e-a340-ad4980d0028b,0,1,4fb4a280-9426-4c41-a9ba-11f9d01a0740,4fb4a280-9426-4c41-a9ba-11f9d01a0740,0,1,1591ee7e-870c-4bf7-9450-be84f1b2506f,1591ee7e-870c-4bf7-9450-be84f1b2506f,0,1,9a8578a2-8a92-4ab3-a480-173340f8b34a,9a8578a2-8a92-4ab3-a480-173340f8b34a,0,1,4ebf0988-ccc3-440c-bd0f-2d01636bd730,4ebf0988-ccc3-440c-bd0f-2d01636bd730,0,1,69f42341-268b-4e74-9d6d-527800d018ab,69f42341-268b-4e74-9d6d-527800d018ab,0,1,ca6ecedc-f4c5-4c14-8a02-6255ce45033a,ca6ecedc-f4c5-4c14-8a02-6255ce45033a,0,1,7eb5217f-684d-4a9e-8aef-48cedc809cbb,7eb5217f-684d-4a9e-8aef-48cedc809cbb,0,1,1c90a423-ef1b-42dc-a43b-1fda89672481,1c90a423-ef1b-42dc-a43b-1fda89672481,0,1,095cf2d6-5a7c-452d-8d60-991afb6e52bd,095cf2d6-5a7c-452d-8d60-991afb6e52bd,0,1,2c155a03-2aff-4632-adb2-be3266e0fac3,2c155a03-2aff-4632-adb2-be3266e0fac3,0,1,f9213a70-bfd6-464f-b28b-ed35bdf351c0,f9213a70-bfd6-464f-b28b-ed35bdf351c0,0,1,eb81610a-eb2f-4068-ba74-75e0f5bbace8,eb81610a-eb2f-4068-ba74-75e0f5bbace8,0,1,ca5957af-69c9-4640-b9a9-b241c4f9eaa7,ca5957af-69c9-4640-b9a9-b241c4f9eaa7,0,1,21826316-0b49-4034-a49e-6d34c15ceb5c,21826316-0b49-4034-a49e-6d34c15ceb5c,0,1,3abffa47-8d47-4173-897b-708e1a06ef39,3abffa47-8d47-4173-897b-708e1a06ef39,0,1,0cf3d615-76a1-428d-9d25-0d7fdf09e4ae,0cf3d615-76a1-428d-9d25-0d7fdf09e4ae,0,1,5a398637-a06c-4442-9093-a864fa7f049f,5a398637-a06c-4442-9093-a864fa7f049f,0,1,38692186-a62a-42d1-87cd-7dbc6d4816ed,38692186-a62a-42d1-87cd-7dbc6d4816ed,0,1,6cfcdb89-ccb2-45fe-a7b1-5a29ccd6c5ae,6cfcdb89-ccb2-45fe-a7b1-5a29ccd6c5ae,0,1,3a28cea9-7fd7-4834-ab89-2a74331a64e3,3a28cea9-7fd7-4834-ab89-2a74331a64e3,0,1,0f881709-4520-4f18-af9d-cf08757693ff,0f881709-4520-4f18-af9d-cf08757693ff,0,1,c5151ca9-5103-42b2-8573-273c15416db8,c5151ca9-5103-42b2-8573-273c15416db8,0,1,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,0,1,ba8c43ad-678a-4b18-8bbe-5a1b12d19b74,ba8c43ad-678a-4b18-8bbe-5a1b12d19b74,0,1,115a6019-ef87-4126-8ebf-070c1e882940,115a6019-ef87-4126-8ebf-070c1e882940,0,1,162ce023-b2e1-41dc-bcaf-b8e30caccce0,162ce023-b2e1-41dc-bcaf-b8e30caccce0,0,1,52bdd3cc-7103-4dbf-a3c3-dd46cf03da12,52bdd3cc-7103-4dbf-a3c3-dd46cf03da12,0,1,c13fb1cd-fe72-48a6-b383-55b6323619ce,c13fb1cd-fe72-48a6-b383-55b6323619ce,0,1,956fc8ee-96be-4309-b1e8-209372f151ab,956fc8ee-96be-4309-b1e8-209372f151ab,0,1,526c688e-a4d4-45f7-8bba-b8ceff38fe27,526c688e-a4d4-45f7-8bba-b8ceff38fe27,0,1,7e32c295-a769-4cff-a3eb-992f7031475f,7e32c295-a769-4cff-a3eb-992f7031475f,0,1,67efa786-312f-4c9c-b970-0320e92069af,67efa786-312f-4c9c-b970-0320e92069af,0,1,12f85e09-1190-4483-b531-630ab718db7f,12f85e09-1190-4483-b531-630ab718db7f,0,1,52f4453e-e968-4290-a79a-470f68fbd07f,52f4453e-e968-4290-a79a-470f68fbd07f,0,1,5b952e35-1037-4447-8293-6d8889692c8b,5b952e35-1037-4447-8293-6d8889692c8b,1,0,33e0072d-7d5b-4298-ae77-31a7cb358f5d,33e0072d-7d5b-4298-ae77-31a7cb358f5d,1,0,1051c0c7-1058-427c-8bf5-5e30b8fbfb54,1051c0c7-1058-427c-8bf5-5e30b8fbfb54,1,0,b27688c3-6682-45e1-a03f-0d2e8b1214e4,b27688c3-6682-45e1-a03f-0d2e8b1214e4,0,1,05bc8b4e-8c90-4502-8b16-7b1e7625d569,05bc8b4e-8c90-4502-8b16-7b1e7625d569,0,1,ce34d88d-3017-4197-a962-ea23a6a96d32,ce34d88d-3017-4197-a962-ea23a6a96d32,0,1,2cbc16da-aa67-4ad6-82f8-fa6922447be6,2cbc16da-aa67-4ad6-82f8-fa6922447be6,0,1,19d7a1ba-c343-4575-95da-53dac6d4b2cb,19d7a1ba-c343-4575-95da-53dac6d4b2cb,0,1,6cc8b3a0-3377-4b39-b6b0-69c862a15465,6cc8b3a0-3377-4b39-b6b0-69c862a15465,0,1,acb193f4-52e5-4572-a79b-b825a2f6525f,acb193f4-52e5-4572-a79b-b825a2f6525f,0,1,5d46f719-e468-48e2-b4ec-acb85c710451,5d46f719-e468-48e2-b4ec-acb85c710451,0,1,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,0,1,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,0,1,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,0,1,04055821-03ce-4049-af2c-8670c80517f6,04055821-03ce-4049-af2c-8670c80517f6,0,1,0101305d-62eb-4802-9cd4-d615a518d842,0101305d-62eb-4802-9cd4-d615a518d842,0,1,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,0,1,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,0,1,7c424424-9660-462d-9cf2-4c1e6bd284fa,7c424424-9660-462d-9cf2-4c1e6bd284fa,0,1,e118f957-ab2c-473b-ab64-37032f727416,e118f957-ab2c-473b-ab64-37032f727416,0,1,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,0,1,21f64e5f-dc94-4ce9-b836-e75646ae3325,21f64e5f-dc94-4ce9-b836-e75646ae3325,0,1,82e8a180-f2e1-406c-9609-89d33504aff2,82e8a180-f2e1-406c-9609-89d33504aff2,0,1,e7437c81-3d5b-466e-880c-8febe4a68e88,e7437c81-3d5b-466e-880c-8febe4a68e88,0,1,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,0,1,307771e6-bcf7-4016-b369-e1655bbe9e94,307771e6-bcf7-4016-b369-e1655bbe9e94,0,1,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,0,1,38fc6a54-846c-40b0-9254-3261f540bf18,38fc6a54-846c-40b0-9254-3261f540bf18,0,1,d9134d0c-56cd-4b8f-ab11-ae37fc306801,d9134d0c-56cd-4b8f-ab11-ae37fc306801,0,1,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,0,1,8f2af24b-f5fa-4f6d-831e-28453bdedefc,8f2af24b-f5fa-4f6d-831e-28453bdedefc,0,1,d119e21d-0087-4f22-b3bd-b14707b65330,d119e21d-0087-4f22-b3bd-b14707b65330,0,1,dc9b4072-11de-40fe-bf2a-f7b15af0a250,dc9b4072-11de-40fe-bf2a-f7b15af0a250,0,1,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,0,1,932b1c1a-72eb-49cd-8218-d0ced9c454d8,932b1c1a-72eb-49cd-8218-d0ced9c454d8,0,1,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,0,1,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,0,1,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,0,1,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,0,1,5dd336c4-88c5-4f53-acf0-5f86a658c528,5dd336c4-88c5-4f53-acf0-5f86a658c528,0,1,c723112b-286d-46f1-989d-81252062a025,c723112b-286d-46f1-989d-81252062a025,0,1,67e8b47e-4bad-4b2f-b196-8a9708893051,67e8b47e-4bad-4b2f-b196-8a9708893051,0,1,a583e53a-3f3c-48c7-8928-37ce40b2bafe,a583e53a-3f3c-48c7-8928-37ce40b2bafe,0,1,a844dd4a-274a-4894-9446-031dbe006084,a844dd4a-274a-4894-9446-031dbe006084,0,1,9a740f81-5437-47af-8ed9-ea62edcb2ea1,9a740f81-5437-47af-8ed9-ea62edcb2ea1,0,1,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,0,1,7092a5d4-620b-4ad2-bce4-f099da694100,7092a5d4-620b-4ad2-bce4-f099da694100,0,1,31b3e718-d0b2-425b-b8af-67bc407eab56,31b3e718-d0b2-425b-b8af-67bc407eab56,0,1,77bdd30f-4933-4bda-9c7a-b0a097da0910,77bdd30f-4933-4bda-9c7a-b0a097da0910,0,1,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,0,1,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,0,1,a682e9e1-284f-4e32-86b2-6736f159f585,a682e9e1-284f-4e32-86b2-6736f159f585,0,1,84f0bd89-9b86-440f-b942-9b685e22233e,84f0bd89-9b86-440f-b942-9b685e22233e,0,1,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,0,1,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,0,1,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,0,1,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,0,1,fabf8a0b-366f-4f23-9377-315534bb854b,fabf8a0b-366f-4f23-9377-315534bb854b,0,1,7aac6439-64c9-4492-b866-bf91dda82d06,7aac6439-64c9-4492-b866-bf91dda82d06,0,1,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,0,1,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,0,1,08b86f29-64ef-467a-af1a-d27ffdf621ba,08b86f29-64ef-467a-af1a-d27ffdf621ba,0,1,6483d1ab-c53d-4985-ad7e-b799adbcd9da,6483d1ab-c53d-4985-ad7e-b799adbcd9da,0,1,82f66233-ed13-49ae-ab72-7cf91c88c760,82f66233-ed13-49ae-ab72-7cf91c88c760,0,1,75cddbcd-e960-4164-81d8-ac0a2a36e95b,75cddbcd-e960-4164-81d8-ac0a2a36e95b,0,1,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,0,1,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,0,1,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,0,1,e589a693-ff50-4c36-ae26-a8fcae966d57,e589a693-ff50-4c36-ae26-a8fcae966d57,0,1,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,0,1,90f023f5-5b48-4f98-bfc6-b704277a355d,90f023f5-5b48-4f98-bfc6-b704277a355d,0,1,99485603-706d-4301-be25-82b1c0ee8f4d,99485603-706d-4301-be25-82b1c0ee8f4d,0,1,e7a28021-c75e-41b2-9974-cf4beee34d28,e7a28021-c75e-41b2-9974-cf4beee34d28,0,1,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,0,1,2a603c61-4cbf-4c6d-a0b2-40c835d36737,2a603c61-4cbf-4c6d-a0b2-40c835d36737,0,1,a8d7f071-401b-499e-957c-d077d8002e54,a8d7f071-401b-499e-957c-d077d8002e54,0,1,211a539b-4be9-4816-98f6-f756e65eafd8,211a539b-4be9-4816-98f6-f756e65eafd8,0,1,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,0,1,e9b9da80-7806-4c9c-a002-01cfa3109169,e9b9da80-7806-4c9c-a002-01cfa3109169,0,1,a271041d-0203-4ecd-bb39-70256c50192e,a271041d-0203-4ecd-bb39-70256c50192e,0,1,9eacd816-d416-4bf9-9cc7-a62394031517,9eacd816-d416-4bf9-9cc7-a62394031517,0,1,6c055aa0-3d9f-42a0-95bb-10ad0a513b9c,6c055aa0-3d9f-42a0-95bb-10ad0a513b9c,1,0,73eff626-a363-4a5a-879e-61ef6ce0726f,73eff626-a363-4a5a-879e-61ef6ce0726f,1,0,acf15b79-a6c4-4c46-8013-50d3b223baf6,acf15b79-a6c4-4c46-8013-50d3b223baf6,1,0,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,1,0,2d8d5d74-2bc0-4282-af66-e4a37694c147,2d8d5d74-2bc0-4282-af66-e4a37694c147,1,0,cfd31341-287b-4684-9ac0-b28b4e066f15,cfd31341-287b-4684-9ac0-b28b4e066f15,1,0,f829e2a9-5bdb-4171-8b32-8d10d5968813,f829e2a9-5bdb-4171-8b32-8d10d5968813,1,0,647ba8f8-57f7-4c19-af59-525517c1e392,647ba8f8-57f7-4c19-af59-525517c1e392,1,0,39062cb3-4ae8-4c0d-889b-038a55179946,39062cb3-4ae8-4c0d-889b-038a55179946,1,0,c62d4212-36ca-4afb-bac9-269b6f64ca51,c62d4212-36ca-4afb-bac9-269b6f64ca51,1,0,5cec5e16-46ad-4f8c-b869-f5b1cc487884,5cec5e16-46ad-4f8c-b869-f5b1cc487884,1,0,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,1,0,7aacdf81-49fd-47a3-a36a-c483f1b05872,7aacdf81-49fd-47a3-a36a-c483f1b05872,1,0,857015e2-afb2-403d-bfb7-7acb5080797b,857015e2-afb2-403d-bfb7-7acb5080797b,1,0,5657286b-114b-41de-ab7d-45d0f0d95e2d,5657286b-114b-41de-ab7d-45d0f0d95e2d,1,0,42a0271e-6783-44db-95c1-09805ae01f58,42a0271e-6783-44db-95c1-09805ae01f58,1,0,8628783e-4fad-4dff-8220-9e0ddc8580f8,8628783e-4fad-4dff-8220-9e0ddc8580f8,1,0,356fc245-3034-42d1-84d0-632c6dc7a3d5,356fc245-3034-42d1-84d0-632c6dc7a3d5,1,0,07462664-6b58-4f5a-9b3f-2e5c376f17df,07462664-6b58-4f5a-9b3f-2e5c376f17df,1,0,6f23e946-f700-424b-b9bf-3a9c8846908d,6f23e946-f700-424b-b9bf-3a9c8846908d,1,0,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,1,0,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,1,0,07d0d6e9-e0a7-4543-9668-3850c1e0a15c,07d0d6e9-e0a7-4543-9668-3850c1e0a15c,1,0,c656771c-dcb7-4c78-9a16-e62806d5bb5a,c656771c-dcb7-4c78-9a16-e62806d5bb5a,1,0,ec42c45c-18ca-44b0-9c59-1cb204552a43,ec42c45c-18ca-44b0-9c59-1cb204552a43,1,0,2aafb1a1-4321-47e9-9783-03ab616a2873,2aafb1a1-4321-47e9-9783-03ab616a2873,1,0,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,1,0,427e6f15-334e-42be-9554-895d8f7ebfc6,427e6f15-334e-42be-9554-895d8f7ebfc6,1,0,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,1,0,36bc8523-41a5-48ff-9bd0-758d078c4408,36bc8523-41a5-48ff-9bd0-758d078c4408,1,0,94ca1b45-3cf0-4857-8299-999c93f4fb56,94ca1b45-3cf0-4857-8299-999c93f4fb56,1,0,ee8419c6-79ca-4546-9a66-bacaa08d2a73,ee8419c6-79ca-4546-9a66-bacaa08d2a73,1,0,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,1,0,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,1,0,a915df5f-7330-4fc3-aecd-08d228b8fd23,a915df5f-7330-4fc3-aecd-08d228b8fd23,1,0,ada11ea2-94d5-4172-a383-a51774599568,ada11ea2-94d5-4172-a383-a51774599568,1,0,1ea080b0-0a11-4152-b8bb-4918bc142a23,1ea080b0-0a11-4152-b8bb-4918bc142a23,1,0,6e20df72-c643-4952-8f9c-f386d2915004,6e20df72-c643-4952-8f9c-f386d2915004,1,0,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,1,0,0e5074b0-bc15-416d-9c87-dad6824186e1,0e5074b0-bc15-416d-9c87-dad6824186e1,1,0,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,1,0,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,1,0,2e9fa546-96fb-4ecb-b933-7921e131e89b,2e9fa546-96fb-4ecb-b933-7921e131e89b,1,0,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,1,0,637a132b-1a88-44ba-b45f-ed4ed1ac1001,637a132b-1a88-44ba-b45f-ed4ed1ac1001,1,0,699f734b-43d2-4351-bff8-e0e21e164a42,699f734b-43d2-4351-bff8-e0e21e164a42,1,0,95f0792a-7ac4-450a-b05c-219741e61abd,95f0792a-7ac4-450a-b05c-219741e61abd,1,0,742a2e8c-496e-4e02-931d-d33f7afe07a5,742a2e8c-496e-4e02-931d-d33f7afe07a5,1,0,c3efa853-cd29-4618-929f-e3bec33dfd65,c3efa853-cd29-4618-929f-e3bec33dfd65,1,0,495e2c77-4868-4191-ac18-f94e55a5982e,495e2c77-4868-4191-ac18-f94e55a5982e,1,0,20191a65-322c-457d-85f5-ed1258b6fe8e,20191a65-322c-457d-85f5-ed1258b6fe8e,1,0,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,1,0,769c60aa-44f4-4c98-a461-d3f5c2b67f61,769c60aa-44f4-4c98-a461-d3f5c2b67f61,1,0,f9809c99-0eaa-4249-967c-a4bef4763277,f9809c99-0eaa-4249-967c-a4bef4763277,1,0,37fa88a0-f2c1-455f-a28d-74165e8b933d,37fa88a0-f2c1-455f-a28d-74165e8b933d,1,0,e4476f09-909b-49f7-8e01-72eea8ceaca6,e4476f09-909b-49f7-8e01-72eea8ceaca6,1,0,2861412c-46f0-454e-b81d-fe081afb5c7a,2861412c-46f0-454e-b81d-fe081afb5c7a,1,0,abacbda3-b4c1-446b-95e7-a45adec16174,abacbda3-b4c1-446b-95e7-a45adec16174,1,0,2b4ece05-b694-42e9-8239-55722fd84294,2b4ece05-b694-42e9-8239-55722fd84294,1,0,0d743731-da5d-4c99-b19f-e93c69b77e14,0d743731-da5d-4c99-b19f-e93c69b77e14,1,0,91a7a0f7-19e8-43d1-935c-e9bd1ac24d03,91a7a0f7-19e8-43d1-935c-e9bd1ac24d03,1,0,d6f15367-23e2-4766-bc7c-8acd0063aa0c,d6f15367-23e2-4766-bc7c-8acd0063aa0c,1,0,868da26b-f32e-48d1-a647-44dac7520d86,868da26b-f32e-48d1-a647-44dac7520d86,1,0,3d315df6-e000-4cbd-810d-0b26c0d1bc54,3d315df6-e000-4cbd-810d-0b26c0d1bc54,1,0,fa429302-ccaf-4c89-8a11-3a1d30817c00,fa429302-ccaf-4c89-8a11-3a1d30817c00,1,0,9b4c49ce-93da-439a-8d67-f3774e92800a,9b4c49ce-93da-439a-8d67-f3774e92800a,1,0,5f8fa827-7017-4b45-b458-3571b8b611f5,5f8fa827-7017-4b45-b458-3571b8b611f5,1,0,79749167-2912-4e06-9deb-7915a1b4390d,79749167-2912-4e06-9deb-7915a1b4390d,1,0,1c93fcd3-53a1-403f-a30b-454fbc941d55,1c93fcd3-53a1-403f-a30b-454fbc941d55,1,0,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,1,0,adec3963-b22f-4463-a3f4-c9ec27d187a8,adec3963-b22f-4463-a3f4-c9ec27d187a8,1,0,d8dae0c8-8e11-44bf-bf60-d316220f3e82,d8dae0c8-8e11-44bf-bf60-d316220f3e82,1,0,12afec4d-1728-4aa8-86e5-23cd2f1572b3,12afec4d-1728-4aa8-86e5-23cd2f1572b3,1,0,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,1,0,ee0c3960-d1bf-411f-a51f-e6e27dabea87,ee0c3960-d1bf-411f-a51f-e6e27dabea87,1,0,d7fb9441-1aef-4257-af3f-7f16340ac85e,d7fb9441-1aef-4257-af3f-7f16340ac85e,1,0,d07c094c-2795-4e0c-b030-bdb82be7ba6d,d07c094c-2795-4e0c-b030-bdb82be7ba6d,1,0,62637860-2013-4f9d-9aed-7cbb0dce8983,62637860-2013-4f9d-9aed-7cbb0dce8983,1,0,331217f6-7ec2-425d-93bd-f2979c5f2e05,331217f6-7ec2-425d-93bd-f2979c5f2e05,1,0,457578ab-dfe2-4419-8d8a-64283b341f42,457578ab-dfe2-4419-8d8a-64283b341f42,1,0,67ef6671-f537-46bf-88e6-f5bcf34a17a4,67ef6671-f537-46bf-88e6-f5bcf34a17a4,1,0,de778ca7-feaf-4531-80ae-11a534c56928,de778ca7-feaf-4531-80ae-11a534c56928,1,0,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,1,0,0a76a84d-e883-477e-8b87-7bf984cdc1cf,0a76a84d-e883-477e-8b87-7bf984cdc1cf,1,0,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,1,0,86df8648-e195-4661-99ee-6052788eb276,86df8648-e195-4661-99ee-6052788eb276,1,0,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,1,0,35133725-9647-42dc-a76a-2e62b2918ac4,35133725-9647-42dc-a76a-2e62b2918ac4,1,0,fa9572ee-0303-4421-9125-70cf3dd5a8c7,fa9572ee-0303-4421-9125-70cf3dd5a8c7,1,0,4cdd7920-0c49-4950-b92f-fdf6e34578b2,4cdd7920-0c49-4950-b92f-fdf6e34578b2,1,0,0af48650-5fef-4a5b-8ac8-38a9ded23bd4,0af48650-5fef-4a5b-8ac8-38a9ded23bd4,1,0,df042e4e-01a6-4480-a9c5-c0d7a454bb41,df042e4e-01a6-4480-a9c5-c0d7a454bb41,1,0,bad3d1fa-9618-427a-93e0-90f151e468bf,bad3d1fa-9618-427a-93e0-90f151e468bf,1,0,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,1,0,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,1,0,ec7cfc56-00fd-4494-be90-49308a3c34a0,ec7cfc56-00fd-4494-be90-49308a3c34a0,1,0,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,1,0,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,1,0,719cdbdd-13b3-44fc-8739-0b788693a8d0,719cdbdd-13b3-44fc-8739-0b788693a8d0,1,0,88618d0f-97af-4055-a490-561d4b8065a7,88618d0f-97af-4055-a490-561d4b8065a7,1,0,5de9fbf9-f075-4acf-b9f9-89688d2006af,5de9fbf9-f075-4acf-b9f9-89688d2006af,1,0,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,1,0,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,1,0,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,1,0,09502176-c53d-4525-b8ed-32d0a2e21a5d,09502176-c53d-4525-b8ed-32d0a2e21a5d,1,0,75ad984e-d41f-4591-b207-e8a4b05757a7,75ad984e-d41f-4591-b207-e8a4b05757a7,1,0,3f020f90-7aeb-4b21-ad71-4572ac796d4c,3f020f90-7aeb-4b21-ad71-4572ac796d4c,1,0,759e2ba0-2941-4cc1-8409-50b8a3620058,759e2ba0-2941-4cc1-8409-50b8a3620058,1,0,491cf25d-091e-4e09-b145-92d7073326cf,491cf25d-091e-4e09-b145-92d7073326cf,1,0,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,1,0,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,1,0,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,1,0,900bc96e-fbcc-473e-970c-96f561420f8e,900bc96e-fbcc-473e-970c-96f561420f8e,1,0,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,1,0,21d5a0b0-9a2b-4989-a50a-781645513179,21d5a0b0-9a2b-4989-a50a-781645513179,1,0,22df0fa4-cb1c-45a2-bcce-d32ed44e462a,22df0fa4-cb1c-45a2-bcce-d32ed44e462a,1,0,d97c6204-3656-4591-aea9-6ebedffe1247,d97c6204-3656-4591-aea9-6ebedffe1247,1,0,7caabe33-184f-45db-bef4-59d4e9cd2394,7caabe33-184f-45db-bef4-59d4e9cd2394,1,0,3255033a-e922-412e-a825-a3e8bd284703,3255033a-e922-412e-a825-a3e8bd284703,1,0,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1,0,f250f992-ad5a-4dab-ad38-240604adb0c4,f250f992-ad5a-4dab-ad38-240604adb0c4,1,0,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,1,0,e63671f6-c96d-4ea4-8300-af7dbd0d016f,e63671f6-c96d-4ea4-8300-af7dbd0d016f,1,0,2c511469-0df6-470f-a808-decb275e8b1a,2c511469-0df6-470f-a808-decb275e8b1a,1,0,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1,0,99b40f9f-f8f1-4779-8afc-59d30612f3d6,99b40f9f-f8f1-4779-8afc-59d30612f3d6,1,0,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,1,0,cb6d4979-2d70-4ceb-af08-deb2b19daf14,cb6d4979-2d70-4ceb-af08-deb2b19daf14,1,0,7bbd0835-b3e9-40cb-a424-670828b60bbb,7bbd0835-b3e9-40cb-a424-670828b60bbb,1,0,3e2138ea-48f9-4a60-8f22-53933bea49db,3e2138ea-48f9-4a60-8f22-53933bea49db,1,0,16bda2eb-eab8-4230-b89f-517fb943e009,16bda2eb-eab8-4230-b89f-517fb943e009,1,0,00964512-297f-4b8b-8def-8e4fc0eba991,00964512-297f-4b8b-8def-8e4fc0eba991,1,0,4185fea3-baba-4ba5-8019-9023b3011d4d,4185fea3-baba-4ba5-8019-9023b3011d4d,1,0,ea790035-92d6-445e-9fa3-08e565634d2b,ea790035-92d6-445e-9fa3-08e565634d2b,1,0,cce8900a-51eb-487d-b380-227d1b9d3943,cce8900a-51eb-487d-b380-227d1b9d3943,1,0,c043c36c-90c6-483b-bc20-7c2d85109b90,c043c36c-90c6-483b-bc20-7c2d85109b90,1,0,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,1,0,91d2d40a-c271-412c-b344-1fc98b94ba21,91d2d40a-c271-412c-b344-1fc98b94ba21,1,0,7ce47046-aee8-4809-bac9-a98930a844e1,7ce47046-aee8-4809-bac9-a98930a844e1,1,0,f480b8b9-ecec-4207-a0aa-12c5be4c2250,f480b8b9-ecec-4207-a0aa-12c5be4c2250,1,0,32717d25-6644-4903-8950-03e4c9b1a8fe,32717d25-6644-4903-8950-03e4c9b1a8fe,1,0,3644d8f3-db88-4fce-a851-39c115acfe03,3644d8f3-db88-4fce-a851-39c115acfe03,1,0,837e4559-2f2d-48e9-a03b-2d52b25569ec,837e4559-2f2d-48e9-a03b-2d52b25569ec,1,0,4653da74-34b2-47b9-ad88-efd761d6f1e9,4653da74-34b2-47b9-ad88-efd761d6f1e9,1,0,b0cd056f-c601-4d07-89c4-f7137b88bab6,b0cd056f-c601-4d07-89c4-f7137b88bab6,1,0,3660618a-0cab-458f-b448-867c4d1aba1b,3660618a-0cab-458f-b448-867c4d1aba1b,1,0,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,1,0,22f34fd5-4bda-48c1-8772-74d9c6479a30,22f34fd5-4bda-48c1-8772-74d9c6479a30,1,0,88b22e62-c144-401f-9635-3fb4d914772e,88b22e62-c144-401f-9635-3fb4d914772e,1,0,efeb2914-6604-403a-a11e-5cb995ab2bc9,efeb2914-6604-403a-a11e-5cb995ab2bc9,1,0,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,1,0,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,1,0,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,1,0,de506523-241a-4845-9259-37066afbf16a,de506523-241a-4845-9259-37066afbf16a,1,0,0510206f-eef0-4a5e-aeb7-d53c26d34adb,0510206f-eef0-4a5e-aeb7-d53c26d34adb,1,0,e616e007-43e7-4740-a083-b85f5435718a,e616e007-43e7-4740-a083-b85f5435718a,1,0,727da5b1-e054-4832-8e44-f5d5e56f52e5,727da5b1-e054-4832-8e44-f5d5e56f52e5,1,0,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,1,0,6feaad7c-9680-4341-b215-14581e2e2b37,6feaad7c-9680-4341-b215-14581e2e2b37,1,0,d5656a92-adfb-4733-830d-2b1565798b1f,d5656a92-adfb-4733-830d-2b1565798b1f,1,0,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,1,0,b0f6ea83-2849-4151-930d-692866919db3,b0f6ea83-2849-4151-930d-692866919db3,1,0,05558ce4-8568-4009-b1d7-307d54967515,05558ce4-8568-4009-b1d7-307d54967515,1,0,74380324-9b7b-49f6-9458-88deb9405f98,74380324-9b7b-49f6-9458-88deb9405f98,1,0,5286ceb2-0f16-4d70-ad89-dc15a308bb8d,5286ceb2-0f16-4d70-ad89-dc15a308bb8d,1,0,0abf70e0-0d81-4d85-a288-a2134da5fbf1,0abf70e0-0d81-4d85-a288-a2134da5fbf1,1,0,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,1,0,f66cb2da-3b3c-481f-823a-506f8290f619,f66cb2da-3b3c-481f-823a-506f8290f619,1,0,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,1,0,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,1,0,0bdcf045-5132-4a68-839c-a30515dc569e,0bdcf045-5132-4a68-839c-a30515dc569e,1,0,683861f9-9a5f-47db-8b03-959f839d5a3a,683861f9-9a5f-47db-8b03-959f839d5a3a,1,0,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,1,0,125be5bf-f410-451d-aa96-22fabc6a4d8a,125be5bf-f410-451d-aa96-22fabc6a4d8a,1,0,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,1,0,f942d212-9be0-4d80-84b6-5b63070e33e4,f942d212-9be0-4d80-84b6-5b63070e33e4,1,0,64c91eaa-084f-4801-8dbf-4e075c689c2b,64c91eaa-084f-4801-8dbf-4e075c689c2b,1,0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,1,0,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,1,0,3aa12805-823a-439b-b039-fb9940aee312,3aa12805-823a-439b-b039-fb9940aee312,1,0,87d53573-f266-4b74-94af-041ae4b6518f,87d53573-f266-4b74-94af-041ae4b6518f,1,0,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,1,0,801cf1f7-2c65-4126-a3e9-b66abfdde67a,801cf1f7-2c65-4126-a3e9-b66abfdde67a,1,0,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,1,0,29c2bc01-8838-4459-8ac2-79862aa1dbc9,29c2bc01-8838-4459-8ac2-79862aa1dbc9,1,0,ad556c33-6811-48b4-ae90-57700a4d3fd6,ad556c33-6811-48b4-ae90-57700a4d3fd6,1,0,6e0833f4-3b57-4a5f-810f-9e2a492335df,6e0833f4-3b57-4a5f-810f-9e2a492335df,1,0,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,1,0,977bc9d8-9843-4343-85af-11a3d91f9966,977bc9d8-9843-4343-85af-11a3d91f9966,1,0,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,1,0,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,1,0,a6582448-734d-4a4c-a32c-c4755ca1bc93,a6582448-734d-4a4c-a32c-c4755ca1bc93,1,0,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,1,0,53327cc4-22b0-40f9-bae7-db483f85901c,53327cc4-22b0-40f9-bae7-db483f85901c,1,0,d826fe6f-d9f6-41f2-8dd6-bd840af25183,d826fe6f-d9f6-41f2-8dd6-bd840af25183,1,0,098d904d-95c9-459e-86d0-357ba9a40191,098d904d-95c9-459e-86d0-357ba9a40191,1,0,2d58033f-e15d-4a91-8165-dd311025c7c4,2d58033f-e15d-4a91-8165-dd311025c7c4,1,0,5e6a6f8f-5cb1-475d-b2d8-f2f143ef7b19,5e6a6f8f-5cb1-475d-b2d8-f2f143ef7b19,1,0,49cb3a36-90b3-4154-b571-265fc5cee21e,49cb3a36-90b3-4154-b571-265fc5cee21e,1,0,7bc5fa42-7d72-433e-8db6-a046b583a316,7bc5fa42-7d72-433e-8db6-a046b583a316,1,0,7da57c89-af2c-445a-96f7-39250f70306f,7da57c89-af2c-445a-96f7-39250f70306f,1,0,b5b94d94-25f7-4cfa-b1e9-6009fb848763,b5b94d94-25f7-4cfa-b1e9-6009fb848763,1,0,a2accf54-5966-42e8-ab2e-e56e415963ee,a2accf54-5966-42e8-ab2e-e56e415963ee,1,0,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,1,0,d8eb5329-5900-4b5d-b45e-458513dddfef,d8eb5329-5900-4b5d-b45e-458513dddfef,1,0,d5afea8a-1b7a-4b23-8ae0-cefa0b937b17,d5afea8a-1b7a-4b23-8ae0-cefa0b937b17,1,0,6ffd2da8-db97-46fc-9a53-8e665a598e3c,6ffd2da8-db97-46fc-9a53-8e665a598e3c,1,0,dfcd90f3-922b-4f53-959c-a36812aba1fd,dfcd90f3-922b-4f53-959c-a36812aba1fd,1,0,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,1,0,27089e8e-2c75-431c-b808-5d4dcba3cdca,27089e8e-2c75-431c-b808-5d4dcba3cdca,1,0,1e97c7ba-b276-4f74-a6fd-99d287912d0f,1e97c7ba-b276-4f74-a6fd-99d287912d0f,1,0,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,1,0,4077e700-ec20-4afa-8155-bf7e516a70cb,4077e700-ec20-4afa-8155-bf7e516a70cb,1,0,10008125-3aeb-4912-8ad6-d92d283ea09a,10008125-3aeb-4912-8ad6-d92d283ea09a,1,0,d22a0a50-220d-459e-a23a-39730a1e67c4,d22a0a50-220d-459e-a23a-39730a1e67c4,1,0,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,0,1,483dfce4-9c66-4739-94d4-17a005d64f5b,483dfce4-9c66-4739-94d4-17a005d64f5b,0,1,19506116-43ef-433c-822c-ef8717b0da6b,19506116-43ef-433c-822c-ef8717b0da6b,0,1,464b92cc-b577-4350-ae9f-e697390248d7,464b92cc-b577-4350-ae9f-e697390248d7,0,1,5a1242c8-3817-4d2c-9bfd-f62a6b80730c,5a1242c8-3817-4d2c-9bfd-f62a6b80730c,0,1,b9be6caf-e5e0-45a9-8cc8-3c83721632a2,b9be6caf-e5e0-45a9-8cc8-3c83721632a2,0,1,97e853dc-065f-4c6d-84cb-3d3aff367b22,97e853dc-065f-4c6d-84cb-3d3aff367b22,0,1,2f1fdf47-2627-496f-9e1f-77019abb2104,2f1fdf47-2627-496f-9e1f-77019abb2104,0,1,c996532a-8795-4136-8a40-9bb4b263277c,c996532a-8795-4136-8a40-9bb4b263277c,0,1,64c77788-fc49-4979-8163-949a891bd8b7,64c77788-fc49-4979-8163-949a891bd8b7,0,1,c39750ca-e33f-40c2-b830-119423d9a2ae,c39750ca-e33f-40c2-b830-119423d9a2ae,0,1,9372ff6b-27b6-48f3-a2a2-762e7c485766,9372ff6b-27b6-48f3-a2a2-762e7c485766,0,1,f454595a-4a3d-451b-8e8b-b17aa8314591,f454595a-4a3d-451b-8e8b-b17aa8314591,0,1,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,0,1,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,0,1,bc708da8-7fc6-4da1-8129-9ef6a86667af,bc708da8-7fc6-4da1-8129-9ef6a86667af,0,1,061842fe-4077-4d6e-aefe-de79409da730,061842fe-4077-4d6e-aefe-de79409da730,0,1,da6e4bff-9835-4b92-b62b-291a5d6c86fe,da6e4bff-9835-4b92-b62b-291a5d6c86fe,0,1,3fadaeb7-2c41-42a4-bfa8-c585602b1028,3fadaeb7-2c41-42a4-bfa8-c585602b1028,0,1,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,0,1,b98dacc7-29e1-426b-a664-0a988f18186c,b98dacc7-29e1-426b-a664-0a988f18186c,0,1,083c709b-ed8c-47e4-a190-421e14259e73,083c709b-ed8c-47e4-a190-421e14259e73,0,1,d678856d-6e7c-443f-a6e3-350bbe8af659,d678856d-6e7c-443f-a6e3-350bbe8af659,0,1,c0d83781-bbda-43f7-bf0e-5defa3d47143,c0d83781-bbda-43f7-bf0e-5defa3d47143,0,1,21fa5fdd-acbc-403b-9acb-bbf95284bd20,21fa5fdd-acbc-403b-9acb-bbf95284bd20,0,1,576a01e3-4d6d-4241-a3c4-7661ba129bcb,576a01e3-4d6d-4241-a3c4-7661ba129bcb,0,1,ff04a476-6697-46c9-ae81-302a80f8e276,ff04a476-6697-46c9-ae81-302a80f8e276,0,1,4a098872-622f-4e72-ba24-6c77eeca41be,4a098872-622f-4e72-ba24-6c77eeca41be,0,1,20ab32cf-1392-4271-a1b7-96f9bd1c4f06,20ab32cf-1392-4271-a1b7-96f9bd1c4f06,0,1,05084ba4-38c6-44bc-b1e4-cbc0130021ba,05084ba4-38c6-44bc-b1e4-cbc0130021ba,0,1,752dc569-cf84-42d7-911d-49d455f7214e,752dc569-cf84-42d7-911d-49d455f7214e,0,1,fecab2b9-27e1-44d6-9082-79c3569b7477,fecab2b9-27e1-44d6-9082-79c3569b7477,0,1,07ae092f-8517-47b7-b54c-5dbcb6506929,07ae092f-8517-47b7-b54c-5dbcb6506929,0,1,db4c25bb-d199-43ec-833d-82972de04a41,db4c25bb-d199-43ec-833d-82972de04a41,0,1,43d19685-0794-41f2-9171-bf565133718d,43d19685-0794-41f2-9171-bf565133718d,0,1,b68c15c4-4966-4f13-8912-2d479b65089a,b68c15c4-4966-4f13-8912-2d479b65089a,0,1,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,1,0,f87e3935-dae1-4192-b6a7-05e3c700c590,f87e3935-dae1-4192-b6a7-05e3c700c590,1,0,ee635706-6ee2-4956-8d58-a235f64687f6,ee635706-6ee2-4956-8d58-a235f64687f6,1,0,a5a40ca7-d665-420b-a516-1355019d6901,a5a40ca7-d665-420b-a516-1355019d6901,0,1,adf9304c-ccf8-492e-95b1-0754764586a2,adf9304c-ccf8-492e-95b1-0754764586a2,0,1,fd175112-ec8f-4088-9b21-d8135056f0c5,fd175112-ec8f-4088-9b21-d8135056f0c5,0,1,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,0,1,df76a1b7-312a-4e77-bac1-79befadb4495,df76a1b7-312a-4e77-bac1-79befadb4495,0,1,7d93a6ba-3ca7-45ab-a540-743c79587535,7d93a6ba-3ca7-45ab-a540-743c79587535,0,1,76b58810-0527-4dfc-8858-bac68e7e65f3,76b58810-0527-4dfc-8858-bac68e7e65f3,0,1,ab39fad8-1039-491e-982a-c49637770ec0,ab39fad8-1039-491e-982a-c49637770ec0,0,1,458e9c6b-b828-404b-be5a-c6c0aeea34c9,458e9c6b-b828-404b-be5a-c6c0aeea34c9,0,1,7262eb4d-2d2d-454c-beaa-974645813af7,7262eb4d-2d2d-454c-beaa-974645813af7,0,1,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,0,1,b2265070-9cd3-4176-92c8-6d9f32c2ca84,b2265070-9cd3-4176-92c8-6d9f32c2ca84,0,1,b347e774-2261-4f76-9bdb-3c6736983589,b347e774-2261-4f76-9bdb-3c6736983589,0,1,be7e2715-1243-49a8-8c7c-55d632d3cf6c,be7e2715-1243-49a8-8c7c-55d632d3cf6c,0,1,49221b2f-aae2-4bee-9a1a-18263fc74244,49221b2f-aae2-4bee-9a1a-18263fc74244,0,1,da0cd264-da2f-4044-af28-c91d2efe1d5c,da0cd264-da2f-4044-af28-c91d2efe1d5c,0,1,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,0,1,e754ad5c-cf3c-4198-af81-128475924cb0,e754ad5c-cf3c-4198-af81-128475924cb0,0,1,ed65d504-b210-4014-85ec-275ad633ef04,ed65d504-b210-4014-85ec-275ad633ef04,0,1,dc31edb1-273e-4b1a-8e69-32393479ff36,dc31edb1-273e-4b1a-8e69-32393479ff36,1,0,5facb8c9-b62f-422f-a02a-62c245b3b332,5facb8c9-b62f-422f-a02a-62c245b3b332,1,0,db9d05b6-2741-42b0-990e-85013380f77c,db9d05b6-2741-42b0-990e-85013380f77c,1,0,a9570d6e-f1b5-406d-97e1-9eac755bebd0,a9570d6e-f1b5-406d-97e1-9eac755bebd0,0,1,766208a3-2780-427b-a7d3-93abe99d236b,766208a3-2780-427b-a7d3-93abe99d236b,0,1,63ce4c3c-5bad-409c-904f-18f34cf1da78,63ce4c3c-5bad-409c-904f-18f34cf1da78,0,1,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,0,1,26ac22f9-0bbb-4671-b446-626e345e2461,26ac22f9-0bbb-4671-b446-626e345e2461,0,1,0d63ee6d-e17f-4a86-b384-adf9793f3331,0d63ee6d-e17f-4a86-b384-adf9793f3331,0,1,c35904cf-4954-434e-96fd-5ca537a88c66,c35904cf-4954-434e-96fd-5ca537a88c66,0,1,5545798f-72dc-4630-a5ba-88039f4bfe3c,5545798f-72dc-4630-a5ba-88039f4bfe3c,0,1,f293ac4b-91ed-4c97-90b3-bfe98c983a0f,f293ac4b-91ed-4c97-90b3-bfe98c983a0f,0,1,6aa819d3-c56d-4561-a2e4-a1188ab1295a,6aa819d3-c56d-4561-a2e4-a1188ab1295a,0,1,2ddf344d-7065-40d5-9306-23870d8fc04a,2ddf344d-7065-40d5-9306-23870d8fc04a,0,1,c630ab2d-0a20-4136-88b6-220b2cad6a71,c630ab2d-0a20-4136-88b6-220b2cad6a71,0,1,00cd1dea-bc54-475c-956d-dc5221104932,00cd1dea-bc54-475c-956d-dc5221104932,0,1,1c38ad75-b294-4c05-89ce-69ce4d9a291f,1c38ad75-b294-4c05-89ce-69ce4d9a291f,0,1,078d1e8f-6d27-4761-9532-b1e7a60e4c13,078d1e8f-6d27-4761-9532-b1e7a60e4c13,0,1,4262193c-58ad-47c6-8088-735d8cd037ea,4262193c-58ad-47c6-8088-735d8cd037ea,0,1,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,0,1,de6d1aad-39eb-46ce-87aa-d29812bb37bf,de6d1aad-39eb-46ce-87aa-d29812bb37bf,0,1,4ad859ec-cc75-4bac-9e89-397798450e48,4ad859ec-cc75-4bac-9e89-397798450e48,0,1,d93ab94c-0f55-4b80-b226-41b44c73b3ea,d93ab94c-0f55-4b80-b226-41b44c73b3ea,0,1,94cbed80-5a35-471f-b354-439a11629210,94cbed80-5a35-471f-b354-439a11629210,0,1,1162cc0a-42e5-47cb-9507-68459579f110,1162cc0a-42e5-47cb-9507-68459579f110,0,1,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,0,1,bb49dc80-4934-4f44-8f27-9a363dca8dc4,bb49dc80-4934-4f44-8f27-9a363dca8dc4,0,1,7338e497-03a7-4ed4-85a2-ca802c065a9f,7338e497-03a7-4ed4-85a2-ca802c065a9f,0,1,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,0,1,5249687b-9ff4-46f5-be15-dbb5d5047fd1,5249687b-9ff4-46f5-be15-dbb5d5047fd1,0,1,d33df51c-3dcd-496c-90f2-7ee05582bdf7,d33df51c-3dcd-496c-90f2-7ee05582bdf7,0,1,24b39ebd-2424-4939-8e3e-d09eb674d409,24b39ebd-2424-4939-8e3e-d09eb674d409,0,1,08c751bb-9e57-4536-901e-bb316c8e96d7,08c751bb-9e57-4536-901e-bb316c8e96d7,0,1,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,0,1,034cdcef-08e5-4751-9885-400aa69e0b94,034cdcef-08e5-4751-9885-400aa69e0b94,0,1,efefebea-2032-4006-b9ca-50a23b7da1ef,efefebea-2032-4006-b9ca-50a23b7da1ef,0,1,4c794d37-3352-4acb-a939-5e90fb682db8,4c794d37-3352-4acb-a939-5e90fb682db8,0,1,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,0,1,008f5068-da9c-4dac-9c0a-a50366d27cbb,008f5068-da9c-4dac-9c0a-a50366d27cbb,0,1,6e61d717-de36-4dce-8af9-b6c14ed76acb,6e61d717-de36-4dce-8af9-b6c14ed76acb,0,1,474518fe-9cb5-4a12-9388-bc7a64511617,474518fe-9cb5-4a12-9388-bc7a64511617,0,1,64337614-b1c9-4931-b576-448721fa4602,64337614-b1c9-4931-b576-448721fa4602,0,1,1d73b59c-0594-4ed3-b584-cf1261941e1d,1d73b59c-0594-4ed3-b584-cf1261941e1d,0,1,8ff2547f-d596-4fa1-9e12-079e1cc4c057,8ff2547f-d596-4fa1-9e12-079e1cc4c057,0,1,1ab0c8f8-b908-4618-ae88-af37b8f1224e,1ab0c8f8-b908-4618-ae88-af37b8f1224e,0,1,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,0,1,b85b3a58-95e4-4698-b1ae-037901ecc1b1,b85b3a58-95e4-4698-b1ae-037901ecc1b1,0,1,b77d748a-d180-432d-91c3-774e6ccf7efa,b77d748a-d180-432d-91c3-774e6ccf7efa,0,1,e5b9c1b0-4690-442c-b160-e6c587e42e57,e5b9c1b0-4690-442c-b160-e6c587e42e57,0,1,66ec2482-c1f3-45d3-9257-e0b9f5ae772a,66ec2482-c1f3-45d3-9257-e0b9f5ae772a,0,1,d3211832-c8ca-437a-8810-82e06cbb48de,d3211832-c8ca-437a-8810-82e06cbb48de,0,1,8131d701-1014-4196-9b67-914e451f8a3a,8131d701-1014-4196-9b67-914e451f8a3a,0,1,2b102933-c660-4e74-ae9a-5061a88ed672,2b102933-c660-4e74-ae9a-5061a88ed672,0,1,56c897b7-d34e-4d7d-9a3b-d0779be5c189,56c897b7-d34e-4d7d-9a3b-d0779be5c189,0,1,3ac81c80-56bd-4750-b135-07ab522e3eab,3ac81c80-56bd-4750-b135-07ab522e3eab,0,1,5657872f-c7d5-446f-bcc3-d0b86ad63a42,5657872f-c7d5-446f-bcc3-d0b86ad63a42,0,1,d5214cb9-67e2-469f-989f-3f2b662ae830,d5214cb9-67e2-469f-989f-3f2b662ae830,0,1,69679e88-4f2b-4dd6-8cb2-b88293d07b55,69679e88-4f2b-4dd6-8cb2-b88293d07b55,0,1,68679208-9972-4854-8649-49bdf6212255,68679208-9972-4854-8649-49bdf6212255,0,1,98393093-7ba6-4b4d-86be-ee5826cd8cd5,98393093-7ba6-4b4d-86be-ee5826cd8cd5,0,1,87de486d-3f35-4432-a7cd-9d3832db63cf,87de486d-3f35-4432-a7cd-9d3832db63cf,0,1,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,0,1,bb7ce04a-8143-4c0b-a196-1b57f1640142,bb7ce04a-8143-4c0b-a196-1b57f1640142,0,1,24be43ec-d39e-46aa-9c11-2536b835e515,24be43ec-d39e-46aa-9c11-2536b835e515,0,1,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,0,1,df9af3ee-6a69-4a03-8ff5-0735e9a38013,df9af3ee-6a69-4a03-8ff5-0735e9a38013,0,1,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,0,1,96661303-1286-4f84-93b7-0e6da2bd7893,96661303-1286-4f84-93b7-0e6da2bd7893,0,1,68076431-36e6-46dc-92cb-e0d8e605bf66,68076431-36e6-46dc-92cb-e0d8e605bf66,0,1,239fa55a-6572-4e5c-9918-c2e14063c76d,239fa55a-6572-4e5c-9918-c2e14063c76d,0,1,8211a1b6-c3b1-466b-8d11-22603fb50c7a,8211a1b6-c3b1-466b-8d11-22603fb50c7a,0,1,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,0,1,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,0,1,a835a3a7-989b-4247-b836-d23bba2f391a,a835a3a7-989b-4247-b836-d23bba2f391a,0,1,e0eb7b4a-9a13-4752-9327-e13d2abc4fc5,e0eb7b4a-9a13-4752-9327-e13d2abc4fc5,0,1,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,0,1,fc1476f7-26e6-4374-b99b-e515d86c050a,fc1476f7-26e6-4374-b99b-e515d86c050a,0,1,9b149c20-9328-4e2d-a34b-95c883ae4dcc,9b149c20-9328-4e2d-a34b-95c883ae4dcc,0,1,3eb3bd40-e33e-4aa7-9407-85ba1500c537,3eb3bd40-e33e-4aa7-9407-85ba1500c537,0,1,475f76ea-f494-41f1-9b65-f39907e5a427,475f76ea-f494-41f1-9b65-f39907e5a427,0,1,986280d1-41bb-4b15-a5ae-516d6a04c1f4,986280d1-41bb-4b15-a5ae-516d6a04c1f4,0,1,43bfd29a-d254-4c33-8639-200b483578c1,43bfd29a-d254-4c33-8639-200b483578c1,0,1,6a274167-7f80-4613-9890-259ffd8ccfc4,6a274167-7f80-4613-9890-259ffd8ccfc4,0,1,8d080f3c-06ed-48bf-9709-eea73d676741,8d080f3c-06ed-48bf-9709-eea73d676741,0,1,57b31a5d-9fdc-43d2-ae81-67157822c4b6,57b31a5d-9fdc-43d2-ae81-67157822c4b6,0,1,d4e2da66-9a70-459f-a873-cb4ad71d17b2,d4e2da66-9a70-459f-a873-cb4ad71d17b2,0,1,a84a91d2-d326-4bf4-82e6-d573ee35d090,a84a91d2-d326-4bf4-82e6-d573ee35d090,0,1,39cbda23-db3f-4ddd-8981-8540247406db,39cbda23-db3f-4ddd-8981-8540247406db,0,1,c8a18d99-62ff-45a4-acb5-48e3310c1b53,c8a18d99-62ff-45a4-acb5-48e3310c1b53,0,1,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,0,1,3500c6fa-813a-49dd-a4bf-163500db5b7f,3500c6fa-813a-49dd-a4bf-163500db5b7f,0,1,1d02493a-dd89-4a51-b75e-9c49f9818b95,1d02493a-dd89-4a51-b75e-9c49f9818b95,0,1,2845c5d1-e836-4499-bcae-f3c8fdae75ee,2845c5d1-e836-4499-bcae-f3c8fdae75ee,0,1,fe4e8e4e-9471-4583-b9b3-576007db08ee,fe4e8e4e-9471-4583-b9b3-576007db08ee,0,1,49deaaa8-6d50-4b25-8153-6712d88fb0fb,49deaaa8-6d50-4b25-8153-6712d88fb0fb,0,1,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,0,1,46a06de8-06fd-4b49-835f-4f24b832b3c4,46a06de8-06fd-4b49-835f-4f24b832b3c4,0,1,972c2fa0-0ca9-40da-a8c1-a06b81bd0bcf,972c2fa0-0ca9-40da-a8c1-a06b81bd0bcf,0,1,3845a567-4375-4c3a-af61-5b82674060ab,3845a567-4375-4c3a-af61-5b82674060ab,0,1,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,0,1,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,0,1,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,0,1,29645810-44aa-402c-9561-7819d6f4a7ab,29645810-44aa-402c-9561-7819d6f4a7ab,0,1,46bf4911-5200-44ac-9b4d-eb0089c12e34,46bf4911-5200-44ac-9b4d-eb0089c12e34,0,1,6e1685bd-7269-401c-b36e-def6a36b41d5,6e1685bd-7269-401c-b36e-def6a36b41d5,0,1,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,0,1,e03b6592-b597-4795-a78e-775d4f2258db,e03b6592-b597-4795-a78e-775d4f2258db,0,1,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,0,1,3b207d5f-6584-4cf2-9173-20235484f9f4,3b207d5f-6584-4cf2-9173-20235484f9f4,0,1,878d9efe-b0e7-487f-b8f7-83470c131e09,878d9efe-b0e7-487f-b8f7-83470c131e09,0,1,0f211e73-5be9-4015-93e7-ccf63e793cb6,0f211e73-5be9-4015-93e7-ccf63e793cb6,0,1,6574d8f4-fb97-4a26-b166-711fad63aa07,6574d8f4-fb97-4a26-b166-711fad63aa07,0,1,fb3eddaf-3241-4d59-8314-97a5ae9258c4,fb3eddaf-3241-4d59-8314-97a5ae9258c4,0,1,936f1aa5-7516-444b-b451-1162fa5d705f,936f1aa5-7516-444b-b451-1162fa5d705f,0,1,e8d5533e-2669-44f6-9eed-eaedab666d42,e8d5533e-2669-44f6-9eed-eaedab666d42,0,1,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,0,1,9e323b0d-4e3b-45d4-9705-aa30e63014f5,9e323b0d-4e3b-45d4-9705-aa30e63014f5,0,1,5afa798a-958e-4e0c-a380-0104f4c037a7,5afa798a-958e-4e0c-a380-0104f4c037a7,0,1,c0295fd9-c749-41b3-8d0d-6af16f484b1f,c0295fd9-c749-41b3-8d0d-6af16f484b1f,0,1,d3bc8211-54d8-47dd-aecf-5da72b65195f,d3bc8211-54d8-47dd-aecf-5da72b65195f,0,1,33f11da8-f670-4ec3-9d40-96fce031c60f,33f11da8-f670-4ec3-9d40-96fce031c60f,0,1,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,0,1,f74c2d41-2433-4bed-8aef-adfeed198252,f74c2d41-2433-4bed-8aef-adfeed198252,0,1,3c2b8a8a-bfe7-4e37-9d83-55a695a06605,3c2b8a8a-bfe7-4e37-9d83-55a695a06605,0,1,56c9703a-751a-4e6c-81f4-a8756fb040e3,56c9703a-751a-4e6c-81f4-a8756fb040e3,0,1,c3a86eec-1ff5-4392-9904-91a12a2e253a,c3a86eec-1ff5-4392-9904-91a12a2e253a,0,1,f5df72a3-c71c-412b-8c3e-6329f1d3a7da,f5df72a3-c71c-412b-8c3e-6329f1d3a7da,0,1,f02b7246-dae9-4e15-b4cd-b06133664d34,f02b7246-dae9-4e15-b4cd-b06133664d34,0,1,77f20022-17ce-4e00-8a84-015238bce6f3,77f20022-17ce-4e00-8a84-015238bce6f3,0,1,884c28de-434f-440a-8c63-67e659c097ad,884c28de-434f-440a-8c63-67e659c097ad,0,1,92ead3b5-8c55-4e4d-bd47-009e025b22f8,92ead3b5-8c55-4e4d-bd47-009e025b22f8,0,1,50d8e365-aa58-4b60-8992-01943379d485,50d8e365-aa58-4b60-8992-01943379d485,0,1,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,0,1,e24641ed-3e92-46d7-852b-9958ab7bc520,e24641ed-3e92-46d7-852b-9958ab7bc520,0,1,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,0,1,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,0,1,2c61114f-abd7-4415-8cdf-4fe95d9fe354,2c61114f-abd7-4415-8cdf-4fe95d9fe354,0,1,abd7a766-5cc1-48db-8d29-797e9d666a78,abd7a766-5cc1-48db-8d29-797e9d666a78,0,1,1704b5e3-8e77-4df6-9223-e6e5c41a280d,1704b5e3-8e77-4df6-9223-e6e5c41a280d,0,1,62eca88f-025d-44de-b92c-46cd8bc7e4a1,62eca88f-025d-44de-b92c-46cd8bc7e4a1,0,1,b0dde395-8498-4469-9507-d290798117d7,b0dde395-8498-4469-9507-d290798117d7,0,1,999616ea-0faa-4ae2-9841-6a6997ea6694,999616ea-0faa-4ae2-9841-6a6997ea6694,0,1,bf80ccc5-f907-4e7f-a007-6030c7ba682e,bf80ccc5-f907-4e7f-a007-6030c7ba682e,0,1,a330acd1-bc97-4ef8-8ecb-5604868ca044,a330acd1-bc97-4ef8-8ecb-5604868ca044,0,1,05f1f184-50cb-47c5-b3a8-62be6a9780c1,05f1f184-50cb-47c5-b3a8-62be6a9780c1,0,1,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,0,1,61f283c7-f887-432b-a2d7-c27483e04317,61f283c7-f887-432b-a2d7-c27483e04317,0,1,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,0,1,c5f91669-13d8-4f0a-a054-2701078da38a,c5f91669-13d8-4f0a-a054-2701078da38a,0,1,34f9872b-e02e-4093-ba06-3cb5b8995850,34f9872b-e02e-4093-ba06-3cb5b8995850,0,1,1635be16-4861-4a7d-babc-4caff448a7f7,1635be16-4861-4a7d-babc-4caff448a7f7,0,1,9e399087-c957-4a7a-ab9d-2b689736caab,9e399087-c957-4a7a-ab9d-2b689736caab,0,1,4f61366c-1c88-4750-a73c-78e35f0080f9,4f61366c-1c88-4750-a73c-78e35f0080f9,0,1,1bd4ad80-b991-4892-bb21-f423a119d368,1bd4ad80-b991-4892-bb21-f423a119d368,0,1,e5aaa246-8659-468e-9b02-e3a9b870b2cd,e5aaa246-8659-468e-9b02-e3a9b870b2cd,0,1,29cf0ce4-7db8-40f0-94dd-4558bbf00ab9,29cf0ce4-7db8-40f0-94dd-4558bbf00ab9,0,1,554ac957-6ca3-49b7-9a3b-094c443748a5,554ac957-6ca3-49b7-9a3b-094c443748a5,0,1,9f9936fc-54a0-4812-b12d-2f8f91551440,9f9936fc-54a0-4812-b12d-2f8f91551440,0,1,a5667633-9264-4dfa-9e26-c45e96e61ae3,a5667633-9264-4dfa-9e26-c45e96e61ae3,0,1,2eeea138-481c-4fde-9e8a-709d751cc469,2eeea138-481c-4fde-9e8a-709d751cc469,0,1,58c3936c-4db0-45c8-a22e-b5dd49a61497,58c3936c-4db0-45c8-a22e-b5dd49a61497,0,1,8928693b-1933-4e02-8a33-99b6f05b1c57,8928693b-1933-4e02-8a33-99b6f05b1c57,0,1,9aa607bc-5870-436a-bbe1-296560393e3b,9aa607bc-5870-436a-bbe1-296560393e3b,0,1,2b7372be-af0d-464e-8d09-8172229790af,2b7372be-af0d-464e-8d09-8172229790af,0,1,079bc65d-da8e-431d-847c-ec46868ca92d,079bc65d-da8e-431d-847c-ec46868ca92d,0,1,d85346db-be25-4dab-a2db-647c3d40dd17,d85346db-be25-4dab-a2db-647c3d40dd17,0,1,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,0,1,1f169cd2-573f-408d-92e7-3eee7ff4528a,1f169cd2-573f-408d-92e7-3eee7ff4528a,0,1,845262f8-8208-4c90-98ec-c85dd5734cf0,845262f8-8208-4c90-98ec-c85dd5734cf0,0,1,19ac940e-34e2-4277-987a-53b28dde5910,19ac940e-34e2-4277-987a-53b28dde5910,0,1,3c84b9ac-e67a-4d3e-ad98-b25fada7229e,3c84b9ac-e67a-4d3e-ad98-b25fada7229e,0,1,85cb64b1-ddee-4da6-a14c-7f5fa1a726ff,85cb64b1-ddee-4da6-a14c-7f5fa1a726ff,0,1,3326bbcb-b277-44db-a252-2448119e8146,3326bbcb-b277-44db-a252-2448119e8146,0,1,61cac5f7-320c-4098-9078-44fadcdeb219,61cac5f7-320c-4098-9078-44fadcdeb219,0,1,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,0,1,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,0,1,cd454738-62dd-4f95-af33-b52750678428,cd454738-62dd-4f95-af33-b52750678428,0,1,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,0,1,e4abafc6-f859-4d96-9818-5b9bf8d66d69,e4abafc6-f859-4d96-9818-5b9bf8d66d69,0,1,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,0,1,ac4e0868-ba49-46b4-8872-d42483a5591f,ac4e0868-ba49-46b4-8872-d42483a5591f,0,1,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,0,1,0493dcf1-5f94-41f9-a4c7-a52e12a29068,0493dcf1-5f94-41f9-a4c7-a52e12a29068,0,1,ca4c0299-625a-4b03-be0e-36ffb45c6d08,ca4c0299-625a-4b03-be0e-36ffb45c6d08,0,1,e1b94dcf-ec37-4b2d-a7af-120eeee40944,e1b94dcf-ec37-4b2d-a7af-120eeee40944,0,1,7d2a37b1-a1a0-435a-846a-95e255655044,7d2a37b1-a1a0-435a-846a-95e255655044,0,1,109db64c-00dc-490e-99a5-4430d9344e99,109db64c-00dc-490e-99a5-4430d9344e99,0,1,85837a55-fed5-4b7b-a622-30d728b9a677,85837a55-fed5-4b7b-a622-30d728b9a677,0,1,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,0,1,b6bd2b39-07ae-48a7-8a5b-f44b5034afa9,b6bd2b39-07ae-48a7-8a5b-f44b5034afa9,0,1,5500d5c6-fdbf-4614-b43b-fabf56e3968c,5500d5c6-fdbf-4614-b43b-fabf56e3968c,0,1,a08eeef7-1c81-4985-8628-6b35ac73e135,a08eeef7-1c81-4985-8628-6b35ac73e135,0,1,c446f732-097a-4197-8384-91a6925c6bdd,c446f732-097a-4197-8384-91a6925c6bdd,0,1,cc33ec52-aed4-4807-90b5-700d307b4f57,cc33ec52-aed4-4807-90b5-700d307b4f57,0,1,6f9ece3d-aeca-4313-9e6a-44e562fc83ff,6f9ece3d-aeca-4313-9e6a-44e562fc83ff,0,1,6b04b6f1-2c9d-4de0-b871-6cc377b13e33,6b04b6f1-2c9d-4de0-b871-6cc377b13e33,0,1,82ea249e-ecba-4916-b9a1-c7e6119b353a,82ea249e-ecba-4916-b9a1-c7e6119b353a,0,1,d5406849-57b3-44f4-8efa-e73523939ae5,d5406849-57b3-44f4-8efa-e73523939ae5,0,1,9ce5f33f-4331-491d-b084-9913c38f4c7d,9ce5f33f-4331-491d-b084-9913c38f4c7d,0,1,0603113a-f2f1-43e6-9838-64c5e98417f0,0603113a-f2f1-43e6-9838-64c5e98417f0,0,1,43055a56-a079-41e2-87eb-723769109bed,43055a56-a079-41e2-87eb-723769109bed,0,1,930f2bc5-417d-4b97-b440-8d5e81e5c896,930f2bc5-417d-4b97-b440-8d5e81e5c896,0,1,c8f487aa-544a-41dc-b7c3-7cf21d2720f2,c8f487aa-544a-41dc-b7c3-7cf21d2720f2,0,1,e506f7d3-2572-4c54-ac98-e40f083ac578,e506f7d3-2572-4c54-ac98-e40f083ac578,0,1,bdf93aa5-86a4-4791-bdb0-172532029b7c,bdf93aa5-86a4-4791-bdb0-172532029b7c,0,1,da9821c3-4b16-48b7-9088-d3cf8ac536a6,da9821c3-4b16-48b7-9088-d3cf8ac536a6,0,1,d5142574-a040-4dd0-a482-cdc61c1d86ab,d5142574-a040-4dd0-a482-cdc61c1d86ab,0,1,778e79ee-eb1a-4d52-8a31-58e781c78fe4,778e79ee-eb1a-4d52-8a31-58e781c78fe4,0,1,f480ac52-e2f1-4ed0-a0b1-20a622f77302,f480ac52-e2f1-4ed0-a0b1-20a622f77302,0,1,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,0,1,b9b0fbdc-8fda-46d1-bb3e-561a03604971,b9b0fbdc-8fda-46d1-bb3e-561a03604971,0,1,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,0,1,672c2936-9771-4e32-a970-7ac7f12a21e8,672c2936-9771-4e32-a970-7ac7f12a21e8,0,1,c264441d-4805-4968-baa2-37b8970049c7,c264441d-4805-4968-baa2-37b8970049c7,0,1,f36150de-33af-4410-8a4c-8c9f4b545793,f36150de-33af-4410-8a4c-8c9f4b545793,0,1,62f97480-7d4a-48f3-9d1d-612909b242c9,62f97480-7d4a-48f3-9d1d-612909b242c9,0,1,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,0,1,3068be84-a401-4701-8ac9-411fae130f84,3068be84-a401-4701-8ac9-411fae130f84,0,1,957394a7-e5b8-47fc-8680-1e71efe2be7d,957394a7-e5b8-47fc-8680-1e71efe2be7d,0,1,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,0,1,4f25ef45-c8d9-401d-b0e8-2217ac310f04,4f25ef45-c8d9-401d-b0e8-2217ac310f04,0,1,504ca240-b5ae-433e-ae5f-d818263eea23,504ca240-b5ae-433e-ae5f-d818263eea23,0,1,32461819-9437-417d-8d1e-851c9a2dcee2,32461819-9437-417d-8d1e-851c9a2dcee2,0,1,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,0,1,f1b66ea8-262d-4b38-a039-b83a843f6ee8,f1b66ea8-262d-4b38-a039-b83a843f6ee8,0,1,bcae6e05-f1fd-413e-9eef-2e1cee42a962,bcae6e05-f1fd-413e-9eef-2e1cee42a962,0,1,93fcaa62-2a19-468b-9128-c7930583fbfd,93fcaa62-2a19-468b-9128-c7930583fbfd,0,1,2d885109-4c96-41c0-a996-785bfd793c2d,2d885109-4c96-41c0-a996-785bfd793c2d,0,1,8393971a-96ba-493e-a9d0-a286e8a0750a,8393971a-96ba-493e-a9d0-a286e8a0750a,0,1,9c8ec5e5-afa8-48b1-bf9c-ebaaf0a720db,9c8ec5e5-afa8-48b1-bf9c-ebaaf0a720db,0,1,901897a7-a2b6-40a7-a77d-d1d4c8ce5d28,901897a7-a2b6-40a7-a77d-d1d4c8ce5d28,0,1,e6fe6a65-33e6-4cb3-8acf-b40e7b9bac04,e6fe6a65-33e6-4cb3-8acf-b40e7b9bac04,0,1,c4492ecd-293c-4688-8198-04391c57f312,c4492ecd-293c-4688-8198-04391c57f312,0,1,268afd29-0e5f-4220-ab29-071f3072dbeb,268afd29-0e5f-4220-ab29-071f3072dbeb,0,1,f6d737ca-af33-4a13-b84e-cab2bf6e1f43,f6d737ca-af33-4a13-b84e-cab2bf6e1f43,0,1,b578b59d-8c86-4494-b27d-db976b0f3d8a,b578b59d-8c86-4494-b27d-db976b0f3d8a,0,1,eeba912a-3676-4528-b216-2b8630ab19c9,eeba912a-3676-4528-b216-2b8630ab19c9,0,1,47ed2f49-e4f2-4058-9ac5-cb3c826e92d8,47ed2f49-e4f2-4058-9ac5-cb3c826e92d8,0,1,471c7746-c607-481e-aaac-659dcbe54d8b,471c7746-c607-481e-aaac-659dcbe54d8b,0,1,3251cc7f-6b61-4814-b7ce-91564128d604,3251cc7f-6b61-4814-b7ce-91564128d604,0,1,185661aa-0553-4a27-b021-a0d96fba92fd,185661aa-0553-4a27-b021-a0d96fba92fd,0,1,59624fa6-74f6-4a5f-86e3-a27018683e6e,59624fa6-74f6-4a5f-86e3-a27018683e6e,0,1,71fa1a55-cf35-4442-bcd5-fdc4f191ae51,71fa1a55-cf35-4442-bcd5-fdc4f191ae51,0,1,93e30c61-c9a1-41a5-b682-23f4d0085a38,93e30c61-c9a1-41a5-b682-23f4d0085a38,0,1,8336cc18-5d3e-477f-9245-17e7e7f0566a,8336cc18-5d3e-477f-9245-17e7e7f0566a,0,1,213219df-49d8-447e-b7f3-fba356b9d461,213219df-49d8-447e-b7f3-fba356b9d461,0,1,b443585d-f129-4ac6-a64c-4c37b1b4385b,b443585d-f129-4ac6-a64c-4c37b1b4385b,0,1,ec1877db-8c03-45a4-a15c-a4de8ae3e86c,ec1877db-8c03-45a4-a15c-a4de8ae3e86c,0,1,e7ef29f9-dfff-402e-b49b-e006b9828519,e7ef29f9-dfff-402e-b49b-e006b9828519,0,1,bfb0be49-5f5c-4ef3-a011-8f8645aa981a,bfb0be49-5f5c-4ef3-a011-8f8645aa981a,0,1,d50613ad-c527-4583-8855-a4bd39c33360,d50613ad-c527-4583-8855-a4bd39c33360,0,1,aaa351b7-475e-4835-a5c5-23f86da8ea51,aaa351b7-475e-4835-a5c5-23f86da8ea51,0,1,5260c027-de8c-4612-9022-d9b492e913c9,5260c027-de8c-4612-9022-d9b492e913c9,0,1,6945660a-84cb-4546-ad3c-b5eda36c7fa6,6945660a-84cb-4546-ad3c-b5eda36c7fa6,0,1,899be218-80f5-46ed-bccf-f9437c91e00b,899be218-80f5-46ed-bccf-f9437c91e00b,0,1,67ff40c2-0954-4187-9eba-bf6360fa3620,67ff40c2-0954-4187-9eba-bf6360fa3620,0,1,19bb53e4-f7c7-475e-9d07-ebc067d62635,19bb53e4-f7c7-475e-9d07-ebc067d62635,0,1,8ed415c6-f93b-45e4-be06-7490d60b91f1,8ed415c6-f93b-45e4-be06-7490d60b91f1,0,1,bd00e705-e1cd-4c50-89e5-4c3391e46e16,bd00e705-e1cd-4c50-89e5-4c3391e46e16,0,1,3dffb8c9-91f0-4527-baa7-06db41d80b46,3dffb8c9-91f0-4527-baa7-06db41d80b46,0,1,ad842d01-80b8-4ebf-9ac3-5d628ec4e321,ad842d01-80b8-4ebf-9ac3-5d628ec4e321,0,1,af5008bb-427d-4cd5-b9e4-8aae24f725ab,af5008bb-427d-4cd5-b9e4-8aae24f725ab,0,1,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,0,1,83ae9b22-20ff-4e94-9282-19daf2274328,83ae9b22-20ff-4e94-9282-19daf2274328,0,1,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,0,1,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,0,1,16aafed9-ac0d-424f-93e5-01d77dcb7796,16aafed9-ac0d-424f-93e5-01d77dcb7796,0,1,ae5d7329-4cdb-4d11-ab00-4dc62133941e,ae5d7329-4cdb-4d11-ab00-4dc62133941e,0,1,52b39a5b-6a9d-4341-a040-3eae413b3f9d,52b39a5b-6a9d-4341-a040-3eae413b3f9d,0,1,15372e48-d5ed-4f13-ad1c-539fad0f9b28,15372e48-d5ed-4f13-ad1c-539fad0f9b28,0,1,19f690a3-d27b-43c1-94b7-585fc628da05,19f690a3-d27b-43c1-94b7-585fc628da05,0,1,d375fac5-098c-42b5-a0bd-9a4ae7516ada,d375fac5-098c-42b5-a0bd-9a4ae7516ada,0,1,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,0,1,162137ef-dea2-4ace-9e67-897dad0e7c3d,162137ef-dea2-4ace-9e67-897dad0e7c3d,0,1,012fb2f1-1c15-4800-8968-78a90c2a1348,012fb2f1-1c15-4800-8968-78a90c2a1348,0,1,436162a0-263f-4126-aa3a-7508505cc4a8,436162a0-263f-4126-aa3a-7508505cc4a8,0,1,9e4fbc61-8736-435d-bdd4-eb3bbaa14b92,9e4fbc61-8736-435d-bdd4-eb3bbaa14b92,0,1,0b750d40-1ee5-414c-b8a5-244c666787ae,0b750d40-1ee5-414c-b8a5-244c666787ae,0,1,aec8f9e6-d177-45f5-ba55-2d662428c2ae,aec8f9e6-d177-45f5-ba55-2d662428c2ae,0,1,7dfdd08b-7cd9-480c-829d-97f5e7152eec,7dfdd08b-7cd9-480c-829d-97f5e7152eec,0,1,0ff797f5-007d-4379-aa14-5d3f5babeb84,0ff797f5-007d-4379-aa14-5d3f5babeb84,0,1,767176d4-4fe9-4de5-9246-59b7fec09c53,767176d4-4fe9-4de5-9246-59b7fec09c53,0,1,64752b64-80ae-4537-986a-d61423dc546b,64752b64-80ae-4537-986a-d61423dc546b,0,1,8e587969-0263-4789-a501-a6c2e102f88e,8e587969-0263-4789-a501-a6c2e102f88e,0,1,f26bfc01-7d8a-43a7-b869-c2deb18218e5,f26bfc01-7d8a-43a7-b869-c2deb18218e5,0,1,8c72a0b2-20cb-43ff-b010-25256aa8011d,8c72a0b2-20cb-43ff-b010-25256aa8011d,0,1,a913b023-0ec5-4c60-880d-2f8ddad2d5ce,a913b023-0ec5-4c60-880d-2f8ddad2d5ce,0,1,b0bf8af5-d824-459c-bc40-17495406af3c,b0bf8af5-d824-459c-bc40-17495406af3c,0,1,2c37e123-ea35-4501-93e1-2fa295444bec,2c37e123-ea35-4501-93e1-2fa295444bec,0,1,afe96dc2-7840-4010-a7d4-1eeac36f0fd3,afe96dc2-7840-4010-a7d4-1eeac36f0fd3,0,1,02ec2b85-3cc8-45bb-911f-c5f7c8668fd5,02ec2b85-3cc8-45bb-911f-c5f7c8668fd5,0,1,a997a430-3ea8-4fde-9f53-7b507a04c215,a997a430-3ea8-4fde-9f53-7b507a04c215,0,1,f648e19d-026b-4fa7-8e70-1866b27b94f8,f648e19d-026b-4fa7-8e70-1866b27b94f8,0,1,a3b47ee8-b7b9-4bdf-afa8-025447ea9d5b,a3b47ee8-b7b9-4bdf-afa8-025447ea9d5b,0,1,36475bf5-5da6-48ad-8077-4de4426f7e10,36475bf5-5da6-48ad-8077-4de4426f7e10,0,1,d32081fc-47d3-4e66-837e-705c94ba8ca8,d32081fc-47d3-4e66-837e-705c94ba8ca8,0,1,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,0,1,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,0,1,ecbe625a-55eb-437a-8dee-33fb034d4c0d,ecbe625a-55eb-437a-8dee-33fb034d4c0d,0,1,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,0,1,84796b00-79db-42ba-94d0-5bf543e09cd6,84796b00-79db-42ba-94d0-5bf543e09cd6,0,1,e85695f1-ec94-42ce-8f80-2bda4c90685b,e85695f1-ec94-42ce-8f80-2bda4c90685b,0,1,6f08cc54-d4b1-4c6f-96dc-e0b6891c81b6,6f08cc54-d4b1-4c6f-96dc-e0b6891c81b6,0,1,948b10b3-0d7c-4dca-8816-75eb86e7881b,948b10b3-0d7c-4dca-8816-75eb86e7881b,0,1,9de91b5a-98e4-414b-b650-b669b0159b49,9de91b5a-98e4-414b-b650-b669b0159b49,0,1,840dc727-288a-4bf2-8b1a-47629d28229c,840dc727-288a-4bf2-8b1a-47629d28229c,0,1,314ac8ca-8845-40c2-b844-91beb05fb601,314ac8ca-8845-40c2-b844-91beb05fb601,0,1,db15717d-1b6a-42fd-9b8f-959e1d5841e9,db15717d-1b6a-42fd-9b8f-959e1d5841e9,0,1,3de3948d-40ff-4e0d-8445-9bf49c916161,3de3948d-40ff-4e0d-8445-9bf49c916161,0,1,37ae1946-9436-47ef-8b8c-17ed0a24971c,37ae1946-9436-47ef-8b8c-17ed0a24971c,0,1,0d3cd7ca-089f-4858-a4a6-0ed373aa77bf,0d3cd7ca-089f-4858-a4a6-0ed373aa77bf,0,1,d844d861-fbe9-4391-89e3-00e505b33b33,d844d861-fbe9-4391-89e3-00e505b33b33,0,1,495ddb5f-f75d-46c9-b134-e925c814b890,495ddb5f-f75d-46c9-b134-e925c814b890,0,1,fb6f92a6-fc56-48d4-b7ad-b4daaea79fe2,fb6f92a6-fc56-48d4-b7ad-b4daaea79fe2,0,1,0a4ded35-1cfa-4e53-91c7-139ee0b94ade,0a4ded35-1cfa-4e53-91c7-139ee0b94ade,0,1,c0688817-fd73-4ead-b9dd-ec966780a2c2,c0688817-fd73-4ead-b9dd-ec966780a2c2,0,1,b1fbfbfe-766f-4018-9491-507748193808,b1fbfbfe-766f-4018-9491-507748193808,0,1,65d9f3a7-6258-49f3-8252-0a60e2735ff3,65d9f3a7-6258-49f3-8252-0a60e2735ff3,0,1,a0ba7e86-b894-4a63-8687-bb2a840fe1ab,a0ba7e86-b894-4a63-8687-bb2a840fe1ab,0,1,e55dfadb-8e12-4808-ad90-e891a4644548,e55dfadb-8e12-4808-ad90-e891a4644548,0,1,a1155588-882f-430d-85a6-19558b5b7256,a1155588-882f-430d-85a6-19558b5b7256,0,1,a792b3dc-ac80-492b-bd94-83eb0438ba9f,a792b3dc-ac80-492b-bd94-83eb0438ba9f,0,1,73a093ea-1927-483b-b6f5-8f0cbd253753,73a093ea-1927-483b-b6f5-8f0cbd253753,0,1,345f04c0-0274-4e79-b523-f1fa3cf0d92a,345f04c0-0274-4e79-b523-f1fa3cf0d92a,0,1,f3a14787-de1b-4b65-8cb1-bc33a785821c,f3a14787-de1b-4b65-8cb1-bc33a785821c,0,1,b9ba3ce3-9059-4135-9d31-725f01907431,b9ba3ce3-9059-4135-9d31-725f01907431,0,1,f637a14d-08ed-4c62-a873-ca36cdcd1e88,f637a14d-08ed-4c62-a873-ca36cdcd1e88,0,1,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,0,1,4d2b3767-7c96-44a6-bb1b-ab74b103b90e,4d2b3767-7c96-44a6-bb1b-ab74b103b90e,0,1,fc9fc58f-c888-41f0-9f57-70748b21706e,fc9fc58f-c888-41f0-9f57-70748b21706e,0,1,fc761833-aa85-4c6d-a36c-d1ed060e3bb1,fc761833-aa85-4c6d-a36c-d1ed060e3bb1,0,1,f0ba2ff2-b353-4f84-8e45-23e47ee6c1b6,f0ba2ff2-b353-4f84-8e45-23e47ee6c1b6,0,1,bb8bade2-5c1b-49a6-b66f-79a3ebff86f7,bb8bade2-5c1b-49a6-b66f-79a3ebff86f7,0,1,33596560-3d45-4d3e-b6ec-1c22162110ad,33596560-3d45-4d3e-b6ec-1c22162110ad,0,1,d3e82a06-daae-4f4d-b3f8-45a406e31664,d3e82a06-daae-4f4d-b3f8-45a406e31664,0,1,af76c3c9-d8dc-4156-9e10-80ee02fcf4fe,af76c3c9-d8dc-4156-9e10-80ee02fcf4fe,0,1,ac6a184d-1247-4b54-a023-f0d16daa5fe9,ac6a184d-1247-4b54-a023-f0d16daa5fe9,0,1,f9af5fe6-0b4f-4d48-92a4-1f2a29972155,f9af5fe6-0b4f-4d48-92a4-1f2a29972155,0,1,3ca1682d-5ff5-4b2b-96c2-54d2dd5297a9,3ca1682d-5ff5-4b2b-96c2-54d2dd5297a9,0,1,a687d346-73cf-4aea-a4d0-f29824f0f6f1,a687d346-73cf-4aea-a4d0-f29824f0f6f1,0,1,f51fda72-56d9-4b45-a775-a0e1dfbf3a27,f51fda72-56d9-4b45-a775-a0e1dfbf3a27,0,1,8bf73614-81a4-4702-88b9-3c6f2594d204,8bf73614-81a4-4702-88b9-3c6f2594d204,0,1,b8d4410b-f626-41b8-87c8-67102256bae2,b8d4410b-f626-41b8-87c8-67102256bae2,0,1,484eeb5f-12af-4139-a081-4dcac067a712,484eeb5f-12af-4139-a081-4dcac067a712,0,1,73b27233-e7ce-4386-a182-fc934df0e9a0,73b27233-e7ce-4386-a182-fc934df0e9a0,0,1,39fce130-be22-42d9-8bcd-b162ae00fc7a,39fce130-be22-42d9-8bcd-b162ae00fc7a,0,1,0c444045-302b-4dbd-a9a3-81fd40004948,0c444045-302b-4dbd-a9a3-81fd40004948,0,1,2f3bdc3c-4c5d-4fcb-85bb-932fe1747d98,2f3bdc3c-4c5d-4fcb-85bb-932fe1747d98,0,1,16099d54-e84f-47c5-aaf3-f8ced3cba5e0,16099d54-e84f-47c5-aaf3-f8ced3cba5e0,0,1,1528b799-1c0f-4244-85e8-e738b827934a,1528b799-1c0f-4244-85e8-e738b827934a,0,1,45d79e4d-8c2a-432b-abb8-fb9046abea40,45d79e4d-8c2a-432b-abb8-fb9046abea40,0,1,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,0,1,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,0,1,256618cc-0956-4cda-9691-e4ced68a791f,256618cc-0956-4cda-9691-e4ced68a791f,0,1,f54fde64-ca9e-49cc-8dc9-59ecaf4625a8,f54fde64-ca9e-49cc-8dc9-59ecaf4625a8,0,1,667de710-cee5-4a97-8434-641d199f3b68,667de710-cee5-4a97-8434-641d199f3b68,0,1,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,0,1,f6e85eeb-d81b-4526-9a33-ab77bd447236,f6e85eeb-d81b-4526-9a33-ab77bd447236,0,1,470e37fe-d149-4007-b397-12fc84f93041,470e37fe-d149-4007-b397-12fc84f93041,0,1,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,0,1,6c205eae-9113-46c1-a245-25d29173646e,6c205eae-9113-46c1-a245-25d29173646e,0,1,6da034af-0481-4a3c-aff9-c50ced6f21d4,6da034af-0481-4a3c-aff9-c50ced6f21d4,0,1,6fe57ea6-fe5e-48b1-bb31-5d42e4c2c6c7,6fe57ea6-fe5e-48b1-bb31-5d42e4c2c6c7,0,1,d07016c8-7d97-42cd-865b-85b49075adfb,d07016c8-7d97-42cd-865b-85b49075adfb,0,1,9202335d-50bb-4282-9438-24c7fb9cf637,9202335d-50bb-4282-9438-24c7fb9cf637,0,1,a62906e5-27f8-4e72-8769-9a3eed6997d7,a62906e5-27f8-4e72-8769-9a3eed6997d7,0,1,6c5d0ac3-6086-434c-812b-1c1158ecc574,6c5d0ac3-6086-434c-812b-1c1158ecc574,0,1,783536d7-c0db-44c9-96e8-58b57804d7c8,783536d7-c0db-44c9-96e8-58b57804d7c8,0,1,a8295435-c2c4-4aff-874b-7412556aa76d,a8295435-c2c4-4aff-874b-7412556aa76d,0,1,f6c4e24b-172b-4ba3-8e3e-988306ade660,f6c4e24b-172b-4ba3-8e3e-988306ade660,0,1,60cd2f20-17cf-4132-b08e-87cf429704b7,60cd2f20-17cf-4132-b08e-87cf429704b7,0,1,9baab24c-a5a3-46f4-ad17-a28d4a49f851,9baab24c-a5a3-46f4-ad17-a28d4a49f851,0,1,d1952319-0e42-4684-a386-fbe7c24526c2,d1952319-0e42-4684-a386-fbe7c24526c2,0,1,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,0,1,83b47a9d-d44b-4c40-becd-df74f9cb2e91,83b47a9d-d44b-4c40-becd-df74f9cb2e91,0,1,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,0,1,86e2a2eb-160f-4e93-a449-b2f726286d1b,86e2a2eb-160f-4e93-a449-b2f726286d1b,0,1,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,0,1,364184c2-ec71-44be-b40c-ba719b4ab0e1,364184c2-ec71-44be-b40c-ba719b4ab0e1,0,1,7ef46c54-ec0c-4211-a750-e5949956b593,7ef46c54-ec0c-4211-a750-e5949956b593,0,1,04823681-875e-459a-b3cf-051c89527f38,04823681-875e-459a-b3cf-051c89527f38,0,1,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,0,1,38265f08-3301-40d1-b630-a319c983e826,38265f08-3301-40d1-b630-a319c983e826,0,1,5175c496-bac7-4c57-9628-793b727aecd0,5175c496-bac7-4c57-9628-793b727aecd0,0,1,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,0,1,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,0,1,6d002aef-00c9-4069-80df-153151218831,6d002aef-00c9-4069-80df-153151218831,0,1,4fec3a6c-5a99-4763-aa07-d5de8712559e,4fec3a6c-5a99-4763-aa07-d5de8712559e,0,1,968a1202-d271-43e0-bfd4-d38e49ceadd4,968a1202-d271-43e0-bfd4-d38e49ceadd4,0,1,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,0,1,ea61e442-273e-4ce4-a806-8090893729ba,ea61e442-273e-4ce4-a806-8090893729ba,0,1,e7100f2b-d169-4635-ab87-7a2225ff12ee,e7100f2b-d169-4635-ab87-7a2225ff12ee,0,1,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,0,1,4840753b-e2e1-4e67-b35f-2f5eab7754f5,4840753b-e2e1-4e67-b35f-2f5eab7754f5,0,1,3bb83275-7a0e-420f-8c6b-028038f11a8c,3bb83275-7a0e-420f-8c6b-028038f11a8c,0,1,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,0,1,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,0,1,5d726fa3-bde0-4d97-a577-415857bbb5c1,5d726fa3-bde0-4d97-a577-415857bbb5c1,0,1,1b232a57-2833-42c6-b318-38dae2af1ab2,1b232a57-2833-42c6-b318-38dae2af1ab2,0,1,90359488-ce77-4d04-b848-a651d0387f8b,90359488-ce77-4d04-b848-a651d0387f8b,0,1,eb69c41a-392d-43bb-9b67-a0adcb651b1e,eb69c41a-392d-43bb-9b67-a0adcb651b1e,0,1,0b7f8e05-bb34-47cc-9775-04362e814316,0b7f8e05-bb34-47cc-9775-04362e814316,0,1,e71e0297-3709-4247-933e-18a6350cbf39,e71e0297-3709-4247-933e-18a6350cbf39,0,1,df6417d1-c722-4a87-a543-5d2c31795b20,df6417d1-c722-4a87-a543-5d2c31795b20,0,1,526a85c9-3a8d-4044-adb9-fd0689c70601,526a85c9-3a8d-4044-adb9-fd0689c70601,0,1,7637844b-4059-4f8a-8436-b4f4e8cb4f74,7637844b-4059-4f8a-8436-b4f4e8cb4f74,0,1,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,0,1,0ee5b788-61dc-464b-86da-f985df7704b6,0ee5b788-61dc-464b-86da-f985df7704b6,0,1,2375c6a8-9799-4b7c-a48d-091a90c67693,2375c6a8-9799-4b7c-a48d-091a90c67693,0,1,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,0,1,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,0,1,63c6522f-be04-422a-b4f4-0f55f58b09a8,63c6522f-be04-422a-b4f4-0f55f58b09a8,0,1,be919dc1-a377-43e1-82e6-ce946cabdd55,be919dc1-a377-43e1-82e6-ce946cabdd55,0,1,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,0,1,9ded532e-9e60-4895-a4c5-4ea6697aa83c,9ded532e-9e60-4895-a4c5-4ea6697aa83c,0,1,106c5159-ffc7-4059-b3e3-acf74326a44f,106c5159-ffc7-4059-b3e3-acf74326a44f,0,1,d39fd717-1a69-4fd3-889e-4fa9abefea1c,d39fd717-1a69-4fd3-889e-4fa9abefea1c,0,1,93b01c88-48a2-4753-b443-0e9892395a8f,93b01c88-48a2-4753-b443-0e9892395a8f,0,1,5a470575-e012-42ad-9ad7-53930a8e843f,5a470575-e012-42ad-9ad7-53930a8e843f,0,1,5872d4ed-6503-422d-bcf9-63a8df3e777d,5872d4ed-6503-422d-bcf9-63a8df3e777d,0,1,e21cda29-2579-485e-a207-20b76f719c80,e21cda29-2579-485e-a207-20b76f719c80,0,1,add0b22d-ff5a-41f7-88a1-ef34880e50c9,add0b22d-ff5a-41f7-88a1-ef34880e50c9,0,1,239601eb-e8de-4d58-a32a-01ee52f6e698,239601eb-e8de-4d58-a32a-01ee52f6e698,0,1,11370667-bec5-4a2d-8aa1-97f4d795718f,11370667-bec5-4a2d-8aa1-97f4d795718f,0,1,2032162d-fbb5-4e6a-be72-cda79869b9ff,2032162d-fbb5-4e6a-be72-cda79869b9ff,0,1,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,0,1,707e64f3-ad8b-470a-aa4f-57fddecc2159,707e64f3-ad8b-470a-aa4f-57fddecc2159,0,1,682da7d7-6e27-4133-90fc-a445c156f908,682da7d7-6e27-4133-90fc-a445c156f908,0,1,64751704-f39d-4859-adc6-8168897d6aec,64751704-f39d-4859-adc6-8168897d6aec,0,1,10543f9a-4e3f-427a-b36a-9c66709dd6fb,10543f9a-4e3f-427a-b36a-9c66709dd6fb,0,1,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,0,1,96ab5424-7be1-416d-b74d-d0c815726b1f,96ab5424-7be1-416d-b74d-d0c815726b1f,0,1,3714e794-ddef-4ad9-a933-6130bbc84545,3714e794-ddef-4ad9-a933-6130bbc84545,0,1,f0dca5f2-1479-42bf-b895-9abd345522f5,f0dca5f2-1479-42bf-b895-9abd345522f5,0,1,8eaa91e0-88d9-4e4e-b2d6-752696bafadf,8eaa91e0-88d9-4e4e-b2d6-752696bafadf,0,1,93d6dda2-dd7c-42d1-b9bc-284929931585,93d6dda2-dd7c-42d1-b9bc-284929931585,0,1,282b089c-7411-40d6-9a0a-ceaf6abb5586,282b089c-7411-40d6-9a0a-ceaf6abb5586,0,1,abc44046-a839-4c4a-8161-ecba29abc27d,abc44046-a839-4c4a-8161-ecba29abc27d,0,1,678188aa-76e7-49bc-a4be-1c55ccd625b1,678188aa-76e7-49bc-a4be-1c55ccd625b1,0,1,12dd81dd-31f5-47f2-a163-ea6c670299c5,12dd81dd-31f5-47f2-a163-ea6c670299c5,0,1,1b9e77bf-639a-4e81-a0fd-4f2bd66feeba,1b9e77bf-639a-4e81-a0fd-4f2bd66feeba,0,1,8238c710-09ff-473e-b0ed-40b31bfccab8,8238c710-09ff-473e-b0ed-40b31bfccab8,0,1,fe59f9ba-11e3-41ba-ac6f-4b4e3dbf35ae,fe59f9ba-11e3-41ba-ac6f-4b4e3dbf35ae,0,1,15845f89-0f9e-4a93-b7e8-ef101694b1b8,15845f89-0f9e-4a93-b7e8-ef101694b1b8,0,1,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,0,1,60f8daf5-06c2-4db6-8fea-5cbb72130113,60f8daf5-06c2-4db6-8fea-5cbb72130113,0,1,e389b86a-7a48-4b31-b5cb-27b3d7dfed82,e389b86a-7a48-4b31-b5cb-27b3d7dfed82,0,1,91e7c98e-fadf-4c08-bd76-1e4e4d140265,91e7c98e-fadf-4c08-bd76-1e4e4d140265,0,1,b3415b4a-d8de-4536-aa4b-82e75fd986ee,b3415b4a-d8de-4536-aa4b-82e75fd986ee,0,1,8247a93d-c2d3-4c9b-a442-619240d35113,8247a93d-c2d3-4c9b-a442-619240d35113,0,1,acc996ab-672a-4602-b7ad-8eee83557e61,acc996ab-672a-4602-b7ad-8eee83557e61,0,1,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,0,1,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,0,1,97745768-ed35-44f1-beba-abb8b28a29ae,97745768-ed35-44f1-beba-abb8b28a29ae,0,1,69364942-bcd1-4b06-9b57-fa59b4e7c552,69364942-bcd1-4b06-9b57-fa59b4e7c552,0,1,ab201c5f-4134-42cf-a528-c1c4df02f2d7,ab201c5f-4134-42cf-a528-c1c4df02f2d7,0,1,303fb7b5-6a23-40ea-ae12-b54f4ebae026,303fb7b5-6a23-40ea-ae12-b54f4ebae026,0,1,634cd26b-78f1-4446-8aad-b96ed16e5329,634cd26b-78f1-4446-8aad-b96ed16e5329,0,1,d8e62f1a-92ca-4971-9609-e79da798c083,d8e62f1a-92ca-4971-9609-e79da798c083,0,1,32012b27-1b43-49be-b9af-df0c877e7a4c,32012b27-1b43-49be-b9af-df0c877e7a4c,0,1,e97d5152-9e58-4a91-a691-b4d358f1c89d,e97d5152-9e58-4a91-a691-b4d358f1c89d,0,1,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,0,1,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,0,1,296c478b-4103-46cb-9d14-97f59034ffd4,296c478b-4103-46cb-9d14-97f59034ffd4,0,1,fb918a68-f86d-46c0-9078-61d2b32b5aef,fb918a68-f86d-46c0-9078-61d2b32b5aef,0,1,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,0,1,1ddfc773-4f3c-4764-978e-585aab4666de,1ddfc773-4f3c-4764-978e-585aab4666de,0,1,e424d122-1dbb-4545-975c-177997129f2e,e424d122-1dbb-4545-975c-177997129f2e,0,1,c83bc626-dfdd-4451-92b0-b53eed40f534,c83bc626-dfdd-4451-92b0-b53eed40f534,0,1,7b9b1d11-4f78-4113-8fca-1a3a30953aef,7b9b1d11-4f78-4113-8fca-1a3a30953aef,0,1,7f84cb85-c3e4-4b53-b829-3b1e216f978a,7f84cb85-c3e4-4b53-b829-3b1e216f978a,0,1,7e621ecc-7d2b-42bf-a502-f8e59de56b63,7e621ecc-7d2b-42bf-a502-f8e59de56b63,0,1,798fd445-d02e-4e97-890a-0283f33317cf,798fd445-d02e-4e97-890a-0283f33317cf,0,1,095583ca-010d-43ad-8c7a-8938fa4cb761,095583ca-010d-43ad-8c7a-8938fa4cb761,0,1,178d210c-e847-4805-a8d4-31acdf4983af,178d210c-e847-4805-a8d4-31acdf4983af,0,1,aa214d9f-23b1-4996-8a43-9010dceeb53d,aa214d9f-23b1-4996-8a43-9010dceeb53d,0,1,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,0,1,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,0,1,d9d103bd-1dd6-48a9-8869-6c8485705393,d9d103bd-1dd6-48a9-8869-6c8485705393,0,1,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,0,1,ff0e8487-bdbf-4b21-877e-00008c81bc09,ff0e8487-bdbf-4b21-877e-00008c81bc09,0,1,39c9f8ac-56a0-4057-8359-7228bf97184a,39c9f8ac-56a0-4057-8359-7228bf97184a,0,1,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,0,1,2c0dd892-1d3e-4497-850b-080bdb9c59d8,2c0dd892-1d3e-4497-850b-080bdb9c59d8,0,1,3b727d49-c9ed-4d9e-af61-c13b9a170c75,3b727d49-c9ed-4d9e-af61-c13b9a170c75,0,1,1b264744-bdcd-4c5c-932b-0ac4b990dd78,1b264744-bdcd-4c5c-932b-0ac4b990dd78,0,1,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,0,1,37bde288-8e02-4127-bd80-de8ae7590a14,37bde288-8e02-4127-bd80-de8ae7590a14,0,1,a9b8e517-78cd-4428-b2fc-9e16af0069d7,a9b8e517-78cd-4428-b2fc-9e16af0069d7,0,1,5c592024-c009-4674-bbb8-283669e673ef,5c592024-c009-4674-bbb8-283669e673ef,0,1,e76f16b9-77a0-4033-90d0-6e04e4494747,e76f16b9-77a0-4033-90d0-6e04e4494747,0,1,cfb221fc-8639-4e15-9a78-f7837d657a99,cfb221fc-8639-4e15-9a78-f7837d657a99,0,1,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,0,1,022147c1-1ebe-4c8d-b367-4c47115b101d,022147c1-1ebe-4c8d-b367-4c47115b101d,0,1,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,0,1,fca6b230-a38e-4791-9cc5-3d215f79dc6f,fca6b230-a38e-4791-9cc5-3d215f79dc6f,0,1,04e87de4-940a-4533-8c81-8f145b201dc0,04e87de4-940a-4533-8c81-8f145b201dc0,0,1,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,0,1,fa488af9-a5ec-47d8-8661-fa5058a60a6b,fa488af9-a5ec-47d8-8661-fa5058a60a6b,0,1,97cc84c6-3565-474c-a028-83acb5390446,97cc84c6-3565-474c-a028-83acb5390446,0,1,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,0,1,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,0,1,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,0,1,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,0,1,b366d7eb-626c-4c0c-b4cc-c392763e6e94,b366d7eb-626c-4c0c-b4cc-c392763e6e94,0,1,4c7e24aa-726a-4595-82ad-ef1e525b14fa,4c7e24aa-726a-4595-82ad-ef1e525b14fa,0,1,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,0,1,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,0,1,e849e46c-2ce6-427b-92bc-06d7997f59bf,e849e46c-2ce6-427b-92bc-06d7997f59bf,0,1,5a971dc0-28bf-4426-9426-9f456aea080a,5a971dc0-28bf-4426-9426-9f456aea080a,0,1,1e7684f0-1b3b-4a32-8602-dd0672c5a800,1e7684f0-1b3b-4a32-8602-dd0672c5a800,0,1,ab178a93-8570-43b6-ae42-f34a7cc4f359,ab178a93-8570-43b6-ae42-f34a7cc4f359,0,1,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,0,1,168e3189-2676-4cdb-bc9d-78d85df51faf,168e3189-2676-4cdb-bc9d-78d85df51faf,0,1,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,0,1,470bbff8-20d0-475c-a61a-1a09ac14c2db,470bbff8-20d0-475c-a61a-1a09ac14c2db,0,1,c37a660e-16c5-495e-9486-e61bcb693fa0,c37a660e-16c5-495e-9486-e61bcb693fa0,0,1,8f44ebad-1160-474e-a566-fb9da55ffcba,8f44ebad-1160-474e-a566-fb9da55ffcba,0,1,11cf336e-7890-4972-bf71-32d7416ff647,11cf336e-7890-4972-bf71-32d7416ff647,0,1,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,0,1,14bd3392-36cd-4ed0-8847-44375d6fb861,14bd3392-36cd-4ed0-8847-44375d6fb861,0,1,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,0,1,821b93bd-f0dd-4468-972a-d9b2b4de72f1,821b93bd-f0dd-4468-972a-d9b2b4de72f1,0,1,56900066-90e3-40c0-b64a-8f7964a4dfc1,56900066-90e3-40c0-b64a-8f7964a4dfc1,0,1,56f0c4d6-9b13-486a-9586-05e657dca8be,56f0c4d6-9b13-486a-9586-05e657dca8be,0,1,c795c0d3-6a0d-4311-9821-df320663727e,c795c0d3-6a0d-4311-9821-df320663727e,0,1,512b8d89-8798-4549-9e79-b9c3f7d9098f,512b8d89-8798-4549-9e79-b9c3f7d9098f,0,1,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,0,1,7f356abf-9045-4a76-89f3-8b52d467122a,7f356abf-9045-4a76-89f3-8b52d467122a,0,1,625a61ac-4ad0-4b31-aa67-9f864154b9c4,625a61ac-4ad0-4b31-aa67-9f864154b9c4,0,1,51fa8d01-44a1-4e75-9b04-6a2504972f08,51fa8d01-44a1-4e75-9b04-6a2504972f08,0,1,7dca913d-e37a-4740-8e3d-677d379605ee,7dca913d-e37a-4740-8e3d-677d379605ee,0,1,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,0,1,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,0,1,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,0,1,4cd4694f-17f8-43ba-8940-07628bd937fe,4cd4694f-17f8-43ba-8940-07628bd937fe,0,1,7df6c94b-3cfe-4764-988e-858d733e35d9,7df6c94b-3cfe-4764-988e-858d733e35d9,0,1,8b251c7d-2d55-4734-a1da-7f1115d95080,8b251c7d-2d55-4734-a1da-7f1115d95080,0,1,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,0,1,5a8c3621-595a-4168-8bba-a7f8d499e47e,5a8c3621-595a-4168-8bba-a7f8d499e47e,0,1,fc4cfed6-e492-4420-b357-8143a8c2a41a,fc4cfed6-e492-4420-b357-8143a8c2a41a,0,1,4311a250-64af-443e-a711-93b7c41175cf,4311a250-64af-443e-a711-93b7c41175cf,0,1,804b6c57-1d7b-4927-be5b-84b7959fe55e,804b6c57-1d7b-4927-be5b-84b7959fe55e,0,1,f2655d85-79ea-4736-8f41-94a4f9b2b998,f2655d85-79ea-4736-8f41-94a4f9b2b998,0,1,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,0,1,a8eb5ed9-df99-405b-afad-eeaa98956eee,a8eb5ed9-df99-405b-afad-eeaa98956eee,0,1,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,0,1,26a1279f-91f0-4632-ad7c-21cf2f524208,26a1279f-91f0-4632-ad7c-21cf2f524208,0,1,bf751ed0-ee47-4eaf-81bd-f0da00bef343,bf751ed0-ee47-4eaf-81bd-f0da00bef343,0,1,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,0,1,1f1def7c-e0ee-4963-afea-1751bf1b812c,1f1def7c-e0ee-4963-afea-1751bf1b812c,0,1,9a4c0898-ab56-425c-8191-5ab90f4e12bf,9a4c0898-ab56-425c-8191-5ab90f4e12bf,0,1,6841ec47-7a84-441a-b975-69d089072ce7,6841ec47-7a84-441a-b975-69d089072ce7,0,1,ead4001a-0d8a-4b95-8212-2a40e5aa6659,ead4001a-0d8a-4b95-8212-2a40e5aa6659,0,1,22165c8a-2179-4cd5-b195-bd2721e9e232,22165c8a-2179-4cd5-b195-bd2721e9e232,0,1,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,0,1,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,0,1,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,0,1,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,0,1,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,0,1,9d9debfd-4a10-4f09-9d09-2aa5e058b525,9d9debfd-4a10-4f09-9d09-2aa5e058b525,0,1,fc19586c-d89c-495c-b473-6f85967ed48e,fc19586c-d89c-495c-b473-6f85967ed48e,0,1,2ac7c701-a281-4e77-a5f8-294526021e2d,2ac7c701-a281-4e77-a5f8-294526021e2d,0,1,979df549-889d-496a-b6ce-c56d54c771b5,979df549-889d-496a-b6ce-c56d54c771b5,0,1,91b320d8-3426-44d3-97d7-c200287d7343,91b320d8-3426-44d3-97d7-c200287d7343,0,1,b9297f72-b40a-4adb-9975-bb693d4834a4,b9297f72-b40a-4adb-9975-bb693d4834a4,0,1,41cf3916-216f-4c4e-a587-82777f4263e0,41cf3916-216f-4c4e-a587-82777f4263e0,0,1,2ce3a350-86f1-4275-8299-3c3693ca11fa,2ce3a350-86f1-4275-8299-3c3693ca11fa,0,1,59f0ed15-c84c-4f41-bdd4-26317e4e914d,59f0ed15-c84c-4f41-bdd4-26317e4e914d,0,1,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,0,1,8fef790c-a3f4-460c-9093-5065cbdba196,8fef790c-a3f4-460c-9093-5065cbdba196,0,1,79bd24d0-61a9-4558-90ac-4e726066789c,79bd24d0-61a9-4558-90ac-4e726066789c,0,1,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,0,1,ef356548-51a4-4b09-b37d-ede5b8f3edb6,ef356548-51a4-4b09-b37d-ede5b8f3edb6,0,1,53c0d900-5e96-4381-a1ed-4424a5799608,53c0d900-5e96-4381-a1ed-4424a5799608,0,1,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,0,1,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,0,1,45ca9e20-1246-4400-a019-ffb521af6ea7,45ca9e20-1246-4400-a019-ffb521af6ea7,0,1,73eed854-5c3a-4a10-9bfa-793fd517f303,73eed854-5c3a-4a10-9bfa-793fd517f303,0,1,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,0,1,9134dc40-a8f1-4c60-9431-27cb98be5ecd,9134dc40-a8f1-4c60-9431-27cb98be5ecd,0,1,16c4622a-33af-4a95-b44e-0861a6df21d2,16c4622a-33af-4a95-b44e-0861a6df21d2,0,1,d8cac67b-cce2-4a00-a8df-c6570c50153f,d8cac67b-cce2-4a00-a8df-c6570c50153f,0,1,37213c65-bf26-4e50-a2fa-58eb45439b58,37213c65-bf26-4e50-a2fa-58eb45439b58,0,1,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,0,1,b6b31892-73ee-4c9b-92b0-2735536c4938,b6b31892-73ee-4c9b-92b0-2735536c4938,0,1,deb8b883-142e-47d0-a722-7c734a0cf9b3,deb8b883-142e-47d0-a722-7c734a0cf9b3,0,1,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,0,1,29233058-ccb1-4110-a9bc-cdb4c531f35a,29233058-ccb1-4110-a9bc-cdb4c531f35a,0,1,cf3729b2-9ee6-437c-81df-83966793be50,cf3729b2-9ee6-437c-81df-83966793be50,0,1,429d08b7-0b98-4f9b-a053-d04dd84a7026,429d08b7-0b98-4f9b-a053-d04dd84a7026,0,1,b64fd964-cee8-4619-872f-82d2fdc14240,b64fd964-cee8-4619-872f-82d2fdc14240,0,1,5ce7846d-9806-40f5-8631-4e14deb8bc95,5ce7846d-9806-40f5-8631-4e14deb8bc95,0,1,79528a0e-1e48-4d14-bd28-756fd5db57b9,79528a0e-1e48-4d14-bd28-756fd5db57b9,0,1,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,0,1,d9426219-4b37-4776-8d5d-acab5825e789,d9426219-4b37-4776-8d5d-acab5825e789,0,1,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,0,1,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,0,1,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,0,1,29e7299a-ce80-497a-8102-615d0a001ea8,29e7299a-ce80-497a-8102-615d0a001ea8,0,1,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,0,1,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,0,1,adc2cc11-b647-453f-a98e-8a73b7c368c7,adc2cc11-b647-453f-a98e-8a73b7c368c7,0,1,506bf43b-f7df-4b42-b614-e5925b45b5e9,506bf43b-f7df-4b42-b614-e5925b45b5e9,0,1,58570514-a2cf-4e09-ba7a-d9efd8178269,58570514-a2cf-4e09-ba7a-d9efd8178269,0,1,c23aa057-42f4-4167-9224-693e904598c6,c23aa057-42f4-4167-9224-693e904598c6,0,1,e449f91b-58c3-4d4b-a9f0-6870539afff2,e449f91b-58c3-4d4b-a9f0-6870539afff2,0,1,2943b572-7411-4f92-a6cc-7ee552b85223,2943b572-7411-4f92-a6cc-7ee552b85223,0,1,28478e7a-e8aa-40aa-866c-a3624f903141,28478e7a-e8aa-40aa-866c-a3624f903141,0,1,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,0,1,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,0,1,dabb3395-6100-4f53-913d-e0230e81b494,dabb3395-6100-4f53-913d-e0230e81b494,0,1,e0a3fae1-1582-4c7a-acd8-870b558acec4,e0a3fae1-1582-4c7a-acd8-870b558acec4,0,1,f3750ea4-5f9e-4ab3-9495-3f182ecff407,f3750ea4-5f9e-4ab3-9495-3f182ecff407,0,1,337bd150-beaa-44e6-b336-359e23f8babe,337bd150-beaa-44e6-b336-359e23f8babe,0,1,8e755ce0-c571-4ed5-b0bb-9470edcb7c73,8e755ce0-c571-4ed5-b0bb-9470edcb7c73,0,1,02e1c293-7302-4751-a248-4bbeed9cbad5,02e1c293-7302-4751-a248-4bbeed9cbad5,0,1,3a111e0d-6466-46fd-95a2-1798b6e51ba0,3a111e0d-6466-46fd-95a2-1798b6e51ba0,0,1,645edcb0-e358-4d32-a9a9-9534af0398ca,645edcb0-e358-4d32-a9a9-9534af0398ca,0,1,efa1b4e5-d16c-4921-a48a-fe700e39dc71,efa1b4e5-d16c-4921-a48a-fe700e39dc71,0,1,e93402db-e7dd-465e-8c62-2a41efd811b8,e93402db-e7dd-465e-8c62-2a41efd811b8,0,1,e0157f72-a362-4b9f-a272-68ca8078b91c,e0157f72-a362-4b9f-a272-68ca8078b91c,0,1,422155c7-1640-48c4-bb21-36595b405c66,422155c7-1640-48c4-bb21-36595b405c66,0,1,16d37b5a-88db-4787-b2de-fb50da0ca94b,16d37b5a-88db-4787-b2de-fb50da0ca94b,0,1,f653bcbf-5659-4605-9bb9-3737f19e79dd,f653bcbf-5659-4605-9bb9-3737f19e79dd,0,1,8b980868-fe63-49ff-ba3d-4c29732e1b90,8b980868-fe63-49ff-ba3d-4c29732e1b90,0,1,54668731-4963-4ec3-b188-9feacaefa182,54668731-4963-4ec3-b188-9feacaefa182,0,1,29b2104b-fd02-4d51-951f-51ea213b8ebd,29b2104b-fd02-4d51-951f-51ea213b8ebd,0,1,a9362ac4-85ee-4214-80c1-048fab769885,a9362ac4-85ee-4214-80c1-048fab769885,0,1,ba5c945e-554f-45a2-a2de-3157b2d7e931,ba5c945e-554f-45a2-a2de-3157b2d7e931,0,1,f7085f33-f122-4443-a3f5-4e765300175e,f7085f33-f122-4443-a3f5-4e765300175e,0,1,b7e4c512-b856-4679-a025-5f0f28918593,b7e4c512-b856-4679-a025-5f0f28918593,0,1,bba56b8f-a3f3-4d3f-9804-f9569bb1f6f3,bba56b8f-a3f3-4d3f-9804-f9569bb1f6f3,0,1,cff7ba79-9418-43a4-badc-3e3cc2f6bd5b,cff7ba79-9418-43a4-badc-3e3cc2f6bd5b,0,1,a4e89d2a-d6f7-4966-ac3c-57f1ef1d1a3a,a4e89d2a-d6f7-4966-ac3c-57f1ef1d1a3a,0,1,20f1114a-0b98-464f-aed8-80ce706b808e,20f1114a-0b98-464f-aed8-80ce706b808e,0,1,988b05ae-987a-4433-b446-bcc7bf5d9ea4,988b05ae-987a-4433-b446-bcc7bf5d9ea4,0,1,07e3de4e-28d9-48dc-9253-a2c39c34f827,07e3de4e-28d9-48dc-9253-a2c39c34f827,0,1,12ab57d3-ba96-46e9-86ef-2f3ba76fd5cb,12ab57d3-ba96-46e9-86ef-2f3ba76fd5cb,0,1,c147916d-1fb6-473d-bde0-8dd528dde8eb,c147916d-1fb6-473d-bde0-8dd528dde8eb,1,0,0b13cad5-91ae-4cd1-a620-9a315ae8024c,0b13cad5-91ae-4cd1-a620-9a315ae8024c,1,0,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,1,0,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,1,0,81dd61e5-fe02-4272-a525-affda9b606ca,81dd61e5-fe02-4272-a525-affda9b606ca,1,0,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,1,0,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,1,0,80c23bf0-cef0-4d07-a017-d90635f8041d,80c23bf0-cef0-4d07-a017-d90635f8041d,1,0,72dcfd46-491e-4f88-a0ea-57919f8fbdea,72dcfd46-491e-4f88-a0ea-57919f8fbdea,1,0,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,0,1,a75ed1c8-20c2-49a8-a730-22237ef91366,a75ed1c8-20c2-49a8-a730-22237ef91366,0,1,1c0ebdfd-1913-48fe-b80a-10c30201129b,1c0ebdfd-1913-48fe-b80a-10c30201129b,0,1,22ad3db7-1ad3-4868-8598-b0b90db3fa1f,22ad3db7-1ad3-4868-8598-b0b90db3fa1f,0,1,14025e38-09af-43b2-a49b-403e398a28ea,14025e38-09af-43b2-a49b-403e398a28ea,0,1,62eff222-7b74-4cab-9138-880db1f05147,62eff222-7b74-4cab-9138-880db1f05147,0,1,39c6c277-cfc6-4e8a-8e7f-afcff55f0511,39c6c277-cfc6-4e8a-8e7f-afcff55f0511,0,1,21b8ac8d-75ca-481c-8e85-01bc2029f0c0,21b8ac8d-75ca-481c-8e85-01bc2029f0c0,1,0,d5012e69-89bc-40af-8e4f-377a042854ee,d5012e69-89bc-40af-8e4f-377a042854ee,1,0,02f79fd8-5315-4c90-b520-db67dcb6e371,02f79fd8-5315-4c90-b520-db67dcb6e371,1,0,7f90681d-6534-40ee-bbb7-5356c0ed9de2,7f90681d-6534-40ee-bbb7-5356c0ed9de2,1,0,d1aca4be-1e1e-4bbd-b0a6-a68bc7c8c586,d1aca4be-1e1e-4bbd-b0a6-a68bc7c8c586,1,0,9bb52788-4a3a-48b5-a551-5ca753b6c059,9bb52788-4a3a-48b5-a551-5ca753b6c059,1,0,4fb5004f-3cd9-44c4-a44b-d235cccf9e9c,4fb5004f-3cd9-44c4-a44b-d235cccf9e9c,1,0,872a0c47-fab5-4a54-8ab9-23940bbdefbb,872a0c47-fab5-4a54-8ab9-23940bbdefbb,1,0,7428a626-3fbc-4f2c-a3dd-f14e8d90c00b,7428a626-3fbc-4f2c-a3dd-f14e8d90c00b,1,0,ec1755ed-d203-4548-9f1d-dd62ce331ecf,ec1755ed-d203-4548-9f1d-dd62ce331ecf,1,0,d59c2725-5d98-495e-9f86-f5d38dbfad90,d59c2725-5d98-495e-9f86-f5d38dbfad90,1,0,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,1,0,0ba68198-983d-409b-be27-96f1572b3f12,0ba68198-983d-409b-be27-96f1572b3f12,1,0,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,1,0,decb27a8-7dd3-4601-a694-30429e638b39,decb27a8-7dd3-4601-a694-30429e638b39,1,0,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,1,0,d7a128e4-f31f-4b09-8424-e816ab59d5c3,d7a128e4-f31f-4b09-8424-e816ab59d5c3,1,0,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,1,0,aa9513b4-f575-4030-a7f9-ac09aa319e98,aa9513b4-f575-4030-a7f9-ac09aa319e98,1,0,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,1,0,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,1,0,d03f66b1-48a3-434b-bb58-9fd53c183514,d03f66b1-48a3-434b-bb58-9fd53c183514,1,0,a469e55e-d7ca-4c27-b350-fafe7364c18f,a469e55e-d7ca-4c27-b350-fafe7364c18f,0,1,1a4991f8-7832-4ca9-8809-88a97de88749,1a4991f8-7832-4ca9-8809-88a97de88749,0,1,4f44c1c0-0480-415e-8058-41b28f2f43a0,4f44c1c0-0480-415e-8058-41b28f2f43a0,0,1,3b708ec7-6543-40ff-8ea2-16d4ddb7d56f,3b708ec7-6543-40ff-8ea2-16d4ddb7d56f,0,1,433e502d-ab5c-4e8e-a7c0-0fde1aa6f767,433e502d-ab5c-4e8e-a7c0-0fde1aa6f767,0,1,6bd65f02-9531-4dd4-bd4a-4132aa3c4787,6bd65f02-9531-4dd4-bd4a-4132aa3c4787,0,1,5d9863e6-aab7-4808-a516-8bc42dae5d01,5d9863e6-aab7-4808-a516-8bc42dae5d01,0,1,a2910bb8-fdd2-480c-8ae2-78661d7d18e0,a2910bb8-fdd2-480c-8ae2-78661d7d18e0,0,1,218302fa-674d-45e1-a7e2-2cce2d011342,218302fa-674d-45e1-a7e2-2cce2d011342,0,1,70264a0a-95c5-426f-a1bf-0f57b86d4030,70264a0a-95c5-426f-a1bf-0f57b86d4030,0,1,ba3ba1ac-e7c6-4bab-9771-4ef522011c52,ba3ba1ac-e7c6-4bab-9771-4ef522011c52,0,1,3291428e-6727-43cc-a1f8-c62f90320e90,3291428e-6727-43cc-a1f8-c62f90320e90,0,1,d867720c-c937-4689-b241-0afda05ef993,d867720c-c937-4689-b241-0afda05ef993,0,1,1390da8f-bac6-44ee-8413-1438f1f66074,1390da8f-bac6-44ee-8413-1438f1f66074,0,1,9616956d-a537-44fd-9d3f-5071fb5f4883,9616956d-a537-44fd-9d3f-5071fb5f4883,0,1,4ad1eed9-89ff-4086-b0ff-4eadcebcdce9,4ad1eed9-89ff-4086-b0ff-4eadcebcdce9,0,1,41d31712-6181-4cfe-9aa4-02b7a50150b0,41d31712-6181-4cfe-9aa4-02b7a50150b0,1,0,3ad5d8a7-3071-46aa-aebf-306bdb67983b,3ad5d8a7-3071-46aa-aebf-306bdb67983b,1,0,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,1,0,cb954476-c551-4a06-9bcd-18d67ba47dc8,cb954476-c551-4a06-9bcd-18d67ba47dc8,1,0,79201015-bfae-463e-81f1-0ae2d3066f3f,79201015-bfae-463e-81f1-0ae2d3066f3f,0,1,a6d48910-d526-4e8f-9414-ca776a7edaa3,a6d48910-d526-4e8f-9414-ca776a7edaa3,0,1,1e8cd163-ca9b-42eb-b8c9-c3d44e7e486b,1e8cd163-ca9b-42eb-b8c9-c3d44e7e486b,0,1,6bf8f383-af77-4be9-bda4-4d4220dfe374,6bf8f383-af77-4be9-bda4-4d4220dfe374,0,1,b5c92c97-c4d2-4b4c-86be-035bfd17f905,b5c92c97-c4d2-4b4c-86be-035bfd17f905,0,1,a5bb3835-9dcf-4924-9c96-695e5173d702,a5bb3835-9dcf-4924-9c96-695e5173d702,0,1,afa26db4-77a4-437c-965a-fefc6086c1a1,afa26db4-77a4-437c-965a-fefc6086c1a1,0,1,7e005845-c321-4529-b112-2dec63720195,7e005845-c321-4529-b112-2dec63720195,0,1,48f7b074-2e43-4221-a36c-e2e30c22def6,48f7b074-2e43-4221-a36c-e2e30c22def6,0,1,df2f5d28-b460-4692-861d-fbe39cb726b6,df2f5d28-b460-4692-861d-fbe39cb726b6,0,1,b6c94efd-5994-4c4c-a641-b062ecc38b65,b6c94efd-5994-4c4c-a641-b062ecc38b65,0,1,98501228-7f0e-45a3-b58f-4c654f393f80,98501228-7f0e-45a3-b58f-4c654f393f80,0,1,b773f510-1485-4886-9071-afcbf49ff856,b773f510-1485-4886-9071-afcbf49ff856,0,1,50968921-76f3-4108-835a-96b153671c8d,50968921-76f3-4108-835a-96b153671c8d,0,1,d5b586ed-0756-4488-90c8-f74f1ef81c82,d5b586ed-0756-4488-90c8-f74f1ef81c82,0,1,2178ab47-1bb1-4fe0-940d-6876b66333c1,2178ab47-1bb1-4fe0-940d-6876b66333c1,0,1,8cc09f48-2ef2-434b-b33e-ab9b021816de,8cc09f48-2ef2-434b-b33e-ab9b021816de,0,1,2ca1741b-1e65-4a54-a4a5-489e73cfb4f3,2ca1741b-1e65-4a54-a4a5-489e73cfb4f3,0,1,360b086c-53e3-4514-a4f5-9379ab368b76,360b086c-53e3-4514-a4f5-9379ab368b76,0,1,e6feefa1-7298-4ab0-85d3-9abee571a627,e6feefa1-7298-4ab0-85d3-9abee571a627,0,1,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,0,1,df459525-4e4d-4819-b996-5a6379b22a88,df459525-4e4d-4819-b996-5a6379b22a88,0,1,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,0,1,e67b4a32-4bac-450e-be6d-88c262383f31,e67b4a32-4bac-450e-be6d-88c262383f31,0,1,440d115d-a769-427e-891a-88d65fba2057,440d115d-a769-427e-891a-88d65fba2057,0,1,f7932210-027e-4fad-b7f7-3530789ce803,f7932210-027e-4fad-b7f7-3530789ce803,0,1,7bbfd95e-39a1-485b-930f-c9210c18dcd0,7bbfd95e-39a1-485b-930f-c9210c18dcd0,0,1,4975d3d6-b5a2-41c6-973b-6817013a388d,4975d3d6-b5a2-41c6-973b-6817013a388d,0,1,18ebc799-9724-4ffb-855e-b09a0723869e,18ebc799-9724-4ffb-855e-b09a0723869e,0,1,a06b8ef5-83e6-4fc6-91e1-256004134d69,a06b8ef5-83e6-4fc6-91e1-256004134d69,0,1,1d6a68ec-917f-4c3b-b970-797a6921cbc9,1d6a68ec-917f-4c3b-b970-797a6921cbc9,0,1,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,0,1,0f5f136c-688b-491e-a72b-3d9c2e609f0e,0f5f136c-688b-491e-a72b-3d9c2e609f0e,0,1,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,0,1,679cc0df-df5c-4c33-8c64-c0b6cee39116,679cc0df-df5c-4c33-8c64-c0b6cee39116,0,1,17aadd5f-cda2-4785-a07f-3ab4b04434a6,17aadd5f-cda2-4785-a07f-3ab4b04434a6,0,1,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,0,1,1832336e-32f6-42c4-9087-8614ead52bb3,1832336e-32f6-42c4-9087-8614ead52bb3,0,1,ff9f7b5c-70f4-4eed-8216-64448e7da76f,ff9f7b5c-70f4-4eed-8216-64448e7da76f,0,1,44ac2869-990d-4cac-a14b-c1a28854341e,44ac2869-990d-4cac-a14b-c1a28854341e,0,1,d5df31c3-89f9-469c-80a9-fb4706d30bc4,d5df31c3-89f9-469c-80a9-fb4706d30bc4,0,1,105cd740-1f60-45e1-871c-adeecd291b0d,105cd740-1f60-45e1-871c-adeecd291b0d,0,1,95aec7d2-179b-4ea3-a3df-3d737b713564,95aec7d2-179b-4ea3-a3df-3d737b713564,0,1,4bd1cae4-d5b5-444e-9cf5-67a969714293,4bd1cae4-d5b5-444e-9cf5-67a969714293,0,1,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,0,1,f279a625-b88f-43b4-bce9-de1186fe7d7e,f279a625-b88f-43b4-bce9-de1186fe7d7e,1,0,01579044-5659-4a73-a989-c52cfabaae66,01579044-5659-4a73-a989-c52cfabaae66,1,0,9b8509e8-8262-4e6a-b2f3-a0df8f49e2c5,9b8509e8-8262-4e6a-b2f3-a0df8f49e2c5,1,0,6a798c80-459f-49ef-a8c2-83842ce4252c,6a798c80-459f-49ef-a8c2-83842ce4252c,1,0,911baaa1-a4de-4558-b00e-51644144a762,911baaa1-a4de-4558-b00e-51644144a762,1,0,d6400a59-6e02-4212-bb5a-9e49767aa8d6,d6400a59-6e02-4212-bb5a-9e49767aa8d6,1,0,6016d26e-fe39-4c16-b2b5-15f8c663125e,6016d26e-fe39-4c16-b2b5-15f8c663125e,1,0,6c19d9b0-1a41-4f82-a289-9fe05e272079,6c19d9b0-1a41-4f82-a289-9fe05e272079,1,0,df8063e2-47f1-4230-8e3c-eeee2143c72a,df8063e2-47f1-4230-8e3c-eeee2143c72a,1,0,89856ba2-f39a-41cd-be94-61243c6a0b96,89856ba2-f39a-41cd-be94-61243c6a0b96,1,0,8bdb0483-6ea9-4553-91ac-9cde267aae19,8bdb0483-6ea9-4553-91ac-9cde267aae19,1,0,56c9fa68-467b-4c1b-813e-6bc7ac0375cb,56c9fa68-467b-4c1b-813e-6bc7ac0375cb,1,0,bf30f5a1-6542-469f-b3fe-eee726110ffb,bf30f5a1-6542-469f-b3fe-eee726110ffb,1,0,13367a31-c2c9-43ea-b248-8a92e95ecd53,13367a31-c2c9-43ea-b248-8a92e95ecd53,1,0,8a8ad123-c01a-440a-bd01-1c0da72cf2eb,8a8ad123-c01a-440a-bd01-1c0da72cf2eb,1,0,ca4ef957-36c2-43b9-8ff7-e2b7ee58cde5,ca4ef957-36c2-43b9-8ff7-e2b7ee58cde5,1,0,4e036eff-92a8-4010-89b2-ed949c123311,4e036eff-92a8-4010-89b2-ed949c123311,1,0,38160114-dc22-4d0b-86a5-d650f4756932,38160114-dc22-4d0b-86a5-d650f4756932,1,0,50ee876f-6860-443b-9857-aca772d711ea,50ee876f-6860-443b-9857-aca772d711ea,1,0,6955edb2-d481-432c-b282-58dc07fd067b,6955edb2-d481-432c-b282-58dc07fd067b,0,1,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,0,1,58b33683-1916-4aef-9b98-5569ef7782ed,58b33683-1916-4aef-9b98-5569ef7782ed,0,1,d3e1f622-f438-4cad-94ae-0272f51610f7,d3e1f622-f438-4cad-94ae-0272f51610f7,0,1,64ac2c2a-2726-4ab9-9a6a-3d08f3fc0618,64ac2c2a-2726-4ab9-9a6a-3d08f3fc0618,0,1,8569cd73-d40d-4d92-83e0-8ece0c03a86a,8569cd73-d40d-4d92-83e0-8ece0c03a86a,0,1,6a675752-fd31-46a5-8a62-2a1ede437c68,6a675752-fd31-46a5-8a62-2a1ede437c68,0,1,bf29c091-de15-4cd4-be0e-a9785f97d444,bf29c091-de15-4cd4-be0e-a9785f97d444,1,0,060b2bb4-ca03-4da9-930f-7f91f6299a35,060b2bb4-ca03-4da9-930f-7f91f6299a35,1,0,394b1a1c-a7ae-41b7-a346-4bac99fa567d,394b1a1c-a7ae-41b7-a346-4bac99fa567d,1,0,9a5fa511-59e8-4a1b-a101-f276f0b7b261,9a5fa511-59e8-4a1b-a101-f276f0b7b261,1,0,ccfe4e36-80b6-419f-8bb3-c1046203d023,ccfe4e36-80b6-419f-8bb3-c1046203d023,0,1,60aaa289-1f07-438c-8f10-81058ac671c3,60aaa289-1f07-438c-8f10-81058ac671c3,0,1,7312a4ab-a269-4d85-a2c2-25bd5c5dc59c,7312a4ab-a269-4d85-a2c2-25bd5c5dc59c,0,1,c44b0868-bd7f-4230-973b-544ff4dd2afe,c44b0868-bd7f-4230-973b-544ff4dd2afe,0,1,51e6a6f9-ce9d-4cb0-a40c-384ede074e07,51e6a6f9-ce9d-4cb0-a40c-384ede074e07,0,1,6236ac73-5b9f-4fb5-bb2c-a5d8e205c5db,6236ac73-5b9f-4fb5-bb2c-a5d8e205c5db,0,1,ac028c56-b2a8-4a9b-a325-554c636f838e,ac028c56-b2a8-4a9b-a325-554c636f838e,0,1,55b9650e-098b-4d44-9fb5-d525b46f014b,55b9650e-098b-4d44-9fb5-d525b46f014b,0,1,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,0,1,bc55dc06-a769-40be-9c99-0794bdd2dbea,bc55dc06-a769-40be-9c99-0794bdd2dbea,0,1,7861e179-96d2-422f-a7c2-b38b59074956,7861e179-96d2-422f-a7c2-b38b59074956,0,1,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,0,1,3797b4c6-e336-4cbe-8d0b-0902e1247b42,3797b4c6-e336-4cbe-8d0b-0902e1247b42,0,1,67ebc493-d29a-4614-890a-feb8b5bd884b,67ebc493-d29a-4614-890a-feb8b5bd884b,0,1,d65c8992-aabc-4b67-9893-01862231ebe1,d65c8992-aabc-4b67-9893-01862231ebe1,0,1,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,0,1,dba6cb38-79c6-4060-87c5-a993548f36c4,dba6cb38-79c6-4060-87c5-a993548f36c4,0,1,6b44227a-e226-4bcb-8638-06b49f830669,6b44227a-e226-4bcb-8638-06b49f830669,0,1,f2406400-87e9-4df2-bcd3-8f1e3ad62088,f2406400-87e9-4df2-bcd3-8f1e3ad62088,0,1,4bb7372a-87a9-426e-b09f-fc0110455b10,4bb7372a-87a9-426e-b09f-fc0110455b10,0,1,8de9ba9e-0f4b-4bc5-8c62-e77601e6d865,8de9ba9e-0f4b-4bc5-8c62-e77601e6d865,0,1,fee371a3-fea1-4ef0-a324-b38d038d162d,fee371a3-fea1-4ef0-a324-b38d038d162d,0,1,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,0,1,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,0,1,32eb2a75-ff35-4795-bf0c-12b1328441ee,32eb2a75-ff35-4795-bf0c-12b1328441ee,0,1,0ddeed48-b98a-47c3-84a2-2eac065be06c,0ddeed48-b98a-47c3-84a2-2eac065be06c,0,1,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,0,1,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,0,1,a720abc8-dcf0-4684-8d94-22d394a8e4df,a720abc8-dcf0-4684-8d94-22d394a8e4df,0,1,e40f53de-c27b-4e74-8241-f784d7ca5c84,e40f53de-c27b-4e74-8241-f784d7ca5c84,0,1,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,0,1,5251e744-666e-48a0-a5b4-9cef313c7631,5251e744-666e-48a0-a5b4-9cef313c7631,0,1,0b09cf2f-1759-4362-b997-29e09ac00445,0b09cf2f-1759-4362-b997-29e09ac00445,0,1,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,0,1,828ddf5d-ca09-4baf-897f-77d569e02a6b,828ddf5d-ca09-4baf-897f-77d569e02a6b,0,1,8856015c-a695-4b1a-99ef-770263f9dc4a,8856015c-a695-4b1a-99ef-770263f9dc4a,0,1,183ec2b5-e173-4885-9e26-1098ffa15020,183ec2b5-e173-4885-9e26-1098ffa15020,0,1,74702fdf-bfc5-4658-ba58-e39bcfbaa647,74702fdf-bfc5-4658-ba58-e39bcfbaa647,0,1,2f436ec3-6a04-4d2c-998a-c60ea875ca86,2f436ec3-6a04-4d2c-998a-c60ea875ca86,0,1,876e31ff-ab7b-4ea4-b491-161963727dd1,876e31ff-ab7b-4ea4-b491-161963727dd1,0,1,bb43995b-68b4-41a1-8458-e10a2d8925f1,bb43995b-68b4-41a1-8458-e10a2d8925f1,0,1,61730dd9-fed7-43ce-8f38-724cac8f3d08,61730dd9-fed7-43ce-8f38-724cac8f3d08,0,1,e6a494b8-27e7-46a6-9435-7be6e150a69e,e6a494b8-27e7-46a6-9435-7be6e150a69e,0,1,133dc852-59d3-4351-934d-8845f8a38431,133dc852-59d3-4351-934d-8845f8a38431,0,1,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,0,1,b57eca91-04c2-4412-b5e2-f3c71f8ec602,b57eca91-04c2-4412-b5e2-f3c71f8ec602,0,1,b67914a8-d483-4bed-bd4d-a4aadd4998a4,b67914a8-d483-4bed-bd4d-a4aadd4998a4,0,1,744a52c8-6e4d-4356-a35a-3d2b01ad4a9f,744a52c8-6e4d-4356-a35a-3d2b01ad4a9f,0,1,6f630213-c16c-421c-a160-09e3c729ab26,6f630213-c16c-421c-a160-09e3c729ab26,0,1,878c638c-7c84-4914-896a-d4fdf0d759ef,878c638c-7c84-4914-896a-d4fdf0d759ef,0,1,6065653e-b7a9-4033-9617-f64430c57d89,6065653e-b7a9-4033-9617-f64430c57d89,0,1,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,0,1,00d1d85b-c258-4f10-9d13-a99375a29fc1,00d1d85b-c258-4f10-9d13-a99375a29fc1,1,0,dba174fb-8392-4451-8069-ae8145658e34,dba174fb-8392-4451-8069-ae8145658e34,1,0,ff5dd4f8-8a16-4a41-875d-c4f7c37ae67a,ff5dd4f8-8a16-4a41-875d-c4f7c37ae67a,1,0,4435d99d-a1df-43e6-97ab-5e651017c61d,4435d99d-a1df-43e6-97ab-5e651017c61d,1,0,fb58d277-b2a5-4a72-8d45-170c6f6263f9,fb58d277-b2a5-4a72-8d45-170c6f6263f9,1,0,325ed391-8558-4f03-9784-cde1f2a32944,325ed391-8558-4f03-9784-cde1f2a32944,1,0,f6cda05a-0f8f-4aa2-9686-1735c4207db3,f6cda05a-0f8f-4aa2-9686-1735c4207db3,1,0,0761ea58-8358-49ba-8e2d-e6afe88f6899,0761ea58-8358-49ba-8e2d-e6afe88f6899,1,0,da09e340-7cc0-4830-917a-5a59c42bbbf7,da09e340-7cc0-4830-917a-5a59c42bbbf7,1,0,c325aa12-9564-4033-8d3e-3103df55427f,c325aa12-9564-4033-8d3e-3103df55427f,1,0,9f4d4834-6994-4573-b99d-a5051746e5f9,9f4d4834-6994-4573-b99d-a5051746e5f9,1,0,c8ef3db5-2562-4f80-a679-86c2ba288ebf,c8ef3db5-2562-4f80-a679-86c2ba288ebf,1,0,2398d69d-ecdd-4d34-bdae-34ed5507a61e,2398d69d-ecdd-4d34-bdae-34ed5507a61e,1,0,a707035a-0172-4b55-b589-fa4a8be9b596,a707035a-0172-4b55-b589-fa4a8be9b596,1,0,c4456e94-8c76-49b1-b85a-433e0f65bdb0,c4456e94-8c76-49b1-b85a-433e0f65bdb0,1,0,4a347209-3a07-48ea-b407-6ee37f1d69f2,4a347209-3a07-48ea-b407-6ee37f1d69f2,1,0,1e30131d-2eb4-4d15-a4e5-93822980d0c5,1e30131d-2eb4-4d15-a4e5-93822980d0c5,1,0,d6527a4b-76a9-4df3-b2ff-bac72ae76b01,d6527a4b-76a9-4df3-b2ff-bac72ae76b01,0,1,af071a52-212b-4131-98e6-81f6048a70e6,af071a52-212b-4131-98e6-81f6048a70e6,0,1,64eff9f4-c57b-40a0-bd83-7e371fd010ce,64eff9f4-c57b-40a0-bd83-7e371fd010ce,0,1,0eee931a-57bb-4844-8e6e-eaca342640a0,0eee931a-57bb-4844-8e6e-eaca342640a0,0,1,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,0,1,37210dde-9a2f-475c-8341-578ac99f0e17,37210dde-9a2f-475c-8341-578ac99f0e17,0,1,3d662173-e19d-4077-9a08-8c8899226e24,3d662173-e19d-4077-9a08-8c8899226e24,0,1,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,0,1,3a8fffb6-a732-440c-afb9-d1c699ea53b6,3a8fffb6-a732-440c-afb9-d1c699ea53b6,0,1,a21989bd-a57f-4969-be3b-d8b39ead4145,a21989bd-a57f-4969-be3b-d8b39ead4145,0,1,c4aee120-cdbb-4b48-a1c7-99cccbafb120,c4aee120-cdbb-4b48-a1c7-99cccbafb120,0,1,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,0,1,a3667b25-7c18-446d-a318-685a4fe4bf89,a3667b25-7c18-446d-a318-685a4fe4bf89,0,1,8103f12c-ed50-4052-8117-33b6d11ef620,8103f12c-ed50-4052-8117-33b6d11ef620,1,0,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,1,0,4378ab20-5467-476b-8f04-4b6876efdee6,4378ab20-5467-476b-8f04-4b6876efdee6,1,0,55e47901-c79c-41c5-9d7f-6b6846ed2782,55e47901-c79c-41c5-9d7f-6b6846ed2782,0,1,3c429fe8-e663-4a58-817f-8f8382697dbb,3c429fe8-e663-4a58-817f-8f8382697dbb,0,1,c37be0c3-d2db-4e63-a8cb-7956a5396650,c37be0c3-d2db-4e63-a8cb-7956a5396650,0,1,83180e0d-fc4b-41ec-9a17-5af555a4776f,83180e0d-fc4b-41ec-9a17-5af555a4776f,0,1,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,0,1,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,0,1,3e8c6546-416c-4437-8c85-2cf591b4fc3f,3e8c6546-416c-4437-8c85-2cf591b4fc3f,0,1,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,0,1,9a0b27db-e4ac-496b-b6de-876b90381527,9a0b27db-e4ac-496b-b6de-876b90381527,0,1,20d655a7-788c-48bc-83ae-25003106bedb,20d655a7-788c-48bc-83ae-25003106bedb,0,1,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,0,1,68a72014-4b2e-4347-aaa7-54d95b8eb919,68a72014-4b2e-4347-aaa7-54d95b8eb919,0,1,a71d9c41-7510-4d38-90df-1034977b8f45,a71d9c41-7510-4d38-90df-1034977b8f45,0,1,25830f5b-27e2-4eff-9728-b21eb498727d,25830f5b-27e2-4eff-9728-b21eb498727d,0,1,379c9295-d0d5-418d-82f3-5ae19985cc53,379c9295-d0d5-418d-82f3-5ae19985cc53,0,1,af02f534-8508-4f9f-bcc1-0c6f3d696971,af02f534-8508-4f9f-bcc1-0c6f3d696971,0,1,dd345cfb-ea0c-4ea8-9b35-22547b000275,dd345cfb-ea0c-4ea8-9b35-22547b000275,0,1,86a871da-3725-43a1-a7c3-98acd187011b,86a871da-3725-43a1-a7c3-98acd187011b,0,1,fb94e9cb-1f27-42a6-a701-18bbe5888e70,fb94e9cb-1f27-42a6-a701-18bbe5888e70,0,1,2e26e32e-a0c6-4460-99de-865622202166,2e26e32e-a0c6-4460-99de-865622202166,0,1,5ef026c2-2ef4-45d6-9792-5ba0d298714b,5ef026c2-2ef4-45d6-9792-5ba0d298714b,0,1,45d61391-4cf7-4f45-8775-ada582c42400,45d61391-4cf7-4f45-8775-ada582c42400,0,1,78b2a913-2ab9-455d-85a3-504f0f468468,78b2a913-2ab9-455d-85a3-504f0f468468,0,1,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,0,1,560b5b12-4dee-4c69-ab6b-7680757a2797,560b5b12-4dee-4c69-ab6b-7680757a2797,0,1,3cfb1ce0-de42-4914-85c0-807d0c10f77e,3cfb1ce0-de42-4914-85c0-807d0c10f77e,0,1,d4ca4802-756a-494c-bab3-e77e0777a3fa,d4ca4802-756a-494c-bab3-e77e0777a3fa,0,1,134c1054-8d65-405f-ba3b-5beeca803a72,134c1054-8d65-405f-ba3b-5beeca803a72,0,1,cfa1669b-5310-4171-83fd-4dff3c6ac345,cfa1669b-5310-4171-83fd-4dff3c6ac345,0,1,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,0,1,8f17ec3f-6d62-46b8-baef-b20430e948ce,8f17ec3f-6d62-46b8-baef-b20430e948ce,0,1,ea1298d0-9396-4a50-b83e-24064e8dd99d,ea1298d0-9396-4a50-b83e-24064e8dd99d,0,1,038dbb00-e4c6-4e64-b861-3a0764f54ab3,038dbb00-e4c6-4e64-b861-3a0764f54ab3,0,1,1c291f7d-a493-4297-8aaa-912896800066,1c291f7d-a493-4297-8aaa-912896800066,0,1,69149801-a825-4ed2-b077-c26660dff271,69149801-a825-4ed2-b077-c26660dff271,0,1,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,0,1,518ab687-b84a-40c8-8547-aee4257c1b71,518ab687-b84a-40c8-8547-aee4257c1b71,0,1,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,0,1,7732ef07-16eb-46a0-9645-7de95c5482af,7732ef07-16eb-46a0-9645-7de95c5482af,0,1,75dac536-b316-4b04-a57b-03656c678bec,75dac536-b316-4b04-a57b-03656c678bec,0,1,a07d6c85-159d-4d09-b117-561a1e20329f,a07d6c85-159d-4d09-b117-561a1e20329f,0,1,8a2f9733-4f83-41f2-9d74-dca7161a4b41,8a2f9733-4f83-41f2-9d74-dca7161a4b41,0,1,fbd2d900-1e0d-48f3-9793-0186ee49915c,fbd2d900-1e0d-48f3-9793-0186ee49915c,0,1,112401b8-2800-4ed2-b620-7e1c1cacef2b,112401b8-2800-4ed2-b620-7e1c1cacef2b,0,1,6738abb6-483b-422d-9c4c-6fb6f8fee2cb,6738abb6-483b-422d-9c4c-6fb6f8fee2cb,0,1,742f14c0-a601-4cc1-9b89-b05cda5a2aac,742f14c0-a601-4cc1-9b89-b05cda5a2aac,0,1,2aaf3896-f7b2-405b-ac47-b4999ede382e,2aaf3896-f7b2-405b-ac47-b4999ede382e,0,1,f470a359-5c0c-4cd9-b470-b08b5f9dcd9f,f470a359-5c0c-4cd9-b470-b08b5f9dcd9f,0,1,c2a2daf0-b4dd-4a22-a0da-8325ff098cc3,c2a2daf0-b4dd-4a22-a0da-8325ff098cc3,0,1,f9484b9d-150f-4f1b-9041-4af10bf25ca6,f9484b9d-150f-4f1b-9041-4af10bf25ca6,0,1,795ffcdc-30cf-45a8-821a-66afdd86f7b3,795ffcdc-30cf-45a8-821a-66afdd86f7b3,0,1,227cb2ed-98df-441f-afd8-499e75dc6666,227cb2ed-98df-441f-afd8-499e75dc6666,0,1,07b55200-f01f-4d4e-a7a9-01b99301e8a0,07b55200-f01f-4d4e-a7a9-01b99301e8a0,0,1,40e2fb30-bb03-4178-a8eb-ddf48337ef23,40e2fb30-bb03-4178-a8eb-ddf48337ef23,0,1,1026fbcb-acd8-40dc-b638-6e02c6378c55,1026fbcb-acd8-40dc-b638-6e02c6378c55,0,1,dc9e2ba6-f4f1-493f-9054-cac633f239dd,dc9e2ba6-f4f1-493f-9054-cac633f239dd,0,1,7b95d0b1-c7b2-43b4-9119-320cb8912032,7b95d0b1-c7b2-43b4-9119-320cb8912032,0,1,004582b7-00aa-405e-8e24-ce76c945edae,004582b7-00aa-405e-8e24-ce76c945edae,0,1,97a9b005-a836-4308-8e63-0e00f6890baa,97a9b005-a836-4308-8e63-0e00f6890baa,0,1,98c34ada-0b78-41db-9183-6d7b9e466bde,98c34ada-0b78-41db-9183-6d7b9e466bde,0,1,fb688339-918e-40a1-8721-a26f3077973e,fb688339-918e-40a1-8721-a26f3077973e,0,1,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1,0,d1b6c5e8-7625-43aa-bb11-943c9bfa01b7,d1b6c5e8-7625-43aa-bb11-943c9bfa01b7,1,0,83d23220-0226-4efe-a81c-6809459443a2,83d23220-0226-4efe-a81c-6809459443a2,1,0,ee30252f-ea25-4d50-b49c-163514bee342,ee30252f-ea25-4d50-b49c-163514bee342,1,0,02afc219-6b86-4282-ab6f-2688203542b7,02afc219-6b86-4282-ab6f-2688203542b7,1,0,dabae379-6356-497a-aab5-cf102f16a72a,dabae379-6356-497a-aab5-cf102f16a72a,1,0,337370e0-1021-4887-9d38-6c3833c90a5b,337370e0-1021-4887-9d38-6c3833c90a5b,1,0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,1,0,d6f01f1c-801b-4776-ae11-48236103f76a,d6f01f1c-801b-4776-ae11-48236103f76a,1,0,b6fe68cf-657b-40e0-af2e-247607a86519,b6fe68cf-657b-40e0-af2e-247607a86519,1,0,9b0b8191-94b7-428f-be86-e9e4cd24a72f,9b0b8191-94b7-428f-be86-e9e4cd24a72f,1,0,a923dbcb-7146-4445-ad17-f4a32c16a837,a923dbcb-7146-4445-ad17-f4a32c16a837,1,0,41dec792-1d1a-4e06-a54b-a86193b98225,41dec792-1d1a-4e06-a54b-a86193b98225,1,0,52257beb-3e0c-4681-b430-9690398cd13a,52257beb-3e0c-4681-b430-9690398cd13a,1,0,f71bd0e8-8784-452e-bea9-3696c875d69d,f71bd0e8-8784-452e-bea9-3696c875d69d,1,0,135e637c-c28e-4547-8da2-d897dca54cb2,135e637c-c28e-4547-8da2-d897dca54cb2,1,0,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,1,0,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,1,0,5356543a-db9a-4265-b83f-31d45544c8e6,5356543a-db9a-4265-b83f-31d45544c8e6,1,0,857dd311-9c6d-4dba-82d8-283d7b05b09e,857dd311-9c6d-4dba-82d8-283d7b05b09e,1,0,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1,0,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,1,0,2902460a-ed86-41cf-8e8f-895adab9a72f,2902460a-ed86-41cf-8e8f-895adab9a72f,1,0,c4968b4e-0715-43a5-92ad-c8cd276fbf7b,c4968b4e-0715-43a5-92ad-c8cd276fbf7b,1,0,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,1,0,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1,0,81ef02df-498d-4af0-8254-dc6730cbf140,81ef02df-498d-4af0-8254-dc6730cbf140,1,0,403d4675-b80e-4e0a-8cc0-2876661d0c89,403d4675-b80e-4e0a-8cc0-2876661d0c89,1,0,37333d0b-3589-4b8b-bf6c-e605e0287b66,37333d0b-3589-4b8b-bf6c-e605e0287b66,1,0,cb42bbe7-b564-44b2-89b8-d570f3419d3c,cb42bbe7-b564-44b2-89b8-d570f3419d3c,1,0,7fba41a5-4faa-412b-b367-b30ced0314c0,7fba41a5-4faa-412b-b367-b30ced0314c0,1,0,f82d5bd6-4c74-4c23-978c-565aae3d752a,f82d5bd6-4c74-4c23-978c-565aae3d752a,1,0,ad083c26-7461-4e94-b524-0174242fbd91,ad083c26-7461-4e94-b524-0174242fbd91,1,0,5ce39370-f918-493f-bb24-53346b6fd836,5ce39370-f918-493f-bb24-53346b6fd836,1,0,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,1,0,0e3d2750-bb4c-42b9-9829-60f1480ced9c,0e3d2750-bb4c-42b9-9829-60f1480ced9c,1,0,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,1,0,a76b1fd1-ba00-40e6-8756-f17fee449818,a76b1fd1-ba00-40e6-8756-f17fee449818,1,0,5c913626-48d1-4e0a-a423-64078ce59c7b,5c913626-48d1-4e0a-a423-64078ce59c7b,1,0,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,1,0,7b0ec304-1904-413e-a9c6-ff62e87107dd,7b0ec304-1904-413e-a9c6-ff62e87107dd,1,0,d4dd8c96-914d-496f-b735-ef85ec473605,d4dd8c96-914d-496f-b735-ef85ec473605,1,0,62517db4-59e6-4945-bcd6-b3f1845572bf,62517db4-59e6-4945-bcd6-b3f1845572bf,1,0,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,1,0,f0f72149-0e7f-441a-b70d-8f47d4977927,f0f72149-0e7f-441a-b70d-8f47d4977927,1,0,776efc3e-ac27-4550-bafd-6e91aa987af2,776efc3e-ac27-4550-bafd-6e91aa987af2,1,0,3271b800-1825-422f-97bb-757baf403e90,3271b800-1825-422f-97bb-757baf403e90,1,0,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,1,0,cc438366-85ea-48be-8b74-d05cddb1fc51,cc438366-85ea-48be-8b74-d05cddb1fc51,1,0,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,1,0,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,1,0,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,1,0,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,1,0,a040c756-4687-4bfd-a690-b122d3c490e5,a040c756-4687-4bfd-a690-b122d3c490e5,1,0,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,1,0,f0620d5a-e1fe-419f-af37-e0f462f97e8d,f0620d5a-e1fe-419f-af37-e0f462f97e8d,1,0,3e2f2ae1-c809-43fc-8276-b0a16a92858c,3e2f2ae1-c809-43fc-8276-b0a16a92858c,1,0,1a7c7427-bead-4655-9dd6-df6e722663c5,1a7c7427-bead-4655-9dd6-df6e722663c5,0,1,3ad08f4a-6202-4099-b6cc-bc116e6731a0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,0,1,fd96c8ab-602a-4735-b168-52b501e80351,fd96c8ab-602a-4735-b168-52b501e80351,0,1,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,0,1,370f0c75-d2c5-4be5-a633-4bcc77998ece,370f0c75-d2c5-4be5-a633-4bcc77998ece,0,1,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,0,1,2139532c-f6cb-4393-936e-cc912e5adca9,2139532c-f6cb-4393-936e-cc912e5adca9,0,1,755c3eca-4956-4a44-9b38-c11dae00b87f,755c3eca-4956-4a44-9b38-c11dae00b87f,0,1,f57c558c-2c94-4b9d-8697-448d0548ab1a,f57c558c-2c94-4b9d-8697-448d0548ab1a,0,1,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,0,1,c32db021-eca1-4b67-aa85-3d6e28c51b53,c32db021-eca1-4b67-aa85-3d6e28c51b53,0,1,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,0,1,02466dcf-02a1-4853-814f-a913a9baba45,02466dcf-02a1-4853-814f-a913a9baba45,0,1,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,0,1,62b75eb2-42e1-4484-a77f-b676dd36f3d4,62b75eb2-42e1-4484-a77f-b676dd36f3d4,0,1,856510ee-74f5-44e9-a3c0-1c60cfb7a787,856510ee-74f5-44e9-a3c0-1c60cfb7a787,0,1,28b761c6-c286-4125-a4ed-da602e49950f,28b761c6-c286-4125-a4ed-da602e49950f,0,1,4ac66a22-c736-4e06-a8aa-ef4a71788c65,4ac66a22-c736-4e06-a8aa-ef4a71788c65,0,1,9cfe9281-8840-4077-824d-a2c9cbb0b730,9cfe9281-8840-4077-824d-a2c9cbb0b730,0,1,76389fa9-b9e0-492e-9c93-24b5f3bf094c,76389fa9-b9e0-492e-9c93-24b5f3bf094c,0,1,23e3de37-9315-45e6-bbfd-60aae28c25ae,23e3de37-9315-45e6-bbfd-60aae28c25ae,0,1,a9957f43-8b6f-4d98-a2d8-77b78047494c,a9957f43-8b6f-4d98-a2d8-77b78047494c,0,1,e470e15d-1b06-43cb-a9f9-ba489e2f596f,e470e15d-1b06-43cb-a9f9-ba489e2f596f,0,1,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,0,1,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,0,1,1851afd4-5324-45c1-b754-54e65943f945,1851afd4-5324-45c1-b754-54e65943f945,0,1,0408002c-9255-43a2-8022-82f02ee0e8f4,0408002c-9255-43a2-8022-82f02ee0e8f4,0,1,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,0,1,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,0,1,c322dc4a-30f3-4d23-9824-4a01c496408d,c322dc4a-30f3-4d23-9824-4a01c496408d,0,1,dcff004c-1b61-4a19-b977-ea21bf688614,dcff004c-1b61-4a19-b977-ea21bf688614,0,0,0,1,0} \ No newline at end of file +{4,1,1,ac94b62c-d377-4124-8f35-664371ebec24,1,c7526b78-d4ec-4dfd-bce7-98d45fca4d8a,"1.1.3.1","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",2609,1,0,5f58ee6e-a640-4d52-ae80-b7921a469466,5f58ee6e-a640-4d52-ae80-b7921a469466,0,1,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,0,1,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,0,1,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,0,1,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,0,1,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,0,1,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,0,1,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,0,1,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,0,1,48e2b615-925a-46d5-9f47-783bdb36ab02,48e2b615-925a-46d5-9f47-783bdb36ab02,0,1,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,0,1,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,0,1,b73b22b7-419a-4ae9-b954-f6ad2244175b,b73b22b7-419a-4ae9-b954-f6ad2244175b,0,1,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,0,1,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,0,1,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,0,1,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,0,1,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,0,1,c17592a9-5df0-4fa6-bd33-3d78d341a55c,c17592a9-5df0-4fa6-bd33-3d78d341a55c,0,1,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,0,1,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,0,1,9e36087a-baa8-4812-956a-6e1ac73aa7e0,9e36087a-baa8-4812-956a-6e1ac73aa7e0,0,1,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,0,1,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,0,1,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,0,1,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,0,1,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,0,1,cb8da2f3-f8bb-4736-8381-7c153670e3e2,cb8da2f3-f8bb-4736-8381-7c153670e3e2,0,1,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,0,1,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,0,1,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,0,1,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,0,1,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,0,1,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,0,1,c53df2d1-4564-47a7-b66e-6a23ba28270e,c53df2d1-4564-47a7-b66e-6a23ba28270e,0,1,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,0,1,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,0,1,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5-45fc-8da2-a36c435085a6,0,1,5d16e042-3889-4851-86f1-bc43bf06ee88,5d16e042-3889-4851-86f1-bc43bf06ee88,0,1,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,0,1,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,0,1,e39ecc8a-ce81-483d-85de-b0488c8b7749,e39ecc8a-ce81-483d-85de-b0488c8b7749,0,1,1514eaff-faea-4d82-9465-d0d5292bb31d,1514eaff-faea-4d82-9465-d0d5292bb31d,0,1,6d39c6df-8cd4-47ad-9125-252b37d94575,6d39c6df-8cd4-47ad-9125-252b37d94575,0,1,739bd762-01fc-41a8-87df-844eb201962f,739bd762-01fc-41a8-87df-844eb201962f,0,1,7ef99dd3-d799-4f53-ab56-5528b4c9d782,7ef99dd3-d799-4f53-ab56-5528b4c9d782,0,1,ad7c6165-2e44-4808-a77a-526882cf5dea,ad7c6165-2e44-4808-a77a-526882cf5dea,0,1,61cd6eab-6bab-4382-986e-4c7fc44f369b,61cd6eab-6bab-4382-986e-4c7fc44f369b,0,1,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,0,1,0c44fdea-7b81-45be-87f5-d64456a9d379,0c44fdea-7b81-45be-87f5-d64456a9d379,0,1,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,0,1,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,0,1,23dbb528-7ea8-44ae-a1f2-b7608118666e,23dbb528-7ea8-44ae-a1f2-b7608118666e,0,1,b9627855-6773-4a59-b7d3-f9e2e565cd9e,b9627855-6773-4a59-b7d3-f9e2e565cd9e,0,1,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,0,1,283ce432-3553-4de9-94a2-ca9a590437f5,283ce432-3553-4de9-94a2-ca9a590437f5,0,1,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,0,1,0d0ada8a-09bb-4634-bf50-199f3779dad5,0d0ada8a-09bb-4634-bf50-199f3779dad5,0,1,654523be-93d9-4faa-9a35-ce2fede13820,654523be-93d9-4faa-9a35-ce2fede13820,0,1,2c8e45b8-7d80-4137-85db-66cd1db94526,2c8e45b8-7d80-4137-85db-66cd1db94526,0,1,47accdc7-8fa0-4996-9305-c42b6ca12df9,47accdc7-8fa0-4996-9305-c42b6ca12df9,0,1,7df36398-7752-4f51-9978-1bcb4bcdd062,7df36398-7752-4f51-9978-1bcb4bcdd062,0,1,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,0,1,e6c42b5d-57fd-42ce-a968-653620e797f6,e6c42b5d-57fd-42ce-a968-653620e797f6,0,1,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,0,1,300ecdd6-144f-48c8-9fd4-6166f1de1047,300ecdd6-144f-48c8-9fd4-6166f1de1047,0,1,b6bbfb59-8249-47af-9394-be262f118811,b6bbfb59-8249-47af-9394-be262f118811,0,1,485911f7-a964-450d-82da-cab020836eb2,485911f7-a964-450d-82da-cab020836eb2,0,1,ac2e5217-aaeb-4b6f-b063-538c84f2da06,ac2e5217-aaeb-4b6f-b063-538c84f2da06,0,1,c08391e1-c4e3-42aa-8738-061031d0cb75,c08391e1-c4e3-42aa-8738-061031d0cb75,0,1,bf4c6723-e586-4643-9f03-9e672afea26f,bf4c6723-e586-4643-9f03-9e672afea26f,0,1,3de28e34-3c1e-4e7f-a720-3418c8c9c496,3de28e34-3c1e-4e7f-a720-3418c8c9c496,0,1,388b8576-9ba4-460f-b71b-3d644663656a,388b8576-9ba4-460f-b71b-3d644663656a,0,1,23204b0b-bf77-4f7c-9945-e73ad924ebb4,23204b0b-bf77-4f7c-9945-e73ad924ebb4,0,1,21032fa5-9426-40bd-91e4-ace1e4ceb013,21032fa5-9426-40bd-91e4-ace1e4ceb013,0,1,17d23818-d865-4df6-a5d3-aa21b0287d0c,17d23818-d865-4df6-a5d3-aa21b0287d0c,0,1,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,0,1,27a80757-c0fd-40c7-ad24-4c819c1ba72b,27a80757-c0fd-40c7-ad24-4c819c1ba72b,0,1,7fce9e49-e558-4760-9d95-dde6ac6c1e78,7fce9e49-e558-4760-9d95-dde6ac6c1e78,0,1,e5aba4a3-6056-4ef3-827c-d74283175393,e5aba4a3-6056-4ef3-827c-d74283175393,0,1,63039e62-7314-42ff-bdc6-c251f38b3827,63039e62-7314-42ff-bdc6-c251f38b3827,0,1,8a4b7aab-b602-4581-8fa4-fab66791f701,8a4b7aab-b602-4581-8fa4-fab66791f701,0,1,7c92c579-4651-4fe3-90dc-6c9b594b76f0,7c92c579-4651-4fe3-90dc-6c9b594b76f0,0,1,a2be2d7a-cca0-460f-a915-dadfb9cd588b,a2be2d7a-cca0-460f-a915-dadfb9cd588b,0,1,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,0,1,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,0,1,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,0,1,1f4408f5-460e-431b-9842-bc6875ccf0ae,1f4408f5-460e-431b-9842-bc6875ccf0ae,0,1,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,0,1,7bfc6163-a62f-45e8-9112-40a5d675ba4a,7bfc6163-a62f-45e8-9112-40a5d675ba4a,0,1,542ff510-0245-4a08-80ac-a9941c66ae93,542ff510-0245-4a08-80ac-a9941c66ae93,0,1,03297623-eaa2-4db0-bf1b-ce2076faf20a,03297623-eaa2-4db0-bf1b-ce2076faf20a,0,1,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,0,1,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,0,1,82a3802c-b6d6-4511-bd8b-eeec003afa33,82a3802c-b6d6-4511-bd8b-eeec003afa33,0,1,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,0,1,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,0,1,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,0,1,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,0,1,a755cb43-492d-4069-9b6a-29b92ebb5b0e,a755cb43-492d-4069-9b6a-29b92ebb5b0e,0,1,86d09107-f511-4148-b5d9-d97e92addfde,86d09107-f511-4148-b5d9-d97e92addfde,0,1,6cbedb49-746a-4d63-b3fd-1b0e77ab28c0,6cbedb49-746a-4d63-b3fd-1b0e77ab28c0,0,1,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,0,1,9c7f2728-10a9-463b-b04c-01ee26f3d4c5,9c7f2728-10a9-463b-b04c-01ee26f3d4c5,0,1,8b9be02b-cd1f-4231-a895-6c9be26348c2,8b9be02b-cd1f-4231-a895-6c9be26348c2,0,1,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,0,1,fa4f0b33-5253-4a5f-8121-feae3e1968a6,fa4f0b33-5253-4a5f-8121-feae3e1968a6,0,1,e0d21be2-91dc-4a04-9078-49420ddddcd5,e0d21be2-91dc-4a04-9078-49420ddddcd5,0,1,56c97764-7dba-42e0-8ba0-82712aca20e9,56c97764-7dba-42e0-8ba0-82712aca20e9,0,1,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,0,1,ea868745-71fc-483c-aa6e-f242c06c673f,ea868745-71fc-483c-aa6e-f242c06c673f,0,1,7f3c6269-ea41-492f-87b7-7eaaf712762e,7f3c6269-ea41-492f-87b7-7eaaf712762e,0,1,12f95031-b81f-4802-b2f3-6f70def90db0,12f95031-b81f-4802-b2f3-6f70def90db0,0,1,5732112a-f31d-41cd-9a7f-312a27395502,5732112a-f31d-41cd-9a7f-312a27395502,0,1,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,0,1,a5764a45-957c-40e4-9a3b-b57b9dfcf2fc,a5764a45-957c-40e4-9a3b-b57b9dfcf2fc,0,1,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,0,1,059b9a75-f53a-4518-a48a-afc72ab9ee36,059b9a75-f53a-4518-a48a-afc72ab9ee36,0,1,8486e623-1a54-4ad9-ab44-591b6a559bc3,8486e623-1a54-4ad9-ab44-591b6a559bc3,0,1,cb9f2231-49bb-4b14-a124-8996628afead,cb9f2231-49bb-4b14-a124-8996628afead,0,1,896de79f-3c34-4436-a4e2-4dd4f45c3e20,896de79f-3c34-4436-a4e2-4dd4f45c3e20,0,1,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,0,1,f551f78a-2f05-4932-ac33-cfa1b077f46f,f551f78a-2f05-4932-ac33-cfa1b077f46f,0,1,f646835e-61eb-4ebd-811e-dac5e70bd1b4,f646835e-61eb-4ebd-811e-dac5e70bd1b4,0,1,61b49c4c-3021-4868-834a-9137476ae169,61b49c4c-3021-4868-834a-9137476ae169,0,1,58911911-5192-45fe-87cf-c4a222a521a1,58911911-5192-45fe-87cf-c4a222a521a1,0,1,115d5d06-a2fc-453e-aab5-c869b6d5850b,115d5d06-a2fc-453e-aab5-c869b6d5850b,0,1,123bb339-b95e-44c3-b1e9-482dcaa6f297,123bb339-b95e-44c3-b1e9-482dcaa6f297,0,1,70067937-9f27-4442-b87b-6c4576ce1b78,70067937-9f27-4442-b87b-6c4576ce1b78,0,1,d33ca006-d81d-4ef8-8503-7878e81c599f,d33ca006-d81d-4ef8-8503-7878e81c599f,0,1,d2a2e332-a52c-4277-bd19-5ea8ef198469,d2a2e332-a52c-4277-bd19-5ea8ef198469,0,1,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,0,1,1c2ad932-150a-4b15-b958-62eaa8a1eebc,1c2ad932-150a-4b15-b958-62eaa8a1eebc,0,1,f8295f29-2533-4013-981b-240f017d9f7c,f8295f29-2533-4013-981b-240f017d9f7c,0,1,538b316b-3876-4da6-8b97-ad8ef59de17d,538b316b-3876-4da6-8b97-ad8ef59de17d,0,1,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,0,1,ebc5f182-482b-4dec-9961-ce3a448abd0e,ebc5f182-482b-4dec-9961-ce3a448abd0e,0,1,83e618f5-1bf4-474a-9d65-389f1e4b16c3,83e618f5-1bf4-474a-9d65-389f1e4b16c3,0,1,1357512e-3ed3-455d-bc91-81db3b92f9fe,1357512e-3ed3-455d-bc91-81db3b92f9fe,0,1,82223d0f-41d9-45a6-9612-ae4d8408fa1b,82223d0f-41d9-45a6-9612-ae4d8408fa1b,0,1,83cfa2d4-ad9a-4cfc-8d31-695c90adaeb8,83cfa2d4-ad9a-4cfc-8d31-695c90adaeb8,0,1,c2768e31-9e61-4d8d-838d-90b2e2683148,c2768e31-9e61-4d8d-838d-90b2e2683148,0,1,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,0,1,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,0,1,6e8fd732-2746-4c27-95a6-58b0adf94d88,6e8fd732-2746-4c27-95a6-58b0adf94d88,0,1,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,0,1,724fb328-fec6-4afe-bc99-0ff0951b184b,724fb328-fec6-4afe-bc99-0ff0951b184b,0,1,1692bf73-8ce6-4b0e-875b-79cdd4396ca7,1692bf73-8ce6-4b0e-875b-79cdd4396ca7,0,1,c565bf25-c55e-4324-851a-cec497f5114a,c565bf25-c55e-4324-851a-cec497f5114a,0,1,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,0,1,8943233f-5c9a-4e6b-b1c2-3bbb94b6c4a7,8943233f-5c9a-4e6b-b1c2-3bbb94b6c4a7,0,1,5b0e250c-4d2d-4e37-ade1-593854610d3f,5b0e250c-4d2d-4e37-ade1-593854610d3f,0,1,148f63d5-23ad-4824-a24c-14d5a54c62d3,148f63d5-23ad-4824-a24c-14d5a54c62d3,0,1,2d40609d-b56f-4082-9a6f-8216817ebd24,2d40609d-b56f-4082-9a6f-8216817ebd24,0,1,041daf91-e5b3-471d-934d-55229f8a81d6,041daf91-e5b3-471d-934d-55229f8a81d6,0,1,8c72f824-b667-4d74-84aa-30eccfbbd2f0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,0,1,ec7b492d-5d38-4f31-90e0-577ad181514e,ec7b492d-5d38-4f31-90e0-577ad181514e,0,1,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,0,1,5fb2c120-fd14-4e78-a35f-c8e9478b3235,5fb2c120-fd14-4e78-a35f-c8e9478b3235,0,1,9d514ce1-f9bd-4018-8107-545cdd372fbd,9d514ce1-f9bd-4018-8107-545cdd372fbd,0,1,fe6b732f-3a33-460f-9686-cffdd5f7d99b,fe6b732f-3a33-460f-9686-cffdd5f7d99b,0,1,06250212-aeb1-4cb8-8785-ea71b1dad848,06250212-aeb1-4cb8-8785-ea71b1dad848,0,1,0c068a61-e5e6-4475-96fa-b7c1d825da42,0c068a61-e5e6-4475-96fa-b7c1d825da42,0,1,1047e34d-397a-42cc-80e6-1be755bd6462,1047e34d-397a-42cc-80e6-1be755bd6462,0,1,1cd473c3-4e36-47a9-b466-73d86ec244b0,1cd473c3-4e36-47a9-b466-73d86ec244b0,0,1,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,0,1,b406b5f9-eeaf-43a0-8930-067554d783c9,b406b5f9-eeaf-43a0-8930-067554d783c9,0,1,47718840-2939-4e30-a72c-a20c88ac4c17,47718840-2939-4e30-a72c-a20c88ac4c17,0,1,58a38994-9fe4-4783-967d-79d1141b90f3,58a38994-9fe4-4783-967d-79d1141b90f3,0,1,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,0,1,e606f8eb-952a-4abb-b1ae-4211204bed84,e606f8eb-952a-4abb-b1ae-4211204bed84,0,1,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,0,1,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,0,1,766c7fb5-727e-4975-9ea1-3b0df4739620,766c7fb5-727e-4975-9ea1-3b0df4739620,0,1,93c347d8-66cb-406c-9ee6-b1962482893f,93c347d8-66cb-406c-9ee6-b1962482893f,0,1,79b17298-9b37-4b9a-ae0a-6924513a66ca,79b17298-9b37-4b9a-ae0a-6924513a66ca,0,1,4e3dc198-ce03-433c-bd0a-71845bfc4c89,4e3dc198-ce03-433c-bd0a-71845bfc4c89,0,1,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,0,1,64fae958-8da6-4924-85de-d4433710a5e0,64fae958-8da6-4924-85de-d4433710a5e0,0,1,12b6e2d3-9724-46a3-8747-833be46408be,12b6e2d3-9724-46a3-8747-833be46408be,0,1,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,0,1,e70a6eab-791f-4c70-bb92-f069c7486d1b,e70a6eab-791f-4c70-bb92-f069c7486d1b,0,1,f74f97b7-4cbf-4124-b441-d8bb5d9b1634,f74f97b7-4cbf-4124-b441-d8bb5d9b1634,0,1,fac2e2cb-c32a-4592-b6c8-fd18806e845d,fac2e2cb-c32a-4592-b6c8-fd18806e845d,0,1,f58bffe7-4a02-4c4e-bfed-7895177a400c,f58bffe7-4a02-4c4e-bfed-7895177a400c,0,1,fe285122-2257-4fb2-ab7e-1683c31db1c6,fe285122-2257-4fb2-ab7e-1683c31db1c6,0,1,0facc6eb-a178-45ee-a6bc-4bf085d80453,0facc6eb-a178-45ee-a6bc-4bf085d80453,0,1,f74eef36-9441-4b6f-b21c-de9643832f9f,f74eef36-9441-4b6f-b21c-de9643832f9f,0,1,b5e73fbe-499c-4666-a482-0ef399c97c1e,b5e73fbe-499c-4666-a482-0ef399c97c1e,0,1,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,0,1,58ffc4d9-d711-4b68-905c-d2ac4f78b547,58ffc4d9-d711-4b68-905c-d2ac4f78b547,0,1,94ab750f-46b4-427c-a7f2-4e94fb9b0678,94ab750f-46b4-427c-a7f2-4e94fb9b0678,0,1,397d9926-31a3-4c03-acb7-74478f9863e1,397d9926-31a3-4c03-acb7-74478f9863e1,0,1,9ad979d3-74ad-4d90-b279-c3a2bea36ea7,9ad979d3-74ad-4d90-b279-c3a2bea36ea7,0,1,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,0,1,74f02619-7fa8-4c6d-81d6-230156ee45f4,74f02619-7fa8-4c6d-81d6-230156ee45f4,0,1,a103cca0-8243-40e9-bcdd-97a1cc8a3943,a103cca0-8243-40e9-bcdd-97a1cc8a3943,0,1,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,0,1,da551cf6-4f86-4e37-8967-a84c80e1fb13,da551cf6-4f86-4e37-8967-a84c80e1fb13,0,1,bd539a52-d33e-4e9b-8508-230acf76e98a,bd539a52-d33e-4e9b-8508-230acf76e98a,0,1,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,0,1,6dc4c216-e49f-4833-b45f-6060b67995ef,6dc4c216-e49f-4833-b45f-6060b67995ef,0,1,4655fa12-9169-4d08-bdab-9b3174d0b223,4655fa12-9169-4d08-bdab-9b3174d0b223,0,1,ba5574bd-53ca-413f-a245-272f468a80fb,ba5574bd-53ca-413f-a245-272f468a80fb,0,1,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,0,1,ea653eca-f96a-447d-8b09-7a7cb6929ed6,ea653eca-f96a-447d-8b09-7a7cb6929ed6,0,1,1e2a18a3-bdde-4033-9b83-f8a6ee47e86c,1e2a18a3-bdde-4033-9b83-f8a6ee47e86c,0,1,7cbf0398-2bc7-4f40-9a9e-af4135c6a2d2,7cbf0398-2bc7-4f40-9a9e-af4135c6a2d2,0,1,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,0,1,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,0,1,3b380a63-9232-42c2-bfa2-e8fc89448bbd,3b380a63-9232-42c2-bfa2-e8fc89448bbd,0,1,10556a26-ea4b-46b4-84d1-175eb13b333f,10556a26-ea4b-46b4-84d1-175eb13b333f,0,1,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,0,1,ecfc7ede-fffb-4bea-9598-3e18845f603d,ecfc7ede-fffb-4bea-9598-3e18845f603d,0,1,ffea6f3b-86fb-438d-bc22-7e19831f57d3,ffea6f3b-86fb-438d-bc22-7e19831f57d3,0,1,eaae534f-b506-4c86-b649-5b103cf5791d,eaae534f-b506-4c86-b649-5b103cf5791d,0,1,18b4773a-5380-4e71-8b51-ef10e19df17e,18b4773a-5380-4e71-8b51-ef10e19df17e,0,1,42f454f7-cfc4-459b-898f-86cace30410c,42f454f7-cfc4-459b-898f-86cace30410c,0,1,2b72fe1c-afe1-4905-8db2-2bb1baca6295,2b72fe1c-afe1-4905-8db2-2bb1baca6295,0,1,910b3640-790c-4185-88b5-a7c7466374c0,910b3640-790c-4185-88b5-a7c7466374c0,0,1,b5eceb60-76ba-47e3-90bd-52078d4bae4e,b5eceb60-76ba-47e3-90bd-52078d4bae4e,0,1,b8869f44-b87f-4e3e-a0d5-2aec5ccda4e2,b8869f44-b87f-4e3e-a0d5-2aec5ccda4e2,0,1,f7c23753-ff8c-4c26-bdc5-58e3b038668d,f7c23753-ff8c-4c26-bdc5-58e3b038668d,0,1,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,0,1,10197638-2cde-4424-8390-3bc9abe9852e,10197638-2cde-4424-8390-3bc9abe9852e,0,1,4fb8564e-2338-4c23-84a4-31f768047ced,4fb8564e-2338-4c23-84a4-31f768047ced,0,1,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,0,1,e18b4527-8727-4a10-9e99-a80012debe6c,e18b4527-8727-4a10-9e99-a80012debe6c,0,1,26d823de-420b-4547-9394-0044b29b9d46,26d823de-420b-4547-9394-0044b29b9d46,0,1,1ed910db-e434-4efd-9b12-c25353a31d5a,1ed910db-e434-4efd-9b12-c25353a31d5a,1,0,101a4eb3-cdda-47af-8c69-615a6920347a,101a4eb3-cdda-47af-8c69-615a6920347a,1,0,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,1,0,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,1,0,f79bada2-838f-4e4f-a017-935cf671a70c,f79bada2-838f-4e4f-a017-935cf671a70c,1,0,ed394820-a216-4c4b-81ae-5dea33ced43b,ed394820-a216-4c4b-81ae-5dea33ced43b,1,0,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,1,0,8a310493-c06f-46db-b2b5-14d6ed203312,8a310493-c06f-46db-b2b5-14d6ed203312,1,0,b68ec95b-64f3-4a2b-9683-231d50f01eeb,b68ec95b-64f3-4a2b-9683-231d50f01eeb,1,0,4a008342-f72f-4ca1-bad1-64b59b509911,4a008342-f72f-4ca1-bad1-64b59b509911,1,0,cefa1723-a4d4-44c4-bd57-ffa713f9306c,cefa1723-a4d4-44c4-bd57-ffa713f9306c,1,0,497ce8f3-f6f0-4da8-aeb0-0fa01bb26dc6,497ce8f3-f6f0-4da8-aeb0-0fa01bb26dc6,1,0,4920aabf-6f53-4f91-932a-8ace24631a74,4920aabf-6f53-4f91-932a-8ace24631a74,1,0,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,1,0,dacd15cd-ffdc-444d-a45f-9b0c7776a7c5,dacd15cd-ffdc-444d-a45f-9b0c7776a7c5,1,0,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,1,0,8692ba41-d91d-4af0-8aba-69dd5409d593,8692ba41-d91d-4af0-8aba-69dd5409d593,1,0,852bd696-9a9e-4952-b676-4108f757ad9b,852bd696-9a9e-4952-b676-4108f757ad9b,1,0,a95b564a-c895-40f2-b947-ea08462bb2a0,a95b564a-c895-40f2-b947-ea08462bb2a0,1,0,ca63ca2f-703d-4317-8c5d-0650ea638f3f,ca63ca2f-703d-4317-8c5d-0650ea638f3f,1,0,aa2256c7-9847-40a5-9e49-11c508e0d45b,aa2256c7-9847-40a5-9e49-11c508e0d45b,1,0,a04493f4-508c-4047-b0e3-b7d4bde6427b,a04493f4-508c-4047-b0e3-b7d4bde6427b,1,0,418982cd-d403-47cf-a7ef-993a36104947,418982cd-d403-47cf-a7ef-993a36104947,1,0,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,1,0,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,1,0,35eea3b8-d017-442a-b5a0-a1571165b9a9,35eea3b8-d017-442a-b5a0-a1571165b9a9,1,0,7e84901c-cb7f-437c-a135-0902cd47acb6,7e84901c-cb7f-437c-a135-0902cd47acb6,1,0,c4d67026-2c97-4126-b8be-49aa6f567e2d,c4d67026-2c97-4126-b8be-49aa6f567e2d,1,0,fda2906d-f499-4016-b13a-99f7f713b898,fda2906d-f499-4016-b13a-99f7f713b898,1,0,da2b47f5-4109-4f72-a4a5-70be24a6881f,da2b47f5-4109-4f72-a4a5-70be24a6881f,1,0,849f034e-85dc-4515-aae6-240c1e0d46d9,849f034e-85dc-4515-aae6-240c1e0d46d9,1,0,1c7e9baa-7728-4afd-829a-806cee13ecdb,1c7e9baa-7728-4afd-829a-806cee13ecdb,1,0,5cc3a29d-aa98-42bf-9800-f584229c8e46,5cc3a29d-aa98-42bf-9800-f584229c8e46,1,0,f4cff4ff-68e9-4072-971e-1b359d3aa980,f4cff4ff-68e9-4072-971e-1b359d3aa980,1,0,acfa1919-07ce-4464-8552-6b104e284dca,acfa1919-07ce-4464-8552-6b104e284dca,1,0,007691a7-be0b-4d21-8f3d-74cfa08816e0,007691a7-be0b-4d21-8f3d-74cfa08816e0,1,0,fdb012c9-583a-42af-95da-070e75a58078,fdb012c9-583a-42af-95da-070e75a58078,1,0,40a52f83-f0e2-470d-9c17-7fdc8cc646b7,40a52f83-f0e2-470d-9c17-7fdc8cc646b7,1,0,7d069b11-cddd-463d-97be-3cbeaaf0954c,7d069b11-cddd-463d-97be-3cbeaaf0954c,1,0,06ff179c-864b-4d3b-83c5-f09c3e0f37f4,06ff179c-864b-4d3b-83c5-f09c3e0f37f4,1,0,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,1,0,1ae364d3-0bec-4089-af23-c60d2a274c85,1ae364d3-0bec-4089-af23-c60d2a274c85,1,0,f11ffcfd-3588-4785-b222-cebe80455303,f11ffcfd-3588-4785-b222-cebe80455303,1,0,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,1,0,bfdc6346-db5b-427f-acca-9b48db8fefd0,bfdc6346-db5b-427f-acca-9b48db8fefd0,1,0,1c3f258c-345e-47f6-9e29-98b1222fb348,1c3f258c-345e-47f6-9e29-98b1222fb348,1,0,35c938f4-065f-47f5-a75b-637ed0080725,35c938f4-065f-47f5-a75b-637ed0080725,1,0,b3847d64-46b8-4bd1-9362-d88d82b34254,b3847d64-46b8-4bd1-9362-d88d82b34254,1,0,14b58f6d-9243-47cd-a430-8408fcddd8d8,14b58f6d-9243-47cd-a430-8408fcddd8d8,0,1,6f3c5b90-b030-4267-a973-33d12c2c7680,6f3c5b90-b030-4267-a973-33d12c2c7680,0,1,8a0db1f1-fb8d-45fa-944d-72d460e49873,8a0db1f1-fb8d-45fa-944d-72d460e49873,0,1,7a62d031-c340-4b1e-90af-fff697a2e979,7a62d031-c340-4b1e-90af-fff697a2e979,1,0,1d723c7b-d4b0-47ee-af3f-81574cb058c0,1d723c7b-d4b0-47ee-af3f-81574cb058c0,1,0,18bf6916-83cc-41e5-a35b-1489450ae632,18bf6916-83cc-41e5-a35b-1489450ae632,0,1,ebab97cf-5335-4648-9845-8ca41f79fb49,ebab97cf-5335-4648-9845-8ca41f79fb49,0,1,bb29fa44-6772-4426-a0b8-422115e14288,bb29fa44-6772-4426-a0b8-422115e14288,0,1,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,0,1,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,0,1,40d3ed07-3b56-4c9f-8b96-d94455202ef0,40d3ed07-3b56-4c9f-8b96-d94455202ef0,0,1,5b3b3da9-8619-4fbd-b140-3528875cd179,5b3b3da9-8619-4fbd-b140-3528875cd179,0,1,99e5e866-7ac6-4916-ab66-3e2909822c56,99e5e866-7ac6-4916-ab66-3e2909822c56,0,1,03363877-2752-4a03-95f2-d73b732e0bfd,03363877-2752-4a03-95f2-d73b732e0bfd,0,1,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,0,1,78051e10-74ab-44be-adca-e4c93824a386,78051e10-74ab-44be-adca-e4c93824a386,1,0,73629419-83d8-4727-88a9-76c851d104c9,73629419-83d8-4727-88a9-76c851d104c9,1,0,a9c3065b-db68-4f59-9235-33f9fbfdaafd,a9c3065b-db68-4f59-9235-33f9fbfdaafd,0,1,3715cf3d-0abc-4711-8ac9-d41f0be7878f,3715cf3d-0abc-4711-8ac9-d41f0be7878f,0,1,8e8d8078-8b32-4c24-b26e-89a92bf60160,8e8d8078-8b32-4c24-b26e-89a92bf60160,0,1,f96cbb27-7619-41e0-8577-e623ef02dc58,f96cbb27-7619-41e0-8577-e623ef02dc58,0,1,d74dfd31-2016-435b-8652-15fdbca59490,d74dfd31-2016-435b-8652-15fdbca59490,1,0,6411e10c-04e3-4997-9196-c38d717edbb3,6411e10c-04e3-4997-9196-c38d717edbb3,1,0,27651e0e-d560-434b-a49c-f473a5b20c4d,27651e0e-d560-434b-a49c-f473a5b20c4d,0,1,ce85554b-81ba-4149-a951-d09bdc14fa16,ce85554b-81ba-4149-a951-d09bdc14fa16,0,1,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,0,1,2558d812-ac0a-49ba-87db-3f661209a3c4,2558d812-ac0a-49ba-87db-3f661209a3c4,0,1,20d712ef-77c1-4374-92e1-f20a3ebc7eab,20d712ef-77c1-4374-92e1-f20a3ebc7eab,0,1,65d23ce8-e326-45ee-86b0-6dcf35797201,65d23ce8-e326-45ee-86b0-6dcf35797201,1,0,a2683c3f-1b21-47d8-951d-7d30cde51efc,a2683c3f-1b21-47d8-951d-7d30cde51efc,0,1,54c77053-1728-4914-a354-73fe8853a0e1,54c77053-1728-4914-a354-73fe8853a0e1,1,0,21136691-078f-4bf7-bddd-f41416a76d86,21136691-078f-4bf7-bddd-f41416a76d86,1,0,30a121c7-c4f5-45c4-9504-9778ed85d9e3,30a121c7-c4f5-45c4-9504-9778ed85d9e3,1,0,91488422-c802-4360-b46b-22d1e2905f0b,91488422-c802-4360-b46b-22d1e2905f0b,1,0,90bc48b0-3094-473c-8e07-53da338d7c53,90bc48b0-3094-473c-8e07-53da338d7c53,0,1,e5dfee58-f748-48ee-81a3-7c6133f06365,e5dfee58-f748-48ee-81a3-7c6133f06365,0,1,5c4c9931-3fb0-47a8-9e4f-d552de12b355,5c4c9931-3fb0-47a8-9e4f-d552de12b355,0,1,2a498baf-ec2e-4dda-b568-801bb60db225,2a498baf-ec2e-4dda-b568-801bb60db225,0,1,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,1,0,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,0,1,35989876-16b1-4b02-9381-444a06a7a21d,35989876-16b1-4b02-9381-444a06a7a21d,0,1,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,0,1,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,0,1,5d7174d2-42b3-4e12-b705-4209dd73b53b,5d7174d2-42b3-4e12-b705-4209dd73b53b,1,0,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,0,1,4a9e4ace-b2e9-4445-a77b-ba30a4995900,4a9e4ace-b2e9-4445-a77b-ba30a4995900,0,1,9de4d430-95ec-4435-b3e8-4fc85778d517,9de4d430-95ec-4435-b3e8-4fc85778d517,0,1,205b8908-fa21-42bd-bff0-fb95e6787f15,205b8908-fa21-42bd-bff0-fb95e6787f15,0,1,fc78d8df-ab27-4544-a65c-73908b9c5425,fc78d8df-ab27-4544-a65c-73908b9c5425,0,1,bd97e481-cfc4-4a40-8438-985020f06abd,bd97e481-cfc4-4a40-8438-985020f06abd,0,1,120c5162-b03c-46ce-8a2a-8ef501971715,120c5162-b03c-46ce-8a2a-8ef501971715,0,1,33343620-673e-4aa3-9e58-c6a25f738001,33343620-673e-4aa3-9e58-c6a25f738001,0,1,8aaf780f-ed74-4f44-9598-c14180053ff9,8aaf780f-ed74-4f44-9598-c14180053ff9,0,1,dbd4d09d-f410-4453-9143-bd72da5464cc,dbd4d09d-f410-4453-9143-bd72da5464cc,0,1,1853a370-767a-4845-9425-2f9363d91bd8,1853a370-767a-4845-9425-2f9363d91bd8,0,1,945ae8d2-b74a-41e9-b740-c82acdd40d04,945ae8d2-b74a-41e9-b740-c82acdd40d04,0,1,e3476d0e-0ab4-4734-9261-04aef6281086,e3476d0e-0ab4-4734-9261-04aef6281086,0,1,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,1,0,30fb1877-11cf-4985-a65d-6639a06b33f7,30fb1877-11cf-4985-a65d-6639a06b33f7,1,0,e9c355cb-d4ea-49d1-a893-f8f295a90701,e9c355cb-d4ea-49d1-a893-f8f295a90701,0,1,8811ea1a-1221-47b7-9574-3f36ff15a3cf,8811ea1a-1221-47b7-9574-3f36ff15a3cf,1,0,1d715463-691b-4c01-ae39-57c261f2a6ad,1d715463-691b-4c01-ae39-57c261f2a6ad,0,1,4c3d007f-a62c-4fd9-beda-58dbf08ad188,4c3d007f-a62c-4fd9-beda-58dbf08ad188,0,1,c35373a9-f0b0-4ddb-a985-409ac9c64609,c35373a9-f0b0-4ddb-a985-409ac9c64609,0,1,c1c40916-fee5-46e3-90fc-10e7595866c9,c1c40916-fee5-46e3-90fc-10e7595866c9,0,1,437021b0-9f18-4238-9af6-7ca275b91fa4,437021b0-9f18-4238-9af6-7ca275b91fa4,0,1,761a35cb-8387-435f-b671-d5bb0fe9bfeb,761a35cb-8387-435f-b671-d5bb0fe9bfeb,0,1,87dad256-122b-4d7e-b249-a2c313a9cf33,87dad256-122b-4d7e-b249-a2c313a9cf33,0,1,ac5f945e-2d03-44fb-a8cf-5d786194cefd,ac5f945e-2d03-44fb-a8cf-5d786194cefd,1,0,698ec00f-bf75-420e-81ab-a98808daf3f7,698ec00f-bf75-420e-81ab-a98808daf3f7,1,0,f441907c-d02e-431e-baf4-1854e48a1f50,f441907c-d02e-431e-baf4-1854e48a1f50,0,1,dad9710a-73ca-4e0d-b98b-75f955d0822d,dad9710a-73ca-4e0d-b98b-75f955d0822d,0,1,2191939f-6f71-47c9-a3d2-57acbf7f411e,2191939f-6f71-47c9-a3d2-57acbf7f411e,0,1,19b9cbbb-1fcc-4492-9385-687742cb3d0b,19b9cbbb-1fcc-4492-9385-687742cb3d0b,1,0,247c41dd-c8dc-43dd-b348-1ba31ee92065,247c41dd-c8dc-43dd-b348-1ba31ee92065,1,0,da673406-078d-44c8-9d27-80ef172c4b5e,da673406-078d-44c8-9d27-80ef172c4b5e,0,1,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,0,1,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,0,1,701964a1-7762-45ee-a9a4-41dd9ce94783,701964a1-7762-45ee-a9a4-41dd9ce94783,0,1,55d1909e-f552-441f-8e14-47d2e604cf6a,55d1909e-f552-441f-8e14-47d2e604cf6a,1,0,eae627db-c52b-4e41-94d1-58db28cd0063,eae627db-c52b-4e41-94d1-58db28cd0063,0,1,ed137e05-1996-411d-9927-45a3d7e3ee3b,ed137e05-1996-411d-9927-45a3d7e3ee3b,0,1,fbebf341-9842-41e1-8e4d-490fa02065ce,fbebf341-9842-41e1-8e4d-490fa02065ce,0,1,12cf9412-baf5-4d32-a563-a11ac3d5e0ed,12cf9412-baf5-4d32-a563-a11ac3d5e0ed,1,0,b8029aa5-0268-49d8-bd1e-bdaa9b7ce34c,b8029aa5-0268-49d8-bd1e-bdaa9b7ce34c,0,1,c05f87b4-ec5f-4d14-981f-02ca8ba89863,c05f87b4-ec5f-4d14-981f-02ca8ba89863,0,1,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,0,1,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,0,1,875d1fc1-8172-4e48-8192-035882e1665d,875d1fc1-8172-4e48-8192-035882e1665d,0,1,0bd85b79-cc32-4c1d-b629-567a1bdfac56,0bd85b79-cc32-4c1d-b629-567a1bdfac56,1,0,ca81e0ea-c428-47f9-aedb-078214104a2f,ca81e0ea-c428-47f9-aedb-078214104a2f,0,1,35a28677-0653-47f9-82e1-02c4b9266fee,35a28677-0653-47f9-82e1-02c4b9266fee,0,1,9518d09c-6996-4439-9278-3c71d5ae8fce,9518d09c-6996-4439-9278-3c71d5ae8fce,0,1,259564b8-172e-4eed-9360-d561ec6dad69,259564b8-172e-4eed-9360-d561ec6dad69,0,1,461be12a-9f16-4826-978a-436608ca8733,461be12a-9f16-4826-978a-436608ca8733,1,0,9b143299-d300-4b6c-b667-5552fb3bdcde,9b143299-d300-4b6c-b667-5552fb3bdcde,0,1,74973d06-f57d-403e-945c-5cd2f4fc4869,74973d06-f57d-403e-945c-5cd2f4fc4869,0,1,91c799d7-2b3d-4d1a-87ff-221057a428c6,91c799d7-2b3d-4d1a-87ff-221057a428c6,0,1,6ec3463a-1e94-4de7-a8c0-b0e42f38573e,6ec3463a-1e94-4de7-a8c0-b0e42f38573e,0,1,a6846c5a-7cf6-4df2-a159-2fd33d18d18f,a6846c5a-7cf6-4df2-a159-2fd33d18d18f,0,1,a50fcacc-6d2d-496c-bea0-9c73cd153437,a50fcacc-6d2d-496c-bea0-9c73cd153437,0,1,5a2d5d8a-afd9-4954-9868-7c82bad00426,5a2d5d8a-afd9-4954-9868-7c82bad00426,1,0,1f4d7158-15ed-4b0c-a7ed-1f8cfe2bd882,1f4d7158-15ed-4b0c-a7ed-1f8cfe2bd882,1,0,7effb232-a84f-4b4e-aa0c-1cefdc6ba612,7effb232-a84f-4b4e-aa0c-1cefdc6ba612,1,0,e4ce04bf-15a0-4d9d-af7b-4ec9e1fb36be,e4ce04bf-15a0-4d9d-af7b-4ec9e1fb36be,1,0,f75411c5-a317-42c4-8731-9b16856109d5,f75411c5-a317-42c4-8731-9b16856109d5,1,0,6ef011aa-eda4-4ddf-a588-5208790f6937,6ef011aa-eda4-4ddf-a588-5208790f6937,1,0,db07da1d-0281-4acf-90a2-3fd35629ab35,db07da1d-0281-4acf-90a2-3fd35629ab35,0,1,37818589-95de-43df-8a0f-f7149f96f683,37818589-95de-43df-8a0f-f7149f96f683,1,0,5ea65812-6c39-440e-82a4-621a16595d86,5ea65812-6c39-440e-82a4-621a16595d86,0,1,31dd320b-06aa-4314-9914-2c2420f572a1,31dd320b-06aa-4314-9914-2c2420f572a1,0,1,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,0,1,0a91f0a5-95a7-4cd5-9e5b-735aee0ad1b4,0a91f0a5-95a7-4cd5-9e5b-735aee0ad1b4,0,1,d4655391-144c-4ba6-aee5-1edafebe862c,d4655391-144c-4ba6-aee5-1edafebe862c,0,1,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,0,1,8ceea1e8-42ce-469f-823a-ceffdbd6b112,8ceea1e8-42ce-469f-823a-ceffdbd6b112,0,1,68caf9e5-9a79-4b77-b0f4-ca9c0fe4fa16,68caf9e5-9a79-4b77-b0f4-ca9c0fe4fa16,1,0,75c4e24f-b8d4-4b29-a9ce-e1d141c60fae,75c4e24f-b8d4-4b29-a9ce-e1d141c60fae,0,1,e93a4293-0497-4f11-b8b9-40300104fb96,e93a4293-0497-4f11-b8b9-40300104fb96,0,1,deee8bde-381f-4094-8794-7a06248860dd,deee8bde-381f-4094-8794-7a06248860dd,0,1,61bf78c0-7004-4a74-b362-e979c7316e05,61bf78c0-7004-4a74-b362-e979c7316e05,1,0,c4351896-eff1-4e4d-8823-028d63a9d6bf,c4351896-eff1-4e4d-8823-028d63a9d6bf,0,1,6995ee71-5901-46d9-a5c1-b35d795bda20,6995ee71-5901-46d9-a5c1-b35d795bda20,0,1,b0ccc05d-8d39-4f57-8e87-6846014f92ea,b0ccc05d-8d39-4f57-8e87-6846014f92ea,0,1,0e2c2490-50ee-4fed-9119-5dec8385f925,0e2c2490-50ee-4fed-9119-5dec8385f925,0,1,aa368dd9-86e1-46f9-a296-591c3639734d,aa368dd9-86e1-46f9-a296-591c3639734d,0,1,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,0,1,8986c155-54be-4b1b-b31a-5c00b88bc40d,8986c155-54be-4b1b-b31a-5c00b88bc40d,0,1,d91441cf-d793-4dfa-9225-f0c16818edde,d91441cf-d793-4dfa-9225-f0c16818edde,0,1,42a39785-144c-4d2d-92c6-fd8b345f687b,42a39785-144c-4d2d-92c6-fd8b345f687b,0,1,a275802f-937a-49f4-92da-fcdd185a036d,a275802f-937a-49f4-92da-fcdd185a036d,0,1,f2dc9319-ba60-421a-8340-be3e3a291393,f2dc9319-ba60-421a-8340-be3e3a291393,0,1,bf4eb62a-bc74-4845-bad2-58a2a8302a65,bf4eb62a-bc74-4845-bad2-58a2a8302a65,0,1,b66eb190-1c16-4f20-a94f-954bcdf313b8,b66eb190-1c16-4f20-a94f-954bcdf313b8,1,0,cb747d24-6d8a-4d97-8a13-305ee6f39f75,cb747d24-6d8a-4d97-8a13-305ee6f39f75,0,1,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,1,0,38184767-167b-49b7-b995-4f13900b3822,38184767-167b-49b7-b995-4f13900b3822,0,1,3247e64e-b57e-4c33-8086-7ab93c5b6371,3247e64e-b57e-4c33-8086-7ab93c5b6371,0,1,e5dca369-dc9a-4332-a509-f734b8787e13,e5dca369-dc9a-4332-a509-f734b8787e13,0,1,f6939587-ff87-4eca-ae52-10e1bd2abfce,f6939587-ff87-4eca-ae52-10e1bd2abfce,1,0,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,0,1,b0d9086f-cef7-47a8-ad62-d85fea28ebda,b0d9086f-cef7-47a8-ad62-d85fea28ebda,0,1,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,0,1,3e127ace-1506-44ca-9df8-a7a30aa11c56,3e127ace-1506-44ca-9df8-a7a30aa11c56,0,1,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,0,1,2b3cab9a-fd05-42a8-811a-f443aee5e192,2b3cab9a-fd05-42a8-811a-f443aee5e192,0,1,9e9bb3df-4658-4278-8fe7-d4bfc46d2ce1,9e9bb3df-4658-4278-8fe7-d4bfc46d2ce1,0,1,2c02a558-8d12-44cf-be6b-9c399b9032e5,2c02a558-8d12-44cf-be6b-9c399b9032e5,1,0,093dfea8-18ea-457c-aa6f-9bea9bdba76c,093dfea8-18ea-457c-aa6f-9bea9bdba76c,0,1,6c58cc27-215e-4169-88ae-004ecc657d53,6c58cc27-215e-4169-88ae-004ecc657d53,0,1,9c267aa6-5f23-49f6-868a-3324ef2845ff,9c267aa6-5f23-49f6-868a-3324ef2845ff,0,1,495eeeee-d7bf-4063-99e2-86daa066451a,495eeeee-d7bf-4063-99e2-86daa066451a,0,1,b6184698-79e4-4c19-9440-092ccd9dabf8,b6184698-79e4-4c19-9440-092ccd9dabf8,0,1,6eeb4867-bf9d-48dc-b96b-934a0c293010,6eeb4867-bf9d-48dc-b96b-934a0c293010,1,0,e1803e54-ec5e-4a82-8097-5e2331820991,e1803e54-ec5e-4a82-8097-5e2331820991,0,1,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,0,1,8506dbe9-7066-444b-83b6-fb2d71a336e7,8506dbe9-7066-444b-83b6-fb2d71a336e7,1,0,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,0,1,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,0,1,ce235ab9-1dec-459a-9fec-498c262ece56,ce235ab9-1dec-459a-9fec-498c262ece56,0,1,39355e82-30a6-431e-9697-e2c42e82de83,39355e82-30a6-431e-9697-e2c42e82de83,0,1,15d09274-9508-4f64-9ea3-678c5aa50f0f,15d09274-9508-4f64-9ea3-678c5aa50f0f,0,1,4debe032-12e4-4777-b2fc-70b150f2aad1,4debe032-12e4-4777-b2fc-70b150f2aad1,0,1,37558fa2-0833-46d6-9e4f-63d4a3136870,37558fa2-0833-46d6-9e4f-63d4a3136870,1,0,18f4994a-d907-4182-b41b-6e8ec56ae7e0,18f4994a-d907-4182-b41b-6e8ec56ae7e0,1,0,d92cb614-ed09-47db-b70b-d3e533c44c6a,d92cb614-ed09-47db-b70b-d3e533c44c6a,0,1,361271fa-2faa-497d-adfe-dea8b825405e,361271fa-2faa-497d-adfe-dea8b825405e,0,1,5dceae8b-1ff3-4760-a1c4-975a92be1023,5dceae8b-1ff3-4760-a1c4-975a92be1023,1,0,db80ae50-2baf-445b-9055-80f2c7f22c24,db80ae50-2baf-445b-9055-80f2c7f22c24,0,1,086d69d6-e2fa-45cb-84b6-f8f3e2919160,086d69d6-e2fa-45cb-84b6-f8f3e2919160,1,0,3e9d6ca0-62e0-46b0-b3e4-c625a9792b47,3e9d6ca0-62e0-46b0-b3e4-c625a9792b47,0,1,1681dd7a-de80-4b8d-9657-c9702a19d653,1681dd7a-de80-4b8d-9657-c9702a19d653,0,1,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,0,1,9f593f27-8009-40c0-94d6-53f177ce55f4,9f593f27-8009-40c0-94d6-53f177ce55f4,0,1,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,1,0,fd18fb60-8c1f-4c72-a07a-5d0e1f3da062,fd18fb60-8c1f-4c72-a07a-5d0e1f3da062,1,0,48aaf6fa-1f11-47a7-82fa-7e2a9e944414,48aaf6fa-1f11-47a7-82fa-7e2a9e944414,1,0,3d95b8fa-ebe7-46f7-8ec6-69195c91cc5b,3d95b8fa-ebe7-46f7-8ec6-69195c91cc5b,1,0,b828719a-7b92-4757-9e07-6429dd9b2d41,b828719a-7b92-4757-9e07-6429dd9b2d41,1,0,a6d60d0c-8949-4a95-919e-b1f08d325586,a6d60d0c-8949-4a95-919e-b1f08d325586,1,0,60bec79f-4965-451e-8e49-117e81d80527,60bec79f-4965-451e-8e49-117e81d80527,1,0,4b71f609-9453-43d0-a3ee-532ea472a84e,4b71f609-9453-43d0-a3ee-532ea472a84e,1,0,703bfeb7-d98d-4baf-a5e1-4a5cb7817ccc,703bfeb7-d98d-4baf-a5e1-4a5cb7817ccc,1,0,2de98078-17b2-4fc0-87f8-ad9a52f03807,2de98078-17b2-4fc0-87f8-ad9a52f03807,1,0,3959030a-b943-4c9b-8463-ab46b5f5355d,3959030a-b943-4c9b-8463-ab46b5f5355d,1,0,79e5b68a-d991-474f-8d98-1f655dafab50,79e5b68a-d991-474f-8d98-1f655dafab50,1,0,0425c046-a1c9-4b47-ad1c-df2d5f64a56b,0425c046-a1c9-4b47-ad1c-df2d5f64a56b,1,0,2893783c-237d-4746-b58b-0d3f10374bdc,2893783c-237d-4746-b58b-0d3f10374bdc,1,0,e8d3756d-32b5-4919-8899-bf6665a7945d,e8d3756d-32b5-4919-8899-bf6665a7945d,0,1,033d9a8f-73d3-4be3-b0e9-7c9e9cb12161,033d9a8f-73d3-4be3-b0e9-7c9e9cb12161,0,1,dba0d5db-9499-42c0-b4e0-2dd9f7ec462b,dba0d5db-9499-42c0-b4e0-2dd9f7ec462b,0,1,8ecfdcbc-099e-4206-b3d8-541517117ac5,8ecfdcbc-099e-4206-b3d8-541517117ac5,0,1,9f845a0d-b0cb-40c3-9e70-04f4b473990c,9f845a0d-b0cb-40c3-9e70-04f4b473990c,0,1,30c0ab17-d8c7-46c3-82e2-b67572db0a83,30c0ab17-d8c7-46c3-82e2-b67572db0a83,0,1,e82dbb36-a077-47d9-a904-f01ce82b4c19,e82dbb36-a077-47d9-a904-f01ce82b4c19,0,1,f4afbbd8-c503-4715-b0f2-476e0dcbf14c,f4afbbd8-c503-4715-b0f2-476e0dcbf14c,0,1,65625b4e-9ff9-4e15-b3f1-cc0003df25ea,65625b4e-9ff9-4e15-b3f1-cc0003df25ea,0,1,5feb2e44-9d15-4bf8-9f7d-efea6b13e402,5feb2e44-9d15-4bf8-9f7d-efea6b13e402,0,1,619f64ea-78da-448b-86c7-fbb561500211,619f64ea-78da-448b-86c7-fbb561500211,0,1,820d02c2-2cdd-4b09-ab65-98048daef9a0,820d02c2-2cdd-4b09-ab65-98048daef9a0,0,1,b0d36a9d-9ef9-4eff-9360-aeca38d7e967,b0d36a9d-9ef9-4eff-9360-aeca38d7e967,0,1,7e283796-d8a9-442b-b646-92e85beec1e3,7e283796-d8a9-442b-b646-92e85beec1e3,0,1,5c79771f-f98c-453d-9672-8aff65978e20,5c79771f-f98c-453d-9672-8aff65978e20,0,1,51656bbb-096b-4be7-95fb-801e84651d32,51656bbb-096b-4be7-95fb-801e84651d32,0,1,f9b36fd7-095a-48ef-80a6-87415eac7225,f9b36fd7-095a-48ef-80a6-87415eac7225,0,1,1dbecc5f-fe9c-4d8b-a96b-c4c49c06d088,1dbecc5f-fe9c-4d8b-a96b-c4c49c06d088,0,1,97414063-7575-4bb2-9246-a5565fccc1e1,97414063-7575-4bb2-9246-a5565fccc1e1,0,1,e9c632b0-7977-4e44-ac56-882617ad7cdc,e9c632b0-7977-4e44-ac56-882617ad7cdc,1,0,6fbf63b7-1692-495e-a8ec-bdda182997a3,6fbf63b7-1692-495e-a8ec-bdda182997a3,1,0,e84acba7-7e0f-43e8-a545-6e53d529d5d4,e84acba7-7e0f-43e8-a545-6e53d529d5d4,1,0,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,1,0,6086d53f-f1b2-4126-ab46-64705fe63b87,6086d53f-f1b2-4126-ab46-64705fe63b87,1,0,9c052faf-1d7c-452d-ab81-7fd8f283af66,9c052faf-1d7c-452d-ab81-7fd8f283af66,1,0,5197d1d9-e5f7-4c2d-a72f-8e321a5bde04,5197d1d9-e5f7-4c2d-a72f-8e321a5bde04,1,0,c4bc2765-4007-4f48-b8f0-f5911c9a62b6,c4bc2765-4007-4f48-b8f0-f5911c9a62b6,1,0,5cd8157f-7d91-48b7-afd6-11942da3ba24,5cd8157f-7d91-48b7-afd6-11942da3ba24,0,1,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,0,1,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,1,0,8172256e-f51e-4de0-bd07-3668785f4cb9,8172256e-f51e-4de0-bd07-3668785f4cb9,1,0,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,0,1,6287eded-23d8-4b04-8415-1d9afa17713b,6287eded-23d8-4b04-8415-1d9afa17713b,0,1,8ce3513d-d086-46f4-81c3-1761594a64c5,8ce3513d-d086-46f4-81c3-1761594a64c5,0,1,79cb147c-8c6b-4f6e-8d5d-dfa29a6e6e53,79cb147c-8c6b-4f6e-8d5d-dfa29a6e6e53,1,0,d95dd1f5-ef84-4bcc-b017-65e390d48873,d95dd1f5-ef84-4bcc-b017-65e390d48873,1,0,59edae58-edef-4451-97e1-9fbb46a3fd9c,59edae58-edef-4451-97e1-9fbb46a3fd9c,0,1,db1062bc-4164-4095-9640-9804c0ebcd0b,db1062bc-4164-4095-9640-9804c0ebcd0b,0,1,ea7c61ff-745c-4908-9a94-bba022d12de4,ea7c61ff-745c-4908-9a94-bba022d12de4,0,1,e0519f0c-9c99-4f5c-a3a9-27adce45737d,e0519f0c-9c99-4f5c-a3a9-27adce45737d,0,1,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,0,1,53caada5-1d53-45dc-9432-90075ddca890,53caada5-1d53-45dc-9432-90075ddca890,0,1,d1472d23-954b-4069-b2d6-df08c6ec0be1,d1472d23-954b-4069-b2d6-df08c6ec0be1,0,1,93fe2ce6-7193-42bc-a966-4653b7989eaa,93fe2ce6-7193-42bc-a966-4653b7989eaa,0,1,73d04ff9-ca39-4a7b-82d6-a7dba677c7d8,73d04ff9-ca39-4a7b-82d6-a7dba677c7d8,0,1,a7fe0aa5-722c-4a09-889b-ee422421addc,a7fe0aa5-722c-4a09-889b-ee422421addc,0,1,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,0,1,0c838a31-2b08-447c-b39a-a613cfba526c,0c838a31-2b08-447c-b39a-a613cfba526c,0,1,879844f0-30b4-47f5-8d2e-5fea29910368,879844f0-30b4-47f5-8d2e-5fea29910368,0,1,9bc09758-a7ce-44e0-baa3-a3e909869d9b,9bc09758-a7ce-44e0-baa3-a3e909869d9b,0,1,04424730-6992-4a5b-838b-7a7c16dedbd0,04424730-6992-4a5b-838b-7a7c16dedbd0,0,1,0874a3c0-0d16-4172-b467-f0666d5fcaee,0874a3c0-0d16-4172-b467-f0666d5fcaee,0,1,cc380a19-ab29-4f20-93ad-9a58cd4de56e,cc380a19-ab29-4f20-93ad-9a58cd4de56e,0,1,e54a8786-86a4-48e3-a210-aaae4e5fce8c,e54a8786-86a4-48e3-a210-aaae4e5fce8c,0,1,3062c54f-92ed-42c5-b62f-1c0e685cfe75,3062c54f-92ed-42c5-b62f-1c0e685cfe75,0,1,14512818-58b0-44cc-b00d-d37913c57aad,14512818-58b0-44cc-b00d-d37913c57aad,0,1,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,0,1,57964dd6-4b0b-4590-bc44-de744cc423af,57964dd6-4b0b-4590-bc44-de744cc423af,0,1,46e0522b-b88b-43b2-9067-a5359e90994b,46e0522b-b88b-43b2-9067-a5359e90994b,0,1,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,0,1,72d41d01-9c9d-4fbe-8a39-932d82d171ef,72d41d01-9c9d-4fbe-8a39-932d82d171ef,0,1,697d5715-dd04-40be-9b28-539734725158,697d5715-dd04-40be-9b28-539734725158,0,1,d487e66e-a7b0-4110-903e-652fe0e6106c,d487e66e-a7b0-4110-903e-652fe0e6106c,0,1,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,0,1,d95fcb37-fc65-466d-93e2-489f41683276,d95fcb37-fc65-466d-93e2-489f41683276,0,1,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,0,1,3576ba1d-5b3a-4605-9092-0421767721ac,3576ba1d-5b3a-4605-9092-0421767721ac,0,1,a27a9296-46bb-49a1-8308-db675baa81d0,a27a9296-46bb-49a1-8308-db675baa81d0,0,1,1456f317-360c-4190-b2d1-1be7484369a5,1456f317-360c-4190-b2d1-1be7484369a5,0,1,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,0,1,4867948f-b027-44ae-b78c-a94e00eed52b,4867948f-b027-44ae-b78c-a94e00eed52b,0,1,39ed5463-b1c0-44bb-9d71-4ef08007a7d0,39ed5463-b1c0-44bb-9d71-4ef08007a7d0,0,1,56cc2ba7-fee3-4dcb-9a2a-93dc94a5ee1f,56cc2ba7-fee3-4dcb-9a2a-93dc94a5ee1f,0,1,f0ffe529-481f-4eed-8fc8-02a9d8f08f7a,f0ffe529-481f-4eed-8fc8-02a9d8f08f7a,0,1,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,0,1,618d13d5-fd1f-4b70-ad45-dd6a17a50730,618d13d5-fd1f-4b70-ad45-dd6a17a50730,1,0,0bddbceb-5739-46f8-88b6-06bcead350d9,0bddbceb-5739-46f8-88b6-06bcead350d9,1,0,25ca2e70-0293-4bd4-9e08-bbd39120b3cf,25ca2e70-0293-4bd4-9e08-bbd39120b3cf,0,1,8e45e18b-f99b-4838-ae26-124397d37a00,8e45e18b-f99b-4838-ae26-124397d37a00,0,1,349378d1-abe3-44de-84a4-d525b08e0474,349378d1-abe3-44de-84a4-d525b08e0474,0,1,1526b18d-7fab-414e-a5b2-377b67ac0b55,1526b18d-7fab-414e-a5b2-377b67ac0b55,0,1,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,0,1,28dc34df-1daa-49a2-a12e-db91ee963459,28dc34df-1daa-49a2-a12e-db91ee963459,0,1,2233ce53-b8a8-4c83-97a2-683c8575462a,2233ce53-b8a8-4c83-97a2-683c8575462a,0,1,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,0,1,c2ef8d6b-de7b-430d-ac30-76cdaf0579c2,c2ef8d6b-de7b-430d-ac30-76cdaf0579c2,0,1,8ca0258c-96d8-4a12-b94f-db968195ee0a,8ca0258c-96d8-4a12-b94f-db968195ee0a,0,1,c849fb09-7833-49c8-9461-98426dc6c0af,c849fb09-7833-49c8-9461-98426dc6c0af,0,1,6c58fc3a-37f8-44b7-b076-2c10ce09b554,6c58fc3a-37f8-44b7-b076-2c10ce09b554,1,0,b94523c0-33fe-452a-ada5-071cd78fc47b,b94523c0-33fe-452a-ada5-071cd78fc47b,1,0,47da49ee-b243-4e78-9c8f-bb26c60e6136,47da49ee-b243-4e78-9c8f-bb26c60e6136,1,0,39bee714-cacd-4d48-97a5-c838660e049a,39bee714-cacd-4d48-97a5-c838660e049a,1,0,fef727fa-f63b-4467-9367-73a2425b19e3,fef727fa-f63b-4467-9367-73a2425b19e3,1,0,bfa90848-930f-433d-8f6f-c11ac2c5eba2,bfa90848-930f-433d-8f6f-c11ac2c5eba2,1,0,2baf6d7a-12ed-4f22-ad96-92bb31b747ff,2baf6d7a-12ed-4f22-ad96-92bb31b747ff,1,0,75666bb9-f6d3-4dd6-8220-427a81f23fc9,75666bb9-f6d3-4dd6-8220-427a81f23fc9,1,0,becf53b6-3fbc-4c70-822f-4a70b0434353,becf53b6-3fbc-4c70-822f-4a70b0434353,1,0,652ee894-047b-4a5a-a500-2d61b4c4a473,652ee894-047b-4a5a-a500-2d61b4c4a473,1,0,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,1,0,33f8cd94-71e7-4703-92c3-22690fbd871a,33f8cd94-71e7-4703-92c3-22690fbd871a,1,0,b6e5de4d-0156-4342-b646-6e6920a4bd3a,b6e5de4d-0156-4342-b646-6e6920a4bd3a,0,1,085cbea9-1df1-4ee9-afb7-da2bf313697e,085cbea9-1df1-4ee9-afb7-da2bf313697e,1,0,09858042-6284-4499-8055-c1b5b783ce5f,09858042-6284-4499-8055-c1b5b783ce5f,1,0,c38d8135-e11f-4860-b370-84ff279b7fbd,c38d8135-e11f-4860-b370-84ff279b7fbd,1,0,ee0798f5-47a8-4118-a25c-cfd3473007c1,ee0798f5-47a8-4118-a25c-cfd3473007c1,1,0,29f2094a-d0d1-425c-8161-45a9ba186e19,29f2094a-d0d1-425c-8161-45a9ba186e19,1,0,38fc1e6e-7cd3-437b-b429-6655be34cd01,38fc1e6e-7cd3-437b-b429-6655be34cd01,1,0,69149ce1-d3f8-4e12-be8f-b328ade60882,69149ce1-d3f8-4e12-be8f-b328ade60882,1,0,ff592ecb-eb08-4554-87bf-1d2935b21d3c,ff592ecb-eb08-4554-87bf-1d2935b21d3c,0,1,e50cb13a-151b-45d2-a7b7-d23440ddfa24,e50cb13a-151b-45d2-a7b7-d23440ddfa24,1,0,b8a32c33-4e15-4c21-baab-64a86d44321b,b8a32c33-4e15-4c21-baab-64a86d44321b,1,0,e7d51ada-f286-4519-bfae-ece95dd4d7b0,e7d51ada-f286-4519-bfae-ece95dd4d7b0,0,1,d7dd9a03-6818-4987-8f39-58e1c906569f,d7dd9a03-6818-4987-8f39-58e1c906569f,1,0,fce028b8-b530-49f0-b6ad-a28d03e19b0f,fce028b8-b530-49f0-b6ad-a28d03e19b0f,0,1,d975aef4-8da8-4486-baeb-a99c48cff0ec,d975aef4-8da8-4486-baeb-a99c48cff0ec,1,0,4c293fd7-be16-493b-a6db-c22f7a0fc31c,4c293fd7-be16-493b-a6db-c22f7a0fc31c,1,0,41f87891-ddd5-4e0f-a4f2-8039fb71981b,41f87891-ddd5-4e0f-a4f2-8039fb71981b,0,1,893b2dd9-a939-4799-9b78-50d788a5f3ba,893b2dd9-a939-4799-9b78-50d788a5f3ba,1,0,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,1,0,4dfc428e-c2d7-40b8-925f-d7c186f52476,4dfc428e-c2d7-40b8-925f-d7c186f52476,1,0,80ae578c-f6c7-4589-98c5-5691714baa29,80ae578c-f6c7-4589-98c5-5691714baa29,1,0,a44cc726-48b9-4193-8991-c9e0777ed7de,a44cc726-48b9-4193-8991-c9e0777ed7de,1,0,52c38669-4735-4f5b-8e0e-17d7e15ea94a,52c38669-4735-4f5b-8e0e-17d7e15ea94a,0,1,e4842271-4fc0-4e15-afef-876f05af78c0,e4842271-4fc0-4e15-afef-876f05af78c0,0,1,135d57fe-d420-4bb0-9120-e43fd9b55c16,135d57fe-d420-4bb0-9120-e43fd9b55c16,0,1,c1a1f12b-3978-4047-956e-a5c7de8371a0,c1a1f12b-3978-4047-956e-a5c7de8371a0,0,1,ac39b903-0c60-417e-a50f-49ed375424f5,ac39b903-0c60-417e-a50f-49ed375424f5,1,0,8e99ed5a-d64a-4d4d-a422-3f1055be6ebd,8e99ed5a-d64a-4d4d-a422-3f1055be6ebd,0,1,3494fa21-02e0-46bb-b810-534e6f1b4b20,3494fa21-02e0-46bb-b810-534e6f1b4b20,0,1,9887e36d-0dba-4301-a77b-102caefc7ca9,9887e36d-0dba-4301-a77b-102caefc7ca9,1,0,7eef7281-c5c6-48d5-a636-c437b75611d6,7eef7281-c5c6-48d5-a636-c437b75611d6,0,1,64f667e5-6a8f-448f-aed5-a4d461232845,64f667e5-6a8f-448f-aed5-a4d461232845,0,1,a148cdff-0e67-48e6-9cc5-e8a6f5aa1ae8,a148cdff-0e67-48e6-9cc5-e8a6f5aa1ae8,0,1,037842ca-aeaf-4e27-9a0e-e929438b6f40,037842ca-aeaf-4e27-9a0e-e929438b6f40,1,0,fba74e94-e7e1-46d9-b72b-269cb1cc8a71,fba74e94-e7e1-46d9-b72b-269cb1cc8a71,0,1,59855d19-29cd-4efd-a453-b19e574113ef,59855d19-29cd-4efd-a453-b19e574113ef,0,1,94e08dcf-3885-4a73-82ab-cb291f1cf95f,94e08dcf-3885-4a73-82ab-cb291f1cf95f,0,1,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,0,1,a1875d63-4303-46f1-bdea-fc529b5891f3,a1875d63-4303-46f1-bdea-fc529b5891f3,0,1,133f181a-fade-4182-826d-904fac780326,133f181a-fade-4182-826d-904fac780326,1,0,33f8892d-8d7f-4b00-af4f-af37193fa395,33f8892d-8d7f-4b00-af4f-af37193fa395,0,1,641ebe22-7135-4adb-bbd6-e0c37d246a2d,641ebe22-7135-4adb-bbd6-e0c37d246a2d,0,1,f71ba01e-9f6b-4241-8048-4368c8888756,f71ba01e-9f6b-4241-8048-4368c8888756,0,1,60208d56-f778-4ff6-abdd-ea6622504ace,60208d56-f778-4ff6-abdd-ea6622504ace,0,1,6aa814fa-417e-428c-951e-6efd9d0775da,6aa814fa-417e-428c-951e-6efd9d0775da,0,1,5a979568-6bc7-4f75-b585-ebdcaafc119a,5a979568-6bc7-4f75-b585-ebdcaafc119a,0,1,a247efe1-8608-4780-9cc8-54e29944475b,a247efe1-8608-4780-9cc8-54e29944475b,0,1,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,0,1,bed22a72-1a5e-46e5-ad71-f94e9508e272,bed22a72-1a5e-46e5-ad71-f94e9508e272,1,0,97ea39b4-9a69-4598-b998-044fba1f4f81,97ea39b4-9a69-4598-b998-044fba1f4f81,0,1,a8f162e9-3f59-41a5-b82f-da20928213c7,a8f162e9-3f59-41a5-b82f-da20928213c7,0,1,ade68dfd-5037-4fd7-b043-9514e3fe6342,ade68dfd-5037-4fd7-b043-9514e3fe6342,0,1,7b008aad-9d05-43e1-8295-62ae58cfff42,7b008aad-9d05-43e1-8295-62ae58cfff42,0,1,fdaf9255-d621-4a98-9530-f618ed440795,fdaf9255-d621-4a98-9530-f618ed440795,0,1,65a331c0-7501-49f6-8027-35b703d11834,65a331c0-7501-49f6-8027-35b703d11834,1,0,bfad444f-ee47-4131-a371-8089b8a09f4f,bfad444f-ee47-4131-a371-8089b8a09f4f,0,1,f5417147-4d2a-4e49-911b-2bb5eccb8441,f5417147-4d2a-4e49-911b-2bb5eccb8441,0,1,475f8577-a141-496b-94e1-53215c0dd017,475f8577-a141-496b-94e1-53215c0dd017,0,1,97638762-c01e-4c8f-88e2-b356e517e18f,97638762-c01e-4c8f-88e2-b356e517e18f,0,1,0d124daf-dc52-4391-a2d9-3c43a45c422c,0d124daf-dc52-4391-a2d9-3c43a45c422c,0,1,f8139d21-0380-43b5-8025-c986f8598c74,f8139d21-0380-43b5-8025-c986f8598c74,0,1,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,1,0,f01fedee-d4c1-498d-9c9b-78b2e7e99e65,f01fedee-d4c1-498d-9c9b-78b2e7e99e65,1,0,7c34aa14-1300-4d03-8a1f-56e801748db4,7c34aa14-1300-4d03-8a1f-56e801748db4,0,1,b00c31d6-4fc6-4189-9f72-f91742ec705f,b00c31d6-4fc6-4189-9f72-f91742ec705f,0,1,1333101b-82e8-41a9-a793-5af5dcd6f68a,1333101b-82e8-41a9-a793-5af5dcd6f68a,0,1,0f25646a-90f9-4747-a778-7efdaabc284c,0f25646a-90f9-4747-a778-7efdaabc284c,0,1,ca179cb5-65e1-4a55-bf12-096b926accb0,ca179cb5-65e1-4a55-bf12-096b926accb0,0,1,07bb26ac-bd97-465f-a192-db7fedbb579b,07bb26ac-bd97-465f-a192-db7fedbb579b,0,1,84e63b9b-0293-49bc-ba7f-e803bc44fc42,84e63b9b-0293-49bc-ba7f-e803bc44fc42,0,1,c54f31ce-114b-46d3-b4c6-12c8f07727ca,c54f31ce-114b-46d3-b4c6-12c8f07727ca,0,1,b2c8bd74-21c9-4495-93e2-ca5355698350,b2c8bd74-21c9-4495-93e2-ca5355698350,0,1,b6566d54-e821-4a2a-a447-0f533f35de91,b6566d54-e821-4a2a-a447-0f533f35de91,0,1,84395058-d46a-428c-b782-a9fa89fea14a,84395058-d46a-428c-b782-a9fa89fea14a,0,1,39bc2bc6-2a4f-4e26-b1b9-fb8473234f09,39bc2bc6-2a4f-4e26-b1b9-fb8473234f09,0,1,9cf45640-aeb3-45aa-97aa-922a83e61510,9cf45640-aeb3-45aa-97aa-922a83e61510,1,0,9d5c615c-49af-45e9-aa3d-07747466a51b,9d5c615c-49af-45e9-aa3d-07747466a51b,0,1,f2e2df50-52fc-4e95-909b-80fc91a68f62,f2e2df50-52fc-4e95-909b-80fc91a68f62,0,1,36ec0fb5-a5f3-4685-9696-c44a393998f6,36ec0fb5-a5f3-4685-9696-c44a393998f6,0,1,1b887b59-9a72-4aa3-a985-7a8d6a427b95,1b887b59-9a72-4aa3-a985-7a8d6a427b95,0,1,1fca06d9-b015-4fc8-abdd-3e2397e0c307,1fca06d9-b015-4fc8-abdd-3e2397e0c307,0,1,05b6a743-5831-4c77-894c-b19005b0e141,05b6a743-5831-4c77-894c-b19005b0e141,0,1,1f7ec25a-05b1-468b-8857-2bb1aed3678a,1f7ec25a-05b1-468b-8857-2bb1aed3678a,0,1,b639ed30-3e37-4c65-a39f-00fe735950eb,b639ed30-3e37-4c65-a39f-00fe735950eb,0,1,b6ac957c-0525-4c48-854e-86007beb83db,b6ac957c-0525-4c48-854e-86007beb83db,0,1,f137eb0f-bde7-412d-9229-d7a4f9456e6c,f137eb0f-bde7-412d-9229-d7a4f9456e6c,0,1,57e9fcea-342c-4089-bd10-befb3faf0dbd,57e9fcea-342c-4089-bd10-befb3faf0dbd,0,1,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,0,1,f811b0b7-41b5-4591-9910-780f08780236,f811b0b7-41b5-4591-9910-780f08780236,0,1,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,0,1,7e089889-cf8d-4f5f-879c-0a1bcca1c19b,7e089889-cf8d-4f5f-879c-0a1bcca1c19b,0,1,7e2ba519-fbb9-4163-b20b-b99898e6ac57,7e2ba519-fbb9-4163-b20b-b99898e6ac57,1,0,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,0,1,1346045c-e747-4d5c-b8c6-d9dcc268ed3a,1346045c-e747-4d5c-b8c6-d9dcc268ed3a,0,1,2609ba3c-e4de-45b3-86e0-93db39a21eee,2609ba3c-e4de-45b3-86e0-93db39a21eee,1,0,bf1e9682-3cc6-44b6-b9e4-a3b37facb0e7,bf1e9682-3cc6-44b6-b9e4-a3b37facb0e7,1,0,9a70c38e-6770-4edf-9566-ce44b537a532,9a70c38e-6770-4edf-9566-ce44b537a532,1,0,417063e2-7d8c-4837-b68d-df5724048e70,417063e2-7d8c-4837-b68d-df5724048e70,1,0,31628f30-2ac2-446e-9b32-c544019c0b40,31628f30-2ac2-446e-9b32-c544019c0b40,1,0,cd9bafa1-23fe-4094-9137-b36df6e8e8f5,cd9bafa1-23fe-4094-9137-b36df6e8e8f5,1,0,c1b4726f-7d9f-43a2-817a-5b7ce7a4fb46,c1b4726f-7d9f-43a2-817a-5b7ce7a4fb46,1,0,e24adcf3-71b1-4081-8dab-3aaa628a9331,e24adcf3-71b1-4081-8dab-3aaa628a9331,1,0,00fc7fe1-66c2-4d3d-bc17-b3ba5211a3ab,00fc7fe1-66c2-4d3d-bc17-b3ba5211a3ab,1,0,64d4b8ea-5906-4f0b-8328-9139a09202c0,64d4b8ea-5906-4f0b-8328-9139a09202c0,1,0,e8301322-f929-4ff5-9633-18e8a08db6fd,e8301322-f929-4ff5-9633-18e8a08db6fd,1,0,0af47dcf-7220-4b15-bb14-3324f65b8af6,0af47dcf-7220-4b15-bb14-3324f65b8af6,1,0,a9559418-2410-4e20-8bf1-74983406d2f3,a9559418-2410-4e20-8bf1-74983406d2f3,1,0,05069fb4-0bbb-4d8e-93f3-e5be47a4d777,05069fb4-0bbb-4d8e-93f3-e5be47a4d777,1,0,6e4f3314-4f8a-4413-b946-805cc375ffe6,6e4f3314-4f8a-4413-b946-805cc375ffe6,1,0,7adec5ff-8172-4a62-9e5c-8ef77df16d1b,7adec5ff-8172-4a62-9e5c-8ef77df16d1b,1,0,57fa19bb-3f68-4243-b216-a8e13a022b48,57fa19bb-3f68-4243-b216-a8e13a022b48,1,0,4ec82ae6-fbd6-4788-bcf0-2c21ce54a03d,4ec82ae6-fbd6-4788-bcf0-2c21ce54a03d,1,0,578a92d3-b380-4a8b-af9d-2f608dbae5d0,578a92d3-b380-4a8b-af9d-2f608dbae5d0,1,0,ca8450e9-38c1-4db7-8832-2c6fe2c4dc0b,ca8450e9-38c1-4db7-8832-2c6fe2c4dc0b,1,0,138f0718-4566-41d7-86f7-50f0c5e6c90e,138f0718-4566-41d7-86f7-50f0c5e6c90e,1,0,3e12296d-7cd7-4dbc-bdf3-3d40f945b483,3e12296d-7cd7-4dbc-bdf3-3d40f945b483,1,0,baa2f562-a08c-41d9-b1fc-881aafeef2fa,baa2f562-a08c-41d9-b1fc-881aafeef2fa,1,0,020882c2-dbc4-4b40-8556-6a11d75b00fe,020882c2-dbc4-4b40-8556-6a11d75b00fe,1,0,f54dd38b-e222-4520-bdf7-8d6c64c0244c,f54dd38b-e222-4520-bdf7-8d6c64c0244c,1,0,58aabfdb-61c2-42ad-aed1-0e88b5414f0b,58aabfdb-61c2-42ad-aed1-0e88b5414f0b,1,0,52507c4e-9378-4f00-a6b8-dd7e60d2afa5,52507c4e-9378-4f00-a6b8-dd7e60d2afa5,1,0,bc22ce64-a79c-4118-8ede-a69d66f62b0a,bc22ce64-a79c-4118-8ede-a69d66f62b0a,0,1,d21971c9-9aa6-448a-ab37-49ad0b0547ec,d21971c9-9aa6-448a-ab37-49ad0b0547ec,0,1,0010dab9-d0db-48cd-903d-3234002ca1b5,0010dab9-d0db-48cd-903d-3234002ca1b5,0,1,e035494e-71ed-44f1-b04c-f2f47bcfa0fe,e035494e-71ed-44f1-b04c-f2f47bcfa0fe,0,1,00418e6c-77b2-4753-b9ff-3a8013436f8a,00418e6c-77b2-4753-b9ff-3a8013436f8a,0,1,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,0,1,a3c9a7eb-2104-4402-954c-3e12de4a7de3,a3c9a7eb-2104-4402-954c-3e12de4a7de3,0,1,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,0,1,ccd2536d-592f-4109-bda9-7964c8b9757d,ccd2536d-592f-4109-bda9-7964c8b9757d,0,1,6c34eef9-9405-4de0-9177-1bae85251ae4,6c34eef9-9405-4de0-9177-1bae85251ae4,0,1,295a5554-f6cc-437b-9e89-c6f653a8b858,295a5554-f6cc-437b-9e89-c6f653a8b858,0,1,e09534e3-ac6e-42a6-86e8-564acb20089a,e09534e3-ac6e-42a6-86e8-564acb20089a,0,1,63223883-06cf-4d01-be95-5e410cc58a22,63223883-06cf-4d01-be95-5e410cc58a22,0,1,1929139f-dabb-4c40-9423-158093360889,1929139f-dabb-4c40-9423-158093360889,0,1,dad92df4-685b-4260-b35f-4d031262dfea,dad92df4-685b-4260-b35f-4d031262dfea,0,1,4399c19a-ddba-42e9-88b4-c5c28abad237,4399c19a-ddba-42e9-88b4-c5c28abad237,0,1,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,0,1,bde70605-7ffc-4b38-b65d-e7b0d14e2f3a,bde70605-7ffc-4b38-b65d-e7b0d14e2f3a,1,0,2cd04d4c-2619-40c9-adf4-7bb281f045b6,2cd04d4c-2619-40c9-adf4-7bb281f045b6,0,1,cbc1c36d-7bbf-4892-8220-a33ec91a7b1f,cbc1c36d-7bbf-4892-8220-a33ec91a7b1f,0,1,5d4e67ae-7029-46d2-86f9-834a04a9dd71,5d4e67ae-7029-46d2-86f9-834a04a9dd71,0,1,b3554203-b930-496d-a712-353bc13a0946,b3554203-b930-496d-a712-353bc13a0946,0,1,59775ce0-f778-45f6-9453-bbd0a0ec1f27,59775ce0-f778-45f6-9453-bbd0a0ec1f27,0,1,078d3269-80fd-4406-9972-ab2a5fd83434,078d3269-80fd-4406-9972-ab2a5fd83434,0,1,f772abd3-8ea0-41e9-aaca-c5375778941a,f772abd3-8ea0-41e9-aaca-c5375778941a,0,1,d06e845a-9f54-40dd-b0df-6988def62017,d06e845a-9f54-40dd-b0df-6988def62017,0,1,b322b047-16eb-4500-826a-6dfebb7d997a,b322b047-16eb-4500-826a-6dfebb7d997a,0,1,c8da922f-e31e-49b0-b90e-1c060424bde5,c8da922f-e31e-49b0-b90e-1c060424bde5,0,1,35bc58df-8aff-48dd-83a9-b60b0461f94d,35bc58df-8aff-48dd-83a9-b60b0461f94d,0,1,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,0,1,b65afceb-a200-42d5-9948-831a5ad84b1b,b65afceb-a200-42d5-9948-831a5ad84b1b,0,1,feb1a5c1-c805-4079-8f05-8a44f51b0b02,feb1a5c1-c805-4079-8f05-8a44f51b0b02,0,1,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,0,1,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,0,1,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,0,1,231d3950-f363-4e63-83cd-8ddb81507c27,231d3950-f363-4e63-83cd-8ddb81507c27,0,1,87429f11-bf95-4013-bf13-da904570f88d,87429f11-bf95-4013-bf13-da904570f88d,0,1,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,0,1,feb41347-62db-41cf-ace0-d8b9de361af3,feb41347-62db-41cf-ace0-d8b9de361af3,0,1,5f91b00f-d8fc-4d63-8486-66339357ab22,5f91b00f-d8fc-4d63-8486-66339357ab22,0,1,16d44ab1-4bce-4df8-a215-6ed5173c75a8,16d44ab1-4bce-4df8-a215-6ed5173c75a8,0,1,cdce186a-229d-492d-8811-147fc4d7cdf5,cdce186a-229d-492d-8811-147fc4d7cdf5,0,1,543f976e-fea3-4a51-9962-b8e0fcd3f707,543f976e-fea3-4a51-9962-b8e0fcd3f707,0,1,375977c1-5745-4e78-a4df-cef966c0ccf8,375977c1-5745-4e78-a4df-cef966c0ccf8,0,1,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,0,1,c3796d85-2a24-43c4-9673-64e56249a1d0,c3796d85-2a24-43c4-9673-64e56249a1d0,0,1,fc1066b5-20d4-4c73-85f8-9889e554d6e1,fc1066b5-20d4-4c73-85f8-9889e554d6e1,0,1,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,0,1,731211c2-ef90-4883-9525-83cd91b742ac,731211c2-ef90-4883-9525-83cd91b742ac,0,1,0adf02da-940a-4bfc-afa5-59605494a169,0adf02da-940a-4bfc-afa5-59605494a169,0,1,06afe397-1c7e-400e-bb24-f8e611d114e8,06afe397-1c7e-400e-bb24-f8e611d114e8,0,1,8361991a-0f30-4a03-9a4c-90556b744f53,8361991a-0f30-4a03-9a4c-90556b744f53,0,1,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,0,1,f9196766-4ae2-4a73-bed6-4a8838323e02,f9196766-4ae2-4a73-bed6-4a8838323e02,0,1,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,0,1,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,0,1,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,0,1,f0105e51-9510-426a-8aa0-af827d93ffd9,f0105e51-9510-426a-8aa0-af827d93ffd9,0,1,3df19dbf-efe7-4e31-99ad-fafb59ec1329,3df19dbf-efe7-4e31-99ad-fafb59ec1329,0,1,292b47e7-5cf3-462d-a466-dac6253a7f03,292b47e7-5cf3-462d-a466-dac6253a7f03,0,1,07b53818-7318-4400-8af5-457fac012755,07b53818-7318-4400-8af5-457fac012755,0,1,11fe3a42-98c4-49ba-b697-86ffb172f16f,11fe3a42-98c4-49ba-b697-86ffb172f16f,0,1,8ecc070f-f6fb-46b1-9636-b77aa80f8804,8ecc070f-f6fb-46b1-9636-b77aa80f8804,0,1,8405be9d-465b-4744-b04f-03933b52f02e,8405be9d-465b-4744-b04f-03933b52f02e,0,1,2f67931e-543f-457e-80fd-78ca754e2e9c,2f67931e-543f-457e-80fd-78ca754e2e9c,0,1,595e5752-36a7-4bba-8a40-26920acae01d,595e5752-36a7-4bba-8a40-26920acae01d,0,1,ece7f438-0898-4a02-89cb-6a6aa689e331,ece7f438-0898-4a02-89cb-6a6aa689e331,0,1,15ca91d9-0373-435c-a69f-409f1eff6c3b,15ca91d9-0373-435c-a69f-409f1eff6c3b,0,1,dd9176ec-9186-4277-a155-14ed2efef15f,dd9176ec-9186-4277-a155-14ed2efef15f,0,1,b980519c-0fb7-45db-92ab-8241ec50c8c8,b980519c-0fb7-45db-92ab-8241ec50c8c8,0,1,d45f4ad8-c34a-4a14-9278-df88a071d610,d45f4ad8-c34a-4a14-9278-df88a071d610,0,1,eb3dfdc7-58b8-4b1f-b079-368c262364c9,eb3dfdc7-58b8-4b1f-b079-368c262364c9,0,1,5030a318-f8f7-4ec7-80d6-6eee0772562f,5030a318-f8f7-4ec7-80d6-6eee0772562f,0,1,242e911d-e49c-4b8a-8543-cc2e079220fd,242e911d-e49c-4b8a-8543-cc2e079220fd,0,1,73044e20-148c-46e9-b5b5-973c91de0d61,73044e20-148c-46e9-b5b5-973c91de0d61,0,1,f8ab477c-8e78-48c0-9f99-27748b109706,f8ab477c-8e78-48c0-9f99-27748b109706,0,1,24cff6c8-6c20-4383-b97c-6afa52738960,24cff6c8-6c20-4383-b97c-6afa52738960,0,1,462e2694-750d-49ef-93ac-17a7779be68d,462e2694-750d-49ef-93ac-17a7779be68d,0,1,c24ff02e-5afc-45df-81cf-64ea2b261c2d,c24ff02e-5afc-45df-81cf-64ea2b261c2d,0,1,2d51aae9-650d-4719-a94d-2609b69a2d36,2d51aae9-650d-4719-a94d-2609b69a2d36,0,1,6025f5b5-6dc7-46b8-96e6-02823c5b4de7,6025f5b5-6dc7-46b8-96e6-02823c5b4de7,0,1,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,0,1,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,0,1,85639a53-b367-49ce-84f2-4e21d81c489b,85639a53-b367-49ce-84f2-4e21d81c489b,0,1,24b59586-178e-4efc-90ae-529553f3bb6c,24b59586-178e-4efc-90ae-529553f3bb6c,0,1,20e75dd5-222a-4100-aa43-3684991e3f21,20e75dd5-222a-4100-aa43-3684991e3f21,0,1,3c611832-4bc2-4229-a27d-d5dc82f3a498,3c611832-4bc2-4229-a27d-d5dc82f3a498,0,1,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,0,1,5dadc422-1fbd-4918-9db3-09ec72c3404e,5dadc422-1fbd-4918-9db3-09ec72c3404e,0,1,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,0,1,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,0,1,c5478d09-c8d3-4cc6-878e-27656ecc8409,c5478d09-c8d3-4cc6-878e-27656ecc8409,0,1,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,0,1,75974146-5b1a-412c-b7d5-1575704bbdab,75974146-5b1a-412c-b7d5-1575704bbdab,0,1,949f87cb-258c-4b6b-95ee-8a7491a4b64e,949f87cb-258c-4b6b-95ee-8a7491a4b64e,0,1,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,0,1,5c089988-5381-41ed-9f05-f85db46b8d94,5c089988-5381-41ed-9f05-f85db46b8d94,0,1,85a36352-1569-4ce4-aeba-477db524c36d,85a36352-1569-4ce4-aeba-477db524c36d,0,1,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,0,1,2fcde115-5c5a-465c-a326-d7ba379675fc,2fcde115-5c5a-465c-a326-d7ba379675fc,0,1,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,0,1,b99c2068-15ea-43a1-9e9f-db29647e2387,b99c2068-15ea-43a1-9e9f-db29647e2387,0,1,9a4a0b04-3dfb-4551-90f0-16231f64b14f,9a4a0b04-3dfb-4551-90f0-16231f64b14f,0,1,98edcd6b-1c50-45c6-9a4c-390827a4ba52,98edcd6b-1c50-45c6-9a4c-390827a4ba52,0,1,346cb8b7-a20e-4a06-823e-26dfb2e3e741,346cb8b7-a20e-4a06-823e-26dfb2e3e741,0,1,6d83f50f-32e9-45a6-8b5e-d91ba005ae95,6d83f50f-32e9-45a6-8b5e-d91ba005ae95,0,1,9afe457f-3c88-4cd3-94e7-7cea8a1a99a1,9afe457f-3c88-4cd3-94e7-7cea8a1a99a1,0,1,86ff5ea0-394a-4d8f-9601-acc2eb841bf6,86ff5ea0-394a-4d8f-9601-acc2eb841bf6,1,0,782cb93d-36e6-4923-b2b6-75caa3459cd6,782cb93d-36e6-4923-b2b6-75caa3459cd6,1,0,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,1,0,996c7873-1cc9-44f6-915b-5c6ed7ef2370,996c7873-1cc9-44f6-915b-5c6ed7ef2370,1,0,45a2569e-820c-4d7d-ba74-4a781d26bb2b,45a2569e-820c-4d7d-ba74-4a781d26bb2b,1,0,ced01234-9417-49ce-adf0-8cdd15e6dd7d,ced01234-9417-49ce-adf0-8cdd15e6dd7d,1,0,0eea37cc-47f8-4819-85da-d4991f4e58ed,0eea37cc-47f8-4819-85da-d4991f4e58ed,1,0,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,1,0,7974e41d-5af3-4636-b405-c9405d89fb53,7974e41d-5af3-4636-b405-c9405d89fb53,1,0,21fad9b6-44df-417c-ba18-de4b8af98a34,21fad9b6-44df-417c-ba18-de4b8af98a34,1,0,11c086b0-c646-4701-983d-c38758286354,11c086b0-c646-4701-983d-c38758286354,1,0,92876c9e-52ff-480d-9878-5766f4f9d12c,92876c9e-52ff-480d-9878-5766f4f9d12c,1,0,bbfd9834-12b4-49ca-bdae-5c94efa80482,bbfd9834-12b4-49ca-bdae-5c94efa80482,1,0,d65c4485-7bac-4206-9a6c-7156f4bb876d,d65c4485-7bac-4206-9a6c-7156f4bb876d,1,0,433a114f-3198-4ef6-bbf8-ce9b54fdb736,433a114f-3198-4ef6-bbf8-ce9b54fdb736,1,0,d431d1e2-13dc-495c-9de1-b5ec872eceed,d431d1e2-13dc-495c-9de1-b5ec872eceed,1,0,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,1,0,c9ea4e72-5f01-42ae-88e3-52e49757b26f,c9ea4e72-5f01-42ae-88e3-52e49757b26f,1,0,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,0,1,0f564dbe-6a6e-48df-9718-5cea5d608ee6,0f564dbe-6a6e-48df-9718-5cea5d608ee6,0,1,a623fef1-96eb-41ba-93fe-09162698f419,a623fef1-96eb-41ba-93fe-09162698f419,0,1,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,0,1,d8e1f92f-9efa-422d-bb21-43bd1a363cec,d8e1f92f-9efa-422d-bb21-43bd1a363cec,0,1,c1416383-bd7e-4dc4-ad88-d98ac87157fd,c1416383-bd7e-4dc4-ad88-d98ac87157fd,0,1,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,0,1,d5d9976a-4cc0-43f7-afd6-d43cebb07940,d5d9976a-4cc0-43f7-afd6-d43cebb07940,0,1,79a0746b-4dbe-4068-8832-4d0da08d6fd3,79a0746b-4dbe-4068-8832-4d0da08d6fd3,0,1,899f1526-d6bc-42ef-852e-7297a06db9e3,899f1526-d6bc-42ef-852e-7297a06db9e3,0,1,c694c132-1ddb-4273-818a-d3cca88c082a,c694c132-1ddb-4273-818a-d3cca88c082a,0,1,cd4da06e-c06b-4233-befc-1bc4c4db58e3,cd4da06e-c06b-4233-befc-1bc4c4db58e3,0,1,918a01fe-f753-4a4a-9200-55bbd6edaf5f,918a01fe-f753-4a4a-9200-55bbd6edaf5f,0,1,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,0,1,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,0,1,d6704410-6297-481e-a6cb-6d6aa566b4f8,d6704410-6297-481e-a6cb-6d6aa566b4f8,0,1,398937ca-b035-43bd-b0da-8c5153a87cb8,398937ca-b035-43bd-b0da-8c5153a87cb8,0,1,5b441321-bd1e-4c56-8f09-365b05985eed,5b441321-bd1e-4c56-8f09-365b05985eed,0,1,559f1e66-e8da-437a-aa27-d0e1be6619b6,559f1e66-e8da-437a-aa27-d0e1be6619b6,0,1,704d69cd-d921-4957-a004-43bd7eb4d979,704d69cd-d921-4957-a004-43bd7eb4d979,0,1,f1594682-16ac-408c-8307-a7a8db79b09f,f1594682-16ac-408c-8307-a7a8db79b09f,0,1,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,0,1,4cb814d8-cb1b-4366-b500-e820ad526b0c,4cb814d8-cb1b-4366-b500-e820ad526b0c,0,1,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,0,1,6c43df9f-ca36-415b-afec-302807820d73,6c43df9f-ca36-415b-afec-302807820d73,0,1,c7fb7551-806a-40b2-8879-14cd897b60d8,c7fb7551-806a-40b2-8879-14cd897b60d8,0,1,68337023-d573-4d04-95b6-44f73258c2a4,68337023-d573-4d04-95b6-44f73258c2a4,0,1,7cf39337-b722-486f-8e37-a62239d0ccd2,7cf39337-b722-486f-8e37-a62239d0ccd2,0,1,2571cfaf-d876-4385-a60a-1488aacf7080,2571cfaf-d876-4385-a60a-1488aacf7080,0,1,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,0,1,44398566-3189-4584-8f8a-9deb1d07ce41,44398566-3189-4584-8f8a-9deb1d07ce41,0,1,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,0,1,accfa63a-479d-4996-95bc-cdf5acdf203c,accfa63a-479d-4996-95bc-cdf5acdf203c,0,1,351998e0-8939-4dd4-a833-f4756bcc53b8,351998e0-8939-4dd4-a833-f4756bcc53b8,0,1,cd69bad8-524e-4be4-88cc-7732a88b38b8,cd69bad8-524e-4be4-88cc-7732a88b38b8,0,1,0a32248c-6994-4988-90d1-30882bc9da6b,0a32248c-6994-4988-90d1-30882bc9da6b,0,1,b57b53cb-6972-4bda-ae46-96571be1ebec,b57b53cb-6972-4bda-ae46-96571be1ebec,0,1,1a1a9636-fb72-4e4a-af96-5858442b1e61,1a1a9636-fb72-4e4a-af96-5858442b1e61,0,1,bca9cf34-9e11-4014-976a-28c4330b136e,bca9cf34-9e11-4014-976a-28c4330b136e,0,1,65fffe1a-6f36-4f50-975f-4471ad29d3ec,65fffe1a-6f36-4f50-975f-4471ad29d3ec,0,1,8fe5dad5-686a-4631-ae05-2917c33f7d83,8fe5dad5-686a-4631-ae05-2917c33f7d83,0,1,edef86c6-73bf-4e47-b62d-b2b548a732cd,edef86c6-73bf-4e47-b62d-b2b548a732cd,0,1,a1715044-d76f-4238-ba3e-989d04078d83,a1715044-d76f-4238-ba3e-989d04078d83,0,1,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,0,1,299c47a7-0b30-4f62-8f5c-f087ad6411fb,299c47a7-0b30-4f62-8f5c-f087ad6411fb,0,1,4d4724df-24fb-4c59-9d04-3f984906214a,4d4724df-24fb-4c59-9d04-3f984906214a,0,1,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,0,1,1ed9a67b-5b15-4862-907f-b194d6113070,1ed9a67b-5b15-4862-907f-b194d6113070,0,1,1aceb0e8-9131-44c2-aaa5-db96eea1c0de,1aceb0e8-9131-44c2-aaa5-db96eea1c0de,1,0,cb9b73ee-8531-48d9-9266-9aaa4336a612,cb9b73ee-8531-48d9-9266-9aaa4336a612,1,0,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,1,0,aeee2eea-1bb9-4e8a-ac5c-c940eaa86511,aeee2eea-1bb9-4e8a-ac5c-c940eaa86511,1,0,d042687f-0725-4611-a868-f5b4f6a3a3a8,d042687f-0725-4611-a868-f5b4f6a3a3a8,1,0,bb143340-7fff-49ef-b121-355c96613f78,bb143340-7fff-49ef-b121-355c96613f78,1,0,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,1,0,f2f69644-80dc-4b5e-a208-ed1de131e25e,f2f69644-80dc-4b5e-a208-ed1de131e25e,1,0,f3a6219e-bff5-4d36-9baa-bb214cebc2ed,f3a6219e-bff5-4d36-9baa-bb214cebc2ed,1,0,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,1,0,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,1,0,d0106f3a-8490-4277-a278-75c318ec252c,d0106f3a-8490-4277-a278-75c318ec252c,1,0,5035aa55-d557-419a-89e2-10ed0f8d109b,5035aa55-d557-419a-89e2-10ed0f8d109b,1,0,fb79315a-8d27-4c5e-9cfb-c7778dabedef,fb79315a-8d27-4c5e-9cfb-c7778dabedef,1,0,5f93d2af-64ff-41cc-8403-4a0e83160fea,5f93d2af-64ff-41cc-8403-4a0e83160fea,1,0,c12c90e4-7c40-489b-b14b-6b9442016e0f,c12c90e4-7c40-489b-b14b-6b9442016e0f,1,0,6371e288-3502-4d66-9006-b5a36107c0b7,6371e288-3502-4d66-9006-b5a36107c0b7,1,0,0132e564-2cd3-4930-8962-1068532f4be4,0132e564-2cd3-4930-8962-1068532f4be4,1,0,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,1,0,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,1,0,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,1,0,7021fca5-d612-43e1-927b-7f822153cf75,7021fca5-d612-43e1-927b-7f822153cf75,1,0,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,1,0,ee0a8d23-660a-492b-a813-b57394acee05,ee0a8d23-660a-492b-a813-b57394acee05,1,0,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,1,0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,1,0,ade21e2e-349f-414b-8f35-6ae3b6a4064d,ade21e2e-349f-414b-8f35-6ae3b6a4064d,1,0,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,1,0,e3ca64af-7766-48e2-b7c6-2a96f4539905,e3ca64af-7766-48e2-b7c6-2a96f4539905,1,0,6b885571-126e-4d94-8e90-adb4b730532e,6b885571-126e-4d94-8e90-adb4b730532e,1,0,ccea0a50-b761-4acd-ae33-22fcaed0e88d,ccea0a50-b761-4acd-ae33-22fcaed0e88d,1,0,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,1,0,08efd7c8-3ac1-46c5-862c-2b4816b8081f,08efd7c8-3ac1-46c5-862c-2b4816b8081f,0,1,b03829e9-ba22-4584-85f0-c36d63f48242,b03829e9-ba22-4584-85f0-c36d63f48242,0,1,084a7c95-a59b-4861-b8b3-b5710a57ac60,084a7c95-a59b-4861-b8b3-b5710a57ac60,0,1,efcea6da-6746-4e00-913a-14cab38b5d84,efcea6da-6746-4e00-913a-14cab38b5d84,0,1,aff367fb-7fca-44d0-adf9-3731f14834f6,aff367fb-7fca-44d0-adf9-3731f14834f6,0,1,a2782760-dd4c-44d2-a785-814d6f610455,a2782760-dd4c-44d2-a785-814d6f610455,0,1,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,0,1,6581ac1f-11ef-42b8-9f3b-590bb7546e63,6581ac1f-11ef-42b8-9f3b-590bb7546e63,0,1,ce952e88-35b7-4506-81ac-d7081e50a650,ce952e88-35b7-4506-81ac-d7081e50a650,0,1,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,0,1,3bf1281f-7570-4633-86b9-3e953a7e6647,3bf1281f-7570-4633-86b9-3e953a7e6647,0,1,92707138-5004-4378-8477-f909166d319d,92707138-5004-4378-8477-f909166d319d,0,1,43661775-43bb-4d9e-bfbb-c46e7d194ca3,43661775-43bb-4d9e-bfbb-c46e7d194ca3,0,1,532637ef-be0d-4f42-9747-a88e17eb3def,532637ef-be0d-4f42-9747-a88e17eb3def,0,1,61127152-3e24-40b4-8a23-5eb6cae568ff,61127152-3e24-40b4-8a23-5eb6cae568ff,0,1,ad1142ed-183d-47a3-800c-997a3770e11e,ad1142ed-183d-47a3-800c-997a3770e11e,0,1,ebef37c6-4808-4683-93be-036ce19cafd5,ebef37c6-4808-4683-93be-036ce19cafd5,0,1,66364cd4-aaa5-421d-96d6-3c283c14650d,66364cd4-aaa5-421d-96d6-3c283c14650d,0,1,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,0,1,3c54d440-e908-43d6-a5cc-bb64620c82d7,3c54d440-e908-43d6-a5cc-bb64620c82d7,0,1,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,0,1,bf1dd911-8ee1-407b-acae-10c85b74baf3,bf1dd911-8ee1-407b-acae-10c85b74baf3,0,1,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,0,1,0481bc65-6a32-46b9-ae87-993ba52a29a5,0481bc65-6a32-46b9-ae87-993ba52a29a5,0,1,dbc5f419-63b0-4cbe-90ff-c0101105e46c,dbc5f419-63b0-4cbe-90ff-c0101105e46c,0,1,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,0,1,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,0,1,c708f6e9-b7a0-4046-90f3-83527da7b872,c708f6e9-b7a0-4046-90f3-83527da7b872,0,1,14256e0a-a947-42a3-8e36-47bfbb052a0c,14256e0a-a947-42a3-8e36-47bfbb052a0c,0,1,1b1aa77a-d14b-4751-a7da-0b5bac4db461,1b1aa77a-d14b-4751-a7da-0b5bac4db461,0,1,7a34f723-cd14-4949-a40f-7ce579bf0449,7a34f723-cd14-4949-a40f-7ce579bf0449,0,1,295f3692-0721-4c41-a69b-171ef20a5018,295f3692-0721-4c41-a69b-171ef20a5018,0,1,86c22871-6d1c-44e0-8ade-ce4bdeb23321,86c22871-6d1c-44e0-8ade-ce4bdeb23321,0,1,8d31ce6a-4d44-46c6-a11c-47fb33e88691,8d31ce6a-4d44-46c6-a11c-47fb33e88691,0,1,df22b227-b2c3-4e65-9706-7582f99fe59c,df22b227-b2c3-4e65-9706-7582f99fe59c,0,1,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,0,1,087480bb-8c89-4b00-a29b-b7e29926478d,087480bb-8c89-4b00-a29b-b7e29926478d,0,1,685373b7-638a-439a-8cba-703d56e4e404,685373b7-638a-439a-8cba-703d56e4e404,0,1,263bcd20-9878-48d4-aac4-b371ec49d8d6,263bcd20-9878-48d4-aac4-b371ec49d8d6,0,1,da1d8660-2757-4cea-bae0-c2210b9406ae,da1d8660-2757-4cea-bae0-c2210b9406ae,0,1,d60329c6-8f48-481d-82e7-18da355cb09c,d60329c6-8f48-481d-82e7-18da355cb09c,0,1,c4b14162-b25b-4099-9ec3-7251848ef08a,c4b14162-b25b-4099-9ec3-7251848ef08a,0,1,8eb5ba97-eb38-4357-8bfc-e9618280800d,8eb5ba97-eb38-4357-8bfc-e9618280800d,0,1,b72f73d5-e274-472b-871b-16af72dab603,b72f73d5-e274-472b-871b-16af72dab603,0,1,b008d184-0b61-460d-9490-89ecc1cd58ba,b008d184-0b61-460d-9490-89ecc1cd58ba,0,1,c8340e2f-6958-4bcd-8e17-499c4adfe60b,c8340e2f-6958-4bcd-8e17-499c4adfe60b,0,1,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,0,1,03f68d82-752c-45d1-bf9a-60ecd21a2c81,03f68d82-752c-45d1-bf9a-60ecd21a2c81,0,1,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,0,1,d4fffc79-2841-49a9-a382-e9e4138984df,d4fffc79-2841-49a9-a382-e9e4138984df,0,1,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,0,1,9f41f903-d316-4189-8dc0-603ea9036c1c,9f41f903-d316-4189-8dc0-603ea9036c1c,0,1,e19e70d6-8707-4dde-ae69-7bd97035ca03,e19e70d6-8707-4dde-ae69-7bd97035ca03,0,1,425b5272-1130-457d-8a05-aee8fad681d9,425b5272-1130-457d-8a05-aee8fad681d9,0,1,8d583436-f2a6-4a33-8137-1376f5754643,8d583436-f2a6-4a33-8137-1376f5754643,0,1,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,0,1,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,0,1,2d66502d-77ab-4cc9-9ccf-5433458fae9f,2d66502d-77ab-4cc9-9ccf-5433458fae9f,0,1,cff48da7-3c46-4602-83e8-90c9ea53e107,cff48da7-3c46-4602-83e8-90c9ea53e107,0,1,7155472d-c791-402c-96e1-d25612024c88,7155472d-c791-402c-96e1-d25612024c88,0,1,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,0,1,9005911d-ea81-48b6-bf50-1a328ff4d7be,9005911d-ea81-48b6-bf50-1a328ff4d7be,0,1,7df12006-c0c0-42a6-b852-bdced72c62e3,7df12006-c0c0-42a6-b852-bdced72c62e3,0,1,9c00987d-3c55-40eb-bae8-f36e71e4ef87,9c00987d-3c55-40eb-bae8-f36e71e4ef87,0,1,29273130-5142-48c9-8399-00e5ab4b6203,29273130-5142-48c9-8399-00e5ab4b6203,0,1,9e14cd7e-1293-4008-baf8-88df6a98abf7,9e14cd7e-1293-4008-baf8-88df6a98abf7,0,1,98e3aace-52a6-4911-8205-92165adca6de,98e3aace-52a6-4911-8205-92165adca6de,0,1,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,0,1,577e5fea-b792-4c8b-b3b3-a03a14b64b04,577e5fea-b792-4c8b-b3b3-a03a14b64b04,0,1,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,0,1,db4eb2f0-1e8c-4fd6-a818-ee1a09ed7caf,db4eb2f0-1e8c-4fd6-a818-ee1a09ed7caf,0,1,7898bdc8-e895-4894-810a-19607a553c53,7898bdc8-e895-4894-810a-19607a553c53,0,1,b18d312b-f9c3-4f37-ac77-d499e949f154,b18d312b-f9c3-4f37-ac77-d499e949f154,0,1,ace2beea-d393-412f-8b71-b845b665e2c4,ace2beea-d393-412f-8b71-b845b665e2c4,0,1,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,0,1,ebc25606-46e7-4252-8661-cfce0e77830e,ebc25606-46e7-4252-8661-cfce0e77830e,0,1,dfa258a8-7194-49a5-8c25-6de44cf97a0f,dfa258a8-7194-49a5-8c25-6de44cf97a0f,0,1,3fd4bc77-2a1b-4750-a54a-4171c8d40027,3fd4bc77-2a1b-4750-a54a-4171c8d40027,0,1,1c09bf33-9b54-4bfd-bc92-e7324025fab0,1c09bf33-9b54-4bfd-bc92-e7324025fab0,0,1,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,1,0,0a136ad9-22ad-4ba7-a31a-40a193b49d26,0a136ad9-22ad-4ba7-a31a-40a193b49d26,1,0,b456d820-8034-4381-960d-66d9f86b0a4b,b456d820-8034-4381-960d-66d9f86b0a4b,1,0,bd55fd03-cf67-4333-a554-98e03d18f780,bd55fd03-cf67-4333-a554-98e03d18f780,1,0,1a7c774d-5b86-4051-b797-3081e19fa30a,1a7c774d-5b86-4051-b797-3081e19fa30a,1,0,00949768-5833-4fe2-8752-b009d1bceef8,00949768-5833-4fe2-8752-b009d1bceef8,1,0,ef762828-452c-4d3a-ad7a-7f4933ab05ac,ef762828-452c-4d3a-ad7a-7f4933ab05ac,1,0,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,1,0,8b0faa1e-09da-4ba4-894e-e86abc5d39df,8b0faa1e-09da-4ba4-894e-e86abc5d39df,1,0,cb50b309-1b6c-400c-9e9e-67204dcccaae,cb50b309-1b6c-400c-9e9e-67204dcccaae,1,0,c5b3ca21-8f7b-4933-853c-7d95b17b5631,c5b3ca21-8f7b-4933-853c-7d95b17b5631,0,1,c46fd680-efbe-49a8-91f0-73e36d791fa9,c46fd680-efbe-49a8-91f0-73e36d791fa9,0,1,6995567b-5a3c-4e03-9fb4-e22363ed6555,6995567b-5a3c-4e03-9fb4-e22363ed6555,0,1,32c38c2b-072d-4cf2-bf9a-f9c4b4c463e8,32c38c2b-072d-4cf2-bf9a-f9c4b4c463e8,1,0,023d747d-4ac1-4e0e-9de1-76bdc4f74d8b,023d747d-4ac1-4e0e-9de1-76bdc4f74d8b,1,0,b36fd525-6e49-4ea0-94e8-a0895d45bb43,b36fd525-6e49-4ea0-94e8-a0895d45bb43,1,0,56a0a9ce-c5ce-4f3d-ad38-ff6a7a4bd162,56a0a9ce-c5ce-4f3d-ad38-ff6a7a4bd162,1,0,5bbd5ae3-e327-40a2-bb94-91be5db1e14d,5bbd5ae3-e327-40a2-bb94-91be5db1e14d,1,0,591f46c9-8d40-421b-84a7-755a6b330539,591f46c9-8d40-421b-84a7-755a6b330539,1,0,c9eb2a89-3dc9-4ac6-9fac-f8042f8b024b,c9eb2a89-3dc9-4ac6-9fac-f8042f8b024b,1,0,a1693bbe-d65d-47e2-8425-9bf6f9b1d906,a1693bbe-d65d-47e2-8425-9bf6f9b1d906,1,0,6f8ff42b-76ba-4ddf-b3e4-3a2ded880210,6f8ff42b-76ba-4ddf-b3e4-3a2ded880210,1,0,643228fa-f3b0-4927-878b-0fdcd375684c,643228fa-f3b0-4927-878b-0fdcd375684c,1,0,13c98801-97c4-4638-9aa3-aabc6983b7d8,13c98801-97c4-4638-9aa3-aabc6983b7d8,1,0,1d62c9a2-9692-4e7e-b556-70906fb0cbbb,1d62c9a2-9692-4e7e-b556-70906fb0cbbb,1,0,bb8b4325-c43f-4be0-af4a-8dda8447438f,bb8b4325-c43f-4be0-af4a-8dda8447438f,1,0,da52d51a-7e54-4cfd-9f2c-af84da7e5a8f,da52d51a-7e54-4cfd-9f2c-af84da7e5a8f,1,0,0f76c812-38d0-4cab-bc09-d0b36ee48f68,0f76c812-38d0-4cab-bc09-d0b36ee48f68,1,0,02ef7596-599a-4d24-9e9d-fdd83263f576,02ef7596-599a-4d24-9e9d-fdd83263f576,1,0,4ba00bc3-30a3-4a7f-8726-f8393e1a89dd,4ba00bc3-30a3-4a7f-8726-f8393e1a89dd,1,0,0f0dd474-fe3a-40d1-baeb-c9fc1ec709ac,0f0dd474-fe3a-40d1-baeb-c9fc1ec709ac,1,0,ba280414-62a9-4533-90d9-f084ef71bf97,ba280414-62a9-4533-90d9-f084ef71bf97,1,0,c608c734-97ae-4b21-a849-c63642095357,c608c734-97ae-4b21-a849-c63642095357,1,0,8d247cc7-c0ba-4470-8b87-ca0a869aeb2a,8d247cc7-c0ba-4470-8b87-ca0a869aeb2a,1,0,b8a966ba-3452-44df-91d0-7040ecd3e4c2,b8a966ba-3452-44df-91d0-7040ecd3e4c2,1,0,80d6883d-c608-4fe5-acae-78bc45e40e5f,80d6883d-c608-4fe5-acae-78bc45e40e5f,1,0,213b173a-c3b7-449c-a618-d479c4dc38e8,213b173a-c3b7-449c-a618-d479c4dc38e8,1,0,7a64dffc-5cfe-41e2-bd55-fbf4957559a4,7a64dffc-5cfe-41e2-bd55-fbf4957559a4,1,0,a78249aa-ca9f-4bee-b00d-68ff59ea81a4,a78249aa-ca9f-4bee-b00d-68ff59ea81a4,1,0,7534148d-0124-49a2-a446-c6205d153153,7534148d-0124-49a2-a446-c6205d153153,1,0,32ed8a10-7177-4e45-866e-04a1b6831570,32ed8a10-7177-4e45-866e-04a1b6831570,1,0,e2a90d7a-5480-47cd-b296-8d60d8baf7f9,e2a90d7a-5480-47cd-b296-8d60d8baf7f9,1,0,8190a432-1037-4334-b2c7-bae39f7f9442,8190a432-1037-4334-b2c7-bae39f7f9442,1,0,4733e5c1-8198-408b-8903-866d3b0fdc43,4733e5c1-8198-408b-8903-866d3b0fdc43,1,0,e1fc5146-37c5-4207-af05-7250976bd406,e1fc5146-37c5-4207-af05-7250976bd406,1,0,60038cd9-8d01-44b1-9d3f-f3a31e59e5db,60038cd9-8d01-44b1-9d3f-f3a31e59e5db,1,0,f0bfb98b-cc43-4b6c-8166-9b81b4c22cb0,f0bfb98b-cc43-4b6c-8166-9b81b4c22cb0,1,0,f5e27159-789a-4d34-ac51-fd99d753b83a,f5e27159-789a-4d34-ac51-fd99d753b83a,1,0,f1cb02ff-a2f0-4a34-93fa-e47c6e210ee1,f1cb02ff-a2f0-4a34-93fa-e47c6e210ee1,0,1,93701593-5ac8-4266-b471-7e9ed35a9c3e,93701593-5ac8-4266-b471-7e9ed35a9c3e,0,1,0fdb864e-ede9-4777-835c-0804968ee544,0fdb864e-ede9-4777-835c-0804968ee544,0,1,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,0,1,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,0,1,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,0,1,5dee9814-fe38-4631-8148-8d6c87ef6f47,5dee9814-fe38-4631-8148-8d6c87ef6f47,0,1,37d17053-5c2b-4972-b6a5-a589f2ddbde6,37d17053-5c2b-4972-b6a5-a589f2ddbde6,0,1,c349968a-3f87-425b-8efb-d847934dee4b,c349968a-3f87-425b-8efb-d847934dee4b,0,1,3bb8dc33-970c-4c58-9036-ce716d963847,3bb8dc33-970c-4c58-9036-ce716d963847,0,1,b3ff39fa-f665-4d01-9a2a-69722e6b1071,b3ff39fa-f665-4d01-9a2a-69722e6b1071,0,1,579baaa4-6493-4d99-8744-6399757295c7,579baaa4-6493-4d99-8744-6399757295c7,0,1,9c1325af-7492-42be-b3af-51b692534510,9c1325af-7492-42be-b3af-51b692534510,0,1,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,0,1,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,0,1,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,0,1,b7e85f5c-4312-44c6-895a-3f636a8c78d8,b7e85f5c-4312-44c6-895a-3f636a8c78d8,0,1,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,0,1,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,0,1,a1afacc5-f49a-4df2-a44d-479594d50179,a1afacc5-f49a-4df2-a44d-479594d50179,0,1,fe70eba3-7477-4a38-a511-d69960abb928,fe70eba3-7477-4a38-a511-d69960abb928,0,1,6534ea96-2145-49e6-9739-f59459dc7f6b,6534ea96-2145-49e6-9739-f59459dc7f6b,0,1,f49bffa0-cad6-4801-b82e-21aa580e72e6,f49bffa0-cad6-4801-b82e-21aa580e72e6,0,1,bbbfb817-8db3-4415-86c3-af028276d6e9,bbbfb817-8db3-4415-86c3-af028276d6e9,0,1,6a91112c-f6cc-47a0-9d26-a36c7702af7d,6a91112c-f6cc-47a0-9d26-a36c7702af7d,0,1,cb92dc2e-6053-4233-a408-4464514b1257,cb92dc2e-6053-4233-a408-4464514b1257,0,1,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,0,1,85550a7a-8fe0-4296-ace5-63cf053536b4,85550a7a-8fe0-4296-ace5-63cf053536b4,0,1,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,0,1,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,0,1,f31f3dab-5796-47ac-a54d-3081f8cad817,f31f3dab-5796-47ac-a54d-3081f8cad817,0,1,db497857-33d3-49a1-b328-dfc62c973ecb,db497857-33d3-49a1-b328-dfc62c973ecb,0,1,139c001c-7b07-465a-9187-399ad32d294f,139c001c-7b07-465a-9187-399ad32d294f,0,1,5d228ce4-069e-4f98-beed-b8e1de17c3d9,5d228ce4-069e-4f98-beed-b8e1de17c3d9,0,1,f3d8590a-dcfa-4d41-8d03-642b99ffa040,f3d8590a-dcfa-4d41-8d03-642b99ffa040,0,1,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,0,1,20156709-1481-4007-8e89-9ce79fc589fc,20156709-1481-4007-8e89-9ce79fc589fc,0,1,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,0,1,7e7c5abd-b645-4de5-a40e-5805ec4456e2,7e7c5abd-b645-4de5-a40e-5805ec4456e2,0,1,763a16c3-a728-4b65-a485-705990310b4a,763a16c3-a728-4b65-a485-705990310b4a,0,1,65338920-c744-4d1e-b351-848b90a3feda,65338920-c744-4d1e-b351-848b90a3feda,0,1,2aedb1ac-caf1-45c7-913e-82a36637d5d4,2aedb1ac-caf1-45c7-913e-82a36637d5d4,0,1,52c04b3f-24d2-414c-b05a-77a34078d793,52c04b3f-24d2-414c-b05a-77a34078d793,0,1,8e876c9a-670a-4f34-9525-d87311988268,8e876c9a-670a-4f34-9525-d87311988268,0,1,251bce43-7e0c-4842-aa9f-e1f0dd8bbf2b,251bce43-7e0c-4842-aa9f-e1f0dd8bbf2b,0,1,ef6f7bb6-6c2c-4777-b99a-624865222549,ef6f7bb6-6c2c-4777-b99a-624865222549,0,1,e6044088-2521-4c4b-9cbe-58c14bb871b1,e6044088-2521-4c4b-9cbe-58c14bb871b1,0,1,50fc45e9-1e29-4b0e-9c18-8a8354780755,50fc45e9-1e29-4b0e-9c18-8a8354780755,0,1,f6375eb0-448b-495b-8edf-198f2ac28aed,f6375eb0-448b-495b-8edf-198f2ac28aed,0,1,9e39be89-29c3-48d2-9568-eedfed776bf8,9e39be89-29c3-48d2-9568-eedfed776bf8,0,1,8f873523-b4b1-4522-a60c-04477b4a41ab,8f873523-b4b1-4522-a60c-04477b4a41ab,0,1,bcbb80fe-5d16-49a1-972c-492445c7db6f,bcbb80fe-5d16-49a1-972c-492445c7db6f,0,1,56177464-5e9f-4598-96bc-eb311993c503,56177464-5e9f-4598-96bc-eb311993c503,0,1,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,0,1,bdfe65f4-4174-4e66-915c-943137981cf0,bdfe65f4-4174-4e66-915c-943137981cf0,0,1,c895d58a-5be1-4157-81af-f4f6db9b4b9e,c895d58a-5be1-4157-81af-f4f6db9b4b9e,1,0,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,1,0,ed1369c5-c274-45bd-ae91-7648565ae09f,ed1369c5-c274-45bd-ae91-7648565ae09f,1,0,bfb3f026-e940-49c3-ac30-408186f9e11e,bfb3f026-e940-49c3-ac30-408186f9e11e,1,0,e1dc83eb-a8cd-454b-8de8-cff2049be78c,e1dc83eb-a8cd-454b-8de8-cff2049be78c,1,0,9edd9288-1463-4d67-b9f0-40f351d978e9,9edd9288-1463-4d67-b9f0-40f351d978e9,1,0,c9db6c68-965f-4567-b26e-5d497a389de1,c9db6c68-965f-4567-b26e-5d497a389de1,1,0,4da2f65d-56bd-4140-9b31-e5ccac4a800a,4da2f65d-56bd-4140-9b31-e5ccac4a800a,1,0,eb163bba-b94c-4a78-9c2d-7b519325e3d4,eb163bba-b94c-4a78-9c2d-7b519325e3d4,1,0,939bdb9a-294b-4b42-a56f-030f69bc29c4,939bdb9a-294b-4b42-a56f-030f69bc29c4,1,0,ee7a763b-bcbf-4ff3-89af-eb7965b33515,ee7a763b-bcbf-4ff3-89af-eb7965b33515,1,0,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,0,1,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,0,1,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,0,1,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,0,1,d915d338-3e4c-45c3-aef5-a07cf41b05f6,d915d338-3e4c-45c3-aef5-a07cf41b05f6,0,1,978640a2-5c4b-4e21-857e-34f00840fba8,978640a2-5c4b-4e21-857e-34f00840fba8,0,1,7649bd7b-fe8c-4338-80fc-153160a5e538,7649bd7b-fe8c-4338-80fc-153160a5e538,0,1,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,0,1,6137605e-4850-44ec-b4ee-048bd8e0ec3a,6137605e-4850-44ec-b4ee-048bd8e0ec3a,0,1,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,0,1,0e6e9372-beb4-478e-9428-71b19a60739b,0e6e9372-beb4-478e-9428-71b19a60739b,0,1,32b11498-542f-46b2-829f-1525936ab7fa,32b11498-542f-46b2-829f-1525936ab7fa,0,1,64afa916-4750-4008-8c6c-2a470fb11283,64afa916-4750-4008-8c6c-2a470fb11283,0,1,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,0,1,35354abc-9a76-4ee8-8796-c24b37365ea0,35354abc-9a76-4ee8-8796-c24b37365ea0,0,1,840a1d4d-e5f6-4a88-886f-03830fe4f99a,840a1d4d-e5f6-4a88-886f-03830fe4f99a,0,1,7078977f-31bf-427e-ac37-e309d81fe999,7078977f-31bf-427e-ac37-e309d81fe999,0,1,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,0,1,d8854555-9e15-4d82-a1fd-656a848a8e8a,d8854555-9e15-4d82-a1fd-656a848a8e8a,0,1,53191842-ea05-4491-84d7-071cd201992d,53191842-ea05-4491-84d7-071cd201992d,0,1,86c70449-4cf7-4baf-9742-b82b134ed929,86c70449-4cf7-4baf-9742-b82b134ed929,0,1,af3b1881-163a-4c07-a1d9-77ceadf59c77,af3b1881-163a-4c07-a1d9-77ceadf59c77,0,1,b78be6fb-7db8-48c8-ba7b-aab1fea34890,b78be6fb-7db8-48c8-ba7b-aab1fea34890,0,1,bd27276a-e80c-4135-b341-f99a816ffe86,bd27276a-e80c-4135-b341-f99a816ffe86,0,1,35306678-147c-4ad1-a3c6-c80a11afa22f,35306678-147c-4ad1-a3c6-c80a11afa22f,0,1,0da75726-ae71-4d83-a696-a774c787a8a2,0da75726-ae71-4d83-a696-a774c787a8a2,0,1,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,0,1,896a7267-0198-4cbb-b6e6-7aa157c0cc61,896a7267-0198-4cbb-b6e6-7aa157c0cc61,0,1,2005bf54-219b-4111-bff1-e12e2c6dca3e,2005bf54-219b-4111-bff1-e12e2c6dca3e,0,1,abab8f73-d705-4350-b44d-f912649a2190,abab8f73-d705-4350-b44d-f912649a2190,0,1,20c9c25c-f8c9-429f-84bd-543cb809abef,20c9c25c-f8c9-429f-84bd-543cb809abef,0,1,dc5f451e-3275-43a8-9f48-45b83220d461,dc5f451e-3275-43a8-9f48-45b83220d461,0,1,028f5e81-61df-4d13-876d-781c5fd18ee6,028f5e81-61df-4d13-876d-781c5fd18ee6,0,1,3cbb59ef-7f64-4590-8a54-ba01e78283c3,3cbb59ef-7f64-4590-8a54-ba01e78283c3,0,1,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,0,1,388eb513-fadb-40cd-8a7b-33b904dd758e,388eb513-fadb-40cd-8a7b-33b904dd758e,0,1,0613c6aa-e1fe-4632-a396-a17ec773158f,0613c6aa-e1fe-4632-a396-a17ec773158f,0,1,1a330987-4c79-4ab7-b250-db8d32c78751,1a330987-4c79-4ab7-b250-db8d32c78751,0,1,555062ed-9a04-41d8-877f-0a667e9a08cd,555062ed-9a04-41d8-877f-0a667e9a08cd,0,1,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,0,1,ac160e1c-fef7-4625-84e0-964b397f6bdb,ac160e1c-fef7-4625-84e0-964b397f6bdb,0,1,b8946d9c-dda8-4b94-8cbf-db62b647c53e,b8946d9c-dda8-4b94-8cbf-db62b647c53e,0,1,24215916-7732-4030-9f88-163f644e94f7,24215916-7732-4030-9f88-163f644e94f7,0,1,69697945-9748-4cea-a20f-e244b46de2e8,69697945-9748-4cea-a20f-e244b46de2e8,0,1,68538fd1-262c-43ea-b09f-8a66643a0062,68538fd1-262c-43ea-b09f-8a66643a0062,0,1,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,0,1,82ad24cc-d9f8-440b-a720-e204101d85da,82ad24cc-d9f8-440b-a720-e204101d85da,0,1,8010065f-aec8-4768-85ec-9eb7b2b01e7e,8010065f-aec8-4768-85ec-9eb7b2b01e7e,0,1,a44348cb-e20c-4afd-8483-3b9c735b352c,a44348cb-e20c-4afd-8483-3b9c735b352c,0,1,ebfe4c74-6e16-4b64-8a52-cea95c446903,ebfe4c74-6e16-4b64-8a52-cea95c446903,0,1,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,0,1,255e55e3-fc3a-4388-8667-486fe3b7557f,255e55e3-fc3a-4388-8667-486fe3b7557f,0,1,d4bfe208-c64c-4088-b33f-98e4cee03444,d4bfe208-c64c-4088-b33f-98e4cee03444,0,1,d912e472-9553-4b96-8b16-7aaff6c14239,d912e472-9553-4b96-8b16-7aaff6c14239,0,1,b04018b5-a74d-43c9-8519-6cc8aa23fe09,b04018b5-a74d-43c9-8519-6cc8aa23fe09,0,1,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,0,1,9283277f-2b75-4c3a-810a-8d4071b3afcc,9283277f-2b75-4c3a-810a-8d4071b3afcc,0,1,d03d5b18-57a2-43c0-99ea-8ad9d5788179,d03d5b18-57a2-43c0-99ea-8ad9d5788179,0,1,c491a7fc-14f9-498a-b7dd-575dfc66878e,c491a7fc-14f9-498a-b7dd-575dfc66878e,0,1,db15f8eb-4736-4b47-9cee-3e6883f0888c,db15f8eb-4736-4b47-9cee-3e6883f0888c,0,1,59064eb2-2770-4f1c-96bd-801926fe68ef,59064eb2-2770-4f1c-96bd-801926fe68ef,0,1,6b2340d7-687f-43a3-8eb8-8ddb86712466,6b2340d7-687f-43a3-8eb8-8ddb86712466,0,1,ca5d586f-81bb-40ee-b3bd-de854857c984,ca5d586f-81bb-40ee-b3bd-de854857c984,0,1,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,0,1,ee7d970c-cef7-4740-a357-1fe78f88a6e6,ee7d970c-cef7-4740-a357-1fe78f88a6e6,0,1,73f89524-dbe8-426f-8ee6-1277eb1967cc,73f89524-dbe8-426f-8ee6-1277eb1967cc,0,1,6733f1bd-7878-4a33-8995-c07526e87c1a,6733f1bd-7878-4a33-8995-c07526e87c1a,0,1,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,0,1,ec34befe-3c0b-4a75-b943-840c52e7dda5,ec34befe-3c0b-4a75-b943-840c52e7dda5,0,1,0b7c4cb7-5126-4b5e-8941-cd56eaef76a0,0b7c4cb7-5126-4b5e-8941-cd56eaef76a0,0,1,40b08a20-51a3-438b-ba54-466917ea809f,40b08a20-51a3-438b-ba54-466917ea809f,0,1,0e0670d6-d8f7-4728-bd1b-f016fffa0570,0e0670d6-d8f7-4728-bd1b-f016fffa0570,0,1,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,0,1,144d5498-bb61-4bec-bef3-85a5a4aec3d5,144d5498-bb61-4bec-bef3-85a5a4aec3d5,0,1,ff18803b-4c3a-4720-a718-7547f04c6e2f,ff18803b-4c3a-4720-a718-7547f04c6e2f,0,1,9328da5c-4689-4a60-8136-ae9eac46ab38,9328da5c-4689-4a60-8136-ae9eac46ab38,0,1,42641296-64da-46e0-a407-de2d492f9c90,42641296-64da-46e0-a407-de2d492f9c90,0,1,b834af0b-086c-445d-a271-7e178c324551,b834af0b-086c-445d-a271-7e178c324551,0,1,32c10512-7bb8-423b-9503-ab2fa41386a4,32c10512-7bb8-423b-9503-ab2fa41386a4,0,1,888edfc4-8140-4675-b267-c32bf1d8d29d,888edfc4-8140-4675-b267-c32bf1d8d29d,0,1,a53f6e85-fbf7-4fb1-9301-d63e812fe16c,a53f6e85-fbf7-4fb1-9301-d63e812fe16c,0,1,57a0f5f3-6573-4b35-af25-cea3a25641f1,57a0f5f3-6573-4b35-af25-cea3a25641f1,0,1,21d296a1-6809-4ff6-a4da-b455cad86cc2,21d296a1-6809-4ff6-a4da-b455cad86cc2,0,1,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,0,1,45a8c780-c067-40d7-bbe9-81f854aacf7a,45a8c780-c067-40d7-bbe9-81f854aacf7a,0,1,57885cac-059a-4a08-aa2c-43b116d2c777,57885cac-059a-4a08-aa2c-43b116d2c777,0,1,56b570b1-93b0-468a-9672-9c71113753f3,56b570b1-93b0-468a-9672-9c71113753f3,0,1,e7b0ae70-0192-456c-9dc5-e66049fa9df2,e7b0ae70-0192-456c-9dc5-e66049fa9df2,0,1,68944d09-618e-4fa3-a7af-8c84218e0ac7,68944d09-618e-4fa3-a7af-8c84218e0ac7,0,1,91b12ce3-e8ba-4c9d-9daa-1d5532500314,91b12ce3-e8ba-4c9d-9daa-1d5532500314,0,1,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,0,1,cb57aabc-eeef-42b4-9bc2-873cebd9618c,cb57aabc-eeef-42b4-9bc2-873cebd9618c,0,1,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,0,1,52f30ed7-aa16-4ce2-9684-e50229ab0015,52f30ed7-aa16-4ce2-9684-e50229ab0015,0,1,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,0,1,0526492c-be48-4c84-8d68-19fa1c7e9d6e,0526492c-be48-4c84-8d68-19fa1c7e9d6e,0,1,54ecaf7b-9bc5-483c-96e1-270bcd323590,54ecaf7b-9bc5-483c-96e1-270bcd323590,0,1,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,0,1,58f6f8fa-7473-40f5-973a-6279335d8f33,58f6f8fa-7473-40f5-973a-6279335d8f33,0,1,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,0,1,fa3632fe-185b-49aa-85ae-dfb721835d40,fa3632fe-185b-49aa-85ae-dfb721835d40,0,1,a4f15108-477c-465e-aaea-cb495ef52cf5,a4f15108-477c-465e-aaea-cb495ef52cf5,0,1,9cda5c2c-f401-4f63-b445-cef160296e48,9cda5c2c-f401-4f63-b445-cef160296e48,0,1,e8ae4a26-3127-43ae-af7a-c2e278d2611d,e8ae4a26-3127-43ae-af7a-c2e278d2611d,0,1,b923c78f-d074-41b4-b832-086686258f19,b923c78f-d074-41b4-b832-086686258f19,0,1,8ff96413-6fdd-4b8d-a181-ea0d8633defc,8ff96413-6fdd-4b8d-a181-ea0d8633defc,0,1,54604ed2-766b-4308-b99e-447817d82799,54604ed2-766b-4308-b99e-447817d82799,0,1,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,0,1,f48b4475-2cd9-41df-962a-6529f84985ca,f48b4475-2cd9-41df-962a-6529f84985ca,0,1,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,0,1,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,0,1,bf94feb9-edf7-4df8-b5f5-805613663a0a,bf94feb9-edf7-4df8-b5f5-805613663a0a,0,1,6d852a13-c85e-4e84-8396-f91c1ed0596e,6d852a13-c85e-4e84-8396-f91c1ed0596e,0,1,9c2d5313-a4fd-417e-a340-ad4980d0028b,9c2d5313-a4fd-417e-a340-ad4980d0028b,0,1,4fb4a280-9426-4c41-a9ba-11f9d01a0740,4fb4a280-9426-4c41-a9ba-11f9d01a0740,0,1,1591ee7e-870c-4bf7-9450-be84f1b2506f,1591ee7e-870c-4bf7-9450-be84f1b2506f,0,1,9a8578a2-8a92-4ab3-a480-173340f8b34a,9a8578a2-8a92-4ab3-a480-173340f8b34a,0,1,4ebf0988-ccc3-440c-bd0f-2d01636bd730,4ebf0988-ccc3-440c-bd0f-2d01636bd730,0,1,69f42341-268b-4e74-9d6d-527800d018ab,69f42341-268b-4e74-9d6d-527800d018ab,0,1,ca6ecedc-f4c5-4c14-8a02-6255ce45033a,ca6ecedc-f4c5-4c14-8a02-6255ce45033a,0,1,7eb5217f-684d-4a9e-8aef-48cedc809cbb,7eb5217f-684d-4a9e-8aef-48cedc809cbb,0,1,1c90a423-ef1b-42dc-a43b-1fda89672481,1c90a423-ef1b-42dc-a43b-1fda89672481,0,1,095cf2d6-5a7c-452d-8d60-991afb6e52bd,095cf2d6-5a7c-452d-8d60-991afb6e52bd,0,1,2c155a03-2aff-4632-adb2-be3266e0fac3,2c155a03-2aff-4632-adb2-be3266e0fac3,0,1,f9213a70-bfd6-464f-b28b-ed35bdf351c0,f9213a70-bfd6-464f-b28b-ed35bdf351c0,0,1,eb81610a-eb2f-4068-ba74-75e0f5bbace8,eb81610a-eb2f-4068-ba74-75e0f5bbace8,0,1,ca5957af-69c9-4640-b9a9-b241c4f9eaa7,ca5957af-69c9-4640-b9a9-b241c4f9eaa7,0,1,21826316-0b49-4034-a49e-6d34c15ceb5c,21826316-0b49-4034-a49e-6d34c15ceb5c,0,1,3abffa47-8d47-4173-897b-708e1a06ef39,3abffa47-8d47-4173-897b-708e1a06ef39,0,1,0cf3d615-76a1-428d-9d25-0d7fdf09e4ae,0cf3d615-76a1-428d-9d25-0d7fdf09e4ae,0,1,5a398637-a06c-4442-9093-a864fa7f049f,5a398637-a06c-4442-9093-a864fa7f049f,0,1,38692186-a62a-42d1-87cd-7dbc6d4816ed,38692186-a62a-42d1-87cd-7dbc6d4816ed,0,1,6cfcdb89-ccb2-45fe-a7b1-5a29ccd6c5ae,6cfcdb89-ccb2-45fe-a7b1-5a29ccd6c5ae,0,1,3a28cea9-7fd7-4834-ab89-2a74331a64e3,3a28cea9-7fd7-4834-ab89-2a74331a64e3,0,1,0f881709-4520-4f18-af9d-cf08757693ff,0f881709-4520-4f18-af9d-cf08757693ff,0,1,c5151ca9-5103-42b2-8573-273c15416db8,c5151ca9-5103-42b2-8573-273c15416db8,0,1,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,0,1,ba8c43ad-678a-4b18-8bbe-5a1b12d19b74,ba8c43ad-678a-4b18-8bbe-5a1b12d19b74,0,1,115a6019-ef87-4126-8ebf-070c1e882940,115a6019-ef87-4126-8ebf-070c1e882940,0,1,162ce023-b2e1-41dc-bcaf-b8e30caccce0,162ce023-b2e1-41dc-bcaf-b8e30caccce0,0,1,52bdd3cc-7103-4dbf-a3c3-dd46cf03da12,52bdd3cc-7103-4dbf-a3c3-dd46cf03da12,0,1,c13fb1cd-fe72-48a6-b383-55b6323619ce,c13fb1cd-fe72-48a6-b383-55b6323619ce,0,1,956fc8ee-96be-4309-b1e8-209372f151ab,956fc8ee-96be-4309-b1e8-209372f151ab,0,1,526c688e-a4d4-45f7-8bba-b8ceff38fe27,526c688e-a4d4-45f7-8bba-b8ceff38fe27,0,1,7e32c295-a769-4cff-a3eb-992f7031475f,7e32c295-a769-4cff-a3eb-992f7031475f,0,1,67efa786-312f-4c9c-b970-0320e92069af,67efa786-312f-4c9c-b970-0320e92069af,0,1,12f85e09-1190-4483-b531-630ab718db7f,12f85e09-1190-4483-b531-630ab718db7f,0,1,52f4453e-e968-4290-a79a-470f68fbd07f,52f4453e-e968-4290-a79a-470f68fbd07f,0,1,5b952e35-1037-4447-8293-6d8889692c8b,5b952e35-1037-4447-8293-6d8889692c8b,1,0,33e0072d-7d5b-4298-ae77-31a7cb358f5d,33e0072d-7d5b-4298-ae77-31a7cb358f5d,1,0,1051c0c7-1058-427c-8bf5-5e30b8fbfb54,1051c0c7-1058-427c-8bf5-5e30b8fbfb54,1,0,b27688c3-6682-45e1-a03f-0d2e8b1214e4,b27688c3-6682-45e1-a03f-0d2e8b1214e4,1,0,706fcdd2-345b-406c-896e-58ff0967c7f0,706fcdd2-345b-406c-896e-58ff0967c7f0,0,1,05bc8b4e-8c90-4502-8b16-7b1e7625d569,05bc8b4e-8c90-4502-8b16-7b1e7625d569,0,1,ce34d88d-3017-4197-a962-ea23a6a96d32,ce34d88d-3017-4197-a962-ea23a6a96d32,0,1,2cbc16da-aa67-4ad6-82f8-fa6922447be6,2cbc16da-aa67-4ad6-82f8-fa6922447be6,0,1,19d7a1ba-c343-4575-95da-53dac6d4b2cb,19d7a1ba-c343-4575-95da-53dac6d4b2cb,0,1,6cc8b3a0-3377-4b39-b6b0-69c862a15465,6cc8b3a0-3377-4b39-b6b0-69c862a15465,0,1,acb193f4-52e5-4572-a79b-b825a2f6525f,acb193f4-52e5-4572-a79b-b825a2f6525f,0,1,5d46f719-e468-48e2-b4ec-acb85c710451,5d46f719-e468-48e2-b4ec-acb85c710451,0,1,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,0,1,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,0,1,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,0,1,04055821-03ce-4049-af2c-8670c80517f6,04055821-03ce-4049-af2c-8670c80517f6,0,1,0101305d-62eb-4802-9cd4-d615a518d842,0101305d-62eb-4802-9cd4-d615a518d842,0,1,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,0,1,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,0,1,7c424424-9660-462d-9cf2-4c1e6bd284fa,7c424424-9660-462d-9cf2-4c1e6bd284fa,0,1,e118f957-ab2c-473b-ab64-37032f727416,e118f957-ab2c-473b-ab64-37032f727416,0,1,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,0,1,21f64e5f-dc94-4ce9-b836-e75646ae3325,21f64e5f-dc94-4ce9-b836-e75646ae3325,0,1,82e8a180-f2e1-406c-9609-89d33504aff2,82e8a180-f2e1-406c-9609-89d33504aff2,0,1,e7437c81-3d5b-466e-880c-8febe4a68e88,e7437c81-3d5b-466e-880c-8febe4a68e88,0,1,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,0,1,307771e6-bcf7-4016-b369-e1655bbe9e94,307771e6-bcf7-4016-b369-e1655bbe9e94,0,1,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,0,1,38fc6a54-846c-40b0-9254-3261f540bf18,38fc6a54-846c-40b0-9254-3261f540bf18,0,1,d9134d0c-56cd-4b8f-ab11-ae37fc306801,d9134d0c-56cd-4b8f-ab11-ae37fc306801,0,1,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,0,1,8f2af24b-f5fa-4f6d-831e-28453bdedefc,8f2af24b-f5fa-4f6d-831e-28453bdedefc,0,1,d119e21d-0087-4f22-b3bd-b14707b65330,d119e21d-0087-4f22-b3bd-b14707b65330,0,1,dc9b4072-11de-40fe-bf2a-f7b15af0a250,dc9b4072-11de-40fe-bf2a-f7b15af0a250,0,1,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,0,1,932b1c1a-72eb-49cd-8218-d0ced9c454d8,932b1c1a-72eb-49cd-8218-d0ced9c454d8,0,1,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,0,1,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,0,1,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,0,1,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,0,1,5dd336c4-88c5-4f53-acf0-5f86a658c528,5dd336c4-88c5-4f53-acf0-5f86a658c528,0,1,c723112b-286d-46f1-989d-81252062a025,c723112b-286d-46f1-989d-81252062a025,0,1,67e8b47e-4bad-4b2f-b196-8a9708893051,67e8b47e-4bad-4b2f-b196-8a9708893051,0,1,a583e53a-3f3c-48c7-8928-37ce40b2bafe,a583e53a-3f3c-48c7-8928-37ce40b2bafe,0,1,a844dd4a-274a-4894-9446-031dbe006084,a844dd4a-274a-4894-9446-031dbe006084,0,1,9a740f81-5437-47af-8ed9-ea62edcb2ea1,9a740f81-5437-47af-8ed9-ea62edcb2ea1,0,1,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,0,1,7092a5d4-620b-4ad2-bce4-f099da694100,7092a5d4-620b-4ad2-bce4-f099da694100,0,1,31b3e718-d0b2-425b-b8af-67bc407eab56,31b3e718-d0b2-425b-b8af-67bc407eab56,0,1,77bdd30f-4933-4bda-9c7a-b0a097da0910,77bdd30f-4933-4bda-9c7a-b0a097da0910,0,1,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,0,1,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,0,1,a682e9e1-284f-4e32-86b2-6736f159f585,a682e9e1-284f-4e32-86b2-6736f159f585,0,1,84f0bd89-9b86-440f-b942-9b685e22233e,84f0bd89-9b86-440f-b942-9b685e22233e,0,1,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,0,1,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,0,1,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,0,1,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,0,1,fabf8a0b-366f-4f23-9377-315534bb854b,fabf8a0b-366f-4f23-9377-315534bb854b,0,1,7aac6439-64c9-4492-b866-bf91dda82d06,7aac6439-64c9-4492-b866-bf91dda82d06,0,1,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,0,1,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,0,1,08b86f29-64ef-467a-af1a-d27ffdf621ba,08b86f29-64ef-467a-af1a-d27ffdf621ba,0,1,6483d1ab-c53d-4985-ad7e-b799adbcd9da,6483d1ab-c53d-4985-ad7e-b799adbcd9da,0,1,82f66233-ed13-49ae-ab72-7cf91c88c760,82f66233-ed13-49ae-ab72-7cf91c88c760,0,1,75cddbcd-e960-4164-81d8-ac0a2a36e95b,75cddbcd-e960-4164-81d8-ac0a2a36e95b,0,1,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,0,1,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,0,1,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,0,1,e589a693-ff50-4c36-ae26-a8fcae966d57,e589a693-ff50-4c36-ae26-a8fcae966d57,0,1,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,0,1,90f023f5-5b48-4f98-bfc6-b704277a355d,90f023f5-5b48-4f98-bfc6-b704277a355d,0,1,99485603-706d-4301-be25-82b1c0ee8f4d,99485603-706d-4301-be25-82b1c0ee8f4d,0,1,e7a28021-c75e-41b2-9974-cf4beee34d28,e7a28021-c75e-41b2-9974-cf4beee34d28,0,1,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,0,1,2a603c61-4cbf-4c6d-a0b2-40c835d36737,2a603c61-4cbf-4c6d-a0b2-40c835d36737,0,1,a8d7f071-401b-499e-957c-d077d8002e54,a8d7f071-401b-499e-957c-d077d8002e54,0,1,211a539b-4be9-4816-98f6-f756e65eafd8,211a539b-4be9-4816-98f6-f756e65eafd8,0,1,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,0,1,e9b9da80-7806-4c9c-a002-01cfa3109169,e9b9da80-7806-4c9c-a002-01cfa3109169,0,1,a271041d-0203-4ecd-bb39-70256c50192e,a271041d-0203-4ecd-bb39-70256c50192e,0,1,9eacd816-d416-4bf9-9cc7-a62394031517,9eacd816-d416-4bf9-9cc7-a62394031517,0,1,6c055aa0-3d9f-42a0-95bb-10ad0a513b9c,6c055aa0-3d9f-42a0-95bb-10ad0a513b9c,1,0,73eff626-a363-4a5a-879e-61ef6ce0726f,73eff626-a363-4a5a-879e-61ef6ce0726f,1,0,acf15b79-a6c4-4c46-8013-50d3b223baf6,acf15b79-a6c4-4c46-8013-50d3b223baf6,1,0,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,1,0,2d8d5d74-2bc0-4282-af66-e4a37694c147,2d8d5d74-2bc0-4282-af66-e4a37694c147,1,0,cfd31341-287b-4684-9ac0-b28b4e066f15,cfd31341-287b-4684-9ac0-b28b4e066f15,1,0,f829e2a9-5bdb-4171-8b32-8d10d5968813,f829e2a9-5bdb-4171-8b32-8d10d5968813,1,0,647ba8f8-57f7-4c19-af59-525517c1e392,647ba8f8-57f7-4c19-af59-525517c1e392,1,0,39062cb3-4ae8-4c0d-889b-038a55179946,39062cb3-4ae8-4c0d-889b-038a55179946,1,0,c62d4212-36ca-4afb-bac9-269b6f64ca51,c62d4212-36ca-4afb-bac9-269b6f64ca51,1,0,5cec5e16-46ad-4f8c-b869-f5b1cc487884,5cec5e16-46ad-4f8c-b869-f5b1cc487884,1,0,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,1,0,7aacdf81-49fd-47a3-a36a-c483f1b05872,7aacdf81-49fd-47a3-a36a-c483f1b05872,1,0,857015e2-afb2-403d-bfb7-7acb5080797b,857015e2-afb2-403d-bfb7-7acb5080797b,1,0,5657286b-114b-41de-ab7d-45d0f0d95e2d,5657286b-114b-41de-ab7d-45d0f0d95e2d,1,0,42a0271e-6783-44db-95c1-09805ae01f58,42a0271e-6783-44db-95c1-09805ae01f58,1,0,8628783e-4fad-4dff-8220-9e0ddc8580f8,8628783e-4fad-4dff-8220-9e0ddc8580f8,1,0,356fc245-3034-42d1-84d0-632c6dc7a3d5,356fc245-3034-42d1-84d0-632c6dc7a3d5,1,0,07462664-6b58-4f5a-9b3f-2e5c376f17df,07462664-6b58-4f5a-9b3f-2e5c376f17df,1,0,6f23e946-f700-424b-b9bf-3a9c8846908d,6f23e946-f700-424b-b9bf-3a9c8846908d,1,0,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,1,0,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,1,0,07d0d6e9-e0a7-4543-9668-3850c1e0a15c,07d0d6e9-e0a7-4543-9668-3850c1e0a15c,1,0,c656771c-dcb7-4c78-9a16-e62806d5bb5a,c656771c-dcb7-4c78-9a16-e62806d5bb5a,1,0,ec42c45c-18ca-44b0-9c59-1cb204552a43,ec42c45c-18ca-44b0-9c59-1cb204552a43,1,0,2aafb1a1-4321-47e9-9783-03ab616a2873,2aafb1a1-4321-47e9-9783-03ab616a2873,1,0,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,1,0,427e6f15-334e-42be-9554-895d8f7ebfc6,427e6f15-334e-42be-9554-895d8f7ebfc6,1,0,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,1,0,36bc8523-41a5-48ff-9bd0-758d078c4408,36bc8523-41a5-48ff-9bd0-758d078c4408,1,0,94ca1b45-3cf0-4857-8299-999c93f4fb56,94ca1b45-3cf0-4857-8299-999c93f4fb56,1,0,ee8419c6-79ca-4546-9a66-bacaa08d2a73,ee8419c6-79ca-4546-9a66-bacaa08d2a73,1,0,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,1,0,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,1,0,a915df5f-7330-4fc3-aecd-08d228b8fd23,a915df5f-7330-4fc3-aecd-08d228b8fd23,1,0,ada11ea2-94d5-4172-a383-a51774599568,ada11ea2-94d5-4172-a383-a51774599568,1,0,1ea080b0-0a11-4152-b8bb-4918bc142a23,1ea080b0-0a11-4152-b8bb-4918bc142a23,1,0,6e20df72-c643-4952-8f9c-f386d2915004,6e20df72-c643-4952-8f9c-f386d2915004,1,0,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,1,0,0e5074b0-bc15-416d-9c87-dad6824186e1,0e5074b0-bc15-416d-9c87-dad6824186e1,1,0,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,1,0,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,1,0,2e9fa546-96fb-4ecb-b933-7921e131e89b,2e9fa546-96fb-4ecb-b933-7921e131e89b,1,0,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,1,0,637a132b-1a88-44ba-b45f-ed4ed1ac1001,637a132b-1a88-44ba-b45f-ed4ed1ac1001,1,0,699f734b-43d2-4351-bff8-e0e21e164a42,699f734b-43d2-4351-bff8-e0e21e164a42,1,0,95f0792a-7ac4-450a-b05c-219741e61abd,95f0792a-7ac4-450a-b05c-219741e61abd,1,0,742a2e8c-496e-4e02-931d-d33f7afe07a5,742a2e8c-496e-4e02-931d-d33f7afe07a5,1,0,c3efa853-cd29-4618-929f-e3bec33dfd65,c3efa853-cd29-4618-929f-e3bec33dfd65,1,0,495e2c77-4868-4191-ac18-f94e55a5982e,495e2c77-4868-4191-ac18-f94e55a5982e,1,0,20191a65-322c-457d-85f5-ed1258b6fe8e,20191a65-322c-457d-85f5-ed1258b6fe8e,1,0,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,1,0,769c60aa-44f4-4c98-a461-d3f5c2b67f61,769c60aa-44f4-4c98-a461-d3f5c2b67f61,1,0,f9809c99-0eaa-4249-967c-a4bef4763277,f9809c99-0eaa-4249-967c-a4bef4763277,1,0,37fa88a0-f2c1-455f-a28d-74165e8b933d,37fa88a0-f2c1-455f-a28d-74165e8b933d,1,0,e4476f09-909b-49f7-8e01-72eea8ceaca6,e4476f09-909b-49f7-8e01-72eea8ceaca6,1,0,2861412c-46f0-454e-b81d-fe081afb5c7a,2861412c-46f0-454e-b81d-fe081afb5c7a,1,0,abacbda3-b4c1-446b-95e7-a45adec16174,abacbda3-b4c1-446b-95e7-a45adec16174,1,0,2b4ece05-b694-42e9-8239-55722fd84294,2b4ece05-b694-42e9-8239-55722fd84294,1,0,0d743731-da5d-4c99-b19f-e93c69b77e14,0d743731-da5d-4c99-b19f-e93c69b77e14,1,0,91a7a0f7-19e8-43d1-935c-e9bd1ac24d03,91a7a0f7-19e8-43d1-935c-e9bd1ac24d03,1,0,d6f15367-23e2-4766-bc7c-8acd0063aa0c,d6f15367-23e2-4766-bc7c-8acd0063aa0c,1,0,868da26b-f32e-48d1-a647-44dac7520d86,868da26b-f32e-48d1-a647-44dac7520d86,1,0,3d315df6-e000-4cbd-810d-0b26c0d1bc54,3d315df6-e000-4cbd-810d-0b26c0d1bc54,1,0,fa429302-ccaf-4c89-8a11-3a1d30817c00,fa429302-ccaf-4c89-8a11-3a1d30817c00,1,0,9b4c49ce-93da-439a-8d67-f3774e92800a,9b4c49ce-93da-439a-8d67-f3774e92800a,1,0,5f8fa827-7017-4b45-b458-3571b8b611f5,5f8fa827-7017-4b45-b458-3571b8b611f5,1,0,79749167-2912-4e06-9deb-7915a1b4390d,79749167-2912-4e06-9deb-7915a1b4390d,1,0,1c93fcd3-53a1-403f-a30b-454fbc941d55,1c93fcd3-53a1-403f-a30b-454fbc941d55,1,0,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,1,0,adec3963-b22f-4463-a3f4-c9ec27d187a8,adec3963-b22f-4463-a3f4-c9ec27d187a8,1,0,d8dae0c8-8e11-44bf-bf60-d316220f3e82,d8dae0c8-8e11-44bf-bf60-d316220f3e82,1,0,12afec4d-1728-4aa8-86e5-23cd2f1572b3,12afec4d-1728-4aa8-86e5-23cd2f1572b3,1,0,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,1,0,ee0c3960-d1bf-411f-a51f-e6e27dabea87,ee0c3960-d1bf-411f-a51f-e6e27dabea87,1,0,d7fb9441-1aef-4257-af3f-7f16340ac85e,d7fb9441-1aef-4257-af3f-7f16340ac85e,1,0,d07c094c-2795-4e0c-b030-bdb82be7ba6d,d07c094c-2795-4e0c-b030-bdb82be7ba6d,1,0,62637860-2013-4f9d-9aed-7cbb0dce8983,62637860-2013-4f9d-9aed-7cbb0dce8983,1,0,331217f6-7ec2-425d-93bd-f2979c5f2e05,331217f6-7ec2-425d-93bd-f2979c5f2e05,1,0,457578ab-dfe2-4419-8d8a-64283b341f42,457578ab-dfe2-4419-8d8a-64283b341f42,1,0,67ef6671-f537-46bf-88e6-f5bcf34a17a4,67ef6671-f537-46bf-88e6-f5bcf34a17a4,1,0,de778ca7-feaf-4531-80ae-11a534c56928,de778ca7-feaf-4531-80ae-11a534c56928,1,0,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,1,0,0a76a84d-e883-477e-8b87-7bf984cdc1cf,0a76a84d-e883-477e-8b87-7bf984cdc1cf,1,0,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,1,0,86df8648-e195-4661-99ee-6052788eb276,86df8648-e195-4661-99ee-6052788eb276,1,0,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,1,0,35133725-9647-42dc-a76a-2e62b2918ac4,35133725-9647-42dc-a76a-2e62b2918ac4,1,0,fa9572ee-0303-4421-9125-70cf3dd5a8c7,fa9572ee-0303-4421-9125-70cf3dd5a8c7,1,0,4cdd7920-0c49-4950-b92f-fdf6e34578b2,4cdd7920-0c49-4950-b92f-fdf6e34578b2,1,0,0af48650-5fef-4a5b-8ac8-38a9ded23bd4,0af48650-5fef-4a5b-8ac8-38a9ded23bd4,1,0,df042e4e-01a6-4480-a9c5-c0d7a454bb41,df042e4e-01a6-4480-a9c5-c0d7a454bb41,1,0,bad3d1fa-9618-427a-93e0-90f151e468bf,bad3d1fa-9618-427a-93e0-90f151e468bf,1,0,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,1,0,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,1,0,ec7cfc56-00fd-4494-be90-49308a3c34a0,ec7cfc56-00fd-4494-be90-49308a3c34a0,1,0,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,1,0,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,1,0,719cdbdd-13b3-44fc-8739-0b788693a8d0,719cdbdd-13b3-44fc-8739-0b788693a8d0,1,0,88618d0f-97af-4055-a490-561d4b8065a7,88618d0f-97af-4055-a490-561d4b8065a7,1,0,5de9fbf9-f075-4acf-b9f9-89688d2006af,5de9fbf9-f075-4acf-b9f9-89688d2006af,1,0,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,1,0,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,1,0,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,1,0,09502176-c53d-4525-b8ed-32d0a2e21a5d,09502176-c53d-4525-b8ed-32d0a2e21a5d,1,0,75ad984e-d41f-4591-b207-e8a4b05757a7,75ad984e-d41f-4591-b207-e8a4b05757a7,1,0,3f020f90-7aeb-4b21-ad71-4572ac796d4c,3f020f90-7aeb-4b21-ad71-4572ac796d4c,1,0,759e2ba0-2941-4cc1-8409-50b8a3620058,759e2ba0-2941-4cc1-8409-50b8a3620058,1,0,491cf25d-091e-4e09-b145-92d7073326cf,491cf25d-091e-4e09-b145-92d7073326cf,1,0,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,1,0,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,1,0,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,1,0,900bc96e-fbcc-473e-970c-96f561420f8e,900bc96e-fbcc-473e-970c-96f561420f8e,1,0,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,1,0,21d5a0b0-9a2b-4989-a50a-781645513179,21d5a0b0-9a2b-4989-a50a-781645513179,1,0,22df0fa4-cb1c-45a2-bcce-d32ed44e462a,22df0fa4-cb1c-45a2-bcce-d32ed44e462a,1,0,d97c6204-3656-4591-aea9-6ebedffe1247,d97c6204-3656-4591-aea9-6ebedffe1247,1,0,7caabe33-184f-45db-bef4-59d4e9cd2394,7caabe33-184f-45db-bef4-59d4e9cd2394,1,0,3255033a-e922-412e-a825-a3e8bd284703,3255033a-e922-412e-a825-a3e8bd284703,1,0,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1,0,f250f992-ad5a-4dab-ad38-240604adb0c4,f250f992-ad5a-4dab-ad38-240604adb0c4,1,0,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,1,0,e63671f6-c96d-4ea4-8300-af7dbd0d016f,e63671f6-c96d-4ea4-8300-af7dbd0d016f,1,0,2c511469-0df6-470f-a808-decb275e8b1a,2c511469-0df6-470f-a808-decb275e8b1a,1,0,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1,0,99b40f9f-f8f1-4779-8afc-59d30612f3d6,99b40f9f-f8f1-4779-8afc-59d30612f3d6,1,0,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,1,0,cb6d4979-2d70-4ceb-af08-deb2b19daf14,cb6d4979-2d70-4ceb-af08-deb2b19daf14,1,0,7bbd0835-b3e9-40cb-a424-670828b60bbb,7bbd0835-b3e9-40cb-a424-670828b60bbb,1,0,3e2138ea-48f9-4a60-8f22-53933bea49db,3e2138ea-48f9-4a60-8f22-53933bea49db,1,0,16bda2eb-eab8-4230-b89f-517fb943e009,16bda2eb-eab8-4230-b89f-517fb943e009,1,0,00964512-297f-4b8b-8def-8e4fc0eba991,00964512-297f-4b8b-8def-8e4fc0eba991,1,0,4185fea3-baba-4ba5-8019-9023b3011d4d,4185fea3-baba-4ba5-8019-9023b3011d4d,1,0,ea790035-92d6-445e-9fa3-08e565634d2b,ea790035-92d6-445e-9fa3-08e565634d2b,1,0,cce8900a-51eb-487d-b380-227d1b9d3943,cce8900a-51eb-487d-b380-227d1b9d3943,1,0,c043c36c-90c6-483b-bc20-7c2d85109b90,c043c36c-90c6-483b-bc20-7c2d85109b90,1,0,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,1,0,91d2d40a-c271-412c-b344-1fc98b94ba21,91d2d40a-c271-412c-b344-1fc98b94ba21,1,0,7ce47046-aee8-4809-bac9-a98930a844e1,7ce47046-aee8-4809-bac9-a98930a844e1,1,0,f480b8b9-ecec-4207-a0aa-12c5be4c2250,f480b8b9-ecec-4207-a0aa-12c5be4c2250,1,0,32717d25-6644-4903-8950-03e4c9b1a8fe,32717d25-6644-4903-8950-03e4c9b1a8fe,1,0,3644d8f3-db88-4fce-a851-39c115acfe03,3644d8f3-db88-4fce-a851-39c115acfe03,1,0,837e4559-2f2d-48e9-a03b-2d52b25569ec,837e4559-2f2d-48e9-a03b-2d52b25569ec,1,0,4653da74-34b2-47b9-ad88-efd761d6f1e9,4653da74-34b2-47b9-ad88-efd761d6f1e9,1,0,b0cd056f-c601-4d07-89c4-f7137b88bab6,b0cd056f-c601-4d07-89c4-f7137b88bab6,1,0,3660618a-0cab-458f-b448-867c4d1aba1b,3660618a-0cab-458f-b448-867c4d1aba1b,1,0,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,1,0,22f34fd5-4bda-48c1-8772-74d9c6479a30,22f34fd5-4bda-48c1-8772-74d9c6479a30,1,0,88b22e62-c144-401f-9635-3fb4d914772e,88b22e62-c144-401f-9635-3fb4d914772e,1,0,efeb2914-6604-403a-a11e-5cb995ab2bc9,efeb2914-6604-403a-a11e-5cb995ab2bc9,1,0,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,1,0,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,1,0,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,1,0,de506523-241a-4845-9259-37066afbf16a,de506523-241a-4845-9259-37066afbf16a,1,0,0510206f-eef0-4a5e-aeb7-d53c26d34adb,0510206f-eef0-4a5e-aeb7-d53c26d34adb,1,0,e616e007-43e7-4740-a083-b85f5435718a,e616e007-43e7-4740-a083-b85f5435718a,1,0,727da5b1-e054-4832-8e44-f5d5e56f52e5,727da5b1-e054-4832-8e44-f5d5e56f52e5,1,0,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,1,0,6feaad7c-9680-4341-b215-14581e2e2b37,6feaad7c-9680-4341-b215-14581e2e2b37,1,0,d5656a92-adfb-4733-830d-2b1565798b1f,d5656a92-adfb-4733-830d-2b1565798b1f,1,0,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,1,0,b0f6ea83-2849-4151-930d-692866919db3,b0f6ea83-2849-4151-930d-692866919db3,1,0,05558ce4-8568-4009-b1d7-307d54967515,05558ce4-8568-4009-b1d7-307d54967515,1,0,74380324-9b7b-49f6-9458-88deb9405f98,74380324-9b7b-49f6-9458-88deb9405f98,1,0,5286ceb2-0f16-4d70-ad89-dc15a308bb8d,5286ceb2-0f16-4d70-ad89-dc15a308bb8d,1,0,0abf70e0-0d81-4d85-a288-a2134da5fbf1,0abf70e0-0d81-4d85-a288-a2134da5fbf1,1,0,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,1,0,f66cb2da-3b3c-481f-823a-506f8290f619,f66cb2da-3b3c-481f-823a-506f8290f619,1,0,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,1,0,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,1,0,0bdcf045-5132-4a68-839c-a30515dc569e,0bdcf045-5132-4a68-839c-a30515dc569e,1,0,683861f9-9a5f-47db-8b03-959f839d5a3a,683861f9-9a5f-47db-8b03-959f839d5a3a,1,0,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,1,0,125be5bf-f410-451d-aa96-22fabc6a4d8a,125be5bf-f410-451d-aa96-22fabc6a4d8a,1,0,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,1,0,f942d212-9be0-4d80-84b6-5b63070e33e4,f942d212-9be0-4d80-84b6-5b63070e33e4,1,0,64c91eaa-084f-4801-8dbf-4e075c689c2b,64c91eaa-084f-4801-8dbf-4e075c689c2b,1,0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,1,0,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,1,0,3aa12805-823a-439b-b039-fb9940aee312,3aa12805-823a-439b-b039-fb9940aee312,1,0,87d53573-f266-4b74-94af-041ae4b6518f,87d53573-f266-4b74-94af-041ae4b6518f,1,0,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,1,0,801cf1f7-2c65-4126-a3e9-b66abfdde67a,801cf1f7-2c65-4126-a3e9-b66abfdde67a,1,0,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,1,0,29c2bc01-8838-4459-8ac2-79862aa1dbc9,29c2bc01-8838-4459-8ac2-79862aa1dbc9,1,0,ad556c33-6811-48b4-ae90-57700a4d3fd6,ad556c33-6811-48b4-ae90-57700a4d3fd6,1,0,6e0833f4-3b57-4a5f-810f-9e2a492335df,6e0833f4-3b57-4a5f-810f-9e2a492335df,1,0,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,1,0,977bc9d8-9843-4343-85af-11a3d91f9966,977bc9d8-9843-4343-85af-11a3d91f9966,1,0,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,1,0,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,1,0,a6582448-734d-4a4c-a32c-c4755ca1bc93,a6582448-734d-4a4c-a32c-c4755ca1bc93,1,0,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,1,0,53327cc4-22b0-40f9-bae7-db483f85901c,53327cc4-22b0-40f9-bae7-db483f85901c,1,0,d826fe6f-d9f6-41f2-8dd6-bd840af25183,d826fe6f-d9f6-41f2-8dd6-bd840af25183,1,0,098d904d-95c9-459e-86d0-357ba9a40191,098d904d-95c9-459e-86d0-357ba9a40191,1,0,2d58033f-e15d-4a91-8165-dd311025c7c4,2d58033f-e15d-4a91-8165-dd311025c7c4,1,0,5e6a6f8f-5cb1-475d-b2d8-f2f143ef7b19,5e6a6f8f-5cb1-475d-b2d8-f2f143ef7b19,1,0,49cb3a36-90b3-4154-b571-265fc5cee21e,49cb3a36-90b3-4154-b571-265fc5cee21e,1,0,7bc5fa42-7d72-433e-8db6-a046b583a316,7bc5fa42-7d72-433e-8db6-a046b583a316,1,0,7da57c89-af2c-445a-96f7-39250f70306f,7da57c89-af2c-445a-96f7-39250f70306f,1,0,b5b94d94-25f7-4cfa-b1e9-6009fb848763,b5b94d94-25f7-4cfa-b1e9-6009fb848763,1,0,a2accf54-5966-42e8-ab2e-e56e415963ee,a2accf54-5966-42e8-ab2e-e56e415963ee,1,0,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,1,0,d8eb5329-5900-4b5d-b45e-458513dddfef,d8eb5329-5900-4b5d-b45e-458513dddfef,1,0,d5afea8a-1b7a-4b23-8ae0-cefa0b937b17,d5afea8a-1b7a-4b23-8ae0-cefa0b937b17,1,0,6ffd2da8-db97-46fc-9a53-8e665a598e3c,6ffd2da8-db97-46fc-9a53-8e665a598e3c,1,0,dfcd90f3-922b-4f53-959c-a36812aba1fd,dfcd90f3-922b-4f53-959c-a36812aba1fd,1,0,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,1,0,27089e8e-2c75-431c-b808-5d4dcba3cdca,27089e8e-2c75-431c-b808-5d4dcba3cdca,1,0,1e97c7ba-b276-4f74-a6fd-99d287912d0f,1e97c7ba-b276-4f74-a6fd-99d287912d0f,1,0,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,1,0,4077e700-ec20-4afa-8155-bf7e516a70cb,4077e700-ec20-4afa-8155-bf7e516a70cb,1,0,10008125-3aeb-4912-8ad6-d92d283ea09a,10008125-3aeb-4912-8ad6-d92d283ea09a,1,0,d22a0a50-220d-459e-a23a-39730a1e67c4,d22a0a50-220d-459e-a23a-39730a1e67c4,1,0,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,0,1,483dfce4-9c66-4739-94d4-17a005d64f5b,483dfce4-9c66-4739-94d4-17a005d64f5b,0,1,19506116-43ef-433c-822c-ef8717b0da6b,19506116-43ef-433c-822c-ef8717b0da6b,0,1,464b92cc-b577-4350-ae9f-e697390248d7,464b92cc-b577-4350-ae9f-e697390248d7,0,1,5a1242c8-3817-4d2c-9bfd-f62a6b80730c,5a1242c8-3817-4d2c-9bfd-f62a6b80730c,0,1,b9be6caf-e5e0-45a9-8cc8-3c83721632a2,b9be6caf-e5e0-45a9-8cc8-3c83721632a2,0,1,97e853dc-065f-4c6d-84cb-3d3aff367b22,97e853dc-065f-4c6d-84cb-3d3aff367b22,0,1,2f1fdf47-2627-496f-9e1f-77019abb2104,2f1fdf47-2627-496f-9e1f-77019abb2104,0,1,c996532a-8795-4136-8a40-9bb4b263277c,c996532a-8795-4136-8a40-9bb4b263277c,0,1,64c77788-fc49-4979-8163-949a891bd8b7,64c77788-fc49-4979-8163-949a891bd8b7,0,1,c39750ca-e33f-40c2-b830-119423d9a2ae,c39750ca-e33f-40c2-b830-119423d9a2ae,0,1,9372ff6b-27b6-48f3-a2a2-762e7c485766,9372ff6b-27b6-48f3-a2a2-762e7c485766,0,1,f454595a-4a3d-451b-8e8b-b17aa8314591,f454595a-4a3d-451b-8e8b-b17aa8314591,0,1,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,0,1,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,0,1,bc708da8-7fc6-4da1-8129-9ef6a86667af,bc708da8-7fc6-4da1-8129-9ef6a86667af,0,1,061842fe-4077-4d6e-aefe-de79409da730,061842fe-4077-4d6e-aefe-de79409da730,0,1,da6e4bff-9835-4b92-b62b-291a5d6c86fe,da6e4bff-9835-4b92-b62b-291a5d6c86fe,1,0,6f0caeb0-34ce-489c-86c4-c16d85320fa3,6f0caeb0-34ce-489c-86c4-c16d85320fa3,1,0,4c49914c-e472-46f8-8c5e-5e38138eb301,4c49914c-e472-46f8-8c5e-5e38138eb301,1,0,81d4ea48-8704-494d-8cd2-51f2dd1190bc,81d4ea48-8704-494d-8cd2-51f2dd1190bc,1,0,9c196011-1485-4fa5-bb05-a9dbe768e8a7,9c196011-1485-4fa5-bb05-a9dbe768e8a7,0,1,3fadaeb7-2c41-42a4-bfa8-c585602b1028,3fadaeb7-2c41-42a4-bfa8-c585602b1028,0,1,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,0,1,b98dacc7-29e1-426b-a664-0a988f18186c,b98dacc7-29e1-426b-a664-0a988f18186c,0,1,083c709b-ed8c-47e4-a190-421e14259e73,083c709b-ed8c-47e4-a190-421e14259e73,0,1,d678856d-6e7c-443f-a6e3-350bbe8af659,d678856d-6e7c-443f-a6e3-350bbe8af659,0,1,c0d83781-bbda-43f7-bf0e-5defa3d47143,c0d83781-bbda-43f7-bf0e-5defa3d47143,0,1,21fa5fdd-acbc-403b-9acb-bbf95284bd20,21fa5fdd-acbc-403b-9acb-bbf95284bd20,0,1,576a01e3-4d6d-4241-a3c4-7661ba129bcb,576a01e3-4d6d-4241-a3c4-7661ba129bcb,0,1,ff04a476-6697-46c9-ae81-302a80f8e276,ff04a476-6697-46c9-ae81-302a80f8e276,0,1,4a098872-622f-4e72-ba24-6c77eeca41be,4a098872-622f-4e72-ba24-6c77eeca41be,0,1,20ab32cf-1392-4271-a1b7-96f9bd1c4f06,20ab32cf-1392-4271-a1b7-96f9bd1c4f06,0,1,05084ba4-38c6-44bc-b1e4-cbc0130021ba,05084ba4-38c6-44bc-b1e4-cbc0130021ba,0,1,752dc569-cf84-42d7-911d-49d455f7214e,752dc569-cf84-42d7-911d-49d455f7214e,0,1,fecab2b9-27e1-44d6-9082-79c3569b7477,fecab2b9-27e1-44d6-9082-79c3569b7477,0,1,07ae092f-8517-47b7-b54c-5dbcb6506929,07ae092f-8517-47b7-b54c-5dbcb6506929,0,1,db4c25bb-d199-43ec-833d-82972de04a41,db4c25bb-d199-43ec-833d-82972de04a41,0,1,43d19685-0794-41f2-9171-bf565133718d,43d19685-0794-41f2-9171-bf565133718d,0,1,b68c15c4-4966-4f13-8912-2d479b65089a,b68c15c4-4966-4f13-8912-2d479b65089a,0,1,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,1,0,f87e3935-dae1-4192-b6a7-05e3c700c590,f87e3935-dae1-4192-b6a7-05e3c700c590,1,0,ee635706-6ee2-4956-8d58-a235f64687f6,ee635706-6ee2-4956-8d58-a235f64687f6,1,0,a5a40ca7-d665-420b-a516-1355019d6901,a5a40ca7-d665-420b-a516-1355019d6901,0,1,adf9304c-ccf8-492e-95b1-0754764586a2,adf9304c-ccf8-492e-95b1-0754764586a2,0,1,fd175112-ec8f-4088-9b21-d8135056f0c5,fd175112-ec8f-4088-9b21-d8135056f0c5,0,1,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,0,1,df76a1b7-312a-4e77-bac1-79befadb4495,df76a1b7-312a-4e77-bac1-79befadb4495,0,1,7d93a6ba-3ca7-45ab-a540-743c79587535,7d93a6ba-3ca7-45ab-a540-743c79587535,0,1,76b58810-0527-4dfc-8858-bac68e7e65f3,76b58810-0527-4dfc-8858-bac68e7e65f3,0,1,ab39fad8-1039-491e-982a-c49637770ec0,ab39fad8-1039-491e-982a-c49637770ec0,0,1,458e9c6b-b828-404b-be5a-c6c0aeea34c9,458e9c6b-b828-404b-be5a-c6c0aeea34c9,0,1,7262eb4d-2d2d-454c-beaa-974645813af7,7262eb4d-2d2d-454c-beaa-974645813af7,0,1,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,0,1,b2265070-9cd3-4176-92c8-6d9f32c2ca84,b2265070-9cd3-4176-92c8-6d9f32c2ca84,0,1,b347e774-2261-4f76-9bdb-3c6736983589,b347e774-2261-4f76-9bdb-3c6736983589,0,1,be7e2715-1243-49a8-8c7c-55d632d3cf6c,be7e2715-1243-49a8-8c7c-55d632d3cf6c,0,1,49221b2f-aae2-4bee-9a1a-18263fc74244,49221b2f-aae2-4bee-9a1a-18263fc74244,0,1,da0cd264-da2f-4044-af28-c91d2efe1d5c,da0cd264-da2f-4044-af28-c91d2efe1d5c,0,1,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,0,1,e754ad5c-cf3c-4198-af81-128475924cb0,e754ad5c-cf3c-4198-af81-128475924cb0,0,1,ed65d504-b210-4014-85ec-275ad633ef04,ed65d504-b210-4014-85ec-275ad633ef04,0,1,dc31edb1-273e-4b1a-8e69-32393479ff36,dc31edb1-273e-4b1a-8e69-32393479ff36,1,0,5facb8c9-b62f-422f-a02a-62c245b3b332,5facb8c9-b62f-422f-a02a-62c245b3b332,1,0,db9d05b6-2741-42b0-990e-85013380f77c,db9d05b6-2741-42b0-990e-85013380f77c,1,0,a9570d6e-f1b5-406d-97e1-9eac755bebd0,a9570d6e-f1b5-406d-97e1-9eac755bebd0,0,1,766208a3-2780-427b-a7d3-93abe99d236b,766208a3-2780-427b-a7d3-93abe99d236b,0,1,63ce4c3c-5bad-409c-904f-18f34cf1da78,63ce4c3c-5bad-409c-904f-18f34cf1da78,0,1,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,0,1,26ac22f9-0bbb-4671-b446-626e345e2461,26ac22f9-0bbb-4671-b446-626e345e2461,0,1,0d63ee6d-e17f-4a86-b384-adf9793f3331,0d63ee6d-e17f-4a86-b384-adf9793f3331,0,1,c35904cf-4954-434e-96fd-5ca537a88c66,c35904cf-4954-434e-96fd-5ca537a88c66,0,1,5545798f-72dc-4630-a5ba-88039f4bfe3c,5545798f-72dc-4630-a5ba-88039f4bfe3c,0,1,f293ac4b-91ed-4c97-90b3-bfe98c983a0f,f293ac4b-91ed-4c97-90b3-bfe98c983a0f,0,1,6aa819d3-c56d-4561-a2e4-a1188ab1295a,6aa819d3-c56d-4561-a2e4-a1188ab1295a,0,1,2ddf344d-7065-40d5-9306-23870d8fc04a,2ddf344d-7065-40d5-9306-23870d8fc04a,0,1,c630ab2d-0a20-4136-88b6-220b2cad6a71,c630ab2d-0a20-4136-88b6-220b2cad6a71,0,1,00cd1dea-bc54-475c-956d-dc5221104932,00cd1dea-bc54-475c-956d-dc5221104932,0,1,1c38ad75-b294-4c05-89ce-69ce4d9a291f,1c38ad75-b294-4c05-89ce-69ce4d9a291f,0,1,078d1e8f-6d27-4761-9532-b1e7a60e4c13,078d1e8f-6d27-4761-9532-b1e7a60e4c13,0,1,4262193c-58ad-47c6-8088-735d8cd037ea,4262193c-58ad-47c6-8088-735d8cd037ea,0,1,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,0,1,de6d1aad-39eb-46ce-87aa-d29812bb37bf,de6d1aad-39eb-46ce-87aa-d29812bb37bf,0,1,4ad859ec-cc75-4bac-9e89-397798450e48,4ad859ec-cc75-4bac-9e89-397798450e48,0,1,d93ab94c-0f55-4b80-b226-41b44c73b3ea,d93ab94c-0f55-4b80-b226-41b44c73b3ea,0,1,94cbed80-5a35-471f-b354-439a11629210,94cbed80-5a35-471f-b354-439a11629210,0,1,1162cc0a-42e5-47cb-9507-68459579f110,1162cc0a-42e5-47cb-9507-68459579f110,0,1,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,0,1,bb49dc80-4934-4f44-8f27-9a363dca8dc4,bb49dc80-4934-4f44-8f27-9a363dca8dc4,0,1,7338e497-03a7-4ed4-85a2-ca802c065a9f,7338e497-03a7-4ed4-85a2-ca802c065a9f,0,1,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,0,1,5249687b-9ff4-46f5-be15-dbb5d5047fd1,5249687b-9ff4-46f5-be15-dbb5d5047fd1,0,1,d33df51c-3dcd-496c-90f2-7ee05582bdf7,d33df51c-3dcd-496c-90f2-7ee05582bdf7,0,1,24b39ebd-2424-4939-8e3e-d09eb674d409,24b39ebd-2424-4939-8e3e-d09eb674d409,0,1,08c751bb-9e57-4536-901e-bb316c8e96d7,08c751bb-9e57-4536-901e-bb316c8e96d7,0,1,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,0,1,034cdcef-08e5-4751-9885-400aa69e0b94,034cdcef-08e5-4751-9885-400aa69e0b94,0,1,efefebea-2032-4006-b9ca-50a23b7da1ef,efefebea-2032-4006-b9ca-50a23b7da1ef,0,1,4c794d37-3352-4acb-a939-5e90fb682db8,4c794d37-3352-4acb-a939-5e90fb682db8,0,1,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,0,1,008f5068-da9c-4dac-9c0a-a50366d27cbb,008f5068-da9c-4dac-9c0a-a50366d27cbb,0,1,6e61d717-de36-4dce-8af9-b6c14ed76acb,6e61d717-de36-4dce-8af9-b6c14ed76acb,0,1,474518fe-9cb5-4a12-9388-bc7a64511617,474518fe-9cb5-4a12-9388-bc7a64511617,0,1,64337614-b1c9-4931-b576-448721fa4602,64337614-b1c9-4931-b576-448721fa4602,0,1,1d73b59c-0594-4ed3-b584-cf1261941e1d,1d73b59c-0594-4ed3-b584-cf1261941e1d,0,1,8ff2547f-d596-4fa1-9e12-079e1cc4c057,8ff2547f-d596-4fa1-9e12-079e1cc4c057,0,1,1ab0c8f8-b908-4618-ae88-af37b8f1224e,1ab0c8f8-b908-4618-ae88-af37b8f1224e,0,1,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,0,1,b85b3a58-95e4-4698-b1ae-037901ecc1b1,b85b3a58-95e4-4698-b1ae-037901ecc1b1,0,1,b77d748a-d180-432d-91c3-774e6ccf7efa,b77d748a-d180-432d-91c3-774e6ccf7efa,0,1,e5b9c1b0-4690-442c-b160-e6c587e42e57,e5b9c1b0-4690-442c-b160-e6c587e42e57,0,1,66ec2482-c1f3-45d3-9257-e0b9f5ae772a,66ec2482-c1f3-45d3-9257-e0b9f5ae772a,0,1,d3211832-c8ca-437a-8810-82e06cbb48de,d3211832-c8ca-437a-8810-82e06cbb48de,0,1,8131d701-1014-4196-9b67-914e451f8a3a,8131d701-1014-4196-9b67-914e451f8a3a,0,1,2b102933-c660-4e74-ae9a-5061a88ed672,2b102933-c660-4e74-ae9a-5061a88ed672,0,1,56c897b7-d34e-4d7d-9a3b-d0779be5c189,56c897b7-d34e-4d7d-9a3b-d0779be5c189,0,1,3ac81c80-56bd-4750-b135-07ab522e3eab,3ac81c80-56bd-4750-b135-07ab522e3eab,0,1,5657872f-c7d5-446f-bcc3-d0b86ad63a42,5657872f-c7d5-446f-bcc3-d0b86ad63a42,0,1,d5214cb9-67e2-469f-989f-3f2b662ae830,d5214cb9-67e2-469f-989f-3f2b662ae830,0,1,69679e88-4f2b-4dd6-8cb2-b88293d07b55,69679e88-4f2b-4dd6-8cb2-b88293d07b55,0,1,68679208-9972-4854-8649-49bdf6212255,68679208-9972-4854-8649-49bdf6212255,0,1,98393093-7ba6-4b4d-86be-ee5826cd8cd5,98393093-7ba6-4b4d-86be-ee5826cd8cd5,0,1,87de486d-3f35-4432-a7cd-9d3832db63cf,87de486d-3f35-4432-a7cd-9d3832db63cf,0,1,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,0,1,bb7ce04a-8143-4c0b-a196-1b57f1640142,bb7ce04a-8143-4c0b-a196-1b57f1640142,0,1,24be43ec-d39e-46aa-9c11-2536b835e515,24be43ec-d39e-46aa-9c11-2536b835e515,0,1,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,0,1,df9af3ee-6a69-4a03-8ff5-0735e9a38013,df9af3ee-6a69-4a03-8ff5-0735e9a38013,0,1,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,0,1,96661303-1286-4f84-93b7-0e6da2bd7893,96661303-1286-4f84-93b7-0e6da2bd7893,0,1,68076431-36e6-46dc-92cb-e0d8e605bf66,68076431-36e6-46dc-92cb-e0d8e605bf66,0,1,239fa55a-6572-4e5c-9918-c2e14063c76d,239fa55a-6572-4e5c-9918-c2e14063c76d,0,1,8211a1b6-c3b1-466b-8d11-22603fb50c7a,8211a1b6-c3b1-466b-8d11-22603fb50c7a,0,1,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,0,1,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,0,1,a835a3a7-989b-4247-b836-d23bba2f391a,a835a3a7-989b-4247-b836-d23bba2f391a,0,1,e0eb7b4a-9a13-4752-9327-e13d2abc4fc5,e0eb7b4a-9a13-4752-9327-e13d2abc4fc5,0,1,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,0,1,fc1476f7-26e6-4374-b99b-e515d86c050a,fc1476f7-26e6-4374-b99b-e515d86c050a,0,1,3eb3bd40-e33e-4aa7-9407-85ba1500c537,3eb3bd40-e33e-4aa7-9407-85ba1500c537,0,1,9b149c20-9328-4e2d-a34b-95c883ae4dcc,9b149c20-9328-4e2d-a34b-95c883ae4dcc,0,1,475f76ea-f494-41f1-9b65-f39907e5a427,475f76ea-f494-41f1-9b65-f39907e5a427,0,1,986280d1-41bb-4b15-a5ae-516d6a04c1f4,986280d1-41bb-4b15-a5ae-516d6a04c1f4,0,1,43bfd29a-d254-4c33-8639-200b483578c1,43bfd29a-d254-4c33-8639-200b483578c1,0,1,6a274167-7f80-4613-9890-259ffd8ccfc4,6a274167-7f80-4613-9890-259ffd8ccfc4,0,1,8d080f3c-06ed-48bf-9709-eea73d676741,8d080f3c-06ed-48bf-9709-eea73d676741,0,1,57b31a5d-9fdc-43d2-ae81-67157822c4b6,57b31a5d-9fdc-43d2-ae81-67157822c4b6,0,1,d4e2da66-9a70-459f-a873-cb4ad71d17b2,d4e2da66-9a70-459f-a873-cb4ad71d17b2,0,1,a84a91d2-d326-4bf4-82e6-d573ee35d090,a84a91d2-d326-4bf4-82e6-d573ee35d090,0,1,39cbda23-db3f-4ddd-8981-8540247406db,39cbda23-db3f-4ddd-8981-8540247406db,0,1,c8a18d99-62ff-45a4-acb5-48e3310c1b53,c8a18d99-62ff-45a4-acb5-48e3310c1b53,0,1,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,0,1,3500c6fa-813a-49dd-a4bf-163500db5b7f,3500c6fa-813a-49dd-a4bf-163500db5b7f,0,1,1d02493a-dd89-4a51-b75e-9c49f9818b95,1d02493a-dd89-4a51-b75e-9c49f9818b95,0,1,2845c5d1-e836-4499-bcae-f3c8fdae75ee,2845c5d1-e836-4499-bcae-f3c8fdae75ee,0,1,fe4e8e4e-9471-4583-b9b3-576007db08ee,fe4e8e4e-9471-4583-b9b3-576007db08ee,0,1,49deaaa8-6d50-4b25-8153-6712d88fb0fb,49deaaa8-6d50-4b25-8153-6712d88fb0fb,0,1,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,0,1,46a06de8-06fd-4b49-835f-4f24b832b3c4,46a06de8-06fd-4b49-835f-4f24b832b3c4,0,1,972c2fa0-0ca9-40da-a8c1-a06b81bd0bcf,972c2fa0-0ca9-40da-a8c1-a06b81bd0bcf,0,1,3845a567-4375-4c3a-af61-5b82674060ab,3845a567-4375-4c3a-af61-5b82674060ab,0,1,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,0,1,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,0,1,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,0,1,29645810-44aa-402c-9561-7819d6f4a7ab,29645810-44aa-402c-9561-7819d6f4a7ab,0,1,46bf4911-5200-44ac-9b4d-eb0089c12e34,46bf4911-5200-44ac-9b4d-eb0089c12e34,0,1,6e1685bd-7269-401c-b36e-def6a36b41d5,6e1685bd-7269-401c-b36e-def6a36b41d5,0,1,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,0,1,e03b6592-b597-4795-a78e-775d4f2258db,e03b6592-b597-4795-a78e-775d4f2258db,0,1,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,0,1,3b207d5f-6584-4cf2-9173-20235484f9f4,3b207d5f-6584-4cf2-9173-20235484f9f4,0,1,878d9efe-b0e7-487f-b8f7-83470c131e09,878d9efe-b0e7-487f-b8f7-83470c131e09,0,1,0f211e73-5be9-4015-93e7-ccf63e793cb6,0f211e73-5be9-4015-93e7-ccf63e793cb6,0,1,6574d8f4-fb97-4a26-b166-711fad63aa07,6574d8f4-fb97-4a26-b166-711fad63aa07,0,1,fb3eddaf-3241-4d59-8314-97a5ae9258c4,fb3eddaf-3241-4d59-8314-97a5ae9258c4,0,1,936f1aa5-7516-444b-b451-1162fa5d705f,936f1aa5-7516-444b-b451-1162fa5d705f,0,1,e8d5533e-2669-44f6-9eed-eaedab666d42,e8d5533e-2669-44f6-9eed-eaedab666d42,0,1,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,0,1,9e323b0d-4e3b-45d4-9705-aa30e63014f5,9e323b0d-4e3b-45d4-9705-aa30e63014f5,0,1,5afa798a-958e-4e0c-a380-0104f4c037a7,5afa798a-958e-4e0c-a380-0104f4c037a7,0,1,c0295fd9-c749-41b3-8d0d-6af16f484b1f,c0295fd9-c749-41b3-8d0d-6af16f484b1f,0,1,d3bc8211-54d8-47dd-aecf-5da72b65195f,d3bc8211-54d8-47dd-aecf-5da72b65195f,0,1,33f11da8-f670-4ec3-9d40-96fce031c60f,33f11da8-f670-4ec3-9d40-96fce031c60f,0,1,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,0,1,f74c2d41-2433-4bed-8aef-adfeed198252,f74c2d41-2433-4bed-8aef-adfeed198252,0,1,3c2b8a8a-bfe7-4e37-9d83-55a695a06605,3c2b8a8a-bfe7-4e37-9d83-55a695a06605,0,1,56c9703a-751a-4e6c-81f4-a8756fb040e3,56c9703a-751a-4e6c-81f4-a8756fb040e3,0,1,c3a86eec-1ff5-4392-9904-91a12a2e253a,c3a86eec-1ff5-4392-9904-91a12a2e253a,0,1,f5df72a3-c71c-412b-8c3e-6329f1d3a7da,f5df72a3-c71c-412b-8c3e-6329f1d3a7da,0,1,f02b7246-dae9-4e15-b4cd-b06133664d34,f02b7246-dae9-4e15-b4cd-b06133664d34,0,1,77f20022-17ce-4e00-8a84-015238bce6f3,77f20022-17ce-4e00-8a84-015238bce6f3,0,1,884c28de-434f-440a-8c63-67e659c097ad,884c28de-434f-440a-8c63-67e659c097ad,0,1,92ead3b5-8c55-4e4d-bd47-009e025b22f8,92ead3b5-8c55-4e4d-bd47-009e025b22f8,0,1,50d8e365-aa58-4b60-8992-01943379d485,50d8e365-aa58-4b60-8992-01943379d485,0,1,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,0,1,e24641ed-3e92-46d7-852b-9958ab7bc520,e24641ed-3e92-46d7-852b-9958ab7bc520,0,1,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,0,1,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,0,1,2c61114f-abd7-4415-8cdf-4fe95d9fe354,2c61114f-abd7-4415-8cdf-4fe95d9fe354,0,1,abd7a766-5cc1-48db-8d29-797e9d666a78,abd7a766-5cc1-48db-8d29-797e9d666a78,0,1,1704b5e3-8e77-4df6-9223-e6e5c41a280d,1704b5e3-8e77-4df6-9223-e6e5c41a280d,0,1,62eca88f-025d-44de-b92c-46cd8bc7e4a1,62eca88f-025d-44de-b92c-46cd8bc7e4a1,0,1,b0dde395-8498-4469-9507-d290798117d7,b0dde395-8498-4469-9507-d290798117d7,0,1,999616ea-0faa-4ae2-9841-6a6997ea6694,999616ea-0faa-4ae2-9841-6a6997ea6694,1,0,18515c19-c9ef-4c9f-8d12-4f58ffa251e8,18515c19-c9ef-4c9f-8d12-4f58ffa251e8,1,0,e61eef89-b3de-4b73-b7d9-af75318093e5,e61eef89-b3de-4b73-b7d9-af75318093e5,1,0,94e68502-adf1-476e-be2f-8418385959fa,94e68502-adf1-476e-be2f-8418385959fa,0,1,bf80ccc5-f907-4e7f-a007-6030c7ba682e,bf80ccc5-f907-4e7f-a007-6030c7ba682e,0,1,a330acd1-bc97-4ef8-8ecb-5604868ca044,a330acd1-bc97-4ef8-8ecb-5604868ca044,0,1,05f1f184-50cb-47c5-b3a8-62be6a9780c1,05f1f184-50cb-47c5-b3a8-62be6a9780c1,0,1,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,0,1,61f283c7-f887-432b-a2d7-c27483e04317,61f283c7-f887-432b-a2d7-c27483e04317,0,1,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,0,1,c5f91669-13d8-4f0a-a054-2701078da38a,c5f91669-13d8-4f0a-a054-2701078da38a,0,1,34f9872b-e02e-4093-ba06-3cb5b8995850,34f9872b-e02e-4093-ba06-3cb5b8995850,0,1,1635be16-4861-4a7d-babc-4caff448a7f7,1635be16-4861-4a7d-babc-4caff448a7f7,0,1,9e399087-c957-4a7a-ab9d-2b689736caab,9e399087-c957-4a7a-ab9d-2b689736caab,0,1,4f61366c-1c88-4750-a73c-78e35f0080f9,4f61366c-1c88-4750-a73c-78e35f0080f9,0,1,1bd4ad80-b991-4892-bb21-f423a119d368,1bd4ad80-b991-4892-bb21-f423a119d368,0,1,e5aaa246-8659-468e-9b02-e3a9b870b2cd,e5aaa246-8659-468e-9b02-e3a9b870b2cd,0,1,29cf0ce4-7db8-40f0-94dd-4558bbf00ab9,29cf0ce4-7db8-40f0-94dd-4558bbf00ab9,0,1,554ac957-6ca3-49b7-9a3b-094c443748a5,554ac957-6ca3-49b7-9a3b-094c443748a5,0,1,9f9936fc-54a0-4812-b12d-2f8f91551440,9f9936fc-54a0-4812-b12d-2f8f91551440,0,1,a5667633-9264-4dfa-9e26-c45e96e61ae3,a5667633-9264-4dfa-9e26-c45e96e61ae3,0,1,2eeea138-481c-4fde-9e8a-709d751cc469,2eeea138-481c-4fde-9e8a-709d751cc469,0,1,58c3936c-4db0-45c8-a22e-b5dd49a61497,58c3936c-4db0-45c8-a22e-b5dd49a61497,0,1,8928693b-1933-4e02-8a33-99b6f05b1c57,8928693b-1933-4e02-8a33-99b6f05b1c57,0,1,9aa607bc-5870-436a-bbe1-296560393e3b,9aa607bc-5870-436a-bbe1-296560393e3b,0,1,2b7372be-af0d-464e-8d09-8172229790af,2b7372be-af0d-464e-8d09-8172229790af,0,1,079bc65d-da8e-431d-847c-ec46868ca92d,079bc65d-da8e-431d-847c-ec46868ca92d,0,1,d85346db-be25-4dab-a2db-647c3d40dd17,d85346db-be25-4dab-a2db-647c3d40dd17,0,1,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,0,1,1f169cd2-573f-408d-92e7-3eee7ff4528a,1f169cd2-573f-408d-92e7-3eee7ff4528a,0,1,845262f8-8208-4c90-98ec-c85dd5734cf0,845262f8-8208-4c90-98ec-c85dd5734cf0,0,1,19ac940e-34e2-4277-987a-53b28dde5910,19ac940e-34e2-4277-987a-53b28dde5910,0,1,3c84b9ac-e67a-4d3e-ad98-b25fada7229e,3c84b9ac-e67a-4d3e-ad98-b25fada7229e,0,1,85cb64b1-ddee-4da6-a14c-7f5fa1a726ff,85cb64b1-ddee-4da6-a14c-7f5fa1a726ff,0,1,3326bbcb-b277-44db-a252-2448119e8146,3326bbcb-b277-44db-a252-2448119e8146,0,1,61cac5f7-320c-4098-9078-44fadcdeb219,61cac5f7-320c-4098-9078-44fadcdeb219,0,1,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,0,1,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,0,1,cd454738-62dd-4f95-af33-b52750678428,cd454738-62dd-4f95-af33-b52750678428,0,1,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,0,1,e4abafc6-f859-4d96-9818-5b9bf8d66d69,e4abafc6-f859-4d96-9818-5b9bf8d66d69,0,1,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,0,1,ac4e0868-ba49-46b4-8872-d42483a5591f,ac4e0868-ba49-46b4-8872-d42483a5591f,0,1,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,0,1,0493dcf1-5f94-41f9-a4c7-a52e12a29068,0493dcf1-5f94-41f9-a4c7-a52e12a29068,0,1,ca4c0299-625a-4b03-be0e-36ffb45c6d08,ca4c0299-625a-4b03-be0e-36ffb45c6d08,0,1,e1b94dcf-ec37-4b2d-a7af-120eeee40944,e1b94dcf-ec37-4b2d-a7af-120eeee40944,0,1,7d2a37b1-a1a0-435a-846a-95e255655044,7d2a37b1-a1a0-435a-846a-95e255655044,0,1,109db64c-00dc-490e-99a5-4430d9344e99,109db64c-00dc-490e-99a5-4430d9344e99,0,1,85837a55-fed5-4b7b-a622-30d728b9a677,85837a55-fed5-4b7b-a622-30d728b9a677,0,1,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,0,1,b6bd2b39-07ae-48a7-8a5b-f44b5034afa9,b6bd2b39-07ae-48a7-8a5b-f44b5034afa9,0,1,5500d5c6-fdbf-4614-b43b-fabf56e3968c,5500d5c6-fdbf-4614-b43b-fabf56e3968c,0,1,a08eeef7-1c81-4985-8628-6b35ac73e135,a08eeef7-1c81-4985-8628-6b35ac73e135,0,1,c446f732-097a-4197-8384-91a6925c6bdd,c446f732-097a-4197-8384-91a6925c6bdd,0,1,cc33ec52-aed4-4807-90b5-700d307b4f57,cc33ec52-aed4-4807-90b5-700d307b4f57,0,1,6f9ece3d-aeca-4313-9e6a-44e562fc83ff,6f9ece3d-aeca-4313-9e6a-44e562fc83ff,0,1,6b04b6f1-2c9d-4de0-b871-6cc377b13e33,6b04b6f1-2c9d-4de0-b871-6cc377b13e33,0,1,82ea249e-ecba-4916-b9a1-c7e6119b353a,82ea249e-ecba-4916-b9a1-c7e6119b353a,0,1,d5406849-57b3-44f4-8efa-e73523939ae5,d5406849-57b3-44f4-8efa-e73523939ae5,0,1,9ce5f33f-4331-491d-b084-9913c38f4c7d,9ce5f33f-4331-491d-b084-9913c38f4c7d,0,1,0603113a-f2f1-43e6-9838-64c5e98417f0,0603113a-f2f1-43e6-9838-64c5e98417f0,0,1,43055a56-a079-41e2-87eb-723769109bed,43055a56-a079-41e2-87eb-723769109bed,0,1,930f2bc5-417d-4b97-b440-8d5e81e5c896,930f2bc5-417d-4b97-b440-8d5e81e5c896,0,1,c8f487aa-544a-41dc-b7c3-7cf21d2720f2,c8f487aa-544a-41dc-b7c3-7cf21d2720f2,0,1,e506f7d3-2572-4c54-ac98-e40f083ac578,e506f7d3-2572-4c54-ac98-e40f083ac578,0,1,bdf93aa5-86a4-4791-bdb0-172532029b7c,bdf93aa5-86a4-4791-bdb0-172532029b7c,0,1,da9821c3-4b16-48b7-9088-d3cf8ac536a6,da9821c3-4b16-48b7-9088-d3cf8ac536a6,0,1,d5142574-a040-4dd0-a482-cdc61c1d86ab,d5142574-a040-4dd0-a482-cdc61c1d86ab,0,1,778e79ee-eb1a-4d52-8a31-58e781c78fe4,778e79ee-eb1a-4d52-8a31-58e781c78fe4,0,1,f480ac52-e2f1-4ed0-a0b1-20a622f77302,f480ac52-e2f1-4ed0-a0b1-20a622f77302,0,1,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,0,1,b9b0fbdc-8fda-46d1-bb3e-561a03604971,b9b0fbdc-8fda-46d1-bb3e-561a03604971,0,1,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,0,1,672c2936-9771-4e32-a970-7ac7f12a21e8,672c2936-9771-4e32-a970-7ac7f12a21e8,0,1,c264441d-4805-4968-baa2-37b8970049c7,c264441d-4805-4968-baa2-37b8970049c7,0,1,f36150de-33af-4410-8a4c-8c9f4b545793,f36150de-33af-4410-8a4c-8c9f4b545793,0,1,62f97480-7d4a-48f3-9d1d-612909b242c9,62f97480-7d4a-48f3-9d1d-612909b242c9,0,1,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,0,1,3068be84-a401-4701-8ac9-411fae130f84,3068be84-a401-4701-8ac9-411fae130f84,0,1,957394a7-e5b8-47fc-8680-1e71efe2be7d,957394a7-e5b8-47fc-8680-1e71efe2be7d,0,1,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,0,1,4f25ef45-c8d9-401d-b0e8-2217ac310f04,4f25ef45-c8d9-401d-b0e8-2217ac310f04,0,1,504ca240-b5ae-433e-ae5f-d818263eea23,504ca240-b5ae-433e-ae5f-d818263eea23,0,1,32461819-9437-417d-8d1e-851c9a2dcee2,32461819-9437-417d-8d1e-851c9a2dcee2,0,1,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,0,1,f1b66ea8-262d-4b38-a039-b83a843f6ee8,f1b66ea8-262d-4b38-a039-b83a843f6ee8,0,1,bcae6e05-f1fd-413e-9eef-2e1cee42a962,bcae6e05-f1fd-413e-9eef-2e1cee42a962,0,1,93fcaa62-2a19-468b-9128-c7930583fbfd,93fcaa62-2a19-468b-9128-c7930583fbfd,0,1,2d885109-4c96-41c0-a996-785bfd793c2d,2d885109-4c96-41c0-a996-785bfd793c2d,0,1,8393971a-96ba-493e-a9d0-a286e8a0750a,8393971a-96ba-493e-a9d0-a286e8a0750a,0,1,9c8ec5e5-afa8-48b1-bf9c-ebaaf0a720db,9c8ec5e5-afa8-48b1-bf9c-ebaaf0a720db,0,1,901897a7-a2b6-40a7-a77d-d1d4c8ce5d28,901897a7-a2b6-40a7-a77d-d1d4c8ce5d28,0,1,e6fe6a65-33e6-4cb3-8acf-b40e7b9bac04,e6fe6a65-33e6-4cb3-8acf-b40e7b9bac04,0,1,c4492ecd-293c-4688-8198-04391c57f312,c4492ecd-293c-4688-8198-04391c57f312,0,1,268afd29-0e5f-4220-ab29-071f3072dbeb,268afd29-0e5f-4220-ab29-071f3072dbeb,0,1,f6d737ca-af33-4a13-b84e-cab2bf6e1f43,f6d737ca-af33-4a13-b84e-cab2bf6e1f43,0,1,b578b59d-8c86-4494-b27d-db976b0f3d8a,b578b59d-8c86-4494-b27d-db976b0f3d8a,0,1,eeba912a-3676-4528-b216-2b8630ab19c9,eeba912a-3676-4528-b216-2b8630ab19c9,0,1,47ed2f49-e4f2-4058-9ac5-cb3c826e92d8,47ed2f49-e4f2-4058-9ac5-cb3c826e92d8,0,1,471c7746-c607-481e-aaac-659dcbe54d8b,471c7746-c607-481e-aaac-659dcbe54d8b,0,1,3251cc7f-6b61-4814-b7ce-91564128d604,3251cc7f-6b61-4814-b7ce-91564128d604,0,1,185661aa-0553-4a27-b021-a0d96fba92fd,185661aa-0553-4a27-b021-a0d96fba92fd,0,1,59624fa6-74f6-4a5f-86e3-a27018683e6e,59624fa6-74f6-4a5f-86e3-a27018683e6e,0,1,71fa1a55-cf35-4442-bcd5-fdc4f191ae51,71fa1a55-cf35-4442-bcd5-fdc4f191ae51,0,1,93e30c61-c9a1-41a5-b682-23f4d0085a38,93e30c61-c9a1-41a5-b682-23f4d0085a38,0,1,8336cc18-5d3e-477f-9245-17e7e7f0566a,8336cc18-5d3e-477f-9245-17e7e7f0566a,0,1,213219df-49d8-447e-b7f3-fba356b9d461,213219df-49d8-447e-b7f3-fba356b9d461,0,1,b443585d-f129-4ac6-a64c-4c37b1b4385b,b443585d-f129-4ac6-a64c-4c37b1b4385b,0,1,ec1877db-8c03-45a4-a15c-a4de8ae3e86c,ec1877db-8c03-45a4-a15c-a4de8ae3e86c,0,1,e7ef29f9-dfff-402e-b49b-e006b9828519,e7ef29f9-dfff-402e-b49b-e006b9828519,0,1,bfb0be49-5f5c-4ef3-a011-8f8645aa981a,bfb0be49-5f5c-4ef3-a011-8f8645aa981a,0,1,d50613ad-c527-4583-8855-a4bd39c33360,d50613ad-c527-4583-8855-a4bd39c33360,0,1,aaa351b7-475e-4835-a5c5-23f86da8ea51,aaa351b7-475e-4835-a5c5-23f86da8ea51,0,1,5260c027-de8c-4612-9022-d9b492e913c9,5260c027-de8c-4612-9022-d9b492e913c9,0,1,6945660a-84cb-4546-ad3c-b5eda36c7fa6,6945660a-84cb-4546-ad3c-b5eda36c7fa6,0,1,899be218-80f5-46ed-bccf-f9437c91e00b,899be218-80f5-46ed-bccf-f9437c91e00b,0,1,67ff40c2-0954-4187-9eba-bf6360fa3620,67ff40c2-0954-4187-9eba-bf6360fa3620,0,1,19bb53e4-f7c7-475e-9d07-ebc067d62635,19bb53e4-f7c7-475e-9d07-ebc067d62635,0,1,8ed415c6-f93b-45e4-be06-7490d60b91f1,8ed415c6-f93b-45e4-be06-7490d60b91f1,0,1,bd00e705-e1cd-4c50-89e5-4c3391e46e16,bd00e705-e1cd-4c50-89e5-4c3391e46e16,0,1,3dffb8c9-91f0-4527-baa7-06db41d80b46,3dffb8c9-91f0-4527-baa7-06db41d80b46,0,1,ad842d01-80b8-4ebf-9ac3-5d628ec4e321,ad842d01-80b8-4ebf-9ac3-5d628ec4e321,0,1,af5008bb-427d-4cd5-b9e4-8aae24f725ab,af5008bb-427d-4cd5-b9e4-8aae24f725ab,0,1,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,0,1,83ae9b22-20ff-4e94-9282-19daf2274328,83ae9b22-20ff-4e94-9282-19daf2274328,0,1,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,0,1,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,0,1,16aafed9-ac0d-424f-93e5-01d77dcb7796,16aafed9-ac0d-424f-93e5-01d77dcb7796,0,1,ae5d7329-4cdb-4d11-ab00-4dc62133941e,ae5d7329-4cdb-4d11-ab00-4dc62133941e,0,1,52b39a5b-6a9d-4341-a040-3eae413b3f9d,52b39a5b-6a9d-4341-a040-3eae413b3f9d,0,1,15372e48-d5ed-4f13-ad1c-539fad0f9b28,15372e48-d5ed-4f13-ad1c-539fad0f9b28,0,1,19f690a3-d27b-43c1-94b7-585fc628da05,19f690a3-d27b-43c1-94b7-585fc628da05,0,1,d375fac5-098c-42b5-a0bd-9a4ae7516ada,d375fac5-098c-42b5-a0bd-9a4ae7516ada,0,1,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,0,1,162137ef-dea2-4ace-9e67-897dad0e7c3d,162137ef-dea2-4ace-9e67-897dad0e7c3d,0,1,012fb2f1-1c15-4800-8968-78a90c2a1348,012fb2f1-1c15-4800-8968-78a90c2a1348,0,1,436162a0-263f-4126-aa3a-7508505cc4a8,436162a0-263f-4126-aa3a-7508505cc4a8,0,1,9e4fbc61-8736-435d-bdd4-eb3bbaa14b92,9e4fbc61-8736-435d-bdd4-eb3bbaa14b92,0,1,0b750d40-1ee5-414c-b8a5-244c666787ae,0b750d40-1ee5-414c-b8a5-244c666787ae,0,1,aec8f9e6-d177-45f5-ba55-2d662428c2ae,aec8f9e6-d177-45f5-ba55-2d662428c2ae,0,1,7dfdd08b-7cd9-480c-829d-97f5e7152eec,7dfdd08b-7cd9-480c-829d-97f5e7152eec,0,1,0ff797f5-007d-4379-aa14-5d3f5babeb84,0ff797f5-007d-4379-aa14-5d3f5babeb84,0,1,767176d4-4fe9-4de5-9246-59b7fec09c53,767176d4-4fe9-4de5-9246-59b7fec09c53,0,1,64752b64-80ae-4537-986a-d61423dc546b,64752b64-80ae-4537-986a-d61423dc546b,0,1,8e587969-0263-4789-a501-a6c2e102f88e,8e587969-0263-4789-a501-a6c2e102f88e,0,1,f26bfc01-7d8a-43a7-b869-c2deb18218e5,f26bfc01-7d8a-43a7-b869-c2deb18218e5,0,1,8c72a0b2-20cb-43ff-b010-25256aa8011d,8c72a0b2-20cb-43ff-b010-25256aa8011d,0,1,a913b023-0ec5-4c60-880d-2f8ddad2d5ce,a913b023-0ec5-4c60-880d-2f8ddad2d5ce,0,1,b0bf8af5-d824-459c-bc40-17495406af3c,b0bf8af5-d824-459c-bc40-17495406af3c,0,1,2c37e123-ea35-4501-93e1-2fa295444bec,2c37e123-ea35-4501-93e1-2fa295444bec,0,1,afe96dc2-7840-4010-a7d4-1eeac36f0fd3,afe96dc2-7840-4010-a7d4-1eeac36f0fd3,0,1,02ec2b85-3cc8-45bb-911f-c5f7c8668fd5,02ec2b85-3cc8-45bb-911f-c5f7c8668fd5,0,1,a997a430-3ea8-4fde-9f53-7b507a04c215,a997a430-3ea8-4fde-9f53-7b507a04c215,0,1,f648e19d-026b-4fa7-8e70-1866b27b94f8,f648e19d-026b-4fa7-8e70-1866b27b94f8,0,1,a3b47ee8-b7b9-4bdf-afa8-025447ea9d5b,a3b47ee8-b7b9-4bdf-afa8-025447ea9d5b,0,1,36475bf5-5da6-48ad-8077-4de4426f7e10,36475bf5-5da6-48ad-8077-4de4426f7e10,0,1,d32081fc-47d3-4e66-837e-705c94ba8ca8,d32081fc-47d3-4e66-837e-705c94ba8ca8,0,1,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,0,1,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,0,1,ecbe625a-55eb-437a-8dee-33fb034d4c0d,ecbe625a-55eb-437a-8dee-33fb034d4c0d,0,1,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,0,1,84796b00-79db-42ba-94d0-5bf543e09cd6,84796b00-79db-42ba-94d0-5bf543e09cd6,0,1,e85695f1-ec94-42ce-8f80-2bda4c90685b,e85695f1-ec94-42ce-8f80-2bda4c90685b,0,1,6f08cc54-d4b1-4c6f-96dc-e0b6891c81b6,6f08cc54-d4b1-4c6f-96dc-e0b6891c81b6,0,1,948b10b3-0d7c-4dca-8816-75eb86e7881b,948b10b3-0d7c-4dca-8816-75eb86e7881b,0,1,9de91b5a-98e4-414b-b650-b669b0159b49,9de91b5a-98e4-414b-b650-b669b0159b49,0,1,840dc727-288a-4bf2-8b1a-47629d28229c,840dc727-288a-4bf2-8b1a-47629d28229c,0,1,314ac8ca-8845-40c2-b844-91beb05fb601,314ac8ca-8845-40c2-b844-91beb05fb601,0,1,db15717d-1b6a-42fd-9b8f-959e1d5841e9,db15717d-1b6a-42fd-9b8f-959e1d5841e9,0,1,3de3948d-40ff-4e0d-8445-9bf49c916161,3de3948d-40ff-4e0d-8445-9bf49c916161,0,1,37ae1946-9436-47ef-8b8c-17ed0a24971c,37ae1946-9436-47ef-8b8c-17ed0a24971c,0,1,0d3cd7ca-089f-4858-a4a6-0ed373aa77bf,0d3cd7ca-089f-4858-a4a6-0ed373aa77bf,0,1,d844d861-fbe9-4391-89e3-00e505b33b33,d844d861-fbe9-4391-89e3-00e505b33b33,0,1,495ddb5f-f75d-46c9-b134-e925c814b890,495ddb5f-f75d-46c9-b134-e925c814b890,0,1,fb6f92a6-fc56-48d4-b7ad-b4daaea79fe2,fb6f92a6-fc56-48d4-b7ad-b4daaea79fe2,0,1,0a4ded35-1cfa-4e53-91c7-139ee0b94ade,0a4ded35-1cfa-4e53-91c7-139ee0b94ade,0,1,c0688817-fd73-4ead-b9dd-ec966780a2c2,c0688817-fd73-4ead-b9dd-ec966780a2c2,0,1,b1fbfbfe-766f-4018-9491-507748193808,b1fbfbfe-766f-4018-9491-507748193808,0,1,65d9f3a7-6258-49f3-8252-0a60e2735ff3,65d9f3a7-6258-49f3-8252-0a60e2735ff3,0,1,a0ba7e86-b894-4a63-8687-bb2a840fe1ab,a0ba7e86-b894-4a63-8687-bb2a840fe1ab,0,1,e55dfadb-8e12-4808-ad90-e891a4644548,e55dfadb-8e12-4808-ad90-e891a4644548,0,1,a1155588-882f-430d-85a6-19558b5b7256,a1155588-882f-430d-85a6-19558b5b7256,0,1,a792b3dc-ac80-492b-bd94-83eb0438ba9f,a792b3dc-ac80-492b-bd94-83eb0438ba9f,0,1,73a093ea-1927-483b-b6f5-8f0cbd253753,73a093ea-1927-483b-b6f5-8f0cbd253753,0,1,345f04c0-0274-4e79-b523-f1fa3cf0d92a,345f04c0-0274-4e79-b523-f1fa3cf0d92a,0,1,f3a14787-de1b-4b65-8cb1-bc33a785821c,f3a14787-de1b-4b65-8cb1-bc33a785821c,0,1,b9ba3ce3-9059-4135-9d31-725f01907431,b9ba3ce3-9059-4135-9d31-725f01907431,0,1,f637a14d-08ed-4c62-a873-ca36cdcd1e88,f637a14d-08ed-4c62-a873-ca36cdcd1e88,0,1,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,0,1,4d2b3767-7c96-44a6-bb1b-ab74b103b90e,4d2b3767-7c96-44a6-bb1b-ab74b103b90e,0,1,fc9fc58f-c888-41f0-9f57-70748b21706e,fc9fc58f-c888-41f0-9f57-70748b21706e,0,1,fc761833-aa85-4c6d-a36c-d1ed060e3bb1,fc761833-aa85-4c6d-a36c-d1ed060e3bb1,0,1,f0ba2ff2-b353-4f84-8e45-23e47ee6c1b6,f0ba2ff2-b353-4f84-8e45-23e47ee6c1b6,0,1,bb8bade2-5c1b-49a6-b66f-79a3ebff86f7,bb8bade2-5c1b-49a6-b66f-79a3ebff86f7,0,1,33596560-3d45-4d3e-b6ec-1c22162110ad,33596560-3d45-4d3e-b6ec-1c22162110ad,0,1,d3e82a06-daae-4f4d-b3f8-45a406e31664,d3e82a06-daae-4f4d-b3f8-45a406e31664,0,1,af76c3c9-d8dc-4156-9e10-80ee02fcf4fe,af76c3c9-d8dc-4156-9e10-80ee02fcf4fe,0,1,ac6a184d-1247-4b54-a023-f0d16daa5fe9,ac6a184d-1247-4b54-a023-f0d16daa5fe9,0,1,f9af5fe6-0b4f-4d48-92a4-1f2a29972155,f9af5fe6-0b4f-4d48-92a4-1f2a29972155,0,1,3ca1682d-5ff5-4b2b-96c2-54d2dd5297a9,3ca1682d-5ff5-4b2b-96c2-54d2dd5297a9,0,1,a687d346-73cf-4aea-a4d0-f29824f0f6f1,a687d346-73cf-4aea-a4d0-f29824f0f6f1,0,1,f51fda72-56d9-4b45-a775-a0e1dfbf3a27,f51fda72-56d9-4b45-a775-a0e1dfbf3a27,0,1,8bf73614-81a4-4702-88b9-3c6f2594d204,8bf73614-81a4-4702-88b9-3c6f2594d204,0,1,b8d4410b-f626-41b8-87c8-67102256bae2,b8d4410b-f626-41b8-87c8-67102256bae2,0,1,484eeb5f-12af-4139-a081-4dcac067a712,484eeb5f-12af-4139-a081-4dcac067a712,0,1,73b27233-e7ce-4386-a182-fc934df0e9a0,73b27233-e7ce-4386-a182-fc934df0e9a0,0,1,39fce130-be22-42d9-8bcd-b162ae00fc7a,39fce130-be22-42d9-8bcd-b162ae00fc7a,0,1,0c444045-302b-4dbd-a9a3-81fd40004948,0c444045-302b-4dbd-a9a3-81fd40004948,0,1,2f3bdc3c-4c5d-4fcb-85bb-932fe1747d98,2f3bdc3c-4c5d-4fcb-85bb-932fe1747d98,0,1,16099d54-e84f-47c5-aaf3-f8ced3cba5e0,16099d54-e84f-47c5-aaf3-f8ced3cba5e0,0,1,1528b799-1c0f-4244-85e8-e738b827934a,1528b799-1c0f-4244-85e8-e738b827934a,0,1,45d79e4d-8c2a-432b-abb8-fb9046abea40,45d79e4d-8c2a-432b-abb8-fb9046abea40,0,1,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,0,1,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,0,1,256618cc-0956-4cda-9691-e4ced68a791f,256618cc-0956-4cda-9691-e4ced68a791f,0,1,f54fde64-ca9e-49cc-8dc9-59ecaf4625a8,f54fde64-ca9e-49cc-8dc9-59ecaf4625a8,0,1,667de710-cee5-4a97-8434-641d199f3b68,667de710-cee5-4a97-8434-641d199f3b68,0,1,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,0,1,f6e85eeb-d81b-4526-9a33-ab77bd447236,f6e85eeb-d81b-4526-9a33-ab77bd447236,0,1,470e37fe-d149-4007-b397-12fc84f93041,470e37fe-d149-4007-b397-12fc84f93041,0,1,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,0,1,6c205eae-9113-46c1-a245-25d29173646e,6c205eae-9113-46c1-a245-25d29173646e,0,1,6da034af-0481-4a3c-aff9-c50ced6f21d4,6da034af-0481-4a3c-aff9-c50ced6f21d4,0,1,6fe57ea6-fe5e-48b1-bb31-5d42e4c2c6c7,6fe57ea6-fe5e-48b1-bb31-5d42e4c2c6c7,0,1,d07016c8-7d97-42cd-865b-85b49075adfb,d07016c8-7d97-42cd-865b-85b49075adfb,0,1,9202335d-50bb-4282-9438-24c7fb9cf637,9202335d-50bb-4282-9438-24c7fb9cf637,0,1,a62906e5-27f8-4e72-8769-9a3eed6997d7,a62906e5-27f8-4e72-8769-9a3eed6997d7,0,1,6c5d0ac3-6086-434c-812b-1c1158ecc574,6c5d0ac3-6086-434c-812b-1c1158ecc574,0,1,783536d7-c0db-44c9-96e8-58b57804d7c8,783536d7-c0db-44c9-96e8-58b57804d7c8,0,1,a8295435-c2c4-4aff-874b-7412556aa76d,a8295435-c2c4-4aff-874b-7412556aa76d,0,1,f6c4e24b-172b-4ba3-8e3e-988306ade660,f6c4e24b-172b-4ba3-8e3e-988306ade660,0,1,60cd2f20-17cf-4132-b08e-87cf429704b7,60cd2f20-17cf-4132-b08e-87cf429704b7,0,1,9baab24c-a5a3-46f4-ad17-a28d4a49f851,9baab24c-a5a3-46f4-ad17-a28d4a49f851,0,1,d1952319-0e42-4684-a386-fbe7c24526c2,d1952319-0e42-4684-a386-fbe7c24526c2,0,1,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,0,1,83b47a9d-d44b-4c40-becd-df74f9cb2e91,83b47a9d-d44b-4c40-becd-df74f9cb2e91,0,1,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,0,1,86e2a2eb-160f-4e93-a449-b2f726286d1b,86e2a2eb-160f-4e93-a449-b2f726286d1b,0,1,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,0,1,364184c2-ec71-44be-b40c-ba719b4ab0e1,364184c2-ec71-44be-b40c-ba719b4ab0e1,0,1,7ef46c54-ec0c-4211-a750-e5949956b593,7ef46c54-ec0c-4211-a750-e5949956b593,0,1,04823681-875e-459a-b3cf-051c89527f38,04823681-875e-459a-b3cf-051c89527f38,0,1,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,0,1,38265f08-3301-40d1-b630-a319c983e826,38265f08-3301-40d1-b630-a319c983e826,0,1,5175c496-bac7-4c57-9628-793b727aecd0,5175c496-bac7-4c57-9628-793b727aecd0,0,1,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,0,1,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,0,1,6d002aef-00c9-4069-80df-153151218831,6d002aef-00c9-4069-80df-153151218831,0,1,4fec3a6c-5a99-4763-aa07-d5de8712559e,4fec3a6c-5a99-4763-aa07-d5de8712559e,0,1,968a1202-d271-43e0-bfd4-d38e49ceadd4,968a1202-d271-43e0-bfd4-d38e49ceadd4,0,1,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,0,1,ea61e442-273e-4ce4-a806-8090893729ba,ea61e442-273e-4ce4-a806-8090893729ba,0,1,e7100f2b-d169-4635-ab87-7a2225ff12ee,e7100f2b-d169-4635-ab87-7a2225ff12ee,0,1,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,0,1,4840753b-e2e1-4e67-b35f-2f5eab7754f5,4840753b-e2e1-4e67-b35f-2f5eab7754f5,0,1,3bb83275-7a0e-420f-8c6b-028038f11a8c,3bb83275-7a0e-420f-8c6b-028038f11a8c,0,1,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,0,1,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,0,1,5d726fa3-bde0-4d97-a577-415857bbb5c1,5d726fa3-bde0-4d97-a577-415857bbb5c1,0,1,1b232a57-2833-42c6-b318-38dae2af1ab2,1b232a57-2833-42c6-b318-38dae2af1ab2,0,1,90359488-ce77-4d04-b848-a651d0387f8b,90359488-ce77-4d04-b848-a651d0387f8b,0,1,eb69c41a-392d-43bb-9b67-a0adcb651b1e,eb69c41a-392d-43bb-9b67-a0adcb651b1e,0,1,0b7f8e05-bb34-47cc-9775-04362e814316,0b7f8e05-bb34-47cc-9775-04362e814316,0,1,e71e0297-3709-4247-933e-18a6350cbf39,e71e0297-3709-4247-933e-18a6350cbf39,0,1,df6417d1-c722-4a87-a543-5d2c31795b20,df6417d1-c722-4a87-a543-5d2c31795b20,0,1,526a85c9-3a8d-4044-adb9-fd0689c70601,526a85c9-3a8d-4044-adb9-fd0689c70601,0,1,7637844b-4059-4f8a-8436-b4f4e8cb4f74,7637844b-4059-4f8a-8436-b4f4e8cb4f74,0,1,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,0,1,0ee5b788-61dc-464b-86da-f985df7704b6,0ee5b788-61dc-464b-86da-f985df7704b6,0,1,2375c6a8-9799-4b7c-a48d-091a90c67693,2375c6a8-9799-4b7c-a48d-091a90c67693,0,1,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,0,1,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,0,1,63c6522f-be04-422a-b4f4-0f55f58b09a8,63c6522f-be04-422a-b4f4-0f55f58b09a8,0,1,be919dc1-a377-43e1-82e6-ce946cabdd55,be919dc1-a377-43e1-82e6-ce946cabdd55,0,1,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,0,1,9ded532e-9e60-4895-a4c5-4ea6697aa83c,9ded532e-9e60-4895-a4c5-4ea6697aa83c,0,1,106c5159-ffc7-4059-b3e3-acf74326a44f,106c5159-ffc7-4059-b3e3-acf74326a44f,0,1,d39fd717-1a69-4fd3-889e-4fa9abefea1c,d39fd717-1a69-4fd3-889e-4fa9abefea1c,0,1,93b01c88-48a2-4753-b443-0e9892395a8f,93b01c88-48a2-4753-b443-0e9892395a8f,0,1,5a470575-e012-42ad-9ad7-53930a8e843f,5a470575-e012-42ad-9ad7-53930a8e843f,0,1,5872d4ed-6503-422d-bcf9-63a8df3e777d,5872d4ed-6503-422d-bcf9-63a8df3e777d,0,1,e21cda29-2579-485e-a207-20b76f719c80,e21cda29-2579-485e-a207-20b76f719c80,0,1,add0b22d-ff5a-41f7-88a1-ef34880e50c9,add0b22d-ff5a-41f7-88a1-ef34880e50c9,0,1,239601eb-e8de-4d58-a32a-01ee52f6e698,239601eb-e8de-4d58-a32a-01ee52f6e698,0,1,11370667-bec5-4a2d-8aa1-97f4d795718f,11370667-bec5-4a2d-8aa1-97f4d795718f,0,1,2032162d-fbb5-4e6a-be72-cda79869b9ff,2032162d-fbb5-4e6a-be72-cda79869b9ff,0,1,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,0,1,707e64f3-ad8b-470a-aa4f-57fddecc2159,707e64f3-ad8b-470a-aa4f-57fddecc2159,0,1,682da7d7-6e27-4133-90fc-a445c156f908,682da7d7-6e27-4133-90fc-a445c156f908,0,1,64751704-f39d-4859-adc6-8168897d6aec,64751704-f39d-4859-adc6-8168897d6aec,0,1,10543f9a-4e3f-427a-b36a-9c66709dd6fb,10543f9a-4e3f-427a-b36a-9c66709dd6fb,0,1,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,0,1,96ab5424-7be1-416d-b74d-d0c815726b1f,96ab5424-7be1-416d-b74d-d0c815726b1f,0,1,3714e794-ddef-4ad9-a933-6130bbc84545,3714e794-ddef-4ad9-a933-6130bbc84545,0,1,f0dca5f2-1479-42bf-b895-9abd345522f5,f0dca5f2-1479-42bf-b895-9abd345522f5,0,1,8eaa91e0-88d9-4e4e-b2d6-752696bafadf,8eaa91e0-88d9-4e4e-b2d6-752696bafadf,0,1,93d6dda2-dd7c-42d1-b9bc-284929931585,93d6dda2-dd7c-42d1-b9bc-284929931585,0,1,282b089c-7411-40d6-9a0a-ceaf6abb5586,282b089c-7411-40d6-9a0a-ceaf6abb5586,0,1,abc44046-a839-4c4a-8161-ecba29abc27d,abc44046-a839-4c4a-8161-ecba29abc27d,0,1,678188aa-76e7-49bc-a4be-1c55ccd625b1,678188aa-76e7-49bc-a4be-1c55ccd625b1,0,1,12dd81dd-31f5-47f2-a163-ea6c670299c5,12dd81dd-31f5-47f2-a163-ea6c670299c5,0,1,1b9e77bf-639a-4e81-a0fd-4f2bd66feeba,1b9e77bf-639a-4e81-a0fd-4f2bd66feeba,0,1,8238c710-09ff-473e-b0ed-40b31bfccab8,8238c710-09ff-473e-b0ed-40b31bfccab8,0,1,fe59f9ba-11e3-41ba-ac6f-4b4e3dbf35ae,fe59f9ba-11e3-41ba-ac6f-4b4e3dbf35ae,0,1,15845f89-0f9e-4a93-b7e8-ef101694b1b8,15845f89-0f9e-4a93-b7e8-ef101694b1b8,0,1,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,0,1,60f8daf5-06c2-4db6-8fea-5cbb72130113,60f8daf5-06c2-4db6-8fea-5cbb72130113,0,1,e389b86a-7a48-4b31-b5cb-27b3d7dfed82,e389b86a-7a48-4b31-b5cb-27b3d7dfed82,0,1,91e7c98e-fadf-4c08-bd76-1e4e4d140265,91e7c98e-fadf-4c08-bd76-1e4e4d140265,0,1,b3415b4a-d8de-4536-aa4b-82e75fd986ee,b3415b4a-d8de-4536-aa4b-82e75fd986ee,0,1,8247a93d-c2d3-4c9b-a442-619240d35113,8247a93d-c2d3-4c9b-a442-619240d35113,0,1,acc996ab-672a-4602-b7ad-8eee83557e61,acc996ab-672a-4602-b7ad-8eee83557e61,0,1,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,0,1,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,0,1,97745768-ed35-44f1-beba-abb8b28a29ae,97745768-ed35-44f1-beba-abb8b28a29ae,0,1,69364942-bcd1-4b06-9b57-fa59b4e7c552,69364942-bcd1-4b06-9b57-fa59b4e7c552,0,1,ab201c5f-4134-42cf-a528-c1c4df02f2d7,ab201c5f-4134-42cf-a528-c1c4df02f2d7,0,1,303fb7b5-6a23-40ea-ae12-b54f4ebae026,303fb7b5-6a23-40ea-ae12-b54f4ebae026,0,1,634cd26b-78f1-4446-8aad-b96ed16e5329,634cd26b-78f1-4446-8aad-b96ed16e5329,0,1,d8e62f1a-92ca-4971-9609-e79da798c083,d8e62f1a-92ca-4971-9609-e79da798c083,0,1,32012b27-1b43-49be-b9af-df0c877e7a4c,32012b27-1b43-49be-b9af-df0c877e7a4c,0,1,e97d5152-9e58-4a91-a691-b4d358f1c89d,e97d5152-9e58-4a91-a691-b4d358f1c89d,0,1,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,0,1,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,0,1,296c478b-4103-46cb-9d14-97f59034ffd4,296c478b-4103-46cb-9d14-97f59034ffd4,0,1,fb918a68-f86d-46c0-9078-61d2b32b5aef,fb918a68-f86d-46c0-9078-61d2b32b5aef,0,1,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,0,1,1ddfc773-4f3c-4764-978e-585aab4666de,1ddfc773-4f3c-4764-978e-585aab4666de,0,1,e424d122-1dbb-4545-975c-177997129f2e,e424d122-1dbb-4545-975c-177997129f2e,0,1,c83bc626-dfdd-4451-92b0-b53eed40f534,c83bc626-dfdd-4451-92b0-b53eed40f534,0,1,7b9b1d11-4f78-4113-8fca-1a3a30953aef,7b9b1d11-4f78-4113-8fca-1a3a30953aef,0,1,7f84cb85-c3e4-4b53-b829-3b1e216f978a,7f84cb85-c3e4-4b53-b829-3b1e216f978a,0,1,7e621ecc-7d2b-42bf-a502-f8e59de56b63,7e621ecc-7d2b-42bf-a502-f8e59de56b63,0,1,798fd445-d02e-4e97-890a-0283f33317cf,798fd445-d02e-4e97-890a-0283f33317cf,0,1,095583ca-010d-43ad-8c7a-8938fa4cb761,095583ca-010d-43ad-8c7a-8938fa4cb761,0,1,178d210c-e847-4805-a8d4-31acdf4983af,178d210c-e847-4805-a8d4-31acdf4983af,0,1,aa214d9f-23b1-4996-8a43-9010dceeb53d,aa214d9f-23b1-4996-8a43-9010dceeb53d,0,1,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,0,1,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,0,1,d9d103bd-1dd6-48a9-8869-6c8485705393,d9d103bd-1dd6-48a9-8869-6c8485705393,0,1,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,0,1,ff0e8487-bdbf-4b21-877e-00008c81bc09,ff0e8487-bdbf-4b21-877e-00008c81bc09,0,1,39c9f8ac-56a0-4057-8359-7228bf97184a,39c9f8ac-56a0-4057-8359-7228bf97184a,0,1,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,0,1,2c0dd892-1d3e-4497-850b-080bdb9c59d8,2c0dd892-1d3e-4497-850b-080bdb9c59d8,0,1,3b727d49-c9ed-4d9e-af61-c13b9a170c75,3b727d49-c9ed-4d9e-af61-c13b9a170c75,0,1,1b264744-bdcd-4c5c-932b-0ac4b990dd78,1b264744-bdcd-4c5c-932b-0ac4b990dd78,0,1,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,0,1,37bde288-8e02-4127-bd80-de8ae7590a14,37bde288-8e02-4127-bd80-de8ae7590a14,0,1,a9b8e517-78cd-4428-b2fc-9e16af0069d7,a9b8e517-78cd-4428-b2fc-9e16af0069d7,0,1,5c592024-c009-4674-bbb8-283669e673ef,5c592024-c009-4674-bbb8-283669e673ef,0,1,e76f16b9-77a0-4033-90d0-6e04e4494747,e76f16b9-77a0-4033-90d0-6e04e4494747,0,1,cfb221fc-8639-4e15-9a78-f7837d657a99,cfb221fc-8639-4e15-9a78-f7837d657a99,0,1,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,0,1,022147c1-1ebe-4c8d-b367-4c47115b101d,022147c1-1ebe-4c8d-b367-4c47115b101d,0,1,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,0,1,fca6b230-a38e-4791-9cc5-3d215f79dc6f,fca6b230-a38e-4791-9cc5-3d215f79dc6f,0,1,04e87de4-940a-4533-8c81-8f145b201dc0,04e87de4-940a-4533-8c81-8f145b201dc0,0,1,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,0,1,fa488af9-a5ec-47d8-8661-fa5058a60a6b,fa488af9-a5ec-47d8-8661-fa5058a60a6b,0,1,97cc84c6-3565-474c-a028-83acb5390446,97cc84c6-3565-474c-a028-83acb5390446,0,1,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,0,1,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,0,1,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,0,1,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,0,1,b366d7eb-626c-4c0c-b4cc-c392763e6e94,b366d7eb-626c-4c0c-b4cc-c392763e6e94,0,1,4c7e24aa-726a-4595-82ad-ef1e525b14fa,4c7e24aa-726a-4595-82ad-ef1e525b14fa,0,1,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,0,1,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,0,1,e849e46c-2ce6-427b-92bc-06d7997f59bf,e849e46c-2ce6-427b-92bc-06d7997f59bf,0,1,5a971dc0-28bf-4426-9426-9f456aea080a,5a971dc0-28bf-4426-9426-9f456aea080a,0,1,1e7684f0-1b3b-4a32-8602-dd0672c5a800,1e7684f0-1b3b-4a32-8602-dd0672c5a800,0,1,ab178a93-8570-43b6-ae42-f34a7cc4f359,ab178a93-8570-43b6-ae42-f34a7cc4f359,0,1,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,0,1,168e3189-2676-4cdb-bc9d-78d85df51faf,168e3189-2676-4cdb-bc9d-78d85df51faf,0,1,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,0,1,470bbff8-20d0-475c-a61a-1a09ac14c2db,470bbff8-20d0-475c-a61a-1a09ac14c2db,0,1,c37a660e-16c5-495e-9486-e61bcb693fa0,c37a660e-16c5-495e-9486-e61bcb693fa0,0,1,8f44ebad-1160-474e-a566-fb9da55ffcba,8f44ebad-1160-474e-a566-fb9da55ffcba,0,1,11cf336e-7890-4972-bf71-32d7416ff647,11cf336e-7890-4972-bf71-32d7416ff647,0,1,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,0,1,14bd3392-36cd-4ed0-8847-44375d6fb861,14bd3392-36cd-4ed0-8847-44375d6fb861,0,1,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,0,1,821b93bd-f0dd-4468-972a-d9b2b4de72f1,821b93bd-f0dd-4468-972a-d9b2b4de72f1,0,1,56900066-90e3-40c0-b64a-8f7964a4dfc1,56900066-90e3-40c0-b64a-8f7964a4dfc1,0,1,56f0c4d6-9b13-486a-9586-05e657dca8be,56f0c4d6-9b13-486a-9586-05e657dca8be,0,1,c795c0d3-6a0d-4311-9821-df320663727e,c795c0d3-6a0d-4311-9821-df320663727e,0,1,512b8d89-8798-4549-9e79-b9c3f7d9098f,512b8d89-8798-4549-9e79-b9c3f7d9098f,0,1,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,0,1,7f356abf-9045-4a76-89f3-8b52d467122a,7f356abf-9045-4a76-89f3-8b52d467122a,0,1,625a61ac-4ad0-4b31-aa67-9f864154b9c4,625a61ac-4ad0-4b31-aa67-9f864154b9c4,0,1,51fa8d01-44a1-4e75-9b04-6a2504972f08,51fa8d01-44a1-4e75-9b04-6a2504972f08,0,1,7dca913d-e37a-4740-8e3d-677d379605ee,7dca913d-e37a-4740-8e3d-677d379605ee,0,1,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,0,1,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,0,1,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,0,1,4cd4694f-17f8-43ba-8940-07628bd937fe,4cd4694f-17f8-43ba-8940-07628bd937fe,0,1,7df6c94b-3cfe-4764-988e-858d733e35d9,7df6c94b-3cfe-4764-988e-858d733e35d9,0,1,8b251c7d-2d55-4734-a1da-7f1115d95080,8b251c7d-2d55-4734-a1da-7f1115d95080,0,1,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,0,1,5a8c3621-595a-4168-8bba-a7f8d499e47e,5a8c3621-595a-4168-8bba-a7f8d499e47e,0,1,fc4cfed6-e492-4420-b357-8143a8c2a41a,fc4cfed6-e492-4420-b357-8143a8c2a41a,0,1,4311a250-64af-443e-a711-93b7c41175cf,4311a250-64af-443e-a711-93b7c41175cf,0,1,804b6c57-1d7b-4927-be5b-84b7959fe55e,804b6c57-1d7b-4927-be5b-84b7959fe55e,0,1,f2655d85-79ea-4736-8f41-94a4f9b2b998,f2655d85-79ea-4736-8f41-94a4f9b2b998,0,1,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,0,1,a8eb5ed9-df99-405b-afad-eeaa98956eee,a8eb5ed9-df99-405b-afad-eeaa98956eee,0,1,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,0,1,26a1279f-91f0-4632-ad7c-21cf2f524208,26a1279f-91f0-4632-ad7c-21cf2f524208,0,1,bf751ed0-ee47-4eaf-81bd-f0da00bef343,bf751ed0-ee47-4eaf-81bd-f0da00bef343,0,1,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,0,1,1f1def7c-e0ee-4963-afea-1751bf1b812c,1f1def7c-e0ee-4963-afea-1751bf1b812c,0,1,9a4c0898-ab56-425c-8191-5ab90f4e12bf,9a4c0898-ab56-425c-8191-5ab90f4e12bf,0,1,6841ec47-7a84-441a-b975-69d089072ce7,6841ec47-7a84-441a-b975-69d089072ce7,0,1,ead4001a-0d8a-4b95-8212-2a40e5aa6659,ead4001a-0d8a-4b95-8212-2a40e5aa6659,0,1,22165c8a-2179-4cd5-b195-bd2721e9e232,22165c8a-2179-4cd5-b195-bd2721e9e232,0,1,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,0,1,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,0,1,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,0,1,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,0,1,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,0,1,9d9debfd-4a10-4f09-9d09-2aa5e058b525,9d9debfd-4a10-4f09-9d09-2aa5e058b525,0,1,fc19586c-d89c-495c-b473-6f85967ed48e,fc19586c-d89c-495c-b473-6f85967ed48e,0,1,2ac7c701-a281-4e77-a5f8-294526021e2d,2ac7c701-a281-4e77-a5f8-294526021e2d,0,1,979df549-889d-496a-b6ce-c56d54c771b5,979df549-889d-496a-b6ce-c56d54c771b5,0,1,91b320d8-3426-44d3-97d7-c200287d7343,91b320d8-3426-44d3-97d7-c200287d7343,0,1,b9297f72-b40a-4adb-9975-bb693d4834a4,b9297f72-b40a-4adb-9975-bb693d4834a4,0,1,41cf3916-216f-4c4e-a587-82777f4263e0,41cf3916-216f-4c4e-a587-82777f4263e0,0,1,2ce3a350-86f1-4275-8299-3c3693ca11fa,2ce3a350-86f1-4275-8299-3c3693ca11fa,0,1,59f0ed15-c84c-4f41-bdd4-26317e4e914d,59f0ed15-c84c-4f41-bdd4-26317e4e914d,0,1,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,0,1,8fef790c-a3f4-460c-9093-5065cbdba196,8fef790c-a3f4-460c-9093-5065cbdba196,0,1,79bd24d0-61a9-4558-90ac-4e726066789c,79bd24d0-61a9-4558-90ac-4e726066789c,0,1,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,0,1,ef356548-51a4-4b09-b37d-ede5b8f3edb6,ef356548-51a4-4b09-b37d-ede5b8f3edb6,0,1,53c0d900-5e96-4381-a1ed-4424a5799608,53c0d900-5e96-4381-a1ed-4424a5799608,0,1,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,0,1,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,0,1,45ca9e20-1246-4400-a019-ffb521af6ea7,45ca9e20-1246-4400-a019-ffb521af6ea7,0,1,73eed854-5c3a-4a10-9bfa-793fd517f303,73eed854-5c3a-4a10-9bfa-793fd517f303,0,1,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,0,1,9134dc40-a8f1-4c60-9431-27cb98be5ecd,9134dc40-a8f1-4c60-9431-27cb98be5ecd,0,1,16c4622a-33af-4a95-b44e-0861a6df21d2,16c4622a-33af-4a95-b44e-0861a6df21d2,0,1,d8cac67b-cce2-4a00-a8df-c6570c50153f,d8cac67b-cce2-4a00-a8df-c6570c50153f,0,1,37213c65-bf26-4e50-a2fa-58eb45439b58,37213c65-bf26-4e50-a2fa-58eb45439b58,0,1,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,0,1,b6b31892-73ee-4c9b-92b0-2735536c4938,b6b31892-73ee-4c9b-92b0-2735536c4938,0,1,deb8b883-142e-47d0-a722-7c734a0cf9b3,deb8b883-142e-47d0-a722-7c734a0cf9b3,0,1,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,0,1,29233058-ccb1-4110-a9bc-cdb4c531f35a,29233058-ccb1-4110-a9bc-cdb4c531f35a,0,1,cf3729b2-9ee6-437c-81df-83966793be50,cf3729b2-9ee6-437c-81df-83966793be50,0,1,429d08b7-0b98-4f9b-a053-d04dd84a7026,429d08b7-0b98-4f9b-a053-d04dd84a7026,0,1,b64fd964-cee8-4619-872f-82d2fdc14240,b64fd964-cee8-4619-872f-82d2fdc14240,0,1,5ce7846d-9806-40f5-8631-4e14deb8bc95,5ce7846d-9806-40f5-8631-4e14deb8bc95,0,1,79528a0e-1e48-4d14-bd28-756fd5db57b9,79528a0e-1e48-4d14-bd28-756fd5db57b9,0,1,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,0,1,d9426219-4b37-4776-8d5d-acab5825e789,d9426219-4b37-4776-8d5d-acab5825e789,0,1,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,0,1,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,0,1,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,0,1,29e7299a-ce80-497a-8102-615d0a001ea8,29e7299a-ce80-497a-8102-615d0a001ea8,0,1,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,0,1,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,0,1,adc2cc11-b647-453f-a98e-8a73b7c368c7,adc2cc11-b647-453f-a98e-8a73b7c368c7,0,1,506bf43b-f7df-4b42-b614-e5925b45b5e9,506bf43b-f7df-4b42-b614-e5925b45b5e9,0,1,58570514-a2cf-4e09-ba7a-d9efd8178269,58570514-a2cf-4e09-ba7a-d9efd8178269,0,1,c23aa057-42f4-4167-9224-693e904598c6,c23aa057-42f4-4167-9224-693e904598c6,0,1,e449f91b-58c3-4d4b-a9f0-6870539afff2,e449f91b-58c3-4d4b-a9f0-6870539afff2,0,1,2943b572-7411-4f92-a6cc-7ee552b85223,2943b572-7411-4f92-a6cc-7ee552b85223,0,1,28478e7a-e8aa-40aa-866c-a3624f903141,28478e7a-e8aa-40aa-866c-a3624f903141,0,1,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,0,1,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,0,1,dabb3395-6100-4f53-913d-e0230e81b494,dabb3395-6100-4f53-913d-e0230e81b494,0,1,e0a3fae1-1582-4c7a-acd8-870b558acec4,e0a3fae1-1582-4c7a-acd8-870b558acec4,0,1,f3750ea4-5f9e-4ab3-9495-3f182ecff407,f3750ea4-5f9e-4ab3-9495-3f182ecff407,0,1,337bd150-beaa-44e6-b336-359e23f8babe,337bd150-beaa-44e6-b336-359e23f8babe,0,1,8e755ce0-c571-4ed5-b0bb-9470edcb7c73,8e755ce0-c571-4ed5-b0bb-9470edcb7c73,0,1,02e1c293-7302-4751-a248-4bbeed9cbad5,02e1c293-7302-4751-a248-4bbeed9cbad5,0,1,3a111e0d-6466-46fd-95a2-1798b6e51ba0,3a111e0d-6466-46fd-95a2-1798b6e51ba0,0,1,645edcb0-e358-4d32-a9a9-9534af0398ca,645edcb0-e358-4d32-a9a9-9534af0398ca,0,1,efa1b4e5-d16c-4921-a48a-fe700e39dc71,efa1b4e5-d16c-4921-a48a-fe700e39dc71,0,1,e93402db-e7dd-465e-8c62-2a41efd811b8,e93402db-e7dd-465e-8c62-2a41efd811b8,0,1,e0157f72-a362-4b9f-a272-68ca8078b91c,e0157f72-a362-4b9f-a272-68ca8078b91c,0,1,422155c7-1640-48c4-bb21-36595b405c66,422155c7-1640-48c4-bb21-36595b405c66,0,1,16d37b5a-88db-4787-b2de-fb50da0ca94b,16d37b5a-88db-4787-b2de-fb50da0ca94b,0,1,f653bcbf-5659-4605-9bb9-3737f19e79dd,f653bcbf-5659-4605-9bb9-3737f19e79dd,0,1,8b980868-fe63-49ff-ba3d-4c29732e1b90,8b980868-fe63-49ff-ba3d-4c29732e1b90,0,1,54668731-4963-4ec3-b188-9feacaefa182,54668731-4963-4ec3-b188-9feacaefa182,0,1,29b2104b-fd02-4d51-951f-51ea213b8ebd,29b2104b-fd02-4d51-951f-51ea213b8ebd,0,1,a9362ac4-85ee-4214-80c1-048fab769885,a9362ac4-85ee-4214-80c1-048fab769885,0,1,ba5c945e-554f-45a2-a2de-3157b2d7e931,ba5c945e-554f-45a2-a2de-3157b2d7e931,0,1,f7085f33-f122-4443-a3f5-4e765300175e,f7085f33-f122-4443-a3f5-4e765300175e,0,1,b7e4c512-b856-4679-a025-5f0f28918593,b7e4c512-b856-4679-a025-5f0f28918593,0,1,bba56b8f-a3f3-4d3f-9804-f9569bb1f6f3,bba56b8f-a3f3-4d3f-9804-f9569bb1f6f3,0,1,cff7ba79-9418-43a4-badc-3e3cc2f6bd5b,cff7ba79-9418-43a4-badc-3e3cc2f6bd5b,0,1,a4e89d2a-d6f7-4966-ac3c-57f1ef1d1a3a,a4e89d2a-d6f7-4966-ac3c-57f1ef1d1a3a,0,1,20f1114a-0b98-464f-aed8-80ce706b808e,20f1114a-0b98-464f-aed8-80ce706b808e,0,1,988b05ae-987a-4433-b446-bcc7bf5d9ea4,988b05ae-987a-4433-b446-bcc7bf5d9ea4,0,1,07e3de4e-28d9-48dc-9253-a2c39c34f827,07e3de4e-28d9-48dc-9253-a2c39c34f827,0,1,12ab57d3-ba96-46e9-86ef-2f3ba76fd5cb,12ab57d3-ba96-46e9-86ef-2f3ba76fd5cb,0,1,c147916d-1fb6-473d-bde0-8dd528dde8eb,c147916d-1fb6-473d-bde0-8dd528dde8eb,1,0,0b13cad5-91ae-4cd1-a620-9a315ae8024c,0b13cad5-91ae-4cd1-a620-9a315ae8024c,1,0,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,1,0,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,1,0,81dd61e5-fe02-4272-a525-affda9b606ca,81dd61e5-fe02-4272-a525-affda9b606ca,1,0,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,1,0,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,1,0,80c23bf0-cef0-4d07-a017-d90635f8041d,80c23bf0-cef0-4d07-a017-d90635f8041d,1,0,72dcfd46-491e-4f88-a0ea-57919f8fbdea,72dcfd46-491e-4f88-a0ea-57919f8fbdea,1,0,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,0,1,a75ed1c8-20c2-49a8-a730-22237ef91366,a75ed1c8-20c2-49a8-a730-22237ef91366,0,1,1c0ebdfd-1913-48fe-b80a-10c30201129b,1c0ebdfd-1913-48fe-b80a-10c30201129b,0,1,22ad3db7-1ad3-4868-8598-b0b90db3fa1f,22ad3db7-1ad3-4868-8598-b0b90db3fa1f,0,1,14025e38-09af-43b2-a49b-403e398a28ea,14025e38-09af-43b2-a49b-403e398a28ea,0,1,62eff222-7b74-4cab-9138-880db1f05147,62eff222-7b74-4cab-9138-880db1f05147,0,1,39c6c277-cfc6-4e8a-8e7f-afcff55f0511,39c6c277-cfc6-4e8a-8e7f-afcff55f0511,0,1,21b8ac8d-75ca-481c-8e85-01bc2029f0c0,21b8ac8d-75ca-481c-8e85-01bc2029f0c0,1,0,d5012e69-89bc-40af-8e4f-377a042854ee,d5012e69-89bc-40af-8e4f-377a042854ee,1,0,02f79fd8-5315-4c90-b520-db67dcb6e371,02f79fd8-5315-4c90-b520-db67dcb6e371,1,0,7f90681d-6534-40ee-bbb7-5356c0ed9de2,7f90681d-6534-40ee-bbb7-5356c0ed9de2,1,0,d1aca4be-1e1e-4bbd-b0a6-a68bc7c8c586,d1aca4be-1e1e-4bbd-b0a6-a68bc7c8c586,1,0,9bb52788-4a3a-48b5-a551-5ca753b6c059,9bb52788-4a3a-48b5-a551-5ca753b6c059,1,0,4fb5004f-3cd9-44c4-a44b-d235cccf9e9c,4fb5004f-3cd9-44c4-a44b-d235cccf9e9c,1,0,872a0c47-fab5-4a54-8ab9-23940bbdefbb,872a0c47-fab5-4a54-8ab9-23940bbdefbb,1,0,7428a626-3fbc-4f2c-a3dd-f14e8d90c00b,7428a626-3fbc-4f2c-a3dd-f14e8d90c00b,1,0,ec1755ed-d203-4548-9f1d-dd62ce331ecf,ec1755ed-d203-4548-9f1d-dd62ce331ecf,1,0,d59c2725-5d98-495e-9f86-f5d38dbfad90,d59c2725-5d98-495e-9f86-f5d38dbfad90,1,0,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,1,0,0ba68198-983d-409b-be27-96f1572b3f12,0ba68198-983d-409b-be27-96f1572b3f12,1,0,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,1,0,decb27a8-7dd3-4601-a694-30429e638b39,decb27a8-7dd3-4601-a694-30429e638b39,1,0,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,1,0,d7a128e4-f31f-4b09-8424-e816ab59d5c3,d7a128e4-f31f-4b09-8424-e816ab59d5c3,1,0,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,1,0,aa9513b4-f575-4030-a7f9-ac09aa319e98,aa9513b4-f575-4030-a7f9-ac09aa319e98,1,0,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,1,0,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,1,0,d03f66b1-48a3-434b-bb58-9fd53c183514,d03f66b1-48a3-434b-bb58-9fd53c183514,1,0,a469e55e-d7ca-4c27-b350-fafe7364c18f,a469e55e-d7ca-4c27-b350-fafe7364c18f,0,1,1a4991f8-7832-4ca9-8809-88a97de88749,1a4991f8-7832-4ca9-8809-88a97de88749,0,1,4f44c1c0-0480-415e-8058-41b28f2f43a0,4f44c1c0-0480-415e-8058-41b28f2f43a0,0,1,3b708ec7-6543-40ff-8ea2-16d4ddb7d56f,3b708ec7-6543-40ff-8ea2-16d4ddb7d56f,0,1,433e502d-ab5c-4e8e-a7c0-0fde1aa6f767,433e502d-ab5c-4e8e-a7c0-0fde1aa6f767,0,1,6bd65f02-9531-4dd4-bd4a-4132aa3c4787,6bd65f02-9531-4dd4-bd4a-4132aa3c4787,0,1,5d9863e6-aab7-4808-a516-8bc42dae5d01,5d9863e6-aab7-4808-a516-8bc42dae5d01,0,1,a2910bb8-fdd2-480c-8ae2-78661d7d18e0,a2910bb8-fdd2-480c-8ae2-78661d7d18e0,0,1,218302fa-674d-45e1-a7e2-2cce2d011342,218302fa-674d-45e1-a7e2-2cce2d011342,0,1,70264a0a-95c5-426f-a1bf-0f57b86d4030,70264a0a-95c5-426f-a1bf-0f57b86d4030,0,1,ba3ba1ac-e7c6-4bab-9771-4ef522011c52,ba3ba1ac-e7c6-4bab-9771-4ef522011c52,0,1,3291428e-6727-43cc-a1f8-c62f90320e90,3291428e-6727-43cc-a1f8-c62f90320e90,0,1,d867720c-c937-4689-b241-0afda05ef993,d867720c-c937-4689-b241-0afda05ef993,0,1,1390da8f-bac6-44ee-8413-1438f1f66074,1390da8f-bac6-44ee-8413-1438f1f66074,0,1,9616956d-a537-44fd-9d3f-5071fb5f4883,9616956d-a537-44fd-9d3f-5071fb5f4883,0,1,4ad1eed9-89ff-4086-b0ff-4eadcebcdce9,4ad1eed9-89ff-4086-b0ff-4eadcebcdce9,0,1,41d31712-6181-4cfe-9aa4-02b7a50150b0,41d31712-6181-4cfe-9aa4-02b7a50150b0,1,0,3ad5d8a7-3071-46aa-aebf-306bdb67983b,3ad5d8a7-3071-46aa-aebf-306bdb67983b,1,0,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,1,0,cb954476-c551-4a06-9bcd-18d67ba47dc8,cb954476-c551-4a06-9bcd-18d67ba47dc8,1,0,79201015-bfae-463e-81f1-0ae2d3066f3f,79201015-bfae-463e-81f1-0ae2d3066f3f,0,1,a6d48910-d526-4e8f-9414-ca776a7edaa3,a6d48910-d526-4e8f-9414-ca776a7edaa3,0,1,1e8cd163-ca9b-42eb-b8c9-c3d44e7e486b,1e8cd163-ca9b-42eb-b8c9-c3d44e7e486b,0,1,6bf8f383-af77-4be9-bda4-4d4220dfe374,6bf8f383-af77-4be9-bda4-4d4220dfe374,0,1,b5c92c97-c4d2-4b4c-86be-035bfd17f905,b5c92c97-c4d2-4b4c-86be-035bfd17f905,0,1,a5bb3835-9dcf-4924-9c96-695e5173d702,a5bb3835-9dcf-4924-9c96-695e5173d702,0,1,afa26db4-77a4-437c-965a-fefc6086c1a1,afa26db4-77a4-437c-965a-fefc6086c1a1,0,1,7e005845-c321-4529-b112-2dec63720195,7e005845-c321-4529-b112-2dec63720195,0,1,48f7b074-2e43-4221-a36c-e2e30c22def6,48f7b074-2e43-4221-a36c-e2e30c22def6,0,1,df2f5d28-b460-4692-861d-fbe39cb726b6,df2f5d28-b460-4692-861d-fbe39cb726b6,0,1,b6c94efd-5994-4c4c-a641-b062ecc38b65,b6c94efd-5994-4c4c-a641-b062ecc38b65,0,1,98501228-7f0e-45a3-b58f-4c654f393f80,98501228-7f0e-45a3-b58f-4c654f393f80,0,1,b773f510-1485-4886-9071-afcbf49ff856,b773f510-1485-4886-9071-afcbf49ff856,0,1,50968921-76f3-4108-835a-96b153671c8d,50968921-76f3-4108-835a-96b153671c8d,0,1,d5b586ed-0756-4488-90c8-f74f1ef81c82,d5b586ed-0756-4488-90c8-f74f1ef81c82,0,1,2178ab47-1bb1-4fe0-940d-6876b66333c1,2178ab47-1bb1-4fe0-940d-6876b66333c1,0,1,8cc09f48-2ef2-434b-b33e-ab9b021816de,8cc09f48-2ef2-434b-b33e-ab9b021816de,0,1,2ca1741b-1e65-4a54-a4a5-489e73cfb4f3,2ca1741b-1e65-4a54-a4a5-489e73cfb4f3,0,1,360b086c-53e3-4514-a4f5-9379ab368b76,360b086c-53e3-4514-a4f5-9379ab368b76,0,1,e6feefa1-7298-4ab0-85d3-9abee571a627,e6feefa1-7298-4ab0-85d3-9abee571a627,0,1,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,0,1,df459525-4e4d-4819-b996-5a6379b22a88,df459525-4e4d-4819-b996-5a6379b22a88,0,1,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,0,1,e67b4a32-4bac-450e-be6d-88c262383f31,e67b4a32-4bac-450e-be6d-88c262383f31,0,1,440d115d-a769-427e-891a-88d65fba2057,440d115d-a769-427e-891a-88d65fba2057,0,1,f7932210-027e-4fad-b7f7-3530789ce803,f7932210-027e-4fad-b7f7-3530789ce803,0,1,7bbfd95e-39a1-485b-930f-c9210c18dcd0,7bbfd95e-39a1-485b-930f-c9210c18dcd0,0,1,4975d3d6-b5a2-41c6-973b-6817013a388d,4975d3d6-b5a2-41c6-973b-6817013a388d,0,1,18ebc799-9724-4ffb-855e-b09a0723869e,18ebc799-9724-4ffb-855e-b09a0723869e,0,1,a06b8ef5-83e6-4fc6-91e1-256004134d69,a06b8ef5-83e6-4fc6-91e1-256004134d69,0,1,1d6a68ec-917f-4c3b-b970-797a6921cbc9,1d6a68ec-917f-4c3b-b970-797a6921cbc9,0,1,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,0,1,0f5f136c-688b-491e-a72b-3d9c2e609f0e,0f5f136c-688b-491e-a72b-3d9c2e609f0e,0,1,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,0,1,679cc0df-df5c-4c33-8c64-c0b6cee39116,679cc0df-df5c-4c33-8c64-c0b6cee39116,1,0,b01666e4-985e-4a8e-bd68-9eb46b1ae1f0,b01666e4-985e-4a8e-bd68-9eb46b1ae1f0,1,0,45a48f71-4b62-4d3a-9ffc-76e8d4862d4e,45a48f71-4b62-4d3a-9ffc-76e8d4862d4e,1,0,5f08a477-fac0-4763-baf6-2839ed4de918,5f08a477-fac0-4763-baf6-2839ed4de918,0,1,17aadd5f-cda2-4785-a07f-3ab4b04434a6,17aadd5f-cda2-4785-a07f-3ab4b04434a6,0,1,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,0,1,1832336e-32f6-42c4-9087-8614ead52bb3,1832336e-32f6-42c4-9087-8614ead52bb3,0,1,ff9f7b5c-70f4-4eed-8216-64448e7da76f,ff9f7b5c-70f4-4eed-8216-64448e7da76f,0,1,44ac2869-990d-4cac-a14b-c1a28854341e,44ac2869-990d-4cac-a14b-c1a28854341e,0,1,d5df31c3-89f9-469c-80a9-fb4706d30bc4,d5df31c3-89f9-469c-80a9-fb4706d30bc4,0,1,105cd740-1f60-45e1-871c-adeecd291b0d,105cd740-1f60-45e1-871c-adeecd291b0d,0,1,95aec7d2-179b-4ea3-a3df-3d737b713564,95aec7d2-179b-4ea3-a3df-3d737b713564,0,1,4bd1cae4-d5b5-444e-9cf5-67a969714293,4bd1cae4-d5b5-444e-9cf5-67a969714293,0,1,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,0,1,f279a625-b88f-43b4-bce9-de1186fe7d7e,f279a625-b88f-43b4-bce9-de1186fe7d7e,1,0,01579044-5659-4a73-a989-c52cfabaae66,01579044-5659-4a73-a989-c52cfabaae66,1,0,9b8509e8-8262-4e6a-b2f3-a0df8f49e2c5,9b8509e8-8262-4e6a-b2f3-a0df8f49e2c5,1,0,6a798c80-459f-49ef-a8c2-83842ce4252c,6a798c80-459f-49ef-a8c2-83842ce4252c,1,0,911baaa1-a4de-4558-b00e-51644144a762,911baaa1-a4de-4558-b00e-51644144a762,1,0,d6400a59-6e02-4212-bb5a-9e49767aa8d6,d6400a59-6e02-4212-bb5a-9e49767aa8d6,1,0,6016d26e-fe39-4c16-b2b5-15f8c663125e,6016d26e-fe39-4c16-b2b5-15f8c663125e,1,0,6c19d9b0-1a41-4f82-a289-9fe05e272079,6c19d9b0-1a41-4f82-a289-9fe05e272079,1,0,df8063e2-47f1-4230-8e3c-eeee2143c72a,df8063e2-47f1-4230-8e3c-eeee2143c72a,1,0,89856ba2-f39a-41cd-be94-61243c6a0b96,89856ba2-f39a-41cd-be94-61243c6a0b96,1,0,8bdb0483-6ea9-4553-91ac-9cde267aae19,8bdb0483-6ea9-4553-91ac-9cde267aae19,1,0,56c9fa68-467b-4c1b-813e-6bc7ac0375cb,56c9fa68-467b-4c1b-813e-6bc7ac0375cb,1,0,bf30f5a1-6542-469f-b3fe-eee726110ffb,bf30f5a1-6542-469f-b3fe-eee726110ffb,1,0,13367a31-c2c9-43ea-b248-8a92e95ecd53,13367a31-c2c9-43ea-b248-8a92e95ecd53,1,0,8a8ad123-c01a-440a-bd01-1c0da72cf2eb,8a8ad123-c01a-440a-bd01-1c0da72cf2eb,1,0,ca4ef957-36c2-43b9-8ff7-e2b7ee58cde5,ca4ef957-36c2-43b9-8ff7-e2b7ee58cde5,1,0,4e036eff-92a8-4010-89b2-ed949c123311,4e036eff-92a8-4010-89b2-ed949c123311,1,0,38160114-dc22-4d0b-86a5-d650f4756932,38160114-dc22-4d0b-86a5-d650f4756932,1,0,50ee876f-6860-443b-9857-aca772d711ea,50ee876f-6860-443b-9857-aca772d711ea,1,0,6955edb2-d481-432c-b282-58dc07fd067b,6955edb2-d481-432c-b282-58dc07fd067b,0,1,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,0,1,58b33683-1916-4aef-9b98-5569ef7782ed,58b33683-1916-4aef-9b98-5569ef7782ed,0,1,d3e1f622-f438-4cad-94ae-0272f51610f7,d3e1f622-f438-4cad-94ae-0272f51610f7,0,1,64ac2c2a-2726-4ab9-9a6a-3d08f3fc0618,64ac2c2a-2726-4ab9-9a6a-3d08f3fc0618,0,1,8569cd73-d40d-4d92-83e0-8ece0c03a86a,8569cd73-d40d-4d92-83e0-8ece0c03a86a,0,1,6a675752-fd31-46a5-8a62-2a1ede437c68,6a675752-fd31-46a5-8a62-2a1ede437c68,0,1,bf29c091-de15-4cd4-be0e-a9785f97d444,bf29c091-de15-4cd4-be0e-a9785f97d444,1,0,060b2bb4-ca03-4da9-930f-7f91f6299a35,060b2bb4-ca03-4da9-930f-7f91f6299a35,1,0,394b1a1c-a7ae-41b7-a346-4bac99fa567d,394b1a1c-a7ae-41b7-a346-4bac99fa567d,1,0,9a5fa511-59e8-4a1b-a101-f276f0b7b261,9a5fa511-59e8-4a1b-a101-f276f0b7b261,1,0,ccfe4e36-80b6-419f-8bb3-c1046203d023,ccfe4e36-80b6-419f-8bb3-c1046203d023,0,1,60aaa289-1f07-438c-8f10-81058ac671c3,60aaa289-1f07-438c-8f10-81058ac671c3,0,1,7312a4ab-a269-4d85-a2c2-25bd5c5dc59c,7312a4ab-a269-4d85-a2c2-25bd5c5dc59c,0,1,c44b0868-bd7f-4230-973b-544ff4dd2afe,c44b0868-bd7f-4230-973b-544ff4dd2afe,0,1,51e6a6f9-ce9d-4cb0-a40c-384ede074e07,51e6a6f9-ce9d-4cb0-a40c-384ede074e07,0,1,6236ac73-5b9f-4fb5-bb2c-a5d8e205c5db,6236ac73-5b9f-4fb5-bb2c-a5d8e205c5db,0,1,ac028c56-b2a8-4a9b-a325-554c636f838e,ac028c56-b2a8-4a9b-a325-554c636f838e,0,1,55b9650e-098b-4d44-9fb5-d525b46f014b,55b9650e-098b-4d44-9fb5-d525b46f014b,0,1,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,0,1,bc55dc06-a769-40be-9c99-0794bdd2dbea,bc55dc06-a769-40be-9c99-0794bdd2dbea,0,1,7861e179-96d2-422f-a7c2-b38b59074956,7861e179-96d2-422f-a7c2-b38b59074956,0,1,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,0,1,3797b4c6-e336-4cbe-8d0b-0902e1247b42,3797b4c6-e336-4cbe-8d0b-0902e1247b42,0,1,67ebc493-d29a-4614-890a-feb8b5bd884b,67ebc493-d29a-4614-890a-feb8b5bd884b,0,1,d65c8992-aabc-4b67-9893-01862231ebe1,d65c8992-aabc-4b67-9893-01862231ebe1,0,1,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,0,1,dba6cb38-79c6-4060-87c5-a993548f36c4,dba6cb38-79c6-4060-87c5-a993548f36c4,0,1,6b44227a-e226-4bcb-8638-06b49f830669,6b44227a-e226-4bcb-8638-06b49f830669,0,1,f2406400-87e9-4df2-bcd3-8f1e3ad62088,f2406400-87e9-4df2-bcd3-8f1e3ad62088,0,1,4bb7372a-87a9-426e-b09f-fc0110455b10,4bb7372a-87a9-426e-b09f-fc0110455b10,0,1,8de9ba9e-0f4b-4bc5-8c62-e77601e6d865,8de9ba9e-0f4b-4bc5-8c62-e77601e6d865,0,1,fee371a3-fea1-4ef0-a324-b38d038d162d,fee371a3-fea1-4ef0-a324-b38d038d162d,0,1,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,0,1,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,0,1,32eb2a75-ff35-4795-bf0c-12b1328441ee,32eb2a75-ff35-4795-bf0c-12b1328441ee,0,1,0ddeed48-b98a-47c3-84a2-2eac065be06c,0ddeed48-b98a-47c3-84a2-2eac065be06c,0,1,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,0,1,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,0,1,a720abc8-dcf0-4684-8d94-22d394a8e4df,a720abc8-dcf0-4684-8d94-22d394a8e4df,0,1,e40f53de-c27b-4e74-8241-f784d7ca5c84,e40f53de-c27b-4e74-8241-f784d7ca5c84,0,1,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,0,1,5251e744-666e-48a0-a5b4-9cef313c7631,5251e744-666e-48a0-a5b4-9cef313c7631,0,1,0b09cf2f-1759-4362-b997-29e09ac00445,0b09cf2f-1759-4362-b997-29e09ac00445,0,1,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,0,1,828ddf5d-ca09-4baf-897f-77d569e02a6b,828ddf5d-ca09-4baf-897f-77d569e02a6b,0,1,8856015c-a695-4b1a-99ef-770263f9dc4a,8856015c-a695-4b1a-99ef-770263f9dc4a,0,1,183ec2b5-e173-4885-9e26-1098ffa15020,183ec2b5-e173-4885-9e26-1098ffa15020,0,1,74702fdf-bfc5-4658-ba58-e39bcfbaa647,74702fdf-bfc5-4658-ba58-e39bcfbaa647,0,1,2f436ec3-6a04-4d2c-998a-c60ea875ca86,2f436ec3-6a04-4d2c-998a-c60ea875ca86,0,1,876e31ff-ab7b-4ea4-b491-161963727dd1,876e31ff-ab7b-4ea4-b491-161963727dd1,0,1,bb43995b-68b4-41a1-8458-e10a2d8925f1,bb43995b-68b4-41a1-8458-e10a2d8925f1,0,1,61730dd9-fed7-43ce-8f38-724cac8f3d08,61730dd9-fed7-43ce-8f38-724cac8f3d08,0,1,e6a494b8-27e7-46a6-9435-7be6e150a69e,e6a494b8-27e7-46a6-9435-7be6e150a69e,0,1,133dc852-59d3-4351-934d-8845f8a38431,133dc852-59d3-4351-934d-8845f8a38431,0,1,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,0,1,b57eca91-04c2-4412-b5e2-f3c71f8ec602,b57eca91-04c2-4412-b5e2-f3c71f8ec602,0,1,b67914a8-d483-4bed-bd4d-a4aadd4998a4,b67914a8-d483-4bed-bd4d-a4aadd4998a4,0,1,744a52c8-6e4d-4356-a35a-3d2b01ad4a9f,744a52c8-6e4d-4356-a35a-3d2b01ad4a9f,0,1,6f630213-c16c-421c-a160-09e3c729ab26,6f630213-c16c-421c-a160-09e3c729ab26,0,1,878c638c-7c84-4914-896a-d4fdf0d759ef,878c638c-7c84-4914-896a-d4fdf0d759ef,0,1,6065653e-b7a9-4033-9617-f64430c57d89,6065653e-b7a9-4033-9617-f64430c57d89,0,1,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,0,1,00d1d85b-c258-4f10-9d13-a99375a29fc1,00d1d85b-c258-4f10-9d13-a99375a29fc1,1,0,dba174fb-8392-4451-8069-ae8145658e34,dba174fb-8392-4451-8069-ae8145658e34,1,0,ff5dd4f8-8a16-4a41-875d-c4f7c37ae67a,ff5dd4f8-8a16-4a41-875d-c4f7c37ae67a,1,0,4435d99d-a1df-43e6-97ab-5e651017c61d,4435d99d-a1df-43e6-97ab-5e651017c61d,1,0,fb58d277-b2a5-4a72-8d45-170c6f6263f9,fb58d277-b2a5-4a72-8d45-170c6f6263f9,1,0,325ed391-8558-4f03-9784-cde1f2a32944,325ed391-8558-4f03-9784-cde1f2a32944,1,0,f6cda05a-0f8f-4aa2-9686-1735c4207db3,f6cda05a-0f8f-4aa2-9686-1735c4207db3,1,0,0761ea58-8358-49ba-8e2d-e6afe88f6899,0761ea58-8358-49ba-8e2d-e6afe88f6899,1,0,da09e340-7cc0-4830-917a-5a59c42bbbf7,da09e340-7cc0-4830-917a-5a59c42bbbf7,1,0,c325aa12-9564-4033-8d3e-3103df55427f,c325aa12-9564-4033-8d3e-3103df55427f,1,0,9f4d4834-6994-4573-b99d-a5051746e5f9,9f4d4834-6994-4573-b99d-a5051746e5f9,1,0,c8ef3db5-2562-4f80-a679-86c2ba288ebf,c8ef3db5-2562-4f80-a679-86c2ba288ebf,1,0,2398d69d-ecdd-4d34-bdae-34ed5507a61e,2398d69d-ecdd-4d34-bdae-34ed5507a61e,1,0,a707035a-0172-4b55-b589-fa4a8be9b596,a707035a-0172-4b55-b589-fa4a8be9b596,1,0,c4456e94-8c76-49b1-b85a-433e0f65bdb0,c4456e94-8c76-49b1-b85a-433e0f65bdb0,1,0,4a347209-3a07-48ea-b407-6ee37f1d69f2,4a347209-3a07-48ea-b407-6ee37f1d69f2,1,0,1e30131d-2eb4-4d15-a4e5-93822980d0c5,1e30131d-2eb4-4d15-a4e5-93822980d0c5,1,0,d6527a4b-76a9-4df3-b2ff-bac72ae76b01,d6527a4b-76a9-4df3-b2ff-bac72ae76b01,0,1,af071a52-212b-4131-98e6-81f6048a70e6,af071a52-212b-4131-98e6-81f6048a70e6,0,1,64eff9f4-c57b-40a0-bd83-7e371fd010ce,64eff9f4-c57b-40a0-bd83-7e371fd010ce,0,1,0eee931a-57bb-4844-8e6e-eaca342640a0,0eee931a-57bb-4844-8e6e-eaca342640a0,0,1,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,0,1,37210dde-9a2f-475c-8341-578ac99f0e17,37210dde-9a2f-475c-8341-578ac99f0e17,0,1,3d662173-e19d-4077-9a08-8c8899226e24,3d662173-e19d-4077-9a08-8c8899226e24,0,1,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,0,1,3a8fffb6-a732-440c-afb9-d1c699ea53b6,3a8fffb6-a732-440c-afb9-d1c699ea53b6,0,1,a21989bd-a57f-4969-be3b-d8b39ead4145,a21989bd-a57f-4969-be3b-d8b39ead4145,0,1,c4aee120-cdbb-4b48-a1c7-99cccbafb120,c4aee120-cdbb-4b48-a1c7-99cccbafb120,0,1,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,0,1,a3667b25-7c18-446d-a318-685a4fe4bf89,a3667b25-7c18-446d-a318-685a4fe4bf89,0,1,8103f12c-ed50-4052-8117-33b6d11ef620,8103f12c-ed50-4052-8117-33b6d11ef620,1,0,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,1,0,4378ab20-5467-476b-8f04-4b6876efdee6,4378ab20-5467-476b-8f04-4b6876efdee6,1,0,55e47901-c79c-41c5-9d7f-6b6846ed2782,55e47901-c79c-41c5-9d7f-6b6846ed2782,0,1,3c429fe8-e663-4a58-817f-8f8382697dbb,3c429fe8-e663-4a58-817f-8f8382697dbb,0,1,c37be0c3-d2db-4e63-a8cb-7956a5396650,c37be0c3-d2db-4e63-a8cb-7956a5396650,0,1,83180e0d-fc4b-41ec-9a17-5af555a4776f,83180e0d-fc4b-41ec-9a17-5af555a4776f,0,1,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,0,1,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,0,1,3e8c6546-416c-4437-8c85-2cf591b4fc3f,3e8c6546-416c-4437-8c85-2cf591b4fc3f,0,1,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,0,1,9a0b27db-e4ac-496b-b6de-876b90381527,9a0b27db-e4ac-496b-b6de-876b90381527,0,1,20d655a7-788c-48bc-83ae-25003106bedb,20d655a7-788c-48bc-83ae-25003106bedb,0,1,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,0,1,68a72014-4b2e-4347-aaa7-54d95b8eb919,68a72014-4b2e-4347-aaa7-54d95b8eb919,0,1,a71d9c41-7510-4d38-90df-1034977b8f45,a71d9c41-7510-4d38-90df-1034977b8f45,0,1,25830f5b-27e2-4eff-9728-b21eb498727d,25830f5b-27e2-4eff-9728-b21eb498727d,0,1,379c9295-d0d5-418d-82f3-5ae19985cc53,379c9295-d0d5-418d-82f3-5ae19985cc53,0,1,af02f534-8508-4f9f-bcc1-0c6f3d696971,af02f534-8508-4f9f-bcc1-0c6f3d696971,0,1,dd345cfb-ea0c-4ea8-9b35-22547b000275,dd345cfb-ea0c-4ea8-9b35-22547b000275,0,1,86a871da-3725-43a1-a7c3-98acd187011b,86a871da-3725-43a1-a7c3-98acd187011b,0,1,fb94e9cb-1f27-42a6-a701-18bbe5888e70,fb94e9cb-1f27-42a6-a701-18bbe5888e70,0,1,2e26e32e-a0c6-4460-99de-865622202166,2e26e32e-a0c6-4460-99de-865622202166,0,1,5ef026c2-2ef4-45d6-9792-5ba0d298714b,5ef026c2-2ef4-45d6-9792-5ba0d298714b,0,1,45d61391-4cf7-4f45-8775-ada582c42400,45d61391-4cf7-4f45-8775-ada582c42400,0,1,78b2a913-2ab9-455d-85a3-504f0f468468,78b2a913-2ab9-455d-85a3-504f0f468468,0,1,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,0,1,560b5b12-4dee-4c69-ab6b-7680757a2797,560b5b12-4dee-4c69-ab6b-7680757a2797,0,1,3cfb1ce0-de42-4914-85c0-807d0c10f77e,3cfb1ce0-de42-4914-85c0-807d0c10f77e,0,1,d4ca4802-756a-494c-bab3-e77e0777a3fa,d4ca4802-756a-494c-bab3-e77e0777a3fa,0,1,134c1054-8d65-405f-ba3b-5beeca803a72,134c1054-8d65-405f-ba3b-5beeca803a72,0,1,cfa1669b-5310-4171-83fd-4dff3c6ac345,cfa1669b-5310-4171-83fd-4dff3c6ac345,0,1,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,0,1,8f17ec3f-6d62-46b8-baef-b20430e948ce,8f17ec3f-6d62-46b8-baef-b20430e948ce,0,1,ea1298d0-9396-4a50-b83e-24064e8dd99d,ea1298d0-9396-4a50-b83e-24064e8dd99d,0,1,038dbb00-e4c6-4e64-b861-3a0764f54ab3,038dbb00-e4c6-4e64-b861-3a0764f54ab3,0,1,1c291f7d-a493-4297-8aaa-912896800066,1c291f7d-a493-4297-8aaa-912896800066,0,1,69149801-a825-4ed2-b077-c26660dff271,69149801-a825-4ed2-b077-c26660dff271,0,1,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,0,1,518ab687-b84a-40c8-8547-aee4257c1b71,518ab687-b84a-40c8-8547-aee4257c1b71,0,1,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,0,1,7732ef07-16eb-46a0-9645-7de95c5482af,7732ef07-16eb-46a0-9645-7de95c5482af,0,1,75dac536-b316-4b04-a57b-03656c678bec,75dac536-b316-4b04-a57b-03656c678bec,0,1,a07d6c85-159d-4d09-b117-561a1e20329f,a07d6c85-159d-4d09-b117-561a1e20329f,0,1,8a2f9733-4f83-41f2-9d74-dca7161a4b41,8a2f9733-4f83-41f2-9d74-dca7161a4b41,0,1,fbd2d900-1e0d-48f3-9793-0186ee49915c,fbd2d900-1e0d-48f3-9793-0186ee49915c,0,1,112401b8-2800-4ed2-b620-7e1c1cacef2b,112401b8-2800-4ed2-b620-7e1c1cacef2b,0,1,6738abb6-483b-422d-9c4c-6fb6f8fee2cb,6738abb6-483b-422d-9c4c-6fb6f8fee2cb,0,1,742f14c0-a601-4cc1-9b89-b05cda5a2aac,742f14c0-a601-4cc1-9b89-b05cda5a2aac,0,1,2aaf3896-f7b2-405b-ac47-b4999ede382e,2aaf3896-f7b2-405b-ac47-b4999ede382e,0,1,f470a359-5c0c-4cd9-b470-b08b5f9dcd9f,f470a359-5c0c-4cd9-b470-b08b5f9dcd9f,0,1,c2a2daf0-b4dd-4a22-a0da-8325ff098cc3,c2a2daf0-b4dd-4a22-a0da-8325ff098cc3,0,1,f9484b9d-150f-4f1b-9041-4af10bf25ca6,f9484b9d-150f-4f1b-9041-4af10bf25ca6,0,1,795ffcdc-30cf-45a8-821a-66afdd86f7b3,795ffcdc-30cf-45a8-821a-66afdd86f7b3,0,1,227cb2ed-98df-441f-afd8-499e75dc6666,227cb2ed-98df-441f-afd8-499e75dc6666,0,1,07b55200-f01f-4d4e-a7a9-01b99301e8a0,07b55200-f01f-4d4e-a7a9-01b99301e8a0,0,1,40e2fb30-bb03-4178-a8eb-ddf48337ef23,40e2fb30-bb03-4178-a8eb-ddf48337ef23,0,1,1026fbcb-acd8-40dc-b638-6e02c6378c55,1026fbcb-acd8-40dc-b638-6e02c6378c55,0,1,dc9e2ba6-f4f1-493f-9054-cac633f239dd,dc9e2ba6-f4f1-493f-9054-cac633f239dd,0,1,7b95d0b1-c7b2-43b4-9119-320cb8912032,7b95d0b1-c7b2-43b4-9119-320cb8912032,0,1,004582b7-00aa-405e-8e24-ce76c945edae,004582b7-00aa-405e-8e24-ce76c945edae,0,1,97a9b005-a836-4308-8e63-0e00f6890baa,97a9b005-a836-4308-8e63-0e00f6890baa,0,1,98c34ada-0b78-41db-9183-6d7b9e466bde,98c34ada-0b78-41db-9183-6d7b9e466bde,0,1,fb688339-918e-40a1-8721-a26f3077973e,fb688339-918e-40a1-8721-a26f3077973e,0,1,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1,0,d1b6c5e8-7625-43aa-bb11-943c9bfa01b7,d1b6c5e8-7625-43aa-bb11-943c9bfa01b7,1,0,83d23220-0226-4efe-a81c-6809459443a2,83d23220-0226-4efe-a81c-6809459443a2,1,0,ee30252f-ea25-4d50-b49c-163514bee342,ee30252f-ea25-4d50-b49c-163514bee342,1,0,02afc219-6b86-4282-ab6f-2688203542b7,02afc219-6b86-4282-ab6f-2688203542b7,1,0,dabae379-6356-497a-aab5-cf102f16a72a,dabae379-6356-497a-aab5-cf102f16a72a,1,0,337370e0-1021-4887-9d38-6c3833c90a5b,337370e0-1021-4887-9d38-6c3833c90a5b,1,0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,1,0,d6f01f1c-801b-4776-ae11-48236103f76a,d6f01f1c-801b-4776-ae11-48236103f76a,1,0,b6fe68cf-657b-40e0-af2e-247607a86519,b6fe68cf-657b-40e0-af2e-247607a86519,1,0,9b0b8191-94b7-428f-be86-e9e4cd24a72f,9b0b8191-94b7-428f-be86-e9e4cd24a72f,1,0,a923dbcb-7146-4445-ad17-f4a32c16a837,a923dbcb-7146-4445-ad17-f4a32c16a837,1,0,41dec792-1d1a-4e06-a54b-a86193b98225,41dec792-1d1a-4e06-a54b-a86193b98225,1,0,52257beb-3e0c-4681-b430-9690398cd13a,52257beb-3e0c-4681-b430-9690398cd13a,1,0,f71bd0e8-8784-452e-bea9-3696c875d69d,f71bd0e8-8784-452e-bea9-3696c875d69d,1,0,135e637c-c28e-4547-8da2-d897dca54cb2,135e637c-c28e-4547-8da2-d897dca54cb2,1,0,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,1,0,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,1,0,5356543a-db9a-4265-b83f-31d45544c8e6,5356543a-db9a-4265-b83f-31d45544c8e6,1,0,857dd311-9c6d-4dba-82d8-283d7b05b09e,857dd311-9c6d-4dba-82d8-283d7b05b09e,1,0,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1,0,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,1,0,2902460a-ed86-41cf-8e8f-895adab9a72f,2902460a-ed86-41cf-8e8f-895adab9a72f,1,0,c4968b4e-0715-43a5-92ad-c8cd276fbf7b,c4968b4e-0715-43a5-92ad-c8cd276fbf7b,1,0,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,1,0,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1,0,81ef02df-498d-4af0-8254-dc6730cbf140,81ef02df-498d-4af0-8254-dc6730cbf140,1,0,403d4675-b80e-4e0a-8cc0-2876661d0c89,403d4675-b80e-4e0a-8cc0-2876661d0c89,1,0,37333d0b-3589-4b8b-bf6c-e605e0287b66,37333d0b-3589-4b8b-bf6c-e605e0287b66,1,0,cb42bbe7-b564-44b2-89b8-d570f3419d3c,cb42bbe7-b564-44b2-89b8-d570f3419d3c,1,0,7fba41a5-4faa-412b-b367-b30ced0314c0,7fba41a5-4faa-412b-b367-b30ced0314c0,1,0,f82d5bd6-4c74-4c23-978c-565aae3d752a,f82d5bd6-4c74-4c23-978c-565aae3d752a,1,0,ad083c26-7461-4e94-b524-0174242fbd91,ad083c26-7461-4e94-b524-0174242fbd91,1,0,5ce39370-f918-493f-bb24-53346b6fd836,5ce39370-f918-493f-bb24-53346b6fd836,1,0,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,1,0,0e3d2750-bb4c-42b9-9829-60f1480ced9c,0e3d2750-bb4c-42b9-9829-60f1480ced9c,1,0,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,1,0,a76b1fd1-ba00-40e6-8756-f17fee449818,a76b1fd1-ba00-40e6-8756-f17fee449818,1,0,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,1,0,5c913626-48d1-4e0a-a423-64078ce59c7b,5c913626-48d1-4e0a-a423-64078ce59c7b,1,0,abd0a60c-18b5-407f-b851-94586325dc20,abd0a60c-18b5-407f-b851-94586325dc20,1,0,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,1,0,7b0ec304-1904-413e-a9c6-ff62e87107dd,7b0ec304-1904-413e-a9c6-ff62e87107dd,1,0,d4dd8c96-914d-496f-b735-ef85ec473605,d4dd8c96-914d-496f-b735-ef85ec473605,1,0,6fac5c14-e126-4342-9078-edf1d0efcbf2,6fac5c14-e126-4342-9078-edf1d0efcbf2,1,0,62517db4-59e6-4945-bcd6-b3f1845572bf,62517db4-59e6-4945-bcd6-b3f1845572bf,1,0,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,1,0,f0f72149-0e7f-441a-b70d-8f47d4977927,f0f72149-0e7f-441a-b70d-8f47d4977927,1,0,776efc3e-ac27-4550-bafd-6e91aa987af2,776efc3e-ac27-4550-bafd-6e91aa987af2,1,0,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,1,0,cc438366-85ea-48be-8b74-d05cddb1fc51,cc438366-85ea-48be-8b74-d05cddb1fc51,1,0,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,1,0,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,1,0,3271b800-1825-422f-97bb-757baf403e90,3271b800-1825-422f-97bb-757baf403e90,1,0,0a3325a1-21c4-4997-882f-4ac2edc175f0,0a3325a1-21c4-4997-882f-4ac2edc175f0,1,0,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,1,0,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,1,0,a040c756-4687-4bfd-a690-b122d3c490e5,a040c756-4687-4bfd-a690-b122d3c490e5,1,0,34f9826f-3ab5-4849-8ef9-ab0fab3e471b,34f9826f-3ab5-4849-8ef9-ab0fab3e471b,1,0,f0620d5a-e1fe-419f-af37-e0f462f97e8d,f0620d5a-e1fe-419f-af37-e0f462f97e8d,1,0,3e2f2ae1-c809-43fc-8276-b0a16a92858c,3e2f2ae1-c809-43fc-8276-b0a16a92858c,1,0,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,1,0,1a7c7427-bead-4655-9dd6-df6e722663c5,1a7c7427-bead-4655-9dd6-df6e722663c5,0,1,3ad08f4a-6202-4099-b6cc-bc116e6731a0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,0,1,fd96c8ab-602a-4735-b168-52b501e80351,fd96c8ab-602a-4735-b168-52b501e80351,0,1,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,0,1,370f0c75-d2c5-4be5-a633-4bcc77998ece,370f0c75-d2c5-4be5-a633-4bcc77998ece,0,1,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,0,1,2139532c-f6cb-4393-936e-cc912e5adca9,2139532c-f6cb-4393-936e-cc912e5adca9,0,1,755c3eca-4956-4a44-9b38-c11dae00b87f,755c3eca-4956-4a44-9b38-c11dae00b87f,0,1,f57c558c-2c94-4b9d-8697-448d0548ab1a,f57c558c-2c94-4b9d-8697-448d0548ab1a,0,1,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,0,1,c32db021-eca1-4b67-aa85-3d6e28c51b53,c32db021-eca1-4b67-aa85-3d6e28c51b53,0,1,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,0,1,02466dcf-02a1-4853-814f-a913a9baba45,02466dcf-02a1-4853-814f-a913a9baba45,0,1,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,0,1,62b75eb2-42e1-4484-a77f-b676dd36f3d4,62b75eb2-42e1-4484-a77f-b676dd36f3d4,0,1,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,0,1,856510ee-74f5-44e9-a3c0-1c60cfb7a787,856510ee-74f5-44e9-a3c0-1c60cfb7a787,0,1,28b761c6-c286-4125-a4ed-da602e49950f,28b761c6-c286-4125-a4ed-da602e49950f,0,1,4ac66a22-c736-4e06-a8aa-ef4a71788c65,4ac66a22-c736-4e06-a8aa-ef4a71788c65,0,1,9cfe9281-8840-4077-824d-a2c9cbb0b730,9cfe9281-8840-4077-824d-a2c9cbb0b730,0,1,76389fa9-b9e0-492e-9c93-24b5f3bf094c,76389fa9-b9e0-492e-9c93-24b5f3bf094c,0,1,23e3de37-9315-45e6-bbfd-60aae28c25ae,23e3de37-9315-45e6-bbfd-60aae28c25ae,0,1,a9957f43-8b6f-4d98-a2d8-77b78047494c,a9957f43-8b6f-4d98-a2d8-77b78047494c,0,1,e470e15d-1b06-43cb-a9f9-ba489e2f596f,e470e15d-1b06-43cb-a9f9-ba489e2f596f,0,1,0408002c-9255-43a2-8022-82f02ee0e8f4,0408002c-9255-43a2-8022-82f02ee0e8f4,0,1,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,0,1,1851afd4-5324-45c1-b754-54e65943f945,1851afd4-5324-45c1-b754-54e65943f945,0,1,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,0,1,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,0,1,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,0,1,c322dc4a-30f3-4d23-9824-4a01c496408d,c322dc4a-30f3-4d23-9824-4a01c496408d,0,1,dcff004c-1b61-4a19-b977-ea21bf688614,dcff004c-1b61-4a19-b977-ea21bf688614,0,0,0,1,0} \ No newline at end of file diff --git a/SSL/src/Constants/АдресВебСервиса1СДокументооборот/АдресВебСервиса1СДокументооборот.mdo b/SSL/src/Constants/АдресВебСервиса1СДокументооборот/АдресВебСервиса1СДокументооборот.mdo new file mode 100644 index 000000000..510f3d852 --- /dev/null +++ b/SSL/src/Constants/АдресВебСервиса1СДокументооборот/АдресВебСервиса1СДокументооборот.mdo @@ -0,0 +1,21 @@ + + + + + + + + АдресВебСервиса1СДокументооборот + + ru + URL + + + String + + + true + + + Managed + diff --git a/SSL/src/Constants/ИдентификаторКорневойПапкиФайлов1СДокументооборот/ИдентификаторКорневойПапкиФайлов1СДокументооборот.mdo b/SSL/src/Constants/ИдентификаторКорневойПапкиФайлов1СДокументооборот/ИдентификаторКорневойПапкиФайлов1СДокументооборот.mdo new file mode 100644 index 000000000..4fac8045b --- /dev/null +++ b/SSL/src/Constants/ИдентификаторКорневойПапкиФайлов1СДокументооборот/ИдентификаторКорневойПапкиФайлов1СДокументооборот.mdo @@ -0,0 +1,21 @@ + + + + + + + + ИдентификаторКорневойПапкиФайлов1СДокументооборот + + ru + Корневая папка для хранения файлов + + + String + + + true + + + Managed + diff --git a/SSL/src/Constants/ИспользоватьВнешниеЗадачи/ИспользоватьВнешниеЗадачи.mdo b/SSL/src/Constants/ИспользоватьВнешниеЗадачи/ИспользоватьВнешниеЗадачи.mdo new file mode 100644 index 000000000..6a63ef29a --- /dev/null +++ b/SSL/src/Constants/ИспользоватьВнешниеЗадачи/ИспользоватьВнешниеЗадачи.mdo @@ -0,0 +1,20 @@ + + + + + + + + ИспользоватьВнешниеЗадачи + + ru + Использовать внешние задачи + + + Boolean + + true + + + Managed + diff --git a/SSL/src/Constants/ИспользоватьИнтеграциюС1СДокументооборот/ИспользоватьИнтеграциюС1СДокументооборот.mdo b/SSL/src/Constants/ИспользоватьИнтеграциюС1СДокументооборот/ИспользоватьИнтеграциюС1СДокументооборот.mdo new file mode 100644 index 000000000..e9d12efb6 --- /dev/null +++ b/SSL/src/Constants/ИспользоватьИнтеграциюС1СДокументооборот/ИспользоватьИнтеграциюС1СДокументооборот.mdo @@ -0,0 +1,20 @@ + + + + + + + + ИспользоватьИнтеграциюС1СДокументооборот + + ru + Использовать интеграцию с 1С:Документооборот + + + Boolean + + true + + + Managed + diff --git a/SSL/src/Constants/МаксимальныйРазмерФайлаДляПередачиВ1СДокументооборот/МаксимальныйРазмерФайлаДляПередачиВ1СДокументооборот.mdo b/SSL/src/Constants/МаксимальныйРазмерФайлаДляПередачиВ1СДокументооборот/МаксимальныйРазмерФайлаДляПередачиВ1СДокументооборот.mdo new file mode 100644 index 000000000..38cd78c35 --- /dev/null +++ b/SSL/src/Constants/МаксимальныйРазмерФайлаДляПередачиВ1СДокументооборот/МаксимальныйРазмерФайлаДляПередачиВ1СДокументооборот.mdo @@ -0,0 +1,26 @@ + + + + + + + + МаксимальныйРазмерФайлаДляПередачиВ1СДокументооборот + + ru + Максимальный размер передаваемого файла + + Максимальный размер файла для передачи в 1С:Документооборот + + Number + + 10 + + + true + + + 1073741824 + + Managed + diff --git a/SSL/src/Constants/НаименованиеКорневойПапкиФайлов1СДокументооборот/НаименованиеКорневойПапкиФайлов1СДокументооборот.mdo b/SSL/src/Constants/НаименованиеКорневойПапкиФайлов1СДокументооборот/НаименованиеКорневойПапкиФайлов1СДокументооборот.mdo new file mode 100644 index 000000000..99f2ef432 --- /dev/null +++ b/SSL/src/Constants/НаименованиеКорневойПапкиФайлов1СДокументооборот/НаименованиеКорневойПапкиФайлов1СДокументооборот.mdo @@ -0,0 +1,21 @@ + + + + + + + + НаименованиеКорневойПапкиФайлов1СДокументооборот + + ru + Корневая папка для хранения файлов + + + String + + + true + + + Managed + diff --git a/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl index 3422a4066..d0c0562b8 100644 --- a/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl @@ -1,3 +1,44 @@ +//////////////////////////////////////////////////////////////////////////////// +// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + Если ЗначениеЗаполнено(Параметры.БизнесПроцесс) Тогда + БизнесПроцесс = Параметры.БизнесПроцесс; + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + ОбновитьКартуМаршрута(); +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ + +&НаКлиенте +Процедура ОбновитьВыполнить() + ОбновитьКартуМаршрута(); +КонецПроцедуры + +&НаКлиенте +Процедура БизнесПроцессПриИзменении(Элемент) + ОбновитьКартуМаршрута(); +КонецПроцедуры + +&НаКлиенте +Процедура ЗадачиВыполнить() + ОткрытьСписокЗадачТочкиМаршрута(); +КонецПроцедуры + +&НаКлиенте +Процедура КартаМаршрутаВыбор(Элемент) + ОткрытьСписокЗадачТочкиМаршрута(); +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ + &НаСервере Процедура ОбновитьКартуМаршрута() @@ -15,7 +56,7 @@ Процедура ОткрытьСписокЗадачТочкиМаршрута() #Если ВебКлиент Тогда - Предупреждение("В Веб-клиенте данная операция недоступна."); + Предупреждение(НСтр("ru = 'Данная операция недоступна в веб-клиенте.'")); Возврат; #КонецЕсли ОчиститьСообщения(); @@ -46,42 +87,5 @@ ЗаголовокФормы,0,Ложь,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца,Строка(ТекЭлемент.Значение),Строка(БизнесПроцесс)), ЭтаФорма, БизнесПроцесс); - КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если ЗначениеЗаполнено(Параметры.БизнесПроцесс) Тогда - БизнесПроцесс = Параметры.БизнесПроцесс; - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПриОткрытии(Отказ) - ОбновитьКартуМаршрута(); -КонецПроцедуры - -&НаКлиенте -Процедура ОбновитьВыполнить() - ОбновитьКартуМаршрута(); -КонецПроцедуры - -&НаКлиенте -Процедура БизнесПроцессПриИзменении(Элемент) - ОбновитьКартуМаршрута(); -КонецПроцедуры - -&НаКлиенте -Процедура ЗадачиВыполнить() - ОткрытьСписокЗадачТочкиМаршрута(); -КонецПроцедуры - -&НаКлиенте -Процедура КартаМаршрутаВыбор(Элемент) - ОткрытьСписокЗадачТочкиМаршрута(); -КонецПроцедуры - - diff --git a/SSL/src/DataProcessors/КонтрольЖурналаРегистрации/Forms/УстановкаПочтовыхАдресовДляОтправкиОтчета/Module.bsl b/SSL/src/DataProcessors/КонтрольЖурналаРегистрации/Forms/УстановкаПочтовыхАдресовДляОтправкиОтчета/Module.bsl index 121a13c16..c43b80f75 100644 --- a/SSL/src/DataProcessors/КонтрольЖурналаРегистрации/Forms/УстановкаПочтовыхАдресовДляОтправкиОтчета/Module.bsl +++ b/SSL/src/DataProcessors/КонтрольЖурналаРегистрации/Forms/УстановкаПочтовыхАдресовДляОтправкиОтчета/Module.bsl @@ -1,5 +1,3 @@ -// Обработчик события формы "при создании на сервере" -// &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/РезервноеКопированиеИнформационнойБазы/Module.bsl b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/РезервноеКопированиеИнформационнойБазы/Module.bsl index 068938d08..c6c719c68 100644 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/РезервноеКопированиеИнформационнойБазы/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/РезервноеКопированиеИнформационнойБазы/Module.bsl @@ -240,7 +240,6 @@ //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ -// Обработчик нажатия на кнопку "Далее"("Готово"). &НаКлиенте Процедура Далее(Команда) ОчиститьСообщения(); @@ -300,7 +299,6 @@ Объект.КаталогСРезервнымиКопиями = ПолучитьПуть(РежимДиалогаВыбораФайла.ВыборКаталога); КонецПроцедуры -// Обработчик нажатия на кнопку "Отмена" &НаКлиенте Процедура Отмена(Команда) ДатаОтложенногоРезервногоКопирования =Дата('00010101'); @@ -368,7 +366,6 @@ ОткрытьФормуМодально("Обработка.ЖурналРегистрации.Форма.ЖурналРегистрации"); КонецПроцедуры -// Обработчик нажатия на кнопку "Назад" &НаКлиенте Процедура Назад(Команда) ТекущаяСтраницаПомощника = Элементы.СтраницыПомощника.ТекущаяСтраница; diff --git a/SSL/src/DataProcessors/ОбновлениеКонфигурации/Forms/Форма/Form.form b/SSL/src/DataProcessors/ОбновлениеКонфигурации/Forms/Форма/Form.form index 6a3bc633d..cd209b07c 100644 --- a/SSL/src/DataProcessors/ОбновлениеКонфигурации/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ОбновлениеКонфигурации/Forms/Форма/Form.form @@ -11779,6 +11779,23 @@ true + + КонфигурацияИзменена + + <key>ru</key> + <value>Конфигурация изменена</value> + + 5 + + Boolean + + + true + + + true + + Назад diff --git a/SSL/src/DataProcessors/ОбновлениеКонфигурации/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ОбновлениеКонфигурации/Forms/Форма/Module.bsl index 2b601abe4..16e0e81a9 100644 --- a/SSL/src/DataProcessors/ОбновлениеКонфигурации/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ОбновлениеКонфигурации/Forms/Форма/Module.bsl @@ -4,6 +4,8 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + ЗаписьЖурналаРегистрации(ОбновлениеКонфигурации.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,,, + НСтр("ru = 'Открытие помощника обновления конфигурации...'")); ОбновлениеКонфигурации.ПрерватьВыполнениеЕслиАвторизованВнешнийПользователь(); // Установка признака выполнения обновления по завершении помощника. @@ -15,17 +17,21 @@ ОбновлениеКонфигурации.СброситьСтатусОбновленияКонфигурации(); КонецЕсли; - ОбновлениеКонфигурации.ПриЗапускеПомощникаОбновленияКонфигурации(); + // Проверяем каждый раз при открытии помощника. + КонфигурацияИзменена = КонфигурацияИзменена(); КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) - #Если ВебКлиент Тогда - Отказ = Истина; - Предупреждение(НСтр("ru = 'Обновление конфигурации информационной базы недоступно в веб-клиенте.'")); - Возврат; - #КонецЕсли +#Если ВебКлиент Тогда + Отказ = Истина; + ТекстСообщения = НСтр("ru = 'Обновление конфигурации информационной базы недоступно в веб-клиенте.'"); + ОбщегоНазначенияКлиент.ДобавитьСообщениеДляЖурналаРегистрации(ОбновлениеКонфигурацииКлиент.СобытиеЖурналаРегистрации(),, + ТекстСообщения,,Истина); + Предупреждение(ТекстСообщения); + Возврат; +#КонецЕсли ВосстановитьНастройкиОбновленияКонфигурации(); @@ -33,18 +39,16 @@ ИмяСтраницы = Страницы.ДоброПожаловать.Имя; ДоступноеОбновление = ОбновлениеКонфигурацииКлиент.ПолучитьДоступноеОбновлениеКонфигурации(); - Если ДоступноеОбновление.ИсточникОбновления <> -1 Тогда - ФлагАвтоПереходаНаСтраницуСОбновлением = ДоступноеОбновление.ФлагАвтоПереходаНаСтраницуСОбновлением; - Если ФлагАвтоПереходаНаСтраницуСОбновлением Тогда - Если Объект.ИсточникОбновления = 2 И Объект.НуженФайлОбновления = 0 Тогда - ИмяСтраницы = Страницы.ФайлОбновления.Имя; - ИначеЕсли Объект.ИсточникОбновления = 0 Тогда - ВремяПолученияОбновления = ДоступноеОбновление.ВремяПолученияОбновления; - Если ВремяПолученияОбновления <> Неопределено И ТекущаяДата() - ВремяПолученияОбновления < 30 Тогда - ИмяСтраницы = ПолучитьФайлыОбновленияЧерезИнтернет(Истина); - КонецЕсли; - КонецЕсли; + // Если есть обновление в сети Интернет... + Если ДоступноеОбновление.ИсточникОбновления = 0 И ДоступноеОбновление.ФлагАвтоПереходаНаСтраницуСОбновлением Тогда + ВремяПолученияОбновления = ДоступноеОбновление.ВремяПолученияОбновления; + Если ВремяПолученияОбновления <> Неопределено И ТекущаяДата() - ВремяПолученияОбновления < 30 Тогда + ИмяСтраницы = ПолучитьФайлыОбновленияЧерезИнтернет(Истина); КонецЕсли; + // Если конфигурация изменена, предложим применить ее к базе данных + ИначеЕсли ДоступноеОбновление.ИсточникОбновления = 2 И ДоступноеОбновление.НуженФайлОбновления = 0 + И ДоступноеОбновление.ФлагАвтоПереходаНаСтраницуСОбновлением Тогда + ИмяСтраницы = Страницы.ФайлОбновления.Имя; КонецЕсли; Если Объект.КодЗадачиПланировщика <> 0 Тогда @@ -912,6 +916,13 @@ Объект.РежимОбновления = 0; КонецЕсли; + Если КонфигурацияИзменена Тогда + ПараметрыОбновления = ОбновлениеКонфигурацииКлиент.ПолучитьДоступноеОбновлениеКонфигурации(); + ПараметрыОбновления.ИсточникОбновления = 2; // локальный или сетевой каталог + ПараметрыОбновления.НуженФайлОбновления = Ложь; + ПараметрыОбновления.ФлагАвтоПереходаНаСтраницуСОбновлением = Истина; + КонецЕсли; + Если ПараметрыРаботыКлиента.НастройкиОбновления.ЕстьДоступДляОбновления И НЕ ПараметрыРаботыКлиента.ИнформационнаяБазаФайловая Тогда diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ФормаПоиска/Module.bsl b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ФормаПоиска/Module.bsl index d8678a5b2..38980051a 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ФормаПоиска/Module.bsl +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ФормаПоиска/Module.bsl @@ -370,8 +370,6 @@ КонецПроцедуры -// Обработчик команды Далее -// &НаКлиенте Процедура ДалееВыполнить() @@ -379,8 +377,6 @@ КонецПроцедуры -// Обработчик команды Назад -// &НаКлиенте Процедура НазадВыполнить() Искать(-1); diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеИнформационнойБазы/Module.bsl b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеИнформационнойБазы/Module.bsl index f7187c02b..cfcf2a501 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеИнформационнойБазы/Module.bsl +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеИнформационнойБазы/Module.bsl @@ -416,7 +416,6 @@ //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ -// Обработчик нажатия на кнопку "Далее" ("Готово"). &НаКлиенте Процедура Далее(Команда) ОчиститьСообщения(); diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl index 4e5e380e6..bbd7462ae 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl @@ -1390,19 +1390,24 @@ ДайджестСопоставления().КоличествоОбъектовВИсточнике = ОбменДаннымиСервер.КоличествоЗаписейВоВременнойТаблицеБазыДанных("ТаблицаИсточника", МенеджерВременныхТаблиц); ДайджестСопоставления().КоличествоОбъектовВПриемнике = ОбменДаннымиСервер.КоличествоЗаписейВТаблицеБазыДанных(ИмяТаблицыПриемника); - ДайджестСопоставления().КоличествоОбъектовСопоставленных = ИнформацияСтатистикиСопоставленияОбъектов().КоличествоОбъектовИсточникаСопоставленныхПоРегистру - + ИнформацияСтатистикиСопоставленияОбъектов().КоличествоОбъектовПриемникаСопоставленныхПоРегистру - + ИнформацияСтатистикиСопоставленияОбъектов().КоличествоОбъектовСопоставленныхПоНеутвержденнымСвязям; + КоличествоСопоставленныхОбъектовИсточника = ИнформацияСтатистикиСопоставленияОбъектов().КоличествоОбъектовИсточникаСопоставленныхПоРегистру + + ИнформацияСтатистикиСопоставленияОбъектов().КоличествоОбъектовСопоставленныхПоНеутвержденнымСвязям; // + КоличествоСопоставленныхОбъектовПриемника = ИнформацияСтатистикиСопоставленияОбъектов().КоличествоОбъектовИсточникаСопоставленныхПоРегистру + + ИнформацияСтатистикиСопоставленияОбъектов().КоличествоОбъектовПриемникаСопоставленныхПоРегистру + + ИнформацияСтатистикиСопоставленияОбъектов().КоличествоОбъектовСопоставленныхПоНеутвержденнымСвязям; + // + КоличествоНесопоставленныхОбъектовИсточника = ДайджестСопоставления().КоличествоОбъектовВИсточнике - КоличествоСопоставленныхОбъектовИсточника; + КоличествоНесопоставленныхОбъектовПриемника = ДайджестСопоставления().КоличествоОбъектовВПриемнике - КоличествоСопоставленныхОбъектовПриемника; - ДайджестСопоставления().КоличествоОбъектовНесопоставленных = Мин(ДайджестСопоставления().КоличествоОбъектовВИсточнике - ИнформацияСтатистикиСопоставленияОбъектов().КоличествоОбъектовИсточникаСопоставленныхПоРегистру - ИнформацияСтатистикиСопоставленияОбъектов().КоличествоОбъектовСопоставленныхПоНеутвержденнымСвязям, - ДайджестСопоставления().КоличествоОбъектовВПриемнике - ДайджестСопоставления().КоличествоОбъектовСопоставленных); - // + ПроцентСопоставленияОбъектовИсточника = ?(ДайджестСопоставления().КоличествоОбъектовВИсточнике = 0, 0, Цел(100 * КоличествоСопоставленныхОбъектовИсточника / ДайджестСопоставления().КоличествоОбъектовВИсточнике)); + ПроцентСопоставленияОбъектовПриемника = ?(ДайджестСопоставления().КоличествоОбъектовВПриемнике = 0, 0, Цел(100 * КоличествоСопоставленныхОбъектовПриемника / ДайджестСопоставления().КоличествоОбъектовВПриемнике)); - ДайджестСопоставления().ПроцентСопоставленияОбъектов = ОпределитьПроцентСопоставления(ДайджестСопоставления().КоличествоОбъектовВИсточнике, - ДайджестСопоставления().КоличествоОбъектовВПриемнике, - ДайджестСопоставления().КоличествоОбъектовНесопоставленных); - // + ДайджестСопоставления().ПроцентСопоставленияОбъектов = Макс(ПроцентСопоставленияОбъектовИсточника, ПроцентСопоставленияОбъектовПриемника); + + ДайджестСопоставления().КоличествоОбъектовНесопоставленных = Мин(КоличествоНесопоставленныхОбъектовИсточника, КоличествоНесопоставленныхОбъектовПриемника); + + ДайджестСопоставления().КоличествоОбъектовСопоставленных = КоличествоСопоставленныхОбъектовПриемника; КонецПроцедуры @@ -1849,13 +1854,3 @@ Возврат Реквизит.Тип = ТипСтрокаНеограниченнойДлины(); КонецФункции - -Функция ОпределитьПроцентСопоставления(Знач КоличествоОбъектов1, Знач КоличествоОбъектов2, Знач КоличествоОбъектовНесопоставленных) - - КоличествоОбъектов = Макс(КоличествоОбъектов1, КоличествоОбъектов2); - - КоличествоОбъектов = ?(КоличествоОбъектов <= 0, 1, КоличествоОбъектов); - - Возврат Цел((1 - КоличествоОбъектовНесопоставленных / КоличествоОбъектов) * 100); - -КонецФункции diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl index b5d65b10a..8b134d594 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl @@ -1,15 +1,11 @@ /////////////////////////////////////////////////////////////// // Обработки событий -// Обработчик события "при создании на сервере" -// &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) РежимУдаления = "Полный"; КонецПроцедуры -// Обработчик события "при изменении" элемента формы РежимУдаления -// &НаКлиенте Процедура РежимУдаленияПриИзменении(Элемент) ДоступностьКнопок(); diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/Форма/Form.oform b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/Форма/Form.oform index ce2c9715d..8de34f151 100644 Binary files a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/Форма/Form.oform and b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/Форма/Form.oform differ diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/ФормаНастройкиОтладкиОбработчиков/Form.oform b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/ФормаНастройкиОтладкиОбработчиков/Form.oform index c8eefc26d..2899e4305 100644 Binary files a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/ФормаНастройкиОтладкиОбработчиков/Form.oform and b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/ФормаНастройкиОтладкиОбработчиков/Form.oform differ diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/ФормаРедактораТекстовогоДокумента/Form.oform b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/ФормаРедактораТекстовогоДокумента/Form.oform index 46ec6bf8f..e52e3a427 100644 Binary files a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/ФормаРедактораТекстовогоДокумента/Form.oform and b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/ФормаРедактораТекстовогоДокумента/Form.oform differ diff --git a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl index 5d40da2ac..4e4d9200e 100644 --- a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl @@ -1319,7 +1319,6 @@ КонецПроцедуры -//Обработчик выбора раздела на дереве &НаКлиенте Процедура ДеревоРазделовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Form.form b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Form.form index 78fd0b2f0..881211738 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Form.form +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Form.form @@ -432,7 +432,7 @@ <horizontalAlign>Left</horizontalAlign> </extInfo> </extendedTooltip> - <commandName>0</commandName> + <commandName>Form.Item.Респонденты.StandardCommand.List</commandName> <buttonImportance>Normal</buttonImportance> <representation>Auto</representation> <autoMaxWidth>true</autoMaxWidth> @@ -460,7 +460,7 @@ <horizontalAlign>Left</horizontalAlign> </extInfo> </extendedTooltip> - <commandName>0</commandName> + <commandName>Form.Item.Респонденты.StandardCommand.HierarchicalList</commandName> <buttonImportance>Normal</buttonImportance> <representation>Auto</representation> <autoMaxWidth>true</autoMaxWidth> @@ -488,7 +488,7 @@ <horizontalAlign>Left</horizontalAlign> </extInfo> </extendedTooltip> - <commandName>0</commandName> + <commandName>Form.Item.Респонденты.StandardCommand.Tree</commandName> <buttonImportance>Normal</buttonImportance> <representation>Auto</representation> <autoMaxWidth>true</autoMaxWidth> @@ -942,10 +942,10 @@ <segments>Респонденты.Code</segments> </notDefaultUseAlwaysAttributes> <notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> - <segments>Респонденты.IsFolder</segments> + <segments>Респонденты.Description</segments> </notDefaultUseAlwaysAttributes> <notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> - <segments>Респонденты.Description</segments> + <segments>Респонденты.IsFolder</segments> </notDefaultUseAlwaysAttributes> <notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> <segments>Респонденты.Ref</segments> diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl index 876a29a8b..98287215b 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl @@ -1,16 +1,6 @@ - -//////////////////////////////////////////////////////////////////////////////// -// ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ - -&НаКлиенте -Процедура ОбработатьВыборРеспондента(МассивВыбора) - - Оповестить("ВыборРеспондентов",Новый Структура("ОтобранныеРеспонденты",МассивВыбора)); - -КонецПроцедуры // () - //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ + &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) @@ -54,4 +44,12 @@ КонецПроцедуры - \ No newline at end of file +//////////////////////////////////////////////////////////////////////////////// +// ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ + +&НаКлиенте +Процедура ОбработатьВыборРеспондента(МассивВыбора) + + Оповестить("ВыборРеспондентов",Новый Структура("ОтобранныеРеспонденты",МассивВыбора)); + +КонецПроцедуры diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl index 632f22d0b..d05785e5a 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl @@ -18,8 +18,10 @@ // Установим текст и вид текста Если Объект.ТипТекста = Перечисления.ТипыТекстовЭлектронныхПисем.HTML Тогда - ТекстПисьма = Объект.ТекстHTML; - Элементы.ТекстПисьма.Вид = ВидПоляФормы.ПолеHTMLДокумента; + ТекстПисьма = Объект.ТекстHTML; + ОбработатьТекстHTML(); + Элементы.ТекстПисьма.Вид = ВидПоляФормы.ПолеHTMLДокумента; + Элементы.ТекстПисьма.ТолькоПросмотр = Ложь; Иначе ТекстПисьма = Объект.Текст; Элементы.ТекстПисьма.Вид = ВидПоляФормы.ПолеТекстовогоДокумента; @@ -289,4 +291,20 @@ Объект.Кодировка = ВыбраннаяКодировка; -КонецПроцедуры // () +КонецПроцедуры + +&НаСервере +Процедура ОбработатьТекстHTML() + + Если Не ПустаяСтрока(ТекстПисьма) Тогда + + //Добавим текст HTML если он отсутствует. Такие письма могут приходить к примеру с Gmail. + //Необходимо для корректного отображения в элементе формы. + Если СтрЧислоВхождений(ТекстПисьма,"<html") = 0 Тогда + ТекстПисьма = "<html>" + ТекстПисьма + "</html>" + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + diff --git a/SSL/src/Enums/ВариантыПравилЗаполненияРеквизитов/ВариантыПравилЗаполненияРеквизитов.mdo b/SSL/src/Enums/ВариантыПравилЗаполненияРеквизитов/ВариантыПравилЗаполненияРеквизитов.mdo new file mode 100644 index 000000000..ab1f3e41d --- /dev/null +++ b/SSL/src/Enums/ВариантыПравилЗаполненияРеквизитов/ВариантыПравилЗаполненияРеквизитов.mdo @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:Enum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6f0caeb0-34ce-489c-86c4-c16d85320fa3"> + <producedTypes> + <refType typeId="76e9891a-2bd8-4c66-ba50-9043f303a1ff" valueTypeId="a68d80e9-a1a8-4ff4-a0a8-e04cdcc82d05"/> + <listType typeId="ecc6ad45-69f2-4fc5-a8d3-d0cecf204373" valueTypeId="7f14501f-5e46-44f6-964d-0c2117de4c47"/> + <managerType typeId="8fe3914f-0a2d-4d14-ba31-d70d6de63ad8" valueTypeId="7f333b09-36ef-45e6-b6ad-c5f395358ee8"/> + </producedTypes> + <name>ВариантыПравилЗаполненияРеквизитов</name> + <synonym> + <key>ru</key> + <value>Варианты правил заполнения реквизитов</value> + </synonym> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Order</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Ref</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <quickChoice>true</quickChoice> + <choiceMode>BothWays</choiceMode> + <enumValues uuid="4c49914c-e472-46f8-8c5e-5e38138eb301"> + <name>ИзРеквизитаОбъектаПотребителя</name> + <synonym> + <key>ru</key> + <value>Из реквизита объекта потребителя</value> + </synonym> + </enumValues> + <enumValues uuid="81d4ea48-8704-494d-8cd2-51f2dd1190bc"> + <name>ИзУказанногоЗначения</name> + <synonym> + <key>ru</key> + <value>Из указанного значения</value> + </synonym> + </enumValues> + <enumValues uuid="9c196011-1485-4fa5-bb05-a9dbe768e8a7"> + <name>ИзВыраженияНаВстроенномЯзыке</name> + <synonym> + <key>ru</key> + <value>Из выражения на встроенном языке</value> + </synonym> + </enumValues> +</mdclass:Enum> diff --git a/SSL/src/Enums/ТипыВариантовОтчетов/ТипыВариантовОтчетов.mdo b/SSL/src/Enums/ТипыВариантовОтчетов/ТипыВариантовОтчетов.mdo index 83f50880a..4cb08314e 100644 --- a/SSL/src/Enums/ТипыВариантовОтчетов/ТипыВариантовОтчетов.mdo +++ b/SSL/src/Enums/ТипыВариантовОтчетов/ТипыВариантовОтчетов.mdo @@ -51,13 +51,6 @@ </synonym> <comment>Открывается отчет без установки варианта</comment> </enumValues> - <enumValues uuid="9b149c20-9328-4e2d-a34b-95c883ae4dcc"> - <name>ДополнительнаяКоманда</name> - <synonym> - <key>ru</key> - <value>Дополнительная команда</value> - </synonym> - </enumValues> <enumValues uuid="3eb3bd40-e33e-4aa7-9407-85ba1500c537"> <name>ВнешнийОтчет</name> <synonym> @@ -65,4 +58,11 @@ <value>Внешний отчет</value> </synonym> </enumValues> + <enumValues uuid="9b149c20-9328-4e2d-a34b-95c883ae4dcc"> + <name>ДополнительнаяКоманда</name> + <synonym> + <key>ru</key> + <value>Дополнительная команда</value> + </synonym> + </enumValues> </mdclass:Enum> diff --git a/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиПередЗаписью/ОбменДаннымиОбменВнешнимиЗаданиямиПередЗаписью.mdo b/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиПередЗаписью/ОбменДаннымиОбменВнешнимиЗаданиямиПередЗаписью.mdo new file mode 100644 index 000000000..de72bbf5f --- /dev/null +++ b/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиПередЗаписью/ОбменДаннымиОбменВнешнимиЗаданиямиПередЗаписью.mdo @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="9c052faf-1d7c-452d-ab81-7fd8f283af66"> + <name>ОбменДаннымиОбменВнешнимиЗаданиямиПередЗаписью</name> + <synonym> + <key>ru</key> + <value>Обмен данными обмен внешними заданиями перед записью</value> + </synonym> + <source> + <types>CatalogObject.ВерсииФайлов</types> + <types>BusinessProcessObject.Задание</types> + <types>CatalogObject.Файлы</types> + <types>TaskObject.ЗадачаИсполнителя</types> + <types>CatalogObject.РолиИсполнителей</types> + </source> + <event>BeforeWrite</event> + <handler>CommonModule.ОбменВнешнимиЗаданиямиСобытия.ОбменВнешнимиЗаданиямиПередЗаписьюПередЗаписью</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиПередУдалением/ОбменДаннымиОбменВнешнимиЗаданиямиПередУдалением.mdo b/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиПередУдалением/ОбменДаннымиОбменВнешнимиЗаданиямиПередУдалением.mdo new file mode 100644 index 000000000..feede27e9 --- /dev/null +++ b/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиПередУдалением/ОбменДаннымиОбменВнешнимиЗаданиямиПередУдалением.mdo @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="5197d1d9-e5f7-4c2d-a72f-8e321a5bde04"> + <name>ОбменДаннымиОбменВнешнимиЗаданиямиПередУдалением</name> + <synonym> + <key>ru</key> + <value>Обмен данными обмен внешними заданиями перед удалением</value> + </synonym> + <source> + <types>CatalogObject.ВерсииФайлов</types> + <types>BusinessProcessObject.Задание</types> + <types>CatalogObject.Файлы</types> + <types>TaskObject.ЗадачаИсполнителя</types> + <types>CatalogObject.РолиИсполнителей</types> + </source> + <event>BeforeDelete</event> + <handler>CommonModule.ОбменВнешнимиЗаданиямиСобытия.ОбменВнешнимиЗаданиямиПередУдалениемПередУдалением</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередЗаписью/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередЗаписью.mdo b/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередЗаписью/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередЗаписью.mdo new file mode 100644 index 000000000..a34d2fd28 --- /dev/null +++ b/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередЗаписью/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередЗаписью.mdo @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c4bc2765-4007-4f48-b8f0-f5911c9a62b6"> + <name>ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередЗаписью</name> + <synonym> + <key>ru</key> + <value>Обмен данными обмен внешними заданиями с 1с документооборот перед записью</value> + </synonym> + <source> + <types>CatalogObject.ВерсииФайлов</types> + <types>BusinessProcessObject.Задание</types> + <types>CatalogObject.Файлы</types> + <types>TaskObject.ЗадачаИсполнителя</types> + <types>CatalogObject.РолиИсполнителей</types> + </source> + <event>BeforeWrite</event> + <handler>CommonModule.ОбменВнешнимиЗаданиямиСобытия.ОбменВнешнимиЗаданиямиБСПДокументооборотПередЗаписьюПередЗаписью</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередУдалением/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередУдалением.mdo b/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередУдалением/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередУдалением.mdo new file mode 100644 index 000000000..c65d14673 --- /dev/null +++ b/SSL/src/EventSubscriptions/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередУдалением/ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередУдалением.mdo @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="5cd8157f-7d91-48b7-afd6-11942da3ba24"> + <name>ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередУдалением</name> + <synonym> + <key>ru</key> + <value>Обмен данными обмен внешними заданиями с 1с документооборот перед удалением</value> + </synonym> + <source> + <types>CatalogObject.ВерсииФайлов</types> + <types>BusinessProcessObject.Задание</types> + <types>CatalogObject.Файлы</types> + <types>TaskObject.ЗадачаИсполнителя</types> + <types>CatalogObject.РолиИсполнителей</types> + </source> + <event>BeforeDelete</event> + <handler>CommonModule.ОбменВнешнимиЗаданиямиСобытия.ОбменВнешнимиЗаданиямиБСПДокументооборотУдалениемПередУдалением</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/СтартВнешнегоЗаданияПередЗаписьюЗадач/СтартВнешнегоЗаданияПередЗаписьюЗадач.mdo b/SSL/src/EventSubscriptions/СтартВнешнегоЗаданияПередЗаписьюЗадач/СтартВнешнегоЗаданияПередЗаписьюЗадач.mdo new file mode 100644 index 000000000..687d9c572 --- /dev/null +++ b/SSL/src/EventSubscriptions/СтартВнешнегоЗаданияПередЗаписьюЗадач/СтартВнешнегоЗаданияПередЗаписьюЗадач.mdo @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="d95dd1f5-ef84-4bcc-b017-65e390d48873"> + <name>СтартВнешнегоЗаданияПередЗаписьюЗадач</name> + <synonym> + <key>ru</key> + <value>Старт внешнего задания перед записью задач</value> + </synonym> + <source> + <types>TaskObject.ЗадачаИсполнителя</types> + </source> + <event>BeforeWrite</event> + <handler>CommonModule.ВнешниеЗадачиВызовСервера.СтартВнешнегоЗаданияПередЗаписьюЗадач</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/СтартВнешнегоЗаданияПриЗаписиЗадач/СтартВнешнегоЗаданияПриЗаписиЗадач.mdo b/SSL/src/EventSubscriptions/СтартВнешнегоЗаданияПриЗаписиЗадач/СтартВнешнегоЗаданияПриЗаписиЗадач.mdo new file mode 100644 index 000000000..2cb282469 --- /dev/null +++ b/SSL/src/EventSubscriptions/СтартВнешнегоЗаданияПриЗаписиЗадач/СтартВнешнегоЗаданияПриЗаписиЗадач.mdo @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="59edae58-edef-4451-97e1-9fbb46a3fd9c"> + <name>СтартВнешнегоЗаданияПриЗаписиЗадач</name> + <synonym> + <key>ru</key> + <value>Старт внешнего задания при записи задач</value> + </synonym> + <source> + <types>TaskObject.ЗадачаИсполнителя</types> + </source> + <event>OnWrite</event> + <handler>CommonModule.ВнешниеЗадачиВызовСервера.СтартВнешнегоЗаданияПриЗаписиЗадач</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиЗначенийПоУмолчанию/Form.form b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиЗначенийПоУмолчанию/Form.form new file mode 100644 index 000000000..acf9ec9b0 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиЗначенийПоУмолчанию/Form.form @@ -0,0 +1,142 @@ +<?xml version="1.0" encoding="UTF-8"?> +<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form"> + <title> + <key>ru</key> + <value>Значения по умолчанию</value> + + + Надпись + 1 + + <key>ru</key> + <value>Указание значений по умолчанию не предусмотрено</value> + + true + true + + true + + + НадписьРасширеннаяПодсказка + 5 + Label + true + true + + Left + + + + НадписьКонтекстноеМеню + 2 + true + + Label + true + true + + Left + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаКомандаОК + 3 + true + true + + true + + + ФормаКомандаОКРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + Form.Command.КомандаОК + true + true + true + UserCmds + Auto + + Right + true + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + Abort + Cancel + Help + Ignore + No + OK + RestoreValues + Retry + SaveValues + Yes + DontBlock + true + true + Vertical + true + true + UseIfNecessary + auto + true + + ЗначенияПоУмолчаниюНаУзле + + <key>ru</key> + <value>Значения по умолчанию на узле</value> + + 1 + + + true + + + true + + + + КомандаОК + + <key>ru</key> + <value>ОК</value> + + 1 + + true + + + StdPicture.Write + + + + КомандаОК + + + TextPicture + Auto + Auto + + + + + + diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиЗначенийПоУмолчанию/Module.bsl b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиЗначенийПоУмолчанию/Module.bsl new file mode 100644 index 000000000..9ff2fdf45 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиЗначенийПоУмолчанию/Module.bsl @@ -0,0 +1,33 @@ +////////////////////////////////////////////////////////// +// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ОбменДаннымиСервер.ФормаНастройкиЗначенийПоУмолчаниюПриСозданииНаСервере(ЭтаФорма, "ОбменВнешнимиЗаданиями"); + +КонецПроцедуры + +////////////////////////////////////////////////////////// +// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + ОбменДаннымиКлиент.ФормаНастройкиПередЗакрытием(Отказ, ЭтаФорма); + +КонецПроцедуры + + +&НаКлиенте +Процедура КомандаОК(Команда) + + ОбменДаннымиКлиент.ФормаНастройкиЗначенийПоУмолчаниюКомандаЗакрытьФорму(ЭтаФорма); + +КонецПроцедуры + diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиУзла/Form.form b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиУзла/Form.form new file mode 100644 index 000000000..ff68499c9 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиУзла/Form.form @@ -0,0 +1,178 @@ + + + + <key>ru</key> + <value>Ограничения передачи данных</value> + + + ГруппаОтступ + 34 + + ДекорацияНадпись + 35 + + <key>ru</key> + <value>Настройка ограничения передачи данных не предусмотрена.</value> + + true + true + + true + + + ДекорацияНадписьРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + ДекорацияНадписьКонтекстноеМеню + 36 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Группа отступ</value> + + + ru + Группа отступ + + + ГруппаОтступРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + КомандаОК + 1 + true + true + + true + + false + + КомандаОКРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + Form.Command.КомандаОК + true + true + true + UserCmds + Auto + + Right + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + Abort + Cancel + Ignore + No + OK + RestoreValues + Retry + SaveValues + Yes + DontBlock + true + true + Vertical + true + true + UseIfNecessary + auto + true + + НастройкаОтборовНаУзле + + <key>ru</key> + <value>Настройка отборов на узле</value> + + 2 + + + true + + + true + + + + КомандаОК + + <key>ru</key> + <value>ОК</value> + + 1 + + true + + + StdPicture.Write + + + + КомандаОК + + + TextPicture + Auto + Auto + + + + + + diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиУзла/Module.bsl b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиУзла/Module.bsl new file mode 100644 index 000000000..d82c9353c --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаНастройкиУзла/Module.bsl @@ -0,0 +1,32 @@ +////////////////////////////////////////////////////////// +// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ОбменДаннымиСервер.ФормаНастройкиУзлаПриСозданииНаСервере(ЭтаФорма, "ОбменВнешнимиЗаданиями"); + +КонецПроцедуры + + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + ОбменДаннымиКлиент.ФормаНастройкиПередЗакрытием(Отказ, ЭтаФорма); + +КонецПроцедуры + +////////////////////////////////////////////////////////// +// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ + +&НаКлиенте +Процедура КомандаОК(Команда) + + ОбменДаннымиКлиент.ФормаНастройкиУзлаКомандаЗакрытьФорму(ЭтаФорма); + +КонецПроцедуры diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss new file mode 100644 index 000000000..91027f589 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss @@ -0,0 +1,15 @@ + + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаСписка/Form.form b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаСписка/Form.form new file mode 100644 index 000000000..930ec796f --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаСписка/Form.form @@ -0,0 +1,349 @@ + + + + Список + 1 + true + true + + true + + + Список + + true + false + None + + Код + 4 + + <key>ru</key> + <value>Код</value> + + true + true + + true + + + Список.Code + + + КодРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + + КодКонтекстноеМеню + 5 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Наименование + 6 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + Список.Description + + true + + НаименованиеРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 7 + true + + LabelField + Enter + true + Left + true + + true + true + + + + НомерОтправленного + 8 + + <key>ru</key> + <value>Номер отправленного сообщения</value> + + true + true + + true + + + Список.SentNo + + + НомерОтправленногоРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + + НомерОтправленногоКонтекстноеМеню + 9 + true + + LabelField + Enter + true + Left + true + + true + true + + + + НомерПринятого + 10 + + <key>ru</key> + <value>Номер принятого сообщения</value> + + true + true + + true + + + Список.ReceivedNo + + + НомерПринятогоРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + + НомерПринятогоКонтекстноеМеню + 11 + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 3 + Left + true + + + СписокСтрокаПоиска + 13 + + СписокСтрокаПоискаРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 14 + true + + Список + + true + + + + СписокСостояниеПросмотра + 16 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 17 + true + + ViewStatusAddition + Список + + true + + + + СписокУправлениеПоиском + 19 + + СписокУправлениеПоискомРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 20 + true + + SearchControlAddition + Список + + true + + + + СписокРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 2 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + true + true + true + + Список.DefaultPicture + + None + None + None + true + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + +
+ + ФормаКоманднаяПанель + -1 + Left + true + + DontBlock + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Список + 1 + + DynamicList + + + true + + + true + +
true
+ + ExchangePlan.ОбменВнешнимиЗаданиями + true + true + true + true + +
+ + + + + +
diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаУзла/Form.form b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаУзла/Form.form new file mode 100644 index 000000000..ba0923832 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаУзла/Form.form @@ -0,0 +1,282 @@ + + + + ГруппаШапка + 71 + + Наименование + 3 + true + true + + true + + + Объект.Description + + + НаименованиеРасширеннаяПодсказка + 89 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 4 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + Normal + + + + Код + 1 + true + true + + true + + + Объект.Code + + + КодРасширеннаяПодсказка + 91 + Label + true + true + + Left + + + + КодКонтекстноеМеню + 2 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа шапка</value> + + + ru + Группа шапка + + + ГруппаШапкаРасширеннаяПодсказка + 88 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ГруппаПрочее + 83 + + НомерПринятого + 84 + true + true + + true + + + Объект.ReceivedNo + + + НомерПринятогоРасширеннаяПодсказка + 94 + Label + true + true + + Left + + + + НомерПринятогоКонтекстноеМеню + 85 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + НомерОтправленного + 86 + true + true + + true + + + Объект.SentNo + + + НомерОтправленногоРасширеннаяПодсказка + 96 + Label + true + true + + Left + + + + НомерОтправленногоКонтекстноеМеню + 87 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Номера сообщений</value> + + + ru + Группа прочее + + + ГруппаПрочееРасширеннаяПодсказка + 93 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + Left + true + + + OnClose + ПриЗакрытии + + Delete + LockOwner + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Объект + 1 + + ExchangePlanObject.ОбменВнешнимиЗаданиями + + + true + + + true + +
true
+ true +
+ + + + + +
diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаУзла/Module.bsl b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаУзла/Module.bsl new file mode 100644 index 000000000..57ecbacc3 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Forms/ФормаУзла/Module.bsl @@ -0,0 +1,8 @@ + +&НаКлиенте +Процедура ПриЗакрытии() + + Оповестить("ЗакрытаФормаУзлаПланаОбмена"); + +КонецПроцедуры + diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/ManagerModule.bsl b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/ManagerModule.bsl new file mode 100644 index 000000000..950fed423 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/ManagerModule.bsl @@ -0,0 +1,161 @@ +// Возвращает имя файла настроек по умолчанию; +// В этот файл будут выгружены настройки обмена для приемника; +// Это значение должно быть одинаковым в плане обмена источника и приемника. +// +// Параметры: +// Нет. +// +// Возвращаемое значение: +// Строка, 255 - имя файла по умолчанию для выгрузки настроек обмена данными +// +Функция ИмяФайлаНастроекДляПриемника() Экспорт + + Возврат НСтр("ru = 'Настройки обмена внешними заданиями'"); + +КонецФункции + +// Возвращает структуру отборов на узле плана обмена с установленными значениями по умолчанию; +// Структура настроек повторяет состав реквизитов шапки и табличных частей плана обмена; +// Для реквизитов шапки используются аналогичные по ключу и значению элементы структуры, +// а для табличных частей используются структуры, +// содержащие массивы значений полей табличных частей плана обмена. +// +// Параметры: +// Нет. +// +// Возвращаемое значение: +// СтруктураНастроек - Структура - структура отборов на узле плана обмена +// +Функция НастройкаОтборовНаУзле() Экспорт + + СтруктураНастроек = Новый Структура; + Возврат СтруктураНастроек; + +КонецФункции + +// Возвращает структуру значений по умолчению для узла; +// Структура настроек повторяет состав реквизитов шапки плана обмена; +// Для реквизитов шапки используются аналогичные по ключу и значению элементы структуры. +// +// Параметры: +// Нет. +// +// Возвращаемое значение: +// СтруктураНастроек - Структура - структура значений по умолчанию на узле плана обмена +// +Функция ЗначенияПоУмолчаниюНаУзле() Экспорт + + Возврат Новый Структура; + +КонецФункции + +// Возвращает строку описания ограничений миграции данных для пользователя; +// Прикладной разработчик на основе установленных отборов на узле должен сформировать строку описания ограничений +// удобную для восприятия пользователем. +// +// Параметры: +// НастройкаОтборовНаУзле - Структура - структура отборов на узле плана обмена, +// полученная при помощи функции НастройкаОтборовНаУзле(). +// +// Возвращаемое значение: +// Строка, Неогранич. - строка описания ограничений миграции данных для пользователя +// +Функция ОписаниеОграниченийПередачиДанных(НастройкаОтборовНаУзле) Экспорт + + Возврат "Указание передачи данных не предусмотрено."; + +КонецФункции + +// Возвращает строку описания значений по умолчанию для пользователя; +// Прикладной разработчик на основе установленных значений по умолчанию на узле должен сформировать строку описания +// удобную для восприятия пользователем. +// +// Параметры: +// ЗначенияПоУмолчаниюНаУзле - Структура - структура значений по умолчанию на узле плана обмена, +// полученная при помощи функции ЗначенияПоУмолчаниюНаУзле(). +// +// Возвращаемое значение: +// Строка, Неогранич. - строка описания для пользователя значений по умолчанию +// +Функция ОписаниеЗначенийПоУмолчанию(ЗначенияПоУмолчаниюНаУзле) Экспорт + + Возврат "Указание значений по умолчанию не предусмотрено."; + +КонецФункции + +// Возвращает пользовательскую форму для создания начального образа базы. +// Эта форма будет открыта после завершения настройки обмена с помощью помощника. +// +// Возвращаемое значение: +// Строка, Неогранич - имя формы +// +// Например: +// Возврат "ПланОбмена.РаспределеннаяИнформационнаяБаза.Форма.ФормаСозданияНачальногоОбраза"; +// +Функция ИмяФормыСозданияНачальногоОбраза() Экспорт + + Возврат ""; + +КонецФункции + +// Возвращает представление команды создания нового обмена данными. +// +// Возвращаемое значение: +// Строка, Неогранич - представление команды, выводимое в пользовательском интерфейсе. +// +// Например: +// Возврат НСтр("ru = 'Создать обмен в распределенной информационной базе'"); +// +Функция ЗаголовокКомандыДляСозданияНовогоОбменаДанными() Экспорт + + Возврат НСтр("ru = 'Создать обмен внешними заданиями'"); + +КонецФункции + +// Определяет, будет ли использоваться помощник для создания новых узлов плана обмена. +// +// Возвращаемое значение: +// Булево - признак использования помощника. +// +Функция ИспользоватьПомощникСозданияОбменаДанными() Экспорт + + Возврат Истина; + +КонецФункции + +// Возвращает версию подсистемы обмена данными +// Для вновь создаваемых планов обмена функция должна +// возвращать значение Перечисления.ВерсииПодсистемыОбменаДанными.Версия30 +// +// Возвращаемое значение: +// ПеречислениеСсылка.ВерсииПодсистемыОбменаДанными +// +Функция ВерсияОбменаДанными() Экспорт + + Возврат Перечисления.ВерсииПодсистемыОбменаДанными.Версия30; + +КонецФункции + +// Возвращает массив используемых транспортов сообщений для этого плана обмена +// +// 1. Например, если план обмена поддерживает только два транспорта сообщений FILE и FTP, +// то тело функции следует определить следующим образом: +// +// Результат = Новый Массив; +// Результат.Добавить(Перечисления.ВидыТранспортаСообщенийОбмена.FILE); +// Результат.Добавить(Перечисления.ВидыТранспортаСообщенийОбмена.FTP); +// Возврат Результат; +// +// 2. Например, если план обмена поддерживает все транспорты сообщений, определенных в конфигурации, +// то тело функции следует определить следующим образом: +// +// Возврат ОбменДаннымиСервер.ВсеТранспортыСообщенийОбменаКонфигурации(); +// +// Возвращаемое значение: +// Массив - массив содержит значения перечисления ВидыТранспортаСообщенийОбмена +// +Функция ИспользуемыеТранспортыСообщенийОбмена() Экспорт + + Возврат ОбменДаннымиСервер.ВсеТранспортыСообщенийОбменаКонфигурации(); + +КонецФункции diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/ObjectModule.bsl b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/ObjectModule.bsl new file mode 100644 index 000000000..0f46476f6 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/ObjectModule.bsl @@ -0,0 +1,6 @@ + +Процедура ПередУдалением(Отказ) + + ОбменВнешнимиЗаданиямиСервер.ОчиститьРегистрИсточникиВнешнихЗадач(ЭтотОбъект.Ссылка); + +КонецПроцедуры diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Templates/ПравилаОбмена/Template.txt b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Templates/ПравилаОбмена/Template.txt new file mode 100644 index 000000000..afd3dddd6 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Templates/ПравилаОбмена/Template.txt @@ -0,0 +1,1273 @@ +<ПравилаОбмена> + <ВерсияФормата>2.01 + <Ид>0000000000000000000000000000000000000002 + <Наименование>БиблиотекаСтандартныхПодсистемДемо --> БиблиотекаСтандартныхПодсистемДемо + <ДатаВремяСоздания>2011-04-14T18:11:51 + <Источник ВерсияПлатформы="8.0" ВерсияКонфигурации="1.1.2.5" СинонимКонфигурации="Демонстрационная конфигурация "Библиотека стандартных подсистем", редакция 1.1">БиблиотекаСтандартныхПодсистемДемо + <Приемник ВерсияПлатформы="8.0" ВерсияКонфигурации="1.1.2.5" СинонимКонфигурации="Демонстрационная конфигурация "Библиотека стандартных подсистем", редакция 1.1">БиблиотекаСтандартныхПодсистемДемо + <ПередЗагрузкойДанных>Параметры.Вставить("ТипХраненияФайловВТомахНаДиске", ФайловыеФункции.ПолучитьТипХраненияФайлов() = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске); + <Параметры> + <Параметр Имя="ТипХраненияФайловВТомахНаДиске " Наименование="ТипХраненияФайловВТомахНаДиске" ИспользуетсяПриЗагрузке="false" УстанавливатьВДиалоге="false" ТипЗначения="Булево" ПередаватьПараметрПриВыгрузке="false"/> + + <Обработки/> + <ПравилаКонвертацииОбъектов> + <Группа> + <Код>Перечисления + <Наименование>Перечисления + <Порядок>50 + <Правило> + <Код>ВариантыВажностиЗадачи + <Наименование>Перечисление: Варианты важности задачи + <Порядок>50 + <Источник>ПеречислениеСсылка.ВариантыВажностиЗадачи + <Приемник>ПеречислениеСсылка.ВариантыВажностиЗадачи + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>Высокая --> Высокая + <Порядок>50 + <Источник>Высокая + <Приемник>Высокая + + <Значение> + <Код>2 + <Наименование>Низкая --> Низкая + <Порядок>100 + <Источник>Низкая + <Приемник>Низкая + + <Значение> + <Код>3 + <Наименование>Обычная --> Обычная + <Порядок>150 + <Источник>Обычная + <Приемник>Обычная + + + + <Правило> + <Код>СтатусыИзвлеченияТекстаФайлов + <Наименование>Перечисление: Статусы извлечения текста файлов + <Порядок>100 + <Источник>ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов + <Приемник>ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>Извлечен --> Извлечен + <Порядок>50 + <Источник>Извлечен + <Приемник>Извлечен + + <Значение> + <Код>2 + <Наименование>ИзвлечьНеУдалось --> ИзвлечьНеУдалось + <Порядок>100 + <Источник>ИзвлечьНеУдалось + <Приемник>ИзвлечьНеУдалось + + <Значение> + <Код>3 + <Наименование>НеИзвлечен --> НеИзвлечен + <Порядок>150 + <Источник>НеИзвлечен + <Приемник>НеИзвлечен + + + + <Правило> + <Код>ТипыКонтактнойИнформации + <Наименование>Перечисление: Типы контактной информации + <Порядок>150 + <Источник>ПеречислениеСсылка.ТипыКонтактнойИнформации + <Приемник>ПеречислениеСсылка.ТипыКонтактнойИнформации + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>Адрес --> Адрес + <Порядок>50 + <Источник>Адрес + <Приемник>Адрес + + <Значение> + <Код>2 + <Наименование>АдресЭлектроннойПочты --> АдресЭлектроннойПочты + <Порядок>100 + <Источник>АдресЭлектроннойПочты + <Приемник>АдресЭлектроннойПочты + + <Значение> + <Код>3 + <Наименование>ВебСтраница --> ВебСтраница + <Порядок>150 + <Источник>ВебСтраница + <Приемник>ВебСтраница + + <Значение> + <Код>4 + <Наименование>Другое --> Другое + <Порядок>200 + <Источник>Другое + <Приемник>Другое + + <Значение> + <Код>5 + <Наименование>Телефон --> Телефон + <Порядок>250 + <Источник>Телефон + <Приемник>Телефон + + <Значение> + <Код>6 + <Наименование>Факс --> Факс + <Порядок>300 + <Источник>Факс + <Приемник>Факс + + + + <Правило> + <Код>ТипыХраненияФайлов + <Наименование>Перечисление: Типы хранения файлов + <Порядок>200 + <Источник>ПеречислениеСсылка.ТипыХраненияФайлов + <Приемник>ПеречислениеСсылка.ТипыХраненияФайлов + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>ВИнформационнойБазе --> ВИнформационнойБазе + <Порядок>50 + <Источник>ВИнформационнойБазе + <Приемник>ВИнформационнойБазе + + <Значение> + <Код>2 + <Наименование>ВТомахНаДиске --> ВТомахНаДиске + <Порядок>100 + <Источник>ВТомахНаДиске + <Приемник>ВТомахНаДиске + + + + <Правило> + <Код>СостоянияБизнесПроцессов + <Наименование>Перечисление: Состояния бизнес процессов + <Порядок>950 + <Источник>ПеречислениеСсылка.СостоянияБизнесПроцессов + <Приемник>ПеречислениеСсылка.СостоянияБизнесПроцессов + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>Активен --> Активен + <Порядок>50 + <Источник>Активен + <Приемник>Активен + + <Значение> + <Код>2 + <Наименование>Остановлен --> Остановлен + <Порядок>100 + <Источник>Остановлен + <Приемник>Остановлен + + + + + <Группа> + <Код>Справочники + <Наименование>Справочники + <Порядок>100 + <Правило> + <Код>ВерсииФайлов + <Наименование>Справочник: Версии файлов + <Порядок>50 + <ПриВыгрузке>Если Источник.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + Если НЕ Источник.Том.Пустая() Тогда + // если файл в томе - поместим его в ФайлХранилище, и поменяем Источник.ТипХраненияФайла на ВИнформационнойБазе + Источник.ФайлХранилище = ФайловыеФункции.ПоместитьДвоичныеДанныеВХранилище(Источник.Том, Источник.ПутьКФайлу, Источник.Ссылка.УникальныйИдентификатор()); + Источник.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; + Источник.ПутьКФайлу = ""; + Источник.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); + КонецЕсли; +Иначе + ФайловыеФункцииПереопределяемый.ВыполнитьДополнительнуюОбработкуПриОтправкеДанных(Источник); +КонецЕсли; + <ПослеЗагрузки>Если Объект.ЭтоНовый() Тогда // добавлен новый файл + ЗапретЗагрузкиФайловПоРасширению = ФайловыеФункции.ПолучитьЗапретЗагрузкиФайловПоРасширению(); + СписокЗапрещенныхРасширений = ФайловыеФункции.ПолучитьСписокЗапрещенныхРасширений(); + РасширениеФайла = Объект.Расширение; + + Если Не ФайловыеФункцииКлиентСервер.РасширениеФайлаРазрешеноДляЗагрузки(ЗапретЗагрузкиФайловПоРасширению, СписокЗапрещенныхРасширений, РасширениеФайла) Тогда + Отказ = Истина; + КонецЕсли; +КонецЕсли; + +Если НЕ Отказ Тогда + Если НЕ Объект.ЭтоНовый() Тогда // изменен уже существующий Объект + + // файл был на томе - удалим его - т.к. при обмене придет новый + Если ОбщегоНазначения.ПолучитьЗначениеРеквизита(Объект.Ссылка, "ТипХраненияФайла") = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + + Том = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Объект.Ссылка, "Том"); + ПутьКФайлу = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Объект.Ссылка, "ПутьКФайлу"); + + ПрежнийПутьНаТоме = ФайловыеФункции.ПолныйПутьТома(Том) + ПутьКФайлу; + ФайловыеФункции.УдалитьФайлыНаСервере(Объект.Ссылка, ПрежнийПутьНаТоме); + КонецЕсли; + КонецЕсли; + + // при обмене сюда приходит только Объект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе + // если тип хранения базы-приемника такой же (в базе) - ничего не делаем + // а вот если в базе приемнике - тип хранения в томах - то разместим на диске + Если Параметры.ТипХраненияФайловВТомахНаДиске Тогда + // тип отличается от типа по умолчанию для данной базы - поменяем + + // по обмену пришел Объект с хранением в базе - но в базе приемнике принято хранить в томах + // - из ФайлХранилище размещаем на томе и меняем ТипХраненияФайла на ВТомахНаДиске + + ДвоичныеДанные = Объект.ФайлХранилище.Получить(); + + ВремяИзменения = Объект.ДатаМодификацииУниверсальная; + РазмерФайла = Объект.Размер; + ИмяБезРасширения = Объект.Наименование; + Расширение = Объект.Расширение; + Зашифрован = Объект.Зашифрован; + + ПутьКФайлуНаТоме = ""; + СсылкаНаТом = Неопределено; + + // добавить в один из томов (где есть свободное место) + ФайловыеФункцииПереопределяемый.ДобавитьНаДискПриПолученииДанныхФайла( + Объект, ДвоичныеДанные, + ПутьКФайлуНаТоме, СсылкаНаТом, ВремяИзменения, + ИмяБезРасширения, Расширение, РазмерФайла, Зашифрован); + + Объект.ПутьКФайлу = ПутьКФайлуНаТоме; + Объект.Том = СсылкаНаТом; + Объект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске; + + Объект.ФайлХранилище = Новый ХранилищеЗначения(Неопределено); + + Иначе + ФайловыеФункцииПереопределяемый.ВыполнитьДополнительнуюОбработкуПриПолученииДанных(Объект); + КонецЕсли; + +КонецЕсли; + <СинхронизироватьПоИдентификатору>true + <Источник>СправочникСсылка.ВерсииФайлов + <Приемник>СправочникСсылка.ВерсииФайлов + <Свойства> + <Свойство> + <Код>33 + <Наименование>Автор --> Автор + <Порядок>50 + <Источник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство Поиск="true"> + <Код>2 + <Наименование>Владелец --> Владелец + <Порядок>100 + <Источник Имя="Владелец" Вид="Свойство" Тип="СправочникСсылка.Файлы"/> + <Приемник Имя="Владелец" Вид="Свойство" Тип="СправочникСсылка.Файлы"/> + <КодПравилаКонвертации>Файлы + + <Свойство> + <Код>3 + <Наименование>ДатаМодификацииУниверсальная --> ДатаМодификацииУниверсальная + <Порядок>150 + <Источник Имя="ДатаМодификацииУниверсальная" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаМодификацииУниверсальная" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>5 + <Наименование>ДатаСоздания --> ДатаСоздания + <Порядок>250 + <Источник Имя="ДатаСоздания" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаСоздания" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>6 + <Наименование>Зашифрован --> Зашифрован + <Порядок>300 + <Источник Имя="Зашифрован" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="Зашифрован" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>7 + <Наименование>ИндексКартинки --> ИндексКартинки + <Порядок>350 + <Источник Имя="ИндексКартинки" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="ИндексКартинки" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>8 + <Наименование>Код --> Код + <Порядок>400 + <Источник Имя="Код" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Код" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>9 + <Наименование>Комментарий --> Комментарий + <Порядок>450 + <Источник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + + <Свойство Поиск="true"> + <Код>10 + <Наименование>Наименование --> Наименование + <Порядок>500 + <Источник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>11 + <Наименование>НомерВерсии --> НомерВерсии + <Порядок>550 + <Источник Имя="НомерВерсии" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="НомерВерсии" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>12 + <Наименование>ПодписанЭЦП --> ПодписанЭЦП + <Порядок>600 + <Источник Имя="ПодписанЭЦП" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ПодписанЭЦП" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>13 + <Наименование>ПолноеНаименование --> ПолноеНаименование + <Порядок>650 + <Источник Имя="ПолноеНаименование" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ПолноеНаименование" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>14 + <Наименование>ПометкаУдаления --> ПометкаУдаления + <Порядок>700 + <Источник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + + <Свойство> + <Код>15 + <Наименование>ПутьКФайлу --> ПутьКФайлу + <Порядок>750 + <Источник Имя="ПутьКФайлу" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ПутьКФайлу" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>16 + <Наименование>Размер --> Размер + <Порядок>800 + <Источник Имя="Размер" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="Размер" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>17 + <Наименование>Расширение --> Расширение + <Порядок>850 + <Источник Имя="Расширение" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Расширение" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>18 + <Наименование>РодительскаяВерсия --> РодительскаяВерсия + <Порядок>900 + <Источник Имя="РодительскаяВерсия" Вид="Реквизит" Тип="СправочникСсылка.ВерсииФайлов"/> + <Приемник Имя="РодительскаяВерсия" Вид="Реквизит" Тип="СправочникСсылка.ВерсииФайлов"/> + <КодПравилаКонвертации>ВерсииФайлов + + <Свойство> + <Код>19 + <Наименование>СтатусИзвлеченияТекста --> СтатусИзвлеченияТекста + <Порядок>950 + <Источник Имя="СтатусИзвлеченияТекста" Вид="Реквизит" Тип="ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов"/> + <Приемник Имя="СтатусИзвлеченияТекста" Вид="Реквизит" Тип="ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов"/> + <КодПравилаКонвертации>СтатусыИзвлеченияТекстаФайлов + + <Свойство> + <Код>20 + <Наименование>ТекстХранилище --> ТекстХранилище + <Порядок>1000 + <Источник Имя="ТекстХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="ТекстХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Свойство> + <Код>21 + <Наименование>ТипХраненияФайла --> ТипХраненияФайла + <Порядок>1050 + <Источник Имя="ТипХраненияФайла" Вид="Реквизит" Тип="ПеречислениеСсылка.ТипыХраненияФайлов"/> + <Приемник Имя="ТипХраненияФайла" Вид="Реквизит" Тип="ПеречислениеСсылка.ТипыХраненияФайлов"/> + <КодПравилаКонвертации>ТипыХраненияФайлов + + <Свойство> + <Код>23 + <Наименование>ФайлХранилище --> ФайлХранилище + <Порядок>1100 + <Источник Имя="ФайлХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="ФайлХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Группа> + <Код>24 + <Наименование>ЭлектронныеЦифровыеПодписи --> ЭлектронныеЦифровыеПодписи + <Порядок>1150 + <Источник Имя="ЭлектронныеЦифровыеПодписи" Вид="ТабличнаяЧасть"/> + <Приемник Имя="ЭлектронныеЦифровыеПодписи" Вид="ТабличнаяЧасть"/> + <Свойство> + <Код>25 + <Наименование>ДатаПодписи --> ДатаПодписи + <Порядок>50 + <Источник Имя="ДатаПодписи" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаПодписи" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>26 + <Наименование>ИмяФайлаПодписи --> ИмяФайлаПодписи + <Порядок>100 + <Источник Имя="ИмяФайлаПодписи" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ИмяФайлаПодписи" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>27 + <Наименование>Комментарий --> Комментарий + <Порядок>150 + <Источник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>28 + <Наименование>КомуВыданСертификат --> КомуВыданСертификат + <Порядок>200 + <Источник Имя="КомуВыданСертификат" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="КомуВыданСертификат" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>29 + <Наименование>Отпечаток --> Отпечаток + <Порядок>250 + <Источник Имя="Отпечаток" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Отпечаток" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>30 + <Наименование>Подпись --> Подпись + <Порядок>300 + <Источник Имя="Подпись" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="Подпись" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Свойство> + <Код>31 + <Наименование>Сертификат --> Сертификат + <Порядок>350 + <Источник Имя="Сертификат" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="Сертификат" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Свойство> + <Код>32 + <Наименование>УстановившийПодпись --> УстановившийПодпись + <Порядок>400 + <Источник Имя="УстановившийПодпись" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="УстановившийПодпись" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + + + <Значения/> + + <Правило> + <Код>Пользователи + <Наименование>Справочник: Пользователи + <Порядок>100 + <СинхронизироватьПоИдентификатору>true + <ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD>true + <Источник>СправочникСсылка.Пользователи + <Приемник>СправочникСсылка.Пользователи + <Свойства/> + <Значения/> + + <Правило> + <Код>Файлы + <Наименование>Справочник: Файлы + <Порядок>150 + <СинхронизироватьПоИдентификатору>true + <Источник>СправочникСсылка.Файлы + <Приемник>СправочникСсылка.Файлы + <Свойства> + <Свойство> + <Код>1 + <Наименование>Код --> Код + <Порядок>50 + <Источник Имя="Код" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Код" Вид="Свойство" Тип="Строка"/> + + <Свойство Поиск="true"> + <Код>2 + <Наименование>Наименование --> Наименование + <Порядок>100 + <Источник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>33 + <Наименование>Автор --> Автор + <Порядок>150 + <Источник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство> + <Код>34 + <Наименование>ТекущаяВерсияАвтор --> ТекущаяВерсияАвтор + <Порядок>200 + <Источник Имя="ТекущаяВерсияАвтор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="ТекущаяВерсияАвтор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство> + <Код>11 + <Наименование>Редактирует --> Редактирует + <Порядок>250 + <Источник Имя="Редактирует" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Редактирует" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство Поиск="true"> + <Код>4 + <Наименование>ВладелецФайла --> ВладелецФайла + <Порядок>300 + <Источник Имя="ВладелецФайла" Вид="Реквизит"/> + <Приемник Имя="ВладелецФайла" Вид="Реквизит"/> + + <Свойство> + <Код>5 + <Наименование>ДатаСоздания --> ДатаСоздания + <Порядок>350 + <Источник Имя="ДатаСоздания" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаСоздания" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>6 + <Наименование>Зашифрован --> Зашифрован + <Порядок>400 + <Источник Имя="Зашифрован" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="Зашифрован" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>7 + <Наименование>ИндексКартинки --> ИндексКартинки + <Порядок>450 + <Источник Имя="ИндексКартинки" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="ИндексКартинки" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>8 + <Наименование>Описание --> Описание + <Порядок>500 + <Источник Имя="Описание" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Описание" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>9 + <Наименование>ПодписанЭЦП --> ПодписанЭЦП + <Порядок>550 + <Источник Имя="ПодписанЭЦП" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ПодписанЭЦП" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>10 + <Наименование>ПолноеНаименование --> ПолноеНаименование + <Порядок>600 + <Источник Имя="ПолноеНаименование" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ПолноеНаименование" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>12 + <Наименование>ТекстХранилище --> ТекстХранилище + <Порядок>650 + <Источник Имя="ТекстХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="ТекстХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Свойство> + <Код>13 + <Наименование>ТекущаяВерсия --> ТекущаяВерсия + <Порядок>700 + <Источник Имя="ТекущаяВерсия" Вид="Реквизит" Тип="СправочникСсылка.ВерсииФайлов"/> + <Приемник Имя="ТекущаяВерсия" Вид="Реквизит" Тип="СправочникСсылка.ВерсииФайлов"/> + <КодПравилаКонвертации>ВерсииФайлов + + <Свойство> + <Код>16 + <Наименование>ТекущаяВерсияДатаСоздания --> ТекущаяВерсияДатаСоздания + <Порядок>800 + <Источник Имя="ТекущаяВерсияДатаСоздания" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ТекущаяВерсияДатаСоздания" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>17 + <Наименование>ТекущаяВерсияКод --> ТекущаяВерсияКод + <Порядок>850 + <Источник Имя="ТекущаяВерсияКод" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ТекущаяВерсияКод" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>18 + <Наименование>ТекущаяВерсияНомерВерсии --> ТекущаяВерсияНомерВерсии + <Порядок>900 + <Источник Имя="ТекущаяВерсияНомерВерсии" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="ТекущаяВерсияНомерВерсии" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>19 + <Наименование>ТекущаяВерсияПутьКФайлу --> ТекущаяВерсияПутьКФайлу + <Порядок>950 + <Источник Имя="ТекущаяВерсияПутьКФайлу" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ТекущаяВерсияПутьКФайлу" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>20 + <Наименование>ТекущаяВерсияРазмер --> ТекущаяВерсияРазмер + <Порядок>1000 + <Источник Имя="ТекущаяВерсияРазмер" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="ТекущаяВерсияРазмер" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>21 + <Наименование>ТекущаяВерсияРасширение --> ТекущаяВерсияРасширение + <Порядок>1050 + <Источник Имя="ТекущаяВерсияРасширение" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ТекущаяВерсияРасширение" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>23 + <Наименование>ХранитьВерсии --> ХранитьВерсии + <Порядок>1100 + <Источник Имя="ХранитьВерсии" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ХранитьВерсии" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>24 + <Наименование>ПометкаУдаления --> ПометкаУдаления + <Порядок>1150 + <Источник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + + <Группа> + <Код>29 + <Наименование>СертификатыШифрования --> СертификатыШифрования + <Порядок>1250 + <Источник Имя="СертификатыШифрования" Вид="ТабличнаяЧасть"/> + <Приемник Имя="СертификатыШифрования" Вид="ТабличнаяЧасть"/> + <Свойство> + <Код>30 + <Наименование>Отпечаток --> Отпечаток + <Порядок>50 + <Источник Имя="Отпечаток" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Отпечаток" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>31 + <Наименование>Представление --> Представление + <Порядок>100 + <Источник Имя="Представление" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Представление" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>32 + <Наименование>Сертификат --> Сертификат + <Порядок>150 + <Источник Имя="Сертификат" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="Сертификат" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + + + <Значения/> + + <Правило> + <Код>РолиИсполнителей + <Наименование>Справочник: Роли исполнителей + <Порядок>250 + <СинхронизироватьПоИдентификатору>true + <Источник>СправочникСсылка.РолиИсполнителей + <Приемник>СправочникСсылка.РолиИсполнителей + <Свойства> + <Свойство> + <Код>2 + <Наименование>ИспользуетсяБезОбъектовАдресации --> ИспользуетсяБезОбъектовАдресации + <Порядок>100 + <Источник Имя="ИспользуетсяБезОбъектовАдресации" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ИспользуетсяБезОбъектовАдресации" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>3 + <Наименование>ИспользуетсяСОбъектамиАдресации --> ИспользуетсяСОбъектамиАдресации + <Порядок>150 + <Источник Имя="ИспользуетсяСОбъектамиАдресации" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ИспользуетсяСОбъектамиАдресации" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>4 + <Наименование>Код --> Код + <Порядок>200 + <Источник Имя="Код" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Код" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>5 + <Наименование>Комментарий --> Комментарий + <Порядок>250 + <Источник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + + <Свойство Поиск="true"> + <Код>6 + <Наименование>Наименование --> Наименование + <Порядок>300 + <Источник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>7 + <Наименование>ПометкаУдаления --> ПометкаУдаления + <Порядок>350 + <Источник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + + <Свойство Отключить="true"> + <Код>8 + <Наименование>ВнешняяРоль --> ВнешняяРоль + <Порядок>400 + <Источник Имя="ВнешняяРоль" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ВнешняяРоль" Вид="Реквизит" Тип="Булево"/> + + <Свойство Отключить="true"> + <Код>9 + <Наименование>УзелОбмена --> УзелОбмена + <Порядок>450 + <Источник Имя="УзелОбмена" Вид="Реквизит"/> + <Приемник Имя="УзелОбмена" Вид="Реквизит"/> + + + <Значения> + <Значение> + <Код>5 + <Наименование>ОтветственныйЗаКонтрольИсполнения --> Ответственны + <Порядок>250 + <Источник>ОтветственныйЗаКонтрольИсполнения + <Приемник>ОтветственныйЗаКонтрольИсполнения + + + + + <Группа> + <Код>Задачи + <Наименование>Задачи + <Порядок>200 + <Правило> + <Код>ЗадачаИсполнителя + <Наименование>Задача: Задача + <Порядок>50 + <СинхронизироватьПоИдентификатору>true + <Источник>ЗадачаСсылка.ЗадачаИсполнителя + <Приемник>ЗадачаСсылка.ЗадачаИсполнителя + <Свойства> + <Свойство> + <Код>1 + <Наименование>Автор --> Автор + <Порядок>50 + <Источник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство> + <Код>2 + <Наименование>АвторСтрокой --> АвторСтрокой + <Порядок>100 + <Источник Имя="АвторСтрокой" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="АвторСтрокой" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>3 + <Наименование>БизнесПроцесс --> БизнесПроцесс + <Порядок>150 + <Источник Имя="БизнесПроцесс" Вид="Свойство"/> + <Приемник Имя="БизнесПроцесс" Вид="Свойство"/> + + <Свойство> + <Код>4 + <Наименование>Важность --> Важность + <Порядок>200 + <Источник Имя="Важность" Вид="Реквизит" Тип="ПеречислениеСсылка.ВариантыВажностиЗадачи"/> + <Приемник Имя="Важность" Вид="Реквизит" Тип="ПеречислениеСсылка.ВариантыВажностиЗадачи"/> + <КодПравилаКонвертации>ВариантыВажностиЗадачи + + <Свойство> + <Код>5 + <Наименование>Выполнена --> Выполнена + <Порядок>250 + <Источник Имя="Выполнена" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="Выполнена" Вид="Свойство" Тип="Булево"/> + + <Свойство Поиск="true"> + <Код>7 + <Наименование>Дата --> Дата + <Порядок>350 + <Источник Имя="Дата" Вид="Свойство" Тип="Дата"/> + <Приемник Имя="Дата" Вид="Свойство" Тип="Дата"/> + + <Свойство> + <Код>8 + <Наименование>ДатаИсполнения --> ДатаИсполнения + <Порядок>400 + <Источник Имя="ДатаИсполнения" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаИсполнения" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>9 + <Наименование>ДатаНачала --> ДатаНачала + <Порядок>450 + <Источник Имя="ДатаНачала" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаНачала" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>10 + <Наименование>ДатаПринятияКИсполнению --> ДатаПринятияКИсполнению + <Порядок>500 + <Источник Имя="ДатаПринятияКИсполнению" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаПринятияКИсполнению" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>11 + <Наименование>ДополнительныйОбъектАдресации --> ДополнительныйОбъектАдресации + <Порядок>550 + <Источник Имя="ДополнительныйОбъектАдресации" Вид="Свойство"/> + <Приемник Имя="ДополнительныйОбъектАдресации" Вид="Свойство"/> + + <Свойство> + <Код>12 + <Наименование>Исполнитель --> Исполнитель + <Порядок>600 + <Источник Имя="Исполнитель" Вид="Свойство" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Исполнитель" Вид="Свойство" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство Поиск="true"> + <Код>13 + <Наименование>Наименование --> Наименование + <Порядок>650 + <Источник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + + <Свойство Поиск="true"> + <Код>14 + <Наименование>Номер --> Номер + <Порядок>700 + <Источник Имя="Номер" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Номер" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>15 + <Наименование>Описание --> Описание + <Порядок>750 + <Источник Имя="Описание" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Описание" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>16 + <Наименование>ОсновнойОбъектАдресации --> ОсновнойОбъектАдресации + <Порядок>800 + <Источник Имя="ОсновнойОбъектАдресации" Вид="Свойство"/> + <Приемник Имя="ОсновнойОбъектАдресации" Вид="Свойство"/> + + <Свойство> + <Код>17 + <Наименование>ПометкаУдаления --> ПометкаУдаления + <Порядок>850 + <Источник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + + <Свойство> + <Код>18 + <Наименование>Предмет --> Предмет + <Порядок>900 + <Источник Имя="Предмет" Вид="Реквизит"/> + <Приемник Имя="Предмет" Вид="Реквизит"/> + + <Свойство> + <Код>19 + <Наименование>ПредметСтрокой --> ПредметСтрокой + <Порядок>950 + <Источник Имя="ПредметСтрокой" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ПредметСтрокой" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>20 + <Наименование>ПринятаКИсполнению --> ПринятаКИсполнению + <Порядок>1000 + <Источник Имя="ПринятаКИсполнению" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ПринятаКИсполнению" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>21 + <Наименование>РезультатВыполнения --> РезультатВыполнения + <Порядок>1050 + <Источник Имя="РезультатВыполнения" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="РезультатВыполнения" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>22 + <Наименование>РольИсполнителя --> РольИсполнителя + <Порядок>1100 + <Источник Имя="РольИсполнителя" Вид="Свойство" Тип="СправочникСсылка.РолиИсполнителей"/> + <Приемник Имя="РольИсполнителя" Вид="Свойство" Тип="СправочникСсылка.РолиИсполнителей"/> + <КодПравилаКонвертации>РолиИсполнителей + + <Свойство> + <Код>23 + <Наименование>СостояниеБизнесПроцесса --> СостояниеБизнесПроцесса + <Порядок>1150 + <Источник Имя="СостояниеБизнесПроцесса" Вид="Реквизит" Тип="ПеречислениеСсылка.СостоянияБизнесПроцессов"/> + <Приемник Имя="СостояниеБизнесПроцесса" Вид="Реквизит" Тип="ПеречислениеСсылка.СостоянияБизнесПроцессов"/> + <КодПравилаКонвертации>СостоянияБизнесПроцессов + + <Свойство> + <Код>24 + <Наименование>СрокИсполнения --> СрокИсполнения + <Порядок>1200 + <Источник Имя="СрокИсполнения" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="СрокИсполнения" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>25 + <Наименование>ТочкаМаршрута --> ТочкаМаршрута + <Порядок>1250 + <Источник Имя="ТочкаМаршрута" Вид="Свойство"/> + <Приемник Имя="ТочкаМаршрута" Вид="Свойство"/> + <КодПравилаКонвертации>ТочкиМаршрута + + + <Значения/> + + + <Группа> + <Код>Бизнес-процессы + <Наименование>Бизнес-процессы + <Порядок>250 + <Правило> + <Код>Задание + <Наименование>Бизнес процесс: Задание + <Порядок>50 + <СинхронизироватьПоИдентификатору>true + <Источник>БизнесПроцессСсылка.Задание + <Приемник>БизнесПроцессСсылка.Задание + <Свойства> + <Свойство Поиск="true"> + <Код>1 + <Наименование>Дата --> Дата + <Порядок>50 + <Источник Имя="Дата" Вид="Свойство" Тип="Дата"/> + <Приемник Имя="Дата" Вид="Свойство" Тип="Дата"/> + + <Свойство Поиск="true"> + <Код>2 + <Наименование>Наименование --> Наименование + <Порядок>100 + <Источник Имя="Наименование" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Наименование" Вид="Реквизит" Тип="Строка"/> + + <Свойство Поиск="true"> + <Код>3 + <Наименование>Номер --> Номер + <Порядок>150 + <Источник Имя="Номер" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Номер" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>4 + <Наименование>Автор --> Автор + <Порядок>200 + <Источник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство> + <Код>5 + <Наименование>АвторСтрокой --> АвторСтрокой + <Порядок>250 + <Источник Имя="АвторСтрокой" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="АвторСтрокой" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>6 + <Наименование>Важность --> Важность + <Порядок>300 + <Источник Имя="Важность" Вид="Реквизит" Тип="ПеречислениеСсылка.ВариантыВажностиЗадачи"/> + <Приемник Имя="Важность" Вид="Реквизит" Тип="ПеречислениеСсылка.ВариантыВажностиЗадачи"/> + <КодПравилаКонвертации>ВариантыВажностиЗадачи + + <Свойство> + <Код>27 + <Наименование>ВнешнееЗадание --> ВнешнееЗадание + <Порядок>350 + <Источник Имя="ВнешнееЗадание" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ВнешнееЗадание" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>7 + <Наименование>Выполнено --> Выполнено + <Порядок>400 + <Источник Имя="Выполнено" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="Выполнено" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>8 + <Наименование>ГлавнаяЗадача --> ГлавнаяЗадача + <Порядок>450 + <Источник Имя="ГлавнаяЗадача" Вид="Реквизит" Тип="ЗадачаСсылка.ЗадачаИсполнителя"/> + <Приемник Имя="ГлавнаяЗадача" Вид="Реквизит" Тип="ЗадачаСсылка.ЗадачаИсполнителя"/> + <КодПравилаКонвертации>ЗадачаИсполнителя + + <Свойство> + <Код>9 + <Наименование>ДатаЗавершения --> ДатаЗавершения + <Порядок>500 + <Источник Имя="ДатаЗавершения" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаЗавершения" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>10 + <Наименование>Исполнитель --> Исполнитель + <Порядок>550 + <Источник Имя="Исполнитель" Вид="Реквизит"/> + <Приемник Имя="Исполнитель" Вид="Реквизит"/> + + <Свойство> + <Код>11 + <Наименование>НаПроверке --> НаПроверке + <Порядок>600 + <Источник Имя="НаПроверке" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="НаПроверке" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>12 + <Наименование>НомерИтерации --> НомерИтерации + <Порядок>650 + <Источник Имя="НомерИтерации" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="НомерИтерации" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>13 + <Наименование>Подтверждено --> Подтверждено + <Порядок>700 + <Источник Имя="Подтверждено" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="Подтверждено" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>15 + <Наименование>Проверяющий --> Проверяющий + <Порядок>750 + <Источник Имя="Проверяющий" Вид="Реквизит"/> + <Приемник Имя="Проверяющий" Вид="Реквизит"/> + + <Свойство> + <Код>16 + <Наименование>РезультатВыполнения --> РезультатВыполнения + <Порядок>800 + <Источник Имя="РезультатВыполнения" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="РезультатВыполнения" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>17 + <Наименование>Содержание --> Содержание + <Порядок>850 + <Источник Имя="Содержание" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Содержание" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>18 + <Наименование>СодержаниеПредмета --> СодержаниеПредмета + <Порядок>900 + <Источник Имя="СодержаниеПредмета" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="СодержаниеПредмета" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Свойство> + <Код>20 + <Наименование>СрокИсполнения --> СрокИсполнения + <Порядок>950 + <Источник Имя="СрокИсполнения" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="СрокИсполнения" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>21 + <Наименование>СрокПроверки --> СрокПроверки + <Порядок>1000 + <Источник Имя="СрокПроверки" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="СрокПроверки" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>22 + <Наименование>ВедущаяЗадача --> ВедущаяЗадача + <Порядок>1050 + <Источник Имя="ВедущаяЗадача" Вид="Свойство" Тип="ЗадачаСсылка.ЗадачаИсполнителя"/> + <Приемник Имя="ВедущаяЗадача" Вид="Свойство" Тип="ЗадачаСсылка.ЗадачаИсполнителя"/> + <КодПравилаКонвертации>ЗадачаИсполнителя + + <Свойство> + <Код>23 + <Наименование>Завершен --> Завершен + <Порядок>1100 + <Источник Имя="Завершен" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="Завершен" Вид="Свойство" Тип="Булево"/> + + <Свойство> + <Код>24 + <Наименование>ПометкаУдаления --> ПометкаУдаления + <Порядок>1150 + <Источник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + + <Свойство> + <Код>25 + <Наименование>Стартован --> Стартован + <Порядок>1200 + <Источник Имя="Стартован" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="Стартован" Вид="Свойство" Тип="Булево"/> + + <Свойство> + <Код>26 + <Наименование>Состояние --> Состояние + <Порядок>1250 + <Источник Имя="Состояние" Вид="Реквизит" Тип="ПеречислениеСсылка.СостоянияБизнесПроцессов"/> + <Приемник Имя="Состояние" Вид="Реквизит" Тип="ПеречислениеСсылка.СостоянияБизнесПроцессов"/> + <КодПравилаКонвертации>СостоянияБизнесПроцессов + + + <Значения/> + + + <Группа> + <Код>точки маршрута + <Наименование>точки маршрута + <Порядок>300 + <Правило> + <Код>ТочкиМаршрута + <Наименование>Точка маршрута бизнес процесса: Задание + <Порядок>50 + <СинхронизироватьПоИдентификатору>true + <Источник>ТочкаМаршрутаБизнесПроцессаСсылка.Задание + <Приемник>ТочкаМаршрутаБизнесПроцессаСсылка.Задание + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>ВернутьИсполнителю --> ВернутьИсполнителю + <Порядок>50 + <Источник>ВернутьИсполнителю + <Приемник>ВернутьИсполнителю + + <Значение> + <Код>2 + <Наименование>Выполнить --> Выполнить + <Порядок>100 + <Источник>Выполнить + <Приемник>Выполнить + + <Значение> + <Код>3 + <Наименование>Завершение --> Завершение + <Порядок>150 + <Источник>Завершение + <Приемник>Завершение + + <Значение> + <Код>4 + <Наименование>НужнаПроверка --> НужнаПроверка + <Порядок>200 + <Источник>НужнаПроверка + <Приемник>НужнаПроверка + + <Значение> + <Код>5 + <Наименование>Проверить --> Проверить + <Порядок>250 + <Источник>Проверить + <Приемник>Проверить + + <Значение> + <Код>6 + <Наименование>Старт --> Старт + <Порядок>300 + <Источник>Старт + <Приемник>Старт + + + + + + <ПравилаВыгрузкиДанных> + <Группа Отключить="false"> + <Код>Справочники + <Наименование>Справочники + <Порядок>50 + <Правило Отключить="false"> + <Код>ВерсииФайлов + <Наименование>ВерсииФайлов + <Порядок>50 + <КодПравилаКонвертации>ВерсииФайлов + <СпособОтбораДанных>СтандартнаяВыборка + <ОбъектВыборки>СправочникСсылка.ВерсииФайлов + + <Правило Отключить="false"> + <Код>Файлы + <Наименование>Файлы + <Порядок>100 + <КодПравилаКонвертации>Файлы + <СпособОтбораДанных>СтандартнаяВыборка + <ОбъектВыборки>СправочникСсылка.Файлы + + <Правило Отключить="false"> + <Код>РолиИсполнителей + <Наименование>РолиИсполнителей + <Порядок>150 + <КодПравилаКонвертации>РолиИсполнителей + <СпособОтбораДанных>СтандартнаяВыборка + <ОбъектВыборки>СправочникСсылка.РолиИсполнителей + + + <Группа Отключить="false"> + <Код>БизнесПроцессы + <Наименование>БизнесПроцессы + <Порядок>200 + <Правило Отключить="false"> + <Код>Задание + <Наименование>Задание + <Порядок>100 + <КодПравилаКонвертации>Задание + <СпособОтбораДанных>СтандартнаяВыборка + <ОбъектВыборки>БизнесПроцессСсылка.Задание + + + <Группа Отключить="false"> + <Код>Задачи + <Наименование>Задачи + <Порядок>250 + <Правило Отключить="false"> + <Код>ЗадачаИсполнителя + <Наименование>ЗадачаИсполнителя + <Порядок>50 + <КодПравилаКонвертации>ЗадачаИсполнителя + <СпособОтбораДанных>СтандартнаяВыборка + <ОбъектВыборки>ЗадачаСсылка.ЗадачаИсполнителя + + + + <ПравилаОчисткиДанных/> + <Алгоритмы/> + <Запросы/> + \ No newline at end of file diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Templates/ПравилаРегистрации/Template.txt b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Templates/ПравилаРегистрации/Template.txt new file mode 100644 index 000000000..70a4dffd8 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/Templates/ПравилаРегистрации/Template.txt @@ -0,0 +1,286 @@ +<ПравилаРегистрации> + <ВерсияФормата>2.01 + <Ид>9821bd81-5e9c-11e0-a6b4-e0cb4ed5f5c8 + <Наименование>БиблиотекаСтандартныхПодсистемДемо: Обмен внешними заданиями 3 + <ДатаВремяСоздания>2011-04-14T09:44:19 + <ПланОбмена Имя="ОбменВнешнимиЗаданиями">ПланОбменаСсылка.ОбменВнешнимиЗаданиями + <Конфигурация ВерсияПлатформы="8.2" ВерсияКонфигурации="1.2.1.1" СинонимКонфигурации="Демонстрационная конфигурация "Библиотека стандартных подсистем", редакция 1.2">БиблиотекаСтандартныхПодсистемДемо + <СоставПланаОбмена> + <Элемент> + <Тип>СправочникСсылка.РолиИсполнителей + <Авторегистрация>false + + <Элемент> + <Тип>РегистрСведенийЗапись.СоответствиеОбъектовИнформационныхБаз + <Авторегистрация>false + + <Элемент> + <Тип>ЗадачаСсылка.ЗадачаИсполнителя + <Авторегистрация>false + + <Элемент> + <Тип>СправочникСсылка.Файлы + <Авторегистрация>false + + <Элемент> + <Тип>СправочникСсылка.ВерсииФайлов + <Авторегистрация>false + + <Элемент> + <Тип>ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения + <Авторегистрация>true + + <Элемент> + <Тип>БизнесПроцессСсылка.Задание + <Авторегистрация>false + + <Элемент> + <Тип>СправочникСсылка.НаборыДополнительныхРеквизитовИСведений + <Авторегистрация>true + + + <ПравилаРегистрацииОбъектов> + <Группа Отключить="false"> + <Код>000000001 + <Наименование>справочники + <Правило Отключить="false" Валидное="true"> + <Код>000000006 + <Наименование>Версии файлов + <ОбъектНастройки>СправочникСсылка.ВерсииФайлов + <ОбъектМетаданныхИмя>Справочник.ВерсииФайлов + <ОбъектМетаданныхТип>Справочник + <ОтборПоСвойствамПланаОбмена/> + <ОтборПоСвойствамОбъекта/> + <ПередОбработкой>Если НЕ Объект.ОбменДанными.Загрузка Тогда + + Если ТипЗнч(Объект.Владелец.ВладелецФайла) <> Тип("БизнесПроцессСсылка.Задание") Тогда + Отказ = Истина; + КонецЕсли; + +КонецЕсли; + + <ПослеОбработки>Получатели.Очистить(); + +Если Объект.ОбменДанными.Загрузка Тогда + + ОбъектСсылка = Объект.Ссылка; + Если Объект.ЭтоНовый() Тогда + ОбъектСсылка = Объект.ПолучитьСсылкуНового(); + ОбменВнешнимиЗаданиямиСервер.ЗаписатьУзелВРегистрИсточникиВнешнихЗадач(ОбъектСсылка, Объект.ОбменДанными.Отправитель); + КонецЕсли; + +Иначе + + УзелИзРегистра = Неопределено; + + Если Не Объект.ЭтоНовый() Тогда + УзелИзРегистра = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелИзРегистраИсточникиВнешнихЗадач(Объект.Ссылка); + КонецЕсли; + + Если ЗначениеЗаполнено(УзелИзРегистра) Тогда + Получатели.Добавить(УзелИзРегистра); + Иначе + + Если ОбменВнешнимиЗаданиямиСервер.ВерсияФайлаПринадлежитВнешнейРоли(Объект.Владелец) Тогда + + УзелОбмена = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелОбменаДляВерсииФайла(Объект.Владелец); + Если ЗначениеЗаполнено(УзелОбмена) Тогда + Получатели.Добавить(УзелОбмена); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецЕсли; + + + + <Правило Отключить="false" Валидное="true"> + <Код>000000007 + <Наименование>Роли исполнителей + <ОбъектНастройки>СправочникСсылка.РолиИсполнителей + <ОбъектМетаданныхИмя>Справочник.РолиИсполнителей + <ОбъектМетаданныхТип>Справочник + <ОтборПоСвойствамПланаОбмена/> + <ОтборПоСвойствамОбъекта/> + <ПослеОбработки>Получатели.Очистить(); + +Если НЕ Объект.ОбменДанными.Загрузка Тогда + + Если Объект.ВнешняяРоль Тогда + + УзелОбмена = Объект.УзелОбмена; + Если ЗначениеЗаполнено(УзелОбмена) Тогда + Получатели.Добавить(УзелОбмена); + КонецЕсли; + + КонецЕсли; + +КонецЕсли; + + + <Правило Отключить="false" Валидное="true"> + <Код>000000008 + <Наименование>Файлы + <ОбъектНастройки>СправочникСсылка.Файлы + <ОбъектМетаданныхИмя>Справочник.Файлы + <ОбъектМетаданныхТип>Справочник + <ОтборПоСвойствамПланаОбмена/> + <ОтборПоСвойствамОбъекта/> + <ПередОбработкой> +Если НЕ Объект.ОбменДанными.Загрузка Тогда + + Если ТипЗнч(Объект.ВладелецФайла) <> Тип("БизнесПроцессСсылка.Задание") Тогда + Отказ = Истина; + КонецЕсли; + +КонецЕсли; + + <ПослеОбработки>Получатели.Очистить(); + +Если Объект.ОбменДанными.Загрузка Тогда + + ОбъектСсылка = Объект.Ссылка; + Если Объект.ЭтоНовый() Тогда + ОбъектСсылка = Объект.ПолучитьСсылкуНового(); + ОбменВнешнимиЗаданиямиСервер.ЗаписатьУзелВРегистрИсточникиВнешнихЗадач(ОбъектСсылка, Объект.ОбменДанными.Отправитель); + КонецЕсли; + +Иначе + + УзелИзРегистра = Неопределено; + + Если Не Объект.ЭтоНовый() Тогда + УзелИзРегистра = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелИзРегистраИсточникиВнешнихЗадач(Объект.Ссылка); + КонецЕсли; + + Если ЗначениеЗаполнено(УзелИзРегистра) Тогда + Получатели.Добавить(УзелИзРегистра); + Иначе + + Если ОбменВнешнимиЗаданиямиСервер.ФайлПринадлежитВнешнейРоли(Объект.ВладелецФайла) Тогда + + УзелОбмена = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелОбменаДляФайла(Объект.ВладелецФайла); + Если ЗначениеЗаполнено(УзелОбмена) Тогда + Получатели.Добавить(УзелОбмена); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецЕсли; + + + + + <Группа Отключить="false"> + <Код>000000002 + <Наименование>бизнес-процессы + <Правило Отключить="false" Валидное="true"> + <Код>000000004 + <Наименование>Задание + <ОбъектНастройки>БизнесПроцессСсылка.Задание + <ОбъектМетаданныхИмя>БизнесПроцесс.Задание + <ОбъектМетаданныхТип>БизнесПроцесс + <ОтборПоСвойствамПланаОбмена/> + <ОтборПоСвойствамОбъекта/> + <ПослеОбработки>Получатели.Очистить(); + +Если Объект.ОбменДанными.Загрузка Тогда + + ОбъектСсылка = Объект.Ссылка; + Если Объект.ЭтоНовый() Тогда + ОбъектСсылка = Объект.ПолучитьСсылкуНового(); + ОбменВнешнимиЗаданиямиСервер.ЗаписатьУзелВРегистрИсточникиВнешнихЗадач(ОбъектСсылка, Объект.ОбменДанными.Отправитель); + КонецЕсли; + +Иначе + + УзелИзРегистра = Неопределено; + + Если Не Объект.ЭтоНовый() Тогда + УзелИзРегистра = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелИзРегистраИсточникиВнешнихЗадач(Объект.Ссылка); + КонецЕсли; + + Если ЗначениеЗаполнено(УзелИзРегистра) Тогда + Получатели.Добавить(УзелИзРегистра); + Иначе + + Если ТипЗнч(Объект.Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") + И Объект.Исполнитель.ВнешняяРоль Тогда + + УзелОбмена = Объект.Исполнитель.УзелОбмена; + Если ЗначениеЗаполнено(УзелОбмена) Тогда + Получатели.Добавить(УзелОбмена); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецЕсли; + + + + + <Группа Отключить="false"> + <Код>000000003 + <Наименование>задачи + <Правило Отключить="false" Валидное="true"> + <Код>000000005 + <Наименование>Задача + <ОбъектНастройки>ЗадачаСсылка.ЗадачаИсполнителя + <ОбъектМетаданныхИмя>Задача.ЗадачаИсполнителя + <ОбъектМетаданныхТип>Задача + <ОтборПоСвойствамПланаОбмена/> + <ОтборПоСвойствамОбъекта/> + <ПередОбработкой> +Если НЕ Объект.ОбменДанными.Загрузка Тогда + + Если ТипЗнч(Объект.БизнесПроцесс) <> Тип("БизнесПроцессСсылка.Задание") Тогда + Отказ = Истина; + КонецЕсли; + +КонецЕсли; + <ПослеОбработки>Получатели.Очистить(); + +Если Объект.ОбменДанными.Загрузка Тогда + + ОбъектСсылка = Объект.Ссылка; + Если Объект.ЭтоНовый() Тогда + ОбъектСсылка = Объект.ПолучитьСсылкуНового(); + ОбменВнешнимиЗаданиямиСервер.ЗаписатьУзелВРегистрИсточникиВнешнихЗадач(ОбъектСсылка, Объект.ОбменДанными.Отправитель); + КонецЕсли; + +Иначе + + УзелИзРегистра = Неопределено; + + Если Не Объект.ЭтоНовый() Тогда + УзелИзРегистра = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелИзРегистраИсточникиВнешнихЗадач(Объект.Ссылка); + КонецЕсли; + + Если ЗначениеЗаполнено(УзелИзРегистра) Тогда + Получатели.Добавить(УзелИзРегистра); + Иначе + + Если ЗначениеЗаполнено(Объект.РольИсполнителя) И Объект.РольИсполнителя.ВнешняяРоль Тогда + + УзелОбмена = Объект.РольИсполнителя.УзелОбмена; + Если ЗначениеЗаполнено(УзелОбмена) Тогда + Получатели.Добавить(УзелОбмена); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецЕсли; + + + + + + \ No newline at end of file diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/ОбменВнешнимиЗаданиями.mdo b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/ОбменВнешнимиЗаданиями.mdo new file mode 100644 index 000000000..853611d24 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиями/ОбменВнешнимиЗаданиями.mdo @@ -0,0 +1,161 @@ + + + + + + + + + + ОбменВнешнимиЗаданиями + + ru + Обмен внешними заданиями + + ExchangePlan.ОбменВнешнимиЗаданиями.StandardAttribute.Description + ExchangePlan.ОбменВнешнимиЗаданиями.StandardAttribute.Code + DontUse + + Use + ThisNode + + Use + + + + + Use + ReceivedNo + + Use + + + + + Use + SentNo + + Use + + + + + Use + Ref + + Use + + + + + Use + DeletionMark + + Use + + + + + Use + Description + + ShowError + Use + + + + + Use + Code + + ShowError + Use + + + + DontUse + Managed + Use + + ru + Узлы плана обмена: Обмен внешними заданиями с Библиотекой стандартных подсистем + + 3 + Variable + 150 + + InformationRegister.СоответствиеОбъектовИнформационныхБаз + + + Task.ЗадачаИсполнителя + + + Catalog.РолиИсполнителей + + + BusinessProcess.Задание + + + Catalog.Файлы + + + Catalog.ВерсииФайлов + + AsDescription + InDialog + BothWays + ExchangePlan.ОбменВнешнимиЗаданиями.Form.ФормаУзла + ExchangePlan.ОбменВнешнимиЗаданиями.Form.ФормаСписка + + ФормаУзла + + ru + Форма узла + + PersonalComputer + MobileDevice + + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + + ФормаНастройкиУзла + + ru + Форма настройки узла + + PersonalComputer + MobileDevice + + + ФормаНастройкиЗначенийПоУмолчанию + + ru + Форма настройки значений по умолчанию + + PersonalComputer + MobileDevice + + + ПравилаОбмена + + ru + Правила обмена + + TextDocument + + + ПравилаРегистрации + + ru + Правила регистрации + + TextDocument + + diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиЗначенийПоУмолчанию/Form.form b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиЗначенийПоУмолчанию/Form.form new file mode 100644 index 000000000..0c73b0893 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиЗначенийПоУмолчанию/Form.form @@ -0,0 +1,143 @@ + + + + <key>ru</key> + <value>Значения по умолчанию</value> + + + Надпись + 1 + + <key>ru</key> + <value>Указание значений по умолчанию не предусмотрено</value> + + true + true + + true + + + НадписьРасширеннаяПодсказка + 5 + Label + true + true + + Left + + + + НадписьКонтекстноеМеню + 2 + true + + Label + true + true + + Left + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаКомандаОК + 3 + true + true + + true + + + ФормаКомандаОКРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + Form.Command.КомандаОК + true + true + true + UserCmds + Auto + + Right + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + Abort + Cancel + CustomizeForm + Help + Ignore + No + OK + RestoreValues + Retry + SaveValues + Yes + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + ЗначенияПоУмолчаниюНаУзле + + <key>ru</key> + <value>Значения по умолчанию на узле</value> + + 1 + + + true + + + true + + + + КомандаОК + + <key>ru</key> + <value>ОК</value> + + 1 + + true + + + StdPicture.Write + + + + КомандаОК + + + TextPicture + Auto + Auto + + + + + + diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиЗначенийПоУмолчанию/Module.bsl b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиЗначенийПоУмолчанию/Module.bsl new file mode 100644 index 000000000..d7cdf2471 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиЗначенийПоУмолчанию/Module.bsl @@ -0,0 +1,33 @@ +////////////////////////////////////////////////////////// +// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ОбменДаннымиСервер.ФормаНастройкиЗначенийПоУмолчаниюПриСозданииНаСервере(ЭтаФорма, "ОбменВнешнимиЗаданиямиС1СДокументооборот"); + +КонецПроцедуры + +////////////////////////////////////////////////////////// +// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + ОбменДаннымиКлиент.ФормаНастройкиПередЗакрытием(Отказ, ЭтаФорма); + +КонецПроцедуры + + +&НаКлиенте +Процедура КомандаОК(Команда) + + ОбменДаннымиКлиент.ФормаНастройкиЗначенийПоУмолчаниюКомандаЗакрытьФорму(ЭтаФорма); + +КонецПроцедуры + diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиУзла/Form.form b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиУзла/Form.form new file mode 100644 index 000000000..ff68499c9 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиУзла/Form.form @@ -0,0 +1,178 @@ + + + + <key>ru</key> + <value>Ограничения передачи данных</value> + + + ГруппаОтступ + 34 + + ДекорацияНадпись + 35 + + <key>ru</key> + <value>Настройка ограничения передачи данных не предусмотрена.</value> + + true + true + + true + + + ДекорацияНадписьРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + ДекорацияНадписьКонтекстноеМеню + 36 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Группа отступ</value> + + + ru + Группа отступ + + + ГруппаОтступРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + КомандаОК + 1 + true + true + + true + + false + + КомандаОКРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + Form.Command.КомандаОК + true + true + true + UserCmds + Auto + + Right + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + Abort + Cancel + Ignore + No + OK + RestoreValues + Retry + SaveValues + Yes + DontBlock + true + true + Vertical + true + true + UseIfNecessary + auto + true + + НастройкаОтборовНаУзле + + <key>ru</key> + <value>Настройка отборов на узле</value> + + 2 + + + true + + + true + + + + КомандаОК + + <key>ru</key> + <value>ОК</value> + + 1 + + true + + + StdPicture.Write + + + + КомандаОК + + + TextPicture + Auto + Auto + + + + + + diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиУзла/Module.bsl b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиУзла/Module.bsl new file mode 100644 index 000000000..893a0d878 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаНастройкиУзла/Module.bsl @@ -0,0 +1,32 @@ +////////////////////////////////////////////////////////// +// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ОбменДаннымиСервер.ФормаНастройкиУзлаПриСозданииНаСервере(ЭтаФорма, "ОбменВнешнимиЗаданиямиС1СДокументооборот"); + +КонецПроцедуры + + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) + + ОбменДаннымиКлиент.ФормаНастройкиПередЗакрытием(Отказ, ЭтаФорма); + +КонецПроцедуры + +////////////////////////////////////////////////////////// +// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ + +&НаКлиенте +Процедура КомандаОК(Команда) + + ОбменДаннымиКлиент.ФормаНастройкиУзлаКомандаЗакрытьФорму(ЭтаФорма); + +КонецПроцедуры diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss new file mode 100644 index 000000000..91027f589 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss @@ -0,0 +1,15 @@ + + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаСписка/Form.form b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаСписка/Form.form new file mode 100644 index 000000000..fcd8898e9 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаСписка/Form.form @@ -0,0 +1,349 @@ + + + + Список + 1 + true + true + + true + + + Список + + true + false + None + + Код + 4 + + <key>ru</key> + <value>Код</value> + + true + true + + true + + + Список.Code + + + КодРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + + КодКонтекстноеМеню + 5 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Наименование + 6 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + Список.Description + + true + + НаименованиеРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 7 + true + + LabelField + Enter + true + Left + true + + true + true + + + + НомерОтправленного + 8 + + <key>ru</key> + <value>Номер отправленного сообщения</value> + + true + true + + true + + + Список.SentNo + + + НомерОтправленногоРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + + НомерОтправленногоКонтекстноеМеню + 9 + true + + LabelField + Enter + true + Left + true + + true + true + + + + НомерПринятого + 10 + + <key>ru</key> + <value>Номер принятого сообщения</value> + + true + true + + true + + + Список.ReceivedNo + + + НомерПринятогоРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + + НомерПринятогоКонтекстноеМеню + 11 + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 3 + Left + true + + + СписокСтрокаПоиска + 13 + + СписокСтрокаПоискаРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 14 + true + + Список + + true + + + + СписокСостояниеПросмотра + 16 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 17 + true + + ViewStatusAddition + Список + + true + + + + СписокУправлениеПоиском + 19 + + СписокУправлениеПоискомРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 20 + true + + SearchControlAddition + Список + + true + + + + СписокРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 2 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + true + true + true + + Список.DefaultPicture + + None + None + None + true + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + +
+ + ФормаКоманднаяПанель + -1 + Left + true + + DontBlock + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Список + 1 + + DynamicList + + + true + + + true + +
true
+ + ExchangePlan.ОбменВнешнимиЗаданиямиС1СДокументооборот + true + true + true + true + +
+ + + + + +
diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаУзла/Form.form b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаУзла/Form.form new file mode 100644 index 000000000..334d2e39e --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаУзла/Form.form @@ -0,0 +1,282 @@ + + + + ГруппаШапка + 71 + + Наименование + 3 + true + true + + true + + + Объект.Description + + + НаименованиеРасширеннаяПодсказка + 89 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 4 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + Normal + + + + Код + 1 + true + true + + true + + + Объект.Code + + + КодРасширеннаяПодсказка + 91 + Label + true + true + + Left + + + + КодКонтекстноеМеню + 2 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа шапка</value> + + + ru + Группа шапка + + + ГруппаШапкаРасширеннаяПодсказка + 88 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ГруппаПрочее + 83 + + НомерПринятого + 84 + true + true + + true + + + Объект.ReceivedNo + + + НомерПринятогоРасширеннаяПодсказка + 94 + Label + true + true + + Left + + + + НомерПринятогоКонтекстноеМеню + 85 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + НомерОтправленного + 86 + true + true + + true + + + Объект.SentNo + + + НомерОтправленногоРасширеннаяПодсказка + 96 + Label + true + true + + Left + + + + НомерОтправленногоКонтекстноеМеню + 87 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Номера сообщений</value> + + + ru + Группа прочее + + + ГруппаПрочееРасширеннаяПодсказка + 93 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + Left + true + + + OnClose + ПриЗакрытии + + Delete + LockOwner + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Объект + 1 + + ExchangePlanObject.ОбменВнешнимиЗаданиямиС1СДокументооборот + + + true + + + true + +
true
+ true +
+ + + + + +
diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаУзла/Module.bsl b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаУзла/Module.bsl new file mode 100644 index 000000000..57ecbacc3 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Forms/ФормаУзла/Module.bsl @@ -0,0 +1,8 @@ + +&НаКлиенте +Процедура ПриЗакрытии() + + Оповестить("ЗакрытаФормаУзлаПланаОбмена"); + +КонецПроцедуры + diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/ManagerModule.bsl b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/ManagerModule.bsl new file mode 100644 index 000000000..ec8280578 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/ManagerModule.bsl @@ -0,0 +1,161 @@ +// Возвращает имя файла настроек по умолчанию; +// В этот файл будут выгружены настройки обмена для приемника; +// Это значение должно быть одинаковым в плане обмена источника и приемника. +// +// Параметры: +// Нет. +// +// Возвращаемое значение: +// Строка, 255 - имя файла по умолчанию для выгрузки настроек обмена данными +// +Функция ИмяФайлаНастроекДляПриемника() Экспорт + + Возврат НСтр("ru = 'Настройки обмена внешними заданиями'"); + +КонецФункции + +// Возвращает структуру отборов на узле плана обмена с установленными значениями по умолчанию; +// Структура настроек повторяет состав реквизитов шапки и табличных частей плана обмена; +// Для реквизитов шапки используются аналогичные по ключу и значению элементы структуры, +// а для табличных частей используются структуры, +// содержащие массивы значений полей табличных частей плана обмена. +// +// Параметры: +// Нет. +// +// Возвращаемое значение: +// СтруктураНастроек - Структура - структура отборов на узле плана обмена +// +Функция НастройкаОтборовНаУзле() Экспорт + + СтруктураНастроек = Новый Структура; + Возврат СтруктураНастроек; + +КонецФункции + +// Возвращает структуру значений по умолчению для узла; +// Структура настроек повторяет состав реквизитов шапки плана обмена; +// Для реквизитов шапки используются аналогичные по ключу и значению элементы структуры. +// +// Параметры: +// Нет. +// +// Возвращаемое значение: +// СтруктураНастроек - Структура - структура значений по умолчанию на узле плана обмена +// +Функция ЗначенияПоУмолчаниюНаУзле() Экспорт + + Возврат Новый Структура; + +КонецФункции + +// Возвращает строку описания ограничений миграции данных для пользователя; +// Прикладной разработчик на основе установленных отборов на узле должен сформировать строку описания ограничений +// удобную для восприятия пользователем. +// +// Параметры: +// НастройкаОтборовНаУзле - Структура - структура отборов на узле плана обмена, +// полученная при помощи функции НастройкаОтборовНаУзле(). +// +// Возвращаемое значение: +// Строка, Неогранич. - строка описания ограничений миграции данных для пользователя +// +Функция ОписаниеОграниченийПередачиДанных(НастройкаОтборовНаУзле) Экспорт + + Возврат "Указание передачи данных не предусмотрено."; + +КонецФункции + +// Возвращает строку описания значений по умолчанию для пользователя; +// Прикладной разработчик на основе установленных значений по умолчанию на узле должен сформировать строку описания +// удобную для восприятия пользователем. +// +// Параметры: +// ЗначенияПоУмолчаниюНаУзле - Структура - структура значений по умолчанию на узле плана обмена, +// полученная при помощи функции ЗначенияПоУмолчаниюНаУзле(). +// +// Возвращаемое значение: +// Строка, Неогранич. - строка описания для пользователя значений по умолчанию +// +Функция ОписаниеЗначенийПоУмолчанию(ЗначенияПоУмолчаниюНаУзле) Экспорт + + Возврат "Указание значений по умолчанию не предусмотрено."; + +КонецФункции + +// Возвращает пользовательскую форму для создания начального образа базы. +// Эта форма будет открыта после завершения настройки обмена с помощью помощника. +// +// Возвращаемое значение: +// Строка, Неогранич - имя формы +// +// Например: +// Возврат "ПланОбмена.РаспределеннаяИнформационнаяБаза.Форма.ФормаСозданияНачальногоОбраза"; +// +Функция ИмяФормыСозданияНачальногоОбраза() Экспорт + + Возврат ""; + +КонецФункции + +// Возвращает представление команды создания нового обмена данными. +// +// Возвращаемое значение: +// Строка, Неогранич - представление команды, выводимое в пользовательском интерфейсе. +// +// Например: +// Возврат НСтр("ru = 'Создать обмен в распределенной информационной базе'"); +// +Функция ЗаголовокКомандыДляСозданияНовогоОбменаДанными() Экспорт + + Возврат НСтр("ru = 'Создать обмен внешними заданиями с 1С:Документооборот'"); + +КонецФункции + +// Определяет, будет ли использоваться помощник для создания новых узлов плана обмена. +// +// Возвращаемое значение: +// Булево - признак использования помощника. +// +Функция ИспользоватьПомощникСозданияОбменаДанными() Экспорт + + Возврат Истина; + +КонецФункции + +// Возвращает версию подсистемы обмена данными +// Для вновь создаваемых планов обмена функция должна +// возвращать значение Перечисления.ВерсииПодсистемыОбменаДанными.Версия30 +// +// Возвращаемое значение: +// ПеречислениеСсылка.ВерсииПодсистемыОбменаДанными +// +Функция ВерсияОбменаДанными() Экспорт + + Возврат Перечисления.ВерсииПодсистемыОбменаДанными.Версия30; + +КонецФункции + +// Возвращает массив используемых транспортов сообщений для этого плана обмена +// +// 1. Например, если план обмена поддерживает только два транспорта сообщений FILE и FTP, +// то тело функции следует определить следующим образом: +// +// Результат = Новый Массив; +// Результат.Добавить(Перечисления.ВидыТранспортаСообщенийОбмена.FILE); +// Результат.Добавить(Перечисления.ВидыТранспортаСообщенийОбмена.FTP); +// Возврат Результат; +// +// 2. Например, если план обмена поддерживает все транспорты сообщений, определенных в конфигурации, +// то тело функции следует определить следующим образом: +// +// Возврат ОбменДаннымиСервер.ВсеТранспортыСообщенийОбменаКонфигурации(); +// +// Возвращаемое значение: +// Массив - массив содержит значения перечисления ВидыТранспортаСообщенийОбмена +// +Функция ИспользуемыеТранспортыСообщенийОбмена() Экспорт + + Возврат ОбменДаннымиСервер.ВсеТранспортыСообщенийОбменаКонфигурации(); + +КонецФункции diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/ObjectModule.bsl b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/ObjectModule.bsl new file mode 100644 index 000000000..0f46476f6 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/ObjectModule.bsl @@ -0,0 +1,6 @@ + +Процедура ПередУдалением(Отказ) + + ОбменВнешнимиЗаданиямиСервер.ОчиститьРегистрИсточникиВнешнихЗадач(ЭтотОбъект.Ссылка); + +КонецПроцедуры diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Templates/ПравилаОбмена/Template.txt b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Templates/ПравилаОбмена/Template.txt new file mode 100644 index 000000000..0a95a6f8e --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Templates/ПравилаОбмена/Template.txt @@ -0,0 +1,1228 @@ +<ПравилаОбмена> + <ВерсияФормата>2.01 + <Ид>1ce40aae-8962-4d88-88ba-8816f3987f77 + <Наименование>БиблиотекаСтандартныхПодсистемДемо --> ДокументооборотБиблиотека + <ДатаВремяСоздания>2011-04-14T14:36:49 + <Источник ВерсияПлатформы="8.0" ВерсияКонфигурации="1.1.2.5" СинонимКонфигурации="Демонстрационная конфигурация "Библиотека стандартных подсистем", редакция 1.1">БиблиотекаСтандартныхПодсистемДемо + <Приемник ВерсияПлатформы="8.0" ВерсияКонфигурации="1.1.3.6" СинонимКонфигурации="1С:Документооборот 8, библиотека">ДокументооборотБиблиотека + <ПередЗагрузкойДанных>Параметры.Вставить("ТипХраненияФайловВТомахНаДиске", ФайловыеФункции.ПолучитьТипХраненияФайлов() = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске); + <Параметры> + <Параметр Имя="ТипХраненияФайловВТомахНаДиске " Наименование="ТипХраненияФайловВТомахНаДиске " ИспользуетсяПриЗагрузке="false" УстанавливатьВДиалоге="false" ТипЗначения="Булево" ПередаватьПараметрПриВыгрузке="false"/> + + <Обработки/> + <ПравилаКонвертацииОбъектов> + <Группа> + <Код>перечисления + <Наименование>перечисления + <Порядок>50 + <Правило> + <Код>ВариантыВажностиЗадачи + <Наименование>Перечисление: Варианты важности задачи + <Порядок>50 + <Источник>ПеречислениеСсылка.ВариантыВажностиЗадачи + <Приемник>ПеречислениеСсылка.ВариантыВажностиЗадачи + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>Высокая --> Высокая + <Порядок>50 + <Источник>Высокая + <Приемник>Высокая + + <Значение> + <Код>2 + <Наименование>Низкая --> Низкая + <Порядок>100 + <Источник>Низкая + <Приемник>Низкая + + <Значение> + <Код>3 + <Наименование>Обычная --> Обычная + <Порядок>150 + <Источник>Обычная + <Приемник>Обычная + + + + <Правило> + <Код>СтатусыИзвлеченияТекстаФайлов + <Наименование>Перечисление: Статусы извлечения текста файлов + <Порядок>100 + <Источник>ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов + <Приемник>ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>Извлечен --> Извлечен + <Порядок>50 + <Источник>Извлечен + <Приемник>Извлечен + + <Значение> + <Код>2 + <Наименование>ИзвлечьНеУдалось --> ИзвлечьНеУдалось + <Порядок>100 + <Источник>ИзвлечьНеУдалось + <Приемник>ИзвлечьНеУдалось + + <Значение> + <Код>3 + <Наименование>НеИзвлечен --> НеИзвлечен + <Порядок>150 + <Источник>НеИзвлечен + <Приемник>НеИзвлечен + + + + <Правило> + <Код>ТипыКонтактнойИнформации + <Наименование>Перечисление: Типы контактной информации + <Порядок>150 + <Источник>ПеречислениеСсылка.ТипыКонтактнойИнформации + <Приемник>ПеречислениеСсылка.ТипыКонтактнойИнформации + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>Адрес --> Адрес + <Порядок>50 + <Источник>Адрес + <Приемник>Адрес + + <Значение> + <Код>2 + <Наименование>АдресЭлектроннойПочты --> АдресЭлектроннойПочты + <Порядок>100 + <Источник>АдресЭлектроннойПочты + <Приемник>АдресЭлектроннойПочты + + <Значение> + <Код>3 + <Наименование>ВебСтраница --> ВебСтраница + <Порядок>150 + <Источник>ВебСтраница + <Приемник>ВебСтраница + + <Значение> + <Код>4 + <Наименование>Другое --> Другое + <Порядок>200 + <Источник>Другое + <Приемник>Другое + + <Значение> + <Код>5 + <Наименование>Телефон --> Телефон + <Порядок>250 + <Источник>Телефон + <Приемник>Телефон + + <Значение> + <Код>6 + <Наименование>Факс --> Факс + <Порядок>300 + <Источник>Факс + <Приемник>Факс + + + + <Правило> + <Код>ТипыХраненияФайлов + <Наименование>Перечисление: Типы хранения файлов + <Порядок>200 + <Источник>ПеречислениеСсылка.ТипыХраненияФайлов + <Приемник>ПеречислениеСсылка.ТипыХраненияФайлов + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>ВИнформационнойБазе --> ВИнформационнойБазе + <Порядок>50 + <Источник>ВИнформационнойБазе + <Приемник>ВИнформационнойБазе + + <Значение> + <Код>2 + <Наименование>ВТомахНаДиске --> ВТомахНаДиске + <Порядок>100 + <Источник>ВТомахНаДиске + <Приемник>ВТомахНаДиске + + + + <Правило> + <Код>СостоянияБизнесПроцессов + <Наименование>Перечисление: Состояния бизнес процессов + <Порядок>250 + <Источник>ПеречислениеСсылка.СостоянияБизнесПроцессов + <Приемник>ПеречислениеСсылка.СостоянияБизнесПроцессов + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>Активен --> Активен + <Порядок>50 + <Источник>Активен + <Приемник>Активен + + <Значение> + <Код>2 + <Наименование>Остановлен --> Остановлен + <Порядок>100 + <Источник>Остановлен + <Приемник>Остановлен + + + + + <Группа> + <Код>справочники + <Наименование>справочники + <Порядок>100 + <Правило> + <Код>ВерсииФайлов + <Наименование>Справочник: Версии файлов + <Порядок>50 + <ПриВыгрузке>Если Источник.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + Если НЕ Источник.Том.Пустая() Тогда + // если файл в томе - поместим его в ФайлХранилище, и поменяем Источник.ТипХраненияФайла на ВИнформационнойБазе + Источник.ФайлХранилище = ФайловыеФункции.ПоместитьДвоичныеДанныеВХранилище(Источник.Том, Источник.ПутьКФайлу, Источник.Ссылка.УникальныйИдентификатор()); + Источник.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; + Источник.ПутьКФайлу = ""; + Источник.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); + КонецЕсли; +Иначе + ФайловыеФункцииПереопределяемый.ВыполнитьДополнительнуюОбработкуПриОтправкеДанных(Источник); +КонецЕсли; + + <ПослеЗагрузки>Если Объект.ЭтоНовый() Тогда // добавлен новый файл + ЗапретЗагрузкиФайловПоРасширению = ФайловыеФункции.ПолучитьЗапретЗагрузкиФайловПоРасширению(); + СписокЗапрещенныхРасширений = ФайловыеФункции.ПолучитьСписокЗапрещенныхРасширений(); + РасширениеФайла = Объект.Расширение; + + Если Не ФайловыеФункцииКлиентСервер.РасширениеФайлаРазрешеноДляЗагрузки(ЗапретЗагрузкиФайловПоРасширению, СписокЗапрещенныхРасширений, РасширениеФайла) Тогда + Отказ = Истина; + КонецЕсли; +КонецЕсли; + +Если НЕ Отказ Тогда + Если НЕ Объект.ЭтоНовый() Тогда // изменен уже существующий Объект + + // файл был на томе - удалим его - т.к. при обмене придет новый + Если ОбщегоНазначения.ПолучитьЗначениеРеквизита(Объект.Ссылка, "ТипХраненияФайла") = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + + Том = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Объект.Ссылка, "Том"); + ПутьКФайлу = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Объект.Ссылка, "ПутьКФайлу"); + + ПрежнийПутьНаТоме = ФайловыеФункции.ПолныйПутьТома(Том) + ПутьКФайлу; + ФайловыеФункции.УдалитьФайлыНаСервере(Объект.Ссылка, ПрежнийПутьНаТоме); + КонецЕсли; + КонецЕсли; + + // при обмене сюда приходит только Объект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе + // если тип хранения базы-приемника такой же (в базе) - ничего не делаем + // а вот если в базе приемнике - тип хранения в томах - то разместим на диске + Если Параметры.ТипХраненияФайловВТомахНаДиске Тогда + // тип отличается от типа по умолчанию для данной базы - поменяем + + // по обмену пришел Объект с хранением в базе - но в базе приемнике принято хранить в томах + // - из ФайлХранилище размещаем на томе и меняем ТипХраненияФайла на ВТомахНаДиске + + ДвоичныеДанные = Объект.ФайлХранилище.Получить(); + + ВремяИзменения = Объект.ДатаМодификацииУниверсальная; + РазмерФайла = Объект.Размер; + ИмяБезРасширения = Объект.Наименование; + Расширение = Объект.Расширение; + Зашифрован = Объект.Зашифрован; + + ПутьКФайлуНаТоме = ""; + СсылкаНаТом = Неопределено; + + // добавить в один из томов (где есть свободное место) + ФайловыеФункцииПереопределяемый.ДобавитьНаДискПриПолученииДанныхФайла( + Объект, ДвоичныеДанные, + ПутьКФайлуНаТоме, СсылкаНаТом, ВремяИзменения, + ИмяБезРасширения, Расширение, РазмерФайла, Зашифрован); + + Объект.ПутьКФайлу = ПутьКФайлуНаТоме; + Объект.Том = СсылкаНаТом; + Объект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске; + + Объект.ФайлХранилище = Новый ХранилищеЗначения(Неопределено); + + Иначе + ФайловыеФункцииПереопределяемый.ВыполнитьДополнительнуюОбработкуПриПолученииДанных(Объект); + КонецЕсли; + + +КонецЕсли; + <СинхронизироватьПоИдентификатору>true + <Источник>СправочникСсылка.ВерсииФайлов + <Приемник>СправочникСсылка.ВерсииФайлов + <Свойства> + <Свойство> + <Код>1 + <Наименование>Автор --> Автор + <Порядок>50 + <Источник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство Поиск="true"> + <Код>2 + <Наименование>Владелец --> Владелец + <Порядок>100 + <Источник Имя="Владелец" Вид="Свойство" Тип="СправочникСсылка.Файлы"/> + <Приемник Имя="Владелец" Вид="Свойство" Тип="СправочникСсылка.Файлы"/> + <КодПравилаКонвертации>Файлы + + <Свойство> + <Код>3 + <Наименование>ДатаМодификацииУниверсальная --> ДатаМодификацииУниверсальная + <Порядок>150 + <Источник Имя="ДатаМодификацииУниверсальная" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаМодификацииУниверсальная" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>5 + <Наименование>ДатаСоздания --> ДатаСоздания + <Порядок>250 + <Источник Имя="ДатаСоздания" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаСоздания" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>6 + <Наименование>Зашифрован --> Зашифрован + <Порядок>300 + <Источник Имя="Зашифрован" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="Зашифрован" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>7 + <Наименование>ИндексКартинки --> ИндексКартинки + <Порядок>350 + <Источник Имя="ИндексКартинки" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="ИндексКартинки" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>8 + <Наименование>Код --> Код + <Порядок>400 + <Источник Имя="Код" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Код" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>9 + <Наименование>Комментарий --> Комментарий + <Порядок>450 + <Источник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + + <Свойство Поиск="true"> + <Код>10 + <Наименование>Наименование --> Наименование + <Порядок>500 + <Источник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>11 + <Наименование>НомерВерсии --> НомерВерсии + <Порядок>550 + <Источник Имя="НомерВерсии" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="НомерВерсии" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>12 + <Наименование>ПодписанЭЦП --> ПодписанЭЦП + <Порядок>600 + <Источник Имя="ПодписанЭЦП" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ПодписанЭЦП" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>13 + <Наименование>ПолноеНаименование --> ПолноеНаименование + <Порядок>650 + <Источник Имя="ПолноеНаименование" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ПолноеНаименование" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>14 + <Наименование>ПометкаУдаления --> ПометкаУдаления + <Порядок>700 + <Источник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + + <Свойство> + <Код>16 + <Наименование>Размер --> Размер + <Порядок>800 + <Источник Имя="Размер" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="Размер" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>17 + <Наименование>Расширение --> Расширение + <Порядок>850 + <Источник Имя="Расширение" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Расширение" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>18 + <Наименование>РодительскаяВерсия --> РодительскаяВерсия + <Порядок>900 + <Источник Имя="РодительскаяВерсия" Вид="Реквизит" Тип="СправочникСсылка.ВерсииФайлов"/> + <Приемник Имя="РодительскаяВерсия" Вид="Реквизит" Тип="СправочникСсылка.ВерсииФайлов"/> + <КодПравилаКонвертации>ВерсииФайлов + + <Свойство> + <Код>19 + <Наименование>СтатусИзвлеченияТекста --> СтатусИзвлеченияТекста + <Порядок>950 + <Источник Имя="СтатусИзвлеченияТекста" Вид="Реквизит" Тип="ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов"/> + <Приемник Имя="СтатусИзвлеченияТекста" Вид="Реквизит" Тип="ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов"/> + <КодПравилаКонвертации>СтатусыИзвлеченияТекстаФайлов + + <Свойство> + <Код>20 + <Наименование>ТекстХранилище --> ТекстХранилище + <Порядок>1000 + <Источник Имя="ТекстХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="ТекстХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Свойство> + <Код>21 + <Наименование>ТипХраненияФайла --> ТипХраненияФайла + <Порядок>1050 + <Источник Имя="ТипХраненияФайла" Вид="Реквизит" Тип="ПеречислениеСсылка.ТипыХраненияФайлов"/> + <Приемник Имя="ТипХраненияФайла" Вид="Реквизит" Тип="ПеречислениеСсылка.ТипыХраненияФайлов"/> + <КодПравилаКонвертации>ТипыХраненияФайлов + + <Свойство> + <Код>23 + <Наименование>ФайлХранилище --> ФайлХранилище + <Порядок>1150 + <Источник Имя="ФайлХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="ФайлХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Группа> + <Код>24 + <Наименование>ЭлектронныеЦифровыеПодписи --> ЭлектронныеЦифровыеПодписи + <Порядок>1200 + <Источник Имя="ЭлектронныеЦифровыеПодписи" Вид="ТабличнаяЧасть"/> + <Приемник Имя="ЭлектронныеЦифровыеПодписи" Вид="ТабличнаяЧасть"/> + <Свойство> + <Код>25 + <Наименование>ДатаПодписи --> ДатаПодписи + <Порядок>50 + <Источник Имя="ДатаПодписи" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаПодписи" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>26 + <Наименование>ИмяФайлаПодписи --> ИмяФайлаПодписи + <Порядок>100 + <Источник Имя="ИмяФайлаПодписи" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ИмяФайлаПодписи" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>27 + <Наименование>Комментарий --> Комментарий + <Порядок>150 + <Источник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>28 + <Наименование>КомуВыданСертификат --> КомуВыданСертификат + <Порядок>200 + <Источник Имя="КомуВыданСертификат" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="КомуВыданСертификат" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>29 + <Наименование>Отпечаток --> Отпечаток + <Порядок>250 + <Источник Имя="Отпечаток" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Отпечаток" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>30 + <Наименование>Подпись --> Подпись + <Порядок>300 + <Источник Имя="Подпись" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="Подпись" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Свойство> + <Код>31 + <Наименование>Сертификат --> Сертификат + <Порядок>350 + <Источник Имя="Сертификат" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="Сертификат" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Свойство> + <Код>32 + <Наименование>УстановившийПодпись --> УстановившийПодпись + <Порядок>400 + <Источник Имя="УстановившийПодпись" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="УстановившийПодпись" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + + + <Значения/> + + <Правило> + <Код>Пользователи + <Наименование>Справочник: Пользователи + <Порядок>100 + <СинхронизироватьПоИдентификатору>true + <ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD>true + <Источник>СправочникСсылка.Пользователи + <Приемник>СправочникСсылка.Пользователи + <Свойства/> + <Значения/> + + <Правило> + <Код>Файлы + <Наименование>Справочник: Файлы + <Порядок>150 + <СинхронизироватьПоИдентификатору>true + <Источник>СправочникСсылка.Файлы + <Приемник>СправочникСсылка.Файлы + <Свойства> + <Свойство> + <Код>1 + <Наименование>Код --> Код + <Порядок>50 + <Источник Имя="Код" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Код" Вид="Свойство" Тип="Строка"/> + + <Свойство Поиск="true"> + <Код>2 + <Наименование>Наименование --> Наименование + <Порядок>100 + <Источник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>3 + <Наименование>Автор --> Автор + <Порядок>150 + <Источник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство Поиск="true"> + <Код>4 + <Наименование>ВладелецФайла --> ВладелецФайла + <Порядок>200 + <Источник Имя="ВладелецФайла" Вид="Реквизит"/> + <Приемник Имя="ВладелецФайла" Вид="Реквизит"/> + + <Свойство> + <Код>5 + <Наименование>ДатаСоздания --> ДатаСоздания + <Порядок>250 + <Источник Имя="ДатаСоздания" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаСоздания" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>6 + <Наименование>Зашифрован --> Зашифрован + <Порядок>300 + <Источник Имя="Зашифрован" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="Зашифрован" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>7 + <Наименование>ИндексКартинки --> ИндексКартинки + <Порядок>350 + <Источник Имя="ИндексКартинки" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="ИндексКартинки" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>8 + <Наименование>Описание --> Описание + <Порядок>400 + <Источник Имя="Описание" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Описание" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>9 + <Наименование>ПодписанЭЦП --> ПодписанЭЦП + <Порядок>450 + <Источник Имя="ПодписанЭЦП" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ПодписанЭЦП" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>10 + <Наименование>ПолноеНаименование --> ПолноеНаименование + <Порядок>500 + <Источник Имя="ПолноеНаименование" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ПолноеНаименование" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>11 + <Наименование>Редактирует --> Редактирует + <Порядок>550 + <Источник Имя="Редактирует" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Редактирует" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство> + <Код>12 + <Наименование>ТекстХранилище --> ТекстХранилище + <Порядок>600 + <Источник Имя="ТекстХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="ТекстХранилище" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Свойство> + <Код>13 + <Наименование>ТекущаяВерсия --> ТекущаяВерсия + <Порядок>650 + <Источник Имя="ТекущаяВерсия" Вид="Реквизит" Тип="СправочникСсылка.ВерсииФайлов"/> + <Приемник Имя="ТекущаяВерсия" Вид="Реквизит" Тип="СправочникСсылка.ВерсииФайлов"/> + <КодПравилаКонвертации>ВерсииФайлов + + <Свойство> + <Код>14 + <Наименование>ТекущаяВерсияАвтор --> ТекущаяВерсияАвтор + <Порядок>700 + <Источник Имя="ТекущаяВерсияАвтор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="ТекущаяВерсияАвтор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство> + <Код>16 + <Наименование>ТекущаяВерсияДатаСоздания --> ТекущаяВерсияДатаСоздания + <Порядок>800 + <Источник Имя="ТекущаяВерсияДатаСоздания" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ТекущаяВерсияДатаСоздания" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>17 + <Наименование>ТекущаяВерсияКод --> ТекущаяВерсияКод + <Порядок>850 + <Источник Имя="ТекущаяВерсияКод" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ТекущаяВерсияКод" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>18 + <Наименование>ТекущаяВерсияНомерВерсии --> ТекущаяВерсияНомерВерсии + <Порядок>900 + <Источник Имя="ТекущаяВерсияНомерВерсии" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="ТекущаяВерсияНомерВерсии" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>19 + <Наименование>ТекущаяВерсияПутьКФайлу --> ТекущаяВерсияПутьКФайлу + <Порядок>950 + <Источник Имя="ТекущаяВерсияПутьКФайлу" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ТекущаяВерсияПутьКФайлу" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>20 + <Наименование>ТекущаяВерсияРазмер --> ТекущаяВерсияРазмер + <Порядок>1000 + <Источник Имя="ТекущаяВерсияРазмер" Вид="Реквизит" Тип="Число"/> + <Приемник Имя="ТекущаяВерсияРазмер" Вид="Реквизит" Тип="Число"/> + + <Свойство> + <Код>21 + <Наименование>ТекущаяВерсияРасширение --> ТекущаяВерсияРасширение + <Порядок>1050 + <Источник Имя="ТекущаяВерсияРасширение" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ТекущаяВерсияРасширение" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>23 + <Наименование>ХранитьВерсии --> ХранитьВерсии + <Порядок>1150 + <Источник Имя="ХранитьВерсии" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ХранитьВерсии" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>24 + <Наименование>ПометкаУдаления --> ПометкаУдаления + <Порядок>1200 + <Источник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + + <Группа> + <Код>29 + <Наименование>СертификатыШифрования --> СертификатыШифрования + <Порядок>1300 + <Источник Имя="СертификатыШифрования" Вид="ТабличнаяЧасть"/> + <Приемник Имя="СертификатыШифрования" Вид="ТабличнаяЧасть"/> + <Свойство> + <Код>30 + <Наименование>Отпечаток --> Отпечаток + <Порядок>50 + <Источник Имя="Отпечаток" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Отпечаток" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>31 + <Наименование>Представление --> Представление + <Порядок>100 + <Источник Имя="Представление" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Представление" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>32 + <Наименование>Сертификат --> Сертификат + <Порядок>150 + <Источник Имя="Сертификат" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="Сертификат" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + + + <Значения/> + + <Правило> + <Код>РолиИсполнителей + <Наименование>Справочник: Роли исполнителей + <Порядок>250 + <СинхронизироватьПоИдентификатору>true + <Источник>СправочникСсылка.РолиИсполнителей + <Приемник>СправочникСсылка.РолиИсполнителей + <Свойства> + <Свойство> + <Код>1 + <Наименование>ИспользуетсяБезОбъектовАдресации --> ИспользуетсяБезОбъектовАдресации + <Порядок>100 + <Источник Имя="ИспользуетсяБезОбъектовАдресации" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ИспользуетсяБезОбъектовАдресации" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>2 + <Наименование>ИспользуетсяСОбъектамиАдресации --> ИспользуетсяСОбъектамиАдресации + <Порядок>150 + <Источник Имя="ИспользуетсяСОбъектамиАдресации" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ИспользуетсяСОбъектамиАдресации" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>3 + <Наименование>Комментарий --> Комментарий + <Порядок>200 + <Источник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Комментарий" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>6 + <Наименование>Код --> Код + <Порядок>250 + <Источник Имя="Код" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Код" Вид="Свойство" Тип="Строка"/> + + <Свойство Поиск="true"> + <Код>7 + <Наименование>Наименование --> Наименование + <Порядок>300 + <Источник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>8 + <Наименование>ПометкаУдаления --> ПометкаУдаления + <Порядок>350 + <Источник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + + <Свойство Отключить="true"> + <Код>9 + <Наименование>ВнешняяРоль --> ВнешняяРоль + <Порядок>400 + <Источник Имя="ВнешняяРоль" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ВнешняяРоль" Вид="Реквизит" Тип="Булево"/> + + <Свойство Отключить="true"> + <Код>10 + <Наименование>УзелОбмена --> УзелОбмена + <Порядок>450 + <Источник Имя="УзелОбмена" Вид="Реквизит"/> + <Приемник Имя="УзелОбмена" Вид="Реквизит" Тип="ПланОбменаСсылка.ОбменВнешнимиЗаданиямиС1СДокументооборот"/> + + + <Значения/> + + + <Группа> + <Код>задачи + <Наименование>задачи + <Порядок>150 + <Правило> + <Код>ЗадачаИсполнителя + <Наименование>Задача: Задача + <Порядок>50 + <СинхронизироватьПоИдентификатору>true + <Источник>ЗадачаСсылка.ЗадачаИсполнителя + <Приемник>ЗадачаСсылка.ЗадачаИсполнителя + <Свойства> + <Свойство> + <Код>1 + <Наименование>Автор --> Автор + <Порядок>50 + <Источник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство> + <Код>2 + <Наименование>АвторСтрокой --> АвторСтрокой + <Порядок>100 + <Источник Имя="АвторСтрокой" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="АвторСтрокой" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>3 + <Наименование>БизнесПроцесс --> БизнесПроцесс + <Порядок>150 + <Источник Имя="БизнесПроцесс" Вид="Свойство"/> + <Приемник Имя="БизнесПроцесс" Вид="Свойство"/> + + <Свойство> + <Код>4 + <Наименование>Важность --> Важность + <Порядок>200 + <Источник Имя="Важность" Вид="Реквизит" Тип="ПеречислениеСсылка.ВариантыВажностиЗадачи"/> + <Приемник Имя="Важность" Вид="Реквизит" Тип="ПеречислениеСсылка.ВариантыВажностиЗадачи"/> + <КодПравилаКонвертации>ВариантыВажностиЗадачи + + <Свойство> + <Код>5 + <Наименование>Выполнена --> Выполнена + <Порядок>250 + <Источник Имя="Выполнена" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="Выполнена" Вид="Свойство" Тип="Булево"/> + + <Свойство Поиск="true"> + <Код>7 + <Наименование>Дата --> Дата + <Порядок>350 + <Источник Имя="Дата" Вид="Свойство" Тип="Дата"/> + <Приемник Имя="Дата" Вид="Свойство" Тип="Дата"/> + + <Свойство> + <Код>8 + <Наименование>ДатаИсполнения --> ДатаИсполнения + <Порядок>400 + <Источник Имя="ДатаИсполнения" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаИсполнения" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>9 + <Наименование>ДатаНачала --> ДатаНачала + <Порядок>450 + <Источник Имя="ДатаНачала" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаНачала" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>10 + <Наименование>ДополнительныйОбъектАдресации --> ДополнительныйОбъектАдресации + <Порядок>500 + <Источник Имя="ДополнительныйОбъектАдресации" Вид="Свойство"/> + <Приемник Имя="ДополнительныйОбъектАдресации" Вид="Свойство"/> + + <Свойство> + <Код>11 + <Наименование>Исполнитель --> Исполнитель + <Порядок>550 + <Источник Имя="Исполнитель" Вид="Свойство" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Исполнитель" Вид="Свойство" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство Поиск="true"> + <Код>12 + <Наименование>Наименование --> Наименование + <Порядок>600 + <Источник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Наименование" Вид="Свойство" Тип="Строка"/> + + <Свойство Поиск="true"> + <Код>13 + <Наименование>Номер --> Номер + <Порядок>650 + <Источник Имя="Номер" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Номер" Вид="Свойство" Тип="Строка"/> + + <Свойство> + <Код>14 + <Наименование>Описание --> Описание + <Порядок>700 + <Источник Имя="Описание" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Описание" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>15 + <Наименование>ОсновнойОбъектАдресации --> ОсновнойОбъектАдресации + <Порядок>750 + <Источник Имя="ОсновнойОбъектАдресации" Вид="Свойство"/> + <Приемник Имя="ОсновнойОбъектАдресации" Вид="Свойство"/> + + <Свойство> + <Код>16 + <Наименование>ПометкаУдаления --> ПометкаУдаления + <Порядок>800 + <Источник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + + <Свойство> + <Код>17 + <Наименование>Предмет --> Предмет + <Порядок>850 + <Источник Имя="Предмет" Вид="Реквизит"/> + <Приемник Имя="Предмет" Вид="Реквизит"/> + + <Свойство> + <Код>18 + <Наименование>ПредметСтрокой --> ПредметСтрокой + <Порядок>900 + <Источник Имя="ПредметСтрокой" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="ПредметСтрокой" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>19 + <Наименование>РезультатВыполнения --> РезультатВыполнения + <Порядок>950 + <Источник Имя="РезультатВыполнения" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="РезультатВыполнения" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>20 + <Наименование>РольИсполнителя --> РольИсполнителя + <Порядок>1000 + <Источник Имя="РольИсполнителя" Вид="Свойство" Тип="СправочникСсылка.РолиИсполнителей"/> + <Приемник Имя="РольИсполнителя" Вид="Свойство" Тип="СправочникСсылка.РолиИсполнителей"/> + <КодПравилаКонвертации>РолиИсполнителей + + <Свойство> + <Код>23 + <Наименование>СостояниеБизнесПроцесса --> СостояниеБизнесПроцесса + <Порядок>1050 + <Источник Имя="СостояниеБизнесПроцесса" Вид="Реквизит" Тип="ПеречислениеСсылка.СостоянияБизнесПроцессов"/> + <Приемник Имя="СостояниеБизнесПроцесса" Вид="Реквизит" Тип="ПеречислениеСсылка.СостоянияБизнесПроцессов"/> + <КодПравилаКонвертации>СостоянияБизнесПроцессов + + <Свойство> + <Код>21 + <Наименование>СрокИсполнения --> СрокИсполнения + <Порядок>1100 + <Источник Имя="СрокИсполнения" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="СрокИсполнения" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>22 + <Наименование>ТочкаМаршрута --> ТочкаМаршрута + <Порядок>1150 + <Источник Имя="ТочкаМаршрута" Вид="Свойство"/> + <Приемник Имя="ТочкаМаршрута" Вид="Свойство"/> + <КодПравилаКонвертации>ТочкиМаршрута + + + <Значения/> + + + <Группа> + <Код>бизнес-процессы + <Наименование>бизнес-процессы + <Порядок>200 + <Правило> + <Код>Поручение + <Наименование>Бизнес процесс: Задание + <Порядок>50 + <ПослеЗагрузки>Если Объект.ЭтоНовый() Тогда + Объект.ДатаНачала = ТекущаяДата(); +КонецЕсли; + <СинхронизироватьПоИдентификатору>true + <Источник>БизнесПроцессСсылка.Задание + <Приемник>БизнесПроцессСсылка.Поручение + <Свойства> + <Свойство> + <Код>1 + <Наименование>Автор --> Автор + <Порядок>50 + <Источник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <Приемник Имя="Автор" Вид="Реквизит" Тип="СправочникСсылка.Пользователи"/> + <КодПравилаКонвертации>Пользователи + + <Свойство> + <Код>2 + <Наименование>АвторСтрокой --> АвторСтрокой + <Порядок>100 + <Источник Имя="АвторСтрокой" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="АвторСтрокой" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>3 + <Наименование>Важность --> Важность + <Порядок>150 + <Источник Имя="Важность" Вид="Реквизит" Тип="ПеречислениеСсылка.ВариантыВажностиЗадачи"/> + <Приемник Имя="Важность" Вид="Реквизит" Тип="ПеречислениеСсылка.ВариантыВажностиЗадачи"/> + <КодПравилаКонвертации>ВариантыВажностиЗадачи + + <Свойство> + <Код>4 + <Наименование>ВедущаяЗадача --> ВедущаяЗадача + <Порядок>200 + <Источник Имя="ВедущаяЗадача" Вид="Свойство" Тип="ЗадачаСсылка.ЗадачаИсполнителя"/> + <Приемник Имя="ВедущаяЗадача" Вид="Свойство" Тип="ЗадачаСсылка.ЗадачаИсполнителя"/> + <КодПравилаКонвертации>ЗадачаИсполнителя + + <Свойство> + <Код>19 + <Наименование>ВнешнееЗадание --> ВнешнееПоручение + <Порядок>250 + <Источник Имя="ВнешнееЗадание" Вид="Реквизит" Тип="Булево"/> + <Приемник Имя="ВнешнееПоручение" Вид="Реквизит" Тип="Булево"/> + + <Свойство> + <Код>5 + <Наименование>Дата --> Дата + <Порядок>300 + <Источник Имя="Дата" Вид="Свойство" Тип="Дата"/> + <Приемник Имя="Дата" Вид="Свойство" Тип="Дата"/> + + <Свойство> + <Код>6 + <Наименование>ДатаЗавершения --> ДатаЗавершения + <Порядок>350 + <Источник Имя="ДатаЗавершения" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="ДатаЗавершения" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>7 + <Наименование>Завершен --> Завершен + <Порядок>400 + <Источник Имя="Завершен" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="Завершен" Вид="Свойство" Тип="Булево"/> + + <Свойство> + <Код>8 + <Наименование>Исполнитель --> Исполнитель + <Порядок>450 + <Источник Имя="Исполнитель" Вид="Реквизит"/> + <Приемник Имя="Исполнитель" Вид="Реквизит"/> + + <Свойство> + <Код>9 + <Наименование>Наименование --> Наименование + <Порядок>500 + <Источник Имя="Наименование" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="Наименование" Вид="Реквизит" Тип="Строка"/> + + <Свойство Поиск="true"> + <Код>10 + <Наименование>Номер --> Номер + <Порядок>550 + <Источник Имя="Номер" Вид="Свойство" Тип="Строка"/> + <Приемник Имя="Номер" Вид="Свойство" Тип="Строка"/> + <ПриводитьКДлине>9 + + <Свойство> + <Код>11 + <Наименование>ПометкаУдаления --> ПометкаУдаления + <Порядок>600 + <Источник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="ПометкаУдаления" Вид="Свойство" Тип="Булево"/> + + <Свойство> + <Код>13 + <Наименование>Проверяющий --> Проверяющий + <Порядок>650 + <Источник Имя="Проверяющий" Вид="Реквизит"/> + <Приемник Имя="Проверяющий" Вид="Реквизит"/> + + <Свойство> + <Код>14 + <Наименование>РезультатВыполнения --> РезультатВыполнения + <Порядок>700 + <Источник Имя="РезультатВыполнения" Вид="Реквизит" Тип="Строка"/> + <Приемник Имя="РезультатВыполнения" Вид="Реквизит" Тип="Строка"/> + + <Свойство> + <Код>15 + <Наименование>СодержаниеПредмета --> СодержаниеПредмета + <Порядок>750 + <Источник Имя="СодержаниеПредмета" Вид="Реквизит" Тип="ХранилищеЗначения"/> + <Приемник Имя="СодержаниеПредмета" Вид="Реквизит" Тип="ХранилищеЗначения"/> + + <Свойство> + <Код>16 + <Наименование>СрокИсполнения --> СрокИсполнения + <Порядок>800 + <Источник Имя="СрокИсполнения" Вид="Реквизит" Тип="Дата"/> + <Приемник Имя="СрокИсполнения" Вид="Реквизит" Тип="Дата"/> + + <Свойство> + <Код>17 + <Наименование>Стартован --> Стартован + <Порядок>850 + <Источник Имя="Стартован" Вид="Свойство" Тип="Булево"/> + <Приемник Имя="Стартован" Вид="Свойство" Тип="Булево"/> + + <Свойство> + <Код>18 + <Наименование>Состояние --> Состояние + <Порядок>900 + <Источник Имя="Состояние" Вид="Реквизит" Тип="ПеречислениеСсылка.СостоянияБизнесПроцессов"/> + <Приемник Имя="Состояние" Вид="Реквизит" Тип="ПеречислениеСсылка.СостоянияБизнесПроцессов"/> + <КодПравилаКонвертации>СостоянияБизнесПроцессов + + + <Значения/> + + + <Группа> + <Код>точки машрута + <Наименование>точки машрута + <Порядок>300 + <Правило> + <Код>ТочкиМаршрута + <Наименование>Точка маршрута бизнес процесса: Задание + <Порядок>50 + <СинхронизироватьПоИдентификатору>true + <Источник>ТочкаМаршрутаБизнесПроцессаСсылка.Задание + <Приемник>ТочкаМаршрутаБизнесПроцессаСсылка.Поручение + <Свойства/> + <Значения> + <Значение> + <Код>1 + <Наименование>Выполнить --> Выполнить + <Порядок>50 + <Источник>Выполнить + <Приемник>Выполнить + + <Значение> + <Код>2 + <Наименование>Завершение --> Завершение + <Порядок>100 + <Источник>Завершение + <Приемник>Завершение + + <Значение> + <Код>3 + <Наименование>Проверить --> Проверить + <Порядок>150 + <Источник>Проверить + <Приемник>Проверить + + <Значение> + <Код>4 + <Наименование>Старт --> Старт + <Порядок>200 + <Источник>Старт + <Приемник>Старт + + <Значение> + <Код>5 + <Наименование>ВернутьИсполнителю --> + <Порядок>250 + <Источник>ВернутьИсполнителю + <Приемник>ВернутьНаДоработку + + <Значение> + <Код>7 + <Наименование> --> ВернутьНаДоработку + <Порядок>350 + <Источник>Завершение + <Приемник>ВернутьНаДоработку + + <Значение> + <Код>8 + <Наименование> --> ЗавершитьКонтроль + <Порядок>400 + <Источник>Завершение + <Приемник>ЗавершитьКонтроль + + <Значение> + <Код>9 + <Наименование> --> Контролировать + <Порядок>450 + <Источник>Завершение + <Приемник>Контролировать + + <Значение> + <Код>10 + <Наименование> --> Разделение + <Порядок>500 + <Источник>Завершение + <Приемник>Разделение + + <Значение> + <Код>11 + <Наименование>НужнаПроверка --> + <Порядок>550 + <Источник>НужнаПроверка + <Приемник>Завершение + + + + + + <ПравилаВыгрузкиДанных> + <Группа Отключить="false"> + <Код>Справочники + <Наименование>Справочники + <Порядок>50 + <Правило Отключить="false"> + <Код>ВерсииФайлов + <Наименование>ВерсииФайлов + <Порядок>50 + <КодПравилаКонвертации>ВерсииФайлов + <СпособОтбораДанных>СтандартнаяВыборка + <ОбъектВыборки>СправочникСсылка.ВерсииФайлов + + <Правило Отключить="false"> + <Код>Файлы + <Наименование>Файлы + <Порядок>150 + <КодПравилаКонвертации>Файлы + <СпособОтбораДанных>СтандартнаяВыборка + <ОбъектВыборки>СправочникСсылка.Файлы + + <Правило Отключить="false"> + <Код>РолиИсполнителей + <Наименование>РолиИсполнителей + <Порядок>250 + <КодПравилаКонвертации>РолиИсполнителей + <СпособОтбораДанных>СтандартнаяВыборка + <ОбъектВыборки>СправочникСсылка.РолиИсполнителей + + + <Группа Отключить="false"> + <Код>Задачи + <Наименование>Задачи + <Порядок>100 + <Правило Отключить="false"> + <Код>ЗадачаИсполнителя + <Наименование>ЗадачаИсполнителя + <Порядок>50 + <КодПравилаКонвертации>ЗадачаИсполнителя + <СпособОтбораДанных>СтандартнаяВыборка + <ОбъектВыборки>ЗадачаСсылка.ЗадачаИсполнителя + + + <Группа Отключить="false"> + <Код>БизнесПроцессы + <Наименование>БизнесПроцессы + <Порядок>150 + <Правило Отключить="false"> + <Код>Задание + <Наименование>Задание + <Порядок>50 + <КодПравилаКонвертации>Поручение + <СпособОтбораДанных>СтандартнаяВыборка + <ОбъектВыборки>БизнесПроцессСсылка.Задание + + + + <ПравилаОчисткиДанных/> + <Алгоритмы/> + <Запросы/> + \ No newline at end of file diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Templates/ПравилаРегистрации/Template.txt b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Templates/ПравилаРегистрации/Template.txt new file mode 100644 index 000000000..708f2ea87 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/Templates/ПравилаРегистрации/Template.txt @@ -0,0 +1,286 @@ +<ПравилаРегистрации> + <ВерсияФормата>2.01 + <Ид>9821bd81-5e9c-11e0-a6b4-e0cb4ed5f5c8 + <Наименование>БиблиотекаСтандартныхПодсистемДемо: Обмен внешними заданиями 3 + <ДатаВремяСоздания>2011-04-14T09:44:19 + <ПланОбмена Имя="ОбменВнешнимиЗаданиямиС1СДокументооборот">ПланОбменаСсылка.ОбменВнешнимиЗаданиямиС1СДокументооборот + <Конфигурация ВерсияПлатформы="8.2" ВерсияКонфигурации="1.2.1.1" СинонимКонфигурации="Демонстрационная конфигурация "Библиотека стандартных подсистем", редакция 1.2">БиблиотекаСтандартныхПодсистемДемо + <СоставПланаОбмена> + <Элемент> + <Тип>СправочникСсылка.РолиИсполнителей + <Авторегистрация>false + + <Элемент> + <Тип>РегистрСведенийЗапись.СоответствиеОбъектовИнформационныхБаз + <Авторегистрация>false + + <Элемент> + <Тип>ЗадачаСсылка.ЗадачаИсполнителя + <Авторегистрация>false + + <Элемент> + <Тип>СправочникСсылка.Файлы + <Авторегистрация>false + + <Элемент> + <Тип>СправочникСсылка.ВерсииФайлов + <Авторегистрация>false + + <Элемент> + <Тип>ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения + <Авторегистрация>true + + <Элемент> + <Тип>БизнесПроцессСсылка.Задание + <Авторегистрация>false + + <Элемент> + <Тип>СправочникСсылка.НаборыДополнительныхРеквизитовИСведений + <Авторегистрация>true + + + <ПравилаРегистрацииОбъектов> + <Группа Отключить="false"> + <Код>000000001 + <Наименование>справочники + <Правило Отключить="false" Валидное="true"> + <Код>000000006 + <Наименование>Версии файлов + <ОбъектНастройки>СправочникСсылка.ВерсииФайлов + <ОбъектМетаданныхИмя>Справочник.ВерсииФайлов + <ОбъектМетаданныхТип>Справочник + <ОтборПоСвойствамПланаОбмена/> + <ОтборПоСвойствамОбъекта/> + <ПередОбработкой>Если НЕ Объект.ОбменДанными.Загрузка Тогда + + Если ТипЗнч(Объект.Владелец.ВладелецФайла) <> Тип("БизнесПроцессСсылка.Задание") Тогда + Отказ = Истина; + КонецЕсли; + +КонецЕсли; + + <ПослеОбработки>Получатели.Очистить(); + +Если Объект.ОбменДанными.Загрузка Тогда + + ОбъектСсылка = Объект.Ссылка; + Если Объект.ЭтоНовый() Тогда + ОбъектСсылка = Объект.ПолучитьСсылкуНового(); + ОбменВнешнимиЗаданиямиСервер.ЗаписатьУзелВРегистрИсточникиВнешнихЗадач(ОбъектСсылка, Объект.ОбменДанными.Отправитель); + КонецЕсли; + +Иначе + + УзелИзРегистра = Неопределено; + + Если Не Объект.ЭтоНовый() Тогда + УзелИзРегистра = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелИзРегистраИсточникиВнешнихЗадач(Объект.Ссылка); + КонецЕсли; + + Если ЗначениеЗаполнено(УзелИзРегистра) Тогда + Получатели.Добавить(УзелИзРегистра); + Иначе + + Если ОбменВнешнимиЗаданиямиСервер.ВерсияФайлаПринадлежитВнешнейРоли(Объект.Владелец) Тогда + + УзелОбмена = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелОбменаДляВерсииФайла(Объект.Владелец); + Если ЗначениеЗаполнено(УзелОбмена) Тогда + Получатели.Добавить(УзелОбмена); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецЕсли; + + + + <Правило Отключить="false" Валидное="true"> + <Код>000000007 + <Наименование>Роли исполнителей + <ОбъектНастройки>СправочникСсылка.РолиИсполнителей + <ОбъектМетаданныхИмя>Справочник.РолиИсполнителей + <ОбъектМетаданныхТип>Справочник + <ОтборПоСвойствамПланаОбмена/> + <ОтборПоСвойствамОбъекта/> + <ПослеОбработки>Получатели.Очистить(); + +Если НЕ Объект.ОбменДанными.Загрузка Тогда + + Если Объект.ВнешняяРоль Тогда + + УзелОбмена = Объект.УзелОбмена; + Если ЗначениеЗаполнено(УзелОбмена) Тогда + Получатели.Добавить(УзелОбмена); + КонецЕсли; + + КонецЕсли; + +КонецЕсли; + + + <Правило Отключить="false" Валидное="true"> + <Код>000000008 + <Наименование>Файлы + <ОбъектНастройки>СправочникСсылка.Файлы + <ОбъектМетаданныхИмя>Справочник.Файлы + <ОбъектМетаданныхТип>Справочник + <ОтборПоСвойствамПланаОбмена/> + <ОтборПоСвойствамОбъекта/> + <ПередОбработкой> +Если НЕ Объект.ОбменДанными.Загрузка Тогда + + Если ТипЗнч(Объект.ВладелецФайла) <> Тип("БизнесПроцессСсылка.Задание") Тогда + Отказ = Истина; + КонецЕсли; + +КонецЕсли; + + <ПослеОбработки>Получатели.Очистить(); + +Если Объект.ОбменДанными.Загрузка Тогда + + ОбъектСсылка = Объект.Ссылка; + Если Объект.ЭтоНовый() Тогда + ОбъектСсылка = Объект.ПолучитьСсылкуНового(); + ОбменВнешнимиЗаданиямиСервер.ЗаписатьУзелВРегистрИсточникиВнешнихЗадач(ОбъектСсылка, Объект.ОбменДанными.Отправитель); + КонецЕсли; + +Иначе + + УзелИзРегистра = Неопределено; + + Если Не Объект.ЭтоНовый() Тогда + УзелИзРегистра = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелИзРегистраИсточникиВнешнихЗадач(Объект.Ссылка); + КонецЕсли; + + Если ЗначениеЗаполнено(УзелИзРегистра) Тогда + Получатели.Добавить(УзелИзРегистра); + Иначе + + Если ОбменВнешнимиЗаданиямиСервер.ФайлПринадлежитВнешнейРоли(Объект.ВладелецФайла) Тогда + + УзелОбмена = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелОбменаДляФайла(Объект.ВладелецФайла); + Если ЗначениеЗаполнено(УзелОбмена) Тогда + Получатели.Добавить(УзелОбмена); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецЕсли; + + + + + <Группа Отключить="false"> + <Код>000000002 + <Наименование>бизнес-процессы + <Правило Отключить="false" Валидное="true"> + <Код>000000004 + <Наименование>Задание + <ОбъектНастройки>БизнесПроцессСсылка.Задание + <ОбъектМетаданныхИмя>БизнесПроцесс.Задание + <ОбъектМетаданныхТип>БизнесПроцесс + <ОтборПоСвойствамПланаОбмена/> + <ОтборПоСвойствамОбъекта/> + <ПослеОбработки>Получатели.Очистить(); + +Если Объект.ОбменДанными.Загрузка Тогда + + ОбъектСсылка = Объект.Ссылка; + Если Объект.ЭтоНовый() Тогда + ОбъектСсылка = Объект.ПолучитьСсылкуНового(); + ОбменВнешнимиЗаданиямиСервер.ЗаписатьУзелВРегистрИсточникиВнешнихЗадач(ОбъектСсылка, Объект.ОбменДанными.Отправитель); + КонецЕсли; + +Иначе + + УзелИзРегистра = Неопределено; + + Если Не Объект.ЭтоНовый() Тогда + УзелИзРегистра = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелИзРегистраИсточникиВнешнихЗадач(Объект.Ссылка); + КонецЕсли; + + Если ЗначениеЗаполнено(УзелИзРегистра) Тогда + Получатели.Добавить(УзелИзРегистра); + Иначе + + Если ТипЗнч(Объект.Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") + И Объект.Исполнитель.ВнешняяРоль Тогда + + УзелОбмена = Объект.Исполнитель.УзелОбмена; + Если ЗначениеЗаполнено(УзелОбмена) Тогда + Получатели.Добавить(УзелОбмена); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецЕсли; + + + + + <Группа Отключить="false"> + <Код>000000003 + <Наименование>задачи + <Правило Отключить="false" Валидное="true"> + <Код>000000005 + <Наименование>Задача + <ОбъектНастройки>ЗадачаСсылка.ЗадачаИсполнителя + <ОбъектМетаданныхИмя>Задача.ЗадачаИсполнителя + <ОбъектМетаданныхТип>Задача + <ОтборПоСвойствамПланаОбмена/> + <ОтборПоСвойствамОбъекта/> + <ПередОбработкой> +Если НЕ Объект.ОбменДанными.Загрузка Тогда + + Если ТипЗнч(Объект.БизнесПроцесс) <> Тип("БизнесПроцессСсылка.Задание") Тогда + Отказ = Истина; + КонецЕсли; + +КонецЕсли; + <ПослеОбработки>Получатели.Очистить(); + +Если Объект.ОбменДанными.Загрузка Тогда + + ОбъектСсылка = Объект.Ссылка; + Если Объект.ЭтоНовый() Тогда + ОбъектСсылка = Объект.ПолучитьСсылкуНового(); + ОбменВнешнимиЗаданиямиСервер.ЗаписатьУзелВРегистрИсточникиВнешнихЗадач(ОбъектСсылка, Объект.ОбменДанными.Отправитель); + КонецЕсли; + +Иначе + + УзелИзРегистра = Неопределено; + + Если Не Объект.ЭтоНовый() Тогда + УзелИзРегистра = ОбменВнешнимиЗаданиямиСервер.ПолучитьУзелИзРегистраИсточникиВнешнихЗадач(Объект.Ссылка); + КонецЕсли; + + Если ЗначениеЗаполнено(УзелИзРегистра) Тогда + Получатели.Добавить(УзелИзРегистра); + Иначе + + Если ЗначениеЗаполнено(Объект.РольИсполнителя) И Объект.РольИсполнителя.ВнешняяРоль Тогда + + УзелОбмена = Объект.РольИсполнителя.УзелОбмена; + Если ЗначениеЗаполнено(УзелОбмена) Тогда + Получатели.Добавить(УзелОбмена); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецЕсли; + + + + + + \ No newline at end of file diff --git a/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/ОбменВнешнимиЗаданиямиС1СДокументооборот.mdo b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/ОбменВнешнимиЗаданиямиС1СДокументооборот.mdo new file mode 100644 index 000000000..29be74b32 --- /dev/null +++ b/SSL/src/ExchangePlans/ОбменВнешнимиЗаданиямиС1СДокументооборот/ОбменВнешнимиЗаданиямиС1СДокументооборот.mdo @@ -0,0 +1,161 @@ + + + + + + + + + + ОбменВнешнимиЗаданиямиС1СДокументооборот + + ru + Обмен внешними заданиями c 1С:Документооборот + + ExchangePlan.ОбменВнешнимиЗаданиямиС1СДокументооборот.StandardAttribute.Description + ExchangePlan.ОбменВнешнимиЗаданиямиС1СДокументооборот.StandardAttribute.Code + DontUse + + Use + ThisNode + + Use + + + + + Use + ReceivedNo + + Use + + + + + Use + SentNo + + Use + + + + + Use + Ref + + Use + + + + + Use + DeletionMark + + Use + + + + + Use + Description + + ShowError + Use + + + + + Use + Code + + ShowError + Use + + + + DontUse + Managed + Use + + ru + Узлы плана обмена: Обмен внешними заданиями с 1С:Документооборот + + 3 + Variable + 150 + + InformationRegister.СоответствиеОбъектовИнформационныхБаз + + + Task.ЗадачаИсполнителя + + + Catalog.РолиИсполнителей + + + BusinessProcess.Задание + + + Catalog.Файлы + + + Catalog.ВерсииФайлов + + AsDescription + InDialog + BothWays + ExchangePlan.ОбменВнешнимиЗаданиямиС1СДокументооборот.Form.ФормаУзла + ExchangePlan.ОбменВнешнимиЗаданиямиС1СДокументооборот.Form.ФормаСписка + + ФормаУзла + + ru + Форма узла + + PersonalComputer + MobileDevice + + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + + ФормаНастройкиУзла + + ru + Форма настройки узла + + PersonalComputer + MobileDevice + + + ФормаНастройкиЗначенийПоУмолчанию + + ru + Форма настройки значений по умолчанию + + PersonalComputer + MobileDevice + + + ПравилаОбмена + + ru + Правила обмена + + TextDocument + + + ПравилаРегистрации + + ru + Правила регистрации + + TextDocument + + diff --git a/SSL/src/FilterCriteria/ФайлыВТоме/ФайлыВТоме.mdo b/SSL/src/FilterCriteria/ФайлыВТоме/ФайлыВТоме.mdo index 6f5c633db..26065fa84 100644 --- a/SSL/src/FilterCriteria/ФайлыВТоме/ФайлыВТоме.mdo +++ b/SSL/src/FilterCriteria/ФайлыВТоме/ФайлыВТоме.mdo @@ -12,7 +12,6 @@ CatalogRef.ТомаХраненияФайлов - true Catalog.ВерсииФайлов.Attribute.Том FilterCriterion.ФайлыВТоме.Form.ФормаСписка diff --git a/SSL/src/FunctionalOptions/ИспользоватьАнкетирование/ИспользоватьАнкетирование.mdo b/SSL/src/FunctionalOptions/ИспользоватьАнкетирование/ИспользоватьАнкетирование.mdo index f48999652..d5ea78eee 100644 --- a/SSL/src/FunctionalOptions/ИспользоватьАнкетирование/ИспользоватьАнкетирование.mdo +++ b/SSL/src/FunctionalOptions/ИспользоватьАнкетирование/ИспользоватьАнкетирование.mdo @@ -15,6 +15,5 @@ Report.АнализОпроса Catalog.ШаблоныАнкет Catalog.ВопросыШаблонаАнкеты - Subsystem.СтандартныеПодсистемы.Subsystem.Анкетирование Report.АнкетированиеАналитическийОтчет diff --git a/SSL/src/FunctionalOptions/ИспользоватьВерсионированиеОбъектов/ИспользоватьВерсионированиеОбъектов.mdo b/SSL/src/FunctionalOptions/ИспользоватьВерсионированиеОбъектов/ИспользоватьВерсионированиеОбъектов.mdo index 5d38e4495..9e344c553 100644 --- a/SSL/src/FunctionalOptions/ИспользоватьВерсионированиеОбъектов/ИспользоватьВерсионированиеОбъектов.mdo +++ b/SSL/src/FunctionalOptions/ИспользоватьВерсионированиеОбъектов/ИспользоватьВерсионированиеОбъектов.mdo @@ -10,5 +10,4 @@ true InformationRegister.НастройкаВерсионированияОбъектов InformationRegister.ВерсииОбъектов - Report.ОтчетПоИзменениямВерсийОбъектов diff --git a/SSL/src/FunctionalOptions/ИспользоватьИнтеграциюКонфигураций/ИспользоватьИнтеграциюКонфигураций.mdo b/SSL/src/FunctionalOptions/ИспользоватьИнтеграциюКонфигураций/ИспользоватьИнтеграциюКонфигураций.mdo new file mode 100644 index 000000000..16462c368 --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьИнтеграциюКонфигураций/ИспользоватьИнтеграциюКонфигураций.mdo @@ -0,0 +1,14 @@ + + + ИспользоватьИнтеграциюКонфигураций + + ru + Использовать интеграцию конфигураций + + Constant.ИспользоватьВнешниеЗадачи + true + Catalog.РолиИсполнителей.Attribute.ВнешняяРоль + ExchangePlan.ОбменВнешнимиЗаданиями + InformationRegister.ИсточникиВнешнихЗадач + Catalog.РолиИсполнителей.Attribute.УзелОбмена + diff --git a/SSL/src/FunctionalOptions/ИспользоватьИнтеграциюС1СДокументооборот/ИспользоватьИнтеграциюС1СДокументооборот.mdo b/SSL/src/FunctionalOptions/ИспользоватьИнтеграциюС1СДокументооборот/ИспользоватьИнтеграциюС1СДокументооборот.mdo new file mode 100644 index 000000000..0e3faee78 --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьИнтеграциюС1СДокументооборот/ИспользоватьИнтеграциюС1СДокументооборот.mdo @@ -0,0 +1,15 @@ + + + ИспользоватьИнтеграциюС1СДокументооборот + + ru + Использовать интеграцию с1 с документооборот + + Constant.ИспользоватьИнтеграциюС1СДокументооборот + true + CommonCommand.ДокументооборотФайлы + Catalog.НастройкиЗаполненияОбъектов1СДокументооборота + CommonCommand.ДокументооборотДокументы + CommonCommand.ДокументооборотЗадачи + CommonCommand.ДокументооборотСоздатьБизнесПроцесс + diff --git a/SSL/src/InformationRegisters/АдресныйКлассификатор/Forms/АутентификацияНаПользовательскомСайте/Module.bsl b/SSL/src/InformationRegisters/АдресныйКлассификатор/Forms/АутентификацияНаПользовательскомСайте/Module.bsl index 57831b7d6..4d0b23772 100644 --- a/SSL/src/InformationRegisters/АдресныйКлассификатор/Forms/АутентификацияНаПользовательскомСайте/Module.bsl +++ b/SSL/src/InformationRegisters/АдресныйКлассификатор/Forms/АутентификацияНаПользовательскомСайте/Module.bsl @@ -15,8 +15,6 @@ // СЕКЦИЯ ОБРАБОТЧИКОВ СОБЫТИЙ ФОРМЫ И ЭЛЕМЕНТОВ ФОРМЫ // -// Обработчик события "при создании на сервере" формы -// &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) diff --git a/SSL/src/InformationRegisters/АдресныйКлассификатор/Forms/ФормаЗагрузкиАдресногоКлассификатора/Module.bsl b/SSL/src/InformationRegisters/АдресныйКлассификатор/Forms/ФормаЗагрузкиАдресногоКлассификатора/Module.bsl index ff48eff93..38634ee14 100644 --- a/SSL/src/InformationRegisters/АдресныйКлассификатор/Forms/ФормаЗагрузкиАдресногоКлассификатора/Module.bsl +++ b/SSL/src/InformationRegisters/АдресныйКлассификатор/Forms/ФормаЗагрузкиАдресногоКлассификатора/Module.bsl @@ -161,8 +161,6 @@ КонецПроцедуры -// Обработчик нажатия на кнопку "Загрузить" командной панели формы -// &НаКлиенте Процедура ЗагрузитьВыполнить() diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl index 3eff775b1..1dcde394e 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl @@ -1,8 +1,6 @@ //////////////////////////////////////////////////////////////////////////////// // Секция обработчиков событий формы и элементов формы -// Обработчик события формы "ПриСозданииНаСервере" -// &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) @@ -38,8 +36,6 @@ КонецФункции -// Обработчик события "Выбор" табличного поля "СписокВерсий" -// &НаКлиенте Процедура СписокВерсийВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) @@ -47,8 +43,6 @@ КонецПроцедуры -// Обработчик нажатия на кнопку "ОткрытьВерсиюОбъекта" -// &НаКлиенте Процедура ОткрытьВерсиюОбъектаВыполнить() diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl index 7db4add99..6eb1ac419 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl @@ -60,12 +60,12 @@ Список.Удалить(Список.НайтиПоЗначению("ПоОбъектам")); ИначеЕсли НЕ ПоказыватьРазделы Тогда - Элементы.ФормаОтчетПоРазделамОбъектам.Заголовок = ТекстЗаголовкаКомандыОтчетПоОбъектам(); + Элементы.ОтчетПоРазделамОбъектамДляПользователей.Заголовок = ТекстЗаголовкаКомандыОтчетПоОбъектам(); Список.Удалить(Список.НайтиПоЗначению("ПоРазделамИОбъектам")); Список.Удалить(Список.НайтиПоЗначению("ПоРазделам")); ИначеЕсли ВсеРазделыБезОбъектов Тогда - Элементы.ФормаОтчетПоРазделамОбъектам.Заголовок = ТекстЗаголовкаКомандыОтчетПоРазделам(); + Элементы.ОтчетПоРазделамОбъектамДляПользователей.Заголовок = ТекстЗаголовкаКомандыОтчетПоРазделам(); Список.Удалить(Список.НайтиПоЗначению("ПоРазделамИОбъектам")); Список.Удалить(Список.НайтиПоЗначению("ПоОбъектам")); Иначе diff --git a/SSL/src/InformationRegisters/ИсточникиВнешнихЗадач/ИсточникиВнешнихЗадач.mdo b/SSL/src/InformationRegisters/ИсточникиВнешнихЗадач/ИсточникиВнешнихЗадач.mdo new file mode 100644 index 000000000..11089b872 --- /dev/null +++ b/SSL/src/InformationRegisters/ИсточникиВнешнихЗадач/ИсточникиВнешнихЗадач.mdo @@ -0,0 +1,89 @@ + + + + + + + + + + + + ИсточникиВнешнихЗадач + + ru + Источники внешних задач + + InDialog + + Use + Active + + Use + + + + + Use + LineNumber + + Use + + + + + Use + Recorder + + Use + + + + + Use + Period + + ShowError + Use + + + + Managed + + УзелИсточник + + ru + Узел источник + + + ExchangePlanRef.ОбменВнешнимиЗаданиями + ExchangePlanRef.ОбменВнешнимиЗаданиямиС1СДокументооборот + + + + Use + Use + + + + Объект + + ru + Объект + + + BusinessProcessRef.Задание + TaskRef.ЗадачаИсполнителя + CatalogRef.Файлы + CatalogRef.ВерсииФайлов + + + + Use + Use + true + + true + true + + diff --git a/SSL/src/InformationRegisters/СоответствиеОбъектовИнформационныхБаз/СоответствиеОбъектовИнформационныхБаз.mdo b/SSL/src/InformationRegisters/СоответствиеОбъектовИнформационныхБаз/СоответствиеОбъектовИнформационныхБаз.mdo index cc1c84f64..ea66b6495 100644 --- a/SSL/src/InformationRegisters/СоответствиеОбъектовИнформационныхБаз/СоответствиеОбъектовИнформационныхБаз.mdo +++ b/SSL/src/InformationRegisters/СоответствиеОбъектовИнформационныхБаз/СоответствиеОбъектовИнформационныхБаз.mdo @@ -169,7 +169,7 @@ String - 150 + 100 @@ -191,7 +191,7 @@ String - 150 + 100 diff --git a/SSL/src/Reports/ДатыЗапретаЗагрузки/Forms/ФормаОтчета/Form.form b/SSL/src/Reports/ДатыЗапретаЗагрузки/Forms/ФормаОтчета/Form.form new file mode 100644 index 000000000..d3404b625 --- /dev/null +++ b/SSL/src/Reports/ДатыЗапретаЗагрузки/Forms/ФормаОтчета/Form.form @@ -0,0 +1,560 @@ + + + + <key>ru</key> + <value>Даты запрета загрузки данных</value> + + + ГруппаВарианта + 1 + + НаименованиеТекущегоВарианта + 2 + true + true + + true + + + НаименованиеТекущегоВарианта + + Left + + НаименованиеТекущегоВариантаРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + + НаименованиеТекущегоВариантаКонтекстноеМеню + 3 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа варианта</value> + + + ГруппаВариантаРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ОсновнаяКоманднаяПанель + 5 + + КомандыФормы + 12 + + ФормаСформировать + 18 + true + true + + true + + + ФормаСформироватьРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + Form.StandardCommand.Generate + Auto + true + true + true + UserCmds + Auto + + + ФормаНастройкиОтчета + 17 + true + true + + true + + + ФормаНастройкиОтчетаРасширеннаяПодсказка + 25 + Label + true + true + + Left + + + Form.StandardCommand.ReportSettings + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗагрузитьНастройкиОтчета + 16 + true + true + + true + + + ФормаЗагрузитьНастройкиОтчетаРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + Form.StandardCommand.LoadReportSettings + Normal + Auto + true + true + UserCmds + Auto + + + ФормаСохранитьНастройкиОтчета + 15 + true + true + + true + + + ФормаСохранитьНастройкиОтчетаРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + Form.StandardCommand.SaveReportSettings + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Команды формы</value> + + + ru + Команды формы + + + КомандыФормыРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + + Form + + + + Справка + 13 + true + true + + true + + + СправкаРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Основная командная панель</value> + + + ОсновнаяКоманднаяПанельРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + CommandBar + + Left + + + + КомпоновщикНастроекПользовательскиеНастройки + 6 + + <key>ru</key> + <value>Таблица пользовательских настроек</value> + + true + true + + true + + + Отчет.SettingsComposer.UserSettings + + None + HierarchicalList + List + Tree + None + + КомпоновщикНастроекПользовательскиеНастройкиКоманднаяПанель + 8 + Left + true + + + КомпоновщикНастроекПользовательскиеНастройкиСтрокаПоиска + 30 + + КомпоновщикНастроекПользовательскиеНастройкиСтрокаПоискаРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + + КомпоновщикНастроекПользовательскиеНастройкиСтрокаПоискаКонтекстноеМеню + 31 + true + + КомпоновщикНастроекПользовательскиеНастройки + + true + + + + КомпоновщикНастроекПользовательскиеНастройкиСостояниеПросмотра + 33 + + КомпоновщикНастроекПользовательскиеНастройкиСостояниеПросмотраРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + + КомпоновщикНастроекПользовательскиеНастройкиСостояниеПросмотраКонтекстноеМеню + 34 + true + + ViewStatusAddition + КомпоновщикНастроекПользовательскиеНастройки + + true + + + + КомпоновщикНастроекПользовательскиеНастройкиУправлениеПоиском + 36 + + КомпоновщикНастроекПользовательскиеНастройкиУправлениеПоискомРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + + КомпоновщикНастроекПользовательскиеНастройкиУправлениеПоискомКонтекстноеМеню + 37 + true + + SearchControlAddition + КомпоновщикНастроекПользовательскиеНастройки + + true + + + + КомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 29 + Label + true + true + + Left + + + + КомпоновщикНастроекПользовательскиеНастройкиКонтекстноеМеню + 7 + true + + HierarchicalList + true + true + true + true + true + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + false + Auto + Auto + true + None + None + None + true + QuickAccess + Show + + + Результат + 9 + true + true + + true + + + Результат + + None + + РезультатРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + + РезультатКонтекстноеМеню + 10 + true + + SpreadsheetDocumentField + Enter + true + Left + true + + 100 + true + 10 + true + true + true + Special + ScrollAlways + ScrollAlways + Always + Auto + true + true + true + + + None + false + + ФормаКоманднаяПанель + -1 + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + ChangeVariant + LoadVariant + NewWindow + SaveVariant + DontBlock + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Отчет + 1 + + ReportObject.ДатыЗапретаЗагрузки + + + true + + + true + +
true
+
+ + НаименованиеТекущегоВарианта + + <key>ru</key> + <value>Вариант отчета</value> + + 2 + + String + + + + true + + + true + + + + Результат + + <key>ru</key> + <value>Результат</value> + + 3 + + SpreadsheetDocument + + + true + + + true + + + + + ДанныеРасшифровки + 4 + + String + + + + true + + + true + + + + ПоРазделамОбъектам + + Boolean + + true + + + + + + + Show + Результат + ДанныеРасшифровки + НаименованиеТекущегоВарианта + +
diff --git a/SSL/src/Reports/ДатыЗапретаЗагрузки/Forms/ФормаОтчета/Module.bsl b/SSL/src/Reports/ДатыЗапретаЗагрузки/Forms/ФормаОтчета/Module.bsl new file mode 100644 index 000000000..cd2af9300 --- /dev/null +++ b/SSL/src/Reports/ДатыЗапретаЗагрузки/Forms/ФормаОтчета/Module.bsl @@ -0,0 +1,30 @@ + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Свойства = ДатыЗапретаИзмененияПовтИсп.СвойстваРазделов(); + + // Установка варианта отчета + Если Параметры.ПоРазделамОбъектам = Истина Тогда + // + Если Свойства.ПоказыватьРазделы И НЕ Свойства.ВсеРазделыБезОбъектов Тогда + УстановитьТекущийВариант("ПоРазделамОбъектамДляПользователей"); + + ИначеЕсли Свойства.ВсеРазделыБезОбъектов Тогда + УстановитьТекущийВариант("ПоРазделамДляПользователей"); + Иначе + УстановитьТекущийВариант("ПоОбъектамДляПользователей"); + КонецЕсли; + Иначе + Если Свойства.ПоказыватьРазделы И НЕ Свойства.ВсеРазделыБезОбъектов Тогда + УстановитьТекущийВариант("ПоПользователям"); + + ИначеЕсли Свойства.ВсеРазделыБезОбъектов Тогда + УстановитьТекущийВариант("ПоПользователямБезОбъектов"); + Иначе + УстановитьТекущийВариант("ПоПользователямБезРазделов"); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + diff --git a/SSL/src/Reports/ДатыЗапретаЗагрузки/ObjectModule.bsl b/SSL/src/Reports/ДатыЗапретаЗагрузки/ObjectModule.bsl new file mode 100644 index 000000000..7295ddc43 --- /dev/null +++ b/SSL/src/Reports/ДатыЗапретаЗагрузки/ObjectModule.bsl @@ -0,0 +1,45 @@ + +Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) + + // Установка обязательных параметров + ПараметрыДанных = Новый Структура; + ПараметрыДанных.Вставить("Пользовательские", КомпоновщикНастроек.ПолучитьНастройки().ПараметрыДанных); + ПараметрыДанных.Вставить("Текущие", КомпоновщикНастроек.Настройки.ПараметрыДанных); + + УстановитьОбязательныйПараметр("Пользователи", "ЗаданныеПользователи", Ложь, Истина, ПараметрыДанных); + УстановитьОбязательныйПараметр("Разделы", "ЗаданныеРазделы", Ложь, Истина, ПараметрыДанных); + УстановитьОбязательныйПараметр("Объекты", "ЗаданныеОбъекты", Ложь, Истина, ПараметрыДанных); + +КонецПроцедуры + +Процедура УстановитьОбязательныйПараметр(ИмяПараметра, ИмяОбязательногоПараметра, ЗначениеКогдаНеИспользуется, ЗначениеПриНеопределено, ПараметрыДанных); + + Параметр = ПараметрыДанных.Пользовательские.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(ИмяПараметра)); + + Если Параметр.Использование Тогда + ЗаданноеЗначение = Параметр.Значение; + Иначе + // Установка значения, когда пользователь не использовал отбор + ЗаданноеЗначение = ЗначениеКогдаНеИспользуется; + КонецЕсли; + + Если ТипЗнч(ЗаданноеЗначение) = Тип("СписокЗначений") Тогда + // Создание нового списка для расширения состава типов значения + НовыйСписок = Новый СписокЗначений; + НовыйСписок.ЗагрузитьЗначения(ЗаданноеЗначение.ВыгрузитьЗначения()); + ЗаданноеЗначение = НовыйСписок; + // Установка значения, когда пользователь задал Неопределено + Элемент = ЗаданноеЗначение.НайтиПоЗначению(Неопределено); + Если Элемент <> Неопределено Тогда + Элемент.Значение = ЗначениеПриНеопределено; + КонецЕсли; + // + ИначеЕсли ЗаданноеЗначение = Неопределено Тогда + // Установка значения, когда пользователь задал Неопределено + ЗаданноеЗначение = ЗначениеПриНеопределено; + КонецЕсли; + + ПараметрыДанных.Текущие.УстановитьЗначениеПараметра(ИмяОбязательногоПараметра, ЗаданноеЗначение); + +КонецПроцедуры + diff --git a/SSL/src/Reports/ДатыЗапретаЗагрузки/Templates/ОсновнаяСхемаКомпоновкиДанных/Template.dcs b/SSL/src/Reports/ДатыЗапретаЗагрузки/Templates/ОсновнаяСхемаКомпоновкиДанных/Template.dcs new file mode 100644 index 000000000..0d00fe777 --- /dev/null +++ b/SSL/src/Reports/ДатыЗапретаЗагрузки/Templates/ОсновнаяСхемаКомпоновкиДанных/Template.dcs @@ -0,0 +1,1811 @@ + + + + ИсточникДанных1 + Local + + + НаборДанных + + ДатаЗапрета + ДатаЗапрета + + + Объект + Объект + Выбор Когда Объект = Раздел Тогда Выбор Когда Раздел = Значение(ПланВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка) Тогда "<Для всех разделов и объектов, кроме указанных>" Иначе "<Для всех объектов, кроме указанных>" Конец Иначе Объект Конец + + + Пользователь + Пользователь + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>План обмена: узел</v8:content> + </v8:item> + + Выбор + Когда Пользователь = Значение(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена) + Тогда "<" + Представление(Значение(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена)) + ", кроме указанных>" + + Иначе Представление(ПользовательТип) + ": " + + Выбор + Когда ЗначениеЗаполнено(Пользователь) + Тогда Представление(ПользовательДубль) + Иначе "<Все узлы>" + Конец +Конец + + Выбор + Когда Пользователь = Значение(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена) + Тогда "<" + Представление(Значение(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена)) + ", кроме указанных>" + + Иначе Представление(ПользовательТип) + ": " + + Выбор + Когда ЗначениеЗаполнено(Пользователь) + Тогда Представление(ПользовательДубль) + Иначе "<Все узлы>" + Конец +Конец + Asc + false + + + + Раздел + Раздел + Выбор Когда Раздел = Значение(ПланВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка) Тогда "<Общая дата>" Иначе Раздел Конец + + + ВладелецНастройки + ВладелецНастройки + Выбор + Когда ВладелецНастройки = Значение(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена) + Тогда "<" + Представление(Значение(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена)) + ", кроме указанных>" + + Иначе Представление(ВладелецНастройкиТип) + ": " + + Выбор + Когда ЗначениеЗаполнено(ВладелецНастройки) + Тогда Представление(ВладелецНастройкиДубль) + Иначе "<Все узлы>" + Конец +Конец + + Выбор + Когда ВладелецНастройки = Значение(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена) + Тогда "<" + Представление(Значение(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена)) + ", кроме указанных>" + + Иначе Представление(ВладелецНастройкиТип) + ": " + + Выбор + Когда ЗначениеЗаполнено(ВладелецНастройки) + Тогда Представление(ВладелецНастройкиДубль) + Иначе "<Все узлы>" + Конец +Конец + Asc + false + + + + ДатаЗапретаНастройки + ДатаЗапретаНастройки + + + ПриоритетНастройки + ПриоритетНастройки + + + Комментарий + Комментарий + + + КомментарийНастройки + КомментарийНастройки + + + ВладелецНастройкиТип + ВладелецНастройкиТип + + true + true + true + true + + + + ПользовательТип + ПользовательТип + + true + true + true + true + + + + ВладелецНастройкиДубль + ВладелецНастройкиДубль + + true + true + true + true + + + true + true + true + true + + + + ПользовательДубль + ПользовательДубль + + true + true + true + true + + + true + true + true + true + + + ИсточникДанных1 + ВЫБРАТЬ РАЗЛИЧНЫЕ + НастроенныеПользователиСГруппами.Пользователь КАК Пользователь, + ДатыЗапретаИзменения.Пользователь КАК ВладелецНастройки, + ДатыЗапретаИзменения.Раздел, + ДатыЗапретаИзменения.Объект, + ДатыЗапретаИзменения.ДатаЗапрета, + КодыПриоритетов.Значение КАК Приоритет +ПОМЕСТИТЬ ДатыЗапрета +ИЗ + РегистрСведений.ДатыЗапретаИзменения КАК ДатыЗапретаИзменения + ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ + 0 КАК Код, + 1 КАК Значение + + ОБЪЕДИНИТЬ + + ВЫБРАТЬ + 1, + 2 + + ОБЪЕДИНИТЬ + + ВЫБРАТЬ + 10, + 3 + + ОБЪЕДИНИТЬ + + ВЫБРАТЬ + 1000, + 4 + + ОБЪЕДИНИТЬ + + ВЫБРАТЬ + 1001, + 5 + + ОБЪЕДИНИТЬ + + ВЫБРАТЬ + 1010, + 6 + + ОБЪЕДИНИТЬ + + ВЫБРАТЬ + 1100, + 7 + + ОБЪЕДИНИТЬ + + ВЫБРАТЬ + 1101, + 8 + + ОБЪЕДИНИТЬ + + ВЫБРАТЬ + 1110, + 9) КАК КодыПриоритетов + ПО (ВЫБОР + КОГДА ДатыЗапретаИзменения.Пользователь = ЗНАЧЕНИЕ(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена) + ТОГДА 0 + ИНАЧЕ 10 + КОНЕЦ + ВЫБОР + КОГДА ДатыЗапретаИзменения.Объект = ДатыЗапретаИзменения.Раздел + ТОГДА 0 + ИНАЧЕ 100 + КОНЕЦ + ВЫБОР + КОГДА ДатыЗапретаИзменения.Раздел = ЗНАЧЕНИЕ(ПланВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка) + ТОГДА 0 + ИНАЧЕ 1000 + КОНЕЦ = КодыПриоритетов.Код) + ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ + ДатыЗапретаИзменения.Пользователь КАК Пользователь, + ДатыЗапретаИзменения.Пользователь КАК ГруппаПользователей + ИЗ + РегистрСведений.ДатыЗапретаИзменения КАК ДатыЗапретаИзменения + ГДЕ + ТИПЗНАЧЕНИЯ(ДатыЗапретаИзменения.Пользователь) <> ТИП(Справочник.Пользователи) + И ТИПЗНАЧЕНИЯ(ДатыЗапретаИзменения.Пользователь) <> ТИП(Справочник.ГруппыПользователей) + И ТИПЗНАЧЕНИЯ(ДатыЗапретаИзменения.Пользователь) <> ТИП(Справочник.ВнешниеПользователи) + И ТИПЗНАЧЕНИЯ(ДатыЗапретаИзменения.Пользователь) <> ТИП(Справочник.ГруппыВнешнихПользователей) + И ДатыЗапретаИзменения.Пользователь <> ЗНАЧЕНИЕ(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехПользователей) + И (ЛОЖЬ В (&ЗаданныеПользователи) + ИЛИ ДатыЗапретаИзменения.Пользователь В (&ЗаданныеПользователи)) + + ОБЪЕДИНИТЬ + + ВЫБРАТЬ + ЗНАЧЕНИЕ(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена), + ЗНАЧЕНИЕ(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена) + ГДЕ + (ЛОЖЬ В (&ЗаданныеПользователи) + ИЛИ ИСТИНА В (&ЗаданныеПользователи))) КАК НастроенныеПользователиСГруппами + ПО (ДатыЗапретаИзменения.Пользователь В (ЗНАЧЕНИЕ(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехУзловПлановОбмена), НастроенныеПользователиСГруппами.ГруппаПользователей)) + И (ДатыЗапретаИзменения.Объект <> НЕОПРЕДЕЛЕНО) + И ((НЕ(ДатыЗапретаИзменения.Объект <> ДатыЗапретаИзменения.Раздел + И ДатыЗапретаИзменения.Раздел = ЗНАЧЕНИЕ(ПланВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка)))) +; + +//////////////////////////////////////////////////////////////////////////////// +ВЫБРАТЬ РАЗЛИЧНЫЕ + ДатыЗапрета.Пользователь, + ДатыЗапрета.Пользователь КАК ПользовательДубль, + ТИПЗНАЧЕНИЯ(ДатыЗапрета.Пользователь) КАК ПользовательТип, + ДатыЗапрета.ВладелецНастройки, + ДатыЗапрета.ВладелецНастройки КАК ВладелецНастройкиДубль, + ТИПЗНАЧЕНИЯ(ДатыЗапрета.ВладелецНастройки) КАК ВладелецНастройкиТип, + ДатыЗапрета.Раздел, + ДатыЗапрета.Объект, + ПриоритетныеДатыСПричинамиИсключения.ДатаЗапрета, + ДатыЗапрета.ДатаЗапрета КАК ДатаЗапретаНастройки, + ДатыЗапрета.Приоритет КАК ПриоритетНастройки, + ДатыЗапретаИзменения.Комментарий КАК КомментарийНастройки, + ПриоритетныеДатыСПричинамиИсключения.Комментарий +ИЗ + ДатыЗапрета КАК ДатыЗапрета + ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ + ПриоритетныеДаты.Пользователь КАК Пользователь, + ПриоритетныеДаты.Раздел КАК Раздел, + ПриоритетныеДаты.Объект КАК Объект, + ПриоритетныеДаты.ДатаЗапрета КАК ДатаЗапрета, + МАКСИМУМ(ДатыЗапретаИзменения.Комментарий) КАК Комментарий + ИЗ + (ВЫБРАТЬ + ДатыЗапрета.Пользователь КАК Пользователь, + ДатыЗапрета.Раздел КАК Раздел, + ДатыЗапрета.Объект КАК Объект, + МАКСИМУМ(ДатыЗапрета.ДатаЗапрета) КАК ДатаЗапрета, + МАКСИМУМ(ДатыЗапрета.Приоритет) КАК Приоритет + ИЗ + ДатыЗапрета КАК ДатыЗапрета + ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ + ДатыЗапрета.Пользователь КАК Пользователь, + ДатыЗапрета.Раздел КАК Раздел, + ДатыЗапрета.Объект КАК Объект, + МАКСИМУМ(ДатыЗапрета.Приоритет) КАК Приоритет + ИЗ + ДатыЗапрета КАК ДатыЗапрета + + СГРУППИРОВАТЬ ПО + ДатыЗапрета.Пользователь, + ДатыЗапрета.Раздел, + ДатыЗапрета.Объект) КАК МаксимальныйПриоритет + ПО ДатыЗапрета.Пользователь = МаксимальныйПриоритет.Пользователь + И ДатыЗапрета.Раздел = МаксимальныйПриоритет.Раздел + И ДатыЗапрета.Объект = МаксимальныйПриоритет.Объект + И ДатыЗапрета.Приоритет = МаксимальныйПриоритет.Приоритет + + СГРУППИРОВАТЬ ПО + ДатыЗапрета.Пользователь, + ДатыЗапрета.Раздел, + ДатыЗапрета.Объект) КАК ПриоритетныеДаты + ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатыЗапрета КАК ДатыЗапрета + ПО (ДатыЗапрета.Пользователь = ПриоритетныеДаты.Пользователь) + И (ДатыЗапрета.Раздел = ПриоритетныеДаты.Раздел) + И (ДатыЗапрета.Объект = ПриоритетныеДаты.Объект) + И (ДатыЗапрета.Приоритет = ПриоритетныеДаты.Приоритет) + И (ДатыЗапрета.ДатаЗапрета = ПриоритетныеДаты.ДатаЗапрета) + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДатыЗапретаИзменения КАК ДатыЗапретаИзменения + ПО (ДатыЗапрета.ВладелецНастройки = ДатыЗапретаИзменения.Пользователь) + И (ДатыЗапрета.Раздел = ДатыЗапретаИзменения.Раздел) + И (ДатыЗапрета.Объект = ДатыЗапретаИзменения.Объект) + И (ДатыЗапрета.ДатаЗапрета = ДатыЗапретаИзменения.ДатаЗапрета) + + СГРУППИРОВАТЬ ПО + ПриоритетныеДаты.Пользователь, + ПриоритетныеДаты.Раздел, + ПриоритетныеДаты.Объект, + ПриоритетныеДаты.Приоритет, + ПриоритетныеДаты.ДатаЗапрета) КАК ПриоритетныеДатыСПричинамиИсключения + ПО ДатыЗапрета.Пользователь = ПриоритетныеДатыСПричинамиИсключения.Пользователь + И ДатыЗапрета.Раздел = ПриоритетныеДатыСПричинамиИсключения.Раздел + И ДатыЗапрета.Объект = ПриоритетныеДатыСПричинамиИсключения.Объект + ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДатыЗапретаИзменения КАК ДатыЗапретаИзменения + ПО ДатыЗапрета.ВладелецНастройки = ДатыЗапретаИзменения.Пользователь + И ДатыЗапрета.Раздел = ДатыЗапретаИзменения.Раздел + И ДатыЗапрета.Объект = ДатыЗапретаИзменения.Объект +ГДЕ + (НЕ((НЕ ЛОЖЬ В (&ЗаданныеРазделы)) + И ДатыЗапрета.Раздел <> ЗНАЧЕНИЕ(ПланВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка) + И (НЕ ДатыЗапрета.Раздел В (&ЗаданныеРазделы)))) + И (НЕ((НЕ ЛОЖЬ В (&ЗаданныеОбъекты)) + И ДатыЗапрета.Объект <> ДатыЗапрета.Раздел + И (НЕ ДатыЗапрета.Объект В (&ЗаданныеОбъекты)))) + + + ЭтоПрочиеПользователи + Выбор Когда Пользователь = Значение(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехПользователей) Тогда 1 Иначе 0 Конец + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это прочие пользователи</v8:content> + </v8:item> + + + true + true + + + + ЭтоПрочиеРазделы + Выбор Когда Раздел = Значение(ПланВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка) Тогда 1 Иначе 0 Конец + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это прочие разделы</v8:content> + </v8:item> + + + true + true + + + + ЭтоПрочиеОбъекты + Выбор Когда Объект = Раздел Тогда 1 Иначе 0 Конец + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это прочие объекты</v8:content> + </v8:item> + + + true + true + + + + Пользователи + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Узлы планов обмена</v8:content> + </v8:item> + + + d4p1:ExchangePlanRef + + false + true + false + + + ВыборГруппИЭлементов + Items + + + + + Разделы + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разделы</v8:content> + </v8:item> + + + d4p1:ChartOfCharacteristicTypesRef.РазделыДатЗапретаИзменения + + false + true + false + + + ВыборГруппИЭлементов + Items + + + + + Объекты + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Объекты</v8:content> + </v8:item> + + + d4p1:Characteristic.РазделыДатЗапретаИзменения + + false + true + false + + + ВыборГруппИЭлементов + Items + + + + + ЗаданныеПользователи + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заданные пользователи</v8:content> + </v8:item> + + + xs:boolean + d4p1:AnyRef + + true + true + false + + + ЗаданныеОбъекты + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заданные объекты</v8:content> + </v8:item> + + + xs:boolean + d4p1:AnyRef + + true + true + false + + + ЗаданныеРазделы + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заданные разделы</v8:content> + </v8:item> + + + xs:boolean + d4p1:AnyRef + + true + true + false + + + ПоПользователям + + + ru + По узлам планов обмена + + + + + + false + Пользователи + + Normal + 62a81edd-bb62-4897-a958-ac4c1de13e62 + + + false + Разделы + + Normal + ab5bd1d8-9c4a-4ab9-8af0-9cba98929e96 + + + false + Объекты + + Normal + 74b83a5f-2016-4522-9d1e-6fcd3dab8e63 + + + + + + + ДатаЗапрета + + + ДатаЗапретаНастройки + + + + + + Формат + + + ru + ДП='Без запрета' + + + + + + + + + + ЭтоПрочиеПользователи + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Пользователь + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеПользователи + Desc + + + + + + Пользователь + + + + + + ЭтоПрочиеРазделы + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Раздел + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ЭтоПрочиеОбъекты + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Объект + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ДатаЗапрета + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Комментарий + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеРазделы + Desc + + + Раздел + Asc + + + ЭтоПрочиеОбъекты + Desc + + + Объект + Asc + + + + + + + Раздел + + + Объект + + Together + + + ДатаЗапрета + + + Комментарий + + + + false + + + ПриоритетНастройки + Desc + + + ДатаЗапретаНастройки + Desc + + + ВладелецНастройки + Asc + + + + + + ПриоритетНастройки + + + ВладелецНастройки + + Together + + + ДатаЗапретаНастройки + + + КомментарийНастройки + + + Normal + 6106cf95-b0ad-42c9-baf2-7012c282381a + + + ru + Настройки дат запрета + + + + + + + + + ПоПользователямБезРазделов + + + ru + По узлам планов обмена + + + + + + false + Пользователи + + Normal + 217515d2-7dfe-4ba9-9daa-1c013370e39b + + + false + Разделы + + Inaccessible + + + false + Объекты + + Normal + 9d9c1e2c-1702-46cf-9754-6f4fb6993446 + + + false + ЗаданныеРазделы + false + + + + + + + ДатаЗапрета + + + ДатаЗапретаНастройки + + + + + + Формат + + + ru + ДП='Без запрета' + + + + + + + + + + ЭтоПрочиеПользователи + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Пользователь + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеПользователи + Desc + + + + + + Пользователь + + + + + + ЭтоПрочиеРазделы + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Раздел + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ЭтоПрочиеОбъекты + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Объект + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ДатаЗапрета + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Комментарий + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеРазделы + Desc + + + Раздел + Asc + + + ЭтоПрочиеОбъекты + Desc + + + Объект + Asc + + + + + + + false + Раздел + + + Объект + + Together + + + ДатаЗапрета + + + Комментарий + + + + false + + + ПриоритетНастройки + Desc + + + ДатаЗапретаНастройки + Desc + + + ВладелецНастройки + Asc + + + + + + ПриоритетНастройки + + + ВладелецНастройки + + Together + + + ДатаЗапретаНастройки + + + КомментарийНастройки + + + Normal + 6106cf95-b0ad-42c9-baf2-7012c282381a + + + ru + Настройки дат запрета + + + + + + + + + ПоПользователямБезОбъектов + + + ru + По узлам планов обмена + + + + + + false + Пользователи + + Normal + 217515d2-7dfe-4ba9-9daa-1c013370e39b + + + false + Разделы + + Normal + d9241907-6671-4e9a-8225-b5adffe770b0 + + + false + Объекты + + Inaccessible + + + false + ЗаданныеРазделы + false + + + + + + + ДатаЗапрета + + + ДатаЗапретаНастройки + + + + + + Формат + + + ru + ДП='Без запрета' + + + + + + + + + + ЭтоПрочиеПользователи + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Пользователь + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеПользователи + Desc + + + + + + Пользователь + + + + + + ЭтоПрочиеРазделы + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Раздел + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ЭтоПрочиеОбъекты + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Объект + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ДатаЗапрета + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Комментарий + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеРазделы + Desc + + + Раздел + Asc + + + ЭтоПрочиеОбъекты + Desc + + + Объект + Asc + + + + + + + Раздел + + + false + Объект + + Together + + + ДатаЗапрета + + + Комментарий + + + + false + + + ПриоритетНастройки + Desc + + + ДатаЗапретаНастройки + Desc + + + ВладелецНастройки + Asc + + + + + + ПриоритетНастройки + + + ВладелецНастройки + + Together + + + ДатаЗапретаНастройки + + + КомментарийНастройки + + + Normal + 6106cf95-b0ad-42c9-baf2-7012c282381a + + + ru + Настройки дат запрета + + + + + + + + + ПоРазделамОбъектамДляПользователей + + + ru + По разделам и объектам для узлов планов обмена + + + + + + false + Пользователи + + Normal + bd4616d0-c129-4811-82d9-4b31c53d59bb + + + false + Разделы + + Normal + 01902b88-ba82-4086-a503-c093634e862f + + + false + Объекты + + Normal + 6a426184-7fab-4727-99ec-f38c25b25aa0 + + + + + + + ДатаЗапрета + + + ДатаЗапретаНастройки + + + + + + Формат + + + ru + ДП='Без запрета' + + + + + + + + + + ЭтоПрочиеРазделы + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Раздел + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ЭтоПрочиеОбъекты + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Объект + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеРазделы + Desc + + + Раздел + Asc + + + ЭтоПрочиеОбъекты + Desc + + + Объект + Asc + + + + + + Раздел + + + Объект + + Together + + + + + + ЭтоПрочиеПользователи + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Пользователь + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ДатаЗапрета + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Комментарий + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеПользователи + Desc + + + Пользователь + Asc + + + ДатаЗапрета + Asc + + + Комментарий + Asc + + + + + Пользователь + + + ДатаЗапрета + + + Комментарий + + + + false + + + ПриоритетНастройки + Desc + + + ДатаЗапретаНастройки + Desc + + + ВладелецНастройки + Asc + + + + + + ПриоритетНастройки + + + ВладелецНастройки + + Together + + + ДатаЗапретаНастройки + + + КомментарийНастройки + + + Normal + 0a91b79e-111c-407d-b4eb-a8271a4bac9b + + + ru + Настройки дат запрета + + + + + + + + + ПоОбъектамДляПользователей + + + ru + По объектам для узлов планов обмена + + + + + + false + Пользователи + + Normal + f75f64ca-ab45-45af-95df-7f0602ac0b3c + + + false + Разделы + + Inaccessible + + + false + Объекты + + Normal + 6a426184-7fab-4727-99ec-f38c25b25aa0 + + + + + + + ДатаЗапрета + + + ДатаЗапретаНастройки + + + + + + Формат + + + ru + ДП='Без запрета' + + + + + + + + + + ЭтоПрочиеРазделы + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Раздел + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ЭтоПрочиеОбъекты + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Объект + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеРазделы + Desc + + + Раздел + Asc + + + ЭтоПрочиеОбъекты + Desc + + + Объект + Asc + + + + + + false + Раздел + + + Объект + + Together + + + + + + ЭтоПрочиеПользователи + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Пользователь + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ДатаЗапрета + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Комментарий + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеПользователи + Desc + + + Пользователь + Asc + + + ДатаЗапрета + Asc + + + Комментарий + Asc + + + + + Пользователь + + + ДатаЗапрета + + + Комментарий + + + + false + + + ПриоритетНастройки + Desc + + + ДатаЗапретаНастройки + Desc + + + ВладелецНастройки + Asc + + + + + + ПриоритетНастройки + + + ВладелецНастройки + + Together + + + ДатаЗапретаНастройки + + + КомментарийНастройки + + + Normal + 0a91b79e-111c-407d-b4eb-a8271a4bac9b + + + ru + Настройки дат запрета + + + + + + + + + ПоРазделамДляПользователей + + + ru + По разделам для узлов планов обмена + + + + + + false + Пользователи + + Normal + f75f64ca-ab45-45af-95df-7f0602ac0b3c + + + false + Разделы + + Normal + 01902b88-ba82-4086-a503-c093634e862f + + + false + Объекты + + Inaccessible + + + + + + + ДатаЗапрета + + + ДатаЗапретаНастройки + + + + + + Формат + + + ru + ДП='Без запрета' + + + + + + + + + + ЭтоПрочиеРазделы + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Раздел + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ЭтоПрочиеОбъекты + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Объект + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеРазделы + Desc + + + Раздел + Asc + + + ЭтоПрочиеОбъекты + Desc + + + Объект + Asc + + + + + + Раздел + + + false + Объект + + Together + + + + + + ЭтоПрочиеПользователи + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Пользователь + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + ДатаЗапрета + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + Комментарий + Items + None + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + + + ЭтоПрочиеПользователи + Desc + + + Пользователь + Asc + + + ДатаЗапрета + Asc + + + Комментарий + Asc + + + + + Пользователь + + + ДатаЗапрета + + + Комментарий + + + + false + + + ПриоритетНастройки + Desc + + + ДатаЗапретаНастройки + Desc + + + ВладелецНастройки + Asc + + + + + + ПриоритетНастройки + + + ВладелецНастройки + + Together + + + ДатаЗапретаНастройки + + + КомментарийНастройки + + + Normal + 0a91b79e-111c-407d-b4eb-a8271a4bac9b + + + ru + Настройки дат запрета + + + + + + + + \ No newline at end of file diff --git a/SSL/src/Reports/ДатыЗапретаЗагрузки/ДатыЗапретаЗагрузки.mdo b/SSL/src/Reports/ДатыЗапретаЗагрузки/ДатыЗапретаЗагрузки.mdo new file mode 100644 index 000000000..5a817bb81 --- /dev/null +++ b/SSL/src/Reports/ДатыЗапретаЗагрузки/ДатыЗапретаЗагрузки.mdo @@ -0,0 +1,31 @@ + + + + + + + ДатыЗапретаЗагрузки + + ru + Даты запрета загрузки + + Report.ДатыЗапретаЗагрузки.Form.ФормаОтчета + Report.ДатыЗапретаЗагрузки.Template.ОсновнаяСхемаКомпоновкиДанных + + ФормаОтчета + + ru + Форма отчета + + PersonalComputer + MobileDevice + + + ОсновнаяСхемаКомпоновкиДанных + + ru + Основная схема компоновки данных + + DataCompositionSchema + + diff --git a/SSL/src/Reports/ОтчетПоИзменениямВерсийОбъектов/Forms/СравнениеВерсий/Module.bsl b/SSL/src/Reports/ОтчетПоИзменениямВерсийОбъектов/Forms/СравнениеВерсий/Module.bsl index 2e5060573..0fb84948f 100644 --- a/SSL/src/Reports/ОтчетПоИзменениямВерсийОбъектов/Forms/СравнениеВерсий/Module.bsl +++ b/SSL/src/Reports/ОтчетПоИзменениямВерсийОбъектов/Forms/СравнениеВерсий/Module.bsl @@ -16,8 +16,6 @@ // Блок обработчиков событий // -// Обработчик события "при создании на сервере" формы -// &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) diff --git a/SSL/src/Roles/БазовыеПрава/Rights.rights b/SSL/src/Roles/БазовыеПрава/Rights.rights index 8e080f305..6fd3080bb 100644 --- a/SSL/src/Roles/БазовыеПрава/Rights.rights +++ b/SSL/src/Roles/БазовыеПрава/Rights.rights @@ -133,6 +133,13 @@ true + + ExchangePlan.ОбменВнешнимиЗаданиямиС1СДокументооборот + + Read + true + + Catalog.ВидыКонтактнойИнформации @@ -300,6 +307,13 @@ true + + ExchangePlan.ОбменВнешнимиЗаданиями + + Read + true + + ПоЗначениямРасширенный // ПоЗначениямРасширенный ( Таблица, Право, Модификатор, ПрисоединяемыеТаблицы, О, В1,П1,О1, В2,П2,О2,..., В(n), П(n), О(n)). diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БизнесПроцессыИЗадачи/БизнесПроцессыИЗадачи.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БизнесПроцессыИЗадачи/БизнесПроцессыИЗадачи.mdo index 98c5063a9..d28596eb4 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БизнесПроцессыИЗадачи/БизнесПроцессыИЗадачи.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БизнесПроцессыИЗадачи/БизнесПроцессыИЗадачи.mdo @@ -67,5 +67,6 @@ CommonPicture.КоллекцияЗадачиИБизнесПроцессы StyleItem.НеПринятыеКИсполнениюЗадачи CommonModule.БизнесПроцессыИЗадачиВызовСервера + CommonModule.БизнесПроцессыИЗадачиКлиентПереопределяемый Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ВнешниеБизнесПроцессыИЗадачи/ВнешниеБизнесПроцессыИЗадачи.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ВнешниеБизнесПроцессыИЗадачи/ВнешниеБизнесПроцессыИЗадачи.mdo new file mode 100644 index 000000000..0e69806f5 --- /dev/null +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ВнешниеБизнесПроцессыИЗадачи/ВнешниеБизнесПроцессыИЗадачи.mdo @@ -0,0 +1,23 @@ + + + ВнешниеБизнесПроцессыИЗадачи + + ru + Внешние бизнес процессы и задачи + + CommonModule.ВнешниеЗадачиВызовСервера + CommonModule.ВнешниеЗадачиПереопределяемыйВызовСервера + CommonModule.ОбменВнешнимиЗаданиямиСобытия + ExchangePlan.ОбменВнешнимиЗаданиями + ExchangePlan.ОбменВнешнимиЗаданиямиС1СДокументооборот + EventSubscription.СтартВнешнегоЗаданияПередЗаписьюЗадач + EventSubscription.СтартВнешнегоЗаданияПриЗаписиЗадач + EventSubscription.ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередЗаписью + EventSubscription.ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередУдалением + EventSubscription.ОбменДаннымиОбменВнешнимиЗаданиямиПередЗаписью + EventSubscription.ОбменДаннымиОбменВнешнимиЗаданиямиПередУдалением + InformationRegister.ИсточникиВнешнихЗадач + Constant.ИспользоватьВнешниеЗадачи + CommonModule.ОбменВнешнимиЗаданиямиСервер + Subsystem.СтандартныеПодсистемы + diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ДатыЗапретаИзменения/ДатыЗапретаИзменения.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ДатыЗапретаИзменения/ДатыЗапретаИзменения.mdo index a7222caa4..95e10878b 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ДатыЗапретаИзменения/ДатыЗапретаИзменения.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ДатыЗапретаИзменения/ДатыЗапретаИзменения.mdo @@ -16,5 +16,6 @@ ScheduledJob.ПересчетТекущихЗначенийОтносительныхДатЗапретаИзменения Enum.ВидыНазначенияДатЗапрета CommonPicture.ПиктограммыПланОбменаУзел + Report.ДатыЗапретаЗагрузки Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ИнтеграцияС1СДокументооборот/ИнтеграцияС1СДокументооборот.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ИнтеграцияС1СДокументооборот/ИнтеграцияС1СДокументооборот.mdo new file mode 100644 index 000000000..7ca5da768 --- /dev/null +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ИнтеграцияС1СДокументооборот/ИнтеграцияС1СДокументооборот.mdo @@ -0,0 +1,59 @@ + + + ИнтеграцияС1СДокументооборот + + ru + Интеграция с 1С:Документооборот + + true + Constant.ИспользоватьИнтеграциюС1СДокументооборот + Constant.ИдентификаторКорневойПапкиФайлов1СДокументооборот + Constant.АдресВебСервиса1СДокументооборот + Constant.МаксимальныйРазмерФайлаДляПередачиВ1СДокументооборот + CommonForm.АвторизацияВ1СДокументооборот + CommonForm.ДокументооборотЗадачи + CommonCommand.ДокументооборотЗадачи + CommonForm.ДокументооборотФайлы + CommonCommand.ДокументооборотФайлы + CommonForm.ДокументооборотСозданиеНовогоФайла + Constant.НаименованиеКорневойПапкиФайлов1СДокументооборот + CommonForm.ДокументооборотБизнесПроцессИсполнение + CommonForm.ДокументооборотБизнесПроцессОзнакомление + CommonForm.ДокументооборотБизнесПроцессПоручение + CommonForm.ДокументооборотБизнесПроцессРассмотрение + CommonForm.ДокументооборотБизнесПроцессРегистрация + CommonForm.ДокументооборотБизнесПроцессСогласование + CommonForm.ДокументооборотБизнесПроцессУтверждение + CommonForm.ДокументооборотВнутреннийДокумент + CommonForm.ДокументооборотВходящийДокумент + CommonForm.ДокументооборотВыборИзСписка + CommonForm.ДокументооборотВыборИсполнителяБизнесПроцесса + CommonForm.ДокументооборотВыборОдногоТипаИзСоставногоТипа + CommonForm.ДокументооборотВыборФайла + CommonForm.ДокументооборотДокументы + CommonForm.ДокументооборотИсходящийДокумент + CommonForm.ДокументооборотКарточкаЗадачи + CommonForm.ДокументооборотКарточкаФайла + CommonForm.ДокументооборотНастройкаКаталогаФайлов + CommonForm.ДокументооборотПоискВСписке + CommonForm.ДокументооборотВыборОбъектовАдресацииРоли + CommonForm.ДокументооборотВыборПользователяСПодразделениями + CommonModule.РаботаС1СДокументооборот + CommonModule.РаботаС1СДокументооборотВызовСервера + CommonModule.РаботаС1СДокументооборотКлиент + CommonModule.РаботаС1СДокументооборотКлиентПовтИсп + CommonModule.РаботаС1СДокументооборотПереопределяемый + CommonModule.РаботаС1СДокументооборотПовтИсп + CommonForm.ДокументооборотБизнесПроцессОбработкаВнутреннегоДокумента + CommonForm.ДокументооборотБизнесПроцессОбработкаВходящегоДокумента + CommonForm.ДокументооборотБизнесПроцессОбработкаИсходящегоДокумента + Catalog.НастройкиЗаполненияОбъектов1СДокументооборота + CommonCommand.ДокументооборотСоздатьБизнесПроцесс + CommonCommand.ДокументооборотДокументы + CommandGroup.Документооборот + EventSubscription.ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередЗаписью + EventSubscription.ОбменДаннымиОбменВнешнимиЗаданиямиС1СДокументооборотПередУдалением + CommonPicture.ЗаполнитьПоОснованию + Enum.ВариантыПравилЗаполненияРеквизитов + Subsystem.СтандартныеПодсистемы + diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/РаботаСФайлами.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/РаботаСФайлами.mdo index 85f9faa1c..1258edc19 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/РаботаСФайлами.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/РаботаСФайлами.mdo @@ -48,5 +48,6 @@ Enum.ФорматыХраненияМногостраничныхФайлов Enum.ФорматыХраненияОдностраничныхФайлов CommonModule.РаботаСФайламиСобытия + CommonModule.РаботаСФайламиВызовСервераПереопределяемый Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ФайловыеФункции/ФайловыеФункции.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ФайловыеФункции/ФайловыеФункции.mdo index c8be8c9e2..4b5b576b8 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ФайловыеФункции/ФайловыеФункции.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ФайловыеФункции/ФайловыеФункции.mdo @@ -45,5 +45,7 @@ StyleItem.ФайлЗанятыйТекущимПользователем CommonModule.ФайловыеФункцииПереопределяемый CommonModule.ОбменФайламиВызовСервера + CommonPicture.КартинкаОбновитьИзФайлаНаДиске + CommonModule.ФайловыеФункцииПовтИсп Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяЦифроваяПодпись/ЭлектроннаяЦифроваяПодпись.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяЦифроваяПодпись/ЭлектроннаяЦифроваяПодпись.mdo index 4017ee45c..de89f98e1 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяЦифроваяПодпись/ЭлектроннаяЦифроваяПодпись.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяЦифроваяПодпись/ЭлектроннаяЦифроваяПодпись.mdo @@ -25,5 +25,6 @@ CommonModule.ЭлектроннаяЦифроваяПодписьКлиентСервер CommonForm.ВыборСертификата Enum.ДействияПриСохраненииСЭЦП + CommonForm.ПодписьЭЦП Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo index 2786faaae..9b190314a 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo @@ -14,11 +14,13 @@ ВебСервисыРаботыСФайлами ВерсионированиеОбъектов Взаимодействия + ВнешниеБизнесПроцессыИЗадачи ГрупповоеИзменениеОбъектов ДатыЗапретаИзменения ДополнительныеОтчетыИОбработки ЗавершениеРаботыПользователей ЗапретРедактированияРеквизитовОбъектов + ИнтеграцияС1СДокументооборот КалендарныеГрафики КонтактнаяИнформация КонтрольДинамическогоОбновленияКонфигурации diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl index fc26323ac..11714963e 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl @@ -26,15 +26,15 @@ Если Параметры.Свойство("ВидимостьОтборов") Тогда Элементы.ГруппаОтбор.Видимость = Параметры.ВидимостьОтборов; + Иначе + ПоАвтору = ОбщегоНазначения.ТекущийПользователь(); КонецЕсли; + УстановитьОтбор(); Если Параметры.Свойство("БлокировкаОкнаВладельца") Тогда РежимОткрытияОкна = Параметры.БлокировкаОкнаВладельца; КонецЕсли; - ПоАвтору = ОбщегоНазначения.ТекущийПользователь(); - УстановитьОтбор(); - ИспользоватьДатуИВремяВСрокахЗадач = ПолучитьФункциональнуюОпцию("ИспользоватьДатуИВремяВСрокахЗадач"); Элементы.СрокИсполнения.Формат = ?(ИспользоватьДатуИВремяВСрокахЗадач, "ДЛФ=DT", "ДЛФ=D"); Элементы.ДатаИсполнения.Формат = ?(ИспользоватьДатуИВремяВСрокахЗадач, "ДЛФ=DT", "ДЛФ=D"); diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/ЗадачаИсполнителя.mdo b/SSL/src/Tasks/ЗадачаИсполнителя/ЗадачаИсполнителя.mdo index 9f2b0e856..f7f1dd500 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/ЗадачаИсполнителя.mdo +++ b/SSL/src/Tasks/ЗадачаИсполнителя/ЗадачаИсполнителя.mdo @@ -428,6 +428,24 @@ Use Use + + АвторСтрокой + + ru + Автор строкой + + + String + + 150 + + + + + + Use + Use + Дополнительно @@ -521,6 +539,29 @@ PersonalComputer MobileDevice + + ДополнительныйОбъектАдресации + + ru + Дополнительный объект адресации + + + Characteristic.ОбъектыАдресацииЗадач + + + ru + Дополнительный объект адресации, если задача адресована роли исполнителя + + + + Use + + ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач.EmptyRef + + Index + InformationRegister.ИсполнителиЗадач.Dimension.ДополнительныйОбъектАдресации + Use + Исполнитель @@ -546,31 +587,6 @@ InformationRegister.ИсполнителиЗадач.Dimension.Исполнитель Use - - РольИсполнителя - - ru - Роль исполнителя - - - CatalogRef.РолиИсполнителей - - - ru - Роль исполнителя, которой адресована задача - - - - DontUse - Use - Use - - Catalog.РолиИсполнителей.EmptyRef - - Index - InformationRegister.ИсполнителиЗадач.Dimension.РольИсполнителя - Use - ОсновнойОбъектАдресации @@ -594,27 +610,29 @@ InformationRegister.ИсполнителиЗадач.Dimension.ОсновнойОбъектАдресации Use - - ДополнительныйОбъектАдресации + + РольИсполнителя ru - Дополнительный объект адресации + Роль исполнителя - Characteristic.ОбъектыАдресацииЗадач + CatalogRef.РолиИсполнителей ru - Дополнительный объект адресации, если задача адресована роли исполнителя + Роль исполнителя, которой адресована задача + DontUse + Use Use - ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач.EmptyRef + Catalog.РолиИсполнителей.EmptyRef Index - InformationRegister.ИсполнителиЗадач.Dimension.ДополнительныйОбъектАдресации + InformationRegister.ИсполнителиЗадач.Dimension.РольИсполнителя Use