Версия для печати темы (https://pro1c.org.ua/index.php?s=b6b825afefcdf7d3957befbd51654979&showtopic=66655)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Тематическое общение _ Интересный и не понятный код в одном из модулей 1С

Автор: bizisoft 16.07.21, 11:26

Здравствуйте.

Попала в руки одна демка системы по работе с прайсами, решил попробовать интегрировать ее в Альфа-Авто чтобы протестировать и посмотреть ее возможности.
Объединил, но видимых изменений не произошло, модули добавились, а в интерфейсе ничего не поменялось. Посмотрел описание, а эта система только под УправлениеТорговли заточена.
Решил, что тогда хоть попробую понять по каким алгоритмам оно работает.
Нашел один закрытый модуль, декомпилировал его и тут меня чуть не хватил удар от увиденного каламбура.

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

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

Вот малая часть этого треша...
Код

...

КонецФункции _0 = Новый квалификаторыстроки; квалификаторстроки = _0; _0 = 1; _0 = - _0; __f_ = _0; Перейти ~1; _0 = 20; _0 = Новый квалификаторыстроки(_0); a = _0; Перейти ~3; _0 = 20; _0 = Новый квалификаторыстроки(_0); a = _0; Перейти ~3; _0 = 100;
    ~IL_4964: ~10: ~9: ~12: ~7: ~6: ~5: ~11: ~8: ~IL_4963: ~4: _0 = Новый квалификаторыстроки(_0); a_ = _0; _0 = 1; _1 = 1; _1 = - _1; _0 = _0 >= _1; Если _0 = Ложь Тогда Перейти ~IL_4963; КонецЕсли; Перейти ~8; Перейти ~11; _0 = 0; __f_ = _0; _0 = 150; _0 = Новый квалификаторыстроки(_0); квалификаторстроки150 = _0; Перейти ~12; _0 = 1; __f_ = _0; Перейти ~7; _0 = 149; _0 = Новый квалификаторыстроки(_0); квалификаторстроки150 = _0; Перейти ~12; _0 = __f_; _1 = 1; _0 = _0 = _1; Если _0 = Ложь Тогда Перейти ~IL_4964; КонецЕсли; Перейти ~6; Перейти ~9; _0 = 200; _0 = Новый квалификаторыстроки(_0); квалификаторстроки200 = _0; _0 = 10; _1 = 2; _0 = Новый квалификаторычисла(_0, _1);
    ~20: ~IL_4967: ~21: ~17: ~16: ~18: ~IL_4966: ~14: ~15: ~19: ~IL_4965: ~13: a__ = _0; _0 = 15; _1 = 2; _0 = Новый квалификаторычисла(_0, _1); a___ = _0; _0 = 0; _1 = 0; _0 = _0 <> _1; Если _0 = Ложь Тогда Перейти ~IL_4965; КонецЕсли; Перейти ~19; Перейти ~15; _0 = 0; __f_ = _0; _0 = 0; _1 = 0; _0 = _0 <> _1; Если _0 = Ложь Тогда Перейти ~IL_4966; КонецЕсли; Перейти ~22; Перейти ~18; _0 = 20; _1 = 1; _0 = Новый квалификаторычисла(_0, _1); _a = _0; Перейти ~23; Перейти ~21; _0 = __f_; _1 = 0; _0 = _0 = _1; Если _0 = Ложь Тогда Перейти ~IL_4967; КонецЕсли; Перейти ~16; Перейти ~20; _0 = 20; _1 = 0; _0 = Новый квалификаторычисла(_0, _1); _a = _0; Перейти ~23;
    ~IL_4970: ~31: ~30: ~29: ~32: ~IL_4969: ~34: ~27: ~26: ~25: ~33: ~28: ~IL_4968: ~24: ~23: ~22: _0 = 1; _1 = 1; _1 = - _1; _0 = _0 < _1; Если _0 = Ложь Тогда Перейти ~IL_4968; КонецЕсли; Перейти ~28; Перейти ~33; _0 = 0; __f_ = _0; _0 = Новый таблицазначений; __a = _0; Перейти ~34; _0 = 0; _1 = 1; _0 = _0 = _1; Если _0 = Ложь Тогда Перейти ~IL_4969; КонецЕсли; Перейти ~32; Перейти ~26; Перейти ~27; _0 = Новый соответствие; __a = _0; Перейти ~34; Перейти ~24; _0 = 1; _1 = 0; _0 = _0 = _1; Если _0 = Ложь Тогда Перейти ~IL_4970; КонецЕсли; Перейти ~30; Перейти ~29; _0 = ""; ___a = _0; Для _a_ = 1 По 18 Цикл ___a = ___a + Символ(Число(Сред("105610831087109710861108109010741095106210781092107210731093109310821088", (_a_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("068638025854007308", _a_)))); КонецЦикла;
    _0 = ""; _a__ = _0; Для __a_ = 1 По 39 Цикл _a__ = _a__ + Символ(Число(Сред("106510951089107610741093109910891085108910641096110610841087107600471092109610971060107910791096108411061096107810911105105910781094107910761093109010861086", (__a_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("881407445777715413474205166616556737046", __a_)))); КонецЦикла; _0 = __a.колонки; _2 = Новый описаниетипов(_a__); _0.добавить(___a, _2); _0 = ""; __a__ = _0; Для _a___ = 1 По 11 Цикл __a__ = __a__ + Символ(Число(Сред("10541088109110791090105910931088109710881085", (_a___ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("12722470385", _a___)))); КонецЦикла;
    ~39: ~37: ~38: ~36: ~35: _0 = ""; ___a_ = _0; Для b = 1 По 5 Цикл ___a_ = ___a_ + Символ(Число(Сред("10711084109610841090", (b - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("84714", b)))); КонецЦикла; _0 = 1; _0 = - _0; __f_ = _0; _0 = 1; _0 = - _0; __f_ = _0; Перейти ~38; _0 = __a.таблицагруппы; _2 = Новый описаниетипов(___a_, Неопределено, Неопределено, a__); _0.видсравнениясодержитсяв(__a__, _2); Перейти ~39; _0 = __a.колонки; _2 = Новый описаниетипов(___a_, Неопределено, Неопределено, a__); _0.добавить(__a__, _2); Перейти ~39; _0 = ""; b_ = _0; Для b__ = 1 По 18 Цикл b_ = b_ + Символ(Число(Сред("105810941088108010911058109610911094108310811053107210581086109310951083", (b__ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("584331638110076456", b__)))); КонецЦикла;
    _0 = ""; b___ = _0; Для _b = 1 По 5 Цикл b___ = b___ + Символ(Число(Сред("10661085109410831092", (_b - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("35506", _b)))); КонецЦикла; _0 = __a.колонки; _2 = Новый описаниетипов(b___, Неопределено, Неопределено, a__); _0.добавить(b_, _2); _0 = ""; __b = _0; Для ___b = 1 По 7 Цикл __b = __b + Символ(Число(Сред("1056108810891079109710871078", (___b - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("1252756", ___b)))); КонецЦикла; _0 = ""; _b_ = _0; Для _b__ = 1 По 6 Цикл _b_ = _b_ + Символ(Число(Сред("104210971088108010801094", (_b__ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("165368", _b__)))); КонецЦикла;
    ~42: ~43: ~41: ~40: _0 = 0; __f_ = _0; Перейти ~41; _0 = __a.колонки; _2 = Новый описаниетипов(_b_); _0.добавить(__b, _2); Перейти ~43; _0 = __a.результатноменклатуракод; _2 = Новый описаниетипов(_b_); _0.декорацияноменклатураитог(__b, _2); Перейти ~43; _0 = ""; __b_ = _0; Для __b__ = 1 По 10 Цикл __b_ = __b_ + Символ(Число(Сред("1057108710861085109210551082108910921078", (__b__ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("4128442026", __b__)))); КонецЦикла; _0 = ""; _b___ = _0; Для ___b_ = 1 По 5 Цикл _b___ = _b___ + Символ(Число(Сред("10631085109110841088", (___b_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("05212", ___b_)))); КонецЦикла;
    ~44: _0 = __a.колонки; _2 = Новый описаниетипов(_b___, Неопределено, Неопределено, a__); _0.добавить(__b_, _2); _0 = ""; c = _0; Для c_ = 1 По 5 Цикл c = c + Символ(Число(Сред("10631086108710791081", (c_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("64475", c_)))); КонецЦикла; _0 = ""; c__ = _0; Для c___ = 1 По 23 Цикл c__ = c__ + Символ(Число(Сред("10581090108810781081109411021086108810861061109411001089109010760049106010831083107810821107", (c___ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("13067871844516843310668", c___)))); КонецЦикла; _0 = 0; _1 = 1; _0 = _0 <> _1; Если _0 = Ложь Тогда Перейти ~IL_4971; КонецЕсли;
    ~48: ~49: ~46: ~47: ~45: ~IL_4971: Перейти ~45; Перейти ~47; Перейти ~46; _0 = __a.колонки; _2 = Новый описаниетипов(c__); _0.добавить(c, _2); Перейти ~49; _0 = __a.нстр; _2 = Новый описаниетипов(c__); _0.элементмассива(c, _2); Перейти ~49; _0 = ""; _c = _0; Для __c = 1 По 13 Цикл _c = _c + Символ(Число(Сред("1052108010821090109310831096108110821076109110931089", (__c - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("4455334104171", __c)))); КонецЦикла; _0 = ""; ___c = _0; Для _c_ = 1 По 5 Цикл ___c = ___c + Символ(Число(Сред("10631084109010871092", (_c_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("04146", _c_)))); КонецЦикла;
    _0 = __a.колонки; _2 = Новый описаниетипов(___c, Неопределено, Неопределено, _a); _0.добавить(_c, _2); _0 = ""; _c__ = _0; Для __c_ = 1 По 13 Цикл _c__ = _c__ + Символ(Число(Сред("1054108910971074109310901086105810971090108710851079", (__c_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("0072344172137", __c_)))); КонецЦикла; _0 = ""; __c__ = _0; Для _c___ = 1 По 6 Цикл __c__ = __c__ + Символ(Число(Сред("106410941092109110841073", (_c___ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("744521", _c___)))); КонецЦикла; _0 = __a.колонки; _2 = Новый описаниетипов(__c__, Неопределено, Неопределено, Неопределено, a);
    ~51: ~50: _0.добавить(_c__, _2); _0 = ""; ___c_ = _0; Для d = 1 По 12 Цикл ___c_ = ___c_ + Символ(Число(Сред("105710921096107610921090108310631087109610871093", (d - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("336424107747", d)))); КонецЦикла; _0 = ""; d_ = _0; Для d__ = 1 По 5 Цикл d_ = d_ + Символ(Число(Сред("10651086109210881091", (d__ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("26355", d__)))); КонецЦикла; _0 = 0; __f_ = _0; Перейти ~52; _0 = __a.задание_остатки_удалятьоприходованиясписания; _2 = Новый описаниетипов(d_, Неопределено, Неопределено, a___); _0.тема(___c_, _2); Перейти ~53;
    ~53: ~52: _0 = __a.колонки; _2 = Новый описаниетипов(d_, Неопределено, Неопределено, a___); _0.добавить(___c_, _2); Перейти ~53; _0 = ""; d___ = _0; Для _d = 1 По 24 Цикл d___ = d___ + Символ(Число(Сред("105310741080108510771087109110751072109110861079105610911088107910931083108610741095109610951101", (_d - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("020102510662354281325572", _d)))); КонецЦикла; _0 = ""; __d = _0; Для ___d = 1 По 6 Цикл __d = __d + Символ(Число(Сред("106010961091108910851080", (___d - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("363338", ___d)))); КонецЦикла;
    ~57: ~59: ~56: ~58: ~55: ~IL_4972: ~54: _0 = 0; _1 = 1; _0 = _0 > _1; Если _0 = Ложь Тогда Перейти ~IL_4972; КонецЕсли; Перейти ~55; Перейти ~58; _0 = __a.колонки; _2 = Новый описаниетипов(__d, Неопределено, Неопределено, Неопределено, a_); _0.добавить(d___, _2); Перейти ~59; _0 = __a.начальныйпутькфайлу; _2 = Новый описаниетипов(__d, Неопределено, Неопределено, Неопределено, a_); _0.пустаяколонка(d___, _2); Перейти ~59; Перейти ~56; _0 = ""; _d_ = _0; Для _d__ = 1 По 25 Цикл _d_ = _d_ + Символ(Число(Сред("1053107910781093109310821093108810841073109110891089105910901090108010861090108810751094109110911107", (_d__ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("5318321821131646318534038", _d__)))); КонецЦикла;
    _0 = ""; __d_ = _0; Для __d__ = 1 По 5 Цикл __d_ = __d_ + Символ(Число(Сред("10671084109610901089", (__d__ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("44773", __d__)))); КонецЦикла; _0 = __a.колонки; _2 = Новый описаниетипов(__d_, Неопределено, Неопределено, _a); _0.добавить(_d_, _2); _0 = ""; _d___ = _0; Для ___d_ = 1 По 27 Цикл _d___ = _d___ + Символ(Число(Сред("105510771083108610901082109210841084107310911094109510631073108910751082109610831090108110921097108410831083", (___d_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("716102042118721130662137413", ___d_)))); КонецЦикла;
    _0 = ""; e = _0; Для e_ = 1 По 5 Цикл e = e + Символ(Число(Сред("10701088109610901088", (e_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("78772", e_)))); КонецЦикла; _0 = __a.колонки; _2 = Новый описаниетипов(e, Неопределено, Неопределено, _a); _0.добавить(_d___, _2); _0 = ""; e__ = _0; Для e___ = 1 По 14 Цикл e__ = e__ + Символ(Число(Сред("10541094108610771090109010891074109610991095107900521061", (e___ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("18205862687734", e___)))); КонецЦикла; _0 = ""; _e = _0; Для __e = 1 По 29 Цикл _e = _e + Символ(Число(Сред("10631094108910791075108910961086108010871063109611041091108910730051105710891091108310921090108410761093109410921080", (__e - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("67171311056758715437678143348", __e)))); КонецЦикла;
    ~65: ~62: ~64: ~63: ~61: ~IL_4973: ~60: _0 = 0; __f_ = _0; _0 = 1; _0 = - _0; _1 = 1; _0 = _0 < _1; Если _0 = Ложь Тогда Перейти ~IL_4973; КонецЕсли; Перейти ~61; Перейти ~63; Перейти ~64; _0 = __a.загружать; _2 = Новый описаниетипов(_e); _0.загрузкафайлов_защищенноесоединение(e__, _2); Перейти ~65; _0 = __a.колонки; _2 = Новый описаниетипов(_e); _0.добавить(e__, _2); Перейти ~65; _0 = ""; ___e = _0; Для _e_ = 1 По 16 Цикл ___e = ___e + Символ(Число(Сред("1064107510931075108210941082109310801094109310811082108000541059", (_e_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("3353045505310852", _e_)))); КонецЦикла;
    _0 = ""; _e__ = _0; Для __e_ = 1 По 43 Цикл _e__ = _e__ + Символ(Число(Сред("1064108910951075107810881098108910851088106410961099108510881072005110621077109010731086109510811089108510931097108810881085106110881091108310851086108310761090109910891106", (__e_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("7273423456770260515214541547865827604040817", __e_)))); КонецЦикла; _0 = __a.колонки; _2 = Новый описаниетипов(_e__); _0.добавить(___e, _2); _0 = ""; __e__ = _0; Для _e___ = 1 По 13 Цикл __e__ = __e__ + Символ(Число(Сред("1059109510791095109710971057107711061079108410901074", (_e___ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("2575683482202", _e___)))); КонецЦикла;
    ~IL_4975: ~67: ~IL_4974: ~66: _0 = ""; ___e_ = _0; Для f = 1 По 37 Цикл ___e_ = ___e_ + Символ(Число(Сред("1061108010901085110110851094109010781092108410781062109411031088108710770049108910971092106410921080109610981093110110591079109810841085109210871081", (f - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("6328655717415545553052728674256073217", f)))); КонецЦикла; _0 = 1; _1 = 1; _1 = - _1; _0 = _0 < _1; Если _0 = Ложь Тогда Перейти ~IL_4974; КонецЕсли; Перейти ~69; Перейти ~67; _0 = __f_; _1 = 1; _0 = _0 = _1; Если _0 = Ложь Тогда Перейти ~IL_4975; КонецЕсли; Перейти ~71; Перейти ~68; _0 = 0; __f_ = _0; Перейти ~74;
    ~75: ~72: ~73: ~70: ~IL_4976: ~74: ~68: ~71: ~69: _0 = __f_; _1 = 1; _0 = _0 = _1; Если _0 = Ложь Тогда Перейти ~IL_4976; КонецЕсли; Перейти ~70; Перейти ~73; _0 = __a.текстовоесодержимое; _2 = Новый описаниетипов(___e_); _0.вебссылка(__e__, _2); Перейти ~75; _0 = __a.колонки; _2 = Новый описаниетипов(___e_); _0.добавить(__e__, _2); Перейти ~75; _0 = ""; f_ = _0; Для f__ = 1 По 29 Цикл f_ = f_ + Символ(Число(Сред("10531078108010891090108110991083108510731092109410961047108210881085108610981104105610871084108310881082108910811107", (f__ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("52340173312882680645880605414", f__)))); КонецЦикла;

...

Функция h__() _0 = a; Возврат _0;
КонецФункции _0 = ""; a = _0; Для a_ = 1 По 543 Цикл a = a + Символ(Число(Сред("1047107110491059104410591069004010581043104810591045106510511057105610671046001700111064107510751086108610981080105010951096109210941103105310901084107910891084109010751096109310961099005310551089
10851080109010571094109310931083108510531079105710821089109310830037105510441051003310561086108910851088106510901088108810841087105410761056108310921094108000520011001210551041105610611052105410611056
0
04310611090108910731081108811011086108310881060108610871083109310861089107610901094108810740051105710961107109010891075004500371057104510580039106110891102109010831077004700180010004000520032105410461
0
58003810551087107610791083109510571089109510931087109410941075109010830013004500530013001200140017105410520013001210641075108010861081109710781049109310951093109211051061109410841084109210871083107210
9
31099109411030034105410421051003510601077108010851083110210801051109410941088109011021061109210861083108910861088107210981091109011020012001200101049106010671061106010461054105310521049003610651054105
2
10441050106010501061104810530034106210951095107710771089110010891087108300501059108610911081109110891085107810961094108910720036105510411057003910611094109110751075109110971093108510901059109310871079
1
09010851086107410961093109510730016001400121057106100350048106110721075108710871094107210491089109510911092110310541094108910851087108310881077109010931091110400541055108610801072111110531079109510811
0
97110300430015001100131053003400471059109310901080108010941099108510861088105610881090108510931089108910801090109210931079005210741098108610451093109610941088107200480013001000160015001300120015105300
3
90048105910771080108410841097107910481093109610871088110210611091108410831091108910861080109510941092110100531053107210831089107910901092108110771093108010850039006200391059109110911078107610921102108
6
10831087106110921088107710891084108610791095109310941073005410551076108310881080109010941081108010901084108200410018001610571044105710671055106310501064105610491041106410740032105610620011000910621072
1
07410901081109810761046109510911087109511021056108910891084108910831090107310901091109311000052105510941085108310941063109310921090108910851054107210571083109410901079", (a_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("5483411823130164301726323648775574040242736280723132045715076203655411305808002271453343813316442243431172613670368464030250787734575874037153813304686720216037376818338343576533637313665465688077
50038642421325723888631338626445080232317783411074480702758082587533547146074672663104517747331528586732533262716532738302470061445418582155023582060867818325245272628684066326887680157658025571074176
3
36578157143755501385066738534270035256758087172436267135864042375261824343587854508601180828271660181040171443700833357417100516281666344751063502", a_)))); КонецЦикла;
Функция h___() ~4: ~5: ~2: ~1: ~3: ~IL_4988: ~0: _0 = 1; _0 = - _0; _1 = 0; _0 = _0 <> _1; Если _0 = Ложь Тогда Перейти ~IL_4988; КонецЕсли; Перейти ~3; Перейти ~1; _0 = a; Возврат _0; Перейти ~5; Перейти ~2; _0 = a; Возврат _0; Перейти ~5;
КонецФункции _0 = ""; a = _0; Для a_ = 1 По 535 Цикл a = a + Символ(Число(Сред("1049107010441062104310581070003810631042105510601045106910511056105510721046001100111060107610811090108410941077104710911094109210951105105910921087108110891083108610721098109210931099005310611089
10891081109510601097109610911090108410611079105110851091109310840035105410421057003210531092108410771095105810931091108810881086105310741058108810941091107700510011001610591045105510571054105910641054
0
04210611091108910751078109211021087108010891055109010851078108610901086107510931093108910750050106210901100108310851072004100351056104110500034105910961107108610841079005200100017004500510037105410441
0
50003510521087108410781082109710611087109010951083109010941077108610830011004500580010001200090010105110490013001310641080107810881087110210781050109210921094108811011056109310841082108810871083107710
9
31099109111040036105810481054003310631079107910871087109610781043109210931089109111071055108810901083109210871083107610901096109111070046001800101057108910961078107710891100108510841089005010581088108
9
10841087108810831076109610911095107900331053104410550036105910891092107710761091110310871083108710541091109010791087108910851072109610991089107400151051105110470009001100140039003500401064107210791084
1
08211021074104910931096109510881106106010861090108210931090108610781096109410881105005010591094107810781109105210741088108810941105001000131051003810571089109210741077108611031087108210871057109310921
0
78109310871089107610961092109110730053107610931094104910961094108810911075001300140016001310550038004210621078107910841080109610781045109610991095109511041059108710871084108810871091107610931091109611
0
00047105310751083108810811092109410751074108810861077003910601059105010601041105610550039003900400036004000430033106410941089107810801086110310861083108910571089108510771089108610901078109610961088107
4
00521058107210841092108010881094107410761089108510780035004400380042004500420044001200171059104810581060105810561052106110551046104110621068003610601055001000131064107510801091108710981080104310901092
1
093109311051058109410921080108810841090108010921095109211010046105710911086108210881063109810911091109010801055107810571082109110971080", (a_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("7336302672840563251122487405433586663441308150783547378584870523734270060071332660278510717755067522441346720724111833321345110300361022783278088254403428108412532834318813003234685578674171237053
50538354884157647260422482266750405382810286335047452572604607713454224525823515622720681258720247386061282655817706588366306468466521855043602423082254781856461317738683143456476246610262888856137358
4
308110334478123607556603175328017716608137431044766502650483380445131688832725213145141404510463787480216665883327824420452506835802662273", a_)))); КонецЦикла;

...


Функция __h__() _0 = a; Возврат _0;
КонецФункции _0 = ""; a = _0; Для a_ = 1 По 648 Цикл a = a + Символ(Число(Сред("1049107110471063104010591069003910621047105110641047106910501055105810721045001800121065107710771087108610971074105510891088107810911087108910801098109310951078005210571093108410791091106210981094
10901088108810561077105310881096109210800035105710481055003410551088108610831096106310931091109310851082106010721056108210901090108000480017001510561046105010591054105310641059004410641094109610761080
1
09410961093108010901053108810851077108810861091107310901093109010750049106310941105108710831075004200361057104410520036106010961103109110851072004500120014004400520035105610451057003910561090108110781
0
86109310591094109610931088109310941077108410870017001300450056001410501053001100091059107910811084108311011077105810881089107810921083108310801094109510961080003310551042105100361063107610741088108110
9
71078106110891084107910901084108910761094109310881078001700090017104810571067105910641047105910531049105200371060105910531049105610561053106010491048003210621079107710871093109310951062107910791079108
2
10921086108700461067109410901082109810851086108310991058109410871082109110821090107610961097109311060033105610421052003910661093108810881094108910881079110410551094108410801087108410861078109710951091
1
09900170010001400091042106110591059105810511061105310511046003710641055104910441049105410461059105610490034106010891092107510811092110210921083108300491061108610911078108710841087108010901097108910780
0
36105510431053003410641093109210771079109311001091108510891060108810851084109110861086107410941092109610790017001100170012106010560037106410971092108310981082109210821106105510871086108110901086108810
7
81097109810911100004610561094108610801093108910841078109210931090107200370069003510651092109510721081109111031087108810851055108910891078108910881091107610981095109310720047105710961103108310821080001
0
00120009105910560039004210661074107610861083109910751061109210881082108910881087107510951097109210780053105610921075107411081055107410941080109011070034006400341054106210581052105310480016001100110012
1
05600361066109410931087109610901090107611061054108610841084108910841087108010941096109011000049107010961093108110971089108610770035106210571044105910481055105500390041004400360036004700361066107810781
0
88108210971079105910911086108410911089108410741094109710881078005310651096109410871097108310921082003900470040004200380035004600130016001000430057001500380059001610641043105910591060105810481057106010
4
81042106010760039105610540015000910661072107610911085109910771060109210891080109310831083108010901091109110790052105410901087108310891060109710911090108210881058107210561082109510931084", (a_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("7467011767482552550837544632234165688276647023586468352872337852222686337327052103476460261574778468180802103481022336564131474243748301257336577855144288385832774864261017813755251710844881521454
15136830252644206708648182604753585838713062274375523576603422530705835607466571622723081723528032236743071500801268061571401116842324376773138071224806164533276455756577217643241877283525074350667212
4
54567731038238716222058385707582832351468484501074008030427282333538645464356467361258270172326504086223842457384071007424845213665147013730572177724448655237652767124606716674166748811537166517670305
3
01662287105080385557653810800376143613734085052637", a_)))); КонецЦикла;
Функция _h___() _0 = a; Возврат _0;
КонецФункции _0 = ""; a = _0; Для a_ = 1 По 234 Цикл a = a + Символ(Число(Сред("1046107310441062104610621075003910611042105010641052107110471061106010701051001600151059107810751086108510991078106010901090107810901083109110731092109410951080005310561092108910851092105810911091
10871088108710611078105210821097109110800032105710411050003310581087108610831096105710961092109110891087105610751052108210961093108100470015001610601041105810651053105310591052004610571093109010771074
1
09310961089108110841057108810851078109210891090107810981095109310740053106010911104109110851079004300401055104310580038105810891105108410851077005200120009003800540038105810411050003910511086108010781
0
88109610651089109110971087109410941077108910870012004100560015000900140014105610530018001500380057001800450054001610611047106010671061106310501057105710491045106410690035106110570016001210621075107610
8
91087109910771057109210851083109010851090107710901095109510750053105810901087108210931064109810891090108710801060108010561084109610921083", (a_ - 1) * 4 + 1, 4)) - Число(Символ(КодСимвола("4636647752387728736661623556746151812378736584113167861281307101512680645773312734357818851006062507141242117776845273258372853861061358201568107314167833776837724660548686168826444868213756136363
43367554616537504737543557814507854726", a_)))); КонецЦикла;
Функция ___h_() _0 = a; Возврат _0;

...

Автор: TohaMonster 16.07.21, 11:35

bizisoft @ Сегодня, 11:26 * ,
Жесть. Не верю, что существуют программисты, которым придет на ум такое написать smile.gif Думаю, вот ето утверждение справедливо

Цитата
Складывается, что этот модуль был обработан каким-то алгоритмом для запутывания кода

Автор: Vofka 16.07.21, 11:35

bizisoft, это называется https://pro1c.org.ua/redirect.php?https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%84%D1%83%D1%81%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5). Делается специально для защиты кода от посторонних.

Автор: Petre 16.07.21, 11:36

Это называется "обфускация".

Автор: sava1 16.07.21, 19:15

А может это обезъяна по клаве потопталась.....

Автор: bizisoft 17.07.21, 10:38

Vofka @ Вчера, 12:35 * ,

А как тогда интерпретатор пропускает момент, когда в теле функции/процедуры располагается другая функция процедура или после слова КонецФункции идут операторы присваивания, циклы, условия?


Автор: Vofka 17.07.21, 11:05

Цитата(bizisoft @ 17.07.21, 11:38) *
А как тогда интерпретатор пропускает момент, когда в теле функции/процедуры располагается другая функция процедура

Не знаю. Но в примере, который вы привели такого вроде нету. Но я не сильно внимательно смотрел.

Цитата(bizisoft @ 17.07.21, 11:38) *
или после слова КонецФункции идут операторы присваивания, циклы, условия?

В модуле можно размещать какой-то код после определения всех процедур и функций, это нормально.

Автор: denis84 18.07.21, 10:04

Я такое встречал. Обработка была под паролем и после снятия пароля с помощью специальных обработок в модуле появлялись вот такие приколы.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua