Имя: Пароль:
1C
 
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 реализована в тестовом режиме (т.е. работает, но промышленой эксплуатации еще небыло - никому не надо)
Независимо от того, куда вы едете — это в гору и против ветра!