![]() |
![]() |
![]() |
|
v8: Шифрование кода. Написание обфускации | ☑ | ||
---|---|---|---|---|
0
LivingStar
26.04.11
✎
09:45
|
Интересует алгоритм написания отпускации (шифрования кода). Это когда в коде обработки заменены все названия процедур и переменных. Особым образом то есть зашифрован программный код. Убраны пробелы, переносы строк и пр.
Есть ли готовые для этого решения? Или кто занимался этим поделитесь опытом. Заранее спасибо! |
|||
1
Stepa86
26.04.11
✎
09:47
|
Обфускация вообще то... поищи на сайтах с обработками, там точно есть
|
|||
2
ДенисЧ
26.04.11
✎
09:48
|
Отпускация - это когда от травы отпускает?
|
|||
3
Maxus43
26.04.11
✎
09:48
|
Отпускация - сила конечно...
|
|||
4
Stepa86
26.04.11
✎
09:48
|
вот только зачем? чтобы было невозможно потом найти источник ошибки, если она появилась в твоей нетленке у заказчика?
|
|||
5
LivingStar
26.04.11
✎
09:49
|
(2)(3) ну извините за неграмотность...
|
|||
6
LivingStar
26.04.11
✎
09:49
|
(4) для конечного отлаженного продукта, для защиты кода.
|
|||
7
Ёпрст
гуру
26.04.11
✎
09:50
|
(0) на инфопомойке валяется
|
|||
8
mikecool
26.04.11
✎
09:50
|
убери все пробелы и переводы строк, достаточно будет ))
|
|||
9
Maxus43
26.04.11
✎
09:50
|
(6) скрыть код из поставки не устраивает? защита не очень конечно, но всё же
|
|||
10
Wobland
26.04.11
✎
09:51
|
Клуб любителей автомобилей "Запорожец":
ПОЧЕМУ ПРИ МЕДЛЕННОМ ОТПУСКАЦИИ ПЕДАЛИ СЦЕПЛЕНИЯ МАШИНА РЕЗКО ТРОГАЕТСЯ С МЕСТА? |
|||
11
Stepa86
26.04.11
✎
09:52
|
(6) отлаженный продукт это тот, у которого > 95% покрытия тестами, безупречное выполнение регресс, модульных, функциональных и прочих тестов и безошибочная работа в течении месяца в режиме бета (открытого тестирования)? на 1Ске чот не встречал еще таких
|
|||
12
LivingStar
26.04.11
✎
09:52
|
(4) если знаете на каких подскажите?
(7) infostarrt_? хотелось бы что бы с открытым кодом, либо корректно работующую уже... (9) хочется свою защиту.. |
|||
13
LivingStar
26.04.11
✎
09:54
|
(8) названия переменных нужно тоже заменить....
никто не занимался подобным? |
|||
14
Maxus43
26.04.11
✎
09:56
|
(13) Гугл. "1c обфускатор". Сслыки на обработки есть даже
http://infos_tart.ru/public/15907/ |
|||
15
Maxus43
26.04.11
✎
09:57
|
антимат на ссылку, так что подчеркивание убери
|
|||
16
МихаилМ
26.04.11
✎
10:21
|
для 77 обработка назвалась - кирпичный завод.
|
|||
17
LivingStar
26.04.11
✎
10:30
|
(14) ( обработка под 8.1, после конвертиции не работает под 8.2, и код её зашифрован весь....
(16) мне надо под 8.2 |
|||
18
МихаилМ
26.04.11
✎
10:31
|
(17)
для 77 есть вьюеры обработок |
|||
19
orefkov
26.04.11
✎
10:32
|
Обфускация - фигня.
Конверировать код 1Сика в ВК на С++ - вот це - дело. |
|||
20
Mikeware
26.04.11
✎
10:35
|
(4) Цель, судя по ТС - забота о здоровье заказчика. Т.е. скрыть г0вн0к0д...
|
|||
21
vde69
26.04.11
✎
10:35
|
замени имена всех переменных на __1_, _1__, _1_, __, _1__1__ и т.д. для простого - это будет достаточно,
обратно будет не так легго конвертнуть, будет мешать взаимное вхождени строки поиска :) |
|||
22
Mikeware
26.04.11
✎
10:36
|
(16) "раскирпичивателей" тоже было штук пять...
|
|||
23
Anton_2011
26.04.11
✎
10:39
|
Код в ВК - в момент запуска зашифрованной обработки будет лежать в памяти, причем аж с форматированием! Просто тупо копипаст и всё! Помню на спор "вскрыл" зашифрованный таким образом глобальник. 1С не умеет "читать" зашифрованный код, ей, так или иначе, в конце концов нужно скормить код обычный - вот, в конце этом концов код и вылавливается. "Порционное" скармливание кода в память тоже не панацея.
ЗЫ Хотя это было на 77 и довольно давно. Сейчас может чего и придумали еще... |
|||
24
LivingStar
26.04.11
✎
10:41
|
(18) что за вьюверы обработок под 77, зачем?
(14) обработку открыл под 8.2, нужен был CAPICOM-KB931906-v2102.exe |
|||
25
vde69
26.04.11
✎
10:42
|
(23) зачем в BK код на языке 1с?
|
|||
26
Stepa86
26.04.11
✎
10:42
|
(23) код в ВК и защищенная обработка это разные вещи. В 8ке хоть обработка и подгружается в память, но выковырить тексты модулей не такая уж и тривиальная задача
|
|||
27
orefkov
26.04.11
✎
10:44
|
(23)
В ВК нет кода на 1С. Весь код на С++. |
|||
28
Anton_2011
26.04.11
✎
10:46
|
(26) Защищенная обработка? Этот байткод? О-ха-ха.
Уж лучше ВК как в (19) сказали. В любом случае, я лишь хотел сказать - любая защита, тем более в среде 1С, если кому то будет нужно - будет взломана 100% Подобные нетленки нужно другими методами защищать. А если просто, фигня какая нибудь для себя - достаточно поставить пароль штатными средствами и не парится - от ламеров спасет на 100 процентов. |
|||
29
Anton_2011
26.04.11
✎
10:47
|
(27) Это понятно, я имел ввиду что в конечном итоге 1С-ке передается ее родной код.
|
|||
30
skunk
26.04.11
✎
10:48
|
(21)какая разница
|
|||
31
Stepa86
26.04.11
✎
10:49
|
(28) защищенная обработка и поставка без текстов модуля это тоже разные вещи
|
|||
32
vde69
26.04.11
✎
10:49
|
(29) ты не прав, ВК может вызывать доступные процедуры и функции, тогда они выполняются в контексте 1с, но она может и напрямую писать значения в доступные переменные :)
|
|||
33
Anton_2011
26.04.11
✎
10:53
|
(32) Да. Ну можно написать там какую нибудь упасть не встать функцию из высшей математики и запихать ее в ВК. Но не будеш же 1С запросы ваять - обращение к ИБ напрямую на С++ из ВК ))? Зачем тогда язык 1С нужен?
Поэтому нет смысла зашивать в ВК целый глобальники, да еще и ХАСП-ами обвешать эту ВК со всех сторон |
|||
34
orefkov
26.04.11
✎
10:55
|
(29)
Да еще раз говорю - в ВК код на С++, и он не переделывается 1Синой в свой код. Ну вот пример создание ТаблицыЗначений и вызов ее метода ВыбратьСтроку: IUnknown* pUnk; if(current_process()->createByClsid(__uuidof(ValueTable), IID_IUnknown, &pUnk)) { IContextPtr valTable = pUnk; pUnk->Release(); IContextDef* pDef = (IContextDef*)valTable.ptr;//valTable->getIContextDef(); int met = pDef->findMethod(L"выбратьстроку"); if(met >= 0) { int nParams = pDef->getNParams(met); Value retVal; ParamsVector params; params.start = new GenericValue* [nParams]; params.end = params.allocEnd = params.start + nParams; Value* vals = new Value[nParams]; for(unsigned i = 0; i < (unsigned)nParams; i++) { pDef->getParamDefValue(met, i, &vals[i]); params.start[i] = &vals[i]; } vals[0] = L"Test"; valTable->call(met, &retVal, params); delete [] vals; } } В коде ты только встретишь название ВыбратьСтроку, а учитывая то, что номер метода ВыбратьСтроку с 8.0 и до сих пор равен 12, то можно вообще и упоминание о нем убрать. |
|||
35
Anton_2011
26.04.11
✎
10:55
|
(31) Эээ... а где же тексты модулей?
|
|||
36
LivingStar
26.04.11
✎
10:55
|
в (14) тема работает, пока что проверил на вскидку, сильно не углублялся...
|
|||
37
Anton_2011
26.04.11
✎
11:00
|
(34) Ну это еще куда ни шло. Значит я имел дело с глупой защитой(кстати автор довольно известный) и весь глобальник, с форматированием! лежал в ОЗУ.
|
|||
38
Stepa86
26.04.11
✎
11:04
|
(35) защищенная обработка это обычная внешняя обработка, зашифрованная в файл 256битным ключем, расшифровывает ее компонента + ключ с аппаратного ключа, это реализовано в СЛК, СЛК2 и в защите от Интелиса вроде. Главная фишка - для того, чтобы получить обработку в память, нужен ключ, а если есть ключ, то нет смысла ломать... Многие фирмы готовы предоставить исходный код своего защищенного решения по запросу, например Инталев
|
|||
39
LivingStar
26.04.11
✎
15:30
|
(14) не справилась с модулем обработки, с обильным кодом. Выдает массу ошибок ((((
|
|||
40
LivingStar
26.04.11
✎
16:45
|
{ВнешняяОбработка.аШаблонВнешнейОбработки.МодульОбъекта(450,160)}: Ожидается константа типа Число, Строка, Дата или Булево
Возврат ce7c790647a680d06d3339c68b02;КонецФункции Функция ae151ad24b06a21cdbdc0107cee7(Знач ce03ac87a2ca469f9c2d95d976fb05d9, e3acc539c24d12b609e42c33c7d509 = <<?>>b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQI/V1OMqv2bJ4EEPBWxwKjAGeDphPh2So/PPoECMjbCbs99fe9"), c8c6a5a966408d805cb3ef2821c92f = Истина, b860ca74062461e8b2d2ec222635603 = b1812fa8ee91443bae6f870ccfc0be4f("MHoGCSsGAQQBgjdYA6BtMGsGCisGAQQBgjdYAwGgXTBbAgMCAAECAmYCAgIAgAQISEdRsXsrTdIEEKd/HUZ4iRbp4W3SUf+wRokEMHgzFSUZe11Y2M+l7N9oZqhihgZxB+hjM4h4CFDT8KRFYkbufCAnsa7HRFmHCWsc4g==")) Если(c8c6a5a966408d805cb3ef2821c92f) Тогда ce03ac87a2ca469f9c2d95d976fb05d9 = СтрЗаменить(ce03ac87a2ca469f9c2d95d976fb05d9, b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQI1xzXhIgiPmgEENTPKwgDGhUKdT3sm/2I/3oECFQ7E2qIzyI+"), ""); (Проверка: Толстый клиент (обычное приложение)) {ВнешняяОбработка.аШаблонВнешнейОбработки.МодульОбъекта(455,121)}: Ожидается константа типа Число, Строка, Дата или Булево КонецФункции Функция bf48da2cbfd482ea9d97c5aa86df926(Знач bf16b98aa8848ad9681b799c153f86a, d056e14fd89551ba9027c4f6b5 = <<?>>b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIr67LoMKtNZ0EEAMXoZdXUn5l+kbXU3PfkYcECOO6zXCHm4oV")) bf16b98aa8848ad9681b799c153f86a = СтрЗаменить(bf16b98aa8848ad9681b799c153f86a, d056e14fd89551ba9027c4f6b5, Символы.ПС); (Проверка: Толстый клиент (обычное приложение)) {ВнешняяОбработка.аШаблонВнешнейОбработки.МодульОбъекта(468,182)}: Ожидается константа типа Число, Строка, Дата или Булево КонецПроцедуры Функция ВыбратьФайл(b00c7db622bf4d29bae0474c4d363f6f, c726771ef4c959307c8a9a3036eea = Ложь, fe6c872fe5e84c7cb7bd4b2657fcb46f = "", c59aa11d36c9472993199d158d4207c3 = <<?>>b1812fa8ee91443bae6f870ccfc0be4f("MHoGCSsGAQQBgjdYA6BtMGsGCisGAQQBgjdYAwGgXTBbAgMCAAECAmYCAgIAgAQI9gde/zOIlP8EEF4pRDey3Y8FklIyENELCfAEMMLk++IhJZtyM9ydPXIFUECTi/0ggU0W8aizn+xCykEc/HL4yDmw00ARQ9UVNmqvMA=="), abb066cf443e4601bea1d344bbab22e7 = b1812fa8ee91443bae6f870ccfc0be4f("MGoGCSsGAQQBgjdYA6BdMFsGCisGAQQBgjdYAwGgTTBLAgMCAAECAmYCAgIAgAQIUcnrzXB4iHMEECIvwq+w3c3PUc/9XS38nlgEIBIdwOCBy1JVucJjXaKPy4S/tlfpqjdOsjyLlyEeO/gY")) Экспорт d702623d46a6a0e070f0755b7ab7 = Новый ДиалогВыбораФайла(b00c7db622bf4d29bae0474c4d363f6f); (Проверка: Толстый клиент (обычное приложение)) |
|||
41
Ёпрст
гуру
26.04.11
✎
17:07
|
(40) Нефик было атрибуты формы "шифровать"
|
|||
42
LivingStar
26.04.11
✎
17:49
|
(41) подскажите если в теме, что не так?
|
|||
43
Ёпрст
гуру
26.04.11
✎
17:50
|
(42) нельзя включать атрибуты формы/реквизиты объекта в "шифровалку", только имена переменных.
|
|||
44
LivingStar
26.04.11
✎
17:53
|
(43) то есть они присутствуют как объявленные в коде?
|
|||
45
LivingStar
26.04.11
✎
17:54
|
(+43) я же шифрую код модуля обработки... Довольно объёмный.
|
|||
46
LivingStar
26.04.11
✎
18:00
|
(43) Как мне исключить их? На второй вкладке обработки переменные, процедуры, функции и параметры включаемые в шифрование, но как мне исключить атрибуты/реквизиты объекта в шифрование? Я не включаю только экспортные элементы ...
|
|||
47
LivingStar
26.04.11
✎
18:08
|
понял, пробую!
|
|||
48
andrewalexk
26.04.11
✎
18:15
|
:))..."отпускация"....хорошо хоть не "обспускация"
|
|||
49
LivingStar
26.04.11
✎
18:22
|
три убрал галки, все равно ругается ((( пробую далее!
|
|||
50
LivingStar
26.04.11
✎
18:33
|
она почему то все равно ругается ( убрал ещё несколько реквизитов обработки из шифруемого списка...
|
|||
51
LivingStar
26.04.11
✎
19:34
|
убрал все реквизиты!!! Но все равно выдает 3 ошибки (
{ВнешняяОбработка.аШаблонВнешнейОбработки.МодульОбъекта(384,159)}: Ожидается константа типа Число, Строка, Дата или Булево Возврат edaa06641894a6298de5999fc1af52a;КонецФункции Функция ec4029c04854b81181e975265f3e(Знач cef1593b57a411ba62e63920e1471ff, b5606ff433488a839a672d352e3 = <<?>>b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQISMEaHbh34fMEEMizw0NyLY/vWjJe0dzGPmEECLIlwIgVZS9W"), d053f86e894a43b5776a690887dca3 = Истина, ff71d7baabf940ab87333a425c20dca1 = b1812fa8ee91443bae6f870ccfc0be4f("MHoGCSsGAQQBgjdYA6BtMGsGCisGAQQBgjdYAwGgXTBbAgMCAAECAmYCAgIAgAQIsbiOhlugyCoEEGYtw8+N4C8ViSms734aheoEMFmnIvDnJN9Y7b4bVXYGlX8EX61wcKeA83nBqEdm/mgPz/bUF+WUjZzq36fiADQirg==")) Если(d053f86e894a43b5776a690887dca3) Тогда cef1593b57a411ba62e63920e1471ff = СтрЗаменить(cef1593b57a411ba62e63920e1471ff, b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQI/2Stg23uj5sEECa7qNspDcDkwFOxnfbvYGgECGx0rSA6k2pa"), ""); (Проверка: Толстый клиент (обычное приложение)) {ВнешняяОбработка.аШаблонВнешнейОбработки.МодульОбъекта(389,128)}: Ожидается константа типа Число, Строка, Дата или Булево КонецФункции Функция d78f5c9dcf50473a995e380ad34b26ac(Знач d1aa64429a154427b29f8bf504025742, ec732f76cd4485ba228f6c38ce298c9 = <<?>>b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIyonLMjduGa8EEP0sx5oj1GGshYnyq/Nz5EEECLTlQ+HXVcY5")) d1aa64429a154427b29f8bf504025742 = СтрЗаменить(d1aa64429a154427b29f8bf504025742, ec732f76cd4485ba228f6c38ce298c9, Символы.ПС); (Проверка: Толстый клиент (обычное приложение)) {ВнешняяОбработка.аШаблонВнешнейОбработки.МодульОбъекта(400,179)}: Ожидается константа типа Число, Строка, Дата или Булево КонецПроцедуры Функция ВыбратьФайл(fd7c21d7f742e88b632bda01f53aae, b74a957dc7b4a8ea94f21aea7af4222 = Ложь, dce05837a4293a6a699735fab9101 = "", c678d564d86747d79eaa5cfa5851a888 = <<?>>b1812fa8ee91443bae6f870ccfc0be4f("MHoGCSsGAQQBgjdYA6BtMGsGCisGAQQBgjdYAwGgXTBbAgMCAAECAmYCAgIAgAQIXzpwYVNoWAoEEEAZCL3AwuPoTkpzUHc/NUMEMM8gJrZGUo6VkZGJ1RRD6L0aSVI6OPuUI0k42FVGaDJOHnkELfOp8ehNqsrRwEI3og=="), c24601e5f24cd39081ed1047dbc4e3 = b1812fa8ee91443bae6f870ccfc0be4f("MGoGCSsGAQQBgjdYA6BdMFsGCisGAQQBgjdYAwGgTTBLAgMCAAECAmYCAgIAgAQI2Dsgea27vSgEEF/8RDMDuZla/1iAfTIVBmcEIAFw7o6My77eutR76spuY5TZsuAgIzFsVFOxe4HpmCa6")) Экспорт ac79bc07a5de4304936a99f537ca5cbd = Новый ДиалогВыбораФайла(fd7c21d7f742e88b632bda01f53aae); (Проверка: Толстый клиент (обычное приложение)) |
|||
52
LivingStar
26.04.11
✎
19:36
|
не понимаю в чем дело (
как сказали в (43) убрал несколько реквизитов обработки и формы, что были, все проверял поиском... Но результат тот же ( |
|||
53
LivingStar
26.04.11
✎
19:53
|
все ошибки вылетают на этот код, но я не могу его найти на второй вкладке...
|
|||
54
LivingStar
26.04.11
✎
20:11
|
ошибки сыпятся эти хоть убрать вообще все галки с включения инструкций в шифровку, похоже обработка некорректно работающая!
|
|||
55
awa15
26.04.11
✎
20:57
|
(54) Могу предложить тебе прислать мне свою обработку, я тебе пришлю обратно её без исходных текстов с обфускацией байт-кода для защиты от декомпиляции.
|
|||
56
Diversus
26.04.11
✎
21:21
|
В той обработке есть косяк с двойными кавычками в комментариях.
|
|||
57
БибиГон
26.04.11
✎
21:25
|
(56) нужно убрать кавычки?
|
|||
58
Diversus
26.04.11
✎
22:02
|
(57) в комментариях
|
|||
59
LivingStar
26.04.11
✎
22:15
|
(56) я заранее убрал комментарии все....
|
|||
60
LivingStar
26.04.11
✎
22:16
|
(55) а какой ваш адрес почты? завтра решу...
|
|||
61
awa15
26.04.11
✎
22:19
|
(60) 15awa<dog>mail.ru
|
|||
62
LivingStar
26.04.11
✎
22:29
|
(61) спасибо, я завтра с хозяином этой обработки решу....
вылазиют 3 долбанные ошибки и всё!!!! никаких комментариев в коде, никаких решеток препроцессора!!! |
|||
63
LivingStar
26.04.11
✎
22:49
|
не
обработка из (14) на моём модуле просто вообще не работает ((((( тупо 3 ошибки и все, и никак не поправить! |
|||
64
orefkov
27.04.11
✎
00:42
|
Убери у себя в параметрах метода дефолтное значение.
Обработка видимо пытается все строки зашифровать, в том числе и те, что не нельзя. те она пытается Процедура Тест(Парам1 = "Проверка") превратить в Процедура поруолпрорваолр(рпрпрпрпрп=РасшифроватьСтроку("ыраоарвоырав")) |
|||
65
LivingStar
27.04.11
✎
06:33
|
(64) пробовали....
обработка просто не справляется с модулями в которых большое количество кода, видимо... |
|||
66
Stepa86
27.04.11
✎
08:11
|
судя по "Новый ДиалогВыбораФайла(" в модуле объекта - обработка стоящая
|
|||
67
LivingStar
27.04.11
✎
08:19
|
(66)
дело в том что обработка обфускации нужна под 8.2 а эта работате под 8.1, возможно и в полне успешно при соблюдении определенных, указанных разработчиком условий но при переводе её на 8.2, тупо лезут ошибки ((( Видимо это просто не совместимость с 8.2 Не подскажете ли что либо подобное но под 8.2 что бы работало? |
|||
68
IamAlexy
27.04.11
✎
08:27
|
(67) там под 8.2 нужно исключать из шифрования конструкции типа &НаКлиенте, &НаСервере и тд и тп...
то есть они и приводят к ошибкам... |
|||
69
IamAlexy
27.04.11
✎
08:28
|
(63) кстати обработка не работает как правило если есть двойные ковычки в комментариях...
|
|||
70
LivingStar
27.04.11
✎
08:31
|
(69) убраны все инструкции препроцессора и комментарии вообще....
перепробовал всяко разно, убирал разные другие сомнительные инструкции для проверки даже если на второй вкладке не ставить ни одной галки, ошибки выходят все равно, что то она шифрует в любом случае..... и ошибки эти выдаются именно при большом размере кода! |
|||
71
LivingStar
27.04.11
✎
08:32
|
(+70) на 8.1, говорят таких проблем нет, сам не проверял, но обработка нужна именно под 8.2!
|
|||
72
LivingStar
27.04.11
✎
09:33
|
upp
|
|||
73
Ёпрст
гуру
27.04.11
✎
09:34
|
(70) размер кода тут вообще не при чем.
Отловить, что неправильно шифрует, как 2 пальца.. |
|||
74
LivingStar
27.04.11
✎
09:40
|
(73) каким образом? было бы что отлавливать, со второй вкладки убираю все галки, должен выйти просто подбитый же код? то есть ничего не шифруется, но что то все равно шифруется, и тупо 3 ошибки, на определенные процедуры, с которых я галки на шифрование вообще убрал, убрал разные инструкции, мне просто не понятно что отлавливать.
Думаю это несовместимость с 8.2, под 8.1 это все работает! Но как заставить работать под 8.2 не понятно! |
|||
75
LivingStar
27.04.11
✎
09:45
|
вот, при убранных галках всех, ошибки, -
{ВнешняяОбработка.аШаблонВнешнейОбработки.МодульОбъекта(1,69273)}: Ожидается константа типа Число, Строка, Дата или Булево Перем мИмяОбработки;Перем мВерсияОбработки;Перем мОбъект;Перем мКоллекцияОбъектов;Перем мКоллекцияДокументов;Перем мДатасетДокументы;Перем мОбъектовВТранзакции;Перем мВалютаУчета; Процедура ОбновитьДанныеДатасетаДокументы(ТаблицаДанных) Экспорт Если(мДатасетДокументы.Количество() = 0) Тогда ОсновныеДанныеSH_ПрочитатьДанные();КонецЕсли;Если(мДатасетДокументы.Количество() > 0) Тогда ТаблицаДанных = Новый ТаблицаЗначений;СкомпоноватьРезультат(ТаблицаДанных);КонецЕсли;КонецПроцедуры Процедура ВыполнитьЗагрузкуДанных(ТаблицаДанных) Экспорт Если(ТаблицаДанных.Количество() = 0) Тогда Возврат;КонецЕсли;Если(ЕстьОшибкиВЗаполненииРеквизитов(Новый Структура(b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIIxWnzzNA+msEEMo46Q0XonXb1yH2T+Gjg40EGIx8DnmTpagNE5LFDLk3znyGC/S3j2bhRA==")))) Тогда Возврат;КонецЕсли;Если(НЕ ЗначениеЗаполнено(мВалютаУчета)) Тогда Сообщить(b1812fa8ee91443bae6f870ccfc0be4f("MIHXBgkrBgEEAYI3WAOggckwgcYGCisGAQQBgjdYAwGggbcwgbQCAwIAAQICZgICAgCABAhI9SWUgYIsggQQN445H3++NndBVbpwVrLNlgSBiFRyX3iocbSgXNJy2GghfEePOWDo3UIYv2XXnFwdd+LOCsKm4azRVHthLQPG+k3V2tc10xatI7kXAveSa14fxRzMz5N/xnuBmzhSb4zj/fLlYVkJGUnN3Hs5ayPA/XI40zLcaMkY9F7eCKV/bT6WGVgU3qL0dXEbuWE13TO0Q5fimIGDI5oNvGQ="));Возврат;КонецЕсли;Если(НЕ ОбъектSH_Подключен()) Тогда Попытка Если(НЕ ОбъектSH_Подключить()) Тогда Возврат;КонецЕсли;Исключение Возврат;КонецПопытки;КонецЕсли;Если(ИспользованиеТранзакций) Тогда НачатьТранзакцию();КонецЕсли;ОсновныеДанныеSH_ИнициализироватьЗагрузку();Попытка Для Каждого ТекСтрокаТЗ Из ТаблицаДанных Цикл СтруктураПарметров = СоответствияSH_ПолучитьСтруктурПараметровПоСтроке(ТекСтрокаТЗ);Если(ТекСтрокаТЗ.П_1_103_10_1 = 0) Тогда ДанныеSH_ПоступлениеТоваровУслуг(СтруктураПарметров);ИначеЕсли(ТекСтрокаТЗ.П_1_103_10_1 = 4) Тогда ДанныеSH_РеализацияТоваровУслуг(СтруктураПарметров);ИначеЕсли(ТекСтрокаТЗ.П_1_103_10_1 = 5) Тогда ИначеЕсли(ТекСтрокаТЗ.П_1_103_10_1 = 6) Тогда ИначеЕсли(ТекСтрокаТЗ.П_1_103_10_1 = 8) Тогда ДанныеSH_Инвентаризация(СтруктураПарметров);ИначеЕсли(ТекСтрокаТЗ.П_1_103_10_1 = 10) Тогда ДанныеSH_АктПереработки(СтруктураПарметров);ИначеЕсли(ТекСтрокаТЗ.П_1_103_10_1 = 11) Тогда ДанныеSH_ПеремещениеТоваров(СтруктураПарметров);ИначеЕсли(ТекСтрокаТЗ.П_1_103_10_1 = 12) Тогда ДанныеSH_Комплектация(СтруктураПарметров);ИначеЕсли(ТекСтрокаТЗ.П_1_103_10_1 = 13) Тогда КонецЕсли;КонецЦикла;Если(ИспользоватьДанныеЗаполнения) Тогда ЗаполнениеSH_ОбработатьДанныеЗагруженныхДокументов();КонецЕсли;Если(ИспользованиеТранзакций И ТранзакцияАктивна()) Тогда ЗафиксироватьТранзакцию();КонецЕсли;Исключение Если(ИспользованиеТранзакций И ТранзакцияАктивна()) Тогда ОтменитьТранзакцию();КонецЕсли;ДобавитьВЛог(ОписаниеОшибки());Если(ОбъектSH_Подключен()) Тогда ОбъектSH_Отключить();КонецЕсли;КонецПопытки;КонецПроцедуры Процедура ОтключитьОбъектПоТаймауту() Экспорт Если(ОбъектSH_Подключен()) Тогда ДобавитьВЛог(b1812fa8ee91443bae6f870ccfc0be4f("MIGuBgkrBgEEAYI3WAOggaAwgZ0GCisGAQQBgjdYAwGggY4wgYsCAwIAAQICZgICAgCABAhXvvcxrK24ZwQQrmvr+QejgrbD57zldA4nkgRgKOT5i3ay0+kAl/wyixzpt+EHFdzNn49YCtGUgF5AMKzpXvhjM0IWAns4phulMrqiz7wYfQsKqhZ7sOXXnw1nTOxzqxL8Td5aW5yqBlAfwB7G4yCyTNC0VBtGKdTBwEZC"));ОбъектSH_Отключить();КонецЕсли;КонецПроцедуры Процедура СохранитьНастройки(РежимСохраненияВФайл = Ложь) Экспорт СобратьНастройкиВСтруктуру();Если(РежимСохраненияВФайл) Тогда ИмяФайла = "";Если(ВыбратьФайл(РежимДиалогаВыбораФайла.Сохранение, Ложь, ИмяФайла, b1812fa8ee91443bae6f870ccfc0be4f("MHIGCSsGAQQBgjdYA6BlMGMGCisGAQQBgjdYAwGgVTBTAgMCAAECAmYCAgIAgAQIf9Uyi1OkTxIEEKlcANmi0OG6JypPvmg6XQwEKKPMmJ/S3VRhQoWqd1duBVrNno0SJJAHPkMy+sMiSvna7xoFK9JNjwY="), b1812fa8ee91443bae6f870ccfc0be4f("MHIGCSsGAQQBgjdYA6BlMGMGCisGAQQBgjdYAwGgVTBTAgMCAAECAmYCAgIAgAQI/FgobyePfjoEEJ4+9Vo9FZyagdDM4ucS3n8EKIZFwLoZU0p/nCiK99fiTPsuPMUpmQutITUuin6BXF6nb3V0fidAJQs="))) Тогда ЗначениеВФайл(ИмяФайла, СтруктураНастроек);КонецЕсли;КонецЕсли;КонецПроцедуры Процедура ВосстановитьНастройки(РежимВосстановленияИзФайла = Ложь) Экспорт Если(РежимВосстановленияИзФайла) Тогда ИмяФайла = "";Если(ВыбратьФайл(РежимДиалогаВыбораФайла.Открытие, Ложь, ИмяФайла, b1812fa8ee91443bae6f870ccfc0be4f("MGoGCSsGAQQBgjdYA6BdMFsGCisGAQQBgjdYAwGgTTBLAgMCAAECAmYCAgIAgAQIkOUPnbq1d28EENHXkKB7oc92wLgUwuskQf0EIN7UJlISHwUIQlJ5zdfQRsaBB71t2yLrmaeOO/5Z7J4i"), b1812fa8ee91443bae6f870ccfc0be4f("MHoGCSsGAQQBgjdYA6BtMGsGCisGAQQBgjdYAwGgXTBbAgMCAAECAmYCAgIAgAQIfN73tW7onREEEOGQq1bzxETtpmoLxM4vGBIEMB67X3RrkiFOhxS+ulUSuA/5xQkLtP5jbKMi1Wtr1lD/jkdAT4MpDI065mv3wgXxEQ=="))) Тогда Попытка СтруктураНастроек = ЗначениеИзФайла(ИмяФайла);Исключение СтруктураНастроек = Новый Структура;КонецПопытки;КонецЕсли;КонецЕсли;ВосстановитьНастройкиИзСтруктуры();КонецПроцедуры Процедура ПроверитьВозможностьРаботыСОбработкой(Отказ) Экспорт Отказ = Ложь;ИмяКонфигурации = Метаданные.Имя;НомерРедакции = Метаданные.Версия;Если(ИмяКонфигурации <> b1812fa8ee91443bae6f870ccfc0be4f("MHoGCSsGAQQBgjdYA6BtMGsGCisGAQQBgjdYAwGgXTBbAgMCAAECAmYCAgIAgAQIUt2WAuok2+MEEJGx6dzz8BjsWo/y0WLsAcIEMKQqcdxZpYoGTZ6mHy+RW5Ust3rnxhIB9P+GzA1NpK3Ig3LE7gBjv4kAQ3x9xf+maQ==") ИЛИ Лев(НомерРедакции, 3) <> b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIBMBinwaeKrEEEMMOTFBYdo2QKlWzm1lU7l0ECPx0zj1MFGpK")) Тогда СтрокаСообщения = b1812fa8ee91443bae6f870ccfc0be4f("MIIC7AYJKwYBBAGCN1gDoIIC3TCCAtkGCisGAQQBgjdYAwGgggLJMIICxQIDAgABAgJmAgICAIAECIv+wAb3J/ozBBDkrYOv4WFeuC48DdtU8pUNBIICmOfFqYaehw6riXbpjCkZX+5adMqnLUrIAG82Zltz/cIn5WnZH+kK7bFL7xmhwt3Z3G23vQrRysAiAwu1nnBdDwhXUDGkr/Z7cyKh7gEpEFO22lgthHtL3QYFX6EXP/ewY5l7YuF9sjguqJpEOovwAsNJkgFYe3GAy3ldLZFJUFNvJuxVXtzpZq/kGFLCgkMs+WBn0e2NVuMiUzABinYXMvBjqRREBmEYb/k0uevfmiILTM0xsprN8RuE3DdWkDVJZP7wD5kTEuItdYTwyRoA4DDWEeZngsEMl9d8DvKn2Vo0Tq9s1zH7Ov173kAXVz2zuoJeaCd3ilzs5O5TEob31yBRMHiYXzqRkrycmpLZyZ5UV8xmzUxlTtBrDOkcsaNwZz6cTlk63inO/zGZih/6YLQWAhR2+ireS+NoSPKNmWagMle0Vk7Lx+OwkK+u3C1tkRC0VuTewk21C+ljfxldht9qkFBowZeJWHprtj5k6Bv0pjwFf4/v0xMvndEkgPgHccHsab25+MEkktCpVqG1vd9ssQkcrIuoPkW8vRXe1SUsN6pQdkdNgxcv0q/io3UqCThHdnV3rcO82DF/GzcGkGELUlI1sCteIxY2c+X9JFqkb8CqoWs/tViTgKy8oc4rHtYs4OEvYdVyJAsYBlv5SxDeBmEixYmhd6v8y9Z+JK7exdy1WBc59T4Z+VKNgkuyB703h2VcF3EOPczwdUhRDkNzYO6fmfC8ql+lL4LSvPhQzTwWVJRCZ57k55jTGfQqUzFcE9A8mwPb4DVz9kU340o/EaI67pB5UQCJWcAPT6ZpjMxiAj973Kdt+3x80YAsui2+wwMg7V1wACXclIj8P9B3uQqMrHU44zsEH+TGGXExyuT8Ok5HJQM=");Предупреждение(СтрокаСообщения, 30);КонецЕсли;КонецПроцедуры Функция ПолучитьЗаголовокФормы() Экспорт Возврат b1812fa8ee91443bae6f870ccfc0be4f("MIGUBgkrBgEEAYI3WAOggYYwgYMGCisGAQQBgjdYAwGgdTBzAgMCAAECAmYCAgIAgAQILXkg8xFl/XEEEOlMGaTKJXMzL+5qyG6YMqAESNX2G5A2Km79FArCoDex6sde3JXz/T4x1UiUxkxQ36Z5GASdVNciAOVb9Em7M+wl9LpegHkOjnpnQtMMMAEUb95lT67+I+TjXg==") + мИмяОбработки + b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIQiy/2uXldOsEEBymwsKbn9IWSj1YzRYqK20ECP4BI6ZMLn4D") + мВерсияОбработки + b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIuKUke1UjzbUEEHFbAmsXO9m02+SoAVzICQoECEfXl3rlW4Mn");КонецФункции Процедура ОсновныеДанныеSH_ПрочитатьДанные() Если(НЕ ОбъектSH_Подключен()) Тогда Попытка Если(НЕ ОбъектSH_Подключить()) Тогда Возврат;КонецЕсли;Исключение Возврат;КонецПопытки;КонецЕсли;мДатасетДокументы.Очистить();Попытка Ключ = ЗапросSH_ПолучитьКлюч(b1812fa8ee91443bae6f870ccfc0be4f("MFoGCSsGAQQBgjdYA6BNMEsGCisGAQQBgjdYAwGgPTA7AgMCAAECAmYCAgIAgAQIbUKUo1eC6lcEEF6n7fTy4+NbMZ+61yQGjTgEEBUK/DZ6t+VH1bC3KyMY+aI="), 0, 0, 0, 1, 1, 1);Датасет = ЗапросSH_ПолучитьРезультатЗапроса(Ключ);Если(Датасет = Неопределено) Тогда Возврат;КонецЕсли;мДатасетДокументы = Датасет;Исключение КонецПопытки;КонецПроцедуры Процедура ОсновныеДанныеSH_ИнициализироватьЗагрузку() мКоллекцияОбъектов = Новый Структура;мКоллекцияДокументов.Очистить();мОбъектовВТранзакции = 0;КонецПроцедуры Функция ОбъектSH_Подключить() Если(ОбъектSH_Подключен()) Тогда ОбъектSH_Отключить();КонецЕсли;Попытка мОбъект = Новый COMОбъект(b1812fa8ee91443bae6f870ccfc0be4f("MGoGCSsGAQQBgjdYA6BdMFsGCisGAQQBgjdYAwGgTTBLAgMCAAECAmYCAgIAgAQIM1dlOzXxhoYEEHfq+67xI5uWpv0zDGB9R3MEIBdbeiREfhsMqlqKNuZW1RwfQFi1mODoQapgPdjEjxOh"));Исключение ДобавитьВЛог(b1812fa8ee91443bae6f870ccfc0be4f("MIGmBgkrBgEEAYI3WAOggZgwgZUGCisGAQQBgjdYAwGggYYwgYMCAwIAAQICZgICAgCABAjuYgk7YUI3bAQQeO4Qn40UeCv2ugX/BaDewwRYp0H6Dagiay9EROEucOjxsaLtXFVX1FQTSn/6MVIJp4Q2Zd7iSXB0a+jnmHKQqGexhNH80llpPfVokY0Znv7xgQZ3E1f8BariDKFF4eJM2RmWw2p1Vp6jLQ=="));мОбъект = Неопределено;Возврат Ложь;КонецПопытки;Если(мОбъект.DBLogin() <> 0) Тогда ДобавитьВЛог(b1812fa8ee91443bae6f870ccfc0be4f("MIGmBgkrBgEEAYI3WAOggZgwgZUGCisGAQQBgjdYAwGggYYwgYMCAwIAAQICZgICAgCABAhdx2O923sQ4gQQN3n1ZaLpWr2lxBxGFmTRtgRYEbBClwg8BY+tW+kz14Pm+LLwV7wLn1yPghe4vIw7da4/C2s4bqyikSLsSkdVDRaJRClOMTy45/zp7e05q5DtkV3oEE11h5fwIv7HgeyQwnYkOf04uA6wBw=="));ОбъектSH_Отключить();Возврат Ложь;КонецЕсли;СтрокаСообщения = b1812fa8ee91443bae6f870ccfc0be4f("MIIBSwYJKwYBBAGCN1gDoIIBPDCCATgGCisGAQQBgjdYAwGgggEoMIIBJAIDAgABAgJmAgICAIAECFV1tosuYAIoBBAd0jUnvwY7+jo4+kWbcZaZBIH4/ZfsZ9iEbQijYpCXgBJFsjQm5D+X2QdGtJ6ocbqyskfVtmCkZ1rAoMscfwEj7A6o4oQuzgU8rCZHfE1zjQ6Ys8jXfatAlJA/gxa5G7txSPfvadpkke1lJdmN3rgnLw31Ax1+Fy0Bs2vR+B+YKb4elLg3mTiyU0mAhs73eIFxzBbpEr187Tjc2Two0JfT9IFAoWt+VWCBMQkMzEWq8x8QNzKQ2b7rUfY23WeJ9n40MJh/WjnRvXSmTkUFCR3yqXeNfQSngp3foJMzvfj+IeZt6Ca3h58fmlBk2kfDBZoBFpMcLPVEccgCgtuja1tL2NPAsEJkaDfqcCo=");ДобавитьВЛог(СтрокаСообщения, ОбъектSH_ПолучитьСистемнуюИнформацию(), ТекущаяДата());Возврат Истина;КонецФункции Процедура ОбъектSH_Отключить() мОбъект.DBLogout();мОбъект = Неопределено;СтрокаСообщения = b1812fa8ee91443bae6f870ccfc0be4f("MIIBIQYJKwYBBAGCN1gDoIIBEjCCAQ4GCisGAQQBgjdYAwGggf8wgfwCAwIAAQICZgICAgCABAjRl5lCxwbn1gQQCroIPWR5CT6/0h+Rc+vwbwSB0IxnXji9+5DEbXPS88vlvS4Qmva9loo4QYzY3RtAeOkzU7eCUyENFl/iPuQc02Vz4HHrVTSYiMNSbAAx2v9zj4S7CqWZ4esGxmSXFvvQ/euWPIEIFEc+DKu4YkE2c2Ea9EKDTIfrCbB+dwm+UMP93BAGsA8fNuBgWjVzlyvP1+Ks/BfAxE9sex+rml0tk4A2r5pKiUWiA7vinojxGG/D/4NOS+iIsSeS2kycJWmjvbektJ2g9tvLJ/uk60Tr30wmHR9DZNnF0RD8sPCS/3aTgv8=");ДобавитьВЛог(СтрокаСообщения, ТекущаяДата());КонецПроцедуры Функция ОбъектSH_Подключен() Если(мОбъект = Неопределено) Тогда Возврат Ложь;КонецЕсли;Возврат ?(мОбъект.DBConnected() = 0, Истина, Ложь);КонецФункции Функция ОбъектSH_ПолучитьСистемнуюИнформацию() Возврат b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIiieJUDXo9+wEEKWaFC41+WQbSKpq+0J+Yz8EGE3t4fgLW8x84krMjwtWP+MDZxJnjecugA==") + мОбъект.GetDBVersion() + b1812fa8ee91443bae6f870ccfc0be4f("MGoGCSsGAQQBgjdYA6BdMFsGCisGAQQBgjdYAwGgTTBLAgMCAAECAmYCAgIAgAQIxooCYWFxYD0EEDEs373hc4CDbTMyoqKrlpEEIGQw+SNSSkVT6oQgfF50u6k4ey1aVf6zZl7AFu9r6DlL") + мОбъект.GetVersion();КонецФункции Функция ОбъектSH_ЗаписатьОшибкуВЛог() ДобавитьВЛог(b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQI40GGaCMIz3YEEFakoo3108Jwr7thVLVd1goEGFzCk3KX4LnSPamgmt1zGdWFH8R/190wLQ==") + мОбъект.GetExcMessage());КонецФункции Функция ЗапросSH_Открыть(Ключ) Состояние(b1812fa8ee91443bae6f870ccfc0be4f("MIGKBgkrBgEEAYI3WAOgfTB7BgorBgEEAYI3WAMBoG0wawIDAgABAgJmAgICAIAECAQZyF2ht0m0BBBiW+WeDffhklaMFIILUcLfBED306iIR7O4prYJSoRVLxPaM6VenJFHjJjfLcKv5687V0xQv0WewZSfLWqdHkBDHHyKuD2LMVg6Oa0ySNNBoDj/") + Ключ.ИмяТаблицы);МассивПараметров = Ключ.Параметры;ИндексЗапроса = Ключ.Индекс;Попытка Выполнить(Ключ.Запрос);Исключение ВызватьИсключение;КонецПопытки;Ключ.Вставить(b1812fa8ee91443bae6f870ccfc0be4f("MFoGCSsGAQQBgjdYA6BNMEsGCisGAQQBgjdYAwGgPTA7AgMCAAECAmYCAgIAgAQIbn6fnF2OEdUEEEhd88oZALBCJN3I1EsLnb0EEOTEp1dnPp3t4d7SmzKX6yw="), ИндексЗапроса);Возврат Истина;КонецФункции Функция ЗапросSH_ПрочитатьДатасет(Ключ) Состояние(b1812fa8ee91443bae6f870ccfc0be4f("MIGCBgkrBgEEAYI3WAOgdTBzBgorBgEEAYI3WAMBoGUwYwIDAgABAgJmAgICAIAECE2gzYq5Jum6BBDiTFyjcJvVbM1B+Ed0FmdTBDh/o1MMLUjS0sBn+v0hjijRK1BNAGC/aGreceQW10KVwAaz/uSbdcCBQletees7O/rZacYrAT3FdA=="));ТаблицаДанныхДатасета = Новый ТаблицаЗначений;ИндексЗапроса = Ключ.Индекс;ИмяТаблицы = Ключ.ИмяТаблицы;ЧислоПолей = мОбъект.FieldCount(ИндексЗапроса);ЧислоЗаписей = мОбъект.RecordCount(ИндексЗапроса);МассивКолонок = Новый Массив;Для Н = 0 По ЧислоПолей - 1 Цикл ИмяПоля = мОбъект.FieldName(ИндексЗапроса, Н);ИмяКолонки = b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIaUBpqNE7Iq4EEI4S3slVmFMSEDieHKFX72sECJuWguM2DkTk") + СтрЗаменить(ИмяПоля, b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQInexLPVlMqikEEHvuXlD8hDKbupxpT/bm74QECAJ7st2B/AB1"), b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIE+JgAb6w59gEEMHcgq5uou1SLQ0LCLjVnh0ECIPKyqJ8n5u6"));ТаблицаДанныхДатасета.Колонки.Добавить(ИмяКолонки,, ИмяПоля);МассивКолонок.Добавить(ИмяКолонки);КонецЦикла;НомерЗаписи = 1;Пока мОбъект.EOF(ИндексЗапроса) <> 1 Цикл ОбработкаПрерыванияПользователя();Состояние(b1812fa8ee91443bae6f870ccfc0be4f("MIGCBgkrBgEEAYI3WAOgdTBzBgorBgEEAYI3WAMBoGUwYwIDAgABAgJmAgICAIAECCHZfRD5xA49BBBUhsz44zDlEUn6B8oko4JDBDigVbd/3JpzHI0O+oV0eNlJAKDSHe9h8K6LDAe5wTtpA6WVQ1Cfe0ICxhfMKLINefpzZAY9Y8gM7w==") + ИмяТаблицы + b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIY2cjDfUZ97wEECfke/YQMVZDaXtAGUMh0RwECJGIIoX2RhKd") + Строка(НомерЗаписи) + b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIcS16Xbba5EQEEFWwVYWJEOu56sKV/2jdqYwECChJXln955iI") + Строка(ЧислоЗаписей) + b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIo9t/OyOiOMYEEPz68DPHHJKe99F/te2h/mQECLfF+2VfRzV0"));НоваяСтрока = ТаблицаДанныхДатасета.Добавить();Для Н = 0 По ЧислоПолей - 1 Цикл НоваяСтрока[МассивКолонок[Н]] = мОбъект.ValByNumber(ИндексЗапроса, Н);КонецЦикла;мОбъект.Next(ИндексЗапроса);НомерЗаписи = НомерЗаписи + 1;КонецЦикла;Возврат ТаблицаДанныхДатасета;КонецФункции Процедура ЗапросSH_Закрыть(Ключ) Состояние(b1812fa8ee91443bae6f870ccfc0be4f("MIGCBgkrBgEEAYI3WAOgdTBzBgorBgEEAYI3WAMBoGUwYwIDAgABAgJmAgICAIAECLrXXd8YVEoHBBA4FsSflgL6oXMCHW7fjuwuBDh0eNP6vwTO1ZgFoAfVtxAdmL4FRXmQZnIvszkAv4Jsw1LHqmF1uyiCDMKu+wGE6NVfK04ePRJLGA=="));мОбъект.CloseQuery(Ключ.Индекс);КонецПроцедуры Функция ЗапросSH_ПолучитьКлюч(ИмяТаблицы, П1 = Неопределено, П2 = Неопределено, П3 = Неопределено, П4 = Неопределено, П5 = Неопределено, П6 = Неопределено, П7 = Неопределено, П8 = Неопределено) СтрокаПредставления = ИмяТаблицы;СтрокаИсполнения = "";МассивПараметров = Новый Массив;Для Н = 1 По 8 Цикл ЗначениеПараметра = Неопределено;Выполнить(b1812fa8ee91443bae6f870ccfc0be4f("MHoGCSsGAQQBgjdYA6BtMGsGCisGAQQBgjdYAwGgXTBbAgMCAAECAmYCAgIAgAQIbpRct69eaPAEENXPox12GR6Ze3DS6uPahE0EMF4JIfd6STQ8WWjOF1GG7w3pYyjTx5k86vJCpwvSlyjKVg1vIZvMmn969iYitKKHbQ==") + Формат(Н, b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQICZU0tr1cZ1kEEI6FXSYyBbPiw4lZzOpLFmUEGA3z7L1H64mYahLV7DWDpawvTS+nMxocOA==")));Если(ЗначениеПараметра = Неопределено) Тогда Прервать;Иначе Выполнить(b1812fa8ee91443bae6f870ccfc0be4f("MIGCBgkrBgEEAYI3WAOgdTBzBgorBgEEAYI3WAMBoGUwYwIDAgABAgJmAgICAIAECFbEesdZHql+BBDR4eXJOQeLmK9xFbao3VdrBDg0qs3DoSWjGCq+/DXZCK8ogkOZsSxc9QPxOgLIqtvKMOLo/lyt6KnIJSOAbKeM1m3jKfSVUz82RA==") + Формат(Н, b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIXs0Mp2nhPowEEDjejFg217GpoT46aioI6U4EGKZ41xvBq+hYajz2ScUANo2ku7Hcbjc79w==")) + b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIik1CW/4J+jwEEMcmT2PD/Byp7nYMjOJOdkgECJoIyUogfzw2"));КонецЕсли;КонецЦикла;Н = 0;Для Каждого ТекЭлементМассива Из МассивПараметров Цикл СтрокаПредставления = СтрокаПредставления + b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIHu9BfnwL8lcEECBCsrLlRlN+SLI5FZFMgHQECOq8VLiQosRq") + Формат(ТекЭлементМассива, b1812fa8ee91443bae6f870ccfc0be4f("MIHGBgkrBgEEAYI3WAOggbgwgbUGCisGAQQBgjdYAwGggaYwgaMCAwIAAQICZgICAgCABAhKPGIBwuCSLQQQRCrwDu7+dILIJTsSkrueawR4GV53gljKq+H6yLZ1Q/+eOH6cd2sPI8tk7JB0oi9FvHxCESYjTEP3JlNORgbKubWQFscogFki+/3EmLAyXfanGEhypDNZ9FKy5zs6v+zrlGIcekFXCAP7x+ikh/eYUiYPCLyI2asdSHtbjIk3gyqyV4Zu865UhQCL"));СтрокаИсполнения = СтрокаИсполнения + ?(ПустаяСтрока(СтрокаИсполнения), "", b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIty0Kwb1UIccEEO90R41i79QAdrEGRnS0MrAECGBYWx4xVbo3")) + b1812fa8ee91443bae6f870ccfc0be4f("MHIGCSsGAQQBgjdYA6BlMGMGCisGAQQBgjdYAwGgVTBTAgMCAAECAmYCAgIAgAQI68535QPYavoEEO2vxf2GLzYsX18WtM6JJ84EKDqnib+o10Efd+MjNWHfQtOaCg4flmvI/3T3NzvqXXqxyuNEsaTOk8w=") + Формат(Н, b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIg97DtbCZEKEEEK10YlF6AROjb5IamTsGoowEGI3NQnMdD6wxHToQAOM7XPuO6R2W9k9JMw==")) + b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIArdN1UB3kPgEEE0GSkjDgI/XPrzrew5c/qAECGG1uNzl2094");Н = Н +1 ;КонецЦикла;СтрокаПредставления = УбратьНедопустимыеСимволыСтроки(СтрокаПредставления);СтрокаИсполнения = b1812fa8ee91443bae6f870ccfc0be4f("MIGCBgkrBgEEAYI3WAOgdTBzBgorBgEEAYI3WAMBoGUwYwIDAgABAgJmAgICAIAECGe8DsmROR0vBBCCDMm5Vf32KHe7qP1QWB1NBDjvNVUThei1XEYk8YWAuKDFd+GftjvhMvzS2GooESuXYHIg3L++3L7p6PQq/Lj8XvBtlgljFT2dFw==") + ИмяТаблицы + b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQI2zEifIIjoKIEEFZwnq5in9D89Srp5g/SUacECBoQUTFY8PuO") + СтрокаИсполнения + b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIFKPtCr4E/7IEEGxpRFuxM4UBWRbUjgmIsFIECGvYyC60qMdD");КлючОписания = Новый Структура;КлючОписания.Вставить(b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIQLDBneSpOtgEEGONaabz80qxmx8/gQnHsJoEGMSWAad/5wUSksLhD6g4I7VcRT7v0QcOdA=="), ИмяТаблицы);КлючОписания.Вставить(b1812fa8ee91443bae6f870ccfc0be4f("MGoGCSsGAQQBgjdYA6BdMFsGCisGAQQBgjdYAwGgTTBLAgMCAAECAmYCAgIAgAQIwQttRBnAJ7kEEHbrxatYEmMo7FRzJfLLtiAEIAkV5TrWz4mXQnoyQ0DGzjxrkL+VvYjWXRq407Y0h+/r"), СтрокаПредставления);КлючОписания.Вставить(b1812fa8ee91443bae6f870ccfc0be4f("MFoGCSsGAQQBgjdYA6BNMEsGCisGAQQBgjdYAwGgPTA7AgMCAAECAmYCAgIAgAQIQmiATCEjEF0EEDUlWXZkjWdN4cEJavVFcz4EENHhmDQYln6Wb65FzwoxoFE="), СтрокаИсполнения);КлючОписания.Вставить(b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIwxTUGsIPM6QEEDOhLZZfp3CUA5QBNXXJ3vIEGObpTTFMP0SMcsUL1Sjn+Y+vKc9XI1ZSNg=="), МассивПараметров);КлючОписания.Вставить(b1812fa8ee91443bae6f870ccfc0be4f("MFoGCSsGAQQBgjdYA6BNMEsGCisGAQQBgjdYAwGgPTA7AgMCAAECAmYCAgIAgAQImyLdHhU/uUkEEG8SacYqpUi7NENOrhMmvx0EELMwcsZQPU/TbNz5C8sy6oA="), -1);Возврат КлючОписания;КонецФункции Функция ЗапросSH_ПолучитьРезультатЗапроса(Ключ) Если(НЕ ЗапросSH_Открыть(Ключ)) Тогда Возврат Неопределено;КонецЕсли;Датасет = ЗапросSH_ПрочитатьДатасет(Ключ);ЗапросSH_Закрыть(Ключ);Если(Датасет.Количество() = 0) Тогда Возврат Неопределено;КонецЕсли;Возврат Датасет;КонецФункции Функция СоответствияSH_ЕстьВКоллекцииОбъектов(Ключ, СсылкаНаОбъект) Если(НЕ мКоллекцияОбъектов.Свойство(Ключ.Идентификатор, СсылкаНаОбъект)) Тогда Возврат Ложь;КонецЕсли;Возврат Истина;КонецФункции Функция СоответствияSH_ДобавитьВКоллекциюОбъектов(Ключ, СсылкаНаОбъект) мКоллекцияОбъектов.Вставить(Ключ.Идентификатор, СсылкаНаОбъект);Возврат Истина;КонецФункции Функция СоответствияSH_ДобавитьВКоллекциюДокументов(ДокументОбъект) НоваяСтрока = мКоллекцияДокументов.Добавить();НоваяСтрока.МетаданныеИмя = ДокументОбъект.Метаданные().Имя;НоваяСтрока.Ссылка = ДокументОбъект.Ссылка;КонецФункции Функция СоответствияSH_ПолучитьОбъектСправочник(СсылкаНаОбъект, Ключ, ЗначениеПоиска, ИмяСправочника, ЭтоГруппа) Если(СоответствияSH_ЕстьВКоллекцииОбъектов(Ключ, СсылкаНаОбъект)) Тогда Возврат Истина;КонецЕсли;ЗначениеПоиска = Формат(ЗначениеПоиска, b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQICUeGcPLPqp0EEJl3SQfrfsySDGWmoCbfs9IEGPUEm66Ryt24tEnuUxFqUxi9VxiNo73MNg=="));ЗначениеПоиска = ПривестиНомерКДлине(ЗначениеПоиска, Метаданные.Справочники[ИмяСправочника].ДлинаКода, ?(ЭтоГруппа, b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQILU23ZZWDcl8EEDU/Q+6AK0lcfnHIfFoOe8kECI4j4ijgXfrN"), b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIfzKAwb4ZDAsEECqC7A855NxYFj4xopvCoxoECMZLYeVFXMWR")));Ключ.Вставить(b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIgNp2GleqV7IEECWkLXKOcaLKPwbCMmh7XdUEGGDUj9wbU7jogUrRn1kqKy85vZdzKJxy0A=="), ЗначениеПоиска);СсылкаНаОбъект = Справочники[ИмяСправочника].НайтиПоКоду(ЗначениеПоиска);Если(ЗначениеЗаполнено(СсылкаНаОбъект)) Тогда Если(НЕ ПерезаписыватьОбъекты) Тогда СоответствияSH_ДобавитьВКоллекциюОбъектов(Ключ, СсылкаНаОбъект);Возврат Истина;Иначе СсылкаНаОбъект = СсылкаНаОбъект.ПолучитьОбъект();КонецЕсли;Иначе СсылкаНаОбъект = ?(ЭтоГруппа, Справочники[ИмяСправочника].СоздатьГруппу(), Справочники[ИмяСправочника].СоздатьЭлемент());КонецЕсли;Возврат Ложь;КонецФункции Функция СоответствияSH_ПолучитьОбъектДокумент(СсылкаНаОбъект, Ключ, Знач ЗначениеПоиска, Знач ЗначениеДаты, ИмяДокумента) ЗначениеПоиска = Формат(ЗначениеПоиска, b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIJUQyXEYcR6AEEN5Vpv2VuHQMzqcd+UnfMjAEGJV80dSLFS0S1cqtmUdeKsMtqiS4rZix4Q=="));ДатаПоиска = Дата(ЗначениеДаты);ЗначениеПоиска = ПривестиНомерКДлине(ЗначениеПоиска, Метаданные.Документы[ИмяДокумента].ДлинаНомера, b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQI+Vz4AMlHJ0AEEKN1ZsmMk/ptV2Gr/Vz+2B0ECPVw1oZx53dg"));Ключ.Вставить(b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIX9AHPy16uVsEEBS0/ofku7rIHZ4k1TA2lHkEGE6X4UvyTlVErobrVfZyA4IuLRN3dJgREg=="), ЗначениеПоиска);Ключ.Вставить(b1812fa8ee91443bae6f870ccfc0be4f("MFoGCSsGAQQBgjdYA6BNMEsGCisGAQQBgjdYAwGgPTA7AgMCAAECAmYCAgIAgAQIG3U63z7dvN4EEBM6RKcqzBa1ltzUxkqcR7IEEB1856NN0XMa6cGjYp9Hg6A="), ДатаПоиска);СсылкаНаОбъект = Документы[ИмяДокумента].НайтиПоНомеру(ЗначениеПоиска, ДатаПоиска);Если(ЗначениеЗаполнено(СсылкаНаОбъект)) Тогда Если(НЕ ПерезаписыватьОбъекты) Тогда СоответствияSH_ДобавитьВКоллекциюДокументов(СсылкаНаОбъект);Возврат Истина;Иначе СсылкаНаОбъект = СсылкаНаОбъект.ПолучитьОбъект();Если(СсылкаНаОбъект.Проведен) Тогда СсылкаНаОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);КонецЕсли;КонецЕсли;Иначе СсылкаНаОбъект = Документы[ИмяДокумента].СоздатьДокумент();КонецЕсли;Для Каждого ТекТабличнаяЧастьМетаданные Из Метаданные.Документы[ИмяДокумента].ТабличныеЧасти Цикл СсылкаНаОбъект[ТекТабличнаяЧастьМетаданные.Имя].Очистить();КонецЦикла;Возврат Ложь;КонецФункции Процедура СоответствияSH_ЗаписатьОбъект(Ключ, СсылкаНаОбъект) Если(Ключ <> Неопределено) Тогда Если(СсылкаНаОбъект.Метаданные().Реквизиты.Найти(b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIJnj37T+AKbwEEL3/vR61pkrKL32UWroX/WgEGK0s3ojXDt4Pn3stWAAr/vFhaCy2g2aLpA==")) <> Неопределено) Тогда Если(Лев(СсылкаНаОбъект.Метаданные().ПолноеИмя(), 10) = b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIKL5U1u2/h8QEEFpuC3zBUV1UUXZtf4+z6owEGNT7MABOQ0PI6GbaAKPwZfSNb5pOsVU+DA==")) Тогда Если(НЕ СсылкаНаОбъект.ЭтоГруппа) Тогда СсылкаНаОбъект.Комментарий = ПолучитьКомментарийОбъекта(Ключ);КонецЕсли;Иначе СсылкаНаОбъект.Комментарий = ПолучитьКомментарийОбъекта(Ключ);КонецЕсли;КонецЕсли;КонецЕсли;Если(РежимОбмена) Тогда СсылкаНаОбъект.ОбменДанными.Загрузка = Истина;КонецЕсли;СсылкаНаОбъект.Записать();Если(ИспользованиеТранзакций) Тогда мОбъектовВТранзакции = мОбъектовВТранзакции + 1;Если(мОбъектовВТранзакции >= КоличествоЭлементовВТранзакции И ТранзакцияАктивна()) Тогда ЗафиксироватьТранзакцию();ДобавитьВЛог(b1812fa8ee91443bae6f870ccfc0be4f("MIHnBgkrBgEEAYI3WAOggdkwgdYGCisGAQQBgjdYAwGggccwgcQCAwIAAQICZgICAgCABAhug7HbNQbkfwQQg+T+uF+wkMrnASdjddSWdASBmNkgEDcVJSQ0v5TpWOXC91+4u6H8RYqhqd+/6y7+fBMKUA0YO8JTZ3xiByGX/kpLJUSpOQ4wUhX3nnuHxj2h4NG7QkSO27VyJNNA26Y6WP5JeTgj0zx7lrToSrrKPEO3VaFE/tNoUx5aiQVT25K+yova8UTgMve1a5GJw7Ii2fB8qdTlQCbxwvLy9sowmcHHWEft3M1a1BRI"), мОбъектовВТранзакции);мОбъектовВТранзакции = 0;НачатьТранзакцию();КонецЕсли;КонецЕсли;КонецПроцедуры Функция СоответствияSH_ПолучитьСтруктурПараметровПоСтроке(СтрокаТЗ) СтруктураПараметров = Новый Структура(b1812fa8ee91443bae6f870ccfc0be4f("MIIBMwYJKwYBBAGCN1gDoIIBJDCCASAGCisGAQQBgjdYAwGgggEQMIIBDAIDAgABAgJmAgICAIAECFh5EhyWkL+hBBDC05vHs1EEqRVyqi7AstTaBIHgBg6XpoamUHCbZpKSEcugXB4XAD2KK7D6iCoCavFpYwTlRF5lpC0aqqiOFDecOcee03dMEcbknPXGXHjWWXiRy04DSDcn7lm7Zkk546fY5xzoz33XCvP+metTqlNZsv0Fi/zUHvqqXI18KUQYrO62v/AEaF5CA832t6B6uuAtzvcMS8lvWHwpM8NWKQuVZO2lChC7CNTmEbC3kwRJ8rXg9NP9CJy9fbU2Qh+tNCIBkCqVz8lMMUGd47BDtvv3Z2UYi0nLQp1Hu9qaAXf0IOMlJt8/6gy8h+OAzI3lf2PTUxU="));ЗаполнитьЗначенияСвойств(СтруктураПараметров, СтрокаТЗ);Возврат СтруктураПараметров;КонецФункции Функция ДанныеSH_Номенклатура(Знач РИД) Ключ = ЗапросSH_ПолучитьКлюч(b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQITMmrZ6r8ggYEEDxOi/Mfsh9rouig+xe6IZsEGBr8AHLTgrEnIiUGAypYoxAI69yazDoozA=="), РИД);СсылкаНаОбъект = Неопределено;Если(СоответствияSH_ПолучитьОбъектСправочник(СсылкаНаОбъект, Ключ, РИД, b1812fa8ee91443bae6f870ccfc0be4f("MGoGCSsGAQQBgjdYA6BdMFsGCisGAQQBgjdYAwGgTTBLAgMCAAECAmYCAgIAgAQI6H6XM31KdQcEEC9JxAk6PLtKdUO0//llAX0EICdlwIHvlr2oeYSduP0tz4vuax5GXQhDM/xD3vaK7//J"), Ложь)) Тогда Возврат СсылкаНаОбъект;КонецЕсли;Датасет = ЗапросSH_ПолучитьРезультатЗапроса(Ключ);Если(Датасет = Неопределено) Тогда Возврат Справочники.Номенклатура.ПустаяСсылка();КонецЕсли;СтрокаЧтения = Датасет[0];ЗначениеВид = СтрокаЧтения.П_1_210_5_0;СсылкаНаОбъект.Код = Ключ.КодНомер;СсылкаНаОбъект.Услуга = Ложь;СсылкаНаОбъект.БазоваяЕдиницаИзмерения = ДанныеSH_ЕдиницыИзмерения(СтрокаЧтения.П_1_206_2_0);СсылкаНаОбъект.Наименование = СокрЛП(СтрокаЧтения.П_1_210_2_0);СсылкаНаОбъект.НаименованиеПолное = СокрЛП(СтрокаЧтения.П_1_210_2_0);СсылкаНаОбъект.Родитель = ДанныеSH_НоменклатураГруппы(СтрокаЧтения.П_1_209_1_0);СоответствияSH_ЗаписатьОбъект(Ключ, СсылкаНаОбъект);СоответствияSH_ДобавитьВКоллекциюОбъектов(Ключ, СсылкаНаОбъект.Ссылка);Возврат СсылкаНаОбъект.Ссылка;КонецФункции Функция ДанныеSH_НоменклатураГруппы(Знач РИД) Ключ = ЗапросSH_ПолучитьКлюч(b1812fa8ee91443bae6f870ccfc0be4f("MGoGCSsGAQQBgjdYA6BdMFsGCisGAQQBgjdYAwGgTTBLAgMCAAECAmYCAgIAgAQIAIIlCOiVpEEEEFHu23YN55vIUr0NSrZxGpAEID39qatCBdQZfDkaFNJCATiLtN2RGTfE8sIuiqbaLMO2"), РИД);СсылкаНаОбъект = Неопределено;Если(СоответствияSH_ПолучитьОбъектСправочник(СсылкаНаОбъект, Ключ, РИД, b1812fa8ee91443bae6f870ccfc0be4f("MGoGCSsGAQQBgjdYA6BdMFsGCisGAQQBgjdYAwGgTTBLAgMCAAECAmYCAgIAgAQIN37BIGVnxiMEEM6QFsxl97IxEfzfVjFRlwEEIGCOmTIveax1XwXcqCXSajoMGKzLAUsyItFcy3tKJUTK"), Истина)) Тогда Возврат СсылкаНаОбъект;КонецЕсли;Датасет = ЗапросSH_ПолучитьРезультатЗапроса(Ключ);Если(Датасет = Неопределено) Тогда Возврат Справочники.Номенклатура.ПустаяСсылка();КонецЕсли;СтрокаЧтения = Датасет[0];СсылкаНаОбъект.Код = Ключ.КодНомер;СсылкаНаОбъект.Наименование = СокрЛП(СтрокаЧтения.П_1_209_3_0);Если(СтрокаЧтения.П_IsRoot = 0) Тогда СсылкаНаОбъект.Родитель = ДанныеSH_НоменклатураГруппы(СтрокаЧтения.П_1_209_2_0);КонецЕсли;СоответствияSH_ЗаписатьОбъект(Ключ, СсылкаНаОбъект);СоответствияSH_ДобавитьВКоллекциюОбъектов(Ключ, СсылкаНаОбъект.Ссылка);Возврат СсылкаНаОбъект.Ссылка;КонецФункции Функция ДанныеSH_Контарегнты(Знач РИД, ВидДоговора) Ключ = ЗапросSH_ПолучитьКлюч(b1812fa8ee91443bae6f870ccfc0be4f("MHIGCSsGAQQBgjdYA6BlMGMGCisGAQQBgjdYAwGgVTBTAgMCAAECAmYCAgIAgAQINIsvHEpDficEECrR8ho4HzSrQD1ezXSMaz0EKBmHWCrsc7eXMQAjFcDf77eyORTu9McLGC5IuuZEUky5jHyjE7LNMl8="), РИД);СсылкаНаОбъект = Неопределено;Если(СоответствияSH_ПолучитьОбъектСправочник(СсылкаНаОбъект, Ключ, РИД, b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIAgAQIn7c+HmSWHZsEECXO2Xww5rXGMR7Y6abdmW0EGE2YvgM1V6NvBC7Y4ZSyrknn9npe1co3NA=="), Ложь)) Тогда Возврат СсылкаНаОбъект;КонецЕсли;Датасет = ЗапросSH_ПолучитьРезультатЗапроса(Ключ);Если(Датасет = Неопределено) Тогда Возврат Справочники.Контрагенты.ПустаяСсылка();КонецЕсли;СтрокаЧтения = Датасет[0];СсылкаНаОбъект.Код = Ключ.КодНомер;СсылкаНаОбъект.Наименование = СокрЛП(СтрокаЧтения.П_1_102_4_0);СсылкаНаОбъект.НаименованиеПолное = СокрЛП(СтрокаЧтения.П_1_102_4_0);СсылкаНаОбъект.Родитель = ДанныеSH_НоменклатураГруппы(СтрокаЧтения.П_1_101_1_1);СсылкаНаОбъект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;СоответствияSH_ЗаписатьОбъект(Ключ, СсылкаНаОбъект);Если(НЕ ЗначениеЗаполнено(СсылкаНаОбъект.ОсновнойДоговорКонтрагента)) Тогда СсылкаНаОбъектДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();СсылкаНаОбъектДоговор.Владелец = СсылкаНаОбъект.Ссылка;СсылкаНаОбъектДоговор.ВидДоговора = ВидДоговора;СсылкаНаОбъектДоговор.Наименование = ВидДоговора;СсылкаНаОбъектДоговор.Организация = Организация;СсылкаНаОбъектДоговор.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить();СсылкаНаОбъектДоговор.УстановитьНовыйКод(b1812fa8ee91443bae6f870ccfc0be4f("MFIGCSsGAQQBgjdYA6BFMEMGCisGAQQBgjdYAwGgNTAzAgMCAAECAmYCAgIAgAQIkuBtjAGHixkEENwi5FuAmoce8zoTJhxhtt0ECM0iLDHpSF5E"));СоответствияSH_ЗаписатьОбъект(Ключ, СсылкаНаОбъектДоговор);СсылкаНаОбъект.ОсновнойДоговорКонтрагента = СсылкаНаОбъектДоговор.Ссылка;СоответствияSH_ЗаписатьОбъект(Ключ, СсылкаНаОбъект);КонецЕсли;СоответствияSH_ДобавитьВКоллекциюОбъектов(Ключ, СсылкаНаОбъект.Ссылка);Возврат СсылкаНаОбъект.Ссылка;КонецФункции Функция ДанныеSH_КонтрагентыГруппы(Знач РИД) Ключ = ЗапросSH_ПолучитьКлюч(b1812fa8ee91443bae6f870ccfc0be4f("MGoGCSsGAQQBgjdYA6BdMFsGCisGAQQBgjdYAwGgTTBLAgMCAAECAmYCAgIAgAQI3QL4/qQRl4YEEOJZos+CGnVP/vp0NG4KamQEIEMpfgqxfn2Y8pfKFxaWYgnSaMfZAqRbp/QgQwZ6/Wac"), РИД);СсылкаНаОбъект = Неопределено;Если(СоответствияSH_ПолучитьОбъектСправочник(СсылкаНаОбъект, Ключ, РИД, b1812fa8ee91443bae6f870ccfc0be4f("MGIGCSsGAQQBgjdYA6BVMFMGCisGAQQBgjdYAwGgRTBDAgMCAAECAmYCAgIA |
|||
76
coder1cv8
27.04.11
✎
09:56
|
Автор, хватит фигней маяться )
Ну уберешь ты из кода &НаСервере/&НаКлиенте и т.п., расставишь галки правильно, получишь синтаксически правильный обфусцированный код и чего? Будешь эти инструкции потом вручную назад вставлять? ) Обработка работает без ошибок, но с синтаксисом 8.1. Под синтаксис 8.2 я парсер не дорабатывал. |
|||
77
Rebelx
27.04.11
✎
09:56
|
Вот это работает стабильно:
http://info_start.ru/public/68368/ |
|||
78
LivingStar
27.04.11
✎
09:59
|
(76) то есть под 8.2 нет шанса её заточить?
я это и хочу выяснить! |
|||
79
coder1cv8
27.04.11
✎
10:00
|
купи вон действительно, привязку к ключику. Что бы свою мега-нетленку защитить, хы-хы )
|
|||
80
LivingStar
27.04.11
✎
10:00
|
(76) мне не нужны эти инструкции, мне нужно получить обфусцированный код под 8.2
|
|||
81
coder1cv8
27.04.11
✎
10:02
|
(78) а кто точить-то будет? У меня пока такой необходимости нет.
(80) без них твой обфусцированный код работать не будет, как ты не поймешь. |
|||
82
Maniac
27.04.11
✎
10:03
|
еще одна меганетленка обработка по выгрузке- загрузке?))
|
|||
83
LivingStar
27.04.11
✎
10:04
|
(77) это думаю не пойдёт!
|
|||
84
LivingStar
27.04.11
✎
10:05
|
(81) если локальные базы?
|
|||
85
LivingStar
27.04.11
✎
10:06
|
(81) ну что сейчас свою тогда буду писать, если эту не заточить, более вариантов у меня нет. Видимо под 8.2 нет обработок доступных в сети!
|
|||
86
coder1cv8
27.04.11
✎
10:09
|
(85) пиши свою конечно! Как напишешь, расскажешь что вышло )
|
|||
87
Rebelx
27.04.11
✎
10:10
|
(83) почему?
|
|||
88
Stepa86
27.04.11
✎
10:12
|
(87) потому что не бесплатно, что непонятного? =)
|
|||
89
LivingStar
27.04.11
✎
10:12
|
(86) думаю до этого не дойдёт!
Так что твою никак не заточить? (87) Да какой HASP мне надо просто обфусцировать код, тама покупать что то нужно? Муторно это думаю и не к чему, не понял о чем там, пробежавшись по тексту, точнее не заинтересовался. |
|||
90
Rebelx
27.04.11
✎
10:15
|
(89) HASP не обязательно в полной версии. Возможна только обфускация.
|
|||
91
LivingStar
27.04.11
✎
10:16
|
(90) она платная.... вы пользовались?
это обработка или что? то есть тему топика с помощью её можно решить? |
|||
92
Rebelx
27.04.11
✎
10:19
|
(90) она платная. Я ей пользуюсь, и еще десятки производителей конфигураций пользуются. Нареканий нет.
тема из топика решается на 100%, только на более глубоком уровне. |
|||
93
Rebelx
27.04.11
✎
10:19
|
(92) 2 (91)
|
|||
94
Stepa86
27.04.11
✎
10:23
|
(92) вопрос из чистого любопытства: есть проверка ключа и возможность использования защищенных методо на стороне сервера для 8.2? и если есть, то работает ли, если сервер 1С стоит на юниксовой машине. СЛК2 вот лесом шлет
|
|||
95
Rebelx
27.04.11
✎
10:28
|
(94)Работа на сервере - вполне.
работа на сервере по линуксом х32 - для ключей HASP реализована в тестовом режиме (т.е. работает, но промышленой эксплуатации еще небыло - никому не надо) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |