From a30f0e354d831baa7b3fa99bba70e6fdba8c83a4 Mon Sep 17 00:00:00 2001
From: Denis Ushakov <59319861+denisushakov@users.noreply.github.com>
Date: Mon, 2 Dec 2024 14:34:15 +0300
Subject: [PATCH] Feature/rename common modules redirect 116 (#153)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Перереботана подсистема переопределения методов БСП
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
.../ERArchitectureIntegrationsSubsystem.svg | 2 +-
...20\276\320\262\320\221\320\241\320\237.md" | 110 +-
.../Ext/ObjectModule.bsl" | 8 +-
.../Ext/Form/Module.bsl" | 88 +-
.../Ext/ObjectModule.bsl" | 2 +-
.../Ext/ManagerModule.bsl" | 2 +-
.../Ext/Form/Module.bsl" | 4 +-
.../Ext/Form/Module.bsl" | 16 +-
.../Ext/ObjectModule.bsl" | 2 +-
.../Ext/Form/Module.bsl" | 8 +-
.../Ext/Form/Module.bsl" | 144 +-
.../Ext/ManagerModule.bsl" | 8 +-
.../Ext/Form/Module.bsl" | 4 +-
.../Ext/ManagerModule.bsl" | 20 +-
.../Ext/ObjectModule.bsl" | 4 +-
.../Ext/Form/Module.bsl" | 2 +-
.../Ext/Form/Module.bsl" | 10 +-
.../Ext/ObjectModule.bsl" | 2 +-
.../Ext/ManagerModule.bsl" | 12 +-
.../Ext/ObjectModule.bsl" | 2 +-
.../Ext/Form/Module.bsl" | 30 +-
.../Ext/Form/Module.bsl" | 6 +-
.../Ext/Form/Module.bsl" | 4 +-
.../Ext/Module.bsl" | 12 +-
.../Ext/Module.bsl" | 63 -
...0\265\320\261\320\275\321\213\320\271.xml" | 23 -
.../Ext/Module.bsl" | 44 -
.../Ext/Module.bsl" | 2 +-
.../Ext/Module.bsl" | 54 +-
.../Ext/Module.bsl" | 66 +-
.../Ext/Module.bsl" | 23 +-
.../Ext/Module.bsl" | 10 +-
.../Ext/Module.bsl" | 2 +-
.../Ext/Module.bsl" | 6 +-
.../Ext/Module.bsl" | 24 +-
.../Ext/Module.bsl" | 4 +-
...0\273\320\270\320\265\320\275\321\202.xml" | 27 -
.../Ext/Module.bsl" | 194 --
.../Ext/Module.bsl" | 236 --
...0\237\321\200\320\260\320\262\320\260.xml" | 27 -
.../Ext/Module.bsl" | 30 -
.../Ext/Module.bsl" | 1827 +---------
...0\265\320\261\320\275\321\213\320\271.xml" | 23 -
.../Ext/Module.bsl" | 227 --
...0\273\320\270\320\265\320\275\321\202.xml" | 27 -
.../Ext/Module.bsl" | 63 -
...0\265\321\200\320\262\320\265\321\200.xml" | 27 -
.../Ext/Module.bsl" | 312 --
...1\201\320\260\321\206\320\270\321\217.xml" | 6 +-
.../Ext/Module.bsl" | 3031 +++++++++++++++++
...0\273\320\270\320\265\320\275\321\202.xml" | 6 +-
.../Ext/Module.bsl" | 507 +++
...0\262\321\202\320\230\321\201\320\277.xml" | 8 +-
.../Ext/Module.bsl" | 41 +
...0\265\321\200\320\262\320\265\321\200.xml" | 6 +-
.../Ext/Module.bsl" | 775 +++++
...0\262\321\202\320\230\321\201\320\277.xml" | 8 +-
.../Ext/Module.bsl" | 106 +-
...1\200\320\275\320\265\321\202\320\260.xml" | 23 -
.../Ext/Module.bsl" | 125 -
...0\265\320\261\320\275\321\213\320\271.xml" | 23 -
.../Ext/Module.bsl" | 46 -
.../Ext/Module.bsl" | 82 -
.../Ext/Module.bsl" | 38 -
...0\265\320\261\320\275\321\213\320\271.xml" | 23 -
.../Ext/Module.bsl" | 51 -
.../Ext/Module.bsl" | 37 +-
.../Ext/Module.bsl" | 2 +-
.../Ext/Module.bsl" | 13 +-
.../Ext/Module.bsl" | 4 +-
.../Ext/Module.bsl" | 8 +-
...0\265\321\200\320\262\320\265\321\200.xml" | 23 -
.../Ext/Module.bsl" | 339 --
...0\265\321\200\320\262\320\265\321\200.xml" | 23 -
.../Ext/Module.bsl" | 61 -
...1\211\320\265\320\275\320\270\321\217.xml" | 23 -
.../Ext/Module.bsl" | 57 -
...0\265\320\261\320\275\321\213\320\271.xml" | 23 -
.../Ext/Module.bsl" | 46 -
.../Ext/Module.bsl" | 10 +-
...0\273\320\270\320\265\320\275\321\202.xml" | 23 -
.../Ext/Module.bsl" | 58 -
...0\262\321\202\320\230\321\201\320\277.xml" | 23 -
...0\273\320\270\320\265\320\275\321\202.xml" | 23 -
.../Ext/Module.bsl" | 47 -
...0\262\321\202\320\230\321\201\320\277.xml" | 23 -
.../Ext/Module.bsl" | 53 -
.../Ext/Module.bsl" | 183 +-
...0\265\321\200\320\262\320\265\321\200.xml" | 23 -
.../Ext/Module.bsl" | 70 -
.../Ext/Module.bsl" | 2 +-
...1\201\321\202\320\265\320\274\320\260.xml" | 23 -
.../Ext/Module.bsl" | 355 --
.../Ext/Module.bsl" | 100 -
...1\201\320\260\321\206\320\270\321\217.xml" | 23 -
.../Ext/Module.bsl" | 51 -
...1\201\320\260\321\206\320\270\321\217.xml" | 23 -
.../Ext/Module.bsl" | 57 -
.../Ext/Module.bsl" | 120 -
src/cf/Configuration.xml | 31 +-
.../Ext/Form/Module.bsl" | 20 +-
.../Ext/ManagerModule.bsl" | 2 +-
.../Ext/ManagerModule.bsl" | 10 +-
...1\207\320\265\320\275\320\270\321\217.xml" | 31 +-
.../Ext/Module.bsl" | 8 +-
105 files changed, 4894 insertions(+), 5905 deletions(-)
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
rename "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.xml" => "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml" (89%)
create mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl"
rename "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202.xml" => "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml" (87%)
create mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
rename "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml" => "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" (82%)
create mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
rename "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" => "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" (86%)
create mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
rename "src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270.xml" => "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" (84%)
rename "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" => "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" (50%)
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\232\320\273\320\270\320\265\320\275\321\202.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl"
delete mode 100644 "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
diff --git a/docs/images/ERArchitectureIntegrationsSubsystem.svg b/docs/images/ERArchitectureIntegrationsSubsystem.svg
index 077d3a1a..d7b1b846 100644
--- a/docs/images/ERArchitectureIntegrationsSubsystem.svg
+++ b/docs/images/ERArchitectureIntegrationsSubsystem.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git "a/docs/\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\270\320\265\320\234\320\265\321\202\320\276\320\264\320\276\320\262\320\221\320\241\320\237.md" "b/docs/\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\270\320\265\320\234\320\265\321\202\320\276\320\264\320\276\320\262\320\221\320\241\320\237.md"
index 428bacb5..8d53d7fa 100644
--- "a/docs/\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\270\320\265\320\234\320\265\321\202\320\276\320\264\320\276\320\262\320\221\320\241\320\237.md"
+++ "b/docs/\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\270\320\265\320\234\320\265\321\202\320\276\320\264\320\276\320\262\320\221\320\241\320\237.md"
@@ -1,14 +1,18 @@
-# Подисистема аналог библиотеки стандартных подсистем, для переопределения методов БСП
-
+# Подисистема, аналог библиотеки стандартных подсистем, для переопределения методов БСП
+
+## Назначение
+
+Данная подсистема предназначена для упрощения работы с методами библиотеки стандартных подсистем (БСП) при их отсутствии. Она позволяет переопределять методы БСП с использованием аналогичных модулей и обеспечивает поддержку переадресации вызовов для корректной работы системы.
+
## 1. Использование общих модулей для переадресации методов
- Для переадресации методов используются общие модули-аналоги в названии которых содержится "Служебный", пример: "пбп_ОбщегоНазначенияСлужебный". В случае отсутствия библиотеки стандартных подсистем(БСП), используются аналоги модулей и методов БСП.
+ Для переадресации методов используются общие модули **``пбп_Переадресация``**, **``пбп_ПереадресацияКлиент``**, **``пбп_ПереадресацияКлиентПовтИсп``**, и т.д. В случае отсутствия библиотеки стандартных подсистем(БСП) используются аналоги методов БСП.
Пример вызова серверной процедуры:
```BSL
&НаСервере
Процедура СохранитьКаталогИсходногоКодаКонфигурации(Каталог)
- пбп_ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекСохранить(
+ пбп_Переадресация.ХранилищеОбщихНастроекСохранить(
КлючОбъекта(),
"пбп_ПользовательскиеФункции_КаталогИсходногоКода",
Каталог);
@@ -23,49 +27,65 @@
ИмяСобытия = НСтр("ru = 'Очистка истории интеграции'");
ТекстОшибки = СтрШаблон("Не удалось удалить запись истории интеграции %1", ВыборкаДетальныеЗаписи.Ссылка);
- пбп_ЖурналРегистрацииСлужебный.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки);
+ пбп_Переадресация.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки);
КонецПопытки;
КонецПроцедуры
```
- ## 2. Добавление новых методов-аналогов БСП
- ### 2.1 Поиск или создание внутренних модулей, аналогичных модулям БСП
- Найти внутренний модуль, с аналогичным названием и свойствами в БСП, если модуль отсутствует необходимо добавить новый, в имени должно содержатся "Служебный" (согласно общей концепции переопределения методов БСП).
-
- Пример: "пбп_ОбщегоНазначенияСлужебный", "пбп_ЖурналРегистрацииСлужебный".
-
- Методы располагаются в области "ПереадресацияМетодов", в описание метода указать см. пбп_ИмяМодуля.ИмяМетода.
-
- ```BSL
- #Область ПереадресацияМетодов
-
- // См. пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации.
- Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
- Модуль = ПолучитьМодуль();
- Модуль.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры);
- КонецПроцедуры
-
- #КонецОбласти
- ```
-
- Если модуль-аналог новый добавить функцию в области "СлужебныеПроцедурыИФункции", где пбп_ИмяМодуля для серверных модулей "пбп_ОбщегоНазначенияПовтИсп.", для клиентских "пбп_ОбщегоНазначенияКлиент"
-
- ```BSL
- Функция ПолучитьМодуль()
- Возврат пбп_ИмяМодуля.ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляАналогаБСП);
- КонецФункции
- ```
- ### 2.2 Создание методов в модуле-аналоге
- Пример: "пбп_ОбщегоНазначения". Методы располагаются в области "МетодыАналогиБСП", описание метода начинать с "Аналог метода БСП."
-
- ```BSL
- #Область МетодыАналогиБСП
-
- // Аналог метода БСП. Описание
- //
- Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
- // ...
- КонецПроцедуры
+## 2. Структура общих модулей переадресации
+
+1. Область **``ПереадресацияМетодов``**: в ней располагаются методы аналоги.
+2. Внутри этой области расположены именованные области по имени общих модулей, из которых взят аналог метода.
+3. В области **``СлужебныеПроцедурыИФункции``** -> **``МодульПереадресацииПоПодсистемам``**, необходимо добавить функцию переадресации общего модуля, если она отсутствует.
+
+Пример функции:
+```BSL
+ Функция ПереадресацияМодуля<ИмяОбщегоМодуляБСП>()
+ Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации(<ИмяОбщегоМодуляБСП>);
+ КонецФункции
+```
+
+4. В начале каждого метода необходимо добавить фрагмент кода для работы механизма переадресации.
+
+### Для процедур
+```BSL
+ Результат = ПереадресацияМодуля<ИмяОбщегоМодуляБСП>();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.<ИмяМетода>(Параметры);
+ Возврат;
+ КонецЕсли;
+```
+
+### Для функция
+```BSL
+ Результат = ПереадресацияМодуля<ИмяОбщегоМодуляБСП>();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.<ИмяМетода>(Параметры);
+ КонецЕсли;
+```
+
+5. Методы располагаются в области **``ПереадресацияМетодов``**, и в описании метода указывается ``// Аналог метода БСП.``
+
+Пример:
+
+```BSL
+#Область ПрограммныйИнтерфейс
+#Область ПереадресацияМетодов
+#Область ОбщегоНазначения
- #КонецОбласти
- ```
+// Аналог метода БСП.
+// <Описание>
+//
+Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.ОбщегоНазначения(ИмяМетода, Параметры);
+ Возврат;
+ КонецЕсли;
+
+ <Продолжение>
+КонецПроцедуры
+#КонецОбласти
+#КонецОбласти
+#КонецОбласти
+```
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\237\320\276\321\202\320\276\320\272\320\270/Ext/ObjectModule.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\237\320\276\321\202\320\276\320\272\320\270/Ext/ObjectModule.bsl"
index 1a5b8984..22a703a1 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\237\320\276\321\202\320\276\320\272\320\270/Ext/ObjectModule.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\237\320\276\321\202\320\276\320\272\320\270/Ext/ObjectModule.bsl"
@@ -72,7 +72,7 @@
Возврат;
КонецЕсли;
- Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
+ Если Не пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецЕсли;
@@ -88,7 +88,7 @@
ОтборЗадания = Новый Структура;
ОтборЗадания.Вставить("Ключ", КлючЗадания);
- МассивРегламентныхЗаданий = пбп_РегламентныеЗаданияСервер.НайтиЗадания(ОтборЗадания);
+ МассивРегламентныхЗаданий = пбп_Переадресация.НайтиЗадания(ОтборЗадания);
Если МассивРегламентныхЗаданий.Количество() Тогда
РегламентноеЗадание = МассивРегламентныхЗаданий[0];
@@ -107,11 +107,11 @@
ОтборЗадания = Новый Структура;
ОтборЗадания.Вставить("Ключ", КлючЗадания);
- МассивРегламентныхЗаданий = пбп_РегламентныеЗаданияСервер.НайтиЗадания(ОтборЗадания);
+ МассивРегламентныхЗаданий = пбп_Переадресация.НайтиЗадания(ОтборЗадания);
Если МассивРегламентныхЗаданий.Количество() Тогда
РегламентноеЗадание = МассивРегламентныхЗаданий[0];
- пбп_РегламентныеЗаданияСервер.УдалитьЗадание(РегламентноеЗадание.УникальныйИдентификатор);
+ пбп_Переадресация.УдалитьЗадание(РегламентноеЗадание.УникальныйИдентификатор);
КонецЕсли;
КонецПроцедуры
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\237\320\276\321\202\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\237\320\276\321\202\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
index 12a03a24..d2e97537 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\237\320\276\321\202\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\237\320\276\321\202\320\276\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
@@ -162,14 +162,14 @@
УстанавливаемоеСвойство = "Видимость";
Если Не ЗначениеЗаполнено(Объект.НастройкаИнтеграции) Тогда
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаСтрока, УстанавливаемоеСвойство, Ложь);
Иначе
- РеквизитыОбъекта = пбп_ОбщегоНазначенияСервер.ЗначенияРеквизитовОбъекта(
+ РеквизитыОбъекта = пбп_Переадресация.ЗначенияРеквизитовОбъекта(
Объект.НастройкаИнтеграции, "ТипИнтеграции, ИспользоватьПользовательскиеФункции");
ЭлементНаследования = Справочники.пбп_ТипыИнтеграций
.ПолучитьПредопределенныйЭлементНаследованияНастроекТипаИнтеграции(РеквизитыОбъекта.ТипИнтеграции);
@@ -177,107 +177,107 @@
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПочтовыйКлиент Тогда
УстановитьВидимостьЭлементовДляТипаФайловыеОбмены();
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство,
РеквизитыОбъекта.ИспользоватьПользовательскиеФункции);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Путь к каталогу на сервере'");
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ТочкаВхода", УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ПараметрыВхода", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство,
РеквизитыОбъекта.ИспользоватьПользовательскиеФункции);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.COM Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Функция / запрос'");
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаСтрока, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.RESTAPI Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Ресурс'");
Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Параметры запроса / URL'");
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаСтрока, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаПараметрURL, УстанавливаемоеСвойство, Истина);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.SOAP Тогда
Элементы.ТочкаВхода.Заголовок = КонечнаяТочкаСтрока;
Элементы.ПараметрыВхода.Заголовок = ПараметрыЗапросаСтрока;
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаСтрока, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаПараметрURL, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПрямоеПодключениеКБД Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Имя таблицы внешнего источника данных'");
Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Обязательные параметры запроса';");
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаСтрока, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаПараметрURL, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ВнешняяКомпонента Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Функция'");
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаСтрока, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.КоманднаяСтрока Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Команда'");
Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Аргументы команды'");
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаСтрока, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаПараметрURL, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.БрокерыСообщений Тогда
Элементы.ТочкаВхода.Заголовок = КонечнаяТочкаСтрока;
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаСтрока, УстанавливаемоеСвойство, Ложь);
Иначе
Элементы.ТочкаВхода.Заголовок = КонечнаяТочкаСтрока;
Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Параметры'");
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаСтрока, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаПараметрURL, УстанавливаемоеСвойство, Ложь);
КонецЕсли;
КонецЕсли;
@@ -289,9 +289,9 @@
УстанавливаемоеСвойство = "Видимость";
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ТочкаВхода", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ПараметрыВхода", УстанавливаемоеСвойство, Ложь);
КонецПроцедуры
@@ -303,13 +303,13 @@
"пбп_ИспользоватьПользовательскиеФункции");
ДоступноПоРолям = ПравоДоступа("Изменение",
Метаданные.Справочники.пбп_ИнтеграционныеПотоки,
- пбп_Пользователи.ТекущийПользователь());
+ пбп_Переадресация.ТекущийПользователь());
Если Не (ПользовательскиеФункцииДоступны И ДоступноПоРолям) Тогда
Возврат Ложь;
КонецЕсли;
- ТипИнтеграции = пбп_ОбщегоНазначенияСервер.ЗначениеРеквизитаОбъекта(
+ ТипИнтеграции = пбп_Переадресация.ЗначениеРеквизитаОбъекта(
Объект.НастройкаИнтеграции, "ТипИнтеграции");
ЭлементНаследования = Справочники.пбп_ТипыИнтеграций
.ПолучитьПредопределенныйЭлементНаследованияНастроекТипаИнтеграции(ТипИнтеграции);
@@ -375,7 +375,7 @@
ОтборЗадания = Новый Структура;
ОтборЗадания.Вставить("Ключ", КлючЗадания);
- МассивРегламентныхЗаданий = пбп_РегламентныеЗаданияСервер.НайтиЗадания(ОтборЗадания);
+ МассивРегламентныхЗаданий = пбп_Переадресация.НайтиЗадания(ОтборЗадания);
Если МассивРегламентныхЗаданий.Количество() Тогда
РегламентноеЗадание = МассивРегламентныхЗаданий[0];
@@ -395,7 +395,7 @@
КонецЕсли;
ПараметрыЗадания = Новый Структура;
- НаименованиеРеглЗадания = пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НаименованиеРеглЗадания = пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
"ru = 'Выполнение пользовательской функции: выполнение пользовательской функции по настройке интеграции ""%1""'",
Объект.НастройкаИнтеграции.Наименование);
ПараметрыЗадания.Вставить("Наименование" , НСтр(НаименованиеРеглЗадания));
@@ -412,7 +412,7 @@
ПараметрыЗадания.Вставить("Ключ", КлючЗадания);
ПараметрыЗадания.Вставить("Расписание", Новый РасписаниеРегламентногоЗадания);
- РегламентноеЗадание = пбп_РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания);
+ РегламентноеЗадание = пбп_Переадресация.ДобавитьЗадание(ПараметрыЗадания);
РасписаниеРегламентногоЗадания = РегламентноеЗадание.Расписание;
ИспользоватьРегламентноеЗадание = РегламентноеЗадание.Использование;
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\270\321\200\321\203\320\265\320\274\321\213\320\265\320\241\320\270\321\201\321\202\320\265\320\274\321\213/Ext/ObjectModule.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\270\321\200\321\203\320\265\320\274\321\213\320\265\320\241\320\270\321\201\321\202\320\265\320\274\321\213/Ext/ObjectModule.bsl"
index 2b0ce9f0..df1493ba 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\270\321\200\321\203\320\265\320\274\321\213\320\265\320\241\320\270\321\201\321\202\320\265\320\274\321\213/Ext/ObjectModule.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\270\321\200\321\203\320\265\320\274\321\213\320\265\320\241\320\270\321\201\321\202\320\265\320\274\321\213/Ext/ObjectModule.bsl"
@@ -18,7 +18,7 @@
Возврат;
КонецЕсли;
- Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
+ Если Не пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецЕсли;
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl"
index 939cefcf..c9a02448 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl"
@@ -61,7 +61,7 @@
ТекстОшибки = пбп_ОбщегоНазначенияСервер.ПолучениеПолногоТекстаОшибкиПриИсключении(ЗаголовокОшибки,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПолучитьСообщенияПользователю(Истина));
- пбп_ЖурналРегистрацииСлужебный.ДобавитьСообщениеДляЖурналаРегистрации(
+ пбп_Переадресация.ДобавитьСообщениеДляЖурналаРегистрации(
ИмяСобытия,
УровеньЖурналаРегистрации.Ошибка,
,
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl"
index 6c8bb7af..200b7a3c 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl"
@@ -66,7 +66,7 @@
ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("Ключ" , "пбп_ОчисткаИсторииИнтеграции");
ПараметрыЗадания.Вставить("Метаданные" , Метаданные.РегламентныеЗадания.пбп_ОчисткаИсторииИнтеграции);
- МассивРегламентныхЗаданий = пбп_РегламентныеЗаданияСлужебныйСервер.НайтиЗадания(ПараметрыЗадания);
+ МассивРегламентныхЗаданий = пбп_Переадресация.НайтиЗадания(ПараметрыЗадания);
Если МассивРегламентныхЗаданий.Количество() Тогда
РегламентноеЗадание = МассивРегламентныхЗаданий[0];
@@ -74,7 +74,7 @@
ПараметрыЗадания.Вставить("Использование" , Истина);
ПараметрыЗадания.Вставить("Расписание" , Новый РасписаниеРегламентногоЗадания());
- РегламентноеЗадание = пбп_РегламентныеЗаданияСлужебныйСервер.ДобавитьЗадание(ПараметрыЗадания);
+ РегламентноеЗадание = пбп_Переадресация.ДобавитьЗадание(ПараметрыЗадания);
КонецЕсли;
Возврат РегламентноеЗадание;
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
index c2976d94..623bcdc0 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
@@ -72,7 +72,7 @@
Предопределенный = "Перечисление.пбп_ФорматыИнтеграций.ПроизвольныйФормат";
Если ЗначениеЗаполнено(Объект.ФорматИнтеграции)
- И Объект.ФорматИнтеграции <> пбп_ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
+ И Объект.ФорматИнтеграции <> пбп_ПереадресацияКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
ИнициализироватьБазовыйФайлРедактора(ПолучитьФорматИнтеграции(Объект.ФорматИнтеграции));
КонецЕсли;
@@ -93,7 +93,7 @@
Процедура ЗапросИсходящийДокументСформирован_Подключаемый(Элемент)
Предопределенный = "Перечисление.пбп_ФорматыИнтеграций.JSON";
- Если Объект.ФорматИнтеграции = пбп_ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
+ Если Объект.ФорматИнтеграции = пбп_ПереадресацияКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
ИнициализироватьИЗаполнитьТекстомОбъектJSON("code", "Исходящий");
Иначе
ИнициализироватьИЗаполнитьТекстомОбъектXML("Исходящий");
@@ -105,7 +105,7 @@
Процедура ЗапросВходящийДокументСформирован_Подключаемый(Элемент)
Предопределенный = "Перечисление.пбп_ФорматыИнтеграций.JSON";
- Если Объект.ФорматИнтеграции = пбп_ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
+ Если Объект.ФорматИнтеграции = пбп_ПереадресацияКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
ИнициализироватьИЗаполнитьТекстомОбъектJSON("code", "Входящий");
Иначе
ИнициализироватьИЗаполнитьТекстомОбъектXML("Входящий");
@@ -121,7 +121,7 @@
Процедура РазвернутьВсе(Команда)
Предопределенный = "Перечисление.пбп_ФорматыИнтеграций.XML";
- Если Объект.ФорматИнтеграции = пбп_ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
+ Если Объект.ФорматИнтеграции = пбп_ПереадресацияКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
Элементы.ИсходящееСообщение.Документ.defaultView.Xonomy.plusminus("xonomy1", True);
Элементы.ВходящееСообщение.Документ.defaultView.Xonomy.plusminus("xonomy1", True);
Иначе
@@ -140,7 +140,7 @@
Процедура СвернутьВсе(Команда)
Предопределенный = "Перечисление.пбп_ФорматыИнтеграций.XML";
- Если Объект.ФорматИнтеграции = пбп_ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
+ Если Объект.ФорматИнтеграции = пбп_ПереадресацияКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
Элементы.ИсходящееСообщение.Документ.defaultView.Xonomy.plusminus("xonomy1", False);
Элементы.ВходящееСообщение.Документ.defaultView.Xonomy.plusminus("xonomy1", False);
Иначе
@@ -184,7 +184,7 @@
ЗаголовокДиалога = НСтр("ru = 'Укажите файл внешней компоненты'");
- МассивРазделителей = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивРазделителей = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
Объект.ИмяФайлаСообщения, ".", Истина, Истина);
ИмяКомпоненты = МассивРазделителей[0];
КоличествоРазделимых = 2;
@@ -217,7 +217,7 @@
Элементы.СохранитьФайлСообщенияОбменаВх.Заголовок = Объект.ИмяФайлаСообщения;
Если ЗначениеЗаполнено(Объект.ИнтеграционныйПоток) Тогда
- ТипИнтеграции = пбп_ОбщегоНазначенияСервер.ЗначениеРеквизитаОбъекта(
+ ТипИнтеграции = пбп_Переадресация.ЗначениеРеквизитаОбъекта(
Объект.ИнтеграционныйПоток, "НастройкаИнтеграции.ТипИнтеграции");
ЭлементНаследования = Справочники.пбп_ТипыИнтеграций
.ПолучитьПредопределенныйЭлементНаследованияНастроекТипаИнтеграции(ТипИнтеграции);
@@ -366,7 +366,7 @@
Оповещение = Новый ОписаниеОповещения(
"ПослеСозданияВременногоКаталогаДляБазовогоРедактора",
ЭтотОбъект, ДополнительныеПараметры);
- пбп_ФайловаяСистемаКлиентПереадресация.СоздатьВременныйКаталог(Оповещение, Расширение);
+ пбп_ПереадресацияКлиент.СоздатьВременныйКаталог(Оповещение, Расширение);
КонецПроцедуры
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl"
index 3fc960d5..68510da1 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl"
@@ -124,7 +124,7 @@
Возврат;
КонецЕсли;
- Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
+ Если Не пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецЕсли;
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\222\320\275\320\265\321\210\320\275\320\265\320\271\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Ext/Form/Module.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\222\320\275\320\265\321\210\320\275\320\265\320\271\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Ext/Form/Module.bsl"
index 2f5f2332..24b528a6 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\222\320\275\320\265\321\210\320\275\320\265\320\271\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Ext/Form/Module.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\222\320\275\320\265\321\210\320\275\320\265\320\271\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Ext/Form/Module.bsl"
@@ -78,7 +78,7 @@
ЗаголовокДиалога = НСтр("ru = 'Укажите файл внешней компоненты'");
- МассивРазделителей = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивРазделителей = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
ИмяФайлаКомпоненты, ".", Истина, Истина);
ИмяКомпоненты = МассивРазделителей[0];
КоличествоРазделимых = 2;
@@ -112,11 +112,11 @@
ИмяФайла = "";
Если Не ПустаяСтрока(ИмяФайлаКомпоненты) Тогда
- Если пбп_ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда
- МассивРазделителей = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ Если пбп_ПереадресацияКлиент.ЭтоWindowsКлиент() Тогда
+ МассивРазделителей = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
ИмяФайлаКомпоненты, "\", Истина, Истина);
Иначе
- МассивРазделителей = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивРазделителей = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
ИмяФайлаКомпоненты, "/", Истина, Истина);
КонецЕсли;
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
index b7642b5e..01f5ace1 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
@@ -30,7 +30,7 @@
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
- СтруктураНастроек = пбп_ОбщегоНазначенияСлужебный.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка);
+ СтруктураНастроек = пбп_Переадресация.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка);
Если СтруктураНастроек = Неопределено Тогда
Возврат;
@@ -86,7 +86,7 @@
КонецЦикла;
УстановитьПривилегированныйРежим(Истина);
- пбп_ОбщегоНазначенияСлужебный.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, СтруктураНастроек);
+ пбп_Переадресация.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, СтруктураНастроек);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
@@ -99,7 +99,7 @@
Объект.СтрокаПодключения = "";
Объект.Порт = "";
Объект.УчетнаяЗапись = Неопределено;
- Объект.ТипАвторизации = пбп_ОбщегоНазначенияКлиент.ПредопределенныйЭлемент(
+ Объект.ТипАвторизации = пбп_ПереадресацияКлиент.ПредопределенныйЭлемент(
"Перечисление.пбп_ТипыАвторизации.ПустаяСсылка");
Объект.ИмяОбъекта = "";
Объект.ИспользоватьПользовательскиеФункции = Ложь;
@@ -205,29 +205,29 @@
УстанавливаемоеСвойство = "Видимость";
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СтрокаПодключенияМногострочная, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ГруппаСтрокаПорт, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, УстановитьСоединениеСБазойДанных, УстанавливаемоеСвойство, Ложь);
Если Не ЗначениеЗаполнено(Объект.ТипИнтеграции) Тогда
Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Каталог'");
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ГруппаОсновныеНастройки", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "УчетнаяЗапись", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ТипАвторизации", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ИмяОбъекта", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ИспользоватьПользовательскиеФункции", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "СписокНастроек", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ПодключитьВнешнююКомпоненту", УстанавливаемоеСвойство, Ложь);
Иначе
@@ -257,7 +257,7 @@
УстанавливаемоеСвойство = "Видимость";
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ГруппаОсновныеНастройки, УстанавливаемоеСвойство, Истина);
ЭлементНаследования = Справочники.пбп_ТипыИнтеграций
@@ -269,37 +269,37 @@
УстановитьВидимостьЭлементовДляТипаФайловыеОбмены();
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СтрокаПодключения, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, УчетнаяЗапись, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы Тогда
Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Адрес сервера'");
УстановитьВидимостьЭлементовДляТипаФайловыеОбмены();
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СтрокаПодключения, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, УчетнаяЗапись, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Истина);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПочтовыйКлиент Тогда
УстановитьВидимостьЭлементовДляТипаФайловыеОбмены();
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СтрокаПодключения, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, УчетнаяЗапись, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПрямоеПодключениеКБД Тогда
Элементы.СтрокаПодключенияМногострочная.Заголовок = НСтр("ru = 'Строка соединения (без данных аутентификации)'");
@@ -310,7 +310,7 @@
УстановитьВидимостьЭлементовДляComИПрямогоПодключенияКБД();
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, УстановитьСоединениеСБазойДанных, УстанавливаемоеСвойство, Истина);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.COM Тогда
Элементы.СтрокаПодключенияМногострочная.Заголовок = НСтр("ru = 'Строка подключения'");
@@ -325,77 +325,77 @@
УстановитьВидимостьЭлементовДляОстальныхТипов();
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяОбъекта, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ВнешняяКомпонента Тогда
Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Имя компоненты'");
УстановитьВидимостьЭлементовДляОстальныхТипов();
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяОбъекта, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Истина);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.КоманднаяСтрока Тогда
Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Исполняемый файл'");
УстановитьВидимостьЭлементовДляОстальныхТипов();
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяОбъекта, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.БрокерыСообщений Тогда
Элементы.СтрокаПодключения.Заголовок = СерверСтрока;
УстановитьВидимостьЭлементовДляОстальныхТипов();
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяОбъекта, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Истина);
Иначе
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СтрокаПодключения, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИспользоватьПользовательскиеФункции, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, УчетнаяЗапись, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, Порт, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТипАвторизации, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ИмяОбъекта, УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПодключитьВнешнююКомпоненту, УстанавливаемоеСвойство, Истина);
КонецЕсли;
@@ -406,15 +406,15 @@
УстанавливаемоеСвойство = "Видимость";
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ТипАвторизации", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ИмяОбъекта", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ИспользоватьПользовательскиеФункции", УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "СписокНастроек", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ПодключитьВнешнююКомпоненту", УстанавливаемоеСвойство, Ложь);
КонецПроцедуры
@@ -424,11 +424,11 @@
УстанавливаемоеСвойство = "Видимость";
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "СтрокаПодключения", УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ИспользоватьПользовательскиеФункции", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "УчетнаяЗапись", УстанавливаемоеСвойство, Ложь);
КонецПроцедуры
@@ -438,21 +438,21 @@
УстанавливаемоеСвойство = "Видимость";
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ИмяОбъекта", УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "СтрокаПодключенияМногострочная", УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ГруппаСтрокаПорт", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ИспользоватьПользовательскиеФункции", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "УчетнаяЗапись", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ТипАвторизации", УстанавливаемоеСвойство, Ложь);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "СписокНастроек", УстанавливаемоеСвойство, Истина);
- пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ПодключитьВнешнююКомпоненту", УстанавливаемоеСвойство, Ложь);
КонецПроцедуры
@@ -513,7 +513,7 @@
пбп_ИнтеграцииСервер.УстановитьСоединениеСВнешнимИсточникомДанныхПоНастройкеИнтеграции(Объект.Ссылка);
- пбп_ОбщегоНазначенияСервер.СообщитьПользователю(НСтр("ru = 'Подключение к базе данных успешно установлено'"));
+ пбп_Переадресация.СообщитьПользователю(НСтр("ru = 'Подключение к базе данных успешно установлено'"));
КонецПроцедуры
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\236\321\202\320\261\320\276\321\200\320\260\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Ext/ManagerModule.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\236\321\202\320\261\320\276\321\200\320\260\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Ext/ManagerModule.bsl"
index 13c0ced7..c527e519 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\236\321\202\320\261\320\276\321\200\320\260\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Ext/ManagerModule.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\236\321\202\320\261\320\276\321\200\320\260\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Ext/ManagerModule.bsl"
@@ -62,8 +62,8 @@
//
Функция ПолучитьДанныеПоНастройкеОтбора(Настройка) Экспорт
- ОбъектМетаданных = пбп_ОбщегоНазначенияСлужебный.ЗначениеРеквизитаОбъекта(Настройка, "ОбъектМетаданных");
- Отбор = пбп_ОбщегоНазначенияСлужебный.ЗначениеРеквизитаОбъекта(Настройка, "Отбор");
+ ОбъектМетаданных = пбп_Переадресация.ЗначениеРеквизитаОбъекта(Настройка, "ОбъектМетаданных");
+ Отбор = пбп_Переадресация.ЗначениеРеквизитаОбъекта(Настройка, "Отбор");
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
ТекстЗапроса = "ВЫБРАТЬ * ИЗ " + ОбъектМетаданных;
@@ -88,7 +88,7 @@
ВыбранноеПоле = ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Ссылка");
- Отбор = пбп_ОбщегоНазначенияСлужебный.ЗначениеИзСтрокиXML(Отбор);
+ Отбор = пбп_Переадресация.ЗначениеИзСтрокиXML(Отбор);
СкопироватьЭлементыОтбора(КомпоновщикНастроек.Настройки.Отбор, Отбор);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
@@ -96,7 +96,7 @@
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
Исключение
СообщениеОбОшибке = ОписаниеОшибки();
- пбп_ОбщегоНазначенияСервер.СообщитьПользователю(СообщениеОбОшибке);
+ пбп_Переадресация.СообщитьПользователю(СообщениеОбОшибке);
КонецПопытки;
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\236\321\202\320\261\320\276\321\200\320\260\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\236\321\202\320\261\320\276\321\200\320\260\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
index b30282c5..c3a4a18b 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\236\321\202\320\261\320\276\321\200\320\260\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\236\321\202\320\261\320\276\321\200\320\260\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
@@ -8,7 +8,7 @@
Если Не ПустаяСтрока(Объект.Отбор) Тогда
- ОтборКомпоновки = пбп_ОбщегоНазначенияСлужебный.ЗначениеИзСтрокиXML(Объект.Отбор);
+ ОтборКомпоновки = пбп_Переадресация.ЗначениеИзСтрокиXML(Объект.Отбор);
Компоновщик.Настройки.Отбор.Элементы.Очистить();
Справочники.пбп_НастройкиОтбораОбъектов.СкопироватьЭлементыОтбора(Компоновщик.Настройки.Отбор, ОтборКомпоновки);
@@ -19,7 +19,7 @@
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
- ТекущийОбъект.Отбор = пбп_ОбщегоНазначенияСлужебный.ЗначениеВСтрокуXML(Компоновщик.Настройки.Отбор);
+ ТекущийОбъект.Отбор = пбп_Переадресация.ЗначениеВСтрокуXML(Компоновщик.Настройки.Отбор);
КонецПроцедуры
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl"
index 32dcec07..387cee84 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl"
@@ -38,7 +38,7 @@
СписокТипов.ЗагрузитьЗначения(СписокДобавленныхТипов.ВыгрузитьЗначения());
КонецЕсли;
- ОписаниеТипаВсеСсылки = пбп_СтандартныеПодсистемыПовтИсп.ОписаниеТипаВсеСсылки();
+ ОписаниеТипаВсеСсылки = пбп_ПереадресацияПовтИсп.ОписаниеТипаВсеСсылки();
ДоступныеТипыДанных = Новый ОписаниеТипов(ОписаниеТипаВсеСсылки, "ОписаниеТипов");
МассивТипов = ДоступныеТипыДанных.Типы();
@@ -130,11 +130,12 @@
СправочникСсылка = Неопределено;
Если ВыводитьОшибки Тогда
-
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(СтрШаблон(
+ ШаблонСообщения =
НСтр("ru='Не удалось найти предопределенный элемент справочника ""Пользовательские функции"" по имени %1';
- |en='Failed to find a predefined element of the directory ""User-defined functions"" named %1'"),
- ОписаниеЭлемента.ИмяПредопределенного));
+ |en='Failed to find a predefined element of the directory ""User-defined functions"" named %1'");
+ ТекстСообщения = СтрШаблон(ШаблонСообщения, ОписаниеЭлемента.ИмяПредопределенного);
+
+ пбп_Переадресация.СообщитьПользователю(ТекстСообщения);
КонецЕсли;
КонецПопытки;
@@ -148,11 +149,12 @@
КонецЦикла;
Если ВыводитьИнформацию Тогда
-
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(СтрШаблон(
+ ШаблонСообщения =
НСтр("ru='Выполнена проверка версий предопределенных элементов справочника ""Пользовательские функции"". Обновлено %1 элементов.';
- |en='Successfully checked the versions of predefined elements of the directory ""User functions"". %1 elements updated.'"),
- Строка(Ном)));
+ |en='Successfully checked the versions of predefined elements of the directory ""User functions"". %1 elements updated.'");
+ ТекстСообщения = СтрШаблон(ШаблонСообщения, Строка(Ном));
+
+ пбп_Переадресация.СообщитьПользователю(ТекстСообщения);
КонецЕсли;
КонецПроцедуры
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ObjectModule.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ObjectModule.bsl"
index 1be42020..33f75bb2 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ObjectModule.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ObjectModule.bsl"
@@ -64,14 +64,14 @@
ТекстСообщения = СтрШаблон(НСтр("ru='Обнаружено некорректное имя ""%1"" в таблице ""Переменные"".';
|en='Found an incorrect name ""%1"" in table ""Variables.""'"),СтрокаТаблицы.Имя);
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(
+ пбп_Переадресация.СообщитьПользователю(
ТекстСообщения, ЭтотОбъект, СтрШаблон("Переменные[%1].Имя", НомерСтроки),, Отказ);
КонецПопытки;
Иначе
ТекстСообщения = СтрШаблон(НСтр("ru='Обнаружено дублирующееся имя ""%1"" в таблице ""Переменные"".';
|en='Found a duplicate name ""%1"" in the table ""Variables.""'"), СтрокаТаблицы.Имя);
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(
+ пбп_Переадресация.СообщитьПользователю(
ТекстСообщения, ЭтотОбъект, СтрШаблон("Переменные[%1].Имя", НомерСтроки),, Отказ);
КонецЕсли;
КонецЦикла;
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form/Module.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form/Module.bsl"
index bf53ff58..c803e07e 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form/Module.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form/Module.bsl"
@@ -58,7 +58,7 @@
ТекДанные = Элементы.Структура.ТекущиеДанные;
Если ЗначениеЗаполнено(ТекДанные.Ключ) Тогда
Результат = СтрЗаменить(ТекДанные.Ключ, " ", "");
- Пока пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЭтоЧисло(Сред(Результат,1,1)) Цикл
+ Пока пбп_ПереадресацияКлиентСервер.ЭтоЧисло(Сред(Результат, 1, 1)) Цикл
Результат = Прав(Результат, СтрДлина(Результат) - 1);
КонецЦикла;
пбп_ОбщегоНазначенияКлиентСервер.УдалитьНедопустимыеСимволы(Результат);
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
index 7c26abcc..bbf7b017 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
@@ -525,7 +525,7 @@
Попытка
Результат = пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(Объект.Ссылка, ПараметрыФункции);
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(Строка(Результат));
+ пбп_Переадресация.СообщитьПользователю(Строка(Результат));
Исключение
ТекстСообщения = СтрШаблон(НСтр("ru = 'Ошибка при выполнении функции по причине: %1';
@@ -573,7 +573,7 @@
Функция ПолучитьКаталогИсходногоКодаКонфигурации()
КлючНастроек = КлючНастроек("КаталогИсхКода");
- Результат = пбп_ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта(),
+ Результат = пбп_Переадресация.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта(),
КлючНастроек, "");
Возврат Результат;
@@ -584,7 +584,7 @@
Процедура СохранитьКаталогИсходногоКодаКонфигурации(Каталог)
КлючНастроек = КлючНастроек("КаталогИсхКода");
- пбп_ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекСохранить(КлючОбъекта(),
+ пбп_Переадресация.ХранилищеОбщихНастроекСохранить(КлючОбъекта(),
КлючНастроек, Каталог);
КонецПроцедуры
@@ -2044,7 +2044,7 @@
КонецЦикла;
КлючНастроек = КлючНастроек("ПараметрыФункции", Истина);
- пбп_ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекСохранить(КлючОбъекта(),
+ пбп_Переадресация.ХранилищеОбщихНастроекСохранить(КлючОбъекта(),
КлючНастроек, Данные);
КонецПроцедуры
@@ -2053,7 +2053,7 @@
Функция ПолучитьПараметрыФункции()
КлючНастроек = КлючНастроек("ПараметрыФункции", Истина);
- Возврат пбп_ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта(),
+ Возврат пбп_Переадресация.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта(),
КлючНастроек, Новый Соответствие);
КонецФункции
diff --git "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\242\320\270\320\277\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ObjectModule.bsl" "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\242\320\270\320\277\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ObjectModule.bsl"
index 009558eb..580a5766 100644
--- "a/src/cf/Catalogs/\320\277\320\261\320\277_\320\242\320\270\320\277\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ObjectModule.bsl"
+++ "b/src/cf/Catalogs/\320\277\320\261\320\277_\320\242\320\270\320\277\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ObjectModule.bsl"
@@ -19,7 +19,7 @@
Возврат;
КонецЕсли;
- Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
+ Если Не пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецЕсли;
diff --git "a/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ManagerModule.bsl" "b/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ManagerModule.bsl"
index 71d1a760..a86209d6 100644
--- "a/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ManagerModule.bsl"
+++ "b/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ManagerModule.bsl"
@@ -56,8 +56,8 @@
Значения = Новый Массив;
КонецЕсли;
- МассивИдентификаторов = пбп_СтроковыеФункцииСлужебныйКлиентСервер.РазложитьСтрокуВМассивПодстрок(Идентификаторы);
- МассивИдентификаторов = пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвернутьМассив(МассивИдентификаторов);
+ МассивИдентификаторов = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(Идентификаторы);
+ МассивИдентификаторов = пбп_ПереадресацияКлиентСервер.СвернутьМассив(МассивИдентификаторов);
Если Не ЗначениеЗаполнено(МассивИдентификаторов) Тогда
Возврат Значения;
@@ -66,7 +66,7 @@
Значения = ЗначенияПредопределенныхЭлементов(МассивИдентификаторов, , Истина, ВРазрезеКлючей);
Если Не ВРазрезеКлючей Тогда
- Значения = пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвернутьМассив(Значения);
+ Значения = пбп_ПереадресацияКлиентСервер.СвернутьМассив(Значения);
КонецЕсли;
Возврат Значения;
@@ -232,7 +232,7 @@
Приемник.Вставить(Идентификатор, Значение);
Иначе
Если ТипЗнч(Значение) = Тип("Массив") Тогда
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьМассив(Приемник, Значение);
+ пбп_ПереадресацияКлиентСервер.ДополнитьМассив(Приемник, Значение);
Иначе
Приемник.Добавить(Значение);
КонецЕсли;
@@ -245,11 +245,11 @@
Функция ПолучитьПарольПоИдентификатору(УИД)
- ДанныеХранилища = пбп_ОбщегоНазначенияСлужебный.ПрочитатьДанныеИзБезопасногоХранилища(Строка(УИД));
+ ДанныеХранилища = пбп_Переадресация.ПрочитатьДанныеИзБезопасногоХранилища(Строка(УИД));
Значение = "";
Если ТипЗнч(ДанныеХранилища) = Тип("Структура") Тогда
- Значение = пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДанныеХранилища, "bit_password", "");
+ Значение = пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДанныеХранилища, "bit_password", "");
КонецЕсли;
Возврат Значение;
diff --git "a/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ObjectModule.bsl" "b/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ObjectModule.bsl"
index 009558eb..580a5766 100644
--- "a/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ObjectModule.bsl"
+++ "b/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ObjectModule.bsl"
@@ -19,7 +19,7 @@
Возврат;
КонецЕсли;
- Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
+ Если Не пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецЕсли;
diff --git "a/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
index ab8cc4cc..9c668fba 100644
--- "a/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
+++ "b/src/cf/ChartsOfCharacteristicTypes/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
@@ -36,11 +36,11 @@
Если Объект.Пароль Тогда
ДанныеХранилища = Новый Структура("bit_password", Объект.Значение);
- пбп_ОбщегоНазначенияСлужебный.ЗаписатьДанныеВБезопасноеХранилище(
+ пбп_Переадресация.ЗаписатьДанныеВБезопасноеХранилище(
Строка(ТекущийОбъект.Ссылка.УникальныйИдентификатор()), ДанныеХранилища);
ТекущийОбъект.Значение = "";
Иначе
- пбп_ОбщегоНазначенияСлужебный.ЗаписатьДанныеВБезопасноеХранилище(
+ пбп_Переадресация.ЗаписатьДанныеВБезопасноеХранилище(
Строка(ТекущийОбъект.Ссылка.УникальныйИдентификатор()), Неопределено);
КонецЕсли;
@@ -72,7 +72,7 @@
Объект.Пароль = Ложь;
- пбп_ОбщегоНазначенияСлужебныйКлиент.СообщитьПользователю(
+ пбп_ПереадресацияКлиент.СообщитьПользователю(
НСтр("ru='Пароль может использовать только тип ""Строка"".';
| en='The password can only use the type ""String"".'"),
Объект.Ссылка, "ТипЗначения", "Объект.ТипЗначения");
@@ -83,7 +83,7 @@
Объект.Пароль = Ложь;
- пбп_ОбщегоНазначенияСлужебныйКлиент.СообщитьПользователю(
+ пбп_ПереадресацияКлиент.СообщитьПользователю(
НСтр("ru='Использование пароля недоступен для списка значений.';
| en='Password usage is not available for the list of values.'"),
Объект.Ссылка, "СписокЗначений", "Объект.СписокЗначений");
@@ -171,19 +171,19 @@
&НаСервере
Процедура УправлениеФормой()
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "НадписьНаличиеПароля", "Видимость", Объект.Пароль);
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "Значение", "Видимость", Не Объект.СписокЗначений);
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "Значение", "КнопкаВыбора", Не Объект.Пароль);
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "Значение", "РежимПароля", Объект.Пароль);
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "Значение", "КнопкаОткрытия", Не Объект.Пароль);
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ЗначенияЭлементов", "Видимость", Объект.СписокЗначений);
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "СписокЗначений", "ТолькоПросмотр", Объект.Пароль);
УстановитьНаличиеПароля();
@@ -200,14 +200,14 @@
Если ДанныеХранилища = Неопределено Тогда
УстановитьПривилегированныйРежим(Истина);
- ДанныеХранилища = пбп_ОбщегоНазначенияСлужебный.ПрочитатьДанныеИзБезопасногоХранилища(
+ ДанныеХранилища = пбп_Переадресация.ПрочитатьДанныеИзБезопасногоХранилища(
Строка(Объект.Ссылка.УникальныйИдентификатор()));
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Если ТипЗнч(ДанныеХранилища) = Тип("Структура")
- И НЕ ПустаяСтрока(пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДанныеХранилища, "bit_password", "")) Тогда
+ И НЕ ПустаяСтрока(пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДанныеХранилища, "bit_password", "")) Тогда
Элементы.НадписьНаличиеПароля.Заголовок = НСтр("ru = 'Пароль установлен'");
Иначе
@@ -232,12 +232,12 @@
&НаКлиенте
Процедура ВводСтрокиЗавершение(Результат, ДополнительныеПараметры) Экспорт
- Если пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, "ТолькоПросмотр", Ложь) Тогда
+ Если пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, "ТолькоПросмотр", Ложь) Тогда
Возврат;
КонецЕсли;
Если Результат <> Неопределено Тогда
- Если пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, "РеквизитШапки", Ложь) Тогда
+ Если пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, "РеквизитШапки", Ложь) Тогда
Объект[ДополнительныеПараметры.Реквизит] = Результат;
Иначе
ДополнительныеПараметры.Реквизит.Значение = Результат;
diff --git "a/src/cf/CommonForms/\320\277\320\261\320\277_\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form/Module.bsl" "b/src/cf/CommonForms/\320\277\320\261\320\277_\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form/Module.bsl"
index af643a15..1e7e5338 100644
--- "a/src/cf/CommonForms/\320\277\320\261\320\277_\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form/Module.bsl"
+++ "b/src/cf/CommonForms/\320\277\320\261\320\277_\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form/Module.bsl"
@@ -41,7 +41,7 @@
ОписаниеДокументы = Документы.ТипВсеСсылки();
Если Не Поля.ПолучитьЭлементы().Количество() Тогда
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(НСтр("ru='Нет полей для выбора.';en='No fields to select.'"),,,, Отказ);
+ пбп_Переадресация.СообщитьПользователю(НСтр("ru='Нет полей для выбора.';en='No fields to select.'"),,,, Отказ);
КонецЕсли;
КонецПроцедуры
@@ -78,7 +78,7 @@
&НаКлиенте
Процедура РазвернутьСтроки(Команда)
- пбп_СтандартныеПодсистемыСлужебныйКлиент.РазвернутьУзлыДерева(ЭтотОбъект, "Поля");
+ пбп_ПереадресацияКлиент.РазвернутьУзлыДерева(ЭтотОбъект, "Поля");
КонецПроцедуры
@@ -104,7 +104,7 @@
ВыбратьПолеИЗакрыть(ВыбраннаяСтрока.Имя);
КонецЕсли;
- пбп_ОбщегоНазначенияСлужебныйКлиент.СообщитьПользователю(НСтр("ru = 'Выбрано недоступное поле!'"));
+ пбп_ПереадресацияКлиент.СообщитьПользователю(НСтр("ru = 'Выбрано недоступное поле!'"));
КонецПроцедуры
diff --git "a/src/cf/CommonForms/\320\277\320\261\320\277_\320\244\320\276\321\200\320\274\320\260\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\273\320\270\320\272\321\202\320\276\320\262\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/Form/Module.bsl" "b/src/cf/CommonForms/\320\277\320\261\320\277_\320\244\320\276\321\200\320\274\320\260\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\273\320\270\320\272\321\202\320\276\320\262\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/Form/Module.bsl"
index 3ba335d0..eaa9afd7 100644
--- "a/src/cf/CommonForms/\320\277\320\261\320\277_\320\244\320\276\321\200\320\274\320\260\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\273\320\270\320\272\321\202\320\276\320\262\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/Form/Module.bsl"
+++ "b/src/cf/CommonForms/\320\277\320\261\320\277_\320\244\320\276\321\200\320\274\320\260\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\321\217\320\232\320\276\320\275\321\204\320\273\320\270\320\272\321\202\320\276\320\262\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/Form/Module.bsl"
@@ -122,7 +122,7 @@
Возврат;
КонецЕсли;
- МенеджерОбъекта = пбп_ОбщегоНазначенияСлужебный.МенеджерОбъектаПоПолномуИмени(ИмяФормыВладельца);
+ МенеджерОбъекта = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ИмяФормыВладельца);
СписокПредопределенных = Таблица.ВыгрузитьКолонку("Служебный_ПредопределенныйЭлемент");
@@ -205,7 +205,7 @@
Возврат;
КонецЕсли;
- Менеджер = пбп_ОбщегоНазначенияСлужебный.МенеджерОбъектаПоПолномуИмени(ИмяФормыВладельца);
+ Менеджер = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ИмяФормыВладельца);
ДопПараметры = пбп_ПредопределенныеЗначения.ДопПараметрыОбработкиПредопределенныхЭлементов(
Таблица, Менеджер);
пбп_ПредопределенныеЗначения.СоздатьОбновитьПредопределенныеЗначения(Таблица, ДопПараметры);
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl"
index 136ccdce..d092b580 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl"
@@ -44,7 +44,7 @@
ПараметрыМетода.Добавить(Источник);
ПараметрыМетода.Добавить(ОбъектКопирования);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Источник = ПараметрыМетода[0];
@@ -84,7 +84,7 @@
Источник = ПараметрыМетода[0];
СтандартнаяОбработка = ПараметрыМетода[3];
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Исключение
ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода);
@@ -118,7 +118,7 @@
ПараметрыМетода.Добавить(РежимЗаписи);
ПараметрыМетода.Добавить(РежимПроведения);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Источник = ПараметрыМетода[0];
Если ПараметрыМетода[1] Тогда
@@ -154,7 +154,7 @@
ПараметрыМетода.Добавить(Источник);
ПараметрыМетода.Добавить(Отказ);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Если ПараметрыМетода[1] Тогда
Отказ = Истина;
@@ -192,7 +192,7 @@
ПараметрыМетода.Добавить(Отказ);
ПараметрыМетода.Добавить(РежимПроведения);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Если ПараметрыМетода[1] Тогда
Отказ = Истина;
@@ -230,7 +230,7 @@
ПараметрыМетода.Добавить(Отказ);
ПараметрыМетода.Добавить(ПроверяемыеРеквизиты);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Если ПараметрыМетода[1] Тогда
Отказ = Истина;
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Ext/Module.bsl"
deleted file mode 100644
index a2a65120..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Ext/Module.bsl"
+++ /dev/null
@@ -1,63 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область ПрограммныйИнтерфейс
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. Записывает сообщение в журнал регистрации.
-//
-// Параметры:
-// ИмяСобытия - Строка - имя события для журнала регистрации.
-// Уровень - УровеньЖурналаРегистрации - уровни важности событий журнала регистрации.
-// ОбъектМетаданных - ОбъектМетаданных - объект метаданных, к которому относится событие.
-// Данные - ЛюбаяСсылка
-// - Число
-// - Строка
-// - Дата
-// - Булево
-// - Неопределено
-// - Тип - данные, с которыми связано событие.
-// Рекомендуется указывать ссылки на объекты данных (элементы справочников, документы, к которым
-// относится событие).
-// Комментарий - Строка - комментарий для события журнала.
-//
-Процедура ДобавитьСообщениеДляЖурналаРегистрации(Знач ИмяСобытия, Знач Уровень,
- Знач ОбъектМетаданных = Неопределено, Знач Данные = Неопределено, Знач Комментарий = "") Экспорт
-
- Если ПустаяСтрока(ИмяСобытия) Тогда
- ИмяСобытия = "Событие"; // не локализуется, чтобы не допускать остановки запуска в частично переведенной конфигурации
- КонецЕсли;
-
- ЗаписьЖурналаРегистрации(ИмяСобытия, Уровень, ОбъектМетаданных, Данные, Комментарий, РежимТранзакцииЗаписиЖурналаРегистрации.Независимая);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
deleted file mode 100644
index eb0fe239..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_ЖурналРегистрацииСлужебный
-
-
- ru
- Журнал регистрации служебный
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
deleted file mode 100644
index 0f7e75e0..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
+++ /dev/null
@@ -1,44 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область ПереадресацияМетодов
-
-// См. пбп_ЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации.
-Процедура ДобавитьСообщениеДляЖурналаРегистрации(Знач ИмяСобытия, Знач Уровень,
- Знач ОбъектМетаданных = Неопределено, Знач Данные = Неопределено, Знач Комментарий = "") Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, Уровень, ОбъектМетаданных, Данные, Комментарий);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
- Возврат пбп_ОбщегоНазначенияПовтИсп.ПереадресацияОбщегоМодуля("ЖурналРегистрации", "пбп_ЖурналРегистрации");
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
index 9590ddb9..c867a66f 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
@@ -65,7 +65,7 @@
пбп_ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера.ФормированиеТаблицы(
ОписаниеФайла.Адрес, ОписаниеФайла.СсылкаНаФайл.Расширение, ПараметрыЧтения);
Иначе
- пбп_ОбщегоНазначенияСлужебныйКлиент.СообщитьПользователю(НСтр("ru = 'Помещение файла отменено'"));
+ пбп_ПереадресацияКлиент.СообщитьПользователю(НСтр("ru = 'Помещение файла отменено'"));
АдресПомещения = Неопределено;
КонецЕсли;
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
index 84a1ae90..70653df5 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\260\320\271\320\273\320\260\320\247\320\265\321\200\320\265\320\267\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
@@ -29,17 +29,17 @@
СвойстваКолонок = Новый ТаблицаЗначений;
ДлинаСтроки = 150;
- СвойстваКолонок.Колонки.Добавить("ИмяКолонки" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
- СвойстваКолонок.Колонки.Добавить("ИмяВТабДоке" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
- СвойстваКолонок.Колонки.Добавить("Группа" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
- СвойстваКолонок.Колонки.Добавить("ТипЗначения" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
- СвойстваКолонок.Колонки.Добавить("ПолеПоиска1" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
- СвойстваКолонок.Колонки.Добавить("ПолеПоиска2" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
- СвойстваКолонок.Колонки.Добавить("ПолеПоиска3" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
+ СвойстваКолонок.Колонки.Добавить("ИмяКолонки" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаСтроки));
+ СвойстваКолонок.Колонки.Добавить("ИмяВТабДоке" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаСтроки));
+ СвойстваКолонок.Колонки.Добавить("Группа" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаСтроки));
+ СвойстваКолонок.Колонки.Добавить("ТипЗначения" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаСтроки));
+ СвойстваКолонок.Колонки.Добавить("ПолеПоиска1" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаСтроки));
+ СвойстваКолонок.Колонки.Добавить("ПолеПоиска2" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаСтроки));
+ СвойстваКолонок.Колонки.Добавить("ПолеПоиска3" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаСтроки));
// BSLLS:MagicNumber-off
- СвойстваКолонок.Колонки.Добавить("ОператорУсловия" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(4));
- СвойстваКолонок.Колонки.Добавить("ФункцияПреобразования", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(300));
- СвойстваКолонок.Колонки.Добавить("ФорматДаты" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(300));
+ СвойстваКолонок.Колонки.Добавить("ОператорУсловия" , пбп_Переадресация.ОписаниеТипаСтрока(4));
+ СвойстваКолонок.Колонки.Добавить("ФункцияПреобразования", пбп_Переадресация.ОписаниеТипаСтрока(300));
+ СвойстваКолонок.Колонки.Добавить("ФорматДаты" , пбп_Переадресация.ОписаниеТипаСтрока(300));
// BSLLS:MagicNumber-on
Возврат СвойстваКолонок;
@@ -58,8 +58,8 @@
ТаблицаСвойств = ИнициализироватьТаблицуСоСвойствамиКолонок();
// BSLLS:MagicNumber-off
- ОписаниеЧислаНачала = пбп_ОбщегоНазначенияСервер.ОписаниеТипаЧисло(5, 0, ДопустимыйЗнак.Неотрицательный);
- ОписаниеЧислаДлина = пбп_ОбщегоНазначенияСервер.ОписаниеТипаЧисло(5, 0, ДопустимыйЗнак.Неотрицательный);
+ ОписаниеЧислаНачала = пбп_Переадресация.ОписаниеТипаЧисло(5, 0, ДопустимыйЗнак.Неотрицательный);
+ ОписаниеЧислаДлина = пбп_Переадресация.ОписаниеТипаЧисло(5, 0, ДопустимыйЗнак.Неотрицательный);
// BSLLS:MagicNumber-on
ТаблицаСвойств.Колонки.Добавить("Начало", ОписаниеЧислаНачала);
ТаблицаСвойств.Колонки.Добавить("Длина", ОписаниеЧислаДлина);
@@ -178,9 +178,11 @@
//
Функция ПолучитьПромежуточнуюТаблицуИзCSVФайла(ПутьКФайлу, СтруктураМакета, Кодировка = "UTF8", Разделитель = "") Экспорт
+ ДлинаСтрокиКолонки = 300;
+
СыраяТаблица = Новый ТаблицаЗначений;
Для Каждого КолонкаТаблицы Из СтруктураМакета Цикл
- СыраяТаблица.Колонки.Добавить(КолонкаТаблицы.ИмяКолонки, пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(300));
+ СыраяТаблица.Колонки.Добавить(КолонкаТаблицы.ИмяКолонки, пбп_Переадресация.ОписаниеТипаСтрока(ДлинаСтрокиКолонки));
КонецЦикла;
ЗагружаемыйФайл = Новый ЧтениеТекста(ПутьКФайлу, Кодировка);
@@ -213,7 +215,7 @@
ТекущаяСтрокаБезОкончания = ТекущаяСтрока;
КонецЕсли;
- МассивКолонок = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивКолонок = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
ТекущаяСтрокаБезОкончания, Разделитель, Ложь, Истина);
// Количество разделителей должно быть равно количеству строк колонок макета, иначе строка не будет загружена
КоличествоКолонок = МассивКолонок.Количество();
@@ -463,12 +465,12 @@
Попытка
Параметры = Новый Массив;
Параметры.Добавить(СтрокаТаблицы[КлючИЗначение.Ключ]);
- СтрокаТаблицы[КлючИЗначение.Ключ] = пбп_ОбщегоНазначенияСервер.ВызватьФункциюКонфигурации(
+ СтрокаТаблицы[КлючИЗначение.Ключ] = пбп_Переадресация.ВызватьФункциюКонфигурации(
КлючИЗначение.Значение, Параметры);
Исключение
СообщениеОбОшибке = СтрШаблон(КомментарийОшибки, КлючИЗначение.Значение,
КлючИЗначение.Ключ, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- пбп_ЖурналРегистрацииСлужебный.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия,
+ пбп_Переадресация.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия,
УровеньЖурналаРегистрации.Ошибка, , , НСтр(СообщениеОбОшибке));
КонецПопытки;
КонецЦикла;
@@ -835,7 +837,7 @@
ЭтоУниверсальноеВремя = Ложь;
Если ЕстьВремя Тогда
- МассивРазделителей = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивРазделителей = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
ЗначениеКолонки, ":", Истина, Истина);
Если СтрНайти(МассивРазделителей[1], "AM") > 0
Или СтрНайти(МассивРазделителей[1], "PM") > 0 Тогда
@@ -844,13 +846,13 @@
РазрядВремени = "1";
КонецЕсли;
- МассивРазделителейДатаВремя = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивРазделителейДатаВремя = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
МассивРазделителей[0], " ", Истина, Истина);
КоличествоРазделителей = 2;
Если МассивРазделителейДатаВремя.Количество() = КоличествоРазделителей Тогда
ТолькоДата = МассивРазделителейДатаВремя[0];
ИначеЕсли МассивРазделителейДатаВремя.Количество() = 0 Тогда
- МассивРазделителейДатаВремя = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивРазделителейДатаВремя = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
МассивРазделителей[0], "T", Истина, Истина);
Если МассивРазделителейДатаВремя.Количество() = КоличествоРазделителей Тогда
ТолькоДата = МассивРазделителейДатаВремя[0];
@@ -890,7 +892,7 @@
Функция ПолучитьРазрядФорматаДатыИзСтроки(ЗначениеКолонки, Разделитель)
- МассивРазделителей = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивРазделителей = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
ЗначениеКолонки, Разделитель, Истина, Истина);
КоличествоПервыхСимволов = 3;
МаксКоличествоДнейВМесяце = 31;
@@ -938,17 +940,17 @@
Если НомерФормата = "0_0_0" Тогда
ПреобразованнаяДата = XMLЗначение(Тип("Дата"), ВхЗначение);
Иначе
- РазрядыФормата = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(НомерФормата, "_");
+ РазрядыФормата = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(НомерФормата, "_");
СтрокаВремя = "";
Если РазрядыФормата[2] = "0" Тогда
СтрокаВремя = "00:00:00";
ТолькоДата = ВхЗначение;
Иначе
- МассивРазделителей = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивРазделителей = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
ВхЗначение, ":", Истина, Истина);
- МассивРазделителейДатаВремя = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивРазделителейДатаВремя = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
МассивРазделителей[0], " ", Истина, Истина);
Если РазрядыФормата[0] = "4" Тогда
ТолькоДата = ПолучитьТолькоДатуЕслиРазделительПробел(МассивРазделителейДатаВремя);
@@ -986,7 +988,7 @@
РазделительРазрядов = " ";
КонецЕсли;
- МассивГодМесяцДата = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивГодМесяцДата = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
ТолькоДата, РазделительРазрядов, Истина, Истина);
Если РазрядыФормата[1] = "0" Тогда
@@ -1019,7 +1021,7 @@
КонецЕсли;
Если ЗначениеЗаполнено(МинутыСекунды) Тогда
- МассивСекМин = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(МинутыСекунды, ":", Истина, Истина);
+ МассивСекМин = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(МинутыСекунды, ":", Истина, Истина);
МинутыЧисло = Число(МассивСекМин[0]);
СекундыЧисло = Число(МассивСекМин[1]);
@@ -1043,7 +1045,7 @@
СтроковоеЗначение = СокрЛП(ВхЗначение);
СтроковоеЗначение = СтрЗаменить(ВхЗначение, ",", ".");
СтроковоеЗначение = СтрЗаменить(ВхЗначение, Символы.НПП, "");
- Возврат пбп_СтроковыеФункцииКлиентСервер.СтрокаВЧисло(СтроковоеЗначение);
+ Возврат пбп_ПереадресацияКлиентСервер.СтрокаВЧисло(СтроковоеЗначение);
КонецФункции
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270FTPSFTP/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270FTPSFTP/Ext/Module.bsl"
index 99d33ea4..5e987cb6 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270FTPSFTP/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270FTPSFTP/Ext/Module.bsl"
@@ -85,7 +85,7 @@
//
Функция ВыполнитьПодключениеКFTPСерверуДляИнтеграционногоПотока(ИнтеграционныйПоток) Экспорт
- СтруктураРеквизитов = пбп_ОбщегоНазначенияСервер.ЗначенияРеквизитовОбъекта(
+ СтруктураРеквизитов = пбп_Переадресация.ЗначенияРеквизитовОбъекта(
ИнтеграционныйПоток, "НастройкаИнтеграции, ТочкаВхода");
ПараметрыСоединения = ПолучитьПараметрыПодключенияFTPSFTP(СтруктураРеквизитов.НастройкаИнтеграции);
@@ -168,7 +168,7 @@
СообщениеОбОшибке = НСтр(ПолноеОписаниеОшибки);
КонецЕсли;
- пбп_ФайловаяСистемаПереадресация.УдалитьВременныйФайл(НовыйФайл);
+ пбп_Переадресация.УдалитьВременныйФайл(НовыйФайл);
Исключение
СообщениеОбОшибке = пбп_ИнтеграцииСервер.ПолучитьПодробноеПредставлениеОшибкиИсключения(
ЗаголовокОшибки, ИнформацияОбОшибке());
@@ -475,7 +475,7 @@
Функция ЗаполнитьПараметрыПодключенияКSFTPСерверу(ИнтеграционныйПоток,
ЗаполнитьКаталог = Истина, ИсходящееСообщение = Истина)
- СтруктураРеквизитов = пбп_ОбщегоНазначенияСервер.ЗначенияРеквизитовОбъекта(
+ СтруктураРеквизитов = пбп_Переадресация.ЗначенияРеквизитовОбъекта(
ИнтеграционныйПоток, "НастройкаИнтеграции, ТочкаВхода");
ПараметрыСоединения = ПолучитьПараметрыПодключенияFTPSFTP(СтруктураРеквизитов.НастройкаИнтеграции);
@@ -524,7 +524,7 @@
ПутьФайлаНаСервере = СтрШаблон("%1%2.%3", ПараметрыСоединения.КаталогИсходящие,
ПараметрыСообщения.ИмяФайла, ПараметрыСообщения.Расширение);
- ЭтоLinuxСервер = пбп_ОбщегоНазначенияСлужебный.ЭтоLinuxСервер();
+ ЭтоLinuxСервер = пбп_Переадресация.ЭтоLinuxСервер();
ТекстСкрипта = ПолучитьТекстСкриптаОтправкиПоТипуОС(ЭтоLinuxСервер,
ПараметрыСоединения, ПараметрыСообщения.Путь, ПутьФайлаНаСервере);
@@ -564,7 +564,7 @@
ПутьКФайлуСодержимого = ПолучитьИмяВременногоФайла("txt");
// BSLLS:MissingTemporaryFileDeletion-on
- ЭтоLinuxСервер = пбп_ОбщегоНазначенияСлужебный.ЭтоLinuxСервер();
+ ЭтоLinuxСервер = пбп_Переадресация.ЭтоLinuxСервер();
ТекстСкрипта = ПолучитьТекстСкриптаСодержимогоКаталоговПоТипуОС(
ЭтоLinuxСервер, ПараметрыСоединения, ПутьКФайлуСодержимого);
@@ -607,24 +607,24 @@
ИтоговаяКоманда = """" + ИмяФайлаСкрипта + """";
КонецЕсли;
- ПараметрыЗапускаКоманды = пбп_ФайловаяСистемаПереадресация.ПараметрыЗапускаПрограммы();
+ ПараметрыЗапускаКоманды = пбп_Переадресация.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаКоманды.ДождатьсяЗавершения = Истина;
Если СтруктураИстории <> Неопределено Тогда
НачалоВызова = ТекущаяДатаСеанса();
КонецЕсли;
// BSLLS:ExternalAppStarting-off
- Результат = пбп_ФайловаяСистемаПереадресация.ЗапуститьПрограмму(ИтоговаяКоманда, ПараметрыЗапускаКоманды);
+ Результат = пбп_Переадресация.ЗапуститьПрограмму(ИтоговаяКоманда, ПараметрыЗапускаКоманды);
// BSLLS:ExternalAppStarting-on
Если СтруктураИстории <> Неопределено Тогда
СтруктураИстории.ДлительностьВызова = ТекущаяДатаСеанса() - НачалоВызова;
СтруктураИстории.ПротоколОбмена = ПолучитьТекстСкриптаБезДанныхАутентификации(ПараметрыСоединения, ТекстСкрипта);
КонецЕсли;
- пбп_ФайловаяСистемаПереадресация.УдалитьВременныйФайл(ИмяФайлаСкрипта);
+ пбп_Переадресация.УдалитьВременныйФайл(ИмяФайлаСкрипта);
Если Не ПустаяСтрока(ИмяСлужебногоФайла) Тогда
- пбп_ФайловаяСистемаПереадресация.УдалитьВременныйФайл(ИмяСлужебногоФайла);
+ пбп_Переадресация.УдалитьВременныйФайл(ИмяСлужебногоФайла);
КонецЕсли;
УдалитьВременныеФайлыСкриптов(ИмяФайлаСкрипта, ИмяСлужебногоФайла);
@@ -639,7 +639,7 @@
ТаблицаФайлов = ПолучитьТаблицуФайловСодержимогоSFTPСервера(ПутьКФайлуСодержимого);
- пбп_ФайловаяСистемаПереадресация.УдалитьВременныйФайл(ПутьКФайлуСодержимого);
+ пбп_Переадресация.УдалитьВременныйФайл(ПутьКФайлуСодержимого);
Возврат ТаблицаФайлов;
Исключение
@@ -673,7 +673,7 @@
ПараметрыСообщения.Путь = ПолучитьИмяВременногоФайла(ПараметрыСообщения.Расширение);
// BSLLS:MissingTemporaryFileDeletion-on
- ЭтоLinuxСервер = пбп_ОбщегоНазначенияСлужебный.ЭтоLinuxСервер();
+ ЭтоLinuxСервер = пбп_Переадресация.ЭтоLinuxСервер();
ТекстСкрипта = ПолучитьТекстСкриптаПолученияПоТипуОС(ЭтоLinuxСервер,
ПараметрыСоединения, ПараметрыСообщения.Путь, ПутьФайлаНаСервере);
@@ -709,7 +709,7 @@
ЗаголовокОшибки = "Не удалось удалить файл из папки SFTP-сервера";
СообщениеОбОшибке = "";
- ЭтоLinuxСервер = пбп_ОбщегоНазначенияСлужебный.ЭтоLinuxСервер();
+ ЭтоLinuxСервер = пбп_Переадресация.ЭтоLinuxСервер();
ПолныйПутьКФайлу = ПараметрыСоединения.КаталогИсходящие;
Если Прав(ПолныйПутьКФайлу, 1) <> "/" Тогда
@@ -749,21 +749,21 @@
ИтоговаяКоманда = """" + ИмяФайлаСкрипта + """";
КонецЕсли;
- ПараметрыЗапускаКоманды = пбп_ФайловаяСистемаПереадресация.ПараметрыЗапускаПрограммы();
+ ПараметрыЗапускаКоманды = пбп_Переадресация.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаКоманды.ДождатьсяЗавершения = Истина;
Если СтруктураИстории <> Неопределено Тогда
НачалоВызова = ТекущаяДатаСеанса();
КонецЕсли;
// BSLLS:ExternalAppStarting-off
- Результат = пбп_ФайловаяСистемаПереадресация.ЗапуститьПрограмму(ИтоговаяКоманда, ПараметрыЗапускаКоманды);
+ Результат = пбп_Переадресация.ЗапуститьПрограмму(ИтоговаяКоманда, ПараметрыЗапускаКоманды);
// BSLLS:ExternalAppStarting-on
Если СтруктураИстории <> Неопределено Тогда
СтруктураИстории.ДлительностьВызова = ТекущаяДатаСеанса() - НачалоВызова;
СтруктураИстории.ПротоколОбмена = ПолучитьТекстСкриптаБезДанныхАутентификации(ПараметрыСоединения, ТекстСкрипта);
КонецЕсли;
- пбп_ФайловаяСистемаПереадресация.УдалитьВременныйФайл(ИмяФайлаСкрипта);
+ пбп_Переадресация.УдалитьВременныйФайл(ИмяФайлаСкрипта);
УдалитьВременныеФайлыСкриптов(ИмяФайлаСкрипта, ИмяСлужебногоФайла);
@@ -797,14 +797,14 @@
ИтоговаяКоманда = """" + ИмяФайлаСкрипта + """";
КонецЕсли;
- ПараметрыЗапускаКоманды = пбп_ФайловаяСистемаПереадресация.ПараметрыЗапускаПрограммы();
+ ПараметрыЗапускаКоманды = пбп_Переадресация.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаКоманды.ДождатьсяЗавершения = Истина;
Если СтруктураИстории <> Неопределено Тогда
НачалоВызова = ТекущаяДатаСеанса();
КонецЕсли;
// BSLLS:ExternalAppStarting-off
- Результат = пбп_ФайловаяСистемаПереадресация.ЗапуститьПрограмму(ИтоговаяКоманда, ПараметрыЗапускаКоманды);
+ Результат = пбп_Переадресация.ЗапуститьПрограмму(ИтоговаяКоманда, ПараметрыЗапускаКоманды);
// BSLLS:ExternalAppStarting-on
Если СтруктураИстории <> Неопределено Тогда
СтруктураИстории.ДлительностьВызова = ТекущаяДатаСеанса() - НачалоВызова;
@@ -830,10 +830,10 @@
Процедура УдалитьВременныеФайлыСкриптов(ИмяОсновногоФайла, Знач ИмяВторогоФайла = "")
- пбп_ФайловаяСистемаПереадресация.УдалитьВременныйФайл(ИмяОсновногоФайла);
+ пбп_Переадресация.УдалитьВременныйФайл(ИмяОсновногоФайла);
Если Не ПустаяСтрока(ИмяВторогоФайла) Тогда
- пбп_ФайловаяСистемаПереадресация.УдалитьВременныйФайл(ИмяВторогоФайла);
+ пбп_Переадресация.УдалитьВременныйФайл(ИмяВторогоФайла);
КонецЕсли;
КонецПроцедуры
@@ -1016,7 +1016,7 @@
ДлинаИмениФайла = 150;
ОписаниеТипаДатаВремя = Новый ОписаниеТипов("Дата", , , , , Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя));
- ТаблицаФайлов.Колонки.Добавить("ИмяФайла", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаИмениФайла));
+ ТаблицаФайлов.Колонки.Добавить("ИмяФайла", пбп_Переадресация.ОписаниеТипаСтрока(ДлинаИмениФайла));
ТаблицаФайлов.Колонки.Добавить("ДатаИзменения", ОписаниеТипаДатаВремя);
Возврат ТаблицаФайлов;
@@ -1028,19 +1028,19 @@
ТаблицаСвойствФайлов = Новый ТаблицаЗначений;
// BSLLS:MagicNumber-off
- ТаблицаСвойствФайлов.Колонки.Добавить("Права", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(30));
+ ТаблицаСвойствФайлов.Колонки.Добавить("Права", пбп_Переадресация.ОписаниеТипаСтрока(30));
ТаблицаСвойствФайлов.Колонки.Добавить("КоличествоСсылок",
- пбп_ОбщегоНазначенияСервер.ОписаниеТипаЧисло(3, 0, ДопустимыйЗнак.Неотрицательный));
- ТаблицаСвойствФайлов.Колонки.Добавить("Владелец", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(50));
- ТаблицаСвойствФайлов.Колонки.Добавить("Группа", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(50));
+ пбп_Переадресация.ОписаниеТипаЧисло(3, 0, ДопустимыйЗнак.Неотрицательный));
+ ТаблицаСвойствФайлов.Колонки.Добавить("Владелец", пбп_Переадресация.ОписаниеТипаСтрока(50));
+ ТаблицаСвойствФайлов.Колонки.Добавить("Группа", пбп_Переадресация.ОписаниеТипаСтрока(50));
ТаблицаСвойствФайлов.Колонки.Добавить("Размер",
- пбп_ОбщегоНазначенияСервер.ОписаниеТипаЧисло(15, 0, ДопустимыйЗнак.Неотрицательный));
- ТаблицаСвойствФайлов.Колонки.Добавить("Месяц", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(10));
+ пбп_Переадресация.ОписаниеТипаЧисло(15, 0, ДопустимыйЗнак.Неотрицательный));
+ ТаблицаСвойствФайлов.Колонки.Добавить("Месяц", пбп_Переадресация.ОписаниеТипаСтрока(10));
ТаблицаСвойствФайлов.Колонки.Добавить("Число",
- пбп_ОбщегоНазначенияСервер.ОписаниеТипаЧисло(2, 0, ДопустимыйЗнак.Неотрицательный));
- ТаблицаСвойствФайлов.Колонки.Добавить("ГодВремя", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(5));
+ пбп_Переадресация.ОписаниеТипаЧисло(2, 0, ДопустимыйЗнак.Неотрицательный));
+ ТаблицаСвойствФайлов.Колонки.Добавить("ГодВремя", пбп_Переадресация.ОписаниеТипаСтрока(5));
ТаблицаСвойствФайлов.Колонки.Добавить("ЭтоВремя", Новый ОписаниеТипов("Булево"));
- ТаблицаСвойствФайлов.Колонки.Добавить("ИмяФайла", пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(150));
+ ТаблицаСвойствФайлов.Колонки.Добавить("ИмяФайла", пбп_Переадресация.ОписаниеТипаСтрока(150));
// BSLLS:MagicNumber-on
Возврат ТаблицаСвойствФайлов;
@@ -1049,7 +1049,7 @@
Процедура ЗаполнитьСвойстваФайловИзСтрокиСпискаФайлов(ТаблицаСвойствФайлов, ТекущаяСтрока)
- МассивСвойств = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ТекущаяСтрока, " ", Истина, Истина);
+ МассивСвойств = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(ТекущаяСтрока, " ", Истина, Истина);
Инкремент = 0;
ИмяФайла = "";
НоваяСтрока = ТаблицаСвойствФайлов.Добавить();
@@ -1101,7 +1101,7 @@
ЧасВремя = ?(СтрокаСвойств.ЭтоВремя, СтрокаСвойств.ГодВремя, "00:00");
- МассивЧасВремя = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ЧасВремя, ":");
+ МассивЧасВремя = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(ЧасВремя, ":");
ДатаИзменения = Дата(ГодЧислом, Месяц, ЧислоМесяца, МассивЧасВремя[0], МассивЧасВремя[1], 0);
@@ -1175,11 +1175,11 @@
КомандаПроверки = СтрШаблон("command -v %1 > %2", ИмяУтилиты, ИмяФайлаПроверки);
- ПараметрыЗапускаКоманды = пбп_ФайловаяСистемаПереадресация.ПараметрыЗапускаПрограммы();
+ ПараметрыЗапускаКоманды = пбп_Переадресация.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаКоманды.ДождатьсяЗавершения = Истина;
// BSLLS:ExternalAppStarting-off
- Результат = пбп_ФайловаяСистемаПереадресация.ЗапуститьПрограмму(КомандаПроверки, ПараметрыЗапускаКоманды);
+ Результат = пбп_Переадресация.ЗапуститьПрограмму(КомандаПроверки, ПараметрыЗапускаКоманды);
// BSLLS:ExternalAppStarting-on
Если Результат.КодВозврата = 0 Тогда
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
index 20a2afe9..f2564def 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
@@ -144,8 +144,8 @@
ВнешниеИсточникиДанных[ИмяВнешнегоИсточникаДанных].УстановитьОбщиеПараметрыСоединения(ПараметрыСоединения);
- ПользовательСсылка = пбп_ПользователиСлужебный.ТекущийПользователь();
- ТекущийПользователь = пбп_ПользователиСлужебный.НайтиПоСсылке(ПользовательСсылка);
+ ПользовательСсылка = пбп_Переадресация.ТекущийПользователь();
+ ТекущийПользователь = пбп_Переадресация.НайтиПоСсылке(ПользовательСсылка);
ВнешниеИсточникиДанных[ИмяВнешнегоИсточникаДанных].УстановитьПараметрыСоединенияПользователя(
ТекущийПользователь.Имя, ПараметрыСоединения);
ВнешниеИсточникиДанных[ИмяВнешнегоИсточникаДанных].УстановитьПараметрыСоединенияСеанса(ПараметрыСоединения);
@@ -190,7 +190,7 @@
ЗаголовокОшибки = "Данные не были получены из внешнего источника данных";
СообщениеОбОшибке = "";
- РеквизитыОбъекта = пбп_ОбщегоНазначенияСервер.ЗначенияРеквизитовОбъекта(
+ РеквизитыОбъекта = пбп_Переадресация.ЗначенияРеквизитовОбъекта(
ИнтеграционныйПоток, "НастройкаИнтеграции.ИмяОбъекта, ТочкаВхода");
Если Не ЗначениеЗаполнено(РеквизитыОбъекта.НастройкаИнтеграцииИмяОбъекта) Тогда
@@ -311,7 +311,7 @@
МассивНужныхПолей = Новый Массив;
Если Не ПустаяСтрока(НеобходимыеПоля) Тогда
- МассивНужныхПолей = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ МассивНужныхПолей = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
НеобходимыеПоля, ",", Истина, Истина);
КонецЕсли;
@@ -362,9 +362,12 @@
//
Функция ПодготовитьТаблицуКодовОтветаHTTP() Экспорт
+ РазрядностьКодОтвета = 3;
+ ДлинаСтрокиОписания = 150;
+
ТаблицаКодовОтвета = Новый ТаблицаЗначений;
- ТаблицаКодовОтвета.Колонки.Добавить("КодОтвета" , пбп_ОбщегоНазначенияСлужебный.ОписаниеТипаЧисло(3));
- ТаблицаКодовОтвета.Колонки.Добавить("КраткоеОписание" , пбп_ОбщегоНазначенияСлужебный.ОписаниеТипаСтрока(150));
+ ТаблицаКодовОтвета.Колонки.Добавить("КодОтвета" , пбп_Переадресация.ОписаниеТипаЧисло(РазрядностьКодОтвета));
+ ТаблицаКодовОтвета.Колонки.Добавить("КраткоеОписание" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаСтрокиОписания));
// Успешные
НоваяСтрока = ТаблицаКодовОтвета.Добавить();
@@ -513,7 +516,7 @@
Расшифровка = НСтр("ru = '<Неизвестный код состояния>.'");
КонецЕсли;
- Возврат пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
+ Возврат пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '[%1] %2'"),
КодСостояния,
Расшифровка);
@@ -634,7 +637,7 @@
СимволПараметра = "/", РазделительПараметраЗначения = " ",
ПараметрыЗапускаКоманды = Неопределено, СтруктураИстории = Неопределено) Экспорт
- РеквизитыПотока = пбп_ОбщегоНазначенияСервер.ЗначенияРеквизитовОбъекта(
+ РеквизитыПотока = пбп_Переадресация.ЗначенияРеквизитовОбъекта(
ИнтеграционныйПоток, "НастройкаИнтеграции.ИнтегрируемаяСистема, НастройкаИнтеграции.СтрокаПодключения, ТочкаВхода");
СтрокаАтрибутов = "";
@@ -649,7 +652,7 @@
РеквизитыПотока.ТочкаВхода, СтрокаАтрибутов);
Если ПараметрыЗапускаКоманды = Неопределено Тогда
- ПараметрыЗапускаКоманды = пбп_ФайловаяСистемаПереадресация.ПараметрыЗапускаПрограммы();
+ ПараметрыЗапускаКоманды = пбп_Переадресация.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаКоманды.ДождатьсяЗавершения = Истина;
КонецЕсли;
@@ -658,7 +661,7 @@
КонецЕсли;
// BSLLS:ExternalAppStarting-off
- Результат = пбп_ФайловаяСистемаПереадресация.ЗапуститьПрограмму(ИтоговаяКоманда, ПараметрыЗапускаКоманды);
+ Результат = пбп_Переадресация.ЗапуститьПрограмму(ИтоговаяКоманда, ПараметрыЗапускаКоманды);
// BSLLS:ExternalAppStarting-on
Если СтруктураИстории <> Неопределено Тогда
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
index b7990927..b572ba60 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
@@ -69,7 +69,7 @@
НовоеСообщение.ДатаИнтеграцииВМиллисекундах = ТекущаяУниверсальнаяДатаВМиллисекундах();
НовоеСообщение.Код = Новый УникальныйИдентификатор();
НовоеСообщение.Ошибка = ЗначениеЗаполнено(СтруктураЗаписиИстории.ОписаниеОшибки);
- НовоеСообщение.Пользователь = пбп_ПользователиСлужебный.ТекущийПользователь();
+ НовоеСообщение.Пользователь = пбп_Переадресация.ТекущийПользователь();
НовоеСообщение.ДлительностьОбмена = НовоеСообщение.ДатаИнтеграции - СтруктураЗаписиИстории.ДатаНачалаИнтеграции;
НовоеСообщение.ДлительностьВызова = СтруктураЗаписиИстории.ДлительностьВызова;
@@ -168,9 +168,9 @@
УстановитьПривилегированныйРежим(Истина);
- СтруктураНастроек = пбп_ОбщегоНазначенияСлужебный.ЗначенияРеквизитовОбъекта(
+ СтруктураНастроек = пбп_Переадресация.ЗначенияРеквизитовОбъекта(
НастройкаИнтеграции, "СтрокаПодключения, Порт, ИмяОбъекта");
- ДанныеБезопасногоХранилища = пбп_ОбщегоНазначенияСлужебный.ПрочитатьДанныеИзБезопасногоХранилища(НастройкаИнтеграции);
+ ДанныеБезопасногоХранилища = пбп_Переадресация.ПрочитатьДанныеИзБезопасногоХранилища(НастройкаИнтеграции);
Для Каждого КлючИЗначение Из ДанныеБезопасногоХранилища Цикл
СтруктураНастроек.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
@@ -192,10 +192,10 @@
// Структура
Функция ПолучитьСтруктуруПотокаИНастроекИнтеграции(ИнтеграционныйПоток) Экспорт
- СтруктураПотокаИНастроек = пбп_ОбщегоНазначенияСлужебный.ЗначенияРеквизитовОбъекта(
+ СтруктураПотокаИНастроек = пбп_Переадресация.ЗначенияРеквизитовОбъекта(
ИнтеграционныйПоток, "НастройкаИнтеграции, ТочкаВхода");
СтруктураНастроек = ПолучитьСтруктуруНастроекИнтеграции(СтруктураПотокаИНастроек.НастройкаИнтеграции);
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьСтруктуру(СтруктураПотокаИНастроек, СтруктураНастроек);
+ пбп_ПереадресацияКлиентСервер.ДополнитьСтруктуру(СтруктураПотокаИНастроек, СтруктураНастроек);
Возврат СтруктураПотокаИНастроек;
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP/Ext/Module.bsl"
index f5c78ceb..e7b663d8 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP/Ext/Module.bsl"
@@ -2002,7 +2002,7 @@
ПроксиПоУмолчанию = Новый ИнтернетПрокси;
СтруктураURL = РазобратьURL(URL);
- ПроксиПоУмолчанию = пбп_ПолучениеФайловИзИнтернетаСлужебный.ПолучитьПрокси(СтруктураURL.Схема);
+ ПроксиПоУмолчанию = пбп_Переадресация.ПолучитьПрокси(СтруктураURL.Схема);
Возврат ПроксиПоУмолчанию;
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
index bf49e0d4..72d22b01 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
@@ -23,7 +23,7 @@
//Длительность хранения ошибок интеграции на месяц дольше, чем успешных записей
Процедура ОчисткаИсторииИнтеграции() Экспорт
- пбп_ОбщегоНазначенияСлужебный.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.пбп_ОчисткаИсторииИнтеграции);
+ пбп_Переадресация.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.пбп_ОчисткаИсторииИнтеграции);
Справочники.пбп_ИсторияИнтеграции.ОчиститьИсториюИнтеграции();
КонецПроцедуры
@@ -37,7 +37,7 @@
//
Процедура ВыполнениеПользовательскихФункцийФайловыхОбменов(НастройкаИнтеграции, ПользовательскаяФункция) Экспорт
- пбп_ОбщегоНазначенияСлужебный.ПриНачалеВыполненияРегламентногоЗадания(
+ пбп_Переадресация.ПриНачалеВыполненияРегламентногоЗадания(
Метаданные.РегламентныеЗадания.пбп_ВыполнениеПользовательскихФункцийФайловыхОбменов);
ПараметрыФункции = Новый Структура;
@@ -52,7 +52,7 @@
//
Процедура ЗаполнениеПредопределенныхЭлементов() Экспорт
- пбп_ОбщегоНазначенияСлужебный.ПриНачалеВыполненияРегламентногоЗадания(
+ пбп_Переадресация.ПриНачалеВыполненияРегламентногоЗадания(
Метаданные.РегламентныеЗадания.пбп_ЗаполнениеПредопределенныхЭлементов);
пбп_ПредопределенныеЗначения.ЗаполнениеПредопределенныхЭлементов(Истина);
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
index ad0fb12c..4236d519 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
@@ -50,7 +50,7 @@
ПараметрыМетода.Добавить(СтандартнаяОбработка);
ПараметрыМетода.Добавить(ДополнительныеПараметры);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
КонецЕсли;
@@ -83,7 +83,7 @@
ПараметрыМетода.Добавить(ТекущийОбъект);
ПараметрыМетода.Добавить(ПараметрыЗаписи);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
КонецПроцедуры
@@ -108,7 +108,7 @@
ПараметрыМетода.Добавить(ТекущийОбъект);
ПараметрыМетода.Добавить(ПараметрыЗаписи);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
КонецПроцедуры
@@ -137,7 +137,7 @@
ПараметрыМетода.Добавить(Отказ);
ПараметрыМетода.Добавить(ПроверяемыеРеквизиты);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
КонецПроцедуры
@@ -176,7 +176,9 @@
Если ФормаВход = Неопределено Тогда
МожноДобавлять = Истина;
Иначе
- УжеЕстьРеквизит = пбп_ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ФормаВход, НаименованиеНовогоРеквизитаВход);
+ УжеЕстьРеквизит = пбп_ПереадресацияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(
+ ФормаВход,
+ НаименованиеНовогоРеквизитаВход);
МожноДобавлять = НЕ УжеЕстьРеквизит;
КонецЕсли;
Если МожноДобавлять Тогда
@@ -564,24 +566,24 @@
Функция ПолучитьИмяМетода(Форма, ИмяПроцедурыВход)
ИмяФормы = Форма.ИмяФормы;
- МассивПодимен = пбп_СтроковыеФункцииСлужебныйКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяФормы, ".");
+ ЧастиИмениФормы = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяФормы, ".");
- КолЭлементов = МассивПодимен.Количество();
+ КолЭлементов = ЧастиИмениФормы.Количество();
Если КолЭлементов = 0 Тогда
Возврат Неопределено;
КонецЕсли;
- ПостфиксМодуля = МассивПодимен.Получить(0);
+ ПостфиксМодуля = ЧастиИмениФормы.Получить(0);
// Удалим класс
- МассивПодимен.Удалить(0);
+ ЧастиИмениФормы.Удалить(0);
Если КолЭлементов > 2 Тогда
// Удалим слово "Форма"
- МассивПодимен.Удалить(1);
+ ЧастиИмениФормы.Удалить(1);
КонецЕсли;
ИмяМодуля = "пбп_МодификацияКонфигурацииПереопределяемый" + ПостфиксМодуля;
- ИмяПроцедуры = СтрСоединить(МассивПодимен, "") + ИмяПроцедурыВход;
+ ИмяПроцедуры = СтрСоединить(ЧастиИмениФормы, "") + ИмяПроцедурыВход;
ИмяМетода = ИмяМодуля + "." + ИмяПроцедуры;
Возврат ИмяМетода;
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl"
index 936e0fc7..7a88ad97 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl"
@@ -36,8 +36,8 @@
// См. пбп_ОбщегоНазначенияСервер.ТекущаяДатаПользователя
Функция ТекущаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт
-
- Возврат пбп_ОбщегоНазначенияСервер.ТекущаяДатаПользователя(ИмяПользователя);
+
+ Возврат пбп_Переадресация.ТекущаяДатаПользователя(ИмяПользователя);
КонецФункции
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml"
deleted file mode 100644
index 9710ffbc..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml"
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- пбп_ОбщегоНазначенияКлиент
-
-
- ru
- Общего назначения клиент
-
-
- en
- General purpose customer
-
-
-
- false
- true
- false
- false
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
deleted file mode 100644
index 02ba9e54..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ /dev/null
@@ -1,194 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-////////////////////////////////////////////////////////////////////////////////
-// Общего назначения (клиент): для клиентских функций общего назначения
-
-#Область ПрограммныйИнтерфейс
-
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. Возвращает ссылку на общий модуль или модуль менеджера по имени.
-//
-// См. пбп_ОбщегоНазначенияСервер.ОбщийМодуль
-//
-// Параметры:
-// Имя - Строка - имя общего модуля.
-//
-// Возвращаемое значение:
-// ОбщийМодуль
-// СправочникМенеджер,
-// ДокументМенеджер,
-// ОбработкаМенеджер,
-// РегистрСведенийМенеджер.
-//
-// Пример:
-// МодульОбновлениеКонфигурации = пбп_ОбщегоНазначенияСлужебный.ОбщийМодуль("ОбновлениеКонфигурации");
-// МодульОбновлениеКонфигурации.<Имя метода>();
-//
-// МодульПолнотекстовыйПоискСервер = пбп_ОбщегоНазначенияСлужебный.ОбщийМодуль("ПолнотекстовыйПоискСервер");
-// МодульПолнотекстовыйПоискСервер.<Имя метода>();
-//
-Функция ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляВстроенного = "") Экспорт
-
- // Если ИмяМодуляВстроенного не передано, проверка не выполняется
- Имя = ИмяМодуляВстроенного;
- Если пбп_ОбщегоНазначенияВызовСервера.СуществуетБиблиотекаСтандартныхПодсистем() Тогда
- Имя = ИмяМодуляБСП;
- ИначеЕсли ПустаяСтрока(Имя) Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Общий модуль БСП ""%1"" не существует и не указан встроенный.'"),
- Имя);
- КонецЕсли;
- Модуль = Вычислить(Имя);
-
-#Если Не ВебКлиент Тогда
-
- // В веб-клиенте не проверяется
- // т.к. при обращении к модулям с вызовом сервера типа такого модуля в веб-клиенте не существует.
-
- Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Общий модуль ""%1"" не существует.'"),
- Имя);
- КонецЕсли;
-
-#КонецЕсли
-
- Возврат Модуль;
-
-КонецФункции
-
-// Аналог метода БСП. Формирует и выводит сообщение, которое может быть связано с элементом управления формы.
-//
-// См. ОбщегоНазначения.СообщитьПользователю
-//
-// Параметры:
-// ТекстСообщенияПользователю - Строка - текст сообщения.
-// КлючДанных - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится.
-// Поле - Строка - наименование реквизита формы.
-// ПутьКДанным - Строка - путь к данным (путь к реквизиту формы).
-// Отказ - Булево - выходной параметр, всегда устанавливается в значение Истина.
-//
-// Пример:
-//
-// 1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта:
-// ОбщегоНазначенияКлиент.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ,
-// "ПолеВРеквизитеФормыОбъект",
-// "Объект");
-//
-// Альтернативный вариант использования в форме объекта:
-// ОбщегоНазначенияКлиент.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ,
-// "Объект.ПолеВРеквизитеФормыОбъект");
-//
-// 2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы:
-// ОбщегоНазначенияКлиент.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ,
-// "ИмяРеквизитаФормы");
-//
-// 3. Для вывода сообщения связанного с объектом информационной базы:
-// ОбщегоНазначенияКлиент.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ОбъектИнформационнойБазы, "Ответственный",,Отказ);
-//
-// 4. Для вывода сообщения по ссылке на объект информационной базы:
-// ОбщегоНазначенияКлиент.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), Ссылка, , , Отказ);
-//
-// Случаи некорректного использования:
-// 1. Передача одновременно параметров КлючДанных и ПутьКДанным.
-// 2. Передача в параметре КлючДанных значения типа отличного от допустимого.
-// 3. Установка ссылки без установки поля (и/или пути к данным).
-//
-Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено,
- Знач Поле = "", Знач ПутьКДанным = "", Отказ = Ложь) Экспорт
-
- Сообщение = пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СообщениеПользователю(ТекстСообщенияПользователю,
- КлючДанных, Поле, ПутьКДанным, Отказ);
-
- Сообщение.Сообщить();
-
-КонецПроцедуры
-
-// Аналог метода БСП. Возвращает ссылку предопределенного элемента по его полному имени.
-// Предопределенные элементы могут содержаться только в следующих объектах:
-// - справочники;
-// - планы видов характеристик;
-// - планы счетов;
-// - планы видов расчета.
-// После изменения состава предопределенных следует выполнить метод
-// ОбновитьПовторноИспользуемыеЗначения(), который сбросит кэш ПовтИсп в текущем сеансе.
-//
-// См. ОбщегоНазначения.ПредопределенныйЭлемент
-//
-// Параметры:
-// ПолноеИмяПредопределенного - Строка - полный путь к предопределенному элементу, включая его имя.
-// Формат аналогичен функции глобального контекста ПредопределенноеЗначение().
-// Например:
-// "Справочник.ВидыКонтактнойИнформации.EmailПользователя"
-// "ПланСчетов.Хозрасчетный.Материалы"
-// "ПланВидовРасчета.Начисления.ОплатаПоОкладу".
-//
-// Возвращаемое значение:
-// ЛюбаяСсылка - ссылка на предопределенный элемент.
-// Неопределено - если предопределенный элемент есть в метаданных, но не создан в ИБ.
-//
-Функция ПредопределенныйЭлемент(ПолноеИмяПредопределенного) Экспорт
-
- Возврат ПредопределенноеЗначение(ПолноеИмяПредопределенного);
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает Истина, если клиентское приложение запущено под управлением ОС Windows.
-//
-// См. ОбщегоНазначения.ЭтоWindowsКлиент
-//
-// Возвращаемое значение:
-// Булево - если нет клиентского приложения, возвращается Ложь.
-//
-Функция ЭтоWindowsКлиент() Экспорт
-
- ТипПлатформыКлиента = ТипПлатформыКлиента();
- Возврат ТипПлатформыКлиента = ТипПлатформы.Windows_x86
- Или ТипПлатформыКлиента = ТипПлатформы.Windows_x86_64;
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает тип платформы клиента.
-//
-// Возвращаемое значение:
-// ТипПлатформы, Неопределено - тип платформы на которой запущен клиент. В режиме веб-клиента, если тип
-// платформы иной, чем описан в типе ТипПлатформы, то возвращается Неопределено.
-//
-Функция ТипПлатформыКлиента() Экспорт
-
- СистемнаяИнфо = Новый СистемнаяИнформация;
- Возврат СистемнаяИнфо.ТипПлатформы;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
index dd453fd4..aaa05fca 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
@@ -138,236 +138,6 @@
КонецФункции
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. Устанавливает свойство ИмяСвойства элемента формы с именем ИмяЭлемента в значение Значение.
-// Применяется в тех случаях, когда элемента формы может не быть на форме из-за отсутствия прав у пользователя
-// на объект, реквизит объекта или команду.
-//
-// Параметры:
-// ЭлементыФормы - ВсеЭлементыФормы
-// - ЭлементыФормы - коллекция элементов управляемой формы.
-// ИмяЭлемента - Строка - имя элемента формы.
-// ИмяСвойства - Строка - имя устанавливаемого свойства элемента формы.
-// Значение - Произвольный - новое значение элемента.
-//
-Процедура УстановитьСвойствоЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства, Значение) Экспорт
-
- ЭлементФормы = ЭлементыФормы.Найти(ИмяЭлемента);
- Если ЭлементФормы <> Неопределено И ЭлементФормы[ИмяСвойства] <> Значение Тогда
- ЭлементФормы[ИмяСвойства] = Значение;
- КонецЕсли;
-
-КонецПроцедуры
-
-// Аналог метода БСП. Возвращает значение свойства структуры.
-//
-// Параметры:
-// Структура - Структура
-// - ФиксированнаяСтруктура - объект, из которого необходимо прочитать значение ключа.
-// Ключ - Строка - имя свойства структуры, для которого необходимо прочитать значение.
-// ЗначениеПоУмолчанию - Произвольный - возвращается когда в структуре нет значения по указанному
-// ключу.
-// Для скорости рекомендуется передавать только быстро вычисляемые значения (например примитивные типы),
-// а инициализацию более тяжелых значений выполнять после проверки полученного значения (только если это
-// требуется).
-//
-// Возвращаемое значение:
-// Произвольный - значение свойства структуры. ЗначениеПоУмолчанию если в структуре нет указанного свойства.
-//
-Функция СвойствоСтруктуры(Структура, Ключ, ЗначениеПоУмолчанию = Неопределено) Экспорт
-
- Если Структура = Неопределено Тогда
- Возврат ЗначениеПоУмолчанию;
- КонецЕсли;
-
- Результат = ЗначениеПоУмолчанию;
- Если Структура.Свойство(Ключ, Результат) Тогда
- Возврат Результат;
- Иначе
- Возврат ЗначениеПоУмолчанию;
- КонецЕсли;
-
-КонецФункции
-
-// Аналог метода БСП. Дополняет массив МассивПриемник значениями из массива МассивИсточник.
-//
-// Параметры:
-// МассивПриемник - Массив - массив, в который необходимо добавить значения.
-// МассивИсточник - Массив - массив значений для заполнения.
-// ТолькоУникальныеЗначения - Булево - если истина, то в массив будут включены только уникальные значения.
-//
-Процедура ДополнитьМассив(МассивПриемник, МассивИсточник, ТолькоУникальныеЗначения = Ложь) Экспорт
-
- Если ТолькоУникальныеЗначения Тогда
-
- УникальныеЗначения = Новый Соответствие;
-
- Для Каждого Значение Из МассивПриемник Цикл
- УникальныеЗначения.Вставить(Значение, Истина);
- КонецЦикла;
-
- Для Каждого Значение Из МассивИсточник Цикл
- Если УникальныеЗначения[Значение] = Неопределено Тогда
- МассивПриемник.Добавить(Значение);
- УникальныеЗначения.Вставить(Значение, Истина);
- КонецЕсли;
- КонецЦикла;
-
- Иначе
-
- Для Каждого Значение Из МассивИсточник Цикл
- МассивПриемник.Добавить(Значение);
- КонецЦикла;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-// Аналог метода БСП. Возвращает копию исходного массива с уникальными значениями.
-//
-// Параметры:
-// Массив - Массив - массив произвольных значений.
-//
-// Возвращаемое значение:
-// Массив - массив уникальных элементов.
-//
-Функция СвернутьМассив(Знач Массив) Экспорт
- Результат = Новый Массив;
- ДополнитьМассив(Результат, Массив, Истина);
- Возврат Результат;
-КонецФункции
-
-// Аналог метода БСП. Возвращает значение свойства ИмяСвойства элемента формы с именем ИмяЭлемента.
-// Применяется в тех случаях, когда элемент формы может не быть на форме из-за отсутствия прав у пользователя
-// на объект, реквизит объекта или команду.
-//
-// Параметры:
-// ЭлементыФормы - ВсеЭлементыФормы
-// - ЭлементыФормы - коллекция элементов управляемой формы.
-// ИмяЭлемента - Строка - имя элемента формы.
-// ИмяСвойства - Строка - имя свойства элемента формы.
-//
-// Возвращаемое значение:
-// Произвольный - значение свойства ИмяСвойства элемента формы ИмяЭлемента.
-//
-Функция ЗначениеСвойстваЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства) Экспорт
-
- ЭлементФормы = ЭлементыФормы.Найти(ИмяЭлемента);
- Возврат ?(ЭлементФормы <> Неопределено, ЭлементФормы[ИмяСвойства], Неопределено);
-
-КонецФункции
-
-// Аналог метода БСП. Проверяет наличие реквизита или свойства у произвольного объекта без обращения к метаданным.
-//
-// Параметры:
-// Объект - Произвольный - объект, у которого нужно проверить наличие реквизита или свойства;
-// ИмяРеквизита - Строка - имя реквизита или свойства.
-//
-// Возвращаемое значение:
-// Булево - Истина, если есть.
-//
-Функция ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита) Экспорт
-
- КлючУникальности = Новый УникальныйИдентификатор;
- СтруктураРеквизита = Новый Структура(ИмяРеквизита, КлючУникальности);
- ЗаполнитьЗначенияСвойств(СтруктураРеквизита, Объект);
-
- Возврат СтруктураРеквизита[ИмяРеквизита] <> КлючУникальности;
-
-КонецФункции
-
-// Аналог метода БСП. Дополняет структуру значениями из другой структуры.
-//
-// Параметры:
-// Приемник - Структура - коллекция, в которую будут добавляться новые значения.
-// Источник - Структура - коллекция, из которой будут считываться пары Ключ и Значение для заполнения.
-// Заменять - Булево
-// - Неопределено - что делать в местах пересечения ключей источника и приемника:
-// Истина - заменять значения приемника (самый быстрый способ),
-// Ложь - не заменять значения приемника (пропускать),
-// Неопределено - значение по умолчанию. Бросать исключение.
-//
-Процедура ДополнитьСтруктуру(Приемник, Источник, Заменять = Неопределено) Экспорт
-
- Для Каждого Элемент Из Источник Цикл
- Если Заменять <> Истина И Приемник.Свойство(Элемент.Ключ) Тогда
- Если Заменять = Ложь Тогда
- Продолжить;
- Иначе
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Пересечение ключей источника и приемника: ""%1"".'"), Элемент.Ключ);
- КонецЕсли;
- КонецЕсли;
- Приемник.Вставить(Элемент.Ключ, Элемент.Значение);
- КонецЦикла;
-
-КонецПроцедуры
-
-// Аналог метода БСП. Создает массив и помещает в него переданное значение.
-//
-// Параметры:
-// Значение - Произвольный - любое значение.
-//
-// Возвращаемое значение:
-// Массив - массив из одного элемента.
-//
-Функция ЗначениеВМассиве(Знач Значение) Экспорт
-
- Результат = Новый Массив;
- Результат.Добавить(Значение);
- Возврат Результат;
-
-КонецФункции
-
-// Аналог метода БСП. Вызывает исключение с текстом Сообщение, если Условие не равно Истина.
-// Применяется для самодиагностики кода.
-//
-// Параметры:
-// Условие - Булево - если не равно Истина, то вызывается исключение.
-// Сообщение - Строка - текст сообщения. Если не задан, то исключение вызывается с сообщением по умолчанию.
-// КонтекстПроверки - Строка - например, имя процедуры или функции, в которой выполняется проверка.
-//
-Процедура Проверить(Знач Условие, Знач Сообщение = "", Знач КонтекстПроверки = "") Экспорт
-
- Если Условие <> Истина Тогда
-
- Если ПустаяСтрока(Сообщение) Тогда
- ТекстИсключения = НСтр("ru = 'Недопустимая операция'"); // Assertion failed
- Иначе
- ТекстИсключения = Сообщение;
- КонецЕсли;
-
- Если Не ПустаяСтрока(КонтекстПроверки) Тогда
- ТекстИсключения = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = '%1 в %2'"), ТекстИсключения, КонтекстПроверки);
- КонецЕсли;
-
- ВызватьИсключение ТекстИсключения;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-// Аналог метода БСП. Возвращает признак того, что переданное значение является, либо не является, числом.
-//
-// Параметры:
-// ПроверяемоеЗначение - Строка - значение, которое проверяется на соответствие числу.
-//
-// Возвращаемое значение:
-// Булево - признак того, что переданное значение является, либо не является, числом.
-//
-Функция ЭтоЧисло(Знач ПроверяемоеЗначение) Экспорт
-
- Если ПроверяемоеЗначение = "0" Тогда
- Возврат Истина;
- КонецЕсли;
-
- ОписаниеЧисла = Новый ОписаниеТипов("Число");
-
- Возврат ОписаниеЧисла.ПривестиЗначение(ПроверяемоеЗначение) <> 0;
-
-КонецФункции
-
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
@@ -378,9 +148,3 @@
КонецПроцедуры
#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260.xml"
deleted file mode 100644
index b1946ee7..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260.xml"
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- пбп_ОбщегоНазначенияПолныеПрава
-
-
- ru
- Общего назначения полные права
-
-
- en
- General purpose full rights
-
-
-
- false
- false
- true
- false
- false
- false
- true
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260/Ext/Module.bsl"
deleted file mode 100644
index dc4726d6..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260/Ext/Module.bsl"
+++ /dev/null
@@ -1,30 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-////////////////////////////////////////////////////////////////////////////////
-// Привилегированный (сервер): для привилегированных функций
-
-#Область ПрограммныйИнтерфейс
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
index ed1dd02c..0704e573 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
@@ -255,11 +255,11 @@
ОтборЗадания = Новый Структура;
ОтборЗадания.Вставить("Ключ", КлючЗадания);
- МассивРегламентныхЗаданий = пбп_РегламентныеЗаданияСлужебныйСервер.НайтиЗадания(ОтборЗадания);
+ МассивРегламентныхЗаданий = пбп_Переадресация.НайтиЗадания(ОтборЗадания);
Если МассивРегламентныхЗаданий.Количество() Тогда
РегламентноеЗадание = МассивРегламентныхЗаданий[0];
- пбп_РегламентныеЗаданияСлужебныйСервер.УдалитьЗадание(РегламентноеЗадание.УникальныйИдентификатор);
+ пбп_Переадресация.УдалитьЗадание(РегламентноеЗадание.УникальныйИдентификатор);
КонецЕсли;
КонецПроцедуры
@@ -294,7 +294,7 @@
ТекущийОбъект.Записать();
Если РежимыВывода.ВыводитьИнформацию Тогда
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(
+ пбп_Переадресация.СообщитьПользователю(
СтрШаблон(НСтр("ru='Записан справочник ""%1"".';en='Directory ""%1"" saved.'"), ТекущийОбъект.Ссылка));
КонецЕсли;
КонецЕсли;
@@ -303,11 +303,11 @@
СправочникЗаписан = Ложь;
Если РежимыВывода.ВыводитьОшибки Тогда
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
+ пбп_Переадресация.СообщитьПользователю(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецЕсли;
ЗаписьЖурналаРегистрации("пбп_.ОшибкаЗаписиСправочника", УровеньЖурналаРегистрации.Ошибка,,,
- ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Возврат СправочникЗаписан;
@@ -776,7 +776,7 @@
Если Метаданные.ОбщиеМодули.Найти("СтандартныеПодсистемыСервер") <> Неопределено Тогда
Попытка
УстановитьБезопасныйРежим(Истина);
- МодульБСП = ОбщийМодуль("СтандартныеПодсистемыСервер");
+ МодульБСП = пбп_Переадресация.ОбщийМодуль("СтандартныеПодсистемыСервер");
ВерсияБСП = МодульБСП.ВерсияБиблиотеки();
Исключение
ВерсияБСП = Неопределено;
@@ -806,1434 +806,12 @@
Имя = ИмяМодуляБСП;
КонецЕсли;
- Модуль = ОбщийМодуль(Имя);
+ Модуль = пбп_Переадресация.ОбщийМодуль(Имя);
Возврат Модуль;
КонецФункции
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. Определяет режим эксплуатации информационной базы файловый (Истина) или серверный (Ложь).
-// При проверке используется СтрокаСоединенияИнформационнойБазы, которую можно указать явно.
-//
-// Параметры:
-// СтрокаСоединенияИнформационнойБазы - Строка - параметр используется, если
-// нужно проверить строку соединения не текущей информационной базы.
-//
-// Возвращаемое значение:
-// Булево - Истина, если файловая.
-//
-Функция ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт
-
- Если ПустаяСтрока(СтрокаСоединенияИнформационнойБазы) Тогда
- СтрокаСоединенияИнформационнойБазы = СтрокаСоединенияИнформационнойБазы();
- КонецЕсли;
- Возврат СтрНайти(ВРег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1;
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает Истина, если функциональная подсистема существует в конфигурации.
-// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
-// У функциональной подсистемы снят флажок "Включать в командный интерфейс".
-// См. также ОбщегоНазначенияПереопределяемый.ПриОпределенииОтключенныхПодсистем
-// и ОбщегоНазначенияКлиент.ПодсистемаСуществует для вызова из клиентского кода.
-//
-// Параметры:
-// ПолноеИмяПодсистемы - Строка - полное имя объекта метаданных подсистема
-// без слов "Подсистема." и с учетом регистра символов.
-// Например: "СтандартныеПодсистемы.ВариантыОтчетов".
-//
-// Пример:
-// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда
-// МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов");
-// МодульВариантыОтчетов.<Имя метода>();
-// КонецЕсли;
-//
-// Возвращаемое значение:
-// Булево - Истина, если подсистема существует.
-//
-Функция ПодсистемаСуществует(ПолноеИмяПодсистемы) Экспорт
-
- ИменаПодсистем = пбп_СтандартныеПодсистемыСлужебныйПовтИсп.ИменаПодсистем();
- Возврат ИменаПодсистем.Получить(ПолноеИмяПодсистемы) <> Неопределено;
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает ссылку на общий модуль или модуль менеджера по имени.
-//
-// Параметры:
-// Имя - Строка - имя общего модуля.
-//
-// Возвращаемое значение:
-// ОбщийМодуль
-// МодульМенеджераОбъекта
-//
-// Пример:
-// МодульОбновлениеКонфигурации = пбп_ОбщегоНазначенияСервер.ОбщийМодуль("ОбновлениеКонфигурации");
-// МодульОбновлениеКонфигурации.<Имя метода>();
-//
-// МодульПолнотекстовыйПоискСервер = пбп_ОбщегоНазначенияСервер.ОбщийМодуль("ПолнотекстовыйПоискСервер");
-// МодульПолнотекстовыйПоискСервер.<Имя метода>();
-//
-Функция ОбщийМодуль(Имя) Экспорт
-
- Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда
- УстановитьБезопасныйРежим(Истина);
- Модуль = Вычислить(Имя);
- ИначеЕсли СтрЧислоВхождений(Имя, ".") = 1 Тогда
- Возврат СерверныйМодульМенеджера(Имя);
- Иначе
- Модуль = Неопределено;
- КонецЕсли;
-
- Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Общий модуль ""%1"" не существует.'"),
- Имя);
- КонецЕсли;
-
- Возврат Модуль;
-
-КонецФункции
-
-// Аналог метода БСП. Выполнить экспортную процедуру по имени с уровнем привилегий конфигурации.
-// При включении профилей безопасности для вызова оператора Выполнить() используется
-// переход в безопасный режим с профилем безопасности, используемым для информационной базы
-// (если выше по стеку не был установлен другой безопасный режим).
-//
-// Параметры:
-// ИмяМетода - Строка - имя экспортной процедуры в формате
-// <имя объекта>.<имя процедуры>, где <имя объекта> - это
-// общий модуль или модуль менеджера объекта.
-// Параметры - Массив - параметры передаются в процедуру <ИмяЭкспортнойПроцедуры>
-// в порядке расположения элементов массива.
-//
-// Пример:
-// Параметры = Новый Массив();
-// Параметры.Добавить("1");
-// ОбщегоНазначения.ВыполнитьМетодКонфигурации("МойОбщийМодуль.МояПроцедура", Параметры);
-//
-Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
-
- ПроверитьИмяПроцедурыКонфигурации(ИмяМетода);
-
- УстановитьБезопасныйРежим(Истина);
-
- ПараметрыСтрока = "";
- Если Параметры <> Неопределено И Параметры.Количество() > 0 Тогда
- Для Индекс = 0 По Параметры.ВГраница() Цикл
- ПараметрыСтрока = ПараметрыСтрока + "Параметры[" + XMLСтрока(Индекс) + "],";
- КонецЦикла;
- ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1);
- КонецЕсли;
-
- Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
-
-КонецПроцедуры
-
-// Аналог метода БСП. Вызвать экспортную функцию по имени с уровнем привилегий конфигурации.
-// При включении профилей безопасности для вызова оператора Выполнить() используется
-// переход в безопасный режим с профилем безопасности, используемом для информационной базы
-// (если выше по стеку не был установлен другой безопасный режим).
-//
-// Параметры:
-// ИмяМетода - Строка - имя экспортной функции в формате
-// <имя объекта>.<имя процедуры>, где <имя объекта> - это
-// общий модуль или модуль менеджера объекта.
-// Параметры - Массив - параметры передаются в функцию <ИмяМетода>
-// в порядке расположения элементов массива.
-//
-// Возвращаемое значение:
-// Произвольный - результат вызываемой функции.
-//
-Функция ВызватьФункциюКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
-
- ПроверитьИмяПроцедурыКонфигурации(ИмяМетода);
-
- Если ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда
- МодульРаботаВБезопасномРежиме = ОбщийМодуль("РаботаВБезопасномРежиме");
- Если МодульРаботаВБезопасномРежиме.ИспользуютсяПрофилиБезопасности()
- И Не МодульРаботаВБезопасномРежиме.УстановленБезопасныйРежим() Тогда
-
- ПрофильИнформационнойБазы = МодульРаботаВБезопасномРежиме.ПрофильБезопасностиИнформационнойБазы();
- Если ЗначениеЗаполнено(ПрофильИнформационнойБазы) Тогда
-
- // BSLLS:DisableSafeMode-off
- УстановитьБезопасныйРежим(ПрофильИнформационнойБазы);
- // BSLLS:DisableSafeMode-on
- Если БезопасныйРежим() = Истина Тогда
- // BSLLS:DisableSafeMode-off
- УстановитьБезопасныйРежим(Ложь);
- // BSLLS:DisableSafeMode-on
- КонецЕсли;
-
- КонецЕсли;
-
- КонецЕсли;
- КонецЕсли;
-
- ПараметрыСтрока = "";
- Если Параметры <> Неопределено И Параметры.Количество() > 0 Тогда
- Для Индекс = 0 По Параметры.ВГраница() Цикл
- ПараметрыСтрока = ПараметрыСтрока + "Параметры[" + XMLСтрока(Индекс) + "],";
- КонецЦикла;
- ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1);
- КонецЕсли;
-
- // BSLLS:ExecuteExternalCodeInCommonModule-off
- Возврат Вычислить(ИмяМетода + "(" + ПараметрыСтрока + ")"); // АПК:488 Исполняемый код безопасен.
- // BSLLS:ExecuteExternalCodeInCommonModule-on
-
-КонецФункции
-
-// Аналог метода БСП. Вычисляет переданное выражение, предварительно устанавливая безопасный режим выполнения кода
-// и безопасный режим разделения данных для всех разделителей, присутствующих в составе конфигурации.
-//
-// Параметры:
-// Выражение - Строка - выражение на встроенном языке 1С:Предприятия.
-// Параметры - Произвольный - контекст, который требуется для вычисления выражения.
-// В тексте выражения обращение к контексту должно происходить по имени "Параметры".
-// Например, выражение "Параметры.Значение1 = Параметры.Значение2" обращается к значениям
-// "Значение1" и "Значение2" переданные в Параметры, как свойства.
-//
-// Возвращаемое значение:
-// Произвольный - результат вычисления выражения.
-//
-// Пример:
-//
-// // Пример 1
-// Параметры = Новый Структура;
-// Параметры.Вставить("Значение1", 1);
-// Параметры.Вставить("Значение2", 10);
-// Результат = ОбщегоНазначения.ВычислитьВБезопасномРежиме("Параметры.Значение1 = Параметры.Значение2", Параметры);
-//
-// // Пример 2
-// Результат = ОбщегоНазначения.ВычислитьВБезопасномРежиме("СтандартныеПодсистемыСервер.ВерсияБиблиотеки()");
-//
-Функция ВычислитьВБезопасномРежиме(Знач Выражение, Знач Параметры = Неопределено) Экспорт
-
- УстановитьБезопасныйРежим(Истина);
-
- Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
- МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса");
- МассивРазделителей = МодульРаботаВМоделиСервиса.РазделителиКонфигурации();
- Иначе
- МассивРазделителей = Новый Массив;
- КонецЕсли;
-
- Для Каждого ИмяРазделителя Из МассивРазделителей Цикл
-
- УстановитьБезопасныйРежимРазделенияДанных(ИмяРазделителя, Истина);
-
- КонецЦикла;
-
- Возврат Вычислить(Выражение);
-
-КонецФункции
-
-// Аналог метода БСП. Записывает конфиденциальные данные в безопасное хранилище.
-// Вызывающий код должен самостоятельно устанавливать привилегированный режим.
-//
-// Безопасное хранилище недоступно для чтения пользователям (кроме администраторов),
-// а доступно только коду, который делает обращения только к своей части данных и
-// в том контексте, который предполагает чтение или запись конфиденциальных данных.
-//
-// Параметры:
-// Владелец - ПланОбменаСсылка
-// - СправочникСсылка
-// - Строка - ссылка на объект информационной базы,
-// представляющий объект-владелец сохраняемого пароля или строка до 128 символов.
-// Для объектов других типов в качестве владельца рекомендуется использовать ссылку на
-// элемент метаданных этого типа в справочнике ИдентификаторыОбъектовМетаданных
-// или ключ в виде строки с учетом имен подсистем.
-// Например, для БСП:
-// Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("РегистрСведений.АдресныеОбъекты");
-// если нужно 1 хранилище на подсистему БСП:
-// Владелец = "СтандартныеПодсистемы.УправлениеДоступом";
-// если нужно более 1 хранилища на подсистему БСП:
-// Владелец = "СтандартныеПодсистемы.УправлениеДоступом.<Уточнение>";
-// Данные - Произвольный - данные помещаемые в безопасное хранилище. Неопределенно - удаляет все данные.
-// Для удаления данных по ключу следует использовать процедуру УдалитьДанныеИзБезопасногоХранилища.
-// - Структура - если параметр Ключ содержит Неопределено. Подробнее см. описание параметра Ключ
-// Ключ - Строка - ключ сохраняемых настроек, по умолчанию "Пароль".
-// Ключ должен соответствовать правилам имен идентификаторов:
-// 1. Первым символом ключа должна быть буква или символ подчеркивания (_).
-// 2. Каждый из последующих символов может быть буквой, цифрой или символом подчеркивания (_).
-// Неопределено - для добавления набора данных структурой, где ключ структуры - это имя ключа данных,
-// а значение - сохраняемые данные. Пример использования см. ниже.
-//
-// Пример:
-//
-// Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
-// Если ТекущийПользовательМожетИзменятьПароль Тогда
-// УстановитьПривилегированныйРежим(Истина);
-// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Логин, "Логин");
-// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Пароль);
-// УстановитьПривилегированныйРежим(Ложь);
-// КонецЕсли;
-// КонецПроцедуры
-//
-// Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
-// Если ТекущийПользовательМожетИзменятьПароль Тогда
-// ЛогинИПароль = Новый Структура;
-// ЛогинИПароль.Вставить("Логин", Логин);
-// ЛогинИПароль.Вставить("Пароль", Пароль);
-// УстановитьПривилегированныйРежим(Истина);
-// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, ЛогинИПароль, Неопределено);
-// УстановитьПривилегированныйРежим(Ложь);
-// КонецЕсли;
-// КонецПроцедуры
-//
-Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт
-
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ЗначениеЗаполнено(Владелец),
- пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Недопустимое значение параметра %1 в %2.
- |параметр должен содержать ссылку; передано значение: %3 (тип %4).'"),
- "Владелец", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Владелец, ТипЗнч(Владелец)));
-
- Если ЗначениеЗаполнено(Ключ) Тогда
-
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ТипЗнч(Ключ) = Тип("Строка"),
- пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Недопустимое значение параметра %1 в %2.
- |параметр должен содержать строку; передано значение: %3 (тип %4).'"),
- "Ключ", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Ключ, ТипЗнч(Ключ)));
-
- Иначе
-
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(ТипЗнч(Данные) = Тип("Структура"),
- пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Недопустимое значение параметра %1 в %2.
- |Если Ключ = Неопределено, то параметр должен содержать структуру; передано значение: %3 (тип %4).'"),
- "Данные", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Данные, ТипЗнч(Данные)));
-
- КонецЕсли;
-
- // Загулшка.
- // Перенаправление в хранилище общих настроек, не используется регистр сведений БезопасноеХранилищеДанных
- ХранилищеОбщихНастроекСохранить(Владелец, Ключ, Данные);
- Возврат;
- // Загулшка
-
-КонецПроцедуры
-
-// Аналог метода БСП. Возвращает данные из безопасного хранилища.
-// Вызывающий код должен самостоятельно устанавливать привилегированный режим.
-//
-// Безопасное хранилище недоступно для чтения пользователям (кроме администраторов),
-// а доступно только коду, который делает обращения только к своей части данных и
-// в том контексте, который предполагает чтение или запись конфиденциальных данных.
-//
-// Параметры:
-// Владелец - ПланОбменаСсылка
-// - СправочникСсылка
-// - Строка - ссылка на объект информационной базы,
-// представляющий объект-владелец сохраняемого пароля или уникальная строка(до 128 символов).
-// Ключи - Строка - содержит список имен сохраненных данных, указанных через запятую.
-// - Неопределено - будут возвращены все сохраненные данные владельца.
-// ОбщиеДанные - Булево - Истина, если требуется в модели сервиса получить данные из общих данных в разделенном режиме.
-//
-// Возвращаемое значение:
-// Произвольный, Структура, Неопределено - данные из безопасного хранилища. Если указан один ключ,
-// то возвращается его значение, иначе структура.
-// Если данные отсутствуют - Неопределенно.
-//
-// Пример:
-// Если ТекущийПользовательМожетИзменятьПароль Тогда
-// УстановитьПривилегированныйРежим(Истина);
-// Логин = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка, "Логин");
-// Пароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка);
-// УстановитьПривилегированныйРежим(Ложь);
-// Иначе
-// Элементы.ГруппаЛогинИПароль.Видимость = Ложь;
-// КонецЕсли;
-//
-// УстановитьПривилегированныйРежим(Истина);
-// ЛогинИПароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка, Неопределено);
-//
-Функция ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт
-
- // Загулшка.
- // Перенаправление в хранилище общих настроек, не используется регистр сведений БезопасноеХранилищеДанных
- Результат = ХранилищеОбщихНастроекЗагрузить(Владелец, Ключи, ОбщиеДанные);
- Возврат Результат;
- // Загулшка
-
-КонецФункции
-
-// Аналог метода БСП. Формирует и выводит сообщение, которое может быть связано с элементом управления формы.
-//
-// В фоновом задании длительной операции, если вызов выполнен вне транзакции,
-// сообщение записывается в служебный регистр и отправляется сразу на клиент,
-// если подключена система взаимодействия.
-// В конце фонового задания длительной операции, а также при отправке прогресса,
-// все сообщения извлекаются из очереди сообщений фонового задания,
-// записываются в служебный регистр и отправляются сразу на клиент,
-// если подключена система взаимодействия.
-//
-// АПК:142-выкл 4 необязательных параметра для совместимости
-// с устаревшей процедурой ОбщегоНазначенияКлиентСервер.СообщитьПользователю.
-//
-// Параметры:
-// ТекстСообщенияПользователю - Строка - текст сообщения.
-// КлючДанных - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится.
-// Поле - Строка - наименование реквизита формы.
-// ПутьКДанным - Строка - путь к данным (путь к реквизиту формы).
-// Отказ - Булево - выходной параметр, всегда устанавливается в значение Истина.
-//
-// Пример:
-//
-// 1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта:
-// ОбщегоНазначения.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ,
-// "ПолеВРеквизитеФормыОбъект",
-// "Объект");
-//
-// Альтернативный вариант использования в форме объекта:
-// ОбщегоНазначения.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ,
-// "Объект.ПолеВРеквизитеФормыОбъект");
-//
-// 2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы:
-// ОбщегоНазначения.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ,
-// "ИмяРеквизитаФормы");
-//
-// 3. Для вывода сообщения связанного с объектом информационной базы:
-// ОбщегоНазначения.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ОбъектИнформационнойБазы, "Ответственный",,Отказ);
-//
-// 4. Для вывода сообщения по ссылке на объект информационной базы:
-// ОбщегоНазначения.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), Ссылка, , , Отказ);
-//
-// Случаи некорректного использования:
-// 1. Передача одновременно параметров КлючДанных и ПутьКДанным.
-// 2. Передача в параметре КлючДанных значения типа отличного от допустимого.
-// 3. Установка ссылки без установки поля (и/или пути к данным).
-//
-Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, Знач Поле = "",
- Знач ПутьКДанным = "", Отказ = Ложь) Экспорт
-
- ЭтоОбъект = Ложь;
-
- Если КлючДанных <> Неопределено
- И XMLТипЗнч(КлючДанных) <> Неопределено Тогда
-
- ТипЗначенияСтрокой = XMLТипЗнч(КлючДанных).ИмяТипа;
- ЭтоОбъект = СтрНайти(ТипЗначенияСтрокой, "Object.") > 0;
- КонецЕсли;
-
- Сообщение = пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СообщениеПользователю(ТекстСообщенияПользователю,
- КлючДанных, Поле, ПутьКДанным, Отказ, ЭтоОбъект);
-
- Сообщение.Сообщить();
-
-КонецПроцедуры
-
-// Аналог метода БСП. Сокращает строку до нужной длины, при этом обрезанная часть хешируется,
-// обеспечивая уникальность строки. Проверяет длину строки на входе и, в случае
-// превышения максимальной длины, преобразует ее конец по алгоритму MD5 в
-// уникальную строку из 32 символов.
-//
-// Параметры:
-// Строка - Строка - исходная строка произвольной длины.
-// МаксимальнаяДлина - Число - требуемое максимальное количество символов в строке,
-// минимальное значение: 32.
-//
-// Возвращаемое значение:
-// Строка - строка, не превышающая максимальную длину.
-//
-Функция СократитьСтрокуКонтрольнойСуммой(Строка, МаксимальнаяДлина) Экспорт
-
- Если МаксимальнаяДлина < 32 Тогда
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.Проверить(Ложь,
- пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Параметр %1 не может быть меньше 32.'"),
- "МаксимальнаяДлина"), "ОбщегоНазначения.СократитьСтрокуКонтрольнойСуммой");
- КонецЕсли;
-
- Результат = Строка;
- Если СтрДлина(Строка) > МаксимальнаяДлина Тогда
- Результат = Лев(Строка, МаксимальнаяДлина - 32);
- ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5);
- ХешированиеДанных.Добавить(Сред(Строка, МаксимальнаяДлина - 32 + 1));
- Результат = Результат + СтрЗаменить(ХешированиеДанных.ХешСумма, " ", "");
- КонецЕсли;
- Возврат Результат;
-
-КонецФункции
-
-#Область ХранилищеНастроек
-
-// Аналог метода БСП. Загружает настройку из хранилища общих настроек, как метод платформы Загрузить,
-// объектов СтандартноеХранилищеНастроекМенеджер или ХранилищеНастроекМенеджер.<Имя хранилища>,
-// но с поддержкой длины ключа настроек более 128 символов путем хеширования части,
-// которая превышает 96 символов.
-// Кроме того, возвращает указанное значение по умолчанию, если настройки не существуют.
-// Если нет права СохранениеДанныхПользователя, возвращается значение по умолчанию без ошибки.
-//
-// В возвращаемом значении очищаются ссылки на несуществующий объект в базе данных, а именно
-// - возвращаемая ссылка заменяется на указанное значение по умолчанию;
-// - из данных типа Массив ссылки удаляются;
-// - у данных типа Структура и Соответствие ключ не меняется, а значение устанавливается Неопределено;
-// - анализ значений в данных типа Массив, Структура, Соответствие выполняется рекурсивно.
-//
-// Параметры:
-// КлючОбъекта - Строка - см. синтакс-помощник платформы.
-// КлючНастроек - Строка - см. синтакс-помощник платформы.
-// ЗначениеПоУмолчанию - Произвольный - значение, которое возвращается, если настройки не существуют.
-// Если не указано, возвращается значение Неопределено.
-// ОписаниеНастроек - ОписаниеНастроек - см. синтакс-помощник платформы.
-// ИмяПользователя - Строка - см. синтакс-помощник платформы.
-//
-// Возвращаемое значение:
-// Произвольный - см. синтакс-помощник платформы.
-//
-Функция ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию = Неопределено,
- ОписаниеНастроек = Неопределено, ИмяПользователя = Неопределено) Экспорт
-
- Возврат ХранилищеЗагрузить(ХранилищеОбщихНастроек,
- КлючОбъекта,
- КлючНастроек,
- ЗначениеПоУмолчанию,
- ОписаниеНастроек,
- ИмяПользователя);
-
-КонецФункции
-
-// Аналог метода БСП. Сохраняет настройку в хранилище общих настроек, как метод платформы Сохранить,
-// объектов СтандартноеХранилищеНастроекМенеджер или ХранилищеНастроекМенеджер.<Имя хранилища>,
-// но с поддержкой длины ключа настроек более 128 символов путем хеширования части,
-// которая превышает 96 символов.
-// Если нет права СохранениеДанныхПользователя, сохранение пропускается без ошибки.
-//
-// Параметры:
-// КлючОбъекта - Строка - см. синтакс-помощник платформы.
-// КлючНастроек - Строка - см. синтакс-помощник платформы.
-// Настройки - Произвольный - см. синтакс-помощник платформы.
-// ОписаниеНастроек - ОписаниеНастроек - см. синтакс-помощник платформы.
-// ИмяПользователя - Строка - см. синтакс-помощник платформы.
-// ОбновитьПовторноИспользуемыеЗначения - Булево - выполнить одноименный метод платформы.
-//
-Процедура ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки,
- ОписаниеНастроек = Неопределено,
- ИмяПользователя = Неопределено,
- ОбновитьПовторноИспользуемыеЗначения = Ложь) Экспорт
-
- ХранилищеСохранить(ХранилищеОбщихНастроек,
- КлючОбъекта,
- КлючНастроек,
- Настройки,
- ОписаниеНастроек,
- ИмяПользователя,
- ОбновитьПовторноИспользуемыеЗначения);
-
-КонецПроцедуры
-
-// Аналог метода БСП. Удаляет настройку из хранилища общих настроек, как метод платформы Удалить,
-// объектов СтандартноеХранилищеНастроекМенеджер или ХранилищеНастроекМенеджер.<Имя хранилища>,
-// но с поддержкой длины ключа настроек более 128 символов путем хеширования части,
-// которая превышает 96 символов.
-// Если нет права СохранениеДанныхПользователя, удаление пропускается без ошибки.
-//
-// Параметры:
-// КлючОбъекта - Строка
-// - Неопределено - см. синтакс-помощник платформы.
-// КлючНастроек - Строка
-// - Неопределено - см. синтакс-помощник платформы.
-// ИмяПользователя - Строка
-// - Неопределено - см. синтакс-помощник платформы.
-//
-Процедура ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя) Экспорт
-
- ХранилищеУдалить(ХранилищеОбщихНастроек,
- КлючОбъекта,
- КлючНастроек,
- ИмяПользователя);
-
- КонецПроцедуры
-
-#КонецОбласти
-
-// Аналог метода БСП. Возвращает структуру, содержащую значения реквизитов, прочитанные из информационной базы по ссылке на объект.
-// Рекомендуется использовать вместо обращения к реквизитам объекта через точку от ссылки на объект
-// для быстрого чтения отдельных реквизитов объекта из базы данных.
-//
-// Если необходимо зачитать реквизит независимо от прав текущего пользователя,
-// то следует использовать предварительный переход в привилегированный режим.
-//
-// Параметры:
-// Ссылка - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить.
-// - Строка - полное имя предопределенного элемента, значения реквизитов которого необходимо получить.
-// Реквизиты - Строка - имена реквизитов, перечисленные через запятую, в формате
-// требований к свойствам структуры.
-// Например, "Код, Наименование, Родитель".
-// - Структура
-// - ФиксированнаяСтруктура - в качестве ключа передается
-// псевдоним поля для возвращаемой структуры с результатом, а в качестве
-// значения (опционально) фактическое имя поля в таблице.
-// Если ключ задан, а значение не определено, то имя поля берется из ключа.
-// Допускается указание имени поля через точку, но при этом параметр КодЯзыка для такого поля
-// учитываться не будет.
-// - Массив из Строка
-// - ФиксированныйМассив из Строка - имена реквизитов в формате требований к свойствам структуры.
-// ВыбратьРазрешенные - Булево - если Истина, то запрос к объекту выполняется с учетом прав пользователя;
-// если есть ограничение на уровне записей, то все реквизиты вернутся со
-// значением Неопределено; если нет прав для работы с таблицей, то возникнет исключение;
-// если Ложь, то возникнет исключение при отсутствии прав на таблицу
-// или любой из реквизитов.
-// КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации.
-//
-// Возвращаемое значение:
-// Структура - содержит имена (ключи) и значения затребованных реквизитов.
-// Если в параметр Реквизиты передана пустая строка, то возвращается пустая структура.
-// Если в параметр Ссылка передана пустая ссылка, то возвращается структура,
-// соответствующая именам реквизитов со значениями Неопределено.
-// Если в параметр Ссылка передана ссылка несуществующего объекта (битая ссылка),
-// то все реквизиты вернутся со значением Неопределено.
-//
-Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт
-
- // Если передано имя предопределенного.
- Если ТипЗнч(Ссылка) = Тип("Строка") Тогда
-
- ПолноеИмяПредопределенногоЭлемента = Ссылка;
-
- // Вычисление ссылки по имени предопределенного.
- // - дополнительно выполняет проверку метаданных предопределенного, выполняется предварительно.
- Попытка
- Ссылка = ПредопределенноеЗначение(ПолноеИмяПредопределенногоЭлемента);
- Исключение
- ТекстОшибки = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неверный первый параметр %1 в функции %2:
- |%3'"), "Ссылка", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта",
- ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
- ВызватьИсключение ТекстОшибки;
- КонецПопытки;
-
- // Разбор полного имени предопределенного.
- ЧастиПолногоИмени = СтрРазделить(ПолноеИмяПредопределенногоЭлемента, ".");
- ПолноеИмяОбъектаМетаданных = ЧастиПолногоИмени[0] + "." + ЧастиПолногоИмени[1];
-
- // Если предопределенный не создан в ИБ, то требуется выполнить проверку доступа к объекту.
- // В других сценариях проверка доступа выполняется в момент исполнения запроса.
- Если Ссылка = Неопределено Тогда
- МетаданныеОбъекта = ОбъектМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных);
- Если Не ПравоДоступа("Чтение", МетаданныеОбъекта) Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Недостаточно прав для работы с таблицей ""%1""'"), ПолноеИмяОбъектаМетаданных);
- КонецЕсли;
- КонецЕсли;
-
- Иначе // Если передана ссылка.
-
- Попытка
- ПолноеИмяОбъектаМетаданных = Ссылка.Метаданные().ПолноеИмя();
- Исключение
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неверный первый параметр %1 в функции %2:
- |Значение должно быть ссылкой или именем предопределенного элемента.'"),
- "Ссылка", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта");
- КонецПопытки;
-
- КонецЕсли;
-
- // Разбор реквизитов, если второй параметр Строка.
- Если ТипЗнч(Реквизиты) = Тип("Строка") Тогда
- Если ПустаяСтрока(Реквизиты) Тогда
- Возврат Новый Структура;
- КонецЕсли;
-
- Реквизиты = СтрРазделить(Реквизиты, ",", Ложь);
- Для Индекс = 0 По Реквизиты.ВГраница() Цикл
- Реквизиты[Индекс] = СокрЛП(Реквизиты[Индекс]);
- КонецЦикла;
- КонецЕсли;
-
- // Приведение реквизитов к единому формату.
- СтруктураПолей = Новый Структура;
- Если ТипЗнч(Реквизиты) = Тип("Структура")
- Или ТипЗнч(Реквизиты) = Тип("ФиксированнаяСтруктура") Тогда
-
- Для Каждого КлючИЗначение Из Реквизиты Цикл
- СтруктураПолей.Вставить(КлючИЗначение.Ключ, СокрЛП(КлючИЗначение.Значение));
- КонецЦикла;
-
- ИначеЕсли ТипЗнч(Реквизиты) = Тип("Массив")
- Или ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда
-
- Для Каждого Реквизит Из Реквизиты Цикл
- Реквизит = СокрЛП(Реквизит);
- Попытка
- ПсевдонимПоля = СтрЗаменить(Реквизит, ".", "");
- СтруктураПолей.Вставить(ПсевдонимПоля, Реквизит);
- Исключение
- // Если псевдоним не является ключом.
-
- // Поиск ошибки доступности полей.
- Результат = ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, Реквизиты);
- Если Результат.Ошибка Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неверный второй параметр %1 в функции %2: %3'"),
- "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта", Результат.ОписаниеОшибки);
- КонецЕсли;
-
- // Не удалось распознать ошибку, проброс первичной ошибки.
- ВызватьИсключение;
-
- КонецПопытки;
- КонецЦикла;
- Иначе
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неверный тип второго параметра %1 в функции %2: %3.'"),
- "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта", Строка(ТипЗнч(Реквизиты)));
- КонецЕсли;
-
- // Подготовка результата (после выполнения запроса переопределится).
- Результат = Новый Структура;
-
- // Формирование текста запроса к выбираемым полям.
- ТекстЗапросаПолей = "";
- Для каждого КлючИЗначение Из СтруктураПолей Цикл
-
- ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
- КлючИЗначение.Значение,
- КлючИЗначение.Ключ);
- ПсевдонимПоля = КлючИЗначение.Ключ;
-
- ТекстЗапросаПолей =
- ТекстЗапросаПолей + ?(ПустаяСтрока(ТекстЗапросаПолей), "", ",") + "
- | " + ИмяПоля + " КАК " + ПсевдонимПоля;
-
- // Предварительное добавление поля по псевдониму в возвращаемый результат.
- Результат.Вставить(ПсевдонимПоля);
-
- КонецЦикла;
-
- // Если предопределенного нет в ИБ.
- // - приведение результата к отсутствию объекта в ИБ или передаче пустой ссылки.
- Если Ссылка = Неопределено Тогда
- Возврат Результат;
- КонецЕсли;
-
- Если Тип("Структура") = ТипЗнч(Реквизиты)
- Или Тип("ФиксированнаяСтруктура") = ТипЗнч(Реквизиты) Тогда
- Реквизиты = Новый Массив;
- Для Каждого КлючИЗначение Из СтруктураПолей Цикл
- ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
- КлючИЗначение.Значение,
- КлючИЗначение.Ключ);
- Реквизиты.Добавить(ИмяПоля);
- КонецЦикла;
- КонецЕсли;
-
- РеквизитыЧерезТочку = Новый Массив;
- Для Индекс = -Реквизиты.ВГраница() По 0 Цикл
- ИмяПоля = Реквизиты[-Индекс];
- Если СтрНайти(ИмяПоля, ".") Тогда
- РеквизитыЧерезТочку.Добавить(ИмяПоля);
- Реквизиты.Удалить(-Индекс);
- КонецЕсли;
- КонецЦикла;
-
- Если ЗначениеЗаполнено(Реквизиты) Тогда
- ЗначенияРеквизитовОбъекта = ЗначенияРеквизитовОбъектов(пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(Ссылка), Реквизиты, ВыбратьРазрешенные, КодЯзыка)[Ссылка];
- Если ЗначенияРеквизитовОбъекта <> Неопределено Тогда
- Для Каждого КлючИЗначение Из СтруктураПолей Цикл
- ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
- КлючИЗначение.Значение,
- КлючИЗначение.Ключ);
- Если СтрНайти(ИмяПоля, ".") = 0 И ЗначенияРеквизитовОбъекта.Свойство(ИмяПоля) Тогда
- Результат[КлючИЗначение.Ключ] = ЗначенияРеквизитовОбъекта[ИмяПоля];
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- КонецЕсли;
-
- Если Не ЗначениеЗаполнено(РеквизитыЧерезТочку) Тогда
- Возврат Результат;
- КонецЕсли;
-
- Реквизиты = РеквизитыЧерезТочку;
-
- ТекстЗапроса =
- "ВЫБРАТЬ РАЗРЕШЕННЫЕ
- |&ТекстЗапросаПолей
- |ИЗ
- | &ПолноеИмяОбъектаМетаданных КАК ПсевдонимЗаданнойТаблицы
- |ГДЕ
- | ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка";
-
- Если Не ВыбратьРазрешенные Тогда
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1
- КонецЕсли;
-
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстЗапросаПолей", ТекстЗапросаПолей);
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъектаМетаданных", ПолноеИмяОбъектаМетаданных);
-
- // Выполнение запроса.
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("Ссылка", Ссылка);
- Запрос.Текст = ТекстЗапроса;
-
- Попытка
- Выборка = Запрос.Выполнить().Выбрать();
- Исключение
-
- // Если реквизиты были переданы строкой, то они уже конвертированы в массив.
- // Если реквизиты - массив, оставляем без изменений.
- // Если реквизиты - структура - конвертируем в массив.
- // В остальных случаях уже было бы выброшено исключение.
- Если Тип("Структура") = ТипЗнч(Реквизиты)
- Или Тип("ФиксированнаяСтруктура") = ТипЗнч(Реквизиты) Тогда
- Реквизиты = Новый Массив;
- Для каждого КлючИЗначение Из СтруктураПолей Цикл
- ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
- КлючИЗначение.Значение,
- КлючИЗначение.Ключ);
- Реквизиты.Добавить(ИмяПоля);
- КонецЦикла;
- КонецЕсли;
-
- // Поиск ошибки доступности полей.
- Результат = ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, Реквизиты);
- Если Результат.Ошибка Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неверный второй параметр %1 в функции %2: %3'"),
- "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта", Результат.ОписаниеОшибки);
- КонецЕсли;
-
- // Не удалось распознать ошибку, проброс первичной ошибки.
- ВызватьИсключение;
-
- КонецПопытки;
-
- // Заполнение реквизитов.
- Если Выборка.Следующий() Тогда
- ЗаполнитьЗначенияСвойств(Результат, Выборка);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Аналог меотда БСП Возвращает код основного языка информационной базы, например "ru".
-// На котором программно записываются автогенерируемые строки в информационную базу.
-// Например, при начальном заполнении информационной базы данными из макета, автогенерации комментария
-// к проводке или определении значения параметра ИмяСобытия метода ЗаписьЖурналаРегистрации.
-//
-// Возвращаемое значение:
-// Строка
-//
-Функция КодОсновногоЯзыка() Экспорт
-
- Если ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
- МодульМультиязычностьСервер = ОбщийМодуль("МультиязычностьСервер");
- Возврат МодульМультиязычностьСервер.КодОсновногоЯзыка();
- КонецЕсли;
-
- Возврат Метаданные.ОсновнойЯзык.КодЯзыка;
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает значения реквизитов, прочитанные из информационной базы для нескольких объектов.
-// Рекомендуется использовать вместо обращения к реквизитам объекта через точку от ссылки на объект
-// для быстрого чтения отдельных реквизитов объекта из базы данных.
-//
-// Если необходимо зачитать реквизит независимо от прав текущего пользователя,
-// то следует использовать предварительный переход в привилегированный режим.
-//
-// Если передано имя несуществующего реквизита, то вызывается исключение "Поле объекта не существует".
-//
-// Параметры:
-// Ссылки - Массив из ЛюбаяСсылка
-// - ФиксированныйМассив из ЛюбаяСсылка - ссылки на объекты.
-// Если массив пуст, то результатом будет пустое соответствие.
-// Реквизиты - Строка - имена реквизитов перечисленные через запятую, в формате требований к свойствам
-// структуры. Например, "Код, Наименование, Родитель".
-// - Массив из Строка
-// - ФиксированныйМассив из Строка - имена реквизитов в формате требований к свойствам структуры.
-// ВыбратьРазрешенные - Булево - если Истина, то запрос к объектам выполняется с учетом прав пользователя;
-// если какой-либо объект будет исключен из выборки по правам, то этот объект
-// будет исключен и из результата;
-// если Ложь, то возникнет исключение при отсутствии прав на таблицу
-// или любой из реквизитов.
-// КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации.
-//
-// Возвращаемое значение:
-// Соответствие из КлючИЗначение - список объектов и значений их реквизитов:
-// * Ключ - ЛюбаяСсылка - ссылка на объект;
-// * Значение - Структура:
-// ** Ключ - Строка - имя реквизита;
-// ** Значение - Произвольный - значение реквизита.
-//
-Функция ЗначенияРеквизитовОбъектов(Ссылки, Знач Реквизиты, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт
-
- Если ТипЗнч(Реквизиты) = Тип("Массив") Или ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда
- Реквизиты = СтрСоединить(Реквизиты, ",");
- КонецЕсли;
-
- Если ПустаяСтрока(Реквизиты) Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неверный второй параметр %1 в функции %2:
- |Поле объекта должно быть указано.'"), "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов");
- КонецЕсли;
-
- Если СтрНайти(Реквизиты, ".") <> 0 Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неверный второй параметр %1 в функции %2:
- |Обращение через точку не поддерживается.'"), "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов");
- КонецЕсли;
-
- ЗначенияРеквизитов = Новый Соответствие;
- Если Ссылки.Количество() = 0 Тогда
- Возврат ЗначенияРеквизитов;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(КодЯзыка) Тогда
- КодЯзыка = СтрРазделить(КодЯзыка, "_", Истина)[0];
- КонецЕсли;
-
- РеквизитыТекстЗапроса = Реквизиты;
-
- СсылкиПоТипам = Новый Соответствие;
- Для Каждого Ссылка Из Ссылки Цикл
- Тип = ТипЗнч(Ссылка);
- Если СсылкиПоТипам[Тип] = Неопределено Тогда
- СсылкиПоТипам[Тип] = Новый Массив;
- КонецЕсли;
- ЭлементПоТипу = СсылкиПоТипам[Тип]; // Массив
- ЭлементПоТипу.Добавить(Ссылка);
- КонецЦикла;
-
- ТекстыЗапросов = Новый Массив;
- ПараметрыЗапроса = Новый Структура;
-
- ИменаОбъектовМетаданных = Новый Массив;
-
- Для Каждого СсылкиПоТипу Из СсылкиПоТипам Цикл
- Тип = СсылкиПоТипу.Ключ;
- ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип);
- Если ОбъектМетаданных = Неопределено Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неверный первый параметр %1 в функции %2:
- |Значения массива должны быть ссылками.'"), "Ссылки", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов");
- КонецЕсли;
-
- ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя();
- ИменаОбъектовМетаданных.Добавить(ПолноеИмяОбъектаМетаданных);
-
- ТекстЗапроса =
- "ВЫБРАТЬ РАЗРЕШЕННЫЕ
- | Ссылка,
- | &Реквизиты
- |ИЗ
- | &ПолноеИмяОбъектаМетаданных КАК ПсевдонимЗаданнойТаблицы
- |ГДЕ
- | ПсевдонимЗаданнойТаблицы.Ссылка В (&Ссылки)";
- Если Не ВыбратьРазрешенные Или ТекстыЗапросов.Количество() > 0 Тогда
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1
- КонецЕсли;
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Реквизиты", РеквизитыТекстЗапроса);
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъектаМетаданных", ПолноеИмяОбъектаМетаданных);
- ИмяПараметра = "Ссылки" + СтрЗаменить(ПолноеИмяОбъектаМетаданных, ".", "");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Ссылки", "&" + ИмяПараметра); // @Query-part-1
- ПараметрыЗапроса.Вставить(ИмяПараметра, СсылкиПоТипу.Значение);
-
- ТекстыЗапросов.Добавить(ТекстЗапроса);
- КонецЦикла;
-
- ТекстЗапроса = СтрСоединить(ТекстыЗапросов, Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС);
-
- Запрос = Новый Запрос(ТекстЗапроса);
- Запрос.УстановитьПараметр("КодЯзыка", КодЯзыка);
- Для Каждого Параметр Из ПараметрыЗапроса Цикл
- Запрос.УстановитьПараметр(Параметр.Ключ, Параметр.Значение);
- КонецЦикла;
-
- Попытка
- Выборка = Запрос.Выполнить().Выбрать();
- Исключение
-
- // Удаление пробелов.
- Реквизиты = СтрЗаменить(Реквизиты, " ", "");
- // Преобразование параметра в массив полей.
- Реквизиты = СтрРазделить(Реквизиты, ",");
-
- // Поиск ошибки доступности полей.
- СписокОшибок = Новый Массив;
- Для Каждого ПолноеИмяОбъектаМетаданных Из ИменаОбъектовМетаданных Цикл
- Результат = ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, Реквизиты);
- Если Результат.Ошибка Тогда
- СписокОшибок.Добавить(Результат.ОписаниеОшибки);
- КонецЕсли;
- КонецЦикла;
-
- Если ЗначениеЗаполнено(СписокОшибок) Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неверный второй параметр %1 в функции %2: %3'"),
- "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов", СтрСоединить(СписокОшибок, Символы.ПС));
- КонецЕсли;
-
- // Не удалось распознать ошибку, проброс первичной ошибки.
- ВызватьИсключение;
-
- КонецПопытки;
-
- Пока Выборка.Следующий() Цикл
- Результат = Новый Структура(Реквизиты);
- ЗаполнитьЗначенияСвойств(Результат, Выборка);
- ЗначенияРеквизитов[Выборка.Ссылка] = Результат;
-
- КонецЦикла;
-
- Возврат ЗначенияРеквизитов;
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает значения реквизита, прочитанного из информационной базы по ссылке на объект.
-// Рекомендуется использовать вместо обращения к реквизитам объекта через точку от ссылки на объект
-// для быстрого чтения отдельных реквизитов объекта из базы данных.
-//
-// Если необходимо зачитать реквизит независимо от прав текущего пользователя,
-// то следует использовать предварительный переход в привилегированный режим.
-//
-// Если передано имя несуществующего реквизита, то вызывается исключение "Поле объекта не существует".
-//
-// Параметры:
-// Ссылка - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить.
-// - Строка - полное имя предопределенного элемента, значения реквизитов которого необходимо получить.
-// ИмяРеквизита - Строка - имя получаемого реквизита.
-// Допускается указание имени реквизита через точку, но при этом параметр КодЯзыка для
-// такого реквизита учитываться не будет.
-// ВыбратьРазрешенные - Булево - если Истина, то запрос к объекту выполняется с учетом прав пользователя;
-// если есть ограничение на уровне записей, то возвращается Неопределено;
-// если нет прав для работы с таблицей, то возникнет исключение;
-// если Ложь, то возникнет исключение при отсутствии прав на таблицу
-// или любой из реквизитов.
-// КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации.
-//
-// Возвращаемое значение:
-// Произвольный - если в параметр Ссылка передана пустая ссылка, то возвращается Неопределено.
-// Если в параметр Ссылка передана ссылка несуществующего объекта (битая ссылка),
-// то возвращается Неопределено.
-//
-Функция ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт
-
- Если ПустаяСтрока(ИмяРеквизита) Тогда
- ВызватьИсключение пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неверный второй параметр %1 в функции %2:
- |Имя реквизита должно быть заполнено.'"), "ИмяРеквизита", "ОбщегоНазначения.ЗначениеРеквизитаОбъекта");
- КонецЕсли;
-
- Результат = ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные, КодЯзыка);
- Возврат Результат[СтрЗаменить(ИмяРеквизита, ".", "")];
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает ОбъектМетаданных, быстро найденный по полному имени.
-// Более производительный аналог метода платформы Метаданные.НайтиПоПолномуИмени
-// для корневых объектов метаданных.
-//
-// Параметры:
-// ПолноеИмя - Строка - полное имя объекта метаданных, например, Справочник.Организации
-//
-// Возвращаемое значение:
-// ОбъектМетаданных - когда найден
-// Неопределено - когда не найден
-//
-Функция ОбъектМетаданныхПоПолномуИмени(ПолноеИмя) Экспорт
-
- ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмя);
-
- Возврат ОбъектМетаданных;
-
-КонецФункции
-
-// Аналог метода БСП. Проверяет существование указанных реквизитов у объекта метаданных.
-//
-// Параметры:
-// ПолноеИмяОбъектаМетаданных - Строка - полное имя проверяемого объекта.
-// ПроверяемыеВыражения - Массив - имена полей или проверяемые выражения объекта метаданных.
-//
-// Возвращаемое значение:
-// Структура:
-// * Ошибка - Булево - найдена ошибка.
-// * ОписаниеОшибки - Строка - описание найденных ошибок.
-//
-// Пример:
-//
-// Реквизиты = Новый Массив;
-// Реквизиты.Добавить("Номер");
-// Реквизиты.Добавить("Валюта.НаименованиеПолное");
-//
-// Результат = ОбщегоНазначения.ПроверитьСуществованиеРеквизитовОбъекта("Документ._ДемоЗаказПокупателя", Реквизиты);
-//
-// Если Результат.Ошибка Тогда
-// ВызватьИсключение Результат.ОписаниеОшибки;
-// КонецЕсли;
-//
-Функция ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, ПроверяемыеВыражения)
-
- МетаданныеОбъекта = ОбъектМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных);
- Если МетаданныеОбъекта = Неопределено Тогда
- Возврат Новый Структура("Ошибка, ОписаниеОшибки", Истина,
- пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Несуществующий объект метаданных ""%1"".'"), ПолноеИмяОбъектаМетаданных));
- КонецЕсли;
-
- // Разрешение вызова из безопасного режима внешней обработки или расширения.
- // Информация о доступности полей источника схемы при проверке метаданных не является секретной.
- УстановитьПривилегированныйРежим(Истина);
-
- Схема = Новый СхемаЗапроса;
- Пакет = Схема.ПакетЗапросов.Добавить(Тип("ЗапросВыбораСхемыЗапроса"));
- Оператор = Пакет.Операторы.Получить(0);
-
- Источник = Оператор.Источники.Добавить(ПолноеИмяОбъектаМетаданных, "Таблица");
- ТекстОшибки = "";
-
- Возврат Новый Структура("Ошибка, ОписаниеОшибки", Не ПустаяСтрока(ТекстОшибки), ТекстОшибки);
-
-КонецФункции
-
-// Аналог метода БСП. Создает объект ОписаниеТипов, содержащий тип Строка.
-//
-// Параметры:
-// ДлинаСтроки - Число - длина строки.
-//
-// Возвращаемое значение:
-// ОписаниеТипов - описание типа Строка.
-//
-Функция ОписаниеТипаСтрока(ДлинаСтроки) Экспорт
-
- Возврат Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(ДлинаСтроки));
-
-КонецФункции
-
-// Аналог метода БСП. Создает объект ОписаниеТипов, содержащий тип Число.
-//
-// Параметры:
-// Разрядность - Число - общее количество разрядов числа (количество разрядов
-// целой части плюс количество разрядов дробной части).
-// РазрядностьДробнойЧасти - Число - число разрядов дробной части.
-// ЗнакЧисла - ДопустимыйЗнак - допустимый знак числа.
-//
-// Возвращаемое значение:
-// ОписаниеТипов - описание типа Число.
-//
-Функция ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти = 0, Знач ЗнакЧисла = Неопределено) Экспорт
-
- Если ЗнакЧисла = Неопределено Тогда
- ЗнакЧисла = ДопустимыйЗнак.Любой;
- КонецЕсли;
-
- Возврат Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(Разрядность, РазрядностьДробнойЧасти, ЗнакЧисла));
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает значение настройки рабочей даты для пользователя или текущей даты сеанса,
-// если рабочая дата пользователя не задана.
-//
-// Параметры:
-// ИмяПользователя - Строка - имя пользователя, для которого запрашивается рабочая дата.
-// Если не задано, то устанавливается для текущего пользователя.
-//
-// Возвращаемое значение:
-// Дата - значение настройки рабочей даты пользователя или текущая дата сеанса, если настройка не задана.
-//
-Функция ТекущаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт
-
- Возврат ТекущаяДатаСеанса();
-
-КонецФункции
-
-#Область СериализацияXML
-
-// Аналог метода БСП. Преобразует (сериализует) любое значение в XML-строку.
-// Преобразованы в могут быть только те объекты, для которых в синтакс-помощнике указано, что они сериализуются.
-// См. также ЗначениеИзСтрокиXML.
-//
-// Параметры:
-// Значение - Произвольный - значение, которое необходимо сериализовать в XML-строку.
-//
-// Возвращаемое значение:
-// Строка - XML-строка.
-//
-Функция ЗначениеВСтрокуXML(Значение) Экспорт
-
- ЗаписьXML = Новый ЗаписьXML;
- ЗаписьXML.УстановитьСтроку();
- СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение, НазначениеТипаXML.Явное);
-
- Возврат ЗаписьXML.Закрыть();
-КонецФункции
-
-// Аналог метода БСП. Выполняет преобразование (десериализацию) XML-строки в значение.
-// См. также ЗначениеВСтрокуXML.
-//
-// Параметры:
-// СтрокаXML - Строка - XML-строка, с сериализованным объектом..
-//
-// Возвращаемое значение:
-// Произвольный - значение, полученное из переданной XML-строки.
-//
-Функция ЗначениеИзСтрокиXML(СтрокаXML) Экспорт
-
- ЧтениеXML = Новый ЧтениеXML;
- ЧтениеXML.УстановитьСтроку(СтрокаXML);
-
- Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
-КонецФункции
-
-#КонецОбласти
-
-// Аналог метода БСП. Возвращает менеджер объекта по полному имени объекта метаданных.
-// Ограничение: не обрабатываются точки маршрутов бизнес-процессов.
-//
-// Параметры:
-// ПолноеИмя - Строка - полное имя объекта метаданных. Пример: "Справочник.Организации".
-//
-// Возвращаемое значение:
-// СправочникМенеджер, ДокументМенеджер, ОбработкаМенеджер, РегистрСведенийМенеджер - менеджер объекта.
-//
-// Пример:
-// МенеджерСправочника = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("Справочник.Организации");
-// ПустаяСсылка = МенеджерСправочника.ПустаяСсылка();
-//
-Функция МенеджерОбъектаПоПолномуИмени(ПолноеИмя) Экспорт
-
- Перем КлассОМ, ИмяОМ, Менеджер;
-
- ЧастиИмени = СтрРазделить(ПолноеИмя, ".");
-
- Если ЧастиИмени.Количество() >= 2 Тогда
- КлассОМ = ЧастиИмени[0];
- ИмяОМ = ЧастиИмени[1];
- Иначе
- Менеджер = Неопределено;
- КонецЕсли;
-
- Если ВРег(КлассОМ) = "ПЛАНОБМЕНА" Тогда
- Менеджер = ПланыОбмена;
-
- ИначеЕсли ВРег(КлассОМ) = "СПРАВОЧНИК" Тогда
- Менеджер = Справочники;
-
- ИначеЕсли ВРег(КлассОМ) = "ДОКУМЕНТ" Тогда
- Менеджер = Документы;
-
- ИначеЕсли ВРег(КлассОМ) = "ЖУРНАЛДОКУМЕНТОВ" Тогда
- Менеджер = ЖурналыДокументов;
-
- ИначеЕсли ВРег(КлассОМ) = "ПЕРЕЧИСЛЕНИЕ" Тогда
- Менеджер = Перечисления;
-
- ИначеЕсли ВРег(КлассОМ) = "ОТЧЕТ" Тогда
- Менеджер = Отчеты;
-
- ИначеЕсли ВРег(КлассОМ) = "ОБРАБОТКА" Тогда
- Менеджер = Обработки;
-
- ИначеЕсли ВРег(КлассОМ) = "ПЛАНВИДОВХАРАКТЕРИСТИК" Тогда
- Менеджер = ПланыВидовХарактеристик;
-
- ИначеЕсли ВРег(КлассОМ) = "ПЛАНСЧЕТОВ" Тогда
- Менеджер = ПланыСчетов;
-
- ИначеЕсли ВРег(КлассОМ) = "ПЛАНВИДОВРАСЧЕТА" Тогда
- Менеджер = ПланыВидовРасчета;
-
- ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРСВЕДЕНИЙ" Тогда
- Менеджер = РегистрыСведений;
-
- ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРНАКОПЛЕНИЯ" Тогда
- Менеджер = РегистрыНакопления;
-
- ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРБУХГАЛТЕРИИ" Тогда
- Менеджер = РегистрыБухгалтерии;
-
- ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРРАСЧЕТА" Тогда
-
- Если ЧастиИмени.Количество() = 2 Тогда
- Менеджер = РегистрыРасчета;
-
- ИначеЕсли ЧастиИмени.Количество() = 4 Тогда
- КлассПодчиненногоОМ = ЧастиИмени[2];
- ИмяПодчиненногоОМ = ЧастиИмени[3];
-
- Если ВРег(КлассПодчиненногоОМ) = "ПЕРЕРАСЧЕТ" Тогда
- Менеджер = РегистрыРасчета[ИмяОМ].Перерасчеты;
- ИмяОм = ИмяПодчиненногоОМ;
-
- Иначе
- Менеджер = Неопределено;
- КонецЕсли;
-
- Иначе
- Менеджер = Неопределено;
- КонецЕсли;
-
- ИначеЕсли ВРег(КлассОМ) = "БИЗНЕСПРОЦЕСС" Тогда
- Менеджер = БизнесПроцессы;
-
- ИначеЕсли ВРег(КлассОМ) = "ЗАДАЧА" Тогда
- Менеджер = Задачи;
-
- ИначеЕсли ВРег(КлассОМ) = "КОНСТАНТА" Тогда
- Менеджер = Константы;
-
- ИначеЕсли ВРег(КлассОМ) = "ПОСЛЕДОВАТЕЛЬНОСТЬ" Тогда
- Менеджер = Последовательности;
-
- Иначе
- Менеджер = Неопределено;
- КонецЕсли;
-
- Если Менеджер = Неопределено Тогда
- ПроверитьОбъектМетаданныхСуществует(ПолноеИмя);
- ВызватьИсключение пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Объект метаданных ""%1"" не имеет менеджера объекта.';
- |en = 'Metadata object %1 has no object manager.'"), ПолноеИмя);
- КонецЕсли;
-
- Попытка
- Возврат Менеджер[ИмяОМ];
- Исключение
- ПроверитьОбъектМетаданныхСуществует(ПолноеИмя);
- ВызватьИсключение;
- КонецПопытки;
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает менеджер объекта по ссылке на объект.
-// Ограничение: не обрабатываются точки маршрутов бизнес-процессов.
-// См. также ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени.
-//
-// Параметры:
-// Ссылка - ЛюбаяСсылка - объект, менеджер которого требуется получить.
-//
-// Возвращаемое значение:
-// СправочникМенеджер, ДокументМенеджер, ОбработкаМенеджер, РегистрСведенийМенеджер - менеджер объекта.
-//
-// Пример:
-// МенеджерСправочника = ОбщегоНазначения.МенеджерОбъектаПоСсылке(СсылкаНаОрганизацию);
-// ПустаяСсылка = МенеджерСправочника.ПустаяСсылка();
-//
-Функция МенеджерОбъектаПоСсылке(Ссылка) Экспорт
-
- ИмяОбъекта = Ссылка.Метаданные().Имя;
- ТипСсылки = ТипЗнч(Ссылка);
-
- Если Справочники.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
- Возврат Справочники[ИмяОбъекта];
-
- ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
- Возврат Документы[ИмяОбъекта];
-
- ИначеЕсли БизнесПроцессы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
- Возврат БизнесПроцессы[ИмяОбъекта];
-
- ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
- Возврат ПланыВидовХарактеристик[ИмяОбъекта];
-
- ИначеЕсли ПланыСчетов.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
- Возврат ПланыСчетов[ИмяОбъекта];
-
- ИначеЕсли ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
- Возврат ПланыВидовРасчета[ИмяОбъекта];
-
- ИначеЕсли Задачи.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
- Возврат Задачи[ИмяОбъекта];
-
- ИначеЕсли ПланыОбмена.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
- Возврат ПланыОбмена[ИмяОбъекта];
-
- ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
- Возврат Перечисления[ИмяОбъекта];
- Иначе
- Возврат Неопределено;
- КонецЕсли;
-
-КонецФункции
-
-#Область Данные
-
-// Аналог метода БСП. Вычисляет контрольную сумму для произвольных данных по указанному алгоритму.
-//
-// Параметры:
-// Данные - Произвольный - любое сериализуемое значение.
-// Алгоритм - ХешФункция - алгоритм расчета контрольной суммы. По умолчанию, MD5.
-//
-// Возвращаемое значение:
-// Строка - контрольная сумма строкой без пробелов (например 32 символа).
-//
-Функция КонтрольнаяСуммаСтрокой(Знач Данные, Знач Алгоритм = Неопределено) Экспорт
-
- Если Алгоритм = Неопределено Тогда
- Алгоритм = ХешФункция.MD5;
- КонецЕсли;
-
- ХешированиеДанных = Новый ХешированиеДанных(Алгоритм);
- Если ТипЗнч(Данные) <> Тип("Строка") И ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
- Данные = ЗначениеВСтрокуXML(Данные);
- КонецЕсли;
- ХешированиеДанных.Добавить(Данные);
-
- Если ТипЗнч(ХешированиеДанных.ХешСумма) = Тип("ДвоичныеДанные") Тогда
- Результат = СтрЗаменить(ХешированиеДанных.ХешСумма, " ", "");
- ИначеЕсли ТипЗнч(ХешированиеДанных.ХешСумма) = Тип("Число") Тогда
- Результат = Формат(ХешированиеДанных.ХешСумма, "ЧГ=");
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ТекущееОкружение
-
-// Аналог метода БСП. Возвращает Истина, если текущий сеанс выполняется на сервере, работающем под управлением ОС Windows.
-//
-// Возвращаемое значение:
-// Булево - Истина, если сервер работает под управлением ОС Windows.
-//
-Функция ЭтоWindowsСервер() Экспорт
-
- СистемнаяИнформация = Новый СистемнаяИнформация;
- Возврат СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86
- Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64;
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает Истина, если текущий сеанс выполняется на сервере, работающем под управлением ОС Linux.
-//
-// Возвращаемое значение:
-// Булево - Истина, если сервер работает под управлением ОС Linux.
-//
-Функция ЭтоLinuxСервер() Экспорт
-
- СистемнаяИнформация = Новый СистемнаяИнформация;
- Возврат СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86
- Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64;
-
-КонецФункции
-
-#КонецОбласти // ТекущееОкружение
-
-#Область Прочее
-
-// Аналог метода БСП. Пока заглушка, см. ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания
-Процедура ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание = Неопределено) Экспорт
-КонецПроцедуры
-
-#КонецОбласти // Прочее
-
-#КонецОбласти
-
#Область ПользовательскиеФункции
// Выполняет пользовательскую функцию с переданными параметрами.
@@ -2446,393 +1024,6 @@
КонецФункции
-#Область МетодыАналогиБСП
-
-#Область БезопасноеВыполнениеВнешнегоКода
-
-// Аналог метода БСП. Проверяет, что переданное имя ИмяПроцедуры является именем экспортной процедуры конфигурации.
-// Может использоваться для проверки, что переданная строка не содержит произвольного алгоритма
-// на встроенном языке 1С:Предприятия перед использованием его в операторах Выполнить и Вычислить
-// при их использовании для динамического вызова методов код конфигурации.
-//
-// В случае если переданная строка не является именем процедуры конфигурации, генерируется исключение.
-//
-// Предназначена для вызова из см. процедуру ВыполнитьМетодКонфигурации.
-//
-// Параметры:
-// ИмяПроцедуры - Строка - проверяемое имя экспортной процедуры.
-//
-Процедура ПроверитьИмяПроцедурыКонфигурации(Знач ИмяПроцедуры)
-
- ЧастиИмени = СтрРазделить(ИмяПроцедуры, ".");
- Если ЧастиИмени.Количество() <> 2 И ЧастиИмени.Количество() <> 3 Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3.'"),
- "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации");
- КонецЕсли;
-
- ИмяОбъекта = ЧастиИмени[0];
- Если ЧастиИмени.Количество() = 2 И Метаданные.ОбщиеМодули.Найти(ИмяОбъекта) = Неопределено Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3:
- |Не существует общий модуль ""%4"".'"),
- "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяОбъекта);
- КонецЕсли;
-
- Если ЧастиИмени.Количество() = 3 Тогда
- ПолноеИмяОбъекта = ЧастиИмени[0] + "." + ЧастиИмени[1];
- Попытка
- Менеджер = МенеджерОбъектаПоИмени(ПолноеИмяОбъекта);
- Исключение
- Менеджер = Неопределено;
- КонецПопытки;
- Если Менеджер = Неопределено Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3:
- |Не существует менеджер объекта ""%4"".'"),
- "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ПолноеИмяОбъекта);
- КонецЕсли;
- КонецЕсли;
-
- ИмяМетодаОбъекта = ЧастиИмени[ЧастиИмени.ВГраница()];
- ВременнаяСтруктура = Новый Структура;
- Попытка
- // Проверка того, что ИмяПроцедуры является допустимым идентификатором.
- // Например: МояПроцедура.
- ВременнаяСтруктура.Вставить(ИмяМетодаОбъекта);
- Исключение
- КодОсновногоЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
- ЗаписьЖурналаРегистрации(НСтр("ru = 'Безопасное выполнение метода'", КодОсновногоЯзыка),
- УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3:
- |Имя метода ""%4"" не соответствует требованиям образования имен процедур и функций.'"),
- "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяМетодаОбъекта);
- КонецПопытки;
-
-КонецПроцедуры
-
-// Аналог метода БСП. Возвращает менеджер объекта по имени.
-// Ограничение: не обрабатываются точки маршрутов бизнес-процессов.
-//
-// Параметры:
-// Имя - Строка - имя например, "Справочник", "Справочники", "Справочник.Организации".
-//
-// Возвращаемое значение:
-// СправочникиМенеджер
-// СправочникМенеджер
-// ДокументыМенеджер
-// ДокументМенеджер
-// ...
-//
-Функция МенеджерОбъектаПоИмени(Имя)
- Перем КлассОМ, ИмяОМ, Менеджер;
-
- ЧастиИмени = СтрРазделить(Имя, ".");
-
- Если ЧастиИмени.Количество() > 0 Тогда
- КлассОМ = ВРег(ЧастиИмени[0]);
- КонецЕсли;
-
- Если ЧастиИмени.Количество() > 1 Тогда
- ИмяОМ = ЧастиИмени[1];
- КонецЕсли;
-
- Если КлассОМ = "ПЛАНОБМЕНА"
- Или КлассОМ = "ПЛАНЫОБМЕНА" Тогда
- Менеджер = ПланыОбмена;
-
- ИначеЕсли КлассОМ = "СПРАВОЧНИК"
- Или КлассОМ = "СПРАВОЧНИКИ" Тогда
- Менеджер = Справочники;
-
- ИначеЕсли КлассОМ = "ДОКУМЕНТ"
- Или КлассОМ = "ДОКУМЕНТЫ" Тогда
- Менеджер = Документы;
-
- ИначеЕсли КлассОМ = "ЖУРНАЛДОКУМЕНТОВ"
- Или КлассОМ = "ЖУРНАЛЫДОКУМЕНТОВ" Тогда
- Менеджер = ЖурналыДокументов;
-
- ИначеЕсли КлассОМ = "ПЕРЕЧИСЛЕНИЕ"
- Или КлассОМ = "ПЕРЕЧИСЛЕНИЯ" Тогда
- Менеджер = Перечисления;
-
- ИначеЕсли КлассОМ = "ОБЩИЙМОДУЛЬ"
- Или КлассОМ = "ОБЩИЕМОДУЛИ" Тогда
-
- Возврат ОбщийМодуль(ИмяОМ);
-
- ИначеЕсли КлассОМ = "ОТЧЕТ"
- Или КлассОМ = "ОТЧЕТЫ" Тогда
- Менеджер = Отчеты;
-
- ИначеЕсли КлассОМ = "ОБРАБОТКА"
- Или КлассОМ = "ОБРАБОТКИ" Тогда
- Менеджер = Обработки;
-
- ИначеЕсли КлассОМ = "ПЛАНВИДОВХАРАКТЕРИСТИК"
- Или КлассОМ = "ПЛАНЫВИДОВХАРАКТЕРИСТИК" Тогда
- Менеджер = ПланыВидовХарактеристик;
-
- ИначеЕсли КлассОМ = "ПЛАНСЧЕТОВ"
- Или КлассОМ = "ПЛАНЫСЧЕТОВ" Тогда
- Менеджер = ПланыСчетов;
-
- ИначеЕсли КлассОМ = "ПЛАНВИДОВРАСЧЕТА"
- Или КлассОМ = "ПЛАНЫВИДОВРАСЧЕТА" Тогда
- Менеджер = ПланыВидовРасчета;
-
- ИначеЕсли КлассОМ = "РЕГИСТРСВЕДЕНИЙ"
- Или КлассОМ = "РЕГИСТРЫСВЕДЕНИЙ" Тогда
- Менеджер = РегистрыСведений;
-
- ИначеЕсли КлассОМ = "РЕГИСТРНАКОПЛЕНИЯ"
- Или КлассОМ = "РЕГИСТРЫНАКОПЛЕНИЯ" Тогда
- Менеджер = РегистрыНакопления;
-
- ИначеЕсли КлассОМ = "РЕГИСТРБУХГАЛТЕРИИ"
- Или КлассОМ = "РЕГИСТРЫБУХГАЛТЕРИИ" Тогда
- Менеджер = РегистрыБухгалтерии;
-
- ИначеЕсли КлассОМ = "РЕГИСТРРАСЧЕТА"
- Или КлассОМ = "РЕГИСТРЫРАСЧЕТА" Тогда
-
- Если ЧастиИмени.Количество() < 3 Тогда
- // Регистр расчета
- Менеджер = РегистрыРасчета;
- Иначе
- КлассПодчиненногоОМ = ВРег(ЧастиИмени[2]);
- Если ЧастиИмени.Количество() > 3 Тогда
- ИмяПодчиненногоОМ = ЧастиИмени[3];
- КонецЕсли;
- Если КлассПодчиненногоОМ = "ПЕРЕРАСЧЕТ"
- Или КлассПодчиненногоОМ = "ПЕРЕРАСЧЕТЫ" Тогда
- // Перерасчет
- Попытка
- Менеджер = РегистрыРасчета[ИмяОМ].Перерасчеты;
- ИмяОМ = ИмяПодчиненногоОМ;
- Исключение
- Менеджер = Неопределено;
- КонецПопытки;
- КонецЕсли;
- КонецЕсли;
-
- ИначеЕсли КлассОМ = "БИЗНЕСПРОЦЕСС"
- Или КлассОМ = "БИЗНЕСПРОЦЕССЫ" Тогда
- Менеджер = БизнесПроцессы;
-
- ИначеЕсли КлассОМ = "ЗАДАЧА"
- Или КлассОМ = "ЗАДАЧИ" Тогда
- Менеджер = Задачи;
-
- ИначеЕсли КлассОМ = "КОНСТАНТА"
- Или КлассОМ = "КОНСТАНТЫ" Тогда
- Менеджер = Константы;
-
- ИначеЕсли КлассОМ = "ПОСЛЕДОВАТЕЛЬНОСТЬ"
- Или КлассОМ = "ПОСЛЕДОВАТЕЛЬНОСТИ" Тогда
- Менеджер = Последовательности;
- КонецЕсли;
-
- Если Менеджер <> Неопределено Тогда
- Если ЗначениеЗаполнено(ИмяОМ) Тогда
- Попытка
- Возврат Менеджер[ИмяОМ];
- Исключение
- Менеджер = Неопределено;
- КонецПопытки;
- Иначе
- Возврат Менеджер;
- КонецЕсли;
- КонецЕсли;
-
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось получить менеджер для объекта ""%1""'"), Имя);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УсловныеВызовы
-
-// Аналог метода БСП. Возвращает серверный модуль менеджера по имени объекта.
-Функция СерверныйМодульМенеджера(Имя)
- ОбъектНайден = Ложь;
-
- ЧастиИмени = СтрРазделить(Имя, ".");
- Если ЧастиИмени.Количество() = 2 Тогда
-
- ИмяВида = ВРег(ЧастиИмени[0]);
- ИмяОбъекта = ЧастиИмени[1];
-
- Если ИмяВида = ВРег("Константы") Тогда
- Если Метаданные.Константы.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("РегистрыСведений") Тогда
- Если Метаданные.РегистрыСведений.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("РегистрыНакопления") Тогда
- Если Метаданные.РегистрыНакопления.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("РегистрыБухгалтерии") Тогда
- Если Метаданные.РегистрыБухгалтерии.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("РегистрыРасчета") Тогда
- Если Метаданные.РегистрыРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("Справочники") Тогда
- Если Метаданные.Справочники.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("Документы") Тогда
- Если Метаданные.Документы.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("Отчеты") Тогда
- Если Метаданные.Отчеты.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("Обработки") Тогда
- Если Метаданные.Обработки.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("БизнесПроцессы") Тогда
- Если Метаданные.БизнесПроцессы.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("ЖурналыДокументов") Тогда
- Если Метаданные.ЖурналыДокументов.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("Задачи") Тогда
- Если Метаданные.Задачи.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("ПланыСчетов") Тогда
- Если Метаданные.ПланыСчетов.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("ПланыОбмена") Тогда
- Если Метаданные.ПланыОбмена.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("ПланыВидовХарактеристик") Тогда
- Если Метаданные.ПланыВидовХарактеристик.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("ПланыВидовРасчета") Тогда
- Если Метаданные.ПланыВидовРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- КонецЕсли;
-
- КонецЕсли;
-
- Если Не ОбъектНайден Тогда
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Объект метаданных ""%1"" не существует.'"), Имя);
- КонецЕсли;
-
- УстановитьБезопасныйРежим(Истина);
- Модуль = Вычислить(Имя);
-
- Возврат Модуль;
-КонецФункции
-
-#КонецОбласти
-
-#Область ХранилищеНастроек
-
-// Аналог метода БСП.
-//
-Процедура ХранилищеСохранить(МенеджерХранилища, КлючОбъекта, КлючНастроек, Настройки,
- ОписаниеНастроек, ИмяПользователя, ОбновитьПовторноИспользуемыеЗначения)
-
- Если Не ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
- Возврат;
- КонецЕсли;
-
- МенеджерХранилища.Сохранить(КлючОбъекта, КлючНастроек(КлючНастроек), Настройки,
- ОписаниеНастроек, ИмяПользователя);
-
- Если ОбновитьПовторноИспользуемыеЗначения Тогда
- ОбновитьПовторноИспользуемыеЗначения();
- КонецЕсли;
-
-КонецПроцедуры
-
-// Аналог метода БСП.
-//
-Функция ХранилищеЗагрузить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию,
- ОписаниеНастроек, ИмяПользователя)
-
- Результат = Неопределено;
-
- Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
- Результат = МенеджерХранилища.Загрузить(КлючОбъекта, КлючНастроек(КлючНастроек),
- ОписаниеНастроек, ИмяПользователя);
- КонецЕсли;
-
- Если Результат = Неопределено Тогда
- Результат = ЗначениеПоУмолчанию;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Аналог метода БСП.
-//
-Процедура ХранилищеУдалить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ИмяПользователя)
-
- Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
- МенеджерХранилища.Удалить(КлючОбъекта, КлючНастроек(КлючНастроек), ИмяПользователя);
- КонецЕсли;
-
-КонецПроцедуры
-
-// Аналог метода БСП. Возвращает строку ключа настроек, не превышающую допустимую длину 128 символов.
-// Если указанная строка превышает 128, тогда вместо символов сверх 96 символов
-// добавляется их хеш-сумма по алгоритму MD5 размером 32 символа.
-//
-// Параметры:
-// Строка - Строка - строка произвольной длины.
-//
-// Возвращаемое значение:
-// Строка - не более 128 символов.
-//
-Функция КлючНастроек(Знач Строка)
- Возврат СократитьСтрокуКонтрольнойСуммой(Строка, 128);
-КонецФункции
-
-#КонецОбласти
-
-#Область Метаданные
-
-// Аналог метода БСП.
-//
-// Параметры:
-// ПолноеИмя - Строка - Полное имя объекта метаданных.
-//
-Процедура ПроверитьОбъектМетаданныхСуществует(ПолноеИмя)
-
- Если ОбъектМетаданныхПоПолномуИмени(ПолноеИмя) = Неопределено Тогда
- ВызватьИсключение пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неизвестный тип объекта метаданных ""%1"".';
- |en = 'Unknown metadata object type: ""%1"".'"), ПолноеИмя);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
#Область ПользовательскиеФункции
// Процедура - Подставить параметры в функцию
@@ -2866,11 +1057,11 @@
Выборка.Наименование,
ТипПараметра,
Выборка.Тип);
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения, , , , Отказ);
+ пбп_Переадресация.СообщитьПользователю(ТекстСообщения, , , , Отказ);
КонецЕсли;
ИначеЕсли Выборка.Необязательный = Ложь Тогда
ТекстСообщения = СтрШаблон(НСтр("ru='Параметр: %1, является обязательным!'"), Выборка.Наименование);
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения, , , , Отказ);
+ пбп_Переадресация.СообщитьПользователю(ТекстСообщения, , , , Отказ);
КонецЕсли;
Если Отказ Тогда
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
deleted file mode 100644
index 80129ef2..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_ОбщегоНазначенияСлужебный
-
-
- ru
- Общего назначения служебный
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
deleted file mode 100644
index 757e1e4b..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
+++ /dev/null
@@ -1,227 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-////////////////////////////////////////////////////////////////////////////////
-// Общего назначения (служебный): для серверных функций общего назначения, переадресация на методы БСП или их аналоги
-
-#Область ПрограммныйИнтерфейс
-
-#Область ПереадресацияМетодов
-
-// См. пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации.
-Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры);
-
-КонецПроцедуры
-
-// См. пбп_ОбщегоНазначенияСервер.ВычислитьВБезопасномРежиме.
-//
-Функция ВычислитьВБезопасномРежиме(Знач Выражение, Знач Параметры = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ВычислитьВБезопасномРежиме(Выражение, Параметры);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСервер.ЗаписатьДанныеВБезопасноеХранилище.
-Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ);
-
-КонецПроцедуры
-
-// См. пбп_ОбщегоНазначенияСервер.ПрочитатьДанныеИзБезопасногоХранилища.
-Функция ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи, ОбщиеДанные);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСервер.СообщитьПользователю.
-Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, Знач Поле = "",
- Знач ПутьКДанным = "", Отказ = Ложь) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.СообщитьПользователю(ТекстСообщенияПользователю, КлючДанных, Поле, ПутьКДанным, Отказ);
-
-КонецПроцедуры
-
-// См. пбп_ОбщегоНазначенияСервер.ХранилищеОбщихНастроекСохранить.
-Процедура ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки,
- ОписаниеНастроек = Неопределено,
- ИмяПользователя = Неопределено,
- ОбновитьПовторноИспользуемыеЗначения = Ложь) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки, ОписаниеНастроек,
- ИмяПользователя, ОбновитьПовторноИспользуемыеЗначения);
-
-КонецПроцедуры
-
-// См. пбп_ОбщегоНазначенияСервер.ХранилищеОбщихНастроекЗагрузить.
-Функция ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию = Неопределено,
- ОписаниеНастроек = Неопределено, ИмяПользователя = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию,
- ОписаниеНастроек, ИмяПользователя);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСервер.ХранилищеОбщихНастроекУдалить.
-Процедура ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя);
-
-КонецПроцедуры
-
-// См. пбп_ОбщегоНазначенияСервер.ПриНачалеВыполненияРегламентногоЗадания.
-Процедура ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание);
-
-КонецПроцедуры
-
-// См. пбп_ОбщегоНазначенияСервер.ЗначенияРеквизитовОбъекта.
-Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ЗначенияРеквизитовОбъекта(Ссылка, Реквизиты, ВыбратьРазрешенные, КодЯзыка);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСервер.ЗначениеРеквизитаОбъекта.
-Функция ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные, КодЯзыка);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока.
-Функция ОписаниеТипаСтрока(ДлинаСтроки) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ОписаниеТипаСтрока(ДлинаСтроки);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСервер.ОписаниеТипаЧисло.
-Функция ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти = 0, Знач ЗнакЧисла = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти, ЗнакЧисла);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСервер.ИнформационнаяБазаФайловая.
-Функция ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ИнформационнаяБазаФайловая(СтрокаСоединенияИнформационнойБазы);
-
-КонецФункции
-
-#Область ТекущееОкружение
-
-// См. пбп_ОбщегоНазначенияСервер.ЭтоWindowsСервер.
-Функция ЭтоWindowsСервер() Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ЭтоWindowsСервер();
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСервер.ЭтоLinuxСервер.
-Функция ЭтоLinuxСервер() Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ЭтоLinuxСервер();
-
-КонецФункции
-
-#КонецОбласти // ТекущееОкружение
-
-#Область СериализацияXML
-
-// См. пбп_ОбщегоНазначенияСервер.ЗначениеВСтрокуXML.
-Функция ЗначениеВСтрокуXML(Значение) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ЗначениеВСтрокуXML(Значение);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСервер.ЗначениеИзСтрокиXML.
-Функция ЗначениеИзСтрокиXML(СтрокаXML) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ЗначениеИзСтрокиXML(СтрокаXML);
-
-КонецФункции
-
-#КонецОбласти
-
-// См. пбп_ОбщегоНазначенияСервер.МенеджерОбъектаПоПолномуИмени.
-Функция МенеджерОбъектаПоПолномуИмени(ПолноеИмя) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСервер.МенеджерОбъектаПоСсылке.
-//
-Функция МенеджерОбъектаПоСсылке(Ссылка) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.МенеджерОбъектаПоСсылке(Ссылка);
-
-КонецФункции
-
-#Область Данные
-
-// См. пбп_ОбщегоНазначенияСервер.КонтрольнаяСуммаСтрокой.
-Функция КонтрольнаяСуммаСтрокой(Знач Данные, Знач Алгоритм = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.КонтрольнаяСуммаСтрокой(Данные, Алгоритм);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
- Возврат пбп_ОбщегоНазначенияПовтИсп.ПереадресацияОбщегоМодуля("ОбщегоНазначения", "пбп_ОбщегоНазначенияСервер");
-КонецФункции
-
-#КонецОбласти
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml"
deleted file mode 100644
index 61b1aac2..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml"
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- пбп_ОбщегоНазначенияСлужебныйКлиент
-
-
- ru
- Общего назначения служебный клиент
-
-
- en
- General purpose customer
-
-
-
- false
- true
- false
- false
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
deleted file mode 100644
index 10123b70..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ /dev/null
@@ -1,63 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-////////////////////////////////////////////////////////////////////////////////
-// Общего назначения (клиент) служебный: для клиентских функций общего назначения
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область ПереадресацияМетодов
-
-// См. пбп_ОбщегоНазначенияКлиент.СообщитьПользователю.
-Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено,
- Знач Поле = "", Знач ПутьКДанным = "", Отказ = Ложь) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.СообщитьПользователю(ТекстСообщенияПользователю, КлючДанных, Поле, ПутьКДанным, Отказ);
-
-КонецПроцедуры
-
-// См. пбп_ОбщегоНазначенияКлиент.ДатаУниверсальная.
-Функция ДатаУниверсальная() Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ДатаУниверсальная();
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияКлиент.ПредопределенныйЭлемент.
-Функция ПредопределенныйЭлемент(ПолноеИмяПредопределенного) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ПредопределенныйЭлемент(ПолноеИмяПредопределенного);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
- Возврат пбп_ОбщегоНазначенияКлиент.ОбщийМодуль("ОбщегоНазначенияКлиент", "пбп_ОбщегоНазначенияКлиент");
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
deleted file mode 100644
index 7087b1e9..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер
-
-
- ru
- Общего назначения служебный клиент сервер
-
-
- en
- Common client-server
-
-
-
- false
- true
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index 13e2bb18..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,312 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-////////////////////////////////////////////////////////////////////////////////
-// Общего назначения служебный (клиент) сервер: для клиентских и серверных функций общего назначения
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область ПереадресацияМетодов
-
-// См. пбп_ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы.
-Процедура УстановитьСвойствоЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства, Значение) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.УстановитьСвойствоЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства, Значение);
-
-КонецПроцедуры
-
-// См. пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры.
-Функция СвойствоСтруктуры(Структура, Ключ, ЗначениеПоУмолчанию = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.СвойствоСтруктуры(Структура, Ключ, ЗначениеПоУмолчанию);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьМассив.
-Процедура ДополнитьМассив(МассивПриемник, МассивИсточник, ТолькоУникальныеЗначения = Ложь) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.ДополнитьМассив(МассивПриемник, МассивИсточник, ТолькоУникальныеЗначения);
-
-КонецПроцедуры
-
-// См. пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвернутьМассив.
-Функция СвернутьМассив(Знач Массив) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.СвернутьМассив(Массив);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеСвойстваЭлементаФормы.
-Функция ЗначениеСвойстваЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ЗначениеСвойстваЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта.
-Функция ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьСтруктуру.
-Процедура ДополнитьСтруктуру(Приемник, Источник, Заменять = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.ДополнитьСтруктуру(Приемник, Источник, Заменять);
-
-КонецПроцедуры
-
-// См. пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве.
-Функция ЗначениеВМассиве(Знач Значение) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ЗначениеВМассиве(Значение);
-
-КонецФункции
-
-// См. пбп_ОбщегоНазначенияСлужебныйКлиентСервер.Проверить.
-Процедура Проверить(Знач Условие, Знач Сообщение = "", Знач КонтекстПроверки = "") Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.Проверить(Условие, Сообщение, КонтекстПроверки);
-
-КонецПроцедуры
-
-// См. пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЭтоЧисло.
-Функция ЭтоЧисло(Знач ПроверяемоеЗначение) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ЭтоЧисло(ПроверяемоеЗначение);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП.
-//
-Функция СообщениеПользователю(
- Знач ТекстСообщенияПользователю,
- Знач КлючДанных,
- Знач Поле,
- Знач ПутьКДанным = "",
- Отказ = Ложь,
- ЭтоОбъект = Ложь) Экспорт
-
- Сообщение = Новый СообщениеПользователю;
- Сообщение.Текст = ТекстСообщенияПользователю;
- Сообщение.Поле = Поле;
-
- Если ЭтоОбъект Тогда
- Сообщение.УстановитьДанные(КлючДанных);
- Иначе
- Сообщение.КлючДанных = КлючДанных;
- КонецЕсли;
-
- Если НЕ ПустаяСтрока(ПутьКДанным) Тогда
- Сообщение.ПутьКДанным = ПутьКДанным;
- КонецЕсли;
-
- Отказ = Истина;
-
- Возврат Сообщение;
-
-КонецФункции
-
-#Область ЗапускВнешнихПриложений
-
-// Аналог метода БСП. Параметры:
-// КомандаЗапуска - Строка
-//
-// Возвращаемое значение:
-// Строка
-//
-Функция БезопаснаяСтрокаКоманды(КомандаЗапуска) Экспорт
-
- Результат = "";
-
- Если ТипЗнч(КомандаЗапуска) = Тип("Строка") Тогда
-
- ПроверитьСодержитНебезопасныеДействия(КомандаЗапуска);
- Результат = КомандаЗапуска;
-
- ИначеЕсли ТипЗнч(КомандаЗапуска) = Тип("Массив") Тогда
-
- Если КомандаЗапуска.Количество() > 0 Тогда
- ПроверитьСодержитНебезопасныеДействия(КомандаЗапуска[0]);
- Результат = МассивВСтрокуКоманды(КомандаЗапуска);
- Иначе
- ВызватьИсключение пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Ожидалось, что первый элемент массива %1 будет командой или путем к исполняемому файлу.'"),
- "КомандаЗапуска");
- КонецЕсли;
-
- Иначе
- ВызватьИсключение пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Ожидалось, что значение %1 будет типа %2 или %3.'"),
- "КомандаЗапуска", "Строка", "Массив");
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти // МетодыАналогиБСП
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
-
- #Если Клиент Тогда
- Возврат пбп_ОбщегоНазначенияКлиент.ОбщийМодуль(
- "ОбщегоНазначенияКлиентСервер",
- "пбп_ОбщегоНазначенияКлиентСервер");
- #Иначе
- Возврат пбп_ОбщегоНазначенияВызовСервера.ПереадресацияОбщегоМодуля(
- "ОбщегоНазначенияКлиентСервер",
- "пбп_ОбщегоНазначенияКлиентСервер");
- #КонецЕсли
-
-КонецФункции
-
-#Область МетодыАналогиБСП
-
-#Если Не ВебКлиент И Не МобильныйКлиент Тогда
-
-Функция СтрокаЗапускаКомандыWindows(СтрокаКоманды, ТекущийКаталог, ДождатьсяЗавершения, КодировкаИсполнения) Экспорт
-
- НаборКоманд = "";
-
- Если ЗначениеЗаполнено(КодировкаИсполнения) Тогда
-
- Если КодировкаИсполнения = "OEM" Тогда
- КодировкаИсполнения = 437;
- ИначеЕсли КодировкаИсполнения = "CP866" Тогда
- КодировкаИсполнения = 866;
- ИначеЕсли КодировкаИсполнения = "UTF8" Тогда
- КодировкаИсполнения = 65001;
- КонецЕсли;
-
- НаборКоманд = "(chcp " + Формат(КодировкаИсполнения, "ЧГ=") + ")";
- КонецЕсли;
-
- Если Не ПустаяСтрока(ТекущийКаталог) Тогда
- НаборКоманд = НаборКоманд + ?(ЗначениеЗаполнено(НаборКоманд), "&&", "") + "(cd /D """ + ТекущийКаталог + """)";
- КонецЕсли;
- НаборКоманд = НаборКоманд + ?(ЗначениеЗаполнено(НаборКоманд), "&&", "") + "(" + СокрЛП(СтрокаКоманды) + ")";
-
- Возврат "cmd /S /C """ + НаборКоманд + """";
-
-КонецФункции
-
-#КонецЕсли
-
-#Область БезопаснаяСтрокаКоманды
-
-Функция СодержитНебезопасныеДействия(Знач СтрокаКоманды)
-
- Возврат СтрНайти(СтрокаКоманды, "${") <> 0
- Или СтрНайти(СтрокаКоманды, "$(") <> 0
- Или СтрНайти(СтрокаКоманды, "`") <> 0
- Или СтрНайти(СтрокаКоманды, "|") <> 0
- Или СтрНайти(СтрокаКоманды, ";") <> 0
- Или СтрНайти(СтрокаКоманды, "&") <> 0;
-
-КонецФункции
-
-Процедура ПроверитьСодержитНебезопасныеДействия(Знач КомандаЗапуска)
- Если СодержитНебезопасныеДействия(КомандаЗапуска) Тогда
- ВызватьИсключение пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Не удалось запустить программу.
- |Недопустимая строка команды
- |%1
- |
- |Строка команды не должна содержать символы: ""${"", ""$("", ""`"", ""|"", "";"", ""&"".'"),
- КомандаЗапуска);
- КонецЕсли;
-КонецПроцедуры
-
-Функция МассивВСтрокуКоманды(КомандаЗапуска)
-
- Результат = Новый Массив;
- НужныКавычки = Ложь;
- Для Каждого Аргумент Из КомандаЗапуска Цикл
-
- Если Результат.Количество() > 0 Тогда
- Результат.Добавить(" ");
- КонецЕсли;
-
- НужныКавычки = Аргумент = Неопределено
- Или ПустаяСтрока(Аргумент)
- Или СтрНайти(Аргумент, " ")
- Или СтрНайти(Аргумент, Символы.Таб)
- Или СтрНайти(Аргумент, "&")
- Или СтрНайти(Аргумент, "(")
- Или СтрНайти(Аргумент, ")")
- Или СтрНайти(Аргумент, "[")
- Или СтрНайти(Аргумент, "]")
- Или СтрНайти(Аргумент, "{")
- Или СтрНайти(Аргумент, "}")
- Или СтрНайти(Аргумент, "^")
- Или СтрНайти(Аргумент, "=")
- Или СтрНайти(Аргумент, ";")
- Или СтрНайти(Аргумент, "!")
- Или СтрНайти(Аргумент, "'")
- Или СтрНайти(Аргумент, "+")
- Или СтрНайти(Аргумент, ",")
- Или СтрНайти(Аргумент, "`")
- Или СтрНайти(Аргумент, "~")
- Или СтрНайти(Аргумент, "$")
- Или СтрНайти(Аргумент, "|");
-
- Если НужныКавычки Тогда
- Результат.Добавить("""");
- КонецЕсли;
-
- Результат.Добавить(СтрЗаменить(Аргумент, """", """"""));
-
- Если НужныКавычки Тогда
- Результат.Добавить("""");
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат СтрСоединить(Результат);
-
-КонецФункции
-
-#КонецОбласти // БезопаснаяСтрокаКоманды
-
-#КонецОбласти // МетодыАналогиБСП
-
-#КонецОбласти
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml"
similarity index 89%
rename from "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.xml"
rename to "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml"
index 7bc8199b..b65046d0 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.xml"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml"
@@ -1,12 +1,12 @@
-
+
- пбп_Пользователи
+ пбп_Переадресацияru
- Пользователи
+ Переадресация
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl"
new file mode 100644
index 00000000..3fd270ab
--- /dev/null
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl"
@@ -0,0 +1,3031 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
+// включая доработку типовых конфигураций.
+//
+// Copyright First BIT company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// URL: https://github.com/firstBitSportivnaya/PSSL/
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Область ПрограммныйИнтерфейс
+
+// Функция ОпределитьМодульПереадресации предназначена для проверки наличия общего модуля
+// БСП с указанным именем и получения этого модуля, если он существует.
+//
+// Параметры:
+// ИмяМодуля - Строка - имя общего модуля, который необходимо найти.
+//
+// Возвращаемое значение:
+// Структура - общий модуль и что он существует
+// * Модуль - ОбщийМодуль - общий модуль из БСП.
+// * МодульСуществует - Булево - Если флаг истина, модуль существует.
+//
+Функция ОпределитьМодульПереадресации(ИмяМодуля) Экспорт
+
+ Результат = Новый Структура("Модуль, МодульСуществует", , Ложь);
+
+ Если пбп_ОбщегоНазначенияПовтИсп.СуществуетБиблиотекаСтандартныхПодсистем()
+ И Метаданные.ОбщиеМодули.Найти(ИмяМодуля) <> Неопределено Тогда
+ Результат.Модуль = ОбщийМодуль(ИмяМодуля);
+ Результат.МодульСуществует = Истина;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+#Область ПереадресацияМетодов
+
+#Область ЖурналРегистрации
+
+// Аналог метода БСП. Записывает сообщение в журнал регистрации.
+//
+// Параметры:
+// ИмяСобытия - Строка - имя события для журнала регистрации.
+// Уровень - УровеньЖурналаРегистрации - уровни важности событий журнала регистрации.
+// ОбъектМетаданных - ОбъектМетаданных - объект метаданных, к которому относится событие.
+// Данные - ЛюбаяСсылка
+// - Число
+// - Строка
+// - Дата
+// - Булево
+// - Неопределено
+// - Тип - данные, с которыми связано событие.
+// Рекомендуется указывать ссылки на объекты данных (элементы справочников, документы, к которым
+// относится событие).
+// Комментарий - Строка - комментарий для события журнала.
+//
+Процедура ДобавитьСообщениеДляЖурналаРегистрации(Знач ИмяСобытия, Знач Уровень,
+ Знач ОбъектМетаданных = Неопределено, Знач Данные = Неопределено, Знач Комментарий = "") Экспорт
+
+ Результат = ПереадресацияМодуляЖурналРегистрации();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, Уровень, ОбъектМетаданных, Данные, Комментарий);
+ Возврат;
+ КонецЕсли;
+
+ Если ПустаяСтрока(ИмяСобытия) Тогда
+ ИмяСобытия = "Событие"; // не локализуется, чтобы не допускать остановки запуска в частично переведенной конфигурации
+ КонецЕсли;
+
+ ЗаписьЖурналаРегистрации(ИмяСобытия, Уровень,
+ ОбъектМетаданных, Данные, Комментарий, РежимТранзакцииЗаписиЖурналаРегистрации.Независимая);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбщегоНазначения
+
+// Аналог метода БСП. Определяет режим эксплуатации информационной базы файловый (Истина) или серверный (Ложь).
+// При проверке используется СтрокаСоединенияИнформационнойБазы, которую можно указать явно.
+//
+// Параметры:
+// СтрокаСоединенияИнформационнойБазы - Строка - параметр используется, если
+// нужно проверить строку соединения не текущей информационной базы.
+//
+// Возвращаемое значение:
+// Булево - Истина, если файловая.
+//
+Функция ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ИнформационнаяБазаФайловая(СтрокаСоединенияИнформационнойБазы);
+ КонецЕсли;
+
+ Если ПустаяСтрока(СтрокаСоединенияИнформационнойБазы) Тогда
+ СтрокаСоединенияИнформационнойБазы = СтрокаСоединенияИнформационнойБазы();
+ КонецЕсли;
+ Возврат СтрНайти(ВРег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1;
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает Истина, если функциональная подсистема существует в конфигурации.
+// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
+// У функциональной подсистемы снят флажок "Включать в командный интерфейс".
+// См. также ОбщегоНазначенияПереопределяемый.ПриОпределенииОтключенныхПодсистем
+// и ОбщегоНазначенияКлиент.ПодсистемаСуществует для вызова из клиентского кода.
+//
+// Параметры:
+// ПолноеИмяПодсистемы - Строка - полное имя объекта метаданных подсистема
+// без слов "Подсистема." и с учетом регистра символов.
+// Например: "СтандартныеПодсистемы.ВариантыОтчетов".
+//
+// Пример:
+// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда
+// МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов");
+// МодульВариантыОтчетов.<Имя метода>();
+// КонецЕсли;
+//
+// Возвращаемое значение:
+// Булево - Истина, если подсистема существует.
+//
+Функция ПодсистемаСуществует(ПолноеИмяПодсистемы) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ПодсистемаСуществует(ПолноеИмяПодсистемы);
+ КонецЕсли;
+
+ ИменаПодсистем = пбп_ПереадресацияПовтИсп.ИменаПодсистем();
+ Возврат ИменаПодсистем.Получить(ПолноеИмяПодсистемы) <> Неопределено;
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает ссылку на общий модуль или модуль менеджера по имени.
+//
+// Параметры:
+// Имя - Строка - имя общего модуля.
+//
+// Возвращаемое значение:
+// ОбщийМодуль
+// МодульМенеджераОбъекта
+//
+// Пример:
+// МодульОбновлениеКонфигурации = пбп_ОбщегоНазначенияСервер.ОбщийМодуль("ОбновлениеКонфигурации");
+// МодульОбновлениеКонфигурации.<Имя метода>();
+//
+// МодульПолнотекстовыйПоискСервер = пбп_ОбщегоНазначенияСервер.ОбщийМодуль("ПолнотекстовыйПоискСервер");
+// МодульПолнотекстовыйПоискСервер.<Имя метода>();
+//
+Функция ОбщийМодуль(Имя) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ОбщийМодуль(Имя);
+ КонецЕсли;
+
+ Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда
+ // BSLLS:ExecuteExternalCodeInCommonModule-off
+ // ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно.
+ УстановитьБезопасныйРежим(Истина);
+ Модуль = Вычислить(Имя);
+ // BSLLS:ExecuteExternalCodeInCommonModule-on
+ ИначеЕсли СтрЧислоВхождений(Имя, ".") = 1 Тогда
+ Возврат СерверныйМодульМенеджера(Имя);
+ Иначе
+ Модуль = Неопределено;
+ КонецЕсли;
+
+ Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Общий модуль ""%1"" не существует.'"),
+ Имя);
+ КонецЕсли;
+
+ Возврат Модуль;
+
+КонецФункции
+
+// Аналог метода БСП. Выполнить экспортную процедуру по имени с уровнем привилегий конфигурации.
+// При включении профилей безопасности для вызова оператора Выполнить() используется
+// переход в безопасный режим с профилем безопасности, используемым для информационной базы
+// (если выше по стеку не был установлен другой безопасный режим).
+//
+// Параметры:
+// ИмяМетода - Строка - имя экспортной процедуры в формате
+// <имя объекта>.<имя процедуры>, где <имя объекта> - это
+// общий модуль или модуль менеджера объекта.
+// Параметры - Массив - параметры передаются в процедуру <ИмяЭкспортнойПроцедуры>
+// в порядке расположения элементов массива.
+//
+// Пример:
+// Параметры = Новый Массив();
+// Параметры.Добавить("1");
+// ОбщегоНазначения.ВыполнитьМетодКонфигурации("МойОбщийМодуль.МояПроцедура", Параметры);
+//
+Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры);
+ Возврат;
+ КонецЕсли;
+
+ ПроверитьИмяПроцедурыКонфигурации(ИмяМетода);
+
+ УстановитьБезопасныйРежим(Истина);
+
+ ПараметрыСтрока = "";
+ Если Параметры <> Неопределено И Параметры.Количество() > 0 Тогда
+ Для Индекс = 0 По Параметры.ВГраница() Цикл
+ ПараметрыСтрока = ПараметрыСтрока + "Параметры[" + XMLСтрока(Индекс) + "],";
+ КонецЦикла;
+ ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1);
+ КонецЕсли;
+
+ Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
+
+КонецПроцедуры
+
+// Аналог метода БСП. Вызвать экспортную функцию по имени с уровнем привилегий конфигурации.
+// При включении профилей безопасности для вызова оператора Выполнить() используется
+// переход в безопасный режим с профилем безопасности, используемом для информационной базы
+// (если выше по стеку не был установлен другой безопасный режим).
+//
+// Параметры:
+// ИмяМетода - Строка - имя экспортной функции в формате
+// <имя объекта>.<имя процедуры>, где <имя объекта> - это
+// общий модуль или модуль менеджера объекта.
+// Параметры - Массив - параметры передаются в функцию <ИмяМетода>
+// в порядке расположения элементов массива.
+//
+// Возвращаемое значение:
+// Произвольный - результат вызываемой функции.
+//
+Функция ВызватьФункциюКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ВызватьФункциюКонфигурации(ИмяМетода, Параметры);
+ КонецЕсли;
+
+ ПроверитьИмяПроцедурыКонфигурации(ИмяМетода);
+
+ Если ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда
+ МодульРаботаВБезопасномРежиме = ОбщийМодуль("РаботаВБезопасномРежиме");
+ Если МодульРаботаВБезопасномРежиме.ИспользуютсяПрофилиБезопасности()
+ И Не МодульРаботаВБезопасномРежиме.УстановленБезопасныйРежим() Тогда
+
+ ПрофильИнформационнойБазы = МодульРаботаВБезопасномРежиме.ПрофильБезопасностиИнформационнойБазы();
+ Если ЗначениеЗаполнено(ПрофильИнформационнойБазы) Тогда
+
+ // BSLLS:DisableSafeMode-off
+ УстановитьБезопасныйРежим(ПрофильИнформационнойБазы);
+ // BSLLS:DisableSafeMode-on
+ Если БезопасныйРежим() = Истина Тогда
+ // BSLLS:DisableSafeMode-off
+ УстановитьБезопасныйРежим(Ложь);
+ // BSLLS:DisableSafeMode-on
+ КонецЕсли;
+
+ КонецЕсли;
+
+ КонецЕсли;
+ КонецЕсли;
+
+ ПараметрыСтрока = "";
+ Если Параметры <> Неопределено И Параметры.Количество() > 0 Тогда
+ Для Индекс = 0 По Параметры.ВГраница() Цикл
+ ПараметрыСтрока = ПараметрыСтрока + "Параметры[" + XMLСтрока(Индекс) + "],";
+ КонецЦикла;
+ ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1);
+ КонецЕсли;
+
+ // BSLLS:ExecuteExternalCodeInCommonModule-off
+ Возврат Вычислить(ИмяМетода + "(" + ПараметрыСтрока + ")"); // АПК:488 Исполняемый код безопасен.
+ // BSLLS:ExecuteExternalCodeInCommonModule-on
+
+КонецФункции
+
+// Аналог метода БСП. Вычисляет переданное выражение, предварительно устанавливая безопасный режим выполнения кода
+// и безопасный режим разделения данных для всех разделителей, присутствующих в составе конфигурации.
+//
+// Параметры:
+// Выражение - Строка - выражение на встроенном языке 1С:Предприятия.
+// Параметры - Произвольный - контекст, который требуется для вычисления выражения.
+// В тексте выражения обращение к контексту должно происходить по имени "Параметры".
+// Например, выражение "Параметры.Значение1 = Параметры.Значение2" обращается к значениям
+// "Значение1" и "Значение2" переданные в Параметры, как свойства.
+//
+// Возвращаемое значение:
+// Произвольный - результат вычисления выражения.
+//
+// Пример:
+//
+// // Пример 1
+// Параметры = Новый Структура;
+// Параметры.Вставить("Значение1", 1);
+// Параметры.Вставить("Значение2", 10);
+// Результат = ОбщегоНазначения.ВычислитьВБезопасномРежиме("Параметры.Значение1 = Параметры.Значение2", Параметры);
+//
+// // Пример 2
+// Результат = ОбщегоНазначения.ВычислитьВБезопасномРежиме("СтандартныеПодсистемыСервер.ВерсияБиблиотеки()");
+//
+Функция ВычислитьВБезопасномРежиме(Знач Выражение, Знач Параметры = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ВычислитьВБезопасномРежиме(Выражение, Параметры);
+ КонецЕсли;
+
+ УстановитьБезопасныйРежим(Истина);
+
+ Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
+ МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса");
+ МассивРазделителей = МодульРаботаВМоделиСервиса.РазделителиКонфигурации();
+ Иначе
+ МассивРазделителей = Новый Массив;
+ КонецЕсли;
+
+ Для Каждого ИмяРазделителя Из МассивРазделителей Цикл
+
+ УстановитьБезопасныйРежимРазделенияДанных(ИмяРазделителя, Истина);
+
+ КонецЦикла;
+
+ Возврат Вычислить(Выражение);
+
+КонецФункции
+
+// Аналог метода БСП. Записывает конфиденциальные данные в безопасное хранилище.
+// Вызывающий код должен самостоятельно устанавливать привилегированный режим.
+//
+// Безопасное хранилище недоступно для чтения пользователям (кроме администраторов),
+// а доступно только коду, который делает обращения только к своей части данных и
+// в том контексте, который предполагает чтение или запись конфиденциальных данных.
+//
+// Параметры:
+// Владелец - ПланОбменаСсылка
+// - СправочникСсылка
+// - Строка - ссылка на объект информационной базы,
+// представляющий объект-владелец сохраняемого пароля или строка до 128 символов.
+// Для объектов других типов в качестве владельца рекомендуется использовать ссылку на
+// элемент метаданных этого типа в справочнике ИдентификаторыОбъектовМетаданных
+// или ключ в виде строки с учетом имен подсистем.
+// Например, для БСП:
+// Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("РегистрСведений.АдресныеОбъекты");
+// если нужно 1 хранилище на подсистему БСП:
+// Владелец = "СтандартныеПодсистемы.УправлениеДоступом";
+// если нужно более 1 хранилища на подсистему БСП:
+// Владелец = "СтандартныеПодсистемы.УправлениеДоступом.<Уточнение>";
+// Данные - Произвольный - данные помещаемые в безопасное хранилище. Неопределенно - удаляет все данные.
+// Для удаления данных по ключу следует использовать процедуру УдалитьДанныеИзБезопасногоХранилища.
+// - Структура - если параметр Ключ содержит Неопределено. Подробнее см. описание параметра Ключ
+// Ключ - Строка - ключ сохраняемых настроек, по умолчанию "Пароль".
+// Ключ должен соответствовать правилам имен идентификаторов:
+// 1. Первым символом ключа должна быть буква или символ подчеркивания (_).
+// 2. Каждый из последующих символов может быть буквой, цифрой или символом подчеркивания (_).
+// Неопределено - для добавления набора данных структурой, где ключ структуры - это имя ключа данных,
+// а значение - сохраняемые данные. Пример использования см. ниже.
+//
+// Пример:
+//
+// Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
+// Если ТекущийПользовательМожетИзменятьПароль Тогда
+// УстановитьПривилегированныйРежим(Истина);
+// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Логин, "Логин");
+// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Пароль);
+// УстановитьПривилегированныйРежим(Ложь);
+// КонецЕсли;
+// КонецПроцедуры
+//
+// Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
+// Если ТекущийПользовательМожетИзменятьПароль Тогда
+// ЛогинИПароль = Новый Структура;
+// ЛогинИПароль.Вставить("Логин", Логин);
+// ЛогинИПароль.Вставить("Пароль", Пароль);
+// УстановитьПривилегированныйРежим(Истина);
+// ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, ЛогинИПароль, Неопределено);
+// УстановитьПривилегированныйРежим(Ложь);
+// КонецЕсли;
+// КонецПроцедуры
+//
+Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ);
+ Возврат;
+ КонецЕсли;
+
+ пбп_ПереадресацияКлиентСервер.Проверить(ЗначениеЗаполнено(Владелец),
+ пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Недопустимое значение параметра %1 в %2.
+ |параметр должен содержать ссылку; передано значение: %3 (тип %4).'"),
+ "Владелец", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Владелец, ТипЗнч(Владелец)));
+
+ Если ЗначениеЗаполнено(Ключ) Тогда
+
+ пбп_ПереадресацияКлиентСервер.Проверить(ТипЗнч(Ключ) = Тип("Строка"),
+ пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Недопустимое значение параметра %1 в %2.
+ |параметр должен содержать строку; передано значение: %3 (тип %4).'"),
+ "Ключ", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Ключ, ТипЗнч(Ключ)));
+
+ Иначе
+
+ пбп_ПереадресацияКлиентСервер.Проверить(ТипЗнч(Данные) = Тип("Структура"),
+ пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Недопустимое значение параметра %1 в %2.
+ |Если Ключ = Неопределено, то параметр должен содержать структуру; передано значение: %3 (тип %4).'"),
+ "Данные", "ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище", Данные, ТипЗнч(Данные)));
+
+ КонецЕсли;
+
+ // Загулшка.
+ // Перенаправление в хранилище общих настроек, не используется регистр сведений БезопасноеХранилищеДанных
+ ХранилищеОбщихНастроекСохранить(Владелец, Ключ, Данные);
+ Возврат;
+ // Загулшка
+
+КонецПроцедуры
+
+// Аналог метода БСП. Возвращает данные из безопасного хранилища.
+// Вызывающий код должен самостоятельно устанавливать привилегированный режим.
+//
+// Безопасное хранилище недоступно для чтения пользователям (кроме администраторов),
+// а доступно только коду, который делает обращения только к своей части данных и
+// в том контексте, который предполагает чтение или запись конфиденциальных данных.
+//
+// Параметры:
+// Владелец - ПланОбменаСсылка
+// - СправочникСсылка
+// - Строка - ссылка на объект информационной базы,
+// представляющий объект-владелец сохраняемого пароля или уникальная строка(до 128 символов).
+// Ключи - Строка - содержит список имен сохраненных данных, указанных через запятую.
+// - Неопределено - будут возвращены все сохраненные данные владельца.
+// ОбщиеДанные - Булево - Истина, если требуется в модели сервиса получить данные из общих данных в разделенном режиме.
+//
+// Возвращаемое значение:
+// Произвольный, Структура, Неопределено - данные из безопасного хранилища. Если указан один ключ,
+// то возвращается его значение, иначе структура.
+// Если данные отсутствуют - Неопределенно.
+//
+// Пример:
+// Если ТекущийПользовательМожетИзменятьПароль Тогда
+// УстановитьПривилегированныйРежим(Истина);
+// Логин = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка, "Логин");
+// Пароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка);
+// УстановитьПривилегированныйРежим(Ложь);
+// Иначе
+// Элементы.ГруппаЛогинИПароль.Видимость = Ложь;
+// КонецЕсли;
+//
+// УстановитьПривилегированныйРежим(Истина);
+// ЛогинИПароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийОбъект.Ссылка, Неопределено);
+//
+Функция ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи, ОбщиеДанные);
+ КонецЕсли;
+
+ // Загулшка.
+ // Перенаправление в хранилище общих настроек, не используется регистр сведений БезопасноеХранилищеДанных
+ Результат = ХранилищеОбщихНастроекЗагрузить(Владелец, Ключи, ОбщиеДанные);
+ Возврат Результат;
+ // Загулшка
+
+КонецФункции
+
+// Аналог метода БСП. Формирует и выводит сообщение, которое может быть связано с элементом управления формы.
+//
+// В фоновом задании длительной операции, если вызов выполнен вне транзакции,
+// сообщение записывается в служебный регистр и отправляется сразу на клиент,
+// если подключена система взаимодействия.
+// В конце фонового задания длительной операции, а также при отправке прогресса,
+// все сообщения извлекаются из очереди сообщений фонового задания,
+// записываются в служебный регистр и отправляются сразу на клиент,
+// если подключена система взаимодействия.
+//
+// АПК:142-выкл 4 необязательных параметра для совместимости
+// с устаревшей процедурой ОбщегоНазначенияКлиентСервер.СообщитьПользователю.
+//
+// Параметры:
+// ТекстСообщенияПользователю - Строка - текст сообщения.
+// КлючДанных - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится.
+// Поле - Строка - наименование реквизита формы.
+// ПутьКДанным - Строка - путь к данным (путь к реквизиту формы).
+// Отказ - Булево - выходной параметр, всегда устанавливается в значение Истина.
+//
+// Пример:
+//
+// 1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта:
+// ОбщегоНазначения.СообщитьПользователю(
+// НСтр("ru = 'Сообщение об ошибке.'"), ,
+// "ПолеВРеквизитеФормыОбъект",
+// "Объект");
+//
+// Альтернативный вариант использования в форме объекта:
+// ОбщегоНазначения.СообщитьПользователю(
+// НСтр("ru = 'Сообщение об ошибке.'"), ,
+// "Объект.ПолеВРеквизитеФормыОбъект");
+//
+// 2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы:
+// ОбщегоНазначения.СообщитьПользователю(
+// НСтр("ru = 'Сообщение об ошибке.'"), ,
+// "ИмяРеквизитаФормы");
+//
+// 3. Для вывода сообщения связанного с объектом информационной базы:
+// ОбщегоНазначения.СообщитьПользователю(
+// НСтр("ru = 'Сообщение об ошибке.'"), ОбъектИнформационнойБазы, "Ответственный",,Отказ);
+//
+// 4. Для вывода сообщения по ссылке на объект информационной базы:
+// ОбщегоНазначения.СообщитьПользователю(
+// НСтр("ru = 'Сообщение об ошибке.'"), Ссылка, , , Отказ);
+//
+// Случаи некорректного использования:
+// 1. Передача одновременно параметров КлючДанных и ПутьКДанным.
+// 2. Передача в параметре КлючДанных значения типа отличного от допустимого.
+// 3. Установка ссылки без установки поля (и/или пути к данным).
+//
+Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, Знач Поле = "",
+ Знач ПутьКДанным = "", Отказ = Ложь) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.СообщитьПользователю(ТекстСообщенияПользователю, КлючДанных, Поле, ПутьКДанным, Отказ);
+ Возврат;
+ КонецЕсли;
+
+ ЭтоОбъект = Ложь;
+
+ Если КлючДанных <> Неопределено
+ И XMLТипЗнч(КлючДанных) <> Неопределено Тогда
+
+ ТипЗначенияСтрокой = XMLТипЗнч(КлючДанных).ИмяТипа;
+ ЭтоОбъект = СтрНайти(ТипЗначенияСтрокой, "Object.") > 0;
+ КонецЕсли;
+
+ Сообщение = пбп_ПереадресацияКлиентСервер.СообщениеПользователю(ТекстСообщенияПользователю,
+ КлючДанных, Поле, ПутьКДанным, Отказ, ЭтоОбъект);
+
+ Сообщение.Сообщить();
+
+КонецПроцедуры
+
+// Аналог метода БСП. Сокращает строку до нужной длины, при этом обрезанная часть хешируется,
+// обеспечивая уникальность строки. Проверяет длину строки на входе и, в случае
+// превышения максимальной длины, преобразует ее конец по алгоритму MD5 в
+// уникальную строку из 32 символов.
+//
+// Параметры:
+// Строка - Строка - исходная строка произвольной длины.
+// МаксимальнаяДлина - Число - требуемое максимальное количество символов в строке,
+// минимальное значение: 32.
+//
+// Возвращаемое значение:
+// Строка - строка, не превышающая максимальную длину.
+//
+Функция СократитьСтрокуКонтрольнойСуммой(Строка, МаксимальнаяДлина) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.СократитьСтрокуКонтрольнойСуммой(Строка, МаксимальнаяДлина);
+ КонецЕсли;
+
+ Если МаксимальнаяДлина < 32 Тогда
+ пбп_ПереадресацияКлиентСервер.Проверить(Ложь,
+ пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Параметр %1 не может быть меньше 32.'"),
+ "МаксимальнаяДлина"), "ОбщегоНазначения.СократитьСтрокуКонтрольнойСуммой");
+ КонецЕсли;
+
+ Результат = Строка;
+ Если СтрДлина(Строка) > МаксимальнаяДлина Тогда
+ Результат = Лев(Строка, МаксимальнаяДлина - 32);
+ ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5);
+ ХешированиеДанных.Добавить(Сред(Строка, МаксимальнаяДлина - 32 + 1));
+ Результат = Результат + СтрЗаменить(ХешированиеДанных.ХешСумма, " ", "");
+ КонецЕсли;
+ Возврат Результат;
+
+КонецФункции
+
+#Область ХранилищеНастроек
+
+// Аналог метода БСП. Загружает настройку из хранилища общих настроек, как метод платформы Загрузить,
+// объектов СтандартноеХранилищеНастроекМенеджер или ХранилищеНастроекМенеджер.<Имя хранилища>,
+// но с поддержкой длины ключа настроек более 128 символов путем хеширования части,
+// которая превышает 96 символов.
+// Кроме того, возвращает указанное значение по умолчанию, если настройки не существуют.
+// Если нет права СохранениеДанныхПользователя, возвращается значение по умолчанию без ошибки.
+//
+// В возвращаемом значении очищаются ссылки на несуществующий объект в базе данных, а именно
+// - возвращаемая ссылка заменяется на указанное значение по умолчанию;
+// - из данных типа Массив ссылки удаляются;
+// - у данных типа Структура и Соответствие ключ не меняется, а значение устанавливается Неопределено;
+// - анализ значений в данных типа Массив, Структура, Соответствие выполняется рекурсивно.
+//
+// Параметры:
+// КлючОбъекта - Строка - см. синтакс-помощник платформы.
+// КлючНастроек - Строка - см. синтакс-помощник платформы.
+// ЗначениеПоУмолчанию - Произвольный - значение, которое возвращается, если настройки не существуют.
+// Если не указано, возвращается значение Неопределено.
+// ОписаниеНастроек - ОписаниеНастроек - см. синтакс-помощник платформы.
+// ИмяПользователя - Строка - см. синтакс-помощник платформы.
+//
+// Возвращаемое значение:
+// Произвольный - см. синтакс-помощник платформы.
+//
+Функция ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию = Неопределено,
+ ОписаниеНастроек = Неопределено, ИмяПользователя = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ХранилищеОбщихНастроекЗагрузить(
+ КлючОбъекта,
+ КлючНастроек,
+ ЗначениеПоУмолчанию,
+ ОписаниеНастроек,
+ ИмяПользователя);
+ КонецЕсли;
+
+ Возврат ХранилищеЗагрузить(ХранилищеОбщихНастроек,
+ КлючОбъекта,
+ КлючНастроек,
+ ЗначениеПоУмолчанию,
+ ОписаниеНастроек,
+ ИмяПользователя);
+
+КонецФункции
+
+// Аналог метода БСП. Сохраняет настройку в хранилище общих настроек, как метод платформы Сохранить,
+// объектов СтандартноеХранилищеНастроекМенеджер или ХранилищеНастроекМенеджер.<Имя хранилища>,
+// но с поддержкой длины ключа настроек более 128 символов путем хеширования части,
+// которая превышает 96 символов.
+// Если нет права СохранениеДанныхПользователя, сохранение пропускается без ошибки.
+//
+// Параметры:
+// КлючОбъекта - Строка - см. синтакс-помощник платформы.
+// КлючНастроек - Строка - см. синтакс-помощник платформы.
+// Настройки - Произвольный - см. синтакс-помощник платформы.
+// ОписаниеНастроек - ОписаниеНастроек - см. синтакс-помощник платформы.
+// ИмяПользователя - Строка - см. синтакс-помощник платформы.
+// ОбновитьПовторноИспользуемыеЗначения - Булево - выполнить одноименный метод платформы.
+//
+Процедура ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки,
+ ОписаниеНастроек = Неопределено,
+ ИмяПользователя = Неопределено,
+ ОбновитьПовторноИспользуемыеЗначения = Ложь) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.ХранилищеОбщихНастроекСохранить(
+ КлючОбъекта,
+ КлючНастроек,
+ Настройки,
+ ОписаниеНастроек,
+ ИмяПользователя,
+ ОбновитьПовторноИспользуемыеЗначения);
+ Возврат;
+ КонецЕсли;
+
+ ХранилищеСохранить(ХранилищеОбщихНастроек,
+ КлючОбъекта,
+ КлючНастроек,
+ Настройки,
+ ОписаниеНастроек,
+ ИмяПользователя,
+ ОбновитьПовторноИспользуемыеЗначения);
+
+КонецПроцедуры
+
+// Аналог метода БСП. Удаляет настройку из хранилища общих настроек, как метод платформы Удалить,
+// объектов СтандартноеХранилищеНастроекМенеджер или ХранилищеНастроекМенеджер.<Имя хранилища>,
+// но с поддержкой длины ключа настроек более 128 символов путем хеширования части,
+// которая превышает 96 символов.
+// Если нет права СохранениеДанныхПользователя, удаление пропускается без ошибки.
+//
+// Параметры:
+// КлючОбъекта - Строка
+// - Неопределено - см. синтакс-помощник платформы.
+// КлючНастроек - Строка
+// - Неопределено - см. синтакс-помощник платформы.
+// ИмяПользователя - Строка
+// - Неопределено - см. синтакс-помощник платформы.
+//
+Процедура ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя);
+ Возврат;
+ КонецЕсли;
+
+ ХранилищеУдалить(ХранилищеОбщихНастроек,
+ КлючОбъекта,
+ КлючНастроек,
+ ИмяПользователя);
+
+ КонецПроцедуры
+
+#КонецОбласти
+
+// Аналог метода БСП. Возвращает структуру, содержащую значения реквизитов, прочитанные из информационной базы по ссылке на объект.
+// Рекомендуется использовать вместо обращения к реквизитам объекта через точку от ссылки на объект
+// для быстрого чтения отдельных реквизитов объекта из базы данных.
+//
+// Если необходимо зачитать реквизит независимо от прав текущего пользователя,
+// то следует использовать предварительный переход в привилегированный режим.
+//
+// Параметры:
+// Ссылка - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить.
+// - Строка - полное имя предопределенного элемента, значения реквизитов которого необходимо получить.
+// Реквизиты - Строка - имена реквизитов, перечисленные через запятую, в формате
+// требований к свойствам структуры.
+// Например, "Код, Наименование, Родитель".
+// - Структура
+// - ФиксированнаяСтруктура - в качестве ключа передается
+// псевдоним поля для возвращаемой структуры с результатом, а в качестве
+// значения (опционально) фактическое имя поля в таблице.
+// Если ключ задан, а значение не определено, то имя поля берется из ключа.
+// Допускается указание имени поля через точку, но при этом параметр КодЯзыка для такого поля
+// учитываться не будет.
+// - Массив из Строка
+// - ФиксированныйМассив из Строка - имена реквизитов в формате требований к свойствам структуры.
+// ВыбратьРазрешенные - Булево - если Истина, то запрос к объекту выполняется с учетом прав пользователя;
+// если есть ограничение на уровне записей, то все реквизиты вернутся со
+// значением Неопределено; если нет прав для работы с таблицей, то возникнет исключение;
+// если Ложь, то возникнет исключение при отсутствии прав на таблицу
+// или любой из реквизитов.
+// КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации.
+//
+// Возвращаемое значение:
+// Структура - содержит имена (ключи) и значения затребованных реквизитов.
+// Если в параметр Реквизиты передана пустая строка, то возвращается пустая структура.
+// Если в параметр Ссылка передана пустая ссылка, то возвращается структура,
+// соответствующая именам реквизитов со значениями Неопределено.
+// Если в параметр Ссылка передана ссылка несуществующего объекта (битая ссылка),
+// то все реквизиты вернутся со значением Неопределено.
+//
+Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЗначенияРеквизитовОбъекта(Ссылка, Реквизиты, ВыбратьРазрешенные, КодЯзыка);
+ КонецЕсли;
+
+ // Если передано имя предопределенного.
+ Если ТипЗнч(Ссылка) = Тип("Строка") Тогда
+
+ ПолноеИмяПредопределенногоЭлемента = Ссылка;
+
+ // Вычисление ссылки по имени предопределенного.
+ // - дополнительно выполняет проверку метаданных предопределенного, выполняется предварительно.
+ Попытка
+ Ссылка = ПредопределенноеЗначение(ПолноеИмяПредопределенногоЭлемента);
+ Исключение
+ ТекстОшибки = пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неверный первый параметр %1 в функции %2:
+ |%3'"), "Ссылка", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта",
+ ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
+ ВызватьИсключение ТекстОшибки;
+ КонецПопытки;
+
+ // Разбор полного имени предопределенного.
+ ЧастиПолногоИмени = СтрРазделить(ПолноеИмяПредопределенногоЭлемента, ".");
+ ПолноеИмяОбъектаМетаданных = ЧастиПолногоИмени[0] + "." + ЧастиПолногоИмени[1];
+
+ // Если предопределенный не создан в ИБ, то требуется выполнить проверку доступа к объекту.
+ // В других сценариях проверка доступа выполняется в момент исполнения запроса.
+ Если Ссылка = Неопределено Тогда
+ МетаданныеОбъекта = ОбъектМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных);
+ Если Не ПравоДоступа("Чтение", МетаданныеОбъекта) Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Недостаточно прав для работы с таблицей ""%1""'"), ПолноеИмяОбъектаМетаданных);
+ КонецЕсли;
+ КонецЕсли;
+
+ Иначе // Если передана ссылка.
+
+ Попытка
+ ПолноеИмяОбъектаМетаданных = Ссылка.Метаданные().ПолноеИмя();
+ Исключение
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неверный первый параметр %1 в функции %2:
+ |Значение должно быть ссылкой или именем предопределенного элемента.'"),
+ "Ссылка", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта");
+ КонецПопытки;
+
+ КонецЕсли;
+
+ // Разбор реквизитов, если второй параметр Строка.
+ Если ТипЗнч(Реквизиты) = Тип("Строка") Тогда
+ Если ПустаяСтрока(Реквизиты) Тогда
+ Возврат Новый Структура;
+ КонецЕсли;
+
+ Реквизиты = СтрРазделить(Реквизиты, ",", Ложь);
+ Для Индекс = 0 По Реквизиты.ВГраница() Цикл
+ Реквизиты[Индекс] = СокрЛП(Реквизиты[Индекс]);
+ КонецЦикла;
+ КонецЕсли;
+
+ // Приведение реквизитов к единому формату.
+ СтруктураПолей = Новый Структура;
+ Если ТипЗнч(Реквизиты) = Тип("Структура")
+ Или ТипЗнч(Реквизиты) = Тип("ФиксированнаяСтруктура") Тогда
+
+ Для Каждого КлючИЗначение Из Реквизиты Цикл
+ СтруктураПолей.Вставить(КлючИЗначение.Ключ, СокрЛП(КлючИЗначение.Значение));
+ КонецЦикла;
+
+ ИначеЕсли ТипЗнч(Реквизиты) = Тип("Массив")
+ Или ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда
+
+ Для Каждого Реквизит Из Реквизиты Цикл
+ Реквизит = СокрЛП(Реквизит);
+ Попытка
+ ПсевдонимПоля = СтрЗаменить(Реквизит, ".", "");
+ СтруктураПолей.Вставить(ПсевдонимПоля, Реквизит);
+ Исключение
+ // Если псевдоним не является ключом.
+
+ // Поиск ошибки доступности полей.
+ Результат = ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, Реквизиты);
+ Если Результат.Ошибка Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неверный второй параметр %1 в функции %2: %3'"),
+ "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта", Результат.ОписаниеОшибки);
+ КонецЕсли;
+
+ // Не удалось распознать ошибку, проброс первичной ошибки.
+ ВызватьИсключение;
+
+ КонецПопытки;
+ КонецЦикла;
+ Иначе
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неверный тип второго параметра %1 в функции %2: %3.'"),
+ "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта", Строка(ТипЗнч(Реквизиты)));
+ КонецЕсли;
+
+ // Подготовка результата (после выполнения запроса переопределится).
+ Результат = Новый Структура;
+
+ // Формирование текста запроса к выбираемым полям.
+ ТекстЗапросаПолей = "";
+ Для каждого КлючИЗначение Из СтруктураПолей Цикл
+
+ ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
+ КлючИЗначение.Значение,
+ КлючИЗначение.Ключ);
+ ПсевдонимПоля = КлючИЗначение.Ключ;
+
+ ТекстЗапросаПолей =
+ ТекстЗапросаПолей + ?(ПустаяСтрока(ТекстЗапросаПолей), "", ",") + "
+ | " + ИмяПоля + " КАК " + ПсевдонимПоля;
+
+ // Предварительное добавление поля по псевдониму в возвращаемый результат.
+ Результат.Вставить(ПсевдонимПоля);
+
+ КонецЦикла;
+
+ // Если предопределенного нет в ИБ.
+ // - приведение результата к отсутствию объекта в ИБ или передаче пустой ссылки.
+ Если Ссылка = Неопределено Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Если Тип("Структура") = ТипЗнч(Реквизиты)
+ Или Тип("ФиксированнаяСтруктура") = ТипЗнч(Реквизиты) Тогда
+ Реквизиты = Новый Массив;
+ Для Каждого КлючИЗначение Из СтруктураПолей Цикл
+ ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
+ КлючИЗначение.Значение,
+ КлючИЗначение.Ключ);
+ Реквизиты.Добавить(ИмяПоля);
+ КонецЦикла;
+ КонецЕсли;
+
+ РеквизитыЧерезТочку = Новый Массив;
+ Для Индекс = -Реквизиты.ВГраница() По 0 Цикл
+ ИмяПоля = Реквизиты[-Индекс];
+ Если СтрНайти(ИмяПоля, ".") Тогда
+ РеквизитыЧерезТочку.Добавить(ИмяПоля);
+ Реквизиты.Удалить(-Индекс);
+ КонецЕсли;
+ КонецЦикла;
+
+ Если ЗначениеЗаполнено(Реквизиты) Тогда
+ ЗначенияРеквизитовОбъекта = ЗначенияРеквизитовОбъектов(
+ пбп_ПереадресацияКлиентСервер.ЗначениеВМассиве(Ссылка),
+ Реквизиты, ВыбратьРазрешенные,
+ КодЯзыка)[Ссылка];
+ Если ЗначенияРеквизитовОбъекта <> Неопределено Тогда
+ Для Каждого КлючИЗначение Из СтруктураПолей Цикл
+ ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
+ КлючИЗначение.Значение,
+ КлючИЗначение.Ключ);
+ Если СтрНайти(ИмяПоля, ".") = 0 И ЗначенияРеквизитовОбъекта.Свойство(ИмяПоля) Тогда
+ Результат[КлючИЗначение.Ключ] = ЗначенияРеквизитовОбъекта[ИмяПоля];
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+ КонецЕсли;
+
+ Если Не ЗначениеЗаполнено(РеквизитыЧерезТочку) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Реквизиты = РеквизитыЧерезТочку;
+
+ ТекстЗапроса =
+ "ВЫБРАТЬ РАЗРЕШЕННЫЕ
+ |&ТекстЗапросаПолей
+ |ИЗ
+ | &ПолноеИмяОбъектаМетаданных КАК ПсевдонимЗаданнойТаблицы
+ |ГДЕ
+ | ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка";
+
+ Если Не ВыбратьРазрешенные Тогда
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1
+ КонецЕсли;
+
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстЗапросаПолей", ТекстЗапросаПолей);
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъектаМетаданных", ПолноеИмяОбъектаМетаданных);
+
+ // Выполнение запроса.
+ Запрос = Новый Запрос;
+ Запрос.УстановитьПараметр("Ссылка", Ссылка);
+ Запрос.Текст = ТекстЗапроса;
+
+ Попытка
+ Выборка = Запрос.Выполнить().Выбрать();
+ Исключение
+
+ // Если реквизиты были переданы строкой, то они уже конвертированы в массив.
+ // Если реквизиты - массив, оставляем без изменений.
+ // Если реквизиты - структура - конвертируем в массив.
+ // В остальных случаях уже было бы выброшено исключение.
+ Если Тип("Структура") = ТипЗнч(Реквизиты)
+ Или Тип("ФиксированнаяСтруктура") = ТипЗнч(Реквизиты) Тогда
+ Реквизиты = Новый Массив;
+ Для каждого КлючИЗначение Из СтруктураПолей Цикл
+ ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
+ КлючИЗначение.Значение,
+ КлючИЗначение.Ключ);
+ Реквизиты.Добавить(ИмяПоля);
+ КонецЦикла;
+ КонецЕсли;
+
+ // Поиск ошибки доступности полей.
+ Результат = ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, Реквизиты);
+ Если Результат.Ошибка Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неверный второй параметр %1 в функции %2: %3'"),
+ "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъекта", Результат.ОписаниеОшибки);
+ КонецЕсли;
+
+ // Не удалось распознать ошибку, проброс первичной ошибки.
+ ВызватьИсключение;
+
+ КонецПопытки;
+
+ // Заполнение реквизитов.
+ Если Выборка.Следующий() Тогда
+ ЗаполнитьЗначенияСвойств(Результат, Выборка);
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Аналог меотда БСП Возвращает код основного языка информационной базы, например "ru".
+// На котором программно записываются автогенерируемые строки в информационную базу.
+// Например, при начальном заполнении информационной базы данными из макета, автогенерации комментария
+// к проводке или определении значения параметра ИмяСобытия метода ЗаписьЖурналаРегистрации.
+//
+// Возвращаемое значение:
+// Строка
+//
+Функция КодОсновногоЯзыка() Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.КодОсновногоЯзыка();
+ КонецЕсли;
+
+ Если ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщийМодуль("МультиязычностьСервер");
+ Возврат МодульМультиязычностьСервер.КодОсновногоЯзыка();
+ КонецЕсли;
+
+ Возврат Метаданные.ОсновнойЯзык.КодЯзыка;
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает значения реквизитов, прочитанные из информационной базы для нескольких объектов.
+// Рекомендуется использовать вместо обращения к реквизитам объекта через точку от ссылки на объект
+// для быстрого чтения отдельных реквизитов объекта из базы данных.
+//
+// Если необходимо зачитать реквизит независимо от прав текущего пользователя,
+// то следует использовать предварительный переход в привилегированный режим.
+//
+// Если передано имя несуществующего реквизита, то вызывается исключение "Поле объекта не существует".
+//
+// Параметры:
+// Ссылки - Массив из ЛюбаяСсылка
+// - ФиксированныйМассив из ЛюбаяСсылка - ссылки на объекты.
+// Если массив пуст, то результатом будет пустое соответствие.
+// Реквизиты - Строка - имена реквизитов перечисленные через запятую, в формате требований к свойствам
+// структуры. Например, "Код, Наименование, Родитель".
+// - Массив из Строка
+// - ФиксированныйМассив из Строка - имена реквизитов в формате требований к свойствам структуры.
+// ВыбратьРазрешенные - Булево - если Истина, то запрос к объектам выполняется с учетом прав пользователя;
+// если какой-либо объект будет исключен из выборки по правам, то этот объект
+// будет исключен и из результата;
+// если Ложь, то возникнет исключение при отсутствии прав на таблицу
+// или любой из реквизитов.
+// КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации.
+//
+// Возвращаемое значение:
+// Соответствие из КлючИЗначение - список объектов и значений их реквизитов:
+// * Ключ - ЛюбаяСсылка - ссылка на объект;
+// * Значение - Структура:
+// ** Ключ - Строка - имя реквизита;
+// ** Значение - Произвольный - значение реквизита.
+//
+Функция ЗначенияРеквизитовОбъектов(Ссылки, Знач Реквизиты, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЗначенияРеквизитовОбъектов(Ссылки, Реквизиты, ВыбратьРазрешенные, КодЯзыка);
+ КонецЕсли;
+
+ Если ТипЗнч(Реквизиты) = Тип("Массив") Или ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда
+ Реквизиты = СтрСоединить(Реквизиты, ",");
+ КонецЕсли;
+
+ Если ПустаяСтрока(Реквизиты) Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неверный второй параметр %1 в функции %2:
+ |Поле объекта должно быть указано.'"), "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов");
+ КонецЕсли;
+
+ Если СтрНайти(Реквизиты, ".") <> 0 Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неверный второй параметр %1 в функции %2:
+ |Обращение через точку не поддерживается.'"), "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов");
+ КонецЕсли;
+
+ ЗначенияРеквизитов = Новый Соответствие;
+ Если Ссылки.Количество() = 0 Тогда
+ Возврат ЗначенияРеквизитов;
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(КодЯзыка) Тогда
+ КодЯзыка = СтрРазделить(КодЯзыка, "_", Истина)[0];
+ КонецЕсли;
+
+ РеквизитыТекстЗапроса = Реквизиты;
+
+ СсылкиПоТипам = Новый Соответствие;
+ Для Каждого Ссылка Из Ссылки Цикл
+ Тип = ТипЗнч(Ссылка);
+ Если СсылкиПоТипам[Тип] = Неопределено Тогда
+ СсылкиПоТипам[Тип] = Новый Массив;
+ КонецЕсли;
+ ЭлементПоТипу = СсылкиПоТипам[Тип]; // Массив
+ ЭлементПоТипу.Добавить(Ссылка);
+ КонецЦикла;
+
+ ТекстыЗапросов = Новый Массив;
+ ПараметрыЗапроса = Новый Структура;
+
+ ИменаОбъектовМетаданных = Новый Массив;
+
+ Для Каждого СсылкиПоТипу Из СсылкиПоТипам Цикл
+ Тип = СсылкиПоТипу.Ключ;
+ ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип);
+ Если ОбъектМетаданных = Неопределено Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неверный первый параметр %1 в функции %2:
+ |Значения массива должны быть ссылками.'"), "Ссылки", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов");
+ КонецЕсли;
+
+ ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя();
+ ИменаОбъектовМетаданных.Добавить(ПолноеИмяОбъектаМетаданных);
+
+ ТекстЗапроса =
+ "ВЫБРАТЬ РАЗРЕШЕННЫЕ
+ | Ссылка,
+ | &Реквизиты
+ |ИЗ
+ | &ПолноеИмяОбъектаМетаданных КАК ПсевдонимЗаданнойТаблицы
+ |ГДЕ
+ | ПсевдонимЗаданнойТаблицы.Ссылка В (&Ссылки)";
+ Если Не ВыбратьРазрешенные Или ТекстыЗапросов.Количество() > 0 Тогда
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1
+ КонецЕсли;
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Реквизиты", РеквизитыТекстЗапроса);
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъектаМетаданных", ПолноеИмяОбъектаМетаданных);
+ ИмяПараметра = "Ссылки" + СтрЗаменить(ПолноеИмяОбъектаМетаданных, ".", "");
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Ссылки", "&" + ИмяПараметра); // @Query-part-1
+ ПараметрыЗапроса.Вставить(ИмяПараметра, СсылкиПоТипу.Значение);
+
+ ТекстыЗапросов.Добавить(ТекстЗапроса);
+ КонецЦикла;
+
+ ТекстЗапроса = СтрСоединить(ТекстыЗапросов, Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС);
+
+ Запрос = Новый Запрос(ТекстЗапроса);
+ Запрос.УстановитьПараметр("КодЯзыка", КодЯзыка);
+ Для Каждого Параметр Из ПараметрыЗапроса Цикл
+ Запрос.УстановитьПараметр(Параметр.Ключ, Параметр.Значение);
+ КонецЦикла;
+
+ Попытка
+ Выборка = Запрос.Выполнить().Выбрать();
+ Исключение
+
+ // Удаление пробелов.
+ Реквизиты = СтрЗаменить(Реквизиты, " ", "");
+ // Преобразование параметра в массив полей.
+ Реквизиты = СтрРазделить(Реквизиты, ",");
+
+ // Поиск ошибки доступности полей.
+ СписокОшибок = Новый Массив;
+ Для Каждого ПолноеИмяОбъектаМетаданных Из ИменаОбъектовМетаданных Цикл
+ Результат = ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, Реквизиты);
+ Если Результат.Ошибка Тогда
+ СписокОшибок.Добавить(Результат.ОписаниеОшибки);
+ КонецЕсли;
+ КонецЦикла;
+
+ Если ЗначениеЗаполнено(СписокОшибок) Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неверный второй параметр %1 в функции %2: %3'"),
+ "Реквизиты", "ОбщегоНазначения.ЗначенияРеквизитовОбъектов", СтрСоединить(СписокОшибок, Символы.ПС));
+ КонецЕсли;
+
+ // Не удалось распознать ошибку, проброс первичной ошибки.
+ ВызватьИсключение;
+
+ КонецПопытки;
+
+ Пока Выборка.Следующий() Цикл
+ Результат = Новый Структура(Реквизиты);
+ ЗаполнитьЗначенияСвойств(Результат, Выборка);
+ ЗначенияРеквизитов[Выборка.Ссылка] = Результат;
+
+ КонецЦикла;
+
+ Возврат ЗначенияРеквизитов;
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает значения реквизита, прочитанного из информационной базы по ссылке на объект.
+// Рекомендуется использовать вместо обращения к реквизитам объекта через точку от ссылки на объект
+// для быстрого чтения отдельных реквизитов объекта из базы данных.
+//
+// Если необходимо зачитать реквизит независимо от прав текущего пользователя,
+// то следует использовать предварительный переход в привилегированный режим.
+//
+// Если передано имя несуществующего реквизита, то вызывается исключение "Поле объекта не существует".
+//
+// Параметры:
+// Ссылка - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить.
+// - Строка - полное имя предопределенного элемента, значения реквизитов которого необходимо получить.
+// ИмяРеквизита - Строка - имя получаемого реквизита.
+// Допускается указание имени реквизита через точку, но при этом параметр КодЯзыка для
+// такого реквизита учитываться не будет.
+// ВыбратьРазрешенные - Булево - если Истина, то запрос к объекту выполняется с учетом прав пользователя;
+// если есть ограничение на уровне записей, то возвращается Неопределено;
+// если нет прав для работы с таблицей, то возникнет исключение;
+// если Ложь, то возникнет исключение при отсутствии прав на таблицу
+// или любой из реквизитов.
+// КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации.
+//
+// Возвращаемое значение:
+// Произвольный - если в параметр Ссылка передана пустая ссылка, то возвращается Неопределено.
+// Если в параметр Ссылка передана ссылка несуществующего объекта (битая ссылка),
+// то возвращается Неопределено.
+//
+Функция ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные, КодЯзыка);
+ КонецЕсли;
+
+ Если ПустаяСтрока(ИмяРеквизита) Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неверный второй параметр %1 в функции %2:
+ |Имя реквизита должно быть заполнено.'"), "ИмяРеквизита", "ОбщегоНазначения.ЗначениеРеквизитаОбъекта");
+ КонецЕсли;
+
+ Результат = ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные, КодЯзыка);
+ Возврат Результат[СтрЗаменить(ИмяРеквизита, ".", "")];
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает ОбъектМетаданных, быстро найденный по полному имени.
+// Более производительный аналог метода платформы Метаданные.НайтиПоПолномуИмени
+// для корневых объектов метаданных.
+//
+// Параметры:
+// ПолноеИмя - Строка - полное имя объекта метаданных, например, Справочник.Организации
+//
+// Возвращаемое значение:
+// ОбъектМетаданных - когда найден
+// Неопределено - когда не найден
+//
+Функция ОбъектМетаданныхПоПолномуИмени(ПолноеИмя) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ОбъектМетаданныхПоПолномуИмени(ПолноеИмя);
+ КонецЕсли;
+
+ ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмя);
+
+ Возврат ОбъектМетаданных;
+
+КонецФункции
+
+// Аналог метода БСП. Проверяет существование указанных реквизитов у объекта метаданных.
+//
+// Параметры:
+// ПолноеИмяОбъектаМетаданных - Строка - полное имя проверяемого объекта.
+// ПроверяемыеВыражения - Массив - имена полей или проверяемые выражения объекта метаданных.
+//
+// Возвращаемое значение:
+// Структура:
+// * Ошибка - Булево - найдена ошибка.
+// * ОписаниеОшибки - Строка - описание найденных ошибок.
+//
+// Пример:
+//
+// Реквизиты = Новый Массив;
+// Реквизиты.Добавить("Номер");
+// Реквизиты.Добавить("Валюта.НаименованиеПолное");
+//
+// Результат = ОбщегоНазначения.ПроверитьСуществованиеРеквизитовОбъекта("Документ._ДемоЗаказПокупателя", Реквизиты);
+//
+// Если Результат.Ошибка Тогда
+// ВызватьИсключение Результат.ОписаниеОшибки;
+// КонецЕсли;
+//
+Функция ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, ПроверяемыеВыражения)
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ПроверитьСуществованиеРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, ПроверяемыеВыражения);
+ КонецЕсли;
+
+ МетаданныеОбъекта = ОбъектМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных);
+ Если МетаданныеОбъекта = Неопределено Тогда
+ Возврат Новый Структура("Ошибка, ОписаниеОшибки", Истина,
+ пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Несуществующий объект метаданных ""%1"".'"), ПолноеИмяОбъектаМетаданных));
+ КонецЕсли;
+
+ // Разрешение вызова из безопасного режима внешней обработки или расширения.
+ // Информация о доступности полей источника схемы при проверке метаданных не является секретной.
+ УстановитьПривилегированныйРежим(Истина);
+
+ Схема = Новый СхемаЗапроса;
+ Пакет = Схема.ПакетЗапросов.Добавить(Тип("ЗапросВыбораСхемыЗапроса"));
+ Оператор = Пакет.Операторы.Получить(0);
+
+ Источник = Оператор.Источники.Добавить(ПолноеИмяОбъектаМетаданных, "Таблица");
+ ТекстОшибки = "";
+
+ Возврат Новый Структура("Ошибка, ОписаниеОшибки", Не ПустаяСтрока(ТекстОшибки), ТекстОшибки);
+
+КонецФункции
+
+// Аналог метода БСП. Создает объект ОписаниеТипов, содержащий тип Строка.
+//
+// Параметры:
+// ДлинаСтроки - Число - длина строки.
+//
+// Возвращаемое значение:
+// ОписаниеТипов - описание типа Строка.
+//
+Функция ОписаниеТипаСтрока(ДлинаСтроки) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ОписаниеТипаСтрока(ДлинаСтроки);
+ КонецЕсли;
+
+ Возврат Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(ДлинаСтроки));
+
+КонецФункции
+
+// Аналог метода БСП. Создает объект ОписаниеТипов, содержащий тип Число.
+//
+// Параметры:
+// Разрядность - Число - общее количество разрядов числа (количество разрядов
+// целой части плюс количество разрядов дробной части).
+// РазрядностьДробнойЧасти - Число - число разрядов дробной части.
+// ЗнакЧисла - ДопустимыйЗнак - допустимый знак числа.
+//
+// Возвращаемое значение:
+// ОписаниеТипов - описание типа Число.
+//
+Функция ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти = 0, Знач ЗнакЧисла = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти, ЗнакЧисла);
+ КонецЕсли;
+
+ Если ЗнакЧисла = Неопределено Тогда
+ ЗнакЧисла = ДопустимыйЗнак.Любой;
+ КонецЕсли;
+
+ Возврат Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(Разрядность, РазрядностьДробнойЧасти, ЗнакЧисла));
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает значение настройки рабочей даты для пользователя или текущей даты сеанса,
+// если рабочая дата пользователя не задана.
+//
+// Параметры:
+// ИмяПользователя - Строка - имя пользователя, для которого запрашивается рабочая дата.
+// Если не задано, то устанавливается для текущего пользователя.
+//
+// Возвращаемое значение:
+// Дата - значение настройки рабочей даты пользователя или текущая дата сеанса, если настройка не задана.
+//
+Функция ТекущаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ТекущаяДатаПользователя(ИмяПользователя);
+ КонецЕсли;
+
+ Возврат ТекущаяДатаСеанса();
+
+КонецФункции
+
+#Область СериализацияXML
+
+// Аналог метода БСП. Преобразует (сериализует) любое значение в XML-строку.
+// Преобразованы в могут быть только те объекты, для которых в синтакс-помощнике указано, что они сериализуются.
+// См. также ЗначениеИзСтрокиXML.
+//
+// Параметры:
+// Значение - Произвольный - значение, которое необходимо сериализовать в XML-строку.
+//
+// Возвращаемое значение:
+// Строка - XML-строка.
+//
+Функция ЗначениеВСтрокуXML(Значение) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЗначениеВСтрокуXML(Значение);
+ КонецЕсли;
+
+ ЗаписьXML = Новый ЗаписьXML;
+ ЗаписьXML.УстановитьСтроку();
+ СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение, НазначениеТипаXML.Явное);
+
+ Возврат ЗаписьXML.Закрыть();
+КонецФункции
+
+// Аналог метода БСП. Выполняет преобразование (десериализацию) XML-строки в значение.
+// См. также ЗначениеВСтрокуXML.
+//
+// Параметры:
+// СтрокаXML - Строка - XML-строка, с сериализованным объектом..
+//
+// Возвращаемое значение:
+// Произвольный - значение, полученное из переданной XML-строки.
+//
+Функция ЗначениеИзСтрокиXML(СтрокаXML) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЗначениеИзСтрокиXML(СтрокаXML);
+ КонецЕсли;
+
+ ЧтениеXML = Новый ЧтениеXML;
+ ЧтениеXML.УстановитьСтроку(СтрокаXML);
+
+ Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
+КонецФункции
+
+#КонецОбласти
+
+// Аналог метода БСП. Возвращает менеджер объекта по полному имени объекта метаданных.
+// Ограничение: не обрабатываются точки маршрутов бизнес-процессов.
+//
+// Параметры:
+// ПолноеИмя - Строка - полное имя объекта метаданных. Пример: "Справочник.Организации".
+//
+// Возвращаемое значение:
+// СправочникМенеджер, ДокументМенеджер, ОбработкаМенеджер, РегистрСведенийМенеджер - менеджер объекта.
+//
+// Пример:
+// МенеджерСправочника = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("Справочник.Организации");
+// ПустаяСсылка = МенеджерСправочника.ПустаяСсылка();
+//
+Функция МенеджерОбъектаПоПолномуИмени(ПолноеИмя) Экспорт
+ Перем КлассОМ, ИмяОМ, Менеджер;
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
+ КонецЕсли;
+
+ ЧастиИмени = СтрРазделить(ПолноеИмя, ".");
+
+ Если ЧастиИмени.Количество() >= 2 Тогда
+ КлассОМ = ЧастиИмени[0];
+ ИмяОМ = ЧастиИмени[1];
+ Иначе
+ Менеджер = Неопределено;
+ КонецЕсли;
+
+ Если ВРег(КлассОМ) = "ПЛАНОБМЕНА" Тогда
+ Менеджер = ПланыОбмена;
+
+ ИначеЕсли ВРег(КлассОМ) = "СПРАВОЧНИК" Тогда
+ Менеджер = Справочники;
+
+ ИначеЕсли ВРег(КлассОМ) = "ДОКУМЕНТ" Тогда
+ Менеджер = Документы;
+
+ ИначеЕсли ВРег(КлассОМ) = "ЖУРНАЛДОКУМЕНТОВ" Тогда
+ Менеджер = ЖурналыДокументов;
+
+ ИначеЕсли ВРег(КлассОМ) = "ПЕРЕЧИСЛЕНИЕ" Тогда
+ Менеджер = Перечисления;
+
+ ИначеЕсли ВРег(КлассОМ) = "ОТЧЕТ" Тогда
+ Менеджер = Отчеты;
+
+ ИначеЕсли ВРег(КлассОМ) = "ОБРАБОТКА" Тогда
+ Менеджер = Обработки;
+
+ ИначеЕсли ВРег(КлассОМ) = "ПЛАНВИДОВХАРАКТЕРИСТИК" Тогда
+ Менеджер = ПланыВидовХарактеристик;
+
+ ИначеЕсли ВРег(КлассОМ) = "ПЛАНСЧЕТОВ" Тогда
+ Менеджер = ПланыСчетов;
+
+ ИначеЕсли ВРег(КлассОМ) = "ПЛАНВИДОВРАСЧЕТА" Тогда
+ Менеджер = ПланыВидовРасчета;
+
+ ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРСВЕДЕНИЙ" Тогда
+ Менеджер = РегистрыСведений;
+
+ ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРНАКОПЛЕНИЯ" Тогда
+ Менеджер = РегистрыНакопления;
+
+ ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРБУХГАЛТЕРИИ" Тогда
+ Менеджер = РегистрыБухгалтерии;
+
+ ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРРАСЧЕТА" Тогда
+
+ Если ЧастиИмени.Количество() = 2 Тогда
+ Менеджер = РегистрыРасчета;
+
+ ИначеЕсли ЧастиИмени.Количество() = 4 Тогда
+ КлассПодчиненногоОМ = ЧастиИмени[2];
+ ИмяПодчиненногоОМ = ЧастиИмени[3];
+
+ Если ВРег(КлассПодчиненногоОМ) = "ПЕРЕРАСЧЕТ" Тогда
+ Менеджер = РегистрыРасчета[ИмяОМ].Перерасчеты;
+ ИмяОм = ИмяПодчиненногоОМ;
+
+ Иначе
+ Менеджер = Неопределено;
+ КонецЕсли;
+
+ Иначе
+ Менеджер = Неопределено;
+ КонецЕсли;
+
+ ИначеЕсли ВРег(КлассОМ) = "БИЗНЕСПРОЦЕСС" Тогда
+ Менеджер = БизнесПроцессы;
+
+ ИначеЕсли ВРег(КлассОМ) = "ЗАДАЧА" Тогда
+ Менеджер = Задачи;
+
+ ИначеЕсли ВРег(КлассОМ) = "КОНСТАНТА" Тогда
+ Менеджер = Константы;
+
+ ИначеЕсли ВРег(КлассОМ) = "ПОСЛЕДОВАТЕЛЬНОСТЬ" Тогда
+ Менеджер = Последовательности;
+
+ Иначе
+ Менеджер = Неопределено;
+ КонецЕсли;
+
+ Если Менеджер = Неопределено Тогда
+ ПроверитьОбъектМетаданныхСуществует(ПолноеИмя);
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Объект метаданных ""%1"" не имеет менеджера объекта.';
+ |en = 'Metadata object %1 has no object manager.'"), ПолноеИмя);
+ КонецЕсли;
+
+ Попытка
+ Возврат Менеджер[ИмяОМ];
+ Исключение
+ ПроверитьОбъектМетаданныхСуществует(ПолноеИмя);
+ ВызватьИсключение;
+ КонецПопытки;
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает менеджер объекта по ссылке на объект.
+// Ограничение: не обрабатываются точки маршрутов бизнес-процессов.
+// См. также ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени.
+//
+// Параметры:
+// Ссылка - ЛюбаяСсылка - объект, менеджер которого требуется получить.
+//
+// Возвращаемое значение:
+// СправочникМенеджер, ДокументМенеджер, ОбработкаМенеджер, РегистрСведенийМенеджер - менеджер объекта.
+//
+// Пример:
+// МенеджерСправочника = ОбщегоНазначения.МенеджерОбъектаПоСсылке(СсылкаНаОрганизацию);
+// ПустаяСсылка = МенеджерСправочника.ПустаяСсылка();
+//
+Функция МенеджерОбъектаПоСсылке(Ссылка) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.МенеджерОбъектаПоСсылке(Ссылка);
+ КонецЕсли;
+
+ ИмяОбъекта = Ссылка.Метаданные().Имя;
+ ТипСсылки = ТипЗнч(Ссылка);
+
+ Если Справочники.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
+ Возврат Справочники[ИмяОбъекта];
+
+ ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
+ Возврат Документы[ИмяОбъекта];
+
+ ИначеЕсли БизнесПроцессы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
+ Возврат БизнесПроцессы[ИмяОбъекта];
+
+ ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
+ Возврат ПланыВидовХарактеристик[ИмяОбъекта];
+
+ ИначеЕсли ПланыСчетов.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
+ Возврат ПланыСчетов[ИмяОбъекта];
+
+ ИначеЕсли ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
+ Возврат ПланыВидовРасчета[ИмяОбъекта];
+
+ ИначеЕсли Задачи.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
+ Возврат Задачи[ИмяОбъекта];
+
+ ИначеЕсли ПланыОбмена.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
+ Возврат ПланыОбмена[ИмяОбъекта];
+
+ ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
+ Возврат Перечисления[ИмяОбъекта];
+ Иначе
+ Возврат Неопределено;
+ КонецЕсли;
+
+КонецФункции
+
+#Область Данные
+
+// Аналог метода БСП. Вычисляет контрольную сумму для произвольных данных по указанному алгоритму.
+//
+// Параметры:
+// Данные - Произвольный - любое сериализуемое значение.
+// Алгоритм - ХешФункция - алгоритм расчета контрольной суммы. По умолчанию, MD5.
+//
+// Возвращаемое значение:
+// Строка - контрольная сумма строкой без пробелов (например 32 символа).
+//
+Функция КонтрольнаяСуммаСтрокой(Знач Данные, Знач Алгоритм = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.КонтрольнаяСуммаСтрокой(Данные, Алгоритм);
+ КонецЕсли;
+
+ Если Алгоритм = Неопределено Тогда
+ Алгоритм = ХешФункция.MD5;
+ КонецЕсли;
+
+ ХешированиеДанных = Новый ХешированиеДанных(Алгоритм);
+ Если ТипЗнч(Данные) <> Тип("Строка") И ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
+ Данные = ЗначениеВСтрокуXML(Данные);
+ КонецЕсли;
+ ХешированиеДанных.Добавить(Данные);
+
+ Если ТипЗнч(ХешированиеДанных.ХешСумма) = Тип("ДвоичныеДанные") Тогда
+ Результат = СтрЗаменить(ХешированиеДанных.ХешСумма, " ", "");
+ ИначеЕсли ТипЗнч(ХешированиеДанных.ХешСумма) = Тип("Число") Тогда
+ Результат = Формат(ХешированиеДанных.ХешСумма, "ЧГ=");
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область ТекущееОкружение
+
+// Аналог метода БСП. Возвращает Истина, если текущий сеанс выполняется на сервере, работающем под управлением ОС Windows.
+//
+// Возвращаемое значение:
+// Булево - Истина, если сервер работает под управлением ОС Windows.
+//
+Функция ЭтоWindowsСервер() Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЭтоWindowsСервер();
+ КонецЕсли;
+
+ СистемнаяИнформация = Новый СистемнаяИнформация;
+ Возврат СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86
+ Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64;
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает Истина, если текущий сеанс выполняется на сервере, работающем под управлением ОС Linux.
+//
+// Возвращаемое значение:
+// Булево - Истина, если сервер работает под управлением ОС Linux.
+//
+Функция ЭтоLinuxСервер() Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЭтоLinuxСервер();
+ КонецЕсли;
+
+ СистемнаяИнформация = Новый СистемнаяИнформация;
+ Возврат СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86
+ Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64;
+
+КонецФункции
+
+#КонецОбласти // ТекущееОкружение
+
+#Область Прочее
+
+// Аналог метода БСП. Выполняет проверки перед выполнением обработчика регламентного задания и прерывает выполнение,
+// если его запуск в данный момент невозможен, например:
+// - еще не завершено обновление программы;
+// - запуск через консоль или другим способом, минуя включение функциональной опции
+// (если регламентное задание зависит от функциональных опций);
+// - попытка выполнения задания, работающего с внешними ресурсами в копии информационной базы.
+//
+// Параметры:
+// РегламентноеЗадание - ОбъектМетаданныхРегламентноеЗадание - регламентное задание,
+// из которого вызывается данная процедура.
+//
+// Пример:
+// ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.<ИмяРегламентногоЗадания>);
+//
+Процедура ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначения();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание);
+ Возврат;
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти // Прочее
+
+#КонецОбласти
+
+#Область ФайловаяСистема
+
+// Аналог метода БСП. Удаляет временный файл.
+//
+// Выбрасывает исключение, если передано имя не временного файла.
+//
+// Если временный файл не может быть удален (например, он занят каким-то процессом),
+// то в журнал регистрации записывается соответствующее предупреждение, а процедура завершается.
+//
+// Для совместного использования с методом ПолучитьИмяВременногоФайла,
+// после окончания работы с временным файлом.
+//
+// Параметры:
+// Путь - Строка - полный путь к временному файлу.
+//
+Процедура УдалитьВременныйФайл(Знач Путь) Экспорт
+
+ Результат = ПереадресацияМодуляФайловаяСистема();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.УдалитьВременныйФайл(Путь);
+ Возврат;
+ КонецЕсли;
+
+ Если НЕ ЭтоИмяВременногоФайла(Путь) Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неверное значение параметра %1 в %2:
+ |Файл не является временным ""%3"".'"),
+ "Путь", "ФайловаяСистема.УдалитьВременныйФайл", Путь);
+ КонецЕсли;
+
+ УдалитьВременныеФайлы(Путь);
+
+КонецПроцедуры
+
+#Область ЗапускВнешнихПриложений
+
+// Аналог метода БСП. Конструктор параметров для ФайловаяСистема.ЗапуститьПрограмму.
+//
+// Возвращаемое значение:
+// Структура:
+// * ТекущийКаталог - Строка - задает текущий каталог запускаемого приложения.
+// * ДождатьсяЗавершения - Булево - Ложь - дожидаться завершения запущенного приложения
+// перед продолжением работы.
+// * ПолучитьПотокВывода - Булево - Ложь - результат, направленный в поток stdout,
+// если не указан ДождатьсяЗавершения - игнорируется.
+// * ПолучитьПотокОшибок - Булево - Ложь - ошибки, направленные в поток stderr,
+// если не указан ДождатьсяЗавершения - игнорируется.
+// * КодировкаПотоков - КодировкаТекста
+// - Строка - кодировка, используемая для чтения stdout и stderr.
+// По умолчанию используется для Windows "CP866", для остальных - "UTF-8".
+// * КодировкаИсполнения - Строка
+// - Число - кодировка, устанавливаемая в Windows с помощью команды chcp,
+// возможные значения: "OEM", "CP866", "UTF8" или номер кодовой страницы.
+// В Linux устанавливается переменной окружения "LANGUAGE" для конкретной команды,
+// возможные значения можно определить выполнив команду "locale -a", например "ru_RU.UTF-8".
+// В MacOS игнорируется.
+//
+Функция ПараметрыЗапускаПрограммы() Экспорт
+
+ Результат = ПереадресацияМодуляФайловаяСистема();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ПараметрыЗапускаПрограммы();
+ КонецЕсли;
+
+ Параметры = Новый Структура;
+ Параметры.Вставить("ТекущийКаталог", "");
+ Параметры.Вставить("ДождатьсяЗавершения", Ложь);
+ Параметры.Вставить("ПолучитьПотокВывода", Ложь);
+ Параметры.Вставить("ПолучитьПотокОшибок", Ложь);
+ Параметры.Вставить("КодировкаПотоков", Неопределено);
+ Параметры.Вставить("КодировкаИсполнения", Неопределено);
+
+ Возврат Параметры;
+
+КонецФункции
+
+// Запускает внешнюю программу на исполнение (например, *.exe, *bat),
+// или системную команду (например, ping, tracert или traceroute, обращаться к rac-клиенту),
+// Позволяет также получать код возврата и значения потоков вывода (stdout) и ошибок (stderr)
+//
+// При запуске внешней программы в пакетном режиме поток вывода и поток ошибок может возвращаться на не ожидаемом языке.
+// Для того чтобы передать внешней программе язык, на котором ожидается результат следует:
+// - указать язык в параметре запуска этой программы (если такой параметр предусмотрен).
+// Например, в пакетном режиме платформы 1С:Предприятие предусмотрен ключ "/L en";
+// - в других случаях явно установить кодировку исполнения пакетной команды.
+// См. свойство КодировкаИсполнения возвращаемого значения ФайловаяСистема.ПараметрыЗапускаПрограммы.
+//
+// Параметры:
+// КомандаЗапуска - Строка - командная строка для запуска программы.
+// - Массив - первый элемент массива, путь к исполняемому приложению,
+// остальные элементы массива - это передаваемые параметры,
+// массив соответствует тому, который получит вызываемая программа в argv.
+// ПараметрыЗапускаПрограммы - см. ФайловаяСистема.ПараметрыЗапускаПрограммы
+//
+// Возвращаемое значение:
+// Структура:
+// * КодВозврата - Число - код возврата программы;
+// * ПотокВывода - Строка - результат работы программы, направленный в поток stdout;
+// * ПотокОшибок - Строка - ошибки исполнения программы, направленные в поток stderr.
+//
+// Пример:
+// // Простой запуск
+// ФайловаяСистема.ЗапуститьПрограмму("calc");
+//
+// // Запуск с ожиданием завершения
+// ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
+// ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
+// ФайловаяСистема.ЗапуститьПрограмму("C:\Program Files\1cv8\common\1cestart.exe",
+// ПараметрыЗапускаПрограммы);
+//
+// // Запуск с ожиданием завершения и получением потока вывода
+// ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
+// ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
+// ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
+// Результат = ФайловаяСистема("ping 127.0.0.1 -n 5", ПараметрыЗапускаПрограммы);
+// ОбщегоНазначений.СообщитьПользователю(Результат.ПотокВывода);
+//
+// // Запуск с ожиданием завершения и получением потока вывода и с конкатенацией команды запуска
+// ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
+// ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
+// ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
+// КомандаЗапуска = Новый Массив;
+// КомандаЗапуска.Добавить("ping");
+// КомандаЗапуска.Добавить("127.0.0.1");
+// КомандаЗапуска.Добавить("-n");
+// КомандаЗапуска.Добавить(5);
+// Результат = ФайловаяСистема.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы);
+// ОбщегоНазначений.СообщитьПользователю(Результат.ПотокВывода);
+//
+Функция ЗапуститьПрограмму(Знач КомандаЗапуска, ПараметрыЗапускаПрограммы = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляФайловаяСистема();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы);
+ КонецЕсли;
+
+ СтрокаКоманды = пбп_ПереадресацияКлиентСервер.БезопаснаяСтрокаКоманды(КомандаЗапуска);
+
+ Если ПараметрыЗапускаПрограммы = Неопределено Тогда
+ ПараметрыЗапускаПрограммы = ПараметрыЗапускаПрограммы();
+ КонецЕсли;
+
+ ТекущийКаталог = ПараметрыЗапускаПрограммы.ТекущийКаталог;
+ ДождатьсяЗавершения = ПараметрыЗапускаПрограммы.ДождатьсяЗавершения;
+ ПолучитьПотокВывода = ПараметрыЗапускаПрограммы.ПолучитьПотокВывода;
+ ПолучитьПотокОшибок = ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок;
+ КодировкаПотоков = ПараметрыЗапускаПрограммы.КодировкаПотоков;
+ КодировкаИсполнения = ПараметрыЗапускаПрограммы.КодировкаИсполнения;
+
+ ПроверитьТекущийКаталог(СтрокаКоманды, ТекущийКаталог);
+
+ Если ДождатьсяЗавершения Тогда
+ Если ПолучитьПотокВывода Тогда
+ // BSLLS:MissingTemporaryFileDeletion-off
+ ИмяФайлаПотокаВывода = ПолучитьИмяВременногоФайла("stdout.tmp");
+ // BSLLS:MissingTemporaryFileDeletion-on
+ СтрокаКоманды = СтрокаКоманды + " > """ + ИмяФайлаПотокаВывода + """";
+ КонецЕсли;
+
+ Если ПолучитьПотокОшибок Тогда
+ // BSLLS:MissingTemporaryFileDeletion-off
+ ИмяФайлаПотокаОшибок = ПолучитьИмяВременногоФайла("stderr.tmp");
+ // BSLLS:MissingTemporaryFileDeletion-on
+ СтрокаКоманды = СтрокаКоманды + " 2>""" + ИмяФайлаПотокаОшибок + """";
+ КонецЕсли;
+ КонецЕсли;
+
+ Если КодировкаПотоков = Неопределено Тогда
+ КодировкаПотоков = КодировкаСтандартныхПотоков();
+ КонецЕсли;
+
+ // Для cmd не всегда активна текущая кодовая страница, поэтому всегда задаем по-умолчанию.
+ Если КодировкаИсполнения = Неопределено И пбп_Переадресация.ЭтоWindowsСервер() Тогда
+ КодировкаИсполнения = "CP866";
+ КонецЕсли;
+
+ КодВозврата = Неопределено;
+
+ Если пбп_Переадресация.ЭтоWindowsСервер() Тогда
+
+ СтрокаКоманды = пбп_ПереадресацияКлиентСервер.СтрокаЗапускаКомандыWindows(
+ СтрокаКоманды, ТекущийКаталог, ДождатьсяЗавершения, КодировкаИсполнения);
+
+ Если пбп_Переадресация.ИнформационнаяБазаФайловая() Тогда
+ // В файловой информационной базе показывать окно консоли не следует и в серверном контексте.
+ Оболочка = Новый COMОбъект("Wscript.Shell");
+ КодВозврата = Оболочка.Run(СтрокаКоманды, 0, ДождатьсяЗавершения);
+ Оболочка = Неопределено;
+ Иначе
+ // BSLLS:ExternalAppStarting-off
+ ЗапуститьПриложение(СтрокаКоманды, , ДождатьсяЗавершения, КодВозврата);
+ // BSLLS:ExternalAppStarting-on
+ КонецЕсли;
+
+ Иначе
+
+ Если пбп_Переадресация.ЭтоLinuxСервер() И ЗначениеЗаполнено(КодировкаИсполнения) Тогда
+ СтрокаКоманды = "LANGUAGE=" + КодировкаИсполнения + " " + СтрокаКоманды;
+ КонецЕсли;
+
+ // BSLLS:ExternalAppStarting-off
+ ЗапуститьПриложение(СтрокаКоманды, ТекущийКаталог, ДождатьсяЗавершения, КодВозврата);
+ // BSLLS:ExternalAppStarting-on
+ КонецЕсли;
+
+ ПотокВывода = "";
+ ПотокОшибок = "";
+
+ Если ДождатьсяЗавершения Тогда
+ Если ПолучитьПотокВывода Тогда
+ ПотокВывода = ПрочитатьФайлЕслиСуществует(ИмяФайлаПотокаВывода, КодировкаПотоков);
+ УдалитьВременныйФайл(ИмяФайлаПотокаВывода);
+ КонецЕсли;
+
+ Если ПолучитьПотокОшибок Тогда
+ ПотокОшибок = ПрочитатьФайлЕслиСуществует(ИмяФайлаПотокаОшибок, КодировкаПотоков);
+ УдалитьВременныйФайл(ИмяФайлаПотокаОшибок);
+ КонецЕсли;
+ КонецЕсли;
+
+ Результат = Новый Структура;
+ Результат.Вставить("КодВозврата", КодВозврата);
+ Результат.Вставить("ПотокВывода", ПотокВывода);
+ Результат.Вставить("ПотокОшибок", ПотокОшибок);
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область СерверныеОповещения
+
+// Аналог метода БСП. Добавляет серверное оповещение в очередь для доставки на клиент.
+// Оповещение доставляется через систему взаимодействия,
+// либо забирается в рамках общего серверного вызова.
+//
+// Параметры:
+// ИмяОповещения - Строка - смотри НовоеСерверноеОповещение.Имя.
+//
+// Результат - Произвольный - произвольное сериализуемое значение,
+// которое будет отправлено в составе оповещения на клиент
+// (должны быть как можно меньшего размера, желательно не более 1 Кб).
+//
+// Адресаты - Неопределено - все пользователи (и соответственно все сеансы).
+// Если указано незаполненное соответствие, тогда возврат.
+// - Соответствие из КлючИЗначение:
+// * Ключ - УникальныйИдентификатор - идентификатор пользователя ИБ.
+// * Значение - Массив из см. СерверныеОповещения.КлючСеанса
+//
+// ОтправитьСразу - Булево - если Истина, попытаться сразу отправить сообщение
+// через систему взаимодействия перед добавлением в очередь.
+// Отправка сразу не допускается из обработчиков ПриОтправкеСерверногоОповещения.
+// Следует учесть (особенно при вызове в транзакции), что неудачное обращение
+// к системе взаимодействия может занимать (3-5 сек)*2, а удачное не менее (50 мс)*2.
+//
+Процедура ОтправитьСерверноеОповещение(ИмяОповещения, Результат, Адресаты, ОтправитьСразу = Ложь) Экспорт
+
+ Результат = ПереадресацияМодуляСерверныеОповещения();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.ОтправитьСерверноеОповещение(ИмяОповещения, Результат, Адресаты, ОтправитьСразу);
+ Возврат;
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область РегламентныеЗаданияСервер
+
+// Аналог метода БСП. В локальном режиме работы возвращает регламентные задания, соответствующие отбору.
+// В модели сервиса - таблицу значений, в которой содержится описание найденных заданий
+// в справочнике ОчередьЗаданий.
+//
+// Параметры:
+// Отбор - Структура - со свойствами:
+// 1) Общие для любого режима работы:
+// * УникальныйИдентификатор - УникальныйИдентификатор - идентификатор регламентного задания в локальном
+// режиме работы или идентификатор ссылки задания очереди в модели сервиса.
+// - Строка - строка уникального идентификатора регламентного задания в локальном
+// режиме работы или идентификатор ссылки задания очереди в модели сервиса.
+// - СправочникСсылка.ОчередьЗаданий - идентификатор задания
+// очереди в модели сервиса.
+// - СтрокаТаблицыЗначений из см. НайтиЗадания
+// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - метаданные регламентного задания.
+// - Строка - имя метаданных регламентного задания.
+// * Использование - Булево - если Истина, задание включено.
+// * Ключ - Строка - прикладной идентификатор задания.
+// 2) Возможные ключи только локального режима:
+// * Наименование - Строка - наименование регламентного задания.
+// * Предопределенное - Булево - если Истина, регламентное задание определено в метаданных.
+// 3) Возможные ключи только для модели сервиса:
+// * ИмяМетода - Строка - имя метода (или псевдоним) обработчика очереди задании.
+// * ОбластьДанных - Число - значение разделителя области данных задания.
+// * СостояниеЗадания - ПеречислениеСсылка.СостоянияЗаданий - состояние задания очереди.
+// * Шаблон - СправочникСсылка.ШаблоныЗаданийОчереди - шаблон задания, используется только
+// для разделенных заданий очереди.
+//
+// Возвращаемое значение:
+// Массив из РегламентноеЗадание - в локальном режиме работы массив регламентных заданий.
+// ТаблицаЗначений - в модели сервиса с колонками:
+// * Использование - Булево - если Истина, задание включено.
+// * Ключ - Строка - прикладной идентификатор задания.
+// * Параметры - Массив - параметры, передаваемые в обработчик задания.
+// * Расписание - РасписаниеРегламентногоЗадания - расписание задания.
+// * УникальныйИдентификатор - СправочникСсылка.ОчередьЗаданий - идентификатор задания
+// очереди в модели сервиса.
+// * ЗапланированныйМоментЗапуска - Дата - дата и время запланированного запуска задания
+// (в часовом поясе области данных).
+// * ИмяМетода - Строка - имя метода (или псевдоним) обработчика очереди задании.
+// * ОбластьДанных - Число - значение разделителя области данных задания.
+// * СостояниеЗадания - ПеречислениеСсылка.СостоянияЗаданий - состояние задания очереди.
+// * Шаблон - СправочникСсылка.ШаблоныЗаданийОчереди - шаблон задания,
+// используется только для разделенных заданий очереди.
+// * ЭксклюзивноеВыполнение - Булево - при установленном флаге задание будет выполнено
+// даже при установленной блокировке начала сеансов в области
+// данных. Так же если в области есть задания с таким флагом
+// сначала будут выполнены они.
+// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать
+// задание в случае его аварийного завершения.
+// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания.
+//
+Функция НайтиЗадания(Отбор) Экспорт
+
+ Результат = ПереадресацияМодуляРегламентныеЗаданияСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.НайтиЗадания(Отбор);
+ КонецЕсли;
+
+ СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор);
+
+ Возврат СписокЗаданий;
+
+КонецФункции
+
+// Аналог метода БСП. Удаляет задание из очереди или регламентное.
+//
+// Параметры:
+// Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска
+// непредопределенного регламентного задания.
+// - Строка - имя метаданных предопределенного регламентного задания в любом режиме работы
+// или строка уникального идентификатора регламентного задания в локальном режиме работы
+// или строка уникального идентификатора ссылки задания очереди в модели сервиса.
+// - УникальныйИдентификатор - идентификатор регламентного задания в локальном режиме работы.
+// или идентификатор ссылки задания очереди в модели сервиса.
+// - РегламентноеЗадание - регламентное задание, уникальный идентификатор которого используется
+// для определения удаляемого экземпляра регламентного задания в локальном режиме работы.
+// - СправочникСсылка.ОчередьЗаданий - идентификатор задания очереди в модели сервиса.
+// - СтрокаТаблицыЗначений из см. НайтиЗадания
+//
+Процедура УдалитьЗадание(Знач Идентификатор) Экспорт
+
+ Результат = ПереадресацияМодуляРегламентныеЗаданияСервер();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.УдалитьЗадание(Идентификатор);
+ Возврат;
+ КонецЕсли;
+
+ Идентификатор = УточненныйИдентификаторЗадания(Идентификатор);
+
+ УдалитьРегламентноеЗадание(Идентификатор);
+
+КонецПроцедуры
+
+// Аналог метода БСП. Добавляет новое задание в очередь или регламентное.
+//
+// Параметры:
+// Параметры - Структура - параметры добавляемого задания, возможные свойства:
+// * Использование - Булево - Истина, если регламентное задание должно выполняться автоматически согласно расписанию.
+// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - обязательно для указания. Объект метаданных, на основе
+// которого будет создано регламентное задание.
+// * Параметры - Массив - параметры регламентного задания. Количество и состав параметров должны соответствовать
+// параметрам метода регламентного задания.
+// * Ключ - Строка - прикладной идентификатор регламентного задания.
+// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать задание
+// в случае его аварийного завершения.
+// * Расписание - РасписаниеРегламентногоЗадания - расписание задания.
+// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания.
+//
+// Возвращаемое значение:
+// РегламентноеЗадание - в локальном режиме работы.
+// СтрокаТаблицыЗначений из см. НайтиЗадания
+//
+Функция ДобавитьЗадание(Параметры) Экспорт
+
+ Результат = ПереадресацияМодуляРегламентныеЗаданияСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ДобавитьЗадание(Параметры);
+ КонецЕсли;
+
+ Задание = ДобавитьРегламентноеЗадание(Параметры);
+
+ Возврат Задание;
+
+КонецФункции
+
+// Аналог метода БСП. Добавляет новое регламентное задание (без учета очереди заданий модели сервиса).
+//
+// Параметры:
+// Параметры - Структура - параметры добавляемого задания, возможные свойства:
+// * Использование - Булево - Истина, если регламентное задание должно выполняться автоматически согласно расписанию.
+// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - обязательно для указания. Объект метаданных, на основе
+// которого будет создано регламентное задание.
+// * Параметры - Массив - параметры регламентного задания. Количество и состав параметров должны соответствовать
+// параметрам метода регламентного задания.
+// * Ключ - Строка - прикладной идентификатор регламентного задания.
+// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать задание
+// в случае его аварийного завершения.
+// * Расписание - РасписаниеРегламентногоЗадания - расписание задания.
+// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания.
+//
+// Возвращаемое значение:
+// РегламентноеЗадание
+//
+Функция ДобавитьРегламентноеЗадание(Параметры) Экспорт
+
+ Результат = ПереадресацияМодуляРегламентныеЗаданияСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ДобавитьРегламентноеЗадание(Параметры);
+ КонецЕсли;
+
+ МетаданныеЗадания = Параметры.Метаданные;
+ Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание(МетаданныеЗадания);
+
+ Если Параметры.Свойство("Наименование") Тогда
+ Задание.Наименование = Параметры.Наименование;
+ Иначе
+ Задание.Наименование = МетаданныеЗадания.Наименование;
+ КонецЕсли;
+
+ Если Параметры.Свойство("Использование") Тогда
+ Задание.Использование = Параметры.Использование;
+ Иначе
+ Задание.Использование = МетаданныеЗадания.Использование;
+ КонецЕсли;
+
+ Если Параметры.Свойство("Ключ") Тогда
+ Задание.Ключ = Параметры.Ключ;
+ Иначе
+ Задание.Ключ = МетаданныеЗадания.Ключ;
+ КонецЕсли;
+
+ Если Параметры.Свойство("ИмяПользователя") Тогда
+ Задание.ИмяПользователя = Параметры.ИмяПользователя;
+ КонецЕсли;
+
+ Если Параметры.Свойство("ИнтервалПовтораПриАварийномЗавершении") Тогда
+ Задание.ИнтервалПовтораПриАварийномЗавершении = Параметры.ИнтервалПовтораПриАварийномЗавершении;
+ Иначе
+ Задание.ИнтервалПовтораПриАварийномЗавершении = МетаданныеЗадания.ИнтервалПовтораПриАварийномЗавершении;
+ КонецЕсли;
+
+ Если Параметры.Свойство("КоличествоПовторовПриАварийномЗавершении") Тогда
+ Задание.КоличествоПовторовПриАварийномЗавершении = Параметры.КоличествоПовторовПриАварийномЗавершении;
+ Иначе
+ Задание.КоличествоПовторовПриАварийномЗавершении = МетаданныеЗадания.КоличествоПовторовПриАварийномЗавершении;
+ КонецЕсли;
+
+ Если Параметры.Свойство("Параметры") Тогда
+ Задание.Параметры = Параметры.Параметры;
+ КонецЕсли;
+
+ Если Параметры.Свойство("Расписание") Тогда
+ Задание.Расписание = Параметры.Расписание;
+ КонецЕсли;
+
+ Задание.Записать();
+
+ Возврат Задание;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область Пользователи
+
+// Аналог метода БСП. Возвращает текущего пользователя.
+// Рекомендуется использовать в коде, который не поддерживает работу с внешними пользователями.
+//
+// Если вход в сеанс выполнил внешний пользователь, тогда будет вызвано исключение.
+//
+// Возвращаемое значение:
+// СправочникСсылка.Пользователи - пользователь.
+//
+Функция ТекущийПользователь() Экспорт
+
+ Результат = ПереадресацияМодуляПользователи();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ТекущийПользователь();
+ КонецЕсли;
+
+ Возврат пбп_ПереадресацияКлиентСервер.ТекущийПользователь(АвторизованныйПользователь());
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает пользователя ИБ по ссылке справочника Пользователи или ВнешниеПользователи.
+// Для поиска требуются административные права. Если административных прав нет,
+// допустимо искать только пользователя для текущего пользователя ИБ.
+//
+// Параметры:
+// Пользователь - СправочникСсылка.Пользователи
+// - СправочникСсылка.ВнешниеПользователи
+//
+// Возвращаемое значение:
+// ПользовательИнформационнойБазы - если найден.
+// Неопределено - если пользователь ИБ не существует.
+//
+Функция НайтиПоСсылке(Пользователь) Экспорт
+
+ Результат = ПереадресацияМодуляПользователи();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.НайтиПоСсылке(Пользователь);
+ КонецЕсли;
+
+ Возврат Неопределено;
+
+КонецФункции
+
+// Аналог метода БСП. Только для внутреннего использования.
+//
+// Возвращаемое значение:
+// Неопределено
+//
+Функция АвторизованныйПользователь() Экспорт
+
+ Результат = ПереадресацияМодуляПользователи();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.АвторизованныйПользователь();
+ КонецЕсли;
+
+ Возврат Неопределено;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область ПолучениеФайловИзИнтернета
+
+// Аналог метода БСП. Возвращает объект ИнтернетПрокси для доступа в Интернет.
+// Допустимые протоколы для создания ИнтернетПрокси http, https, ftp и ftps.
+//
+// Параметры:
+// URLИлиПротокол - Строка - url в формате [Протокол://]<Сервер>/<Путь к файлу на сервере>,
+// либо идентификатор протокола (http, ftp, ...).
+//
+// Возвращаемое значение:
+// ИнтернетПрокси - описывает параметры прокси-серверов для различных протоколов.
+// Если не удалось распознать схему сетевой протокол,
+// то будет создать прокси на основании протокола HTTP.
+//
+Функция ПолучитьПрокси(Знач URLИлиПротокол) Экспорт
+
+ Результат = ПереадресацияМодуляПолучениеФайловИзИнтернета();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ПолучитьПрокси(URLИлиПротокол);
+ КонецЕсли;
+
+ НастройкиПрокси = пбп_Переадресация.ХранилищеОбщихНастроекЗагрузить("НастройкаПроксиСервера", "");
+ Возврат НовыйИнтернетПрокси(НастройкиПрокси, URLИлиПротокол);
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает прокси по настройкам НастройкаПроксиСервера для заданного протокола Протокол.
+//
+// Параметры:
+// НастройкаПроксиСервера - Соответствие из КлючИЗначение:
+// * Ключ - Строка - см. ниже список возможных ключей.
+// * Значение - Произвольный
+// ИспользоватьПрокси - Булево - использовать ли прокси-сервер.
+// НеИспользоватьПроксиДляЛокальныхАдресов - использовать ли прокси-сервер для локальных адресов.
+// НеИспользоватьПроксиДляАдресов - Массив из Строка
+// ИспользоватьСистемныеНастройки - Булево - использовать ли системные настройки прокси-сервера.
+// Сервер - Строка - адрес прокси-сервера.
+// Порт - Строка - порт прокси-сервера.
+// Пользователь - Строка - имя пользователя для авторизации на прокси-сервере.
+// Пароль - Строка - пароль пользователя.
+// ИспользоватьАутентификациюОС - Булево - признак использования аутентификации средствами операционной системы.
+// URLИлиПротокол - Строка - адрес ресурса или протокол, для которого устанавливаются параметры прокси сервера,
+// например "https://1c.ru", "http", "https", "ftp", "ftps".
+//
+// Возвращаемое значение:
+// ИнтернетПрокси
+//
+Функция НовыйИнтернетПрокси(НастройкаПроксиСервера, URLИлиПротокол) Экспорт
+
+ Результат = ПереадресацияМодуляПолучениеФайловИзИнтернета();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.НовыйИнтернетПрокси(НастройкаПроксиСервера, URLИлиПротокол);
+ КонецЕсли;
+
+ Если НастройкаПроксиСервера = Неопределено Тогда
+ // Системные установки прокси-сервера.
+ Возврат Неопределено;
+ КонецЕсли;
+
+ ИспользоватьПрокси = НастройкаПроксиСервера.Получить("ИспользоватьПрокси");
+ Если Не ИспользоватьПрокси Тогда
+ // Не использовать прокси-сервер.
+ Возврат Новый ИнтернетПрокси(Ложь);
+ КонецЕсли;
+
+ ИспользоватьСистемныеНастройки = НастройкаПроксиСервера.Получить("ИспользоватьСистемныеНастройки");
+ Если ИспользоватьСистемныеНастройки Тогда
+ // Системные настройки прокси-сервера.
+ Возврат Новый ИнтернетПрокси(Истина);
+ КонецЕсли;
+
+ ИспользоватьАутентификациюОС = НастройкаПроксиСервера.Получить("ИспользоватьАутентификациюОС");
+ ИспользоватьАутентификациюОС = ?(ИспользоватьАутентификациюОС = Истина, Истина, Ложь);
+
+ ДополнительныеНастройки = НастройкаПроксиСервера.Получить("ДополнительныеНастройкиПрокси");
+ Если ТипЗнч(ДополнительныеНастройки) <> Тип("Соответствие") Тогда
+ ДополнительныеНастройки = Новый Соответствие;
+ КонецЕсли;
+
+ // Настройки прокси-сервера, заданные вручную.
+ Прокси = Новый ИнтернетПрокси;
+
+ Протоколы = СтрРазделить("http,https,ftp,ftps", ",", Ложь);
+ Для Каждого Протокол Из Протоколы Цикл
+ АдресСервера = НастройкаПроксиСервера["Сервер"];
+ Порт = НастройкаПроксиСервера["Порт"];
+
+ ПроксиПоПротоколу = ДополнительныеНастройки[Протокол];
+ Если ТипЗнч(ПроксиПоПротоколу) = Тип("Структура") Тогда
+ АдресСервера = ПроксиПоПротоколу.Адрес;
+ Порт = ПроксиПоПротоколу.Порт;
+ КонецЕсли;
+
+ Если Не ЗначениеЗаполнено(Порт) Тогда
+ Порт = Неопределено;
+ КонецЕсли;
+
+ Прокси.Установить(Протокол, АдресСервера, Порт,
+ НастройкаПроксиСервера["Пользователь"], НастройкаПроксиСервера["Пароль"], ИспользоватьАутентификациюОС);
+ КонецЦикла;
+
+ Прокси.НеИспользоватьПроксиДляЛокальныхАдресов = НастройкаПроксиСервера["НеИспользоватьПроксиДляЛокальныхАдресов"];
+
+ АдресаИсключений = НастройкаПроксиСервера.Получить("НеИспользоватьПроксиДляАдресов");
+ Если ТипЗнч(АдресаИсключений) = Тип("Массив") Тогда
+ Для каждого АдресИсключения Из АдресаИсключений Цикл
+ Прокси.НеИспользоватьПроксиДляАдресов.Добавить(АдресИсключения);
+ КонецЦикла;
+ КонецЕсли;
+
+ Возврат Прокси;
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область МодульПереадресацииПоПодсистемам
+
+Функция ПереадресацияМодуляЖурналРегистрации()
+ Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации("ЖурналРегистрации");
+КонецФункции
+
+Функция ПереадресацияМодуляОбщегоНазначения()
+ Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации("ОбщегоНазначения");
+КонецФункции
+
+Функция ПереадресацияМодуляСерверныеОповещения()
+ Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации("СерверныеОповещения");
+КонецФункции
+
+Функция ПереадресацияМодуляРегламентныеЗаданияСервер()
+ Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации("РегламентныеЗаданияСервер");
+КонецФункции
+
+Функция ПереадресацияМодуляПользователи()
+ Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации("Пользователи");
+КонецФункции
+
+Функция ПереадресацияМодуляПолучениеФайловИзИнтернета()
+ Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации("ПолучениеФайловИзИнтернета");
+КонецФункции
+
+Функция ПереадресацияМодуляФайловаяСистема()
+ Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации("ФайловаяСистема");
+КонецФункции
+
+#КонецОбласти
+
+#Область ПереадресацияМетодов
+
+#Область ФайловаяСистема
+
+// Аналог метода БСП.
+//
+Процедура УдалитьВременныеФайлы(Знач Путь)
+
+ Попытка
+ УдалитьФайлы(Путь);
+ Исключение
+ пбп_Переадресация.ДобавитьСообщениеДляЖурналаРегистрации(
+ НСтр("ru = 'Стандартные подсистемы'", пбп_Переадресация.КодОсновногоЯзыка()),
+ УровеньЖурналаРегистрации.Ошибка, , ,
+ пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось удалить временный файл ""%1"" по причине:
+ |%2'"),
+ Путь,
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
+ КонецПопытки;
+
+КонецПроцедуры
+
+// Аналог метода БСП.
+//
+Функция ЭтоИмяВременногоФайла(Путь)
+
+ // Ожидается, что Путь получен методом ПолучитьИмяВременногоФайла().
+ // Перед проверкой разворачиваем слэши в одну сторону.
+ Возврат СтрНачинаетсяС(СтрЗаменить(Путь, "/", "\"), СтрЗаменить(КаталогВременныхФайлов(), "/", "\"));
+
+КонецФункции
+
+#Область ЗапуститьПрограмму
+
+// Аналог метода БСП.
+//
+Процедура ПроверитьТекущийКаталог(СтрокаКоманды, ТекущийКаталог)
+
+ Если Не ПустаяСтрока(ТекущийКаталог) Тогда
+
+ ФайлИнфо = Новый Файл(ТекущийКаталог);
+
+ Если Не ФайлИнфо.Существует() Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось запустить программу
+ |%1
+ |по причине:
+ |Не существует каталог %2
+ |%3'"),
+ СтрокаКоманды, "ТекущийКаталог", ТекущийКаталог);
+ КонецЕсли;
+
+ Если Не ФайлИнфо.ЭтоКаталог() Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось запустить программу
+ |%1
+ |по причине:
+ |%2 не является каталогом
+ |%3'"),
+ СтрокаКоманды, "ТекущийКаталог", ТекущийКаталог);
+ КонецЕсли;
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Аналог метода БСП.
+//
+Функция ПрочитатьФайлЕслиСуществует(Путь, Кодировка)
+
+ Результат = Неопределено;
+ ФайлИнфо = Новый Файл(Путь);
+
+ Если ФайлИнфо.Существует() Тогда
+
+ ЧтениеПотокаОшибок = Новый ЧтениеТекста(Путь, Кодировка);
+ Результат = ЧтениеПотокаОшибок.Прочитать();
+ ЧтениеПотокаОшибок.Закрыть();
+
+ КонецЕсли;
+
+ Если Результат = Неопределено Тогда
+ Результат = "";
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает кодировку стандартных поток вывода и ошибок, используемую в текущей ОС.
+//
+// Возвращаемое значение:
+// КодировкаТекста
+//
+Функция КодировкаСтандартныхПотоков()
+
+ Если пбп_Переадресация.ЭтоWindowsСервер() Тогда
+ Кодировка = "CP866";
+ Иначе
+ Кодировка = "UTF-8";
+ КонецЕсли;
+
+ Возврат Кодировка;
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область РегламентныеЗаданияСервер
+
+// Аналог метода БСП.
+//
+Функция УточненныйИдентификаторЗадания(Знач Идентификатор)
+
+ Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда
+ Идентификатор = Идентификатор.УникальныйИдентификатор;
+ КонецЕсли;
+
+ Если ТипЗнч(Идентификатор) = Тип("Строка") Тогда
+ ОбъектМетаданных = Метаданные.РегламентныеЗадания.Найти(Идентификатор);
+ Если ОбъектМетаданных = Неопределено Тогда
+ Идентификатор = Новый УникальныйИдентификатор(Идентификатор);
+ Иначе
+ Идентификатор = ОбъектМетаданных;
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат Идентификатор;
+
+КонецФункции
+
+// Аналог метода БСП. Удаляет непредопределенное регламентное задание (без учета очереди заданий модели сервиса).
+//
+// Параметры:
+// Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска
+// непредопределенного регламентного задания.
+// - Строка - имя метаданных предопределенного регламентного задания
+// или строка уникального идентификатора регламентного задания.
+// - УникальныйИдентификатор - идентификатор регламентного задания.
+// - РегламентноеЗадание - регламентное задание, уникальный идентификатор которого используется
+// для определения удаляемого экземпляра регламентного задания.
+//
+Процедура УдалитьРегламентноеЗадание(Знач Идентификатор) Экспорт
+
+ Результат = ПереадресацияМодуляРегламентныеЗаданияСервер();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.УдалитьРегламентноеЗадание(Идентификатор);
+ Возврат;
+ КонецЕсли;
+
+ Идентификатор = УточненныйИдентификаторЗадания(Идентификатор);
+
+ СписокЗаданий = Новый Массив; // Массив из РегламентноеЗадание.
+
+ Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") Тогда
+ Отбор = Новый Структура("Метаданные, Предопределенное", Идентификатор, Ложь);
+ СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор);
+ Иначе
+ РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор);
+ Если РегламентноеЗадание <> Неопределено Тогда
+ СписокЗаданий.Добавить(РегламентноеЗадание);
+ КонецЕсли;
+ КонецЕсли;
+
+ Для Каждого РегламентноеЗадание Из СписокЗаданий Цикл
+ ИдентификаторЗадания = УникальныйИдентификаторЗадания(РегламентноеЗадание);
+
+ Если пбп_ОбщегоНазначенияВызовСервера.СуществуетБиблиотекаСтандартныхПодсистем() Тогда
+ УдалитьРегламентноеЗаданиеСИспользованиемКэша(ИдентификаторЗадания);
+ Иначе
+ УдалитьРегламентноеЗаданиеБезКэша(ИдентификаторЗадания);
+ КонецЕсли;
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Аналог метода БСП.
+//
+Функция УникальныйИдентификаторЗадания(Знач Идентификатор, ВРазделенномРежимеИдентификаторЗаданияОчереди = Ложь)
+
+ Если ТипЗнч(Идентификатор) = Тип("УникальныйИдентификатор") Тогда
+ Возврат Идентификатор;
+ КонецЕсли;
+
+ Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда
+ Возврат Идентификатор.УникальныйИдентификатор;
+ КонецЕсли;
+
+ Если ТипЗнч(Идентификатор) = Тип("Строка") Тогда
+ Возврат Новый УникальныйИдентификатор(Идентификатор);
+ КонецЕсли;
+
+ Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") И Идентификатор.Предопределенное Тогда
+ Возврат РегламентныеЗадания.НайтиПредопределенное(Идентификатор).УникальныйИдентификатор;
+ ИначеЕсли ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") И НЕ Идентификатор.Предопределенное Тогда
+ СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Новый Структура("Метаданные", Идентификатор));
+ Для каждого РегламентноеЗадание Из СписокЗаданий Цикл
+ Возврат РегламентноеЗадание.УникальныйИдентификатор;
+ КонецЦикла;
+ КонецЕсли;
+
+ Возврат Неопределено;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область ОбщегоНазначения
+
+#Область БезопасноеВыполнениеВнешнегоКода
+
+// Аналог метода БСП. Проверяет, что переданное имя ИмяПроцедуры является именем экспортной процедуры конфигурации.
+// Может использоваться для проверки, что переданная строка не содержит произвольного алгоритма
+// на встроенном языке 1С:Предприятия перед использованием его в операторах Выполнить и Вычислить
+// при их использовании для динамического вызова методов код конфигурации.
+//
+// В случае если переданная строка не является именем процедуры конфигурации, генерируется исключение.
+//
+// Предназначена для вызова из см. процедуру ВыполнитьМетодКонфигурации.
+//
+// Параметры:
+// ИмяПроцедуры - Строка - проверяемое имя экспортной процедуры.
+//
+Процедура ПроверитьИмяПроцедурыКонфигурации(Знач ИмяПроцедуры)
+
+ ЧастиИмени = СтрРазделить(ИмяПроцедуры, ".");
+ Если ЧастиИмени.Количество() <> 2 И ЧастиИмени.Количество() <> 3 Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3.'"),
+ "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации");
+ КонецЕсли;
+
+ ИмяОбъекта = ЧастиИмени[0];
+ Если ЧастиИмени.Количество() = 2 И Метаданные.ОбщиеМодули.Найти(ИмяОбъекта) = Неопределено Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3:
+ |Не существует общий модуль ""%4"".'"),
+ "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяОбъекта);
+ КонецЕсли;
+
+ Если ЧастиИмени.Количество() = 3 Тогда
+ ПолноеИмяОбъекта = ЧастиИмени[0] + "." + ЧастиИмени[1];
+ Попытка
+ Менеджер = МенеджерОбъектаПоИмени(ПолноеИмяОбъекта);
+ Исключение
+ Менеджер = Неопределено;
+ КонецПопытки;
+ Если Менеджер = Неопределено Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3:
+ |Не существует менеджер объекта ""%4"".'"),
+ "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ПолноеИмяОбъекта);
+ КонецЕсли;
+ КонецЕсли;
+
+ ИмяМетодаОбъекта = ЧастиИмени[ЧастиИмени.ВГраница()];
+ ВременнаяСтруктура = Новый Структура;
+ Попытка
+ // Проверка того, что ИмяПроцедуры является допустимым идентификатором.
+ // Например: МояПроцедура.
+ ВременнаяСтруктура.Вставить(ИмяМетодаОбъекта);
+ Исключение
+ КодОсновногоЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
+ ЗаписьЖурналаРегистрации(НСтр("ru = 'Безопасное выполнение метода'", КодОсновногоЯзыка),
+ УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неправильный формат параметра %1 (передано значение: ""%2"") в %3:
+ |Имя метода ""%4"" не соответствует требованиям образования имен процедур и функций.'"),
+ "ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации", ИмяМетодаОбъекта);
+ КонецПопытки;
+
+КонецПроцедуры
+
+// Аналог метода БСП. Возвращает менеджер объекта по имени.
+// Ограничение: не обрабатываются точки маршрутов бизнес-процессов.
+//
+// Параметры:
+// Имя - Строка - имя например, "Справочник", "Справочники", "Справочник.Организации".
+//
+// Возвращаемое значение:
+// СправочникиМенеджер
+// СправочникМенеджер
+// ДокументыМенеджер
+// ДокументМенеджер
+// ...
+//
+Функция МенеджерОбъектаПоИмени(Имя)
+ Перем КлассОМ, ИмяОМ, Менеджер;
+
+ ЧастиИмени = СтрРазделить(Имя, ".");
+
+ Если ЧастиИмени.Количество() > 0 Тогда
+ КлассОМ = ВРег(ЧастиИмени[0]);
+ КонецЕсли;
+
+ Если ЧастиИмени.Количество() > 1 Тогда
+ ИмяОМ = ЧастиИмени[1];
+ КонецЕсли;
+
+ Если КлассОМ = "ПЛАНОБМЕНА"
+ Или КлассОМ = "ПЛАНЫОБМЕНА" Тогда
+ Менеджер = ПланыОбмена;
+
+ ИначеЕсли КлассОМ = "СПРАВОЧНИК"
+ Или КлассОМ = "СПРАВОЧНИКИ" Тогда
+ Менеджер = Справочники;
+
+ ИначеЕсли КлассОМ = "ДОКУМЕНТ"
+ Или КлассОМ = "ДОКУМЕНТЫ" Тогда
+ Менеджер = Документы;
+
+ ИначеЕсли КлассОМ = "ЖУРНАЛДОКУМЕНТОВ"
+ Или КлассОМ = "ЖУРНАЛЫДОКУМЕНТОВ" Тогда
+ Менеджер = ЖурналыДокументов;
+
+ ИначеЕсли КлассОМ = "ПЕРЕЧИСЛЕНИЕ"
+ Или КлассОМ = "ПЕРЕЧИСЛЕНИЯ" Тогда
+ Менеджер = Перечисления;
+
+ ИначеЕсли КлассОМ = "ОБЩИЙМОДУЛЬ"
+ Или КлассОМ = "ОБЩИЕМОДУЛИ" Тогда
+
+ Возврат ОбщийМодуль(ИмяОМ);
+
+ ИначеЕсли КлассОМ = "ОТЧЕТ"
+ Или КлассОМ = "ОТЧЕТЫ" Тогда
+ Менеджер = Отчеты;
+
+ ИначеЕсли КлассОМ = "ОБРАБОТКА"
+ Или КлассОМ = "ОБРАБОТКИ" Тогда
+ Менеджер = Обработки;
+
+ ИначеЕсли КлассОМ = "ПЛАНВИДОВХАРАКТЕРИСТИК"
+ Или КлассОМ = "ПЛАНЫВИДОВХАРАКТЕРИСТИК" Тогда
+ Менеджер = ПланыВидовХарактеристик;
+
+ ИначеЕсли КлассОМ = "ПЛАНСЧЕТОВ"
+ Или КлассОМ = "ПЛАНЫСЧЕТОВ" Тогда
+ Менеджер = ПланыСчетов;
+
+ ИначеЕсли КлассОМ = "ПЛАНВИДОВРАСЧЕТА"
+ Или КлассОМ = "ПЛАНЫВИДОВРАСЧЕТА" Тогда
+ Менеджер = ПланыВидовРасчета;
+
+ ИначеЕсли КлассОМ = "РЕГИСТРСВЕДЕНИЙ"
+ Или КлассОМ = "РЕГИСТРЫСВЕДЕНИЙ" Тогда
+ Менеджер = РегистрыСведений;
+
+ ИначеЕсли КлассОМ = "РЕГИСТРНАКОПЛЕНИЯ"
+ Или КлассОМ = "РЕГИСТРЫНАКОПЛЕНИЯ" Тогда
+ Менеджер = РегистрыНакопления;
+
+ ИначеЕсли КлассОМ = "РЕГИСТРБУХГАЛТЕРИИ"
+ Или КлассОМ = "РЕГИСТРЫБУХГАЛТЕРИИ" Тогда
+ Менеджер = РегистрыБухгалтерии;
+
+ ИначеЕсли КлассОМ = "РЕГИСТРРАСЧЕТА"
+ Или КлассОМ = "РЕГИСТРЫРАСЧЕТА" Тогда
+
+ Если ЧастиИмени.Количество() < 3 Тогда
+ // Регистр расчета
+ Менеджер = РегистрыРасчета;
+ Иначе
+ КлассПодчиненногоОМ = ВРег(ЧастиИмени[2]);
+ Если ЧастиИмени.Количество() > 3 Тогда
+ ИмяПодчиненногоОМ = ЧастиИмени[3];
+ КонецЕсли;
+ Если КлассПодчиненногоОМ = "ПЕРЕРАСЧЕТ"
+ Или КлассПодчиненногоОМ = "ПЕРЕРАСЧЕТЫ" Тогда
+ // Перерасчет
+ Попытка
+ Менеджер = РегистрыРасчета[ИмяОМ].Перерасчеты;
+ ИмяОМ = ИмяПодчиненногоОМ;
+ Исключение
+ Менеджер = Неопределено;
+ КонецПопытки;
+ КонецЕсли;
+ КонецЕсли;
+
+ ИначеЕсли КлассОМ = "БИЗНЕСПРОЦЕСС"
+ Или КлассОМ = "БИЗНЕСПРОЦЕССЫ" Тогда
+ Менеджер = БизнесПроцессы;
+
+ ИначеЕсли КлассОМ = "ЗАДАЧА"
+ Или КлассОМ = "ЗАДАЧИ" Тогда
+ Менеджер = Задачи;
+
+ ИначеЕсли КлассОМ = "КОНСТАНТА"
+ Или КлассОМ = "КОНСТАНТЫ" Тогда
+ Менеджер = Константы;
+
+ ИначеЕсли КлассОМ = "ПОСЛЕДОВАТЕЛЬНОСТЬ"
+ Или КлассОМ = "ПОСЛЕДОВАТЕЛЬНОСТИ" Тогда
+ Менеджер = Последовательности;
+ КонецЕсли;
+
+ Если Менеджер <> Неопределено Тогда
+ Если ЗначениеЗаполнено(ИмяОМ) Тогда
+ Попытка
+ Возврат Менеджер[ИмяОМ];
+ Исключение
+ Менеджер = Неопределено;
+ КонецПопытки;
+ Иначе
+ Возврат Менеджер;
+ КонецЕсли;
+ КонецЕсли;
+
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось получить менеджер для объекта ""%1""'"), Имя);
+
+КонецФункции
+
+#КонецОбласти
+
+#Область УсловныеВызовы
+
+// Аналог метода БСП. Возвращает серверный модуль менеджера по имени объекта.
+//
+Функция СерверныйМодульМенеджера(Имя)
+ ОбъектНайден = Ложь;
+
+ ЧастиИмени = СтрРазделить(Имя, ".");
+ Если ЧастиИмени.Количество() = 2 Тогда
+
+ ИмяВида = ВРег(ЧастиИмени[0]);
+ ИмяОбъекта = ЧастиИмени[1];
+
+ Если ИмяВида = ВРег("Константы") Тогда
+ Если Метаданные.Константы.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("РегистрыСведений") Тогда
+ Если Метаданные.РегистрыСведений.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("РегистрыНакопления") Тогда
+ Если Метаданные.РегистрыНакопления.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("РегистрыБухгалтерии") Тогда
+ Если Метаданные.РегистрыБухгалтерии.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("РегистрыРасчета") Тогда
+ Если Метаданные.РегистрыРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("Справочники") Тогда
+ Если Метаданные.Справочники.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("Документы") Тогда
+ Если Метаданные.Документы.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("Отчеты") Тогда
+ Если Метаданные.Отчеты.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("Обработки") Тогда
+ Если Метаданные.Обработки.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("БизнесПроцессы") Тогда
+ Если Метаданные.БизнесПроцессы.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("ЖурналыДокументов") Тогда
+ Если Метаданные.ЖурналыДокументов.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("Задачи") Тогда
+ Если Метаданные.Задачи.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("ПланыСчетов") Тогда
+ Если Метаданные.ПланыСчетов.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("ПланыОбмена") Тогда
+ Если Метаданные.ПланыОбмена.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("ПланыВидовХарактеристик") Тогда
+ Если Метаданные.ПланыВидовХарактеристик.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ ИначеЕсли ИмяВида = ВРег("ПланыВидовРасчета") Тогда
+ Если Метаданные.ПланыВидовРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда
+ ОбъектНайден = Истина;
+ КонецЕсли;
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Если Не ОбъектНайден Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Объект метаданных ""%1"" не существует.'"), Имя);
+ КонецЕсли;
+
+ // BSLLS:ExecuteExternalCodeInCommonModule-off
+ // ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно.
+ УстановитьБезопасныйРежим(Истина);
+ Модуль = Вычислить(Имя);
+ // BSLLS:ExecuteExternalCodeInCommonModule-on
+
+ Возврат Модуль;
+КонецФункции
+
+#КонецОбласти
+
+#Область ХранилищеНастроек
+
+// Аналог метода БСП.
+//
+Процедура ХранилищеСохранить(МенеджерХранилища, КлючОбъекта, КлючНастроек, Настройки,
+ ОписаниеНастроек, ИмяПользователя, ОбновитьПовторноИспользуемыеЗначения)
+
+ Если Не ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
+ Возврат;
+ КонецЕсли;
+
+ МенеджерХранилища.Сохранить(КлючОбъекта, КлючНастроек(КлючНастроек), Настройки,
+ ОписаниеНастроек, ИмяПользователя);
+
+ Если ОбновитьПовторноИспользуемыеЗначения Тогда
+ ОбновитьПовторноИспользуемыеЗначения();
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Аналог метода БСП.
+//
+Функция ХранилищеЗагрузить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ЗначениеПоУмолчанию,
+ ОписаниеНастроек, ИмяПользователя)
+
+ Результат = Неопределено;
+
+ Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
+ Результат = МенеджерХранилища.Загрузить(КлючОбъекта, КлючНастроек(КлючНастроек),
+ ОписаниеНастроек, ИмяПользователя);
+ КонецЕсли;
+
+ Если Результат = Неопределено Тогда
+ Результат = ЗначениеПоУмолчанию;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Аналог метода БСП.
+//
+Процедура ХранилищеУдалить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ИмяПользователя)
+
+ Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
+ МенеджерХранилища.Удалить(КлючОбъекта, КлючНастроек(КлючНастроек), ИмяПользователя);
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Аналог метода БСП. Возвращает строку ключа настроек, не превышающую допустимую длину 128 символов.
+// Если указанная строка превышает 128, тогда вместо символов сверх 96 символов
+// добавляется их хеш-сумма по алгоритму MD5 размером 32 символа.
+//
+// Параметры:
+// Строка - Строка - строка произвольной длины.
+//
+// Возвращаемое значение:
+// Строка - не более 128 символов.
+//
+Функция КлючНастроек(Знач Строка)
+ Возврат СократитьСтрокуКонтрольнойСуммой(Строка, 128);
+КонецФункции
+
+#КонецОбласти
+
+#Область Метаданные
+
+// Аналог метода БСП.
+//
+// Параметры:
+// ПолноеИмя - Строка - Полное имя объекта метаданных.
+//
+Процедура ПроверитьОбъектМетаданныхСуществует(ПолноеИмя)
+
+ Если ОбъектМетаданныхПоПолномуИмени(ПолноеИмя) = Неопределено Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Неизвестный тип объекта метаданных ""%1"".';
+ |en = 'Unknown metadata object type: ""%1"".'"), ПолноеИмя);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область Прочее
+
+Процедура УдалитьРегламентноеЗаданиеСИспользованиемКэша(ИдентификаторЗадания)
+
+ Блокировка = Новый БлокировкаДанных;
+ ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КэшПрограммныхИнтерфейсов");
+ ЭлементБлокировки.УстановитьЗначение("Идентификатор", Строка(ИдентификаторЗадания));
+
+ НачатьТранзакцию();
+ Попытка
+ Блокировка.Заблокировать();
+ Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
+ Если Задание <> Неопределено Тогда
+ Задание.Удалить();
+ КонецЕсли;
+ ЗафиксироватьТранзакцию();
+ Исключение
+ ОтменитьТранзакцию();
+ ВызватьИсключение;
+ КонецПопытки;
+
+КонецПроцедуры
+
+Процедура УдалитьРегламентноеЗаданиеБезКэша(ИдентификаторЗадания)
+
+ Попытка
+ Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
+ Если Задание <> Неопределено Тогда
+ Задание.Удалить();
+ КонецЕсли;
+ Исключение
+ ВызватьИсключение;
+ КонецПопытки;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml"
similarity index 87%
rename from "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202.xml"
rename to "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml"
index 74d78ed8..eb3a8ad1 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202.xml"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml"
@@ -1,12 +1,12 @@
-
+
- пбп_ФайловаяСистемаКлиент
+ пбп_ПереадресацияКлиентru
- Файловая система клиент
+ Переадресация клиент
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
new file mode 100644
index 00000000..9bcfa8d2
--- /dev/null
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
@@ -0,0 +1,507 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
+// включая доработку типовых конфигураций.
+//
+// Copyright First BIT company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// URL: https://github.com/firstBitSportivnaya/PSSL/
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Область ПрограммныйИнтерфейс
+
+// Функция ОпределитьМодульПереадресации предназначена для проверки наличия общего модуля
+// БСП с указанным именем и получения этого модуля, если он существует.
+//
+// Параметры:
+// ИмяМодуля - Строка - имя общего модуля, который необходимо найти.
+//
+// Возвращаемое значение:
+// Структура - общий модуль и что он существует
+// * Модуль - ОбщийМодуль - общий модуль из БСП.
+// * МодульСуществует - Булево - Если флаг истина, модуль существует.
+//
+Функция ОпределитьМодульПереадресации(ИмяМодуля) Экспорт
+
+ Результат = Новый Структура("Модуль, МодульСуществует", , Ложь);
+
+ Если Не пбп_ОбщегоНазначенияВызовСервера.СуществуетБиблиотекаСтандартныхПодсистем() Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Модуль = Вычислить(ИмяМодуля);
+
+#Если Не ВебКлиент Тогда
+
+ // В веб-клиенте не проверяется
+ // т.к. при обращении к модулям с вызовом сервера типа такого модуля в веб-клиенте не существует.
+ Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Общий модуль ""%1"" не существует.'"),
+ ИмяМодуля);
+ КонецЕсли;
+
+#КонецЕсли
+
+ Результат.Модуль = Модуль;
+ Результат.МодульСуществует = Истина;
+
+ Возврат Результат;
+
+КонецФункции
+
+#Область ПереадресацияМетодов
+
+#Область ОбщегоНазначенияКлиент
+
+// Аналог метода БСП. Формирует и выводит сообщение, которое может быть связано с элементом управления формы.
+//
+// См. ОбщегоНазначения.СообщитьПользователю
+//
+// Параметры:
+// ТекстСообщенияПользователю - Строка - текст сообщения.
+// КлючДанных - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится.
+// Поле - Строка - наименование реквизита формы.
+// ПутьКДанным - Строка - путь к данным (путь к реквизиту формы).
+// Отказ - Булево - выходной параметр, всегда устанавливается в значение Истина.
+//
+// Пример:
+//
+// 1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта:
+// ОбщегоНазначенияКлиент.СообщитьПользователю(
+// НСтр("ru = 'Сообщение об ошибке.'"), ,
+// "ПолеВРеквизитеФормыОбъект",
+// "Объект");
+//
+// Альтернативный вариант использования в форме объекта:
+// ОбщегоНазначенияКлиент.СообщитьПользователю(
+// НСтр("ru = 'Сообщение об ошибке.'"), ,
+// "Объект.ПолеВРеквизитеФормыОбъект");
+//
+// 2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы:
+// ОбщегоНазначенияКлиент.СообщитьПользователю(
+// НСтр("ru = 'Сообщение об ошибке.'"), ,
+// "ИмяРеквизитаФормы");
+//
+// 3. Для вывода сообщения связанного с объектом информационной базы:
+// ОбщегоНазначенияКлиент.СообщитьПользователю(
+// НСтр("ru = 'Сообщение об ошибке.'"), ОбъектИнформационнойБазы, "Ответственный",,Отказ);
+//
+// 4. Для вывода сообщения по ссылке на объект информационной базы:
+// ОбщегоНазначенияКлиент.СообщитьПользователю(
+// НСтр("ru = 'Сообщение об ошибке.'"), Ссылка, , , Отказ);
+//
+// Случаи некорректного использования:
+// 1. Передача одновременно параметров КлючДанных и ПутьКДанным.
+// 2. Передача в параметре КлючДанных значения типа отличного от допустимого.
+// 3. Установка ссылки без установки поля (и/или пути к данным).
+//
+Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено,
+ Знач Поле = "", Знач ПутьКДанным = "", Отказ = Ложь) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиент();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.СообщитьПользователю(ТекстСообщенияПользователю, КлючДанных, Поле, ПутьКДанным, Отказ);
+ Возврат;
+ КонецЕсли;
+
+ Сообщение = пбп_ПереадресацияКлиентСервер.СообщениеПользователю(ТекстСообщенияПользователю,
+ КлючДанных, Поле, ПутьКДанным, Отказ);
+
+ Сообщение.Сообщить();
+
+КонецПроцедуры
+
+// Аналог метода БСП. Возвращает ссылку предопределенного элемента по его полному имени.
+// Предопределенные элементы могут содержаться только в следующих объектах:
+// - справочники;
+// - планы видов характеристик;
+// - планы счетов;
+// - планы видов расчета.
+// После изменения состава предопределенных следует выполнить метод
+// ОбновитьПовторноИспользуемыеЗначения(), который сбросит кэш ПовтИсп в текущем сеансе.
+//
+// См. ОбщегоНазначения.ПредопределенныйЭлемент
+//
+// Параметры:
+// ПолноеИмяПредопределенного - Строка - полный путь к предопределенному элементу, включая его имя.
+// Формат аналогичен функции глобального контекста ПредопределенноеЗначение().
+// Например:
+// "Справочник.ВидыКонтактнойИнформации.EmailПользователя"
+// "ПланСчетов.Хозрасчетный.Материалы"
+// "ПланВидовРасчета.Начисления.ОплатаПоОкладу".
+//
+// Возвращаемое значение:
+// ЛюбаяСсылка - ссылка на предопределенный элемент.
+// Неопределено - если предопределенный элемент есть в метаданных, но не создан в ИБ.
+//
+Функция ПредопределенныйЭлемент(ПолноеИмяПредопределенного) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиент();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ПредопределенныйЭлемент(ПолноеИмяПредопределенного);
+ КонецЕсли;
+
+ Возврат ПредопределенноеЗначение(ПолноеИмяПредопределенного);
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает Истина, если клиентское приложение запущено под управлением ОС Windows.
+//
+// См. ОбщегоНазначения.ЭтоWindowsКлиент
+//
+// Возвращаемое значение:
+// Булево - если нет клиентского приложения, возвращается Ложь.
+//
+Функция ЭтоWindowsКлиент() Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиент();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЭтоWindowsКлиент();
+ КонецЕсли;
+
+ ТипПлатформыКлиента = ТипПлатформыКлиента();
+ Возврат ТипПлатформыКлиента = ТипПлатформы.Windows_x86
+ Или ТипПлатформыКлиента = ТипПлатформы.Windows_x86_64;
+
+КонецФункции
+
+// Аналог метода БСП. Возвращает тип платформы клиента.
+//
+// Возвращаемое значение:
+// ТипПлатформы, Неопределено - тип платформы на которой запущен клиент. В режиме веб-клиента, если тип
+// платформы иной, чем описан в типе ТипПлатформы, то возвращается Неопределено.
+//
+Функция ТипПлатформыКлиента() Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиент();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ТипПлатформыКлиента();
+ КонецЕсли;
+
+ СистемнаяИнфо = Новый СистемнаяИнформация;
+ Возврат СистемнаяИнфо.ТипПлатформы;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область ФайловаяСистемаКлиент
+
+// Аналог метода БСП. Получение имени временного каталога.
+//
+// Параметры:
+// Оповещение - ОписаниеОповещения - оповещение о результате получения со следующими параметрами.
+// -- ИмяКаталога - Строка - путь к созданному каталогу.
+// -- ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения.
+// Расширение - Строка - суффикс в имени каталога, который поможет идентифицировать каталог при анализе.
+//
+Процедура СоздатьВременныйКаталог(Знач Оповещение, Расширение = "") Экспорт
+
+ Результат = ПереадресацияМодуляФайловаяСистемаКлиент();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.СоздатьВременныйКаталог(Оповещение, Расширение);
+ Возврат;
+ КонецЕсли;
+
+ Контекст = Новый Структура;
+ Контекст.Вставить("Оповещение", Оповещение);
+ Контекст.Вставить("Расширение", Расширение);
+
+ Оповещение = Новый ОписаниеОповещения("СоздатьВременныйКаталогПослеПроверкиРасширенияРаботыСФайлами",
+ пбп_ПереадресацияКлиент, Контекст);
+ ПодключитьРасширениеДляРаботыСФайлами(Оповещение,
+ НСтр("ru = 'Для создания временной папки установите расширение для работы с 1С:Предприятием.'"), Ложь);
+
+КонецПроцедуры
+
+// Аналог метода БСП. Предлагает пользователю установить расширение для работы с 1С:Предприятием в веб-клиенте.
+// Предназначена для использования в начале участков кода, в которых ведется работа с файлами.
+//
+// Параметры:
+// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - описание процедуры, которая будет вызвана после закрытия
+// формы со следующими параметрами:
+// -- РасширениеПодключено - Булево - Истина, если расширение было подключено.
+// -- ДополнительныеПараметры - Произвольный - параметры, заданные в ОписаниеОповещенияОЗакрытии.
+// ТекстПредложения - Строка - текст сообщения. Если не указан, то выводится текст по умолчанию.
+// ВозможноПродолжениеБезУстановки - Булево - если Истина, будет показана кнопка ПродолжитьБезУстановки,
+// если Ложь, будет показана кнопка Отмена.
+//
+// Пример:
+//
+// Оповещение = Новый ОписаниеОповещения("ПечатьДокументаЗавершение", ЭтотОбъект);
+// ТекстСообщения = НСтр("ru = 'Для печати документа необходимо установить расширение для работы с 1С:Предприятием.'");
+// ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(Оповещение, ТекстСообщения);
+//
+// Процедура ПечатьДокументаЗавершение(РасширениеПодключено, ДополнительныеПараметры) Экспорт
+// Если РасширениеПодключено Тогда
+// // код печати документа, рассчитывающий на то, что расширение подключено.
+// // ...
+// Иначе
+// // код печати документа, который работает без подключенного расширения.
+// // ...
+// КонецЕсли;
+//
+Процедура ПодключитьРасширениеДляРаботыСФайлами(
+ ОписаниеОповещенияОЗакрытии,
+ ТекстПредложения = "",
+ ВозможноПродолжениеБезУстановки = Истина) Экспорт
+
+ Результат = ПереадресацияМодуляФайловаяСистемаКлиент();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.ПодключитьРасширениеДляРаботыСФайлами(
+ ОписаниеОповещенияОЗакрытии,
+ ТекстПредложения,
+ ВозможноПродолжениеБезУстановки);
+ Возврат;
+ КонецЕсли;
+
+ ОписаниеОповещенияЗавершение = Новый ОписаниеОповещения(
+ "НачатьПодключениеРасширенияРаботыСФайламиПриОтветеНаВопросОбУстановке", пбп_ПереадресацияКлиент,
+ ОписаниеОповещенияОЗакрытии);
+
+#Если Не ВебКлиент Тогда
+ // В мобильном, тонком и толстом клиентах расширение подключено всегда.
+ ВыполнитьОбработкуОповещения(ОписаниеОповещенияЗавершение, "ПодключениеНеТребуется");
+ Возврат;
+#КонецЕсли
+
+ Контекст = Новый Структура;
+ Контекст.Вставить("ОписаниеОповещенияЗавершение", ОписаниеОповещенияЗавершение);
+ Контекст.Вставить("ТекстПредложения", ТекстПредложения);
+ Контекст.Вставить("ВозможноПродолжениеБезУстановки", ВозможноПродолжениеБезУстановки);
+
+ Оповещение = Новый ОписаниеОповещения(
+ "НачатьПодключениеРасширенияРаботыСФайламиПриУстановкеРасширения", пбп_ПереадресацияКлиент, Контекст);
+ НачатьПодключениеРасширенияРаботыСФайлами(Оповещение);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+#Область ПереадресацияМетодов
+
+#Область СтандартныеПодсистемыКлиент
+
+// Аналог метода БСП. Разворачивает узлы указанного дерева на форме.
+//
+// Параметры:
+// Форма - ФормаКлиентскогоПриложения - форма, на которой размещен элемент управления с деревом значений.
+// ИмяЭлементаФормы - Строка - имя элемента с таблицей формы (деревом значений) и связанного с ней
+// реквизита формы (должны совпадать).
+// ИдентификаторСтрокиДерева - Произвольный - идентификатор строки дерева, которую требуется развернуть.
+// Если указано "*", то будут развернуты все узлы верхнего уровня.
+// Если указано Неопределено, то строки дерева развернуты не будут.
+// Значение по умолчанию: "*".
+// РазвернутьСПодчиненными - Булево - если Истина, то следует раскрыть также и все подчиненные узлы.
+// По умолчанию Ложь.
+//
+Процедура РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева = "*", РазвернутьСПодчиненными = Ложь) Экспорт
+
+ Результат = ПереадресацияМодуляСтандартныеПодсистемыКлиент();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева, РазвернутьСПодчиненными);
+ Возврат;
+ КонецЕсли;
+
+ ТаблицаЭлемент = Форма.Элементы[ИмяЭлементаФормы];
+ Если ИдентификаторСтрокиДерева = "*" Тогда
+ Узлы = Форма[ИмяЭлементаФормы].ПолучитьЭлементы();
+ Для Каждого Узел Из Узлы Цикл
+ ТаблицаЭлемент.Развернуть(Узел.ПолучитьИдентификатор(), РазвернутьСПодчиненными);
+ КонецЦикла;
+ Иначе
+ ТаблицаЭлемент.Развернуть(ИдентификаторСтрокиДерева, РазвернутьСПодчиненными);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область МодульПереадресацииПоПодсистемам
+
+Функция ПереадресацияМодуляОбщегоНазначенияКлиент()
+ Возврат пбп_ПереадресацияКлиентПовтИсп.ОпределитьМодульПереадресации("ОбщегоНазначенияКлиент");
+КонецФункции
+
+Функция ПереадресацияМодуляСтандартныеПодсистемыКлиент()
+ Возврат пбп_ПереадресацияКлиентПовтИсп.ОпределитьМодульПереадресации("СтандартныеПодсистемыКлиент");
+КонецФункции
+
+Функция ПереадресацияМодуляФайловаяСистемаКлиент()
+ Возврат пбп_ПереадресацияКлиентПовтИсп.ОпределитьМодульПереадресации("ФайловаяСистемаКлиент");
+КонецФункции
+
+Функция ПереадресацияМодуляФайловаяСистемаСлужебныйКлиент()
+ Возврат пбп_ПереадресацияКлиентПовтИсп.ОпределитьМодульПереадресации("ФайловаяСистемаСлужебныйКлиент");
+КонецФункции
+
+#КонецОбласти
+
+#Область ПереадресацияМетодов
+
+#Область ФайловаяСистемаСлужебныйКлиент
+
+#Область РасширениеРаботыСФайлами
+
+// Аналог метода БСП.
+//
+Процедура НачатьПодключениеРасширенияРаботыСФайламиПриУстановкеРасширения(Подключено, Контекст) Экспорт
+
+ Результат = ПереадресацияМодуляФайловаяСистемаСлужебныйКлиент();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.НачатьПодключениеРасширенияРаботыСФайламиПриУстановкеРасширения(Подключено, Контекст);
+ Возврат;
+ КонецЕсли;
+
+ // Если расширение и так уже подключено, незачем про него спрашивать.
+ Если Подключено Тогда
+ ВыполнитьОбработкуОповещения(Контекст.ОписаниеОповещенияЗавершение, "ПодключениеНеТребуется");
+ Возврат;
+ КонецЕсли;
+
+ ВызватьИсключение НСтр("ru = 'Невозможно работать с файловой системой из браузера';");
+
+КонецПроцедуры
+
+// Аналог метода БСП.
+//
+Процедура НачатьПодключениеРасширенияРаботыСФайламиПриОтветеНаВопросОбУстановке(Действие, ОповещениеОЗакрытии) Экспорт
+
+ Результат = ПереадресацияМодуляФайловаяСистемаСлужебныйКлиент();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль
+ .НачатьПодключениеРасширенияРаботыСФайламиПриОтветеНаВопросОбУстановке(Действие, ОповещениеОЗакрытии);
+ Возврат;
+ КонецЕсли;
+
+ РасширениеПодключено = (Действие = "РасширениеПодключено" Или Действие = "ПодключениеНеТребуется");
+
+ ВыполнитьОбработкуОповещения(ОповещениеОЗакрытии, РасширениеПодключено);
+
+КонецПроцедуры
+
+#КонецОбласти // РасширениеРаботыСФайлам
+
+#Область ВременныеФайлы
+
+#Область СоздатьВременныйКаталог
+
+// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
+//
+// Параметры:
+// РасширениеПодключено - Булево
+// Контекст - Структура:
+// * Оповещение - ОписаниеОповещения
+// * Расширение - Строка
+//
+Процедура СоздатьВременныйКаталогПослеПроверкиРасширенияРаботыСФайлами(РасширениеПодключено, Контекст) Экспорт
+
+ Результат = ПереадресацияМодуляФайловаяСистемаСлужебныйКлиент();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.СоздатьВременныйКаталогПослеПроверкиРасширенияРаботыСФайлами(РасширениеПодключено, Контекст);
+ Возврат;
+ КонецЕсли;
+
+ Если РасширениеПодключено Тогда
+ Оповещение = Новый ОписаниеОповещения(
+ "СоздатьВременныйКаталогПослеПолученияВременногоКаталога", ЭтотОбъект, Контекст,
+ "СоздатьВременныйКаталогПриОбработкеОшибки", ЭтотОбъект);
+ НачатьПолучениеКаталогаВременныхФайлов(Оповещение);
+ Иначе
+ СоздатьВременныйКаталогОповеститьОбОшибке(НСтр("ru = 'Не удалось установить расширение для работы с 1С:Предприятием.'"), Контекст);
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
+//
+// Параметры:
+// ИмяКаталогаВременныхФайлов - Строка
+// Контекст - Структура:
+// * Оповещение - ОписаниеОповещения
+// * Расширение - Строка
+//
+Процедура СоздатьВременныйКаталогПослеПолученияВременногоКаталога(ИмяКаталогаВременныхФайлов, Контекст) Экспорт
+
+ Результат = ПереадресацияМодуляФайловаяСистемаСлужебныйКлиент();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.СоздатьВременныйКаталогПослеПолученияВременногоКаталога(ИмяКаталогаВременныхФайлов, Контекст);
+ Возврат;
+ КонецЕсли;
+
+ Оповещение = Контекст.Оповещение;
+ Расширение = Контекст.Расширение;
+
+ ИмяКаталога = "v8_" + Строка(Новый УникальныйИдентификатор);
+
+ Если Не ПустаяСтрока(Расширение) Тогда
+ ИмяКаталога = ИмяКаталога + "." + Расширение;
+ КонецЕсли;
+
+ НачатьСозданиеКаталога(Оповещение, ИмяКаталогаВременныхФайлов + ИмяКаталога);
+
+КонецПроцедуры
+
+// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
+Процедура СоздатьВременныйКаталогПриОбработкеОшибки(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
+
+ Результат = ПереадресацияМодуляФайловаяСистемаСлужебныйКлиент();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.СоздатьВременныйКаталогПриОбработкеОшибки(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст);
+ Возврат;
+ КонецЕсли;
+
+ СтандартнаяОбработка = Ложь;
+ ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
+ СоздатьВременныйКаталогОповеститьОбОшибке(ОписаниеОшибки, Контекст);
+
+КонецПроцедуры
+
+// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
+Процедура СоздатьВременныйКаталогОповеститьОбОшибке(ОписаниеОшибки, Контекст)
+
+ Результат = ПереадресацияМодуляФайловаяСистемаСлужебныйКлиент();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.СоздатьВременныйКаталогОповеститьОбОшибке(ОписаниеОшибки, Контекст);
+ Возврат;
+ КонецЕсли;
+
+ ПоказатьПредупреждение(, ОписаниеОшибки);
+ ИмяКаталога = "";
+ ВыполнитьОбработкуОповещения(Контекст.Оповещение, ИмяКаталога);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
+
+#КонецОбласти
+
+#КонецОбласти
+
+#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
similarity index 82%
rename from "src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml"
rename to "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
index 02cf8220..e4326226 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
@@ -1,12 +1,12 @@
-
+
- пбп_ФайловаяСистемаСлужебныйКлиент
+ пбп_ПереадресацияКлиентПовтИспru
- Файловая система служебный клиент
+ Переадресация клиент повт исп
@@ -17,7 +17,7 @@
falsefalsefalse
- DontUse
+ DuringSession
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
new file mode 100644
index 00000000..aefd1b7d
--- /dev/null
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
@@ -0,0 +1,41 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
+// включая доработку типовых конфигураций.
+//
+// Copyright First BIT company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// URL: https://github.com/firstBitSportivnaya/PSSL/
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+// Функция ОпределитьМодульПереадресации предназначена для проверки наличия общего модуля
+// БСП с указанным именем и получения этого модуля, если он существует.
+//
+// Параметры:
+// ИмяМодуля - Строка - имя общего модуля, который необходимо найти.
+//
+// Возвращаемое значение:
+// Структура - общий модуль и что он существует
+// * Модуль - ОбщийМодуль - общий модуль из БСП.
+// * МодульСуществует - Булево - Если флаг истина, модуль существует.
+//
+Функция ОпределитьМодульПереадресации(ИмяМодуля) Экспорт
+
+ Возврат пбп_ПереадресацияКлиент.ОпределитьМодульПереадресации(ИмяМодуля);
+
+КонецФункции
+
+#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
similarity index 86%
rename from "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
rename to "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
index 97488806..ac56162c 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
@@ -1,12 +1,12 @@
-
+
- пбп_ПользователиКлиентСервер
+ пбп_ПереадресацияКлиентСерверru
- Пользователи клиент сервер
+ Переадресация клиент сервер
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
new file mode 100644
index 00000000..587226eb
--- /dev/null
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
@@ -0,0 +1,775 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
+// включая доработку типовых конфигураций.
+//
+// Copyright First BIT company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// URL: https://github.com/firstBitSportivnaya/PSSL/
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Область ПрограммныйИнтерфейс
+
+// Функция ОпределитьМодульПереадресации предназначена для проверки наличия общего модуля
+// БСП с указанным именем и получения этого модуля, если он существует.
+//
+// Параметры:
+// ИмяМодуля - Строка - имя общего модуля, который необходимо найти.
+//
+// Возвращаемое значение:
+// Структура - общий модуль и что он существует
+// * Модуль - ОбщийМодуль - общий модуль из БСП.
+// * МодульСуществует - Булево - Если флаг истина, модуль существует.
+//
+Функция ОпределитьМодульПереадресации(ИмяМодуля) Экспорт
+
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации(ИмяМодуля);
+#Иначе
+ Возврат пбп_ПереадресацияКлиентПовтИсп.ОпределитьМодульПереадресации(ИмяМодуля);
+#КонецЕсли
+
+КонецФункции
+
+#Область ПереадресацияМетодов
+
+#Область ОбщегоНазначенияКлиентСервер
+
+// Аналог метода БСП. Устанавливает свойство ИмяСвойства элемента формы с именем ИмяЭлемента в значение Значение.
+// Применяется в тех случаях, когда элемента формы может не быть на форме из-за отсутствия прав у пользователя
+// на объект, реквизит объекта или команду.
+//
+// Параметры:
+// ЭлементыФормы - ВсеЭлементыФормы
+// - ЭлементыФормы - коллекция элементов управляемой формы.
+// ИмяЭлемента - Строка - имя элемента формы.
+// ИмяСвойства - Строка - имя устанавливаемого свойства элемента формы.
+// Значение - Произвольный - новое значение элемента.
+//
+Процедура УстановитьСвойствоЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства, Значение) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.УстановитьСвойствоЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства, Значение);
+ Возврат;
+ КонецЕсли;
+
+ ЭлементФормы = ЭлементыФормы.Найти(ИмяЭлемента);
+ Если ЭлементФормы <> Неопределено И ЭлементФормы[ИмяСвойства] <> Значение Тогда
+ ЭлементФормы[ИмяСвойства] = Значение;
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Аналог метода БСП. Возвращает значение свойства структуры.
+//
+// Параметры:
+// Структура - Структура
+// - ФиксированнаяСтруктура - объект, из которого необходимо прочитать значение ключа.
+// Ключ - Строка - имя свойства структуры, для которого необходимо прочитать значение.
+// ЗначениеПоУмолчанию - Произвольный - возвращается когда в структуре нет значения по указанному
+// ключу.
+// Для скорости рекомендуется передавать только быстро вычисляемые значения (например примитивные типы),
+// а инициализацию более тяжелых значений выполнять после проверки полученного значения (только если это
+// требуется).
+//
+// Возвращаемое значение:
+// Произвольный - значение свойства структуры. ЗначениеПоУмолчанию если в структуре нет указанного свойства.
+//
+Функция СвойствоСтруктуры(Структура, Ключ, ЗначениеПоУмолчанию = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.СвойствоСтруктуры(Структура, Ключ, ЗначениеПоУмолчанию);
+ КонецЕсли;
+
+ Если Структура = Неопределено Тогда
+ Возврат ЗначениеПоУмолчанию;
+ КонецЕсли;
+
+ Результат = ЗначениеПоУмолчанию;
+ Если Структура.Свойство(Ключ, Результат) Тогда
+ Возврат Результат;
+ Иначе
+ Возврат ЗначениеПоУмолчанию;
+ КонецЕсли;
+
+КонецФункции
+
+// Аналог метода БСП. Дополняет массив МассивПриемник значениями из массива МассивИсточник.
+//
+// Параметры:
+// МассивПриемник - Массив - массив, в который необходимо добавить значения.
+// МассивИсточник - Массив - массив значений для заполнения.
+// ТолькоУникальныеЗначения - Булево - если истина, то в массив будут включены только уникальные значения.
+//
+Процедура ДополнитьМассив(МассивПриемник, МассивИсточник, ТолькоУникальныеЗначения = Ложь) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.ДополнитьМассив(МассивПриемник, МассивИсточник, ТолькоУникальныеЗначения);
+ Возврат;
+ КонецЕсли;
+
+ Если ТолькоУникальныеЗначения Тогда
+
+ УникальныеЗначения = Новый Соответствие;
+
+ Для Каждого Значение Из МассивПриемник Цикл
+ УникальныеЗначения.Вставить(Значение, Истина);
+ КонецЦикла;
+
+ Для Каждого Значение Из МассивИсточник Цикл
+ Если УникальныеЗначения[Значение] = Неопределено Тогда
+ МассивПриемник.Добавить(Значение);
+ УникальныеЗначения.Вставить(Значение, Истина);
+ КонецЕсли;
+ КонецЦикла;
+
+ Иначе
+
+ Для Каждого Значение Из МассивИсточник Цикл
+ МассивПриемник.Добавить(Значение);
+ КонецЦикла;
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Аналог метода БСП. Возвращает копию исходного массива с уникальными значениями.
+//
+// Параметры:
+// Массив - Массив - массив произвольных значений.
+//
+// Возвращаемое значение:
+// Массив - массив уникальных элементов.
+//
+Функция СвернутьМассив(Знач Массив) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.СвернутьМассив(Массив);
+ КонецЕсли;
+
+ Результат = Новый Массив;
+ ДополнитьМассив(Результат, Массив, Истина);
+ Возврат Результат;
+КонецФункции
+
+// Аналог метода БСП. Возвращает значение свойства ИмяСвойства элемента формы с именем ИмяЭлемента.
+// Применяется в тех случаях, когда элемент формы может не быть на форме из-за отсутствия прав у пользователя
+// на объект, реквизит объекта или команду.
+//
+// Параметры:
+// ЭлементыФормы - ВсеЭлементыФормы
+// - ЭлементыФормы - коллекция элементов управляемой формы.
+// ИмяЭлемента - Строка - имя элемента формы.
+// ИмяСвойства - Строка - имя свойства элемента формы.
+//
+// Возвращаемое значение:
+// Произвольный - значение свойства ИмяСвойства элемента формы ИмяЭлемента.
+//
+Функция ЗначениеСвойстваЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЗначениеСвойстваЭлементаФормы(ЭлементыФормы, ИмяЭлемента, ИмяСвойства);
+ КонецЕсли;
+
+ ЭлементФормы = ЭлементыФормы.Найти(ИмяЭлемента);
+ Возврат ?(ЭлементФормы <> Неопределено, ЭлементФормы[ИмяСвойства], Неопределено);
+
+КонецФункции
+
+// Аналог метода БСП. Проверяет наличие реквизита или свойства у произвольного объекта без обращения к метаданным.
+//
+// Параметры:
+// Объект - Произвольный - объект, у которого нужно проверить наличие реквизита или свойства;
+// ИмяРеквизита - Строка - имя реквизита или свойства.
+//
+// Возвращаемое значение:
+// Булево - Истина, если есть.
+//
+Функция ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита);
+ КонецЕсли;
+
+ КлючУникальности = Новый УникальныйИдентификатор;
+ СтруктураРеквизита = Новый Структура(ИмяРеквизита, КлючУникальности);
+ ЗаполнитьЗначенияСвойств(СтруктураРеквизита, Объект);
+
+ Возврат СтруктураРеквизита[ИмяРеквизита] <> КлючУникальности;
+
+КонецФункции
+
+// Аналог метода БСП. Дополняет структуру значениями из другой структуры.
+//
+// Параметры:
+// Приемник - Структура - коллекция, в которую будут добавляться новые значения.
+// Источник - Структура - коллекция, из которой будут считываться пары Ключ и Значение для заполнения.
+// Заменять - Булево
+// - Неопределено - что делать в местах пересечения ключей источника и приемника:
+// Истина - заменять значения приемника (самый быстрый способ),
+// Ложь - не заменять значения приемника (пропускать),
+// Неопределено - значение по умолчанию. Бросать исключение.
+//
+Процедура ДополнитьСтруктуру(Приемник, Источник, Заменять = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.ДополнитьСтруктуру(Приемник, Источник, Заменять);
+ Возврат;
+ КонецЕсли;
+
+ Для Каждого Элемент Из Источник Цикл
+ Если Заменять <> Истина И Приемник.Свойство(Элемент.Ключ) Тогда
+ Если Заменять = Ложь Тогда
+ Продолжить;
+ Иначе
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Пересечение ключей источника и приемника: ""%1"".'"), Элемент.Ключ);
+ КонецЕсли;
+ КонецЕсли;
+ Приемник.Вставить(Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Аналог метода БСП. Создает массив и помещает в него переданное значение.
+//
+// Параметры:
+// Значение - Произвольный - любое значение.
+//
+// Возвращаемое значение:
+// Массив - массив из одного элемента.
+//
+Функция ЗначениеВМассиве(Знач Значение) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЗначениеВМассиве(Значение);
+ КонецЕсли;
+
+ Результат = Новый Массив;
+ Результат.Добавить(Значение);
+ Возврат Результат;
+
+КонецФункции
+
+// Аналог метода БСП. Вызывает исключение с текстом Сообщение, если Условие не равно Истина.
+// Применяется для самодиагностики кода.
+//
+// Параметры:
+// Условие - Булево - если не равно Истина, то вызывается исключение.
+// Сообщение - Строка - текст сообщения. Если не задан, то исключение вызывается с сообщением по умолчанию.
+// КонтекстПроверки - Строка - например, имя процедуры или функции, в которой выполняется проверка.
+//
+Процедура Проверить(Знач Условие, Знач Сообщение = "", Знач КонтекстПроверки = "") Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Результат.Модуль.Проверить(Условие, Сообщение, КонтекстПроверки);
+ Возврат;
+ КонецЕсли;
+
+ Если Условие <> Истина Тогда
+
+ Если ПустаяСтрока(Сообщение) Тогда
+ ТекстИсключения = НСтр("ru = 'Недопустимая операция'"); // Assertion failed
+ Иначе
+ ТекстИсключения = Сообщение;
+ КонецЕсли;
+
+ Если Не ПустаяСтрока(КонтекстПроверки) Тогда
+ ТекстИсключения = ПодставитьПараметрыВСтроку(
+ НСтр("ru = '%1 в %2'"), ТекстИсключения, КонтекстПроверки);
+ КонецЕсли;
+
+ ВызватьИсключение ТекстИсключения;
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Аналог метода БСП. Возвращает признак того, что переданное значение является, либо не является, числом.
+//
+// Параметры:
+// ПроверяемоеЗначение - Строка - значение, которое проверяется на соответствие числу.
+//
+// Возвращаемое значение:
+// Булево - признак того, что переданное значение является, либо не является, числом.
+//
+Функция ЭтоЧисло(Знач ПроверяемоеЗначение) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ЭтоЧисло(ПроверяемоеЗначение);
+ КонецЕсли;
+
+ Если ПроверяемоеЗначение = "0" Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ ОписаниеЧисла = Новый ОписаниеТипов("Число");
+
+ Возврат ОписаниеЧисла.ПривестиЗначение(ПроверяемоеЗначение) <> 0;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СтроковыеФункцииКлиентСервер
+
+// Аналог метода БСП. Разбивает строку на несколько строк по указанному разделителю. Разделитель может иметь любую длину.
+// В случаях, когда разделителем является строка из одного символа, и не используется параметр СокращатьНепечатаемыеСимволы,
+// рекомендуется использовать функцию платформы СтрРазделить.
+//
+// Параметры:
+// Значение - Строка - текст с разделителями.
+// Разделитель - Строка - разделитель строк текста, минимум 1 символ.
+// ПропускатьПустыеСтроки - Булево - признак необходимости включения в результат пустых строк.
+// Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией:
+// > для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки
+// включаются в результат;
+// > если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в
+// случае разделителя-пробела результатом функции будет массив, содержащий одно значение "" (пустая строка), а
+// при других разделителях результатом функции будет пустой массив.
+// СокращатьНепечатаемыеСимволы - Булево - сокращать непечатаемые символы по краям каждой из найденных подстрок.
+//
+// Возвращаемое значение:
+// Массив из Строка
+//
+// Пример:
+// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(",один,,два,", ",")
+// - возвратит массив из 5 элементов, три из которых - пустые: "", "один", "", "два", "";
+// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(",один,,два,", ",", Истина)
+// - возвратит массив из двух элементов: "один", "два";
+// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(" один два ", " ")
+// - возвратит массив из двух элементов: "один", "два";
+// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("")
+// - возвратит пустой массив;
+// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("",,Ложь)
+// - возвратит массив с одним элементом: ""(пустая строка);
+// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("", " ")
+// - возвратит массив с одним элементом: "" (пустая строка).
+//
+Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено,
+ СокращатьНепечатаемыеСимволы = Ложь) Экспорт
+
+ Результат = ПереадресацияМодуляСтроковыеФункцииКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль
+ .РазложитьСтрокуВМассивПодстрок(Значение, Разделитель, ПропускатьПустыеСтроки, СокращатьНепечатаемыеСимволы);
+ КонецЕсли;
+
+ Если СтрДлина(Разделитель) = 1
+ И ПропускатьПустыеСтроки = Неопределено
+ И СокращатьНепечатаемыеСимволы Тогда
+
+ Результат = СтрРазделить(Значение, Разделитель, Ложь);
+ Для Индекс = 0 По Результат.ВГраница() Цикл
+ Результат[Индекс] = СокрЛП(Результат[Индекс]);
+ КонецЦикла;
+ Возврат Результат;
+
+ КонецЕсли;
+
+ Результат = Новый Массив;
+
+ // Для обеспечения обратной совместимости.
+ Если ПропускатьПустыеСтроки = Неопределено Тогда
+ ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь);
+ Если ПустаяСтрока(Значение) Тогда
+ Если Разделитель = " " Тогда
+ Результат.Добавить("");
+ КонецЕсли;
+ Возврат Результат;
+ КонецЕсли;
+ КонецЕсли;
+ //
+
+ Позиция = СтрНайти(Значение, Разделитель);
+ Пока Позиция > 0 Цикл
+ Подстрока = Лев(Значение, Позиция - 1);
+ Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда
+ Если СокращатьНепечатаемыеСимволы Тогда
+ Результат.Добавить(СокрЛП(Подстрока));
+ Иначе
+ Результат.Добавить(Подстрока);
+ КонецЕсли;
+ КонецЕсли;
+ Значение = Сред(Значение, Позиция + СтрДлина(Разделитель));
+ Позиция = СтрНайти(Значение, Разделитель);
+ КонецЦикла;
+
+ Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Значение) Тогда
+ Если СокращатьНепечатаемыеСимволы Тогда
+ Результат.Добавить(СокрЛП(Значение));
+ Иначе
+ Результат.Добавить(Значение);
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Аналог метода БСП. Подставляет параметры в строку. Максимально возможное число параметров - 9.
+// Параметры в строке задаются как %<номер параметра>. Нумерация параметров начинается с единицы.
+//
+// Параметры:
+// ШаблонСтроки - Строка - шаблон строки с параметрами (вхождениями вида "%<номер параметра>",
+// например "%1 пошел в %2");
+// Параметр1 - Строка - значение подставляемого параметра.
+// Параметр2 - Строка
+// Параметр3 - Строка
+// Параметр4 - Строка
+// Параметр5 - Строка
+// Параметр6 - Строка
+// Параметр7 - Строка
+// Параметр8 - Строка
+// Параметр9 - Строка
+//
+// Возвращаемое значение:
+// Строка - текстовая строка с подставленными параметрами.
+//
+// Пример:
+// СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 пошел в %2'"), "Вася", "Зоопарк") = "Вася пошел
+// в Зоопарк".
+//
+Функция ПодставитьПараметрыВСтроку(Знач ШаблонСтроки,
+ Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено,
+ Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено,
+ Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) Экспорт
+
+ Результат = ПереадресацияМодуляСтроковыеФункцииКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль
+ .ПодставитьПараметрыВСтроку(ШаблонСтроки,
+ Параметр1, Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9);
+ КонецЕсли;
+
+ ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%1", Параметр1);
+ ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%2", Параметр2);
+ ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%3", Параметр3);
+ ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%4", Параметр4);
+ ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%5", Параметр5);
+ ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%6", Параметр6);
+ ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%7", Параметр7);
+ ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%8", Параметр8);
+ ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%9", Параметр9);
+ Возврат ШаблонСтроки;
+
+КонецФункции
+
+// Аналог метода БСП. Преобразует исходную строку в число без вызова исключений.
+//
+// Параметры:
+// Значение - Строка - строка, которую необходимо привести к числу.
+// Например, "10", "+10", "010", вернет 10;
+// "(10)", "-10",вернет -10;
+// "10,2", "10.2",вернет 10.2;
+// "000", " ", "",вернет 0;
+// "10текст", вернет Неопределено.
+//
+// Возвращаемое значение:
+// Число, Неопределено - полученное число, либо Неопределено, если строка не является числом.
+//
+Функция СтрокаВЧисло(Знач Значение) Экспорт
+
+ Результат = ПереадресацияМодуляСтроковыеФункцииКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.СтрокаВЧисло(Значение);
+ КонецЕсли;
+
+ Значение = СтрЗаменить(Значение, " ", "");
+ Если СтрНачинаетсяС(Значение, "(") Тогда
+ Значение = СтрЗаменить(Значение, "(", "-");
+ Значение = СтрЗаменить(Значение, ")", "");
+ КонецЕсли;
+
+ СтрокаБезНулей = СтрЗаменить(Значение, "0", "");
+ Если ПустаяСтрока(СтрокаБезНулей) Или СтрокаБезНулей = "-" Тогда
+ Возврат 0;
+ КонецЕсли;
+
+ ТипЧисло = Новый ОписаниеТипов("Число");
+ Результат = ТипЧисло.ПривестиЗначение(Значение);
+
+ Возврат ?(Результат <> 0 И Не ПустаяСтрока(СтрокаБезНулей), Результат, Неопределено);
+
+КонецФункции
+
+#КонецОбласти
+
+#Область ПользователиКлиентСервер
+
+// Аналог метода БСП. Только для внутреннего использования.
+Функция ТекущийПользователь(АвторизованныйПользователь) Экспорт
+
+ Результат = ПереадресацияМодуляПользователиКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ТекущийПользователь(АвторизованныйПользователь);
+ КонецЕсли;
+
+ Возврат АвторизованныйПользователь;
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+#Область ПереадресацияМетодов
+
+#Область ОбщегоНазначенияСлужебныйКлиентСервер
+
+// Аналог метода БСП. Параметры:
+// КомандаЗапуска - Строка
+//
+// Возвращаемое значение:
+// Строка
+//
+Функция БезопаснаяСтрокаКоманды(КомандаЗапуска) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияСлужебныйКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.БезопаснаяСтрокаКоманды(КомандаЗапуска);
+ КонецЕсли;
+
+ Результат = "";
+
+ Если ТипЗнч(КомандаЗапуска) = Тип("Строка") Тогда
+
+ ПроверитьСодержитНебезопасныеДействия(КомандаЗапуска);
+ Результат = КомандаЗапуска;
+
+ ИначеЕсли ТипЗнч(КомандаЗапуска) = Тип("Массив") Тогда
+
+ Если КомандаЗапуска.Количество() > 0 Тогда
+ ПроверитьСодержитНебезопасныеДействия(КомандаЗапуска[0]);
+ Результат = МассивВСтрокуКоманды(КомандаЗапуска);
+ Иначе
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Ожидалось, что первый элемент массива %1 будет командой или путем к исполняемому файлу.'"),
+ "КомандаЗапуска");
+ КонецЕсли;
+
+ Иначе
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Ожидалось, что значение %1 будет типа %2 или %3.'"),
+ "КомандаЗапуска", "Строка", "Массив");
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область МодульПереадресацииПоПодсистемам
+
+Функция ПереадресацияМодуляОбщегоНазначенияКлиентСервер()
+ Возврат ОпределитьМодульПереадресации("ОбщегоНазначенияКлиентСервер");
+КонецФункции
+
+Функция ПереадресацияМодуляОбщегоНазначенияСлужебныйКлиентСервер()
+ Возврат ОпределитьМодульПереадресации("ОбщегоНазначенияСлужебныйКлиентСервер");
+КонецФункции
+
+Функция ПереадресацияМодуляСтроковыеФункцииКлиентСервер()
+ Возврат ОпределитьМодульПереадресации("СтроковыеФункцииКлиентСервер");
+КонецФункции
+
+Функция ПереадресацияМодуляПользователиКлиентСервер()
+ Возврат ОпределитьМодульПереадресации("ПользователиКлиентСервер");
+КонецФункции
+
+#КонецОбласти
+
+#Область ПереадресацияМетодов
+
+#Область ОбщегоНазначенияСлужебныйКлиентСервер
+
+// Аналог метода БСП.
+//
+Функция СообщениеПользователю(
+ Знач ТекстСообщенияПользователю,
+ Знач КлючДанных,
+ Знач Поле,
+ Знач ПутьКДанным = "",
+ Отказ = Ложь,
+ ЭтоОбъект = Ложь) Экспорт
+
+ Результат = ПереадресацияМодуляОбщегоНазначенияСлужебныйКлиентСервер();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.СообщениеПользователю(
+ ТекстСообщенияПользователю,
+ КлючДанных,
+ Поле,
+ ПутьКДанным,
+ Отказ,
+ ЭтоОбъект);
+ КонецЕсли;
+
+ Сообщение = Новый СообщениеПользователю;
+ Сообщение.Текст = ТекстСообщенияПользователю;
+ Сообщение.Поле = Поле;
+
+ Если ЭтоОбъект Тогда
+ Сообщение.УстановитьДанные(КлючДанных);
+ Иначе
+ Сообщение.КлючДанных = КлючДанных;
+ КонецЕсли;
+
+ Если НЕ ПустаяСтрока(ПутьКДанным) Тогда
+ Сообщение.ПутьКДанным = ПутьКДанным;
+ КонецЕсли;
+
+ Отказ = Истина;
+
+ Возврат Сообщение;
+
+КонецФункции
+
+#Если Не ВебКлиент И Не МобильныйКлиент Тогда
+
+// Аналог метода БСП.
+//
+Функция СтрокаЗапускаКомандыWindows(СтрокаКоманды, ТекущийКаталог, ДождатьсяЗавершения, КодировкаИсполнения) Экспорт
+
+ НаборКоманд = "";
+
+ Если ЗначениеЗаполнено(КодировкаИсполнения) Тогда
+
+ Если КодировкаИсполнения = "OEM" Тогда
+ КодировкаИсполнения = 437;
+ ИначеЕсли КодировкаИсполнения = "CP866" Тогда
+ КодировкаИсполнения = 866;
+ ИначеЕсли КодировкаИсполнения = "UTF8" Тогда
+ КодировкаИсполнения = 65001;
+ КонецЕсли;
+
+ НаборКоманд = "(chcp " + Формат(КодировкаИсполнения, "ЧГ=") + ")";
+ КонецЕсли;
+
+ Если Не ПустаяСтрока(ТекущийКаталог) Тогда
+ НаборКоманд = НаборКоманд + ?(ЗначениеЗаполнено(НаборКоманд), "&&", "") + "(cd /D """ + ТекущийКаталог + """)";
+ КонецЕсли;
+ НаборКоманд = НаборКоманд + ?(ЗначениеЗаполнено(НаборКоманд), "&&", "") + "(" + СокрЛП(СтрокаКоманды) + ")";
+
+ Возврат "cmd /S /C """ + НаборКоманд + """";
+
+КонецФункции
+
+#КонецЕсли
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область Прочее
+
+#Область БезопаснаяСтрокаКоманды
+
+Функция СодержитНебезопасныеДействия(Знач СтрокаКоманды)
+
+ Возврат СтрНайти(СтрокаКоманды, "${") <> 0
+ Или СтрНайти(СтрокаКоманды, "$(") <> 0
+ Или СтрНайти(СтрокаКоманды, "`") <> 0
+ Или СтрНайти(СтрокаКоманды, "|") <> 0
+ Или СтрНайти(СтрокаКоманды, ";") <> 0
+ Или СтрНайти(СтрокаКоманды, "&") <> 0;
+
+КонецФункции
+
+Процедура ПроверитьСодержитНебезопасныеДействия(Знач КомандаЗапуска)
+ Если СодержитНебезопасныеДействия(КомандаЗапуска) Тогда
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось запустить программу.
+ |Недопустимая строка команды
+ |%1
+ |
+ |Строка команды не должна содержать символы: ""${"", ""$("", ""`"", ""|"", "";"", ""&"".'"),
+ КомандаЗапуска);
+ КонецЕсли;
+КонецПроцедуры
+
+Функция МассивВСтрокуКоманды(КомандаЗапуска)
+
+ Результат = Новый Массив;
+ НужныКавычки = Ложь;
+ Для Каждого Аргумент Из КомандаЗапуска Цикл
+
+ Если Результат.Количество() > 0 Тогда
+ Результат.Добавить(" ");
+ КонецЕсли;
+
+ НужныКавычки = Аргумент = Неопределено
+ Или ПустаяСтрока(Аргумент)
+ Или СтрНайти(Аргумент, " ")
+ Или СтрНайти(Аргумент, Символы.Таб)
+ Или СтрНайти(Аргумент, "&")
+ Или СтрНайти(Аргумент, "(")
+ Или СтрНайти(Аргумент, ")")
+ Или СтрНайти(Аргумент, "[")
+ Или СтрНайти(Аргумент, "]")
+ Или СтрНайти(Аргумент, "{")
+ Или СтрНайти(Аргумент, "}")
+ Или СтрНайти(Аргумент, "^")
+ Или СтрНайти(Аргумент, "=")
+ Или СтрНайти(Аргумент, ";")
+ Или СтрНайти(Аргумент, "!")
+ Или СтрНайти(Аргумент, "'")
+ Или СтрНайти(Аргумент, "+")
+ Или СтрНайти(Аргумент, ",")
+ Или СтрНайти(Аргумент, "`")
+ Или СтрНайти(Аргумент, "~")
+ Или СтрНайти(Аргумент, "$")
+ Или СтрНайти(Аргумент, "|");
+
+ Если НужныКавычки Тогда
+ Результат.Добавить("""");
+ КонецЕсли;
+
+ Результат.Добавить(СтрЗаменить(Аргумент, """", """"""));
+
+ Если НужныКавычки Тогда
+ Результат.Добавить("""");
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат СтрСоединить(Результат);
+
+КонецФункции
+
+#КонецОбласти // БезопаснаяСтрокаКоманды
+
+#КонецОбласти
+
+#КонецОбласти
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
similarity index 84%
rename from "src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270.xml"
rename to "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
index 8a59ebbb..acc81bc4 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270.xml"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
@@ -1,12 +1,12 @@
-
+
- пбп_ЖурналРегистрации
+ пбп_ПереадресацияПовтИспru
- Журнал регистрации
+ Переадресация повт исп
@@ -17,7 +17,7 @@
falsefalsefalse
- DontUse
+ DuringSession
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
similarity index 50%
rename from "src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
rename to "src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
index cb9061ce..392db53e 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
@@ -1,4 +1,5 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
// включая доработку типовых конфигураций.
//
// Copyright First BIT company
@@ -15,28 +16,48 @@
// See the License for the specific language governing permissions and
// limitations under the License.
//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
+// URL: https://github.com/firstBitSportivnaya/PSSL/
+///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
-Функция ОписаниеТипаВсеСсылки() Экспорт
+// Функция ОпределитьМодульПереадресации предназначена для проверки наличия общего модуля
+// БСП с указанным именем и получения этого модуля, если он существует.
+//
+// Параметры:
+// ИмяМодуля - Строка - имя общего модуля, который необходимо найти.
+//
+// Возвращаемое значение:
+// Структура - общий модуль и что он существует
+// * Модуль - ОбщийМодуль - общий модуль из БСП.
+// * МодульСуществует - Булево - Если флаг истина, модуль существует.
+//
+Функция ОпределитьМодульПереадресации(ИмяМодуля) Экспорт
- Возврат Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
- Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
- Справочники.ТипВсеСсылки(),
- Документы.ТипВсеСсылки().Типы()),
- ПланыОбмена.ТипВсеСсылки().Типы()),
- Перечисления.ТипВсеСсылки().Типы()),
- ПланыВидовХарактеристик.ТипВсеСсылки().Типы()),
- ПланыСчетов.ТипВсеСсылки().Типы()),
- ПланыВидовРасчета.ТипВсеСсылки().Типы()),
- БизнесПроцессы.ТипВсеСсылки().Типы()),
- БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().Типы()),
- Задачи.ТипВсеСсылки().Типы());
+ Возврат пбп_Переадресация.ОпределитьМодульПереадресации(ИмяМодуля);
КонецФункции
+#Область ПереадресацияМетодов
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область МодульПереадресацииПоПодсистемам
+
+Функция ПереадресацияМодуляСтандартныеПодсистемыПовтИсп()
+ Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации("СтандартныеПодсистемыПовтИсп");
+КонецФункции
+
+#КонецОбласти
+
+#Область ПереадресацияМетодов
+
+#Область СтандартныеПодсистемыПовтИсп
+
// Аналог метода БСП. Возвращает соответствие имен "функциональных" подсистем и значения Истина.
// У "функциональной" подсистемы снят флажок "Включать в командный интерфейс".
//
@@ -47,18 +68,47 @@
//
Функция ИменаПодсистем() Экспорт
+ Результат = ПереадресацияМодуляСтандартныеПодсистемыПовтИсп();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ИменаПодсистем();
+ КонецЕсли;
+
+ ОтключенныеПодсистемы = Новый Соответствие;
+
Имена = Новый Соответствие;
- ВставитьИменаПодчиненныхПодсистем(Имена, Метаданные);
+ ВставитьИменаПодчиненныхПодсистем(Имена, Метаданные, ОтключенныеПодсистемы);
Возврат Новый ФиксированноеСоответствие(Имена);
КонецФункции
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
+// Аналог метода БСП.
+//
+Функция ОписаниеТипаВсеСсылки() Экспорт
+
+ Результат = ПереадресацияМодуляСтандартныеПодсистемыПовтИсп();
+ Если Результат.МодульСуществует Тогда
+ Возврат Результат.Модуль.ОписаниеТипаВсеСсылки();
+ КонецЕсли;
+
+ Возврат Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
+ Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
+ Справочники.ТипВсеСсылки(),
+ Документы.ТипВсеСсылки().Типы()),
+ ПланыОбмена.ТипВсеСсылки().Типы()),
+ Перечисления.ТипВсеСсылки().Типы()),
+ ПланыВидовХарактеристик.ТипВсеСсылки().Типы()),
+ ПланыСчетов.ТипВсеСсылки().Типы()),
+ ПланыВидовРасчета.ТипВсеСсылки().Типы()),
+ БизнесПроцессы.ТипВсеСсылки().Типы()),
+ БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().Типы()),
+ Задачи.ТипВсеСсылки().Типы());
+
+КонецФункции
-Процедура ВставитьИменаПодчиненныхПодсистем(Имена, РодительскаяПодсистема, ИмяРодительскойПодсистемы = "")
+// Аналог метода БСП.
+//
+Процедура ВставитьИменаПодчиненныхПодсистем(Имена, РодительскаяПодсистема, ОтключенныеПодсистемы, ИмяРодительскойПодсистемы = "")
Для Каждого ТекущаяПодсистема Из РодительскаяПодсистема.Подсистемы Цикл
@@ -67,15 +117,23 @@
КонецЕсли;
ИмяТекущейПодсистемы = ИмяРодительскойПодсистемы + ТекущаяПодсистема.Имя;
- Имена.Вставить(ИмяТекущейПодсистемы, Истина);
+ Если ОтключенныеПодсистемы.Получить(ИмяТекущейПодсистемы) = Истина Тогда
+ Продолжить;
+ Иначе
+ Имена.Вставить(ИмяТекущейПодсистемы, Истина);
+ КонецЕсли;
Если ТекущаяПодсистема.Подсистемы.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
- ВставитьИменаПодчиненныхПодсистем(Имена, ТекущаяПодсистема, ИмяТекущейПодсистемы + ".");
+ ВставитьИменаПодчиненныхПодсистем(Имена, ТекущаяПодсистема, ОтключенныеПодсистемы, ИмяТекущейПодсистемы + ".");
КонецЦикла;
КонецПроцедуры
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
+#КонецОбласти
+
+#КонецОбласти
+
+#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260.xml"
deleted file mode 100644
index 7dc1a8a7..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_ПолучениеФайловИзИнтернета
-
-
- ru
- Получение файлов из Интернета
-
-
-
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl"
deleted file mode 100644
index 43f62279..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260/Ext/Module.bsl"
+++ /dev/null
@@ -1,125 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область ПрограммныйИнтерфейс
-
-// Аналог метода БСП. Возвращает объект ИнтернетПрокси для доступа в Интернет.
-// Допустимые протоколы для создания ИнтернетПрокси http, https, ftp и ftps.
-//
-// Параметры:
-// URLИлиПротокол - Строка - url в формате [Протокол://]<Сервер>/<Путь к файлу на сервере>,
-// либо идентификатор протокола (http, ftp, ...).
-//
-// Возвращаемое значение:
-// ИнтернетПрокси - описывает параметры прокси-серверов для различных протоколов.
-// Если не удалось распознать схему сетевой протокол,
-// то будет создать прокси на основании протокола HTTP.
-//
-Функция ПолучитьПрокси(Знач URLИлиПротокол) Экспорт
-
- НастройкиПрокси = пбп_ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекЗагрузить("НастройкаПроксиСервера", "");
- Возврат НовыйИнтернетПрокси(НастройкиПрокси, URLИлиПротокол);
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает прокси по настройкам НастройкаПроксиСервера для заданного протокола Протокол.
-//
-// Параметры:
-// НастройкаПроксиСервера - Соответствие из КлючИЗначение:
-// * Ключ - Строка - см. ниже список возможных ключей.
-// * Значение - Произвольный
-// ИспользоватьПрокси - Булево - использовать ли прокси-сервер.
-// НеИспользоватьПроксиДляЛокальныхАдресов - использовать ли прокси-сервер для локальных адресов.
-// НеИспользоватьПроксиДляАдресов - Массив из Строка
-// ИспользоватьСистемныеНастройки - Булево - использовать ли системные настройки прокси-сервера.
-// Сервер - Строка - адрес прокси-сервера.
-// Порт - Строка - порт прокси-сервера.
-// Пользователь - Строка - имя пользователя для авторизации на прокси-сервере.
-// Пароль - Строка - пароль пользователя.
-// ИспользоватьАутентификациюОС - Булево - признак использования аутентификации средствами операционной системы.
-// URLИлиПротокол - Строка - адрес ресурса или протокол, для которого устанавливаются параметры прокси сервера,
-// например "https://1c.ru", "http", "https", "ftp", "ftps".
-//
-// Возвращаемое значение:
-// ИнтернетПрокси
-//
-Функция НовыйИнтернетПрокси(НастройкаПроксиСервера, URLИлиПротокол) Экспорт
-
- Если НастройкаПроксиСервера = Неопределено Тогда
- // Системные установки прокси-сервера.
- Возврат Неопределено;
- КонецЕсли;
-
- ИспользоватьПрокси = НастройкаПроксиСервера.Получить("ИспользоватьПрокси");
- Если Не ИспользоватьПрокси Тогда
- // Не использовать прокси-сервер.
- Возврат Новый ИнтернетПрокси(Ложь);
- КонецЕсли;
-
- ИспользоватьСистемныеНастройки = НастройкаПроксиСервера.Получить("ИспользоватьСистемныеНастройки");
- Если ИспользоватьСистемныеНастройки Тогда
- // Системные настройки прокси-сервера.
- Возврат Новый ИнтернетПрокси(Истина);
- КонецЕсли;
-
- ИспользоватьАутентификациюОС = НастройкаПроксиСервера.Получить("ИспользоватьАутентификациюОС");
- ИспользоватьАутентификациюОС = ?(ИспользоватьАутентификациюОС = Истина, Истина, Ложь);
-
- ДополнительныеНастройки = НастройкаПроксиСервера.Получить("ДополнительныеНастройкиПрокси");
- Если ТипЗнч(ДополнительныеНастройки) <> Тип("Соответствие") Тогда
- ДополнительныеНастройки = Новый Соответствие;
- КонецЕсли;
-
- // Настройки прокси-сервера, заданные вручную.
- Прокси = Новый ИнтернетПрокси;
-
- Протоколы = СтрРазделить("http,https,ftp,ftps", ",", Ложь);
- Для Каждого Протокол Из Протоколы Цикл
- АдресСервера = НастройкаПроксиСервера["Сервер"];
- Порт = НастройкаПроксиСервера["Порт"];
-
- ПроксиПоПротоколу = ДополнительныеНастройки[Протокол];
- Если ТипЗнч(ПроксиПоПротоколу) = Тип("Структура") Тогда
- АдресСервера = ПроксиПоПротоколу.Адрес;
- Порт = ПроксиПоПротоколу.Порт;
- КонецЕсли;
-
- Если Не ЗначениеЗаполнено(Порт) Тогда
- Порт = Неопределено;
- КонецЕсли;
-
- Прокси.Установить(Протокол, АдресСервера, Порт,
- НастройкаПроксиСервера["Пользователь"], НастройкаПроксиСервера["Пароль"], ИспользоватьАутентификациюОС);
- КонецЦикла;
-
- Прокси.НеИспользоватьПроксиДляЛокальныхАдресов = НастройкаПроксиСервера["НеИспользоватьПроксиДляЛокальныхАдресов"];
-
- АдресаИсключений = НастройкаПроксиСервера.Получить("НеИспользоватьПроксиДляАдресов");
- Если ТипЗнч(АдресаИсключений) = Тип("Массив") Тогда
- Для каждого АдресИсключения Из АдресаИсключений Цикл
- Прокси.НеИспользоватьПроксиДляАдресов.Добавить(АдресИсключения);
- КонецЦикла;
- КонецЕсли;
-
- Возврат Прокси;
-
-КонецФункции
-
-#КонецОбласти
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
deleted file mode 100644
index de9b9a30..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_ПолучениеФайловИзИнтернетаСлужебный
-
-
- ru
- Получение файлов из Интернета служебный
-
-
-
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
deleted file mode 100644
index 6d3bdf63..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\260\320\271\320\273\320\276\320\262\320\230\320\267\320\230\320\275\321\202\320\265\321\200\320\275\320\265\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
+++ /dev/null
@@ -1,46 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область ПереадресацияМетодов
-
-// См. пбп_ПолучениеФайловИзИнтернета.ПолучитьПрокси.
-Функция ПолучитьПрокси(Знач URLИлиПротокол) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ПолучитьПрокси(URLИлиПротокол);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
- Возврат пбп_ОбщегоНазначенияПовтИсп.ПереадресацияОбщегоМодуля(
- "ПолучениеФайловИзИнтернета",
- "пбп_ПолучениеФайловИзИнтернета");
-КонецФункции
-
-#КонецОбласти
-
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl"
deleted file mode 100644
index ec2beb28..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Ext/Module.bsl"
+++ /dev/null
@@ -1,82 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область ПрограммныйИнтерфейс
-
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. Возвращает текущего пользователя.
-// Рекомендуется использовать в коде, который не поддерживает работу с внешними пользователями.
-//
-// Если вход в сеанс выполнил внешний пользователь, тогда будет вызвано исключение.
-//
-// Возвращаемое значение:
-// СправочникСсылка.Пользователи - пользователь.
-//
-Функция ТекущийПользователь() Экспорт
-
- Возврат пбп_ПользователиКлиентСервер.ТекущийПользователь(АвторизованныйПользователь());
-
-КонецФункции
-
-// Аналог метода БСП. Возвращает пользователя ИБ по ссылке справочника Пользователи или ВнешниеПользователи.
-// Для поиска требуются административные права. Если административных прав нет,
-// допустимо искать только пользователя для текущего пользователя ИБ.
-//
-// Параметры:
-// Пользователь - СправочникСсылка.Пользователи
-// - СправочникСсылка.ВнешниеПользователи
-//
-// Возвращаемое значение:
-// ПользовательИнформационнойБазы - если найден.
-// Неопределено - если пользователь ИБ не существует.
-//
-Функция НайтиПоСсылке(Пользователь) Экспорт
-
- Возврат Неопределено;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. Только для внутреннего использования.
-//
-// Возвращаемое значение:
-// Неопределено
-//
-Функция АвторизованныйПользователь() Экспорт
-
- Возврат Неопределено;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index 22582303..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,38 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область ПрограммныйИнтерфейс
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. Только для внутреннего использования.
-Функция ТекущийПользователь(АвторизованныйПользователь) Экспорт
-
- Возврат АвторизованныйПользователь;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
deleted file mode 100644
index 63db1756..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_ПользователиСлужебный
-
-
- ru
- Пользователи служебный
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
deleted file mode 100644
index d290de30..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
+++ /dev/null
@@ -1,51 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область ПереадресацияМетодов
-
-// См. пбп_Пользователи.ТекущийПользователь.
-Функция ТекущийПользователь() Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ТекущийПользователь();
-
-КонецФункции
-
-// См. пбп_Пользователи.НайтиПоСсылке.
-Функция НайтиПоСсылке(Пользователь) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.НайтиПоСсылке(Пользователь);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
- Возврат пбп_ОбщегоНазначенияПовтИсп.ПереадресацияОбщегоМодуля("Пользователи", "пбп_Пользователи");
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl"
index 3d0c973d..515f7554 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl"
@@ -235,7 +235,7 @@
Для Каждого Строка Из ТаблицаПредопределенных Цикл
КлючиХеша = ?(Строка.ЭтоГруппа, ДополнительныеПараметры.КлючиХешаГруппа, ДополнительныеПараметры.КлючиХешаЭлемент);
ЗаполнитьЗначенияСвойств(КлючиХеша, Строка);
- Строка.ХешСумма = пбп_ОбщегоНазначенияСлужебный.КонтрольнаяСуммаСтрокой(КлючиХеша, ХешФункция.MD5);
+ Строка.ХешСумма = пбп_Переадресация.КонтрольнаяСуммаСтрокой(КлючиХеша, ХешФункция.MD5);
КонецЦикла;
КонецПроцедуры
@@ -355,9 +355,8 @@
//
Процедура ОбновитьХешЭлемента(Объект) Экспорт
- Флаг = пбп_ОбщегоНазначенияСлужебныйКлиентСервер
- .СвойствоСтруктуры(Объект.ДополнительныеСвойства, "РучноеИзменение", Истина);
-
+ Флаг = пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(Объект.ДополнительныеСвойства, "РучноеИзменение", Истина);
+
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(Объект.Ссылка, Объект.ЭтоГруппа, Флаг);
КонецПроцедуры
@@ -387,7 +386,7 @@
ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип);
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
- Менеджер = пбп_ОбщегоНазначенияСлужебный.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
+ Менеджер = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
Если Не ОтправитьСерверноеОповещение Тогда
ИнициализироватьПредопределенныеЗначения(Менеджер);
@@ -405,7 +404,7 @@
Результат.Вставить("ИмяОбъектаМетаданных", ПолноеИмя);
Результат.Вставить("ПредставлениеОбъекта", ПредставлениеОбъекта);
- пбп_СерверныеОповещенияСлужебный.ОтправитьСерверноеОповещение(
+ пбп_Переадресация.ОтправитьСерверноеОповещение(
"пбп_ПредопределенныеЗначения",
Результат,
Неопределено);
@@ -444,7 +443,7 @@
Попытка
ЗаписатьЭлементИСвязанныеДанные(НоваяГруппа, КлючиХеша);
Исключение
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ОписаниеОшибки());
+ пбп_Переадресация.СообщитьПользователю(ОписаниеОшибки());
КонецПопытки;
Группы.Вставить(СтрокаТаблицы.ИдентификаторНастройки, НоваяГруппа.Ссылка);
@@ -468,7 +467,7 @@
Попытка
ЗаписатьЭлементИСвязанныеДанные(НовыйЭлемент, КлючиХеша);
Исключение
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ОписаниеОшибки());
+ пбп_Переадресация.СообщитьПользователю(ОписаниеОшибки());
КонецПопытки;
Если СтрокаТаблицы.Служебный_Иерархический И Не СтрокаТаблицы.Служебный_ИерархияГруппИЭлементов Тогда
@@ -512,7 +511,7 @@
СообщитьОбИзмененииРасположенияЭлемента(Элемент);
КонецЕсли;
Исключение
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ОписаниеОшибки());
+ пбп_Переадресация.СообщитьПользователю(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
@@ -571,10 +570,10 @@
ТекстСообщения = ТекстСообщения + НСтр("ru = ', включая все его подчиненные элементы.';
|en = ', including all its subordinate items.'");
КонецЕсли;
- ТекстСообщения = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
+ ТекстСообщения = пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстСообщения,
Элемент.Ссылка);
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения, Элемент);
+ пбп_Переадресация.СообщитьПользователю(ТекстСообщения, Элемент);
КонецПроцедуры
@@ -583,11 +582,11 @@
ТекстСообщения = НСтр("ru = 'Расположение элемента ''%1'' изменено. Текущее положение: ''%2''';
|en = 'The location of element ''%1'' has changed. Current position: ''%2'''");
Родитель = ?(ЗначениеЗаполнено(Элемент.Родитель), Элемент.Родитель, НСтр("ru = '''<корень>'''; en = ''''''"));
- ТекстСообщения = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
+ ТекстСообщения = пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстСообщения,
Элемент.Ссылка,
Родитель);
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения, Элемент);
+ пбп_Переадресация.СообщитьПользователю(ТекстСообщения, Элемент);
КонецПроцедуры
@@ -595,10 +594,10 @@
ТекстСообщения = НСтр("ru = 'Элемент ''%1'' успешно обновлен!';
|en = 'Item ''%1'' was successfully updated!'");
- ТекстСообщения = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
+ ТекстСообщения = пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстСообщения,
Элемент.Ссылка);
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения, Элемент);
+ пбп_Переадресация.СообщитьПользователю(ТекстСообщения, Элемент);
КонецПроцедуры
@@ -606,10 +605,10 @@
ТекстСообщения = НСтр("ru = 'Идентификатор ''%1'' не уникален!';
|en = 'Identifier ''%1'' is not unique!'");
- ТекстСообщения = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
+ ТекстСообщения = пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстСообщения,
Идентификатор);
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения);
+ пбп_Переадресация.СообщитьПользователю(ТекстСообщения);
КонецПроцедуры
@@ -617,10 +616,10 @@
ТекстСообщения = НСтр("ru = 'Идентификатор ''%1'' не заполнен!';
|en = 'Identifier ''%1'' is not filled!'");
- ТекстСообщения = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
+ ТекстСообщения = пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстСообщения,
Наименование);
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения);
+ пбп_Переадресация.СообщитьПользователю(ТекстСообщения);
КонецПроцедуры
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl"
index b2b9cf27..607f4e6a 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl"
@@ -22,7 +22,7 @@
Функция ИнициализироватьПредопределенныеЗначения(ИмяФормы) Экспорт
- Менеджер = пбп_ОбщегоНазначенияСлужебный.МенеджерОбъектаПоПолномуИмени(ИмяФормы);
+ Менеджер = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ИмяФормы);
ТаблицаКонфликтныхЭлементов = пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Менеджер);
АдресТаблицы = "";
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
index 0e0db170..576b8951 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
@@ -27,7 +27,7 @@
Параметры = Новый Массив;
Параметры.Добавить(Таблица);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(Выражение, Параметры);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(Выражение, Параметры);
Возврат Параметры[0];
@@ -240,9 +240,9 @@
Параметры = Новый Массив;
Параметры.Добавить(Менеджер);
- ДопКолонки = пбп_ОбщегоНазначенияСлужебный.ВычислитьВБезопасномРежиме(Выражение);
+ ДопКолонки = пбп_Переадресация.ВычислитьВБезопасномРежиме(Выражение);
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьСтруктуру(Колонки, ДопКолонки);
+ пбп_ПереадресацияКлиентСервер.ДополнитьСтруктуру(Колонки, ДопКолонки);
Возврат Колонки;
@@ -313,14 +313,17 @@
//
Функция КолонкиНастройкиИнтеграции() Экспорт
+ ДлинаСтрокиПодключения = 200;
+ ДлинаИмениОбъекта = 100;
+
Колонки = Новый Структура;
// Добавление
Колонки.Вставить("ИнтегрируемаяСистема" , Новый ОписаниеТипов("СправочникСсылка.пбп_ИнтегрируемыеСистемы"));
Колонки.Вставить("ТипИнтеграции" , Новый ОписаниеТипов("СправочникСсылка.пбп_ТипыИнтеграций"));
- Колонки.Вставить("СтрокаПодключения" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(200));
+ Колонки.Вставить("СтрокаПодключения" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаСтрокиПодключения));
Колонки.Вставить("ТипАвторизации" , Новый ОписаниеТипов("ПеречислениеСсылка.пбп_ТипыАвторизации"));
- Колонки.Вставить("ИмяОбъекта" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(100));
+ Колонки.Вставить("ИмяОбъекта" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаИмениОбъекта));
// КонецДобавления
Возврат Колонки;
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
index 32bffb88..c3f768a6 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
@@ -24,10 +24,10 @@
Процедура ПриПолученииСерверногоОповещения(ИмяОповещения, Результат) Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда
- Текст = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
+ Текст = пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Существуют конфликты предопределенных элементов ''%1'''"),
Результат.ПредставлениеОбъекта);
- Пояснение = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
+ Пояснение = пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Разрешить конфликты предопределенных элементов ''%1'''"),
Результат.ПредставлениеОбъекта);
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Ext/Module.bsl"
index 7b16e0e5..d1345ff8 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Ext/Module.bsl"
@@ -55,14 +55,14 @@
// Создание типа "Таблица значений"
Функция ОписаниеТипаТаблицаЗначений() Экспорт
- Возврат Новый ОписаниеТипов(пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(Тип("ТаблицаЗначений")));
+ Возврат Новый ОписаниеТипов(пбп_ПереадресацияКлиентСервер.ЗначениеВМассиве(Тип("ТаблицаЗначений")));
КонецФункции
// Создание типа "Динамический список"
Функция ОписаниеТипаДинамическийСписок() Экспорт
- Возврат Новый ОписаниеТипов(пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(Тип("ДинамическийСписок")));
+ Возврат Новый ОписаниеТипов(пбп_ПереадресацияКлиентСервер.ЗначениеВМассиве(Тип("ДинамическийСписок")));
КонецФункции
@@ -1293,7 +1293,7 @@
// ИмяРеквизита - Строка - Имя удаляемого реквизита, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО!
Процедура УдалитьРеквизит(Форма, ИмяРеквизита) Экспорт
- УдалитьРеквизиты(Форма, пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(ИмяРеквизита));
+ УдалитьРеквизиты(Форма, пбп_ПереадресацияКлиентСервер.ЗначениеВМассиве(ИмяРеквизита));
КонецПроцедуры
@@ -1317,7 +1317,7 @@
// ИмяРеквизита - Строка - Имя удаляемого элемента на форме, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО!
Процедура УдалитьЭлемент(Форма, ИмяЭлемента) Экспорт
- УдалитьЭлементы(Форма, пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеВМассиве(ИмяЭлемента));
+ УдалитьЭлементы(Форма, пбп_ПереадресацияКлиентСервер.ЗначениеВМассиве(ИмяЭлемента));
КонецПроцедуры
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml"
deleted file mode 100644
index da0e728c..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_РегламентныеЗаданияСервер
-
-
- ru
- Регламентные задания сервер
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index 371698e5..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,339 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область ПрограммныйИнтерфейс
-
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. В локальном режиме работы возвращает регламентные задания, соответствующие отбору.
-// В модели сервиса - таблицу значений, в которой содержится описание найденных заданий
-// в справочнике ОчередьЗаданий.
-//
-// Параметры:
-// Отбор - Структура - со свойствами:
-// 1) Общие для любого режима работы:
-// * УникальныйИдентификатор - УникальныйИдентификатор - идентификатор регламентного задания в локальном
-// режиме работы или идентификатор ссылки задания очереди в модели сервиса.
-// - Строка - строка уникального идентификатора регламентного задания в локальном
-// режиме работы или идентификатор ссылки задания очереди в модели сервиса.
-// - СправочникСсылка.ОчередьЗаданий - идентификатор задания
-// очереди в модели сервиса.
-// - СтрокаТаблицыЗначений из см. НайтиЗадания
-// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - метаданные регламентного задания.
-// - Строка - имя метаданных регламентного задания.
-// * Использование - Булево - если Истина, задание включено.
-// * Ключ - Строка - прикладной идентификатор задания.
-// 2) Возможные ключи только локального режима:
-// * Наименование - Строка - наименование регламентного задания.
-// * Предопределенное - Булево - если Истина, регламентное задание определено в метаданных.
-// 3) Возможные ключи только для модели сервиса:
-// * ИмяМетода - Строка - имя метода (или псевдоним) обработчика очереди задании.
-// * ОбластьДанных - Число - значение разделителя области данных задания.
-// * СостояниеЗадания - ПеречислениеСсылка.СостоянияЗаданий - состояние задания очереди.
-// * Шаблон - СправочникСсылка.ШаблоныЗаданийОчереди - шаблон задания, используется только
-// для разделенных заданий очереди.
-//
-// Возвращаемое значение:
-// Массив из РегламентноеЗадание - в локальном режиме работы массив регламентных заданий.
-// ТаблицаЗначений - в модели сервиса с колонками:
-// * Использование - Булево - если Истина, задание включено.
-// * Ключ - Строка - прикладной идентификатор задания.
-// * Параметры - Массив - параметры, передаваемые в обработчик задания.
-// * Расписание - РасписаниеРегламентногоЗадания - расписание задания.
-// * УникальныйИдентификатор - СправочникСсылка.ОчередьЗаданий - идентификатор задания
-// очереди в модели сервиса.
-// * ЗапланированныйМоментЗапуска - Дата - дата и время запланированного запуска задания
-// (в часовом поясе области данных).
-// * ИмяМетода - Строка - имя метода (или псевдоним) обработчика очереди задании.
-// * ОбластьДанных - Число - значение разделителя области данных задания.
-// * СостояниеЗадания - ПеречислениеСсылка.СостоянияЗаданий - состояние задания очереди.
-// * Шаблон - СправочникСсылка.ШаблоныЗаданийОчереди - шаблон задания,
-// используется только для разделенных заданий очереди.
-// * ЭксклюзивноеВыполнение - Булево - при установленном флаге задание будет выполнено
-// даже при установленной блокировке начала сеансов в области
-// данных. Так же если в области есть задания с таким флагом
-// сначала будут выполнены они.
-// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать
-// задание в случае его аварийного завершения.
-// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания.
-//
-Функция НайтиЗадания(Отбор) Экспорт
-
- СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор);
-
- Возврат СписокЗаданий;
-
-КонецФункции
-
-// Аналог метода БСП. Удаляет задание из очереди или регламентное.
-//
-// Параметры:
-// Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска
-// непредопределенного регламентного задания.
-// - Строка - имя метаданных предопределенного регламентного задания в любом режиме работы
-// или строка уникального идентификатора регламентного задания в локальном режиме работы
-// или строка уникального идентификатора ссылки задания очереди в модели сервиса.
-// - УникальныйИдентификатор - идентификатор регламентного задания в локальном режиме работы.
-// или идентификатор ссылки задания очереди в модели сервиса.
-// - РегламентноеЗадание - регламентное задание, уникальный идентификатор которого используется
-// для определения удаляемого экземпляра регламентного задания в локальном режиме работы.
-// - СправочникСсылка.ОчередьЗаданий - идентификатор задания очереди в модели сервиса.
-// - СтрокаТаблицыЗначений из см. НайтиЗадания
-//
-Процедура УдалитьЗадание(Знач Идентификатор) Экспорт
-
- Идентификатор = УточненныйИдентификаторЗадания(Идентификатор);
-
- УдалитьРегламентноеЗадание(Идентификатор);
-
-КонецПроцедуры
-
-// Аналог метода БСП. Добавляет новое задание в очередь или регламентное.
-//
-// Параметры:
-// Параметры - Структура - параметры добавляемого задания, возможные свойства:
-// * Использование - Булево - Истина, если регламентное задание должно выполняться автоматически согласно расписанию.
-// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - обязательно для указания. Объект метаданных, на основе
-// которого будет создано регламентное задание.
-// * Параметры - Массив - параметры регламентного задания. Количество и состав параметров должны соответствовать
-// параметрам метода регламентного задания.
-// * Ключ - Строка - прикладной идентификатор регламентного задания.
-// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать задание
-// в случае его аварийного завершения.
-// * Расписание - РасписаниеРегламентногоЗадания - расписание задания.
-// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания.
-//
-// Возвращаемое значение:
-// РегламентноеЗадание - в локальном режиме работы.
-// СтрокаТаблицыЗначений из см. НайтиЗадания
-//
-Функция ДобавитьЗадание(Параметры) Экспорт
-
- Задание = ДобавитьРегламентноеЗадание(Параметры);
-
- Возврат Задание;
-
-КонецФункции
-
-// Аналог метода БСП. Добавляет новое регламентное задание (без учета очереди заданий модели сервиса).
-//
-// Параметры:
-// Параметры - Структура - параметры добавляемого задания, возможные свойства:
-// * Использование - Булево - Истина, если регламентное задание должно выполняться автоматически согласно расписанию.
-// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - обязательно для указания. Объект метаданных, на основе
-// которого будет создано регламентное задание.
-// * Параметры - Массив - параметры регламентного задания. Количество и состав параметров должны соответствовать
-// параметрам метода регламентного задания.
-// * Ключ - Строка - прикладной идентификатор регламентного задания.
-// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать задание
-// в случае его аварийного завершения.
-// * Расписание - РасписаниеРегламентногоЗадания - расписание задания.
-// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания.
-//
-// Возвращаемое значение:
-// РегламентноеЗадание
-//
-Функция ДобавитьРегламентноеЗадание(Параметры) Экспорт
-
- МетаданныеЗадания = Параметры.Метаданные;
- Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание(МетаданныеЗадания);
-
- Если Параметры.Свойство("Наименование") Тогда
- Задание.Наименование = Параметры.Наименование;
- Иначе
- Задание.Наименование = МетаданныеЗадания.Наименование;
- КонецЕсли;
-
- Если Параметры.Свойство("Использование") Тогда
- Задание.Использование = Параметры.Использование;
- Иначе
- Задание.Использование = МетаданныеЗадания.Использование;
- КонецЕсли;
-
- Если Параметры.Свойство("Ключ") Тогда
- Задание.Ключ = Параметры.Ключ;
- Иначе
- Задание.Ключ = МетаданныеЗадания.Ключ;
- КонецЕсли;
-
- Если Параметры.Свойство("ИмяПользователя") Тогда
- Задание.ИмяПользователя = Параметры.ИмяПользователя;
- КонецЕсли;
-
- Если Параметры.Свойство("ИнтервалПовтораПриАварийномЗавершении") Тогда
- Задание.ИнтервалПовтораПриАварийномЗавершении = Параметры.ИнтервалПовтораПриАварийномЗавершении;
- Иначе
- Задание.ИнтервалПовтораПриАварийномЗавершении = МетаданныеЗадания.ИнтервалПовтораПриАварийномЗавершении;
- КонецЕсли;
-
- Если Параметры.Свойство("КоличествоПовторовПриАварийномЗавершении") Тогда
- Задание.КоличествоПовторовПриАварийномЗавершении = Параметры.КоличествоПовторовПриАварийномЗавершении;
- Иначе
- Задание.КоличествоПовторовПриАварийномЗавершении = МетаданныеЗадания.КоличествоПовторовПриАварийномЗавершении;
- КонецЕсли;
-
- Если Параметры.Свойство("Параметры") Тогда
- Задание.Параметры = Параметры.Параметры;
- КонецЕсли;
-
- Если Параметры.Свойство("Расписание") Тогда
- Задание.Расписание = Параметры.Расписание;
- КонецЕсли;
-
- Задание.Записать();
-
- Возврат Задание;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП.
-//
-Функция УточненныйИдентификаторЗадания(Знач Идентификатор)
-
- Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда
- Идентификатор = Идентификатор.УникальныйИдентификатор;
- КонецЕсли;
-
- Если ТипЗнч(Идентификатор) = Тип("Строка") Тогда
- ОбъектМетаданных = Метаданные.РегламентныеЗадания.Найти(Идентификатор);
- Если ОбъектМетаданных = Неопределено Тогда
- Идентификатор = Новый УникальныйИдентификатор(Идентификатор);
- Иначе
- Идентификатор = ОбъектМетаданных;
- КонецЕсли;
- КонецЕсли;
-
- Возврат Идентификатор;
-
-КонецФункции
-
-// Аналог метода БСП. Удаляет непредопределенное регламентное задание (без учета очереди заданий модели сервиса).
-//
-// Параметры:
-// Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска
-// непредопределенного регламентного задания.
-// - Строка - имя метаданных предопределенного регламентного задания
-// или строка уникального идентификатора регламентного задания.
-// - УникальныйИдентификатор - идентификатор регламентного задания.
-// - РегламентноеЗадание - регламентное задание, уникальный идентификатор которого используется
-// для определения удаляемого экземпляра регламентного задания.
-//
-Процедура УдалитьРегламентноеЗадание(Знач Идентификатор) Экспорт
-
- Идентификатор = УточненныйИдентификаторЗадания(Идентификатор);
-
- СписокЗаданий = Новый Массив; // Массив из РегламентноеЗадание.
-
- Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") Тогда
- Отбор = Новый Структура("Метаданные, Предопределенное", Идентификатор, Ложь);
- СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор);
- Иначе
- РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор);
- Если РегламентноеЗадание <> Неопределено Тогда
- СписокЗаданий.Добавить(РегламентноеЗадание);
- КонецЕсли;
- КонецЕсли;
-
- Для Каждого РегламентноеЗадание Из СписокЗаданий Цикл
- ИдентификаторЗадания = УникальныйИдентификаторЗадания(РегламентноеЗадание);
-
- Если пбп_ОбщегоНазначенияВызовСервера.СуществуетБиблиотекаСтандартныхПодсистем() Тогда
- УдалитьРегламентноеЗаданиеСИспользованиемКэша(ИдентификаторЗадания);
- Иначе
- УдалитьРегламентноеЗаданиеБезКэша(ИдентификаторЗадания);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-// Аналог метода БСП.
-//
-Функция УникальныйИдентификаторЗадания(Знач Идентификатор, ВРазделенномРежимеИдентификаторЗаданияОчереди = Ложь)
-
- Если ТипЗнч(Идентификатор) = Тип("УникальныйИдентификатор") Тогда
- Возврат Идентификатор;
- КонецЕсли;
-
- Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда
- Возврат Идентификатор.УникальныйИдентификатор;
- КонецЕсли;
-
- Если ТипЗнч(Идентификатор) = Тип("Строка") Тогда
- Возврат Новый УникальныйИдентификатор(Идентификатор);
- КонецЕсли;
-
- Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") И Идентификатор.Предопределенное Тогда
- Возврат РегламентныеЗадания.НайтиПредопределенное(Идентификатор).УникальныйИдентификатор;
- ИначеЕсли ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") И НЕ Идентификатор.Предопределенное Тогда
- СписокЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Новый Структура("Метаданные", Идентификатор));
- Для каждого РегламентноеЗадание Из СписокЗаданий Цикл
- Возврат РегламентноеЗадание.УникальныйИдентификатор;
- КонецЦикла;
- КонецЕсли;
-
- Возврат Неопределено;
-
-КонецФункции
-
-#КонецОбласти
-
-Процедура УдалитьРегламентноеЗаданиеСИспользованиемКэша(ИдентификаторЗадания)
-
- Блокировка = Новый БлокировкаДанных;
- ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КэшПрограммныхИнтерфейсов");
- ЭлементБлокировки.УстановитьЗначение("Идентификатор", Строка(ИдентификаторЗадания));
-
- НачатьТранзакцию();
- Попытка
- Блокировка.Заблокировать();
- Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
- Если Задание <> Неопределено Тогда
- Задание.Удалить();
- КонецЕсли;
- ЗафиксироватьТранзакцию();
- Исключение
- ОтменитьТранзакцию();
- ВызватьИсключение;
- КонецПопытки;
-
-КонецПроцедуры
-
-Процедура УдалитьРегламентноеЗаданиеБезКэша(ИдентификаторЗадания)
-
- Попытка
- Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
- Если Задание <> Неопределено Тогда
- Задание.Удалить();
- КонецЕсли;
- Исключение
- ВызватьИсключение;
- КонецПопытки;
-
-КонецПроцедуры
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.xml"
deleted file mode 100644
index 9b2584d9..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_РегламентныеЗаданияСлужебныйСервер
-
-
- ru
- Регламентные задания служебный сервер
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index 6687f9ba..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\320\265\320\227\320\260\320\264\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,61 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область ПереадресацияМетодов
-
-// См. пбп_РегламентныеЗаданияСервер.НайтиЗадания.
-Функция НайтиЗадания(Отбор) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.НайтиЗадания(Отбор);
-
-КонецФункции
-
-// См. пбп_РегламентныеЗаданияСервер.ДобавитьЗадание.
-Функция ДобавитьЗадание(Параметры) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ДобавитьЗадание(Параметры);
-
-КонецФункции
-
-// См. пбп_РегламентныеЗаданияСервер.УдалитьЗадание.
-Процедура УдалитьЗадание(Знач Идентификатор) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.НайтиЗадания(Идентификатор);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
- Возврат пбп_ОбщегоНазначенияПовтИсп.ПереадресацияОбщегоМодуля(
- "РегламентныеЗаданияСервер",
- "пбп_РегламентныеЗаданияСервер");
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217.xml"
deleted file mode 100644
index 90556b6b..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_СерверныеОповещения
-
-
- ru
- Серверные оповещения (пбп)
-
-
-
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217/Ext/Module.bsl"
deleted file mode 100644
index d0674d66..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217/Ext/Module.bsl"
+++ /dev/null
@@ -1,57 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-////////////////////////////////////////////////////////////////////////////////
-// серверные оповещения: аналог модуля БСП
-
-#Область ПрограммныйИнтерфейс
-
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. Добавляет серверное оповещение в очередь для доставки на клиент.
-// Оповещение доставляется через систему взаимодействия,
-// либо забирается в рамках общего серверного вызова.
-//
-// Параметры:
-// ИмяОповещения - Строка - смотри НовоеСерверноеОповещение.Имя.
-//
-// Результат - Произвольный - произвольное сериализуемое значение,
-// которое будет отправлено в составе оповещения на клиент
-// (должны быть как можно меньшего размера, желательно не более 1 Кб).
-//
-// Адресаты - Неопределено - все пользователи (и соответственно все сеансы).
-// Если указано незаполненное соответствие, тогда возврат.
-// - Соответствие из КлючИЗначение:
-// * Ключ - УникальныйИдентификатор - идентификатор пользователя ИБ.
-// * Значение - Массив из см. СерверныеОповещения.КлючСеанса
-//
-// ОтправитьСразу - Булево - если Истина, попытаться сразу отправить сообщение
-// через систему взаимодействия перед добавлением в очередь.
-// Отправка сразу не допускается из обработчиков ПриОтправкеСерверногоОповещения.
-// Следует учесть (особенно при вызове в транзакции), что неудачное обращение
-// к системе взаимодействия может занимать (3-5 сек)*2, а удачное не менее (50 мс)*2.
-//
-Процедура ОтправитьСерверноеОповещение(ИмяОповещения, Результат, Адресаты, ОтправитьСразу = Ложь) Экспорт
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
deleted file mode 100644
index 8f91ab28..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_СерверныеОповещенияСлужебный
-
-
- ru
- Серверные оповещения служебный (пбп)
-
-
-
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
deleted file mode 100644
index 0a4d0b72..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\265\321\200\320\262\320\265\321\200\320\275\321\213\320\265\320\236\320\277\320\276\320\262\320\265\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
+++ /dev/null
@@ -1,46 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-////////////////////////////////////////////////////////////////////////////////
-// серверные оповещения служебный: аналог модуля БСП
-
-#Область ПрограммныйИнтерфейс
-
-#Область ПереадресацияМетодов
-
-// См. пбп_СерверныеОповещения.ОтправитьСерверноеОповещение.
-Процедура ОтправитьСерверноеОповещение(ИмяОповещения, Результат, Адресаты, ОтправитьСразу = Ложь) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.ОтправитьСерверноеОповещение(ИмяОповещения, Результат, Адресаты, ОтправитьСразу);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
- Возврат пбп_ОбщегоНазначенияПовтИсп.ПереадресацияОбщегоМодуля("СерверныеОповещения", "пбп_СерверныеОповещения");
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl"
index 46890954..6bb15fec 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Ext/Module.bsl"
@@ -44,7 +44,7 @@
ПараметрыМетода.Добавить(Источник);
ПараметрыМетода.Добавить(ОбъектКопирования);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Источник = ПараметрыМетода[0];
@@ -81,7 +81,7 @@
ПараметрыМетода.Добавить(ТекстЗаполнения);
ПараметрыМетода.Добавить(СтандартнаяОбработка);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Источник = ПараметрыМетода[0];
СтандартнаяОбработка = ПараметрыМетода[3];
@@ -115,7 +115,7 @@
ПараметрыМетода.Добавить(Источник);
ПараметрыМетода.Добавить(Отказ);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Источник = ПараметрыМетода[0];
Если ПараметрыМетода[1] Тогда
@@ -151,7 +151,7 @@
ПараметрыМетода.Добавить(Источник);
ПараметрыМетода.Добавить(Отказ);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Если ПараметрыМетода[1] Тогда
Отказ = Истина;
@@ -189,7 +189,7 @@
ПараметрыМетода.Добавить(Отказ);
ПараметрыМетода.Добавить(ПроверяемыеРеквизиты);
- пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Если ПараметрыМетода[1] Тогда
Отказ = Истина;
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\232\320\273\320\270\320\265\320\275\321\202.xml"
deleted file mode 100644
index 20817793..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\232\320\273\320\270\320\265\320\275\321\202.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_СтандартныеПодсистемыКлиент
-
-
- ru
- Стандартные подсистемы клиент
-
-
-
- false
- true
- false
- false
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
deleted file mode 100644
index e7ec1cdd..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ /dev/null
@@ -1,58 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область ПрограммныйИнтерфейс
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. Разворачивает узлы указанного дерева на форме.
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - форма, на которой размещен элемент управления с деревом значений.
-// ИмяЭлементаФормы - Строка - имя элемента с таблицей формы (деревом значений) и связанного с ней
-// реквизита формы (должны совпадать).
-// ИдентификаторСтрокиДерева - Произвольный - идентификатор строки дерева, которую требуется развернуть.
-// Если указано "*", то будут развернуты все узлы верхнего уровня.
-// Если указано Неопределено, то строки дерева развернуты не будут.
-// Значение по умолчанию: "*".
-// РазвернутьСПодчиненными - Булево - если Истина, то следует раскрыть также и все подчиненные узлы.
-// По умолчанию Ложь.
-//
-Процедура РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева = "*", РазвернутьСПодчиненными = Ложь) Экспорт
-
- ТаблицаЭлемент = Форма.Элементы[ИмяЭлементаФормы];
- Если ИдентификаторСтрокиДерева = "*" Тогда
- Узлы = Форма[ИмяЭлементаФормы].ПолучитьЭлементы();
- Для Каждого Узел Из Узлы Цикл
- ТаблицаЭлемент.Развернуть(Узел.ПолучитьИдентификатор(), РазвернутьСПодчиненными);
- КонецЦикла;
- Иначе
- ТаблицаЭлемент.Развернуть(ИдентификаторСтрокиДерева, РазвернутьСПодчиненными);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
deleted file mode 100644
index f7dcf277..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_СтандартныеПодсистемыПовтИсп
-
-
- ru
- Стандартные подсистемы повт исп
-
-
-
- false
- false
- true
- true
- true
- false
- false
- DuringSession
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml"
deleted file mode 100644
index fc34e38d..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_СтандартныеПодсистемыСлужебныйКлиент
-
-
- ru
- Стандартные подсистемы служебный клиент
-
-
-
- false
- true
- false
- false
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
deleted file mode 100644
index 7b7bc688..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ /dev/null
@@ -1,47 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область ПрограммныйИнтерфейс
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область ПереадресацияМетодов
-
-// См. пбп_СтандартныеПодсистемыКлиент.РазвернутьУзлыДерева.
-Процедура РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева = "*", РазвернутьСПодчиненными = Ложь) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева, РазвернутьСПодчиненными);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
- Возврат пбп_ОбщегоНазначенияКлиент.ОбщийМодуль("СтандартныеПодсистемыКлиент", "пбп_СтандартныеПодсистемыКлиент");
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
deleted file mode 100644
index 1bc1a3ac..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_СтандартныеПодсистемыСлужебныйПовтИсп
-
-
- ru
- Стандартные подсистемы служебный повт исп
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DuringSession
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
deleted file mode 100644
index 10aab2cf..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
+++ /dev/null
@@ -1,53 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область ПереадресацияМетодов
-
-// См. пбп_СтандартныеПодсистемыПовтИсп.ОписаниеТипаВсеСсылки.
-Функция ОписаниеТипаВсеСсылки() Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ОписаниеТипаВсеСсылки();
-
-КонецФункции
-
-// См. пбп_СтандартныеПодсистемыПовтИсп.ИменаПодсистем.
-Функция ИменаПодсистем() Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ИменаПодсистем();
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
- Возврат пбп_ОбщегоНазначенияПовтИсп.ПереадресацияОбщегоМодуля(
- "СтандартныеПодсистемыПовтИсп",
- "пбп_СтандартныеПодсистемыПовтИсп");
-КонецФункции
-
-#КонецОбласти
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
index 940012a3..138cb5e4 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
@@ -115,187 +115,6 @@
КонецФункции
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. Разбивает строку на несколько строк по указанному разделителю. Разделитель может иметь любую длину.
-// В случаях, когда разделителем является строка из одного символа, и не используется параметр СокращатьНепечатаемыеСимволы,
-// рекомендуется использовать функцию платформы СтрРазделить.
-//
-// Параметры:
-// Значение - Строка - текст с разделителями.
-// Разделитель - Строка - разделитель строк текста, минимум 1 символ.
-// ПропускатьПустыеСтроки - Булево - признак необходимости включения в результат пустых строк.
-// Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией:
-// > для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки
-// включаются в результат;
-// > если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в
-// случае разделителя-пробела результатом функции будет массив, содержащий одно значение "" (пустая строка), а
-// при других разделителях результатом функции будет пустой массив.
-// СокращатьНепечатаемыеСимволы - Булево - сокращать непечатаемые символы по краям каждой из найденных подстрок.
-//
-// Возвращаемое значение:
-// Массив из Строка
-//
-// Пример:
-// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(",один,,два,", ",")
-// - возвратит массив из 5 элементов, три из которых - пустые: "", "один", "", "два", "";
-// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(",один,,два,", ",", Истина)
-// - возвратит массив из двух элементов: "один", "два";
-// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(" один два ", " ")
-// - возвратит массив из двух элементов: "один", "два";
-// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("")
-// - возвратит пустой массив;
-// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("",,Ложь)
-// - возвратит массив с одним элементом: ""(пустая строка);
-// СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("", " ")
-// - возвратит массив с одним элементом: "" (пустая строка).
-//
-Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено,
- СокращатьНепечатаемыеСимволы = Ложь) Экспорт
-
- Если СтрДлина(Разделитель) = 1
- И ПропускатьПустыеСтроки = Неопределено
- И СокращатьНепечатаемыеСимволы Тогда
-
- Результат = СтрРазделить(Значение, Разделитель, Ложь);
- Для Индекс = 0 По Результат.ВГраница() Цикл
- Результат[Индекс] = СокрЛП(Результат[Индекс])
- КонецЦикла;
- Возврат Результат;
-
- КонецЕсли;
-
- Результат = Новый Массив;
-
- // Для обеспечения обратной совместимости.
- Если ПропускатьПустыеСтроки = Неопределено Тогда
- ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь);
- Если ПустаяСтрока(Значение) Тогда
- Если Разделитель = " " Тогда
- Результат.Добавить("");
- КонецЕсли;
- Возврат Результат;
- КонецЕсли;
- КонецЕсли;
- //
-
- Позиция = СтрНайти(Значение, Разделитель);
- Пока Позиция > 0 Цикл
- Подстрока = Лев(Значение, Позиция - 1);
- Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда
- Если СокращатьНепечатаемыеСимволы Тогда
- Результат.Добавить(СокрЛП(Подстрока));
- Иначе
- Результат.Добавить(Подстрока);
- КонецЕсли;
- КонецЕсли;
- Значение = Сред(Значение, Позиция + СтрДлина(Разделитель));
- Позиция = СтрНайти(Значение, Разделитель);
- КонецЦикла;
-
- Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Значение) Тогда
- Если СокращатьНепечатаемыеСимволы Тогда
- Результат.Добавить(СокрЛП(Значение));
- Иначе
- Результат.Добавить(Значение);
- КонецЕсли;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Аналог метода БСП. Подставляет параметры в строку. Максимально возможное число параметров - 9.
-// Параметры в строке задаются как %<номер параметра>. Нумерация параметров начинается с единицы.
-//
-// Параметры:
-// ШаблонСтроки - Строка - шаблон строки с параметрами (вхождениями вида "%<номер параметра>",
-// например "%1 пошел в %2");
-// Параметр1 - Строка - значение подставляемого параметра.
-// Параметр2 - Строка
-// Параметр3 - Строка
-// Параметр4 - Строка
-// Параметр5 - Строка
-// Параметр6 - Строка
-// Параметр7 - Строка
-// Параметр8 - Строка
-// Параметр9 - Строка
-//
-// Возвращаемое значение:
-// Строка - текстовая строка с подставленными параметрами.
-//
-// Пример:
-// СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 пошел в %2'"), "Вася", "Зоопарк") = "Вася пошел
-// в Зоопарк".
-//
-Функция ПодставитьПараметрыВСтроку(Знач ШаблонСтроки,
- Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено,
- Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено,
- Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) Экспорт
-
- ЕстьПараметрыСПроцентом = СтрНайти(Параметр1, "%")
- Или СтрНайти(Параметр2, "%")
- Или СтрНайти(Параметр3, "%")
- Или СтрНайти(Параметр4, "%")
- Или СтрНайти(Параметр5, "%")
- Или СтрНайти(Параметр6, "%")
- Или СтрНайти(Параметр7, "%")
- Или СтрНайти(Параметр8, "%")
- Или СтрНайти(Параметр9, "%");
-
- Если ЕстьПараметрыСПроцентом Тогда
- //Возврат ПодставитьПараметрыСПроцентом(ШаблонСтроки, Параметр1,
- // Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9);
- КонецЕсли;
-
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%1", Параметр1);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%2", Параметр2);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%3", Параметр3);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%4", Параметр4);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%5", Параметр5);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%6", Параметр6);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%7", Параметр7);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%8", Параметр8);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%9", Параметр9);
- Возврат ШаблонСтроки;
-
-КонецФункции
-
-// Аналог метода БСП. Преобразует исходную строку в число без вызова исключений.
-//
-// Параметры:
-// Значение - Строка - строка, которую необходимо привести к числу.
-// Например, "10", "+10", "010", вернет 10;
-// "(10)", "-10",вернет -10;
-// "10,2", "10.2",вернет 10.2;
-// "000", " ", "",вернет 0;
-// "10текст", вернет Неопределено.
-//
-// Возвращаемое значение:
-// Число, Неопределено - полученное число, либо Неопределено, если строка не является числом.
-//
-Функция СтрокаВЧисло(Знач Значение) Экспорт
-
- Значение = СтрЗаменить(Значение, " ", "");
- Если СтрНачинаетсяС(Значение, "(") Тогда
- Значение = СтрЗаменить(Значение, "(", "-");
- Значение = СтрЗаменить(Значение, ")", "");
- КонецЕсли;
-
- СтрокаБезНулей = СтрЗаменить(Значение, "0", "");
- Если ПустаяСтрока(СтрокаБезНулей) Или СтрокаБезНулей = "-" Тогда
- Возврат 0;
- КонецЕсли;
-
- ТипЧисло = Новый ОписаниеТипов("Число");
- Результат = ТипЧисло.ПривестиЗначение(Значение);
-
- Возврат ?(Результат <> 0 И Не ПустаяСтрока(СтрокаБезНулей), Результат, Неопределено);
-
-КонецФункции
-
-#КонецОбласти
-
// Превращает строку camelCase в синоним
//
// Параметры:
@@ -306,7 +125,7 @@
//
Функция СинонимСтроки(ИсходнаяСтрока) Экспорт
- Результат = пбп_СтроковыеФункцииСлужебныйКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИсходнаяСтрока);
+ Результат = пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИсходнаяСтрока);
Если Результат.Количество() > 1 Тогда
Возврат "";
КонецЕсли;
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
deleted file mode 100644
index 8c55e286..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_СтроковыеФункцииСлужебныйКлиентСервер
-
-
- ru
- Строковые функции служебный клиент сервер
-
-
-
- false
- true
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index e5d032ef..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,70 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-////////////////////////////////////////////////////////////////////////////////
-// Строковые функции клиент сервер служебный: Аналог общего модуля БСП
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область ПереадресацияМетодов
-
-// См. пбп_СтроковыеФункцииСлужебныйКлиентСервер.РазложитьСтрокуВМассивПодстрок.
-Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено,
- СокращатьНепечатаемыеСимволы = Ложь) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.РазложитьСтрокуВМассивПодстрок(Значение, Разделитель, ПропускатьПустыеСтроки,
- СокращатьНепечатаемыеСимволы);
-
-КонецФункции
-
-// См. пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку.
-Функция ПодставитьПараметрыВСтроку(Знач ШаблонСтроки,
- Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено,
- Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено,
- Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ПодставитьПараметрыВСтроку(ШаблонСтроки, Параметр1, Параметр2, Параметр3, Параметр4 , Параметр5,
- Параметр6, Параметр7, Параметр8, Параметр9);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
-
- #Если Клиент Тогда
- Возврат пбп_ОбщегоНазначенияКлиент.ОбщийМодуль(
- "СтроковыеФункцииКлиентСервер",
- "пбп_СтроковыеФункцииКлиентСервер");
- #Иначе
- Возврат пбп_ОбщегоНазначенияВызовСервера.ПереадресацияОбщегоМодуля(
- "СтроковыеФункцииКлиентСервер",
- "пбп_СтроковыеФункцииКлиентСервер");
- #КонецЕсли
-
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\205\320\265\320\274\321\213\320\227\320\260\320\277\321\200\320\276\321\201\320\276\320\262/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\205\320\265\320\274\321\213\320\227\320\260\320\277\321\200\320\276\321\201\320\276\320\262/Ext/Module.bsl"
index 94b0bb6c..d6a38932 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\205\320\265\320\274\321\213\320\227\320\260\320\277\321\200\320\276\321\201\320\276\320\262/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\241\321\205\320\265\320\274\321\213\320\227\320\260\320\277\321\200\320\276\321\201\320\276\320\262/Ext/Module.bsl"
@@ -757,7 +757,7 @@
Если ТипЗнч(ДоступныеПоля) = Тип("Строка") Тогда
Описание.Вставить(
"ДоступныеПоля",
- пбп_СтроковыеФункцииСлужебныйКлиентСервер.РазложитьСтрокуВМассивПодстрок(
+ пбп_ПереадресацияКлиентСервер.РазложитьСтрокуВМассивПодстрок(
ДоступныеПоля, ",", Истина, Истина));
Иначе
Описание.Вставить("ДоступныеПоля", ДоступныеПоля);
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260.xml"
deleted file mode 100644
index 4759a1e9..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_ФайловаяСистема
-
-
- ru
- Файловая система
-
-
-
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260/Ext/Module.bsl"
deleted file mode 100644
index 99da6443..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260/Ext/Module.bsl"
+++ /dev/null
@@ -1,355 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-////////////////////////////////////////////////////////////////////////////////
-// Файловая система: аналог модуля БСП
-
-#Область ПрограммныйИнтерфейс
-
-#Область МетодыАналогиБСП
-
-// Аналог метода БСП. Удаляет временный файл.
-//
-// Выбрасывает исключение, если передано имя не временного файла.
-//
-// Если временный файл не может быть удален (например, он занят каким-то процессом),
-// то в журнал регистрации записывается соответствующее предупреждение, а процедура завершается.
-//
-// Для совместного использования с методом ПолучитьИмяВременногоФайла,
-// после окончания работы с временным файлом.
-//
-// Параметры:
-// Путь - Строка - полный путь к временному файлу.
-//
-Процедура УдалитьВременныйФайл(Знач Путь) Экспорт
-
- Если НЕ ЭтоИмяВременногоФайла(Путь) Тогда
- ВызватьИсключение пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Неверное значение параметра %1 в %2:
- |Файл не является временным ""%3"".'"),
- "Путь", "ФайловаяСистема.УдалитьВременныйФайл", Путь);
- КонецЕсли;
-
- УдалитьВременныеФайлы(Путь);
-
-КонецПроцедуры
-
-#Область ЗапускВнешнихПриложений
-
-////////////////////////////////////////////////////////////////////////////////
-// Процедуры и функции для работы с внешними приложениями.
-
-// Аналог метода БСП. Конструктор параметров для ФайловаяСистема.ЗапуститьПрограмму.
-//
-// Возвращаемое значение:
-// Структура:
-// * ТекущийКаталог - Строка - задает текущий каталог запускаемого приложения.
-// * ДождатьсяЗавершения - Булево - Ложь - дожидаться завершения запущенного приложения
-// перед продолжением работы.
-// * ПолучитьПотокВывода - Булево - Ложь - результат, направленный в поток stdout,
-// если не указан ДождатьсяЗавершения - игнорируется.
-// * ПолучитьПотокОшибок - Булево - Ложь - ошибки, направленные в поток stderr,
-// если не указан ДождатьсяЗавершения - игнорируется.
-// * КодировкаПотоков - КодировкаТекста
-// - Строка - кодировка, используемая для чтения stdout и stderr.
-// По умолчанию используется для Windows "CP866", для остальных - "UTF-8".
-// * КодировкаИсполнения - Строка
-// - Число - кодировка, устанавливаемая в Windows с помощью команды chcp,
-// возможные значения: "OEM", "CP866", "UTF8" или номер кодовой страницы.
-// В Linux устанавливается переменной окружения "LANGUAGE" для конкретной команды,
-// возможные значения можно определить выполнив команду "locale -a", например "ru_RU.UTF-8".
-// В MacOS игнорируется.
-//
-Функция ПараметрыЗапускаПрограммы() Экспорт
-
- Параметры = Новый Структура;
- Параметры.Вставить("ТекущийКаталог", "");
- Параметры.Вставить("ДождатьсяЗавершения", Ложь);
- Параметры.Вставить("ПолучитьПотокВывода", Ложь);
- Параметры.Вставить("ПолучитьПотокОшибок", Ложь);
- Параметры.Вставить("КодировкаПотоков", Неопределено);
- Параметры.Вставить("КодировкаИсполнения", Неопределено);
-
- Возврат Параметры;
-
-КонецФункции
-
-// Запускает внешнюю программу на исполнение (например, *.exe, *bat),
-// или системную команду (например, ping, tracert или traceroute, обращаться к rac-клиенту),
-// Позволяет также получать код возврата и значения потоков вывода (stdout) и ошибок (stderr)
-//
-// При запуске внешней программы в пакетном режиме поток вывода и поток ошибок может возвращаться на не ожидаемом языке.
-// Для того чтобы передать внешней программе язык, на котором ожидается результат следует:
-// - указать язык в параметре запуска этой программы (если такой параметр предусмотрен).
-// Например, в пакетном режиме платформы 1С:Предприятие предусмотрен ключ "/L en";
-// - в других случаях явно установить кодировку исполнения пакетной команды.
-// См. свойство КодировкаИсполнения возвращаемого значения ФайловаяСистема.ПараметрыЗапускаПрограммы.
-//
-// Параметры:
-// КомандаЗапуска - Строка - командная строка для запуска программы.
-// - Массив - первый элемент массива, путь к исполняемому приложению,
-// остальные элементы массива - это передаваемые параметры,
-// массив соответствует тому, который получит вызываемая программа в argv.
-// ПараметрыЗапускаПрограммы - см. ФайловаяСистема.ПараметрыЗапускаПрограммы
-//
-// Возвращаемое значение:
-// Структура:
-// * КодВозврата - Число - код возврата программы;
-// * ПотокВывода - Строка - результат работы программы, направленный в поток stdout;
-// * ПотокОшибок - Строка - ошибки исполнения программы, направленные в поток stderr.
-//
-// Пример:
-// // Простой запуск
-// ФайловаяСистема.ЗапуститьПрограмму("calc");
-//
-// // Запуск с ожиданием завершения
-// ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
-// ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
-// ФайловаяСистема.ЗапуститьПрограмму("C:\Program Files\1cv8\common\1cestart.exe",
-// ПараметрыЗапускаПрограммы);
-//
-// // Запуск с ожиданием завершения и получением потока вывода
-// ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
-// ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
-// ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
-// Результат = ФайловаяСистема("ping 127.0.0.1 -n 5", ПараметрыЗапускаПрограммы);
-// ОбщегоНазначений.СообщитьПользователю(Результат.ПотокВывода);
-//
-// // Запуск с ожиданием завершения и получением потока вывода и с конкатенацией команды запуска
-// ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
-// ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
-// ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
-// КомандаЗапуска = Новый Массив;
-// КомандаЗапуска.Добавить("ping");
-// КомандаЗапуска.Добавить("127.0.0.1");
-// КомандаЗапуска.Добавить("-n");
-// КомандаЗапуска.Добавить(5);
-// Результат = ФайловаяСистема.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы);
-// ОбщегоНазначений.СообщитьПользователю(Результат.ПотокВывода);
-//
-Функция ЗапуститьПрограмму(Знач КомандаЗапуска, ПараметрыЗапускаПрограммы = Неопределено) Экспорт
-
- // АПК:534-выкл методы безопасного запуска обеспечиваются этой функцией
-
- СтрокаКоманды = пбп_ОбщегоНазначенияСлужебныйКлиентСервер.БезопаснаяСтрокаКоманды(КомандаЗапуска);
-
- Если ПараметрыЗапускаПрограммы = Неопределено Тогда
- ПараметрыЗапускаПрограммы = ПараметрыЗапускаПрограммы();
- КонецЕсли;
-
- ТекущийКаталог = ПараметрыЗапускаПрограммы.ТекущийКаталог;
- ДождатьсяЗавершения = ПараметрыЗапускаПрограммы.ДождатьсяЗавершения;
- ПолучитьПотокВывода = ПараметрыЗапускаПрограммы.ПолучитьПотокВывода;
- ПолучитьПотокОшибок = ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок;
- КодировкаПотоков = ПараметрыЗапускаПрограммы.КодировкаПотоков;
- КодировкаИсполнения = ПараметрыЗапускаПрограммы.КодировкаИсполнения;
-
- ПроверитьТекущийКаталог(СтрокаКоманды, ТекущийКаталог);
-
- Если ДождатьсяЗавершения Тогда
- Если ПолучитьПотокВывода Тогда
- // BSLLS:MissingTemporaryFileDeletion-off
- ИмяФайлаПотокаВывода = ПолучитьИмяВременногоФайла("stdout.tmp");
- // BSLLS:MissingTemporaryFileDeletion-on
- СтрокаКоманды = СтрокаКоманды + " > """ + ИмяФайлаПотокаВывода + """";
- КонецЕсли;
-
- Если ПолучитьПотокОшибок Тогда
- // BSLLS:MissingTemporaryFileDeletion-off
- ИмяФайлаПотокаОшибок = ПолучитьИмяВременногоФайла("stderr.tmp");
- // BSLLS:MissingTemporaryFileDeletion-on
- СтрокаКоманды = СтрокаКоманды + " 2>""" + ИмяФайлаПотокаОшибок + """";
- КонецЕсли;
- КонецЕсли;
-
- Если КодировкаПотоков = Неопределено Тогда
- КодировкаПотоков = КодировкаСтандартныхПотоков();
- КонецЕсли;
-
- // Для cmd не всегда активна текущая кодовая страница, поэтому всегда задаем по-умолчанию.
- Если КодировкаИсполнения = Неопределено И пбп_ОбщегоНазначенияСлужебный.ЭтоWindowsСервер() Тогда
- КодировкаИсполнения = "CP866";
- КонецЕсли;
-
- КодВозврата = Неопределено;
-
- Если пбп_ОбщегоНазначенияСлужебный.ЭтоWindowsСервер() Тогда
-
- СтрокаКоманды = пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СтрокаЗапускаКомандыWindows(
- СтрокаКоманды, ТекущийКаталог, ДождатьсяЗавершения, КодировкаИсполнения);
-
- Если пбп_ОбщегоНазначенияСлужебный.ИнформационнаяБазаФайловая() Тогда
- // В файловой информационной базе показывать окно консоли не следует и в серверном контексте.
- Оболочка = Новый COMОбъект("Wscript.Shell");
- КодВозврата = Оболочка.Run(СтрокаКоманды, 0, ДождатьсяЗавершения);
- Оболочка = Неопределено;
- Иначе
- // BSLLS:ExternalAppStarting-off
- ЗапуститьПриложение(СтрокаКоманды, , ДождатьсяЗавершения, КодВозврата);
- // BSLLS:ExternalAppStarting-on
- КонецЕсли;
-
- Иначе
-
- Если пбп_ОбщегоНазначенияСлужебный.ЭтоLinuxСервер() И ЗначениеЗаполнено(КодировкаИсполнения) Тогда
- СтрокаКоманды = "LANGUAGE=" + КодировкаИсполнения + " " + СтрокаКоманды;
- КонецЕсли;
-
- // BSLLS:ExternalAppStarting-off
- ЗапуститьПриложение(СтрокаКоманды, ТекущийКаталог, ДождатьсяЗавершения, КодВозврата);
- // BSLLS:ExternalAppStarting-on
- КонецЕсли;
-
- ПотокВывода = "";
- ПотокОшибок = "";
-
- Если ДождатьсяЗавершения Тогда
- Если ПолучитьПотокВывода Тогда
- ПотокВывода = ПрочитатьФайлЕслиСуществует(ИмяФайлаПотокаВывода, КодировкаПотоков);
- УдалитьВременныйФайл(ИмяФайлаПотокаВывода);
- КонецЕсли;
-
- Если ПолучитьПотокОшибок Тогда
- ПотокОшибок = ПрочитатьФайлЕслиСуществует(ИмяФайлаПотокаОшибок, КодировкаПотоков);
- УдалитьВременныйФайл(ИмяФайлаПотокаОшибок);
- КонецЕсли;
- КонецЕсли;
-
- Результат = Новый Структура;
- Результат.Вставить("КодВозврата", КодВозврата);
- Результат.Вставить("ПотокВывода", ПотокВывода);
- Результат.Вставить("ПотокОшибок", ПотокОшибок);
-
- Возврат Результат;
-
- // АПК:534-вкл
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти // МетодыАналогиБСП
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-// Аналог метода БСП.
-Процедура УдалитьВременныеФайлы(Знач Путь)
-
- Попытка
- УдалитьФайлы(Путь);
- Исключение
- пбп_ЖурналРегистрацииСлужебный.ДобавитьСообщениеДляЖурналаРегистрации(
- НСтр("ru = 'Стандартные подсистемы'", пбп_ОбщегоНазначенияСервер.КодОсновногоЯзыка()),
- УровеньЖурналаРегистрации.Ошибка, , ,
- пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Не удалось удалить временный файл ""%1"" по причине:
- |%2'"),
- Путь,
- ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
- КонецПопытки;
-
-КонецПроцедуры
-
-// Аналог метода БСП.
-Функция ЭтоИмяВременногоФайла(Путь)
-
- // Ожидается, что Путь получен методом ПолучитьИмяВременногоФайла().
- // Перед проверкой разворачиваем слэши в одну сторону.
- Возврат СтрНачинаетсяС(СтрЗаменить(Путь, "/", "\"), СтрЗаменить(КаталогВременныхФайлов(), "/", "\"));
-
-КонецФункции
-
-#Область ЗапуститьПрограмму
-
-// Аналог метода БСП.
-Процедура ПроверитьТекущийКаталог(СтрокаКоманды, ТекущийКаталог)
-
- Если Не ПустаяСтрока(ТекущийКаталог) Тогда
-
- ФайлИнфо = Новый Файл(ТекущийКаталог);
-
- Если Не ФайлИнфо.Существует() Тогда
- ВызватьИсключение пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Не удалось запустить программу
- |%1
- |по причине:
- |Не существует каталог %2
- |%3'"),
- СтрокаКоманды, "ТекущийКаталог", ТекущийКаталог);
- КонецЕсли;
-
- Если Не ФайлИнфо.ЭтоКаталог() Тогда
- ВызватьИсключение пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Не удалось запустить программу
- |%1
- |по причине:
- |%2 не является каталогом
- |%3'"),
- СтрокаКоманды, "ТекущийКаталог", ТекущийКаталог);
- КонецЕсли;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-// Аналог метода БСП.
-Функция ПрочитатьФайлЕслиСуществует(Путь, Кодировка)
-
- Результат = Неопределено;
- ФайлИнфо = Новый Файл(Путь);
-
- Если ФайлИнфо.Существует() Тогда
-
- ЧтениеПотокаОшибок = Новый ЧтениеТекста(Путь, Кодировка);
- Результат = ЧтениеПотокаОшибок.Прочитать();
- ЧтениеПотокаОшибок.Закрыть();
-
- КонецЕсли;
-
- Если Результат = Неопределено Тогда
- Результат = "";
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// // Аналог метода БСП. Возвращает кодировку стандартных поток вывода и ошибок, используемую в текущей ОС.
-//
-// Возвращаемое значение:
-// КодировкаТекста
-//
-Функция КодировкаСтандартныхПотоков()
-
- Если пбп_ОбщегоНазначенияСлужебный.ЭтоWindowsСервер() Тогда
- Кодировка = "CP866";
- Иначе
- Кодировка = "UTF-8";
- КонецЕсли;
-
- Возврат Кодировка;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
deleted file mode 100644
index 8842f0bd..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ /dev/null
@@ -1,100 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-////////////////////////////////////////////////////////////////////////////////
-// Файловая система клиент: аналог модуля БСП
-
-#Область ПрограммныйИнтерфейс
-
-// Аналог метода БСП. Получение имени временного каталога.
-//
-// Параметры:
-// Оповещение - ОписаниеОповещения - оповещение о результате получения со следующими параметрами.
-// -- ИмяКаталога - Строка - путь к созданному каталогу.
-// -- ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения.
-// Расширение - Строка - суффикс в имени каталога, который поможет идентифицировать каталог при анализе.
-//
-Процедура СоздатьВременныйКаталог(Знач Оповещение, Расширение = "") Экспорт
-
- Контекст = Новый Структура;
- Контекст.Вставить("Оповещение", Оповещение);
- Контекст.Вставить("Расширение", Расширение);
-
- Оповещение = Новый ОписаниеОповещения("СоздатьВременныйКаталогПослеПроверкиРасширенияРаботыСФайлами",
- пбп_ФайловаяСистемаСлужебныйКлиент, Контекст);
- ПодключитьРасширениеДляРаботыСФайлами(Оповещение,
- НСтр("ru = 'Для создания временной папки установите расширение для работы с 1С:Предприятием.'"), Ложь);
-
-КонецПроцедуры
-
-// Аналог метода БСП. Предлагает пользователю установить расширение для работы с 1С:Предприятием в веб-клиенте.
-// Предназначена для использования в начале участков кода, в которых ведется работа с файлами.
-//
-// Параметры:
-// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - описание процедуры, которая будет вызвана после закрытия
-// формы со следующими параметрами:
-// -- РасширениеПодключено - Булево - Истина, если расширение было подключено.
-// -- ДополнительныеПараметры - Произвольный - параметры, заданные в ОписаниеОповещенияОЗакрытии.
-// ТекстПредложения - Строка - текст сообщения. Если не указан, то выводится текст по умолчанию.
-// ВозможноПродолжениеБезУстановки - Булево - если Истина, будет показана кнопка ПродолжитьБезУстановки,
-// если Ложь, будет показана кнопка Отмена.
-//
-// Пример:
-//
-// Оповещение = Новый ОписаниеОповещения("ПечатьДокументаЗавершение", ЭтотОбъект);
-// ТекстСообщения = НСтр("ru = 'Для печати документа необходимо установить расширение для работы с 1С:Предприятием.'");
-// ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(Оповещение, ТекстСообщения);
-//
-// Процедура ПечатьДокументаЗавершение(РасширениеПодключено, ДополнительныеПараметры) Экспорт
-// Если РасширениеПодключено Тогда
-// // код печати документа, рассчитывающий на то, что расширение подключено.
-// // ...
-// Иначе
-// // код печати документа, который работает без подключенного расширения.
-// // ...
-// КонецЕсли;
-//
-Процедура ПодключитьРасширениеДляРаботыСФайлами(
- ОписаниеОповещенияОЗакрытии,
- ТекстПредложения = "",
- ВозможноПродолжениеБезУстановки = Истина) Экспорт
-
- ОписаниеОповещенияЗавершение = Новый ОписаниеОповещения(
- "НачатьПодключениеРасширенияРаботыСФайламиПриОтветеНаВопросОбУстановке", пбп_ФайловаяСистемаСлужебныйКлиент,
- ОписаниеОповещенияОЗакрытии);
-
-#Если Не ВебКлиент Тогда
- // В мобильном, тонком и толстом клиентах расширение подключено всегда.
- ВыполнитьОбработкуОповещения(ОписаниеОповещенияЗавершение, "ПодключениеНеТребуется");
- Возврат;
-#КонецЕсли
-
- Контекст = Новый Структура;
- Контекст.Вставить("ОписаниеОповещенияЗавершение", ОписаниеОповещенияЗавершение);
- Контекст.Вставить("ТекстПредложения", ТекстПредложения);
- Контекст.Вставить("ВозможноПродолжениеБезУстановки", ВозможноПродолжениеБезУстановки);
-
- Оповещение = Новый ОписаниеОповещения(
- "НачатьПодключениеРасширенияРаботыСФайламиПриУстановкеРасширения", пбп_ФайловаяСистемаСлужебныйКлиент, Контекст);
- НачатьПодключениеРасширенияРаботыСФайлами(Оповещение);
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml"
deleted file mode 100644
index 4aa41d5d..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_ФайловаяСистемаКлиентПереадресация
-
-
- ru
- Файловая система клиент переадресация
-
-
-
- false
- true
- false
- false
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl"
deleted file mode 100644
index a3de5e79..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl"
+++ /dev/null
@@ -1,51 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-// См. пбп_ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
-Процедура СоздатьВременныйКаталог(Знач Оповещение, Расширение = "") Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.СоздатьВременныйКаталог(Оповещение, Расширение);
-
-КонецПроцедуры
-
-// См. пбп_ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами.
-Процедура ПодключитьРасширениеДляРаботыСФайлами(
- ОписаниеОповещенияОЗакрытии,
- ТекстПредложения = "",
- ВозможноПродолжениеБезУстановки = Истина) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.ПодключитьРасширениеДляРаботыСФайлами(ОписаниеОповещенияОЗакрытии,
- ТекстПредложения, ВозможноПродолжениеБезУстановки);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
- Возврат пбп_ОбщегоНазначенияКлиент.ОбщийМодуль("ФайловаяСистемаКлиент", "пбп_ФайловаяСистемаКлиент");
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml"
deleted file mode 100644
index 67f89ebd..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- пбп_ФайловаяСистемаПереадресация
-
-
- ru
- Файловая система переадресация
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl"
deleted file mode 100644
index e7e5768c..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\265\321\200\320\265\320\260\320\264\321\200\320\265\321\201\320\260\321\206\320\270\321\217/Ext/Module.bsl"
+++ /dev/null
@@ -1,57 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-// См. пбп_ФайловаяСистема.УдалитьВременныйФайл.
-Процедура УдалитьВременныйФайл(Знач Путь) Экспорт
-
- Модуль = ПолучитьМодуль();
- Модуль.УдалитьВременныйФайл(Путь);
-
-КонецПроцедуры
-
-// См. пбп_ФайловаяСистема.ПараметрыЗапускаПрограммы.
-Функция ПараметрыЗапускаПрограммы() Экспорт
-
- Модуль = ПолучитьМодуль();
- Возврат Модуль.ПараметрыЗапускаПрограммы();
-
-КонецФункции
-
-// См. пбп_ФайловаяСистема.ЗапуститьПрограмму.
-Функция ЗапуститьПрограмму(Знач КомандаЗапуска, ПараметрыЗапускаПрограммы = Неопределено) Экспорт
-
- Модуль = ПолучитьМодуль();
- // BSLLS:ExternalAppStarting-off
- Возврат Модуль.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы);
- // BSLLS:ExternalAppStarting-on
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьМодуль()
- Возврат пбп_ОбщегоНазначенияПовтИсп.ПереадресацияОбщегоМодуля("ФайловаяСистема", "пбп_ФайловаяСистема");
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
deleted file mode 100644
index e9dac51d..00000000
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\244\320\260\320\271\320\273\320\276\320\262\320\260\321\217\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ /dev/null
@@ -1,120 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
-// включая доработку типовых конфигураций.
-//
-// Copyright First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-//
-
-////////////////////////////////////////////////////////////////////////////////
-// Файловая система служебный клиент: аналог модуля БСП
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область РасширениеРаботыСФайлами
-
-Процедура НачатьПодключениеРасширенияРаботыСФайламиПриУстановкеРасширения(Подключено, Контекст) Экспорт
-
- // Если расширение и так уже подключено, незачем про него спрашивать.
- Если Подключено Тогда
- ВыполнитьОбработкуОповещения(Контекст.ОписаниеОповещенияЗавершение, "ПодключениеНеТребуется");
- Возврат;
- КонецЕсли;
-
- ВызватьИсключение НСтр("ru = 'Невозможно работать с файловой системой из браузера';");
-
-КонецПроцедуры
-
-Процедура НачатьПодключениеРасширенияРаботыСФайламиПриОтветеНаВопросОбУстановке(Действие, ОповещениеОЗакрытии) Экспорт
-
- РасширениеПодключено = (Действие = "РасширениеПодключено" Или Действие = "ПодключениеНеТребуется");
-
- ВыполнитьОбработкуОповещения(ОповещениеОЗакрытии, РасширениеПодключено);
-
-КонецПроцедуры
-
-#КонецОбласти // РасширениеРаботыСФайлами
-
-#Область ВременныеФайлы
-
-#Область СоздатьВременныйКаталог
-
-// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
-//
-// Параметры:
-// РасширениеПодключено - Булево
-// Контекст - Структура:
-// * Оповещение - ОписаниеОповещения
-// * Расширение - Строка
-//
-Процедура СоздатьВременныйКаталогПослеПроверкиРасширенияРаботыСФайлами(РасширениеПодключено, Контекст) Экспорт
-
- Если РасширениеПодключено Тогда
- Оповещение = Новый ОписаниеОповещения(
- "СоздатьВременныйКаталогПослеПолученияВременногоКаталога", ЭтотОбъект, Контекст,
- "СоздатьВременныйКаталогПриОбработкеОшибки", ЭтотОбъект);
- НачатьПолучениеКаталогаВременныхФайлов(Оповещение);
- Иначе
- СоздатьВременныйКаталогОповеститьОбОшибке(НСтр("ru = 'Не удалось установить расширение для работы с 1С:Предприятием.'"), Контекст);
- КонецЕсли;
-
-КонецПроцедуры
-
-// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
-//
-// Параметры:
-// ИмяКаталогаВременныхФайлов - Строка
-// Контекст - Структура:
-// * Оповещение - ОписаниеОповещения
-// * Расширение - Строка
-//
-Процедура СоздатьВременныйКаталогПослеПолученияВременногоКаталога(ИмяКаталогаВременныхФайлов, Контекст) Экспорт
-
- Оповещение = Контекст.Оповещение;
- Расширение = Контекст.Расширение;
-
- ИмяКаталога = "v8_" + Строка(Новый УникальныйИдентификатор);
-
- Если Не ПустаяСтрока(Расширение) Тогда
- ИмяКаталога = ИмяКаталога + "." + Расширение;
- КонецЕсли;
-
- НачатьСозданиеКаталога(Оповещение, ИмяКаталогаВременныхФайлов + ИмяКаталога);
-
-КонецПроцедуры
-
-// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
-Процедура СоздатьВременныйКаталогПриОбработкеОшибки(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
-
- СтандартнаяОбработка = Ложь;
- ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
- СоздатьВременныйКаталогОповеститьОбОшибке(ОписаниеОшибки, Контекст);
-
-КонецПроцедуры
-
-// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
-Процедура СоздатьВременныйКаталогОповеститьОбОшибке(ОписаниеОшибки, Контекст)
-
- ПоказатьПредупреждение(, ОписаниеОшибки);
- ИмяКаталога = "";
- ВыполнитьОбработкуОповещения(Контекст.Оповещение, ИмяКаталога);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#КонецОбласти // СлужебныйПрограммныйИнтерфейс
\ No newline at end of file
diff --git a/src/cf/Configuration.xml b/src/cf/Configuration.xml
index 6f4d7325..aa6a486d 100644
--- a/src/cf/Configuration.xml
+++ b/src/cf/Configuration.xml
@@ -276,8 +276,6 @@
пбп_SimpleKafkaAdapterпбп_XMLEditorпбп_ДокументыОбработкаСобытий
- пбп_ЖурналРегистрации
- пбп_ЖурналРегистрацииСлужебныйпбп_ЗагрузкаФайлаЧерезТабличныйДокументВызовСерверапбп_ЗагрузкаФайлаЧерезТабличныйДокументКлиентпбп_ЗагрузкаФайлаЧерезТабличныйДокументСервер
@@ -295,19 +293,14 @@
пбп_МодификацияКонфигурацииПовтИсппбп_ОбновлениеИнформационнойБазыПБПпбп_ОбщегоНазначенияВызовСервера
- пбп_ОбщегоНазначенияКлиентпбп_ОбщегоНазначенияКлиентСерверпбп_ОбщегоНазначенияПовтИсп
- пбп_ОбщегоНазначенияПолныеПравапбп_ОбщегоНазначенияСервер
- пбп_ОбщегоНазначенияСлужебный
- пбп_ОбщегоНазначенияСлужебныйКлиент
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер
- пбп_ПолучениеФайловИзИнтернета
- пбп_ПолучениеФайловИзИнтернетаСлужебный
- пбп_Пользователи
- пбп_ПользователиКлиентСервер
- пбп_ПользователиСлужебный
+ пбп_Переадресация
+ пбп_ПереадресацияКлиент
+ пбп_ПереадресацияКлиентПовтИсп
+ пбп_ПереадресацияКлиентСервер
+ пбп_ПереадресацияПовтИсппбп_ПредопределенныеЗначенияпбп_ПредопределенныеЗначенияВызовСерверапбп_ПредопределенныеЗначенияКлиент
@@ -318,23 +311,9 @@
пбп_РаботаСДиалогамиСерверпбп_РаботаСКоллекциямиКлиентСерверпбп_РаботаСФормами
- пбп_РегламентныеЗаданияСервер
- пбп_РегламентныеЗаданияСлужебныйСервер
- пбп_СерверныеОповещения
- пбп_СерверныеОповещенияСлужебныйпбп_СправочникиОбработкаСобытий
- пбп_СтандартныеПодсистемыКлиент
- пбп_СтандартныеПодсистемыПовтИсп
- пбп_СтандартныеПодсистемыСлужебныйКлиент
- пбп_СтандартныеПодсистемыСлужебныйПовтИсппбп_СтроковыеФункцииКлиентСервер
- пбп_СтроковыеФункцииСлужебныйКлиентСерверпбп_СхемыЗапросов
- пбп_ФайловаяСистема
- пбп_ФайловаяСистемаКлиент
- пбп_ФайловаяСистемаКлиентПереадресация
- пбп_ФайловаяСистемаПереадресация
- пбп_ФайловаяСистемаСлужебныйКлиентпбп_ДокументыОбработкаЗаполненияпбп_ДокументыОбработкаПроведенияпбп_ДокументыОбработкаПроверкиЗаполнения
diff --git "a/src/cf/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/cf/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
index 7c75f175..78486f9f 100644
--- "a/src/cf/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
+++ "b/src/cf/Documents/\320\224\320\265\320\274\320\276\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
@@ -54,9 +54,11 @@
&НаКлиенте
Процедура ПодсказатьКогдаОбед(Команда)
- пбп_ОбщегоНазначенияСлужебныйКлиент.СообщитьПользователю(СтрШаблон(
- НСтр("ru='Привет, текущее время %1'; en='Hello, the current time is %1'"),
- Формат(пбп_ОбщегоНазначенияВызовСервера.ТекущаяДатаПользователя(), "ДЛФ=DT")));
+ ШаблонСообщения = НСтр("ru='Привет, текущее время %1'; en='Hello, the current time is %1'");
+ ТекстСообщения = СтрШаблон(ШаблонСообщения,
+ Формат(пбп_ОбщегоНазначенияВызовСервера.ТекущаяДатаПользователя(), "ДЛФ=DT"));
+
+ пбп_ПереадресацияКлиент.СообщитьПользователю(ТекстСообщения);
КонецПроцедуры
@@ -74,10 +76,10 @@
&НаСервере
Процедура СкрытьОтцаНаСервере()
- Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеСвойстваЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость") Тогда
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(НСтр("ru='Он и так не с нами.'; en='He`s not with us anyway.'"));
+ Если Не пбп_ПереадресацияКлиентСервер.ЗначениеСвойстваЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость") Тогда
+ пбп_Переадресация.СообщитьПользователю(НСтр("ru='Он и так не с нами.'; en='He`s not with us anyway.'"));
Иначе
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость", Ложь);
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость", Ложь);
КонецЕсли;
КонецПроцедуры
@@ -85,10 +87,10 @@
&НаСервере
Процедура ПоказатьОтцаНаСервере()
- Если пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ЗначениеСвойстваЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость") Тогда
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(НСтр("ru='Присмотрись получше.'; en='Take a closer look.'"));
+ Если пбп_ПереадресацияКлиентСервер.ЗначениеСвойстваЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость") Тогда
+ пбп_Переадресация.СообщитьПользователю(НСтр("ru='Присмотрись получше.'; en='Take a closer look.'"));
Иначе
- пбп_ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость", Истина);
+ пбп_ПереадресацияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "_ДемоBotFather", "Видимость", Истина);
КонецЕсли;
КонецПроцедуры
diff --git "a/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ManagerModule.bsl" "b/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ManagerModule.bsl"
index 0b372528..a0985b6b 100644
--- "a/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ManagerModule.bsl"
+++ "b/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\221/Ext/ManagerModule.bsl"
@@ -123,7 +123,7 @@
Шаблон = НСтр("ru = 'В регистре сведений пбп_СоответствияОбъектовИБ не существует " +
?(КлючСуществует, "", "ключа %1") +
?(ОбъектСуществует, "", ?(КлючСуществует, "", "; ") + "объект %2") + "'");
- ВызватьИсключение пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
+ ВызватьИсключение пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
Шаблон,
ИмяКлюча,
ИмяОбъекта);
diff --git "a/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/ManagerModule.bsl" "b/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/ManagerModule.bsl"
index 22f37473..ac3c80ac 100644
--- "a/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/ManagerModule.bsl"
+++ "b/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/ManagerModule.bsl"
@@ -27,7 +27,7 @@
Запись = Набор.Добавить();
Запись.Объект = Объект;
- Запись.ХешСумма = пбп_ОбщегоНазначенияСлужебный.КонтрольнаяСуммаСтрокой(КлючиХеша, ХешФункция.MD5);
+ Запись.ХешСумма = пбп_Переадресация.КонтрольнаяСуммаСтрокой(КлючиХеша, ХешФункция.MD5);
Набор.Записать();
@@ -50,7 +50,7 @@
КонецЕсли;
ЗаполнитьЗначенияСвойств(КлючиХеша, Объект);
- НовыйХешЭлемента = пбп_ОбщегоНазначенияСлужебный.КонтрольнаяСуммаСтрокой(КлючиХеша, ХешФункция.MD5);
+ НовыйХешЭлемента = пбп_Переадресация.КонтрольнаяСуммаСтрокой(КлючиХеша, ХешФункция.MD5);
Набор = СоздатьНаборЗаписей();
Набор.Отбор.Объект.Установить(Объект);
@@ -102,16 +102,16 @@
ТекстСообщения = НСтр("ru = 'При обновлении не найдена запись состояния по объекту ''%1'' не найдена!';
|en = 'No status record found during update for object ''%1'' not found!'");
- ТекстСообщения = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
+ ТекстСообщения = пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстСообщения,
Элемент.Ссылка);
- пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения, Элемент);
+ пбп_Переадресация.СообщитьПользователю(ТекстСообщения, Элемент);
КонецПроцедуры
Функция КлючиХешаОбъект(Объект, ЭтоГруппа)
- МенеджерОбъекта = пбп_ОбщегоНазначенияСлужебный.МенеджерОбъектаПоСсылке(Объект);
+ МенеджерОбъекта = пбп_Переадресация.МенеджерОбъектаПоСсылке(Объект);
КлючевыеПоля = пбп_ПредопределенныеЗначенияПереопределяемый.КолонкиПредопределенныхЭлементов(МенеджерОбъекта);
Если Не ЗначениеЗаполнено(КлючевыеПоля) Тогда
Возврат Новый Структура;
diff --git "a/src/cf/Subsystems/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217.xml" "b/src/cf/Subsystems/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217.xml"
index 40f053fa..670fd6b4 100644
--- "a/src/cf/Subsystems/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217.xml"
+++ "b/src/cf/Subsystems/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217.xml"
@@ -20,10 +20,8 @@
- CommonModule.пбп_ОбщегоНазначенияКлиентCommonModule.пбп_ОбщегоНазначенияПовтИспCommonModule.пбп_ОбщегоНазначенияСервер
- CommonModule.пбп_ОбщегоНазначенияПолныеПраваRole.ПолныеПраваRole.АдминистраторСистемыRole.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок
@@ -33,36 +31,17 @@
CommonModule.пбп_РаботаСДиалогамиСерверCommonModule.пбп_РаботаСКоллекциямиКлиентСерверCommonModule.пбп_СтроковыеФункцииКлиентСервер
- CommonModule.пбп_ЖурналРегистрации
- CommonModule.пбп_ЖурналРегистрацииСлужебныйCommonModule.пбп_МодификацияКонфигурацииКлиентПовтИспCommonModule.пбп_ОбновлениеИнформационнойБазыПБПCommonModule.пбп_ОбщегоНазначенияВызовСервера
- CommonModule.пбп_ОбщегоНазначенияСлужебный
- CommonModule.пбп_ОбщегоНазначенияСлужебныйКлиент
- CommonModule.пбп_ОбщегоНазначенияСлужебныйКлиентСервер
- CommonModule.пбп_ПолучениеФайловИзИнтернета
- CommonModule.пбп_ПолучениеФайловИзИнтернетаСлужебный
- CommonModule.пбп_Пользователи
- CommonModule.пбп_ПользователиКлиентСервер
- CommonModule.пбп_ПользователиСлужебный
- CommonModule.пбп_РегламентныеЗаданияСервер
- CommonModule.пбп_РегламентныеЗаданияСлужебныйСервер
- CommonModule.пбп_СтандартныеПодсистемыКлиент
- CommonModule.пбп_СтандартныеПодсистемыПовтИсп
- CommonModule.пбп_СтандартныеПодсистемыСлужебныйКлиент
- CommonModule.пбп_СтандартныеПодсистемыСлужебныйПовтИсп
- CommonModule.пбп_СтроковыеФункцииСлужебныйКлиентСерверCommonModule.пбп_СхемыЗапросовDefinedType.пбп_ПользователиDefinedType.пбп_УчетныеЗаписиЭлектроннойПочты
- CommonModule.пбп_ФайловаяСистема
- CommonModule.пбп_ФайловаяСистемаПереадресация
- CommonModule.пбп_ФайловаяСистемаКлиент
- CommonModule.пбп_ФайловаяСистемаКлиентПереадресация
- CommonModule.пбп_ФайловаяСистемаСлужебныйКлиент
- CommonModule.пбп_СерверныеОповещения
- CommonModule.пбп_СерверныеОповещенияСлужебный
+ CommonModule.пбп_Переадресация
+ CommonModule.пбп_ПереадресацияКлиент
+ CommonModule.пбп_ПереадресацияКлиентСервер
+ CommonModule.пбп_ПереадресацияПовтИсп
+ CommonModule.пбп_ПереадресацияКлиентПовтИсп
diff --git "a/src/cfe/YAXUnit/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\260\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cfe/YAXUnit/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\260\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
index e54ad905..3a2af271 100644
--- "a/src/cfe/YAXUnit/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\260\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ "b/src/cfe/YAXUnit/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\260\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
@@ -20,14 +20,14 @@
Процедура ТестДолженСоздатьТипЧисло() Экспорт
- Описание = пбп_ОбщегоНазначенияСервер.ОписаниеТипаЧисло(10, 2, ДопустимыйЗнак.Неотрицательный);
+ Описание = пбп_Переадресация.ОписаниеТипаЧисло(10, 2, ДопустимыйЗнак.Неотрицательный);
ЮТест.ОжидаетЧто(Тип(Описание)).Равно(Тип("Число"));
КонецПроцедуры
Процедура ТестДолженВернутьОписаниеЧислаСКорректнымЗнаком() Экспорт
- Описание = пбп_ОбщегоНазначенияСервер.ОписаниеТипаЧисло(10, 2, ДопустимыйЗнак.Неотрицательный);
+ Описание = пбп_Переадресация.ОписаниеТипаЧисло(10, 2, ДопустимыйЗнак.Неотрицательный);
Проверка = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 2, ДопустимыйЗнак.Неотрицательный));
ЮТест.ОжидаетЧто(Проверка).Равно(Проверка);
@@ -36,8 +36,8 @@
Процедура ТестДолженУстановитьЗнакЛюбойПриОтсутствииЯвнойУказки() Экспорт
- Описание = пбп_ОбщегоНазначенияСервер.ОписаниеТипаЧисло(10, 2);
- Проверка = пбп_ОбщегоНазначенияСервер.ОписаниеТипаЧисло(10, 2, ДопустимыйЗнак.Любой);
+ Описание = пбп_Переадресация.ОписаниеТипаЧисло(10, 2);
+ Проверка = пбп_Переадресация.ОписаниеТипаЧисло(10, 2, ДопустимыйЗнак.Любой);
ЮТест.ОжидаетЧто(Описание).Равно(Проверка);