- 1
учетка miheich была скомпрометирована. подскажите, как поменять пароль?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
учетка miheich была скомпрометирована. подскажите, как поменять пароль?
-
0
Fatal error: class 'Exception' not implemented
0
Как прекрасно быть Крысой!.. Я вывел целый список преимуществ.
1. Можно бегать по коммуникациям, погрызая туннели и пользоваться Ethernet бесплатно и анонимно.
2. Можно смачно поссать оппоненту в ебло - и это не будет нарушением прав или оскорблением.
3. В крысьих стаях жесточайшая иерархия - быдла и праздношатов там нет, от слова вообще.
4. Крысы - телепаты и обладают даром предвидца.
5. Корма - завались; никаких талонов на еду. Ну, а если прижало, то... можно пожевать свою какашечку.
Есть лишь один нюанс, жить придется лишь от силы годик... --------------
Но даже это преимущество: не успеешь пресытиться жизнью.
Как там пел Малежик? "Головешкой тлеть всю жизнь - дикая тоска"
−10
const puppeteer = require('puppeteer-core');
const fs = require('fs');
const getCurrentLine = require('get-current-line').default;
const { execFileSync } = require('child_process');
const data = fs.readFileSync('profitcentr.com.cookies.json');
const cookies = JSON.parse(data.toString());
function randomInteger(min, max) {
let rand = min - 0.5 + Math.random() * (max - min + 1);
return Math.round(rand);
}
function delay(time) {
return new Promise(function(resolve) {
setTimeout(resolve, time*1000)
});
}
function delay2(time) {
return new Promise(function(resolve) {
setTimeout(resolve, time)
});
}
(async () => {
const browser = await puppeteer.launch({
headless: false,
defaultViewport: null,
executablePath: '/usr/bin/chromium',
devtools: false,
args: [
'--start-maximized',
]
});
const page = await browser.newPage();
await page.setDefaultNavigationTimeout(0);
let newPage;
await page.setCookie(...cookies);
await page.goto('https://profitcentr.com', {waitUntil: 'networkidle0'});
let link = await page.$('a[href^="./work-youtube"]');
console.log('go to youtube')
await link.click();
await page.waitForTimeout(1000);
let c = 0;
while(true) {
if(c == 100) {
await page.reload({ waitUntil: ["networkidle0", "domcontentloaded"] });
c = 0;
}
let t = await page.$('[id^="ads-link-"]');
if(t == null) {
console.log('wait new tasks...');
await delay(10);
await page.reload({ waitUntil: ["networkidle0", "domcontentloaded"] });
c = 0;
continue;
}
let tt = await t.evaluate((q) => getComputedStyle(q).display);
if(tt == 'none') {
console.log('del inactive')
page.evaluate(q => { document.querySelector('[id^="ads-link-"]').remove(); })
continue;
}
let tr = await page.$('tr[class^="ads_"]');
let span = await tr.$('[onclick^="funcjs[\'start_youtube"]');
let title = await span.evaluate(el => el.textContent.trim());
console.log('title: \''+title+'\'');
let price = await tr.$('[title^="Стоимость"]');
let prices = await price.evaluate(el => el.textContent.trim());
console.log('price: ' + prices);
let newPagePromise = new Promise(x => browser.once('targetcreated', target => x(target.page())));
//await page.waitForSelector('tr[class^="ads_"] span[onclick^="funcjs[\'start_youtube"]');
//let x = await page.$('tr[class^="ads_"] span[onclick^="funcjs[\'start_youtube"]');
//console.log(x.click);
await page.waitForTimeout(1000);
try {
await page.click('tr[class^="ads_"] span[onclick^="funcjs[\'start_youtube"]');
}
catch(e) {
console.log('error! del item'); await page.evaluate(() => { document.querySelector('tr[class^="ads_"]').remove() }); continue; } await page.waitForSelector('span[onclick^="funcjs[\'open_window"]', { timeout: 60000 }); await delay2(randomInteger(700, 2000)); await page.click('span[onclick^="funcjs[\'open_window"]'); //newPage = await newPagePromise; await page.waitForTimeout(2000); let p = await browser.pages() newPage = p[2]; await newPage.bringToFront(); console.log('> '+newPage.url()); await newPage.waitForSelector('tr[id="timer-tr-block"]', { timeout: 60000 }); await delay(3); console.log('yt click'); const frame = await newPage.waitForSelector('iframe'); let rect = await newPage.evaluate(el => { let {width, height} = el.getBoundingClientRect(); return {width, height}; }, frame); await newPage.mouse.click(rect.width / 2, rect.height / 2); console.log('waiting'); await newPage.waitForSelector('[id="capcha-tr-block"][style="display: table-row;"]', { timeout: 350000 }); let btn = await newPage.$('[class="butt-nw"]'); await btn.click(); console.log('ok'); await delay2(randomInteger(900, 1500)); //console.log('> '+newPage.url()); await newPage.close(); await delay2(500); await page.bringToFront(); await page.evaluate(() => { document.querySelector('tr[class^="ads_"]').remove() }); await delay(randomInteger(1, 3)); console.log('c: '+ ++c +"\n"); } await browser.close(); })();
тупо грабер для profitcentr! в день рубль нихуя не делая поднимаю на нем
ее палится
−1
Функция ПолучитьСеб (Номенклатура,ДатаОстатков) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| УчетПартийОстатки.Номенклатура,
| УчетПартийОстатки.Партия КАК Партия,
| УчетПартийОстатки.СуммаБезНДСОстаток / УчетПартийОстатки.КоличествоОстаток КАК бухСС
|ИЗ
| РегистрНакопления.УчетПартий.Остатки(&ДатаОстатков, Номенклатура В (&Номенклатура)) КАК УчетПартийОстатки
| ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииНоменклатуры.Остатки(&ДатаОстатков, Номенклатура В (&Номенклатура)) КАК ПартииНоменклатурыОстатки
| ПО УчетПартийОстатки.Характеристика = ПартииНоменклатурыОстатки.Характеристика
| И УчетПартийОстатки.МестоХранения = ПартииНоменклатурыОстатки.МестоХранения
| И УчетПартийОстатки.Статус = ПартииНоменклатурыОстатки.Статус
| И УчетПартийОстатки.Номенклатура = ПартииНоменклатурыОстатки.Номенклатура
| И УчетПартийОстатки.Партия = ПартииНоменклатурыОстатки.Партия
|ГДЕ
| УчетПартийОстатки.КоличествоОстаток > 0
|
|УПОРЯДОЧИТЬ ПО
| Партия";
Запрос.УстановитьПараметр("ДатаОстатков", ДатаОстатков);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат ВыборкаДетальныеЗаписи.бухсс;
КонецЕсли;
КонецФункции
Нашёл сие поделие в базе одного клиента, придраться хочется ко всему, начиная с лютого нэйминга - имя функции ПолучитьСеб(), не намного лучше чем Функция1(), имя переменной в запросе бухСС тоже так себе.
Задача функции вернуть себестоимость единицы товара, при этом число она возвращает только если в запросе что-то есть, понятно что в остальных случаях вернет Неопределено, но себестоимость это всегда число, никаких Неопределено быть не должно.
Если посмотреть текст запроса, то видно, что поля выборки на 100% беруться из одной таблицы, зачем там ещё одну прилепили, да ещё и с полным соединением - теряюсь в догадках.
Упорядочивание по полю Партия вообще смысла не имеет, если уж речь идёт о получении себестоимости, то скорей автор хотел получить её из первой партии, что косвенно подвтерждается выражением "ПЕРВЫЕ 1", но дело в том, что упорядочивание по ссылке (Партия - это элемент справочника Партии) не имеет никакой привязки к дате, т.е. нужно было писать так: "Упорядочить По Партия.ДатаПартии".
Здесь не видно, но функция вызывается только в двух местах модуля и всегда с конкретным значением номенклатуры, т.е. условие виртуальной таблицы может быть оптимизировано до "Номенклатура = &Номенклатура".
Ну и на последок - в данном случае полное соединение конечно нужно ликвидировать, но если бы оно действительно было нужно, то виртуальные таблицы не стоит связывать между собой, предварительно их нужно помещать во временные таблицы и индексировать по полям условий соединения.
+1
$ss_n = 0;
$ss_nf = 0;
$ss_f = 0;
$ss_n_pl = 0;
$ss_nf_pl = 0;
$ss_f_pl = 0;
$ids_count = count($ids);
for ($i=0;$i < $ids_count;$i++) {
$key = $w_dates[$z]."|1|".$ids[$i];
$ss_n += $w_n_s[$key]*1;
$ss_nf += $w_nf_s[$key]*1;
$ss_f += $w_f_s[$key]*1;
$key = $w_dates[$z]."|2|".$ids[$i];
$ss_n += $w_n_s[$key]*1;
$ss_nf += $w_nf_s[$key]*1;
$ss_f += $w_f_s[$key]*1;
$key = $w_dates[$z]."|3|".$ids[$i];
$ss_n += $w_n_s[$key]*1;
$ss_nf += $w_nf_s[$key]*1;
$ss_f += $w_f_s[$key]*1;
}
$ids_count = count($ids);
for ($i=0;$i < $ids_count;$i++) {
$key = $w_dates[$z]."|1|".$ids[$i];
$ss_n_pl = $ss_n_pl + $w_n_s_pl[$key]*1;
$ss_nf_pl = $ss_nf_pl + $w_nf_s_pl[$key]*1;
$ss_f_pl = $ss_f_pl + $w_f_s_pl[$key]*1;
$key = $w_dates[$z]."|2|".$ids[$i];
$ss_n_pl = $ss_n_pl + $w_n_s_pl[$key]*1;
$ss_nf_pl = $ss_nf_pl + $w_nf_s_pl[$key]*1;
$ss_f_pl = $ss_f_pl + $w_f_s_pl[$key]*1;
$key = $w_dates[$z]."|3|".$ids[$i];
$ss_n_pl = $ss_n_pl + $w_n_s_pl[$key]*1;
$ss_nf_pl = $ss_nf_pl + $w_nf_s_pl[$key]*1;
$ss_f_pl = $ss_f_pl + $w_f_s_pl[$key]*1;
}
echo "<td class='Field' rowspan='3' style='vertical-align: middle;'><b>".OutNF($ss_n,$ss_nf,$ss_f)."</b></td>\n";
echo "<td class='Field' rowspan='3' style='vertical-align: middle;'><b style='color:#aa0000;'>".OutNF($ss_n_pl,$ss_nf_pl,$ss_f_pl)."</b></td>\n";
echo "</tr><tr>";
////////////////////////////////////////////////////////////
echo "<td class='Field' width='40' style='vertical-align: middle;'><b>II</b></td>\n";
$s_n = 0;
$s_nf = 0;
$s_f = 0;
$s_n_pl = 0;
$s_nf_pl = 0;
$s_f_pl = 0;
for ($i=0;$i < count($ids);$i++) {
$key = $w_dates[$z]."|2|".$ids[$i];
$s_n = $s_n + $w_n_s[$key]*1;
$s_nf = $s_nf + $w_nf_s[$key]*1;
$s_f = $s_f + $w_f_s[$key]*1;
$s_n_pl = $s_n_pl + $w_n_s_pl[$key]*1;
$s_nf_pl = $s_nf_pl + $w_nf_s_pl[$key]*1;
$s_f_pl = $s_f_pl + $w_f_s_pl[$key]*1;
if ($edti_stat[$key]==1){
echo "<td class='Field'>".OutNF($w_n_s[$key],$w_nf_s[$key],$w_f_s[$key])."</td>\n";
}
if ($edti_stat[$key]==0){
$link_dat = explode("|", $key);
$link_dat2 = $link_dat[0];
$link_dat3 = $link_dat[1];
echo "<td class='Field'><a target='_bland' href='index.php?do=show&formid=64&p0=".$link_dat2."&p1=".$link_dat3."'><b style='color:#aa0000;'>".OutNF($w_n_s_pl[$key],$w_nf_s_pl[$key],$w_f_s_pl[$key])."</b></a></td>\n";
}
}
echo "<td class='Field'></td>\n";
echo "<td class='Field'><b>".OutNF($s_n,$s_nf,$s_f)."</b></td>\n";
echo "<td class='Field'></td>\n";
echo "<td class='Field'></td>\n";
echo "<td class='Field'><b style='color:#aa0000;'>".OutNF($s_n_pl,$s_nf_pl,$s_f_pl)."</b></td>\n";
echo "<td class='Field'></td>\n";
////////////////////////////////////////////////////////////
0
if ($arr_tbl_1[$key_1] !== $cur_vid){
$cur_vid_key = $key_1;
$cur_vid_w = $arr_tbl_1[$key_1];
$cur_v_ind = $cur_v_ind + 1;
while ($arr_tbl_1[$cur_vid_key] == $cur_vid_w){
$sum_cur_v_6 += (float)$arr_tbl_6[$cur_vid_key];
$sum_cur_v_7 += (float)$arr_tbl_7[$cur_vid_key];
$sum_cur_v_10 += (float)$arr_tbl_10[$cur_vid_key];
$cur_vid_key += 1;
}
if ($sum_cur_v_6==0) { $sum_cur_v_6_0 = 1;}else{ $sum_cur_v_6_0 = $sum_cur_v_6;}
if ($sum_cur_v_7==0) { $sum_cur_v_7_0 = 1;}else{ $sum_cur_v_7_0 = $sum_cur_v_7;}
if (strlen(substr(strstr($sum_cur_v_6, "."), 1))==0) { $tbl_1_6 = $sum_cur_v_6.".00";}
if (strlen(substr(strstr($sum_cur_v_6, "."), 1))==1) { $tbl_1_6 = $sum_cur_v_6."0";}
if (strlen(substr(strstr($sum_cur_v_6, "."), 1))==2) { $tbl_1_6 = $sum_cur_v_6;}
if (strlen(substr(strstr($sum_cur_v_6, "."), 1))>2) { $tbl_1_6 = number_format($sum_cur_v_6, 2, '.', '');}
if (strlen(substr(strstr($sum_cur_v_7, "."), 1))==0) { $tbl_1_7 = $sum_cur_v_7.".00";}
if (strlen(substr(strstr($sum_cur_v_7, "."), 1))==1) { $tbl_1_7 = $sum_cur_v_7."0";}
if (strlen(substr(strstr($sum_cur_v_7, "."), 1))==2) { $tbl_1_7 = $sum_cur_v_7;}
if (strlen(substr(strstr($sum_cur_v_7, "."), 1))>2) { $tbl_1_7 = number_format($sum_cur_v_7, 2, '.', '');}
if (strlen(substr(strstr(($sum_cur_v_6-$sum_cur_v_7), "."), 1))==0) { $tbl_1_8 = ($sum_cur_v_6-$sum_cur_v_7).".00";}
if (strlen(substr(strstr(($sum_cur_v_6-$sum_cur_v_7), "."), 1))==1) { $tbl_1_8 = ($sum_cur_v_6-$sum_cur_v_7)."0";}
if (strlen(substr(strstr(($sum_cur_v_6-$sum_cur_v_7), "."), 1))==2) { $tbl_1_8 = ($sum_cur_v_6-$sum_cur_v_7);}
if (strlen(substr(strstr(($sum_cur_v_6-$sum_cur_v_7), "."), 1))>2) { $tbl_1_8 = number_format(($sum_cur_v_6-$sum_cur_v_7), 2, '.', '');}
if (strlen(substr(strstr(($sum_cur_v_7/$sum_cur_v_6_0*100), "."), 1))==0) { $tbl_1_9 = ($sum_cur_v_7/$sum_cur_v_6_0*100).".00";}
if (strlen(substr(strstr(($sum_cur_v_7/$sum_cur_v_6_0*100), "."), 1))==1) { $tbl_1_9 = ($sum_cur_v_7/$sum_cur_v_6_0*100)."0";}
if (strlen(substr(strstr(($sum_cur_v_7/$sum_cur_v_6_0*100), "."), 1))==2) { $tbl_1_9 = ($sum_cur_v_7/$sum_cur_v_6_0*100);}
if (strlen(substr(strstr(($sum_cur_v_7/$sum_cur_v_6_0*100), "."), 1))>2) { $tbl_1_9 = number_format(($sum_cur_v_7/$sum_cur_v_6_0*100), 2, '.', '');}
if (strlen(substr(strstr($sum_cur_v_10, "."), 1))==0) { $tbl_1_10 = $sum_cur_v_10.".00";}
if (strlen(substr(strstr($sum_cur_v_10, "."), 1))==1) { $tbl_1_10 = $sum_cur_v_10."0";}
if (strlen(substr(strstr($sum_cur_v_10, "."), 1))==2) { $tbl_1_10 = $sum_cur_v_10;}
if (strlen(substr(strstr($sum_cur_v_10, "."), 1))>2) { $tbl_1_10 = number_format($sum_cur_v_10, 2, '.', '');}
if (strlen(substr(strstr(($sum_cur_v_10/$sum_cur_v_7_0), "."), 1))==0) { $tbl_1_11 = ($sum_cur_v_10/$sum_cur_v_7_0).".00";}
if (strlen(substr(strstr(($sum_cur_v_10/$sum_cur_v_7_0), "."), 1))==1) { $tbl_1_11 = ($sum_cur_v_10/$sum_cur_v_7_0)."0";}
if (strlen(substr(strstr(($sum_cur_v_10/$sum_cur_v_7_0), "."), 1))==2) { $tbl_1_11 = ($sum_cur_v_10/$sum_cur_v_7_0);}
if (strlen(substr(strstr(($sum_cur_v_10/$sum_cur_v_7_0), "."), 1))>2) { $tbl_1_11 = number_format(($sum_cur_v_10/$sum_cur_v_7_0), 2, '.', '');}
echo "<tr>
<td class='field' style='background:#CBDEF4;' colspan='5'><b class='not_tr' name='arr_tbl_1_".$cur_v_ind."' style='cursor:pointer; border:1px solid #000; border-radius:6px;' onclick='show_tr_1(this.getAttribute(\"name\"), this.getAttribute(\"class\"), this);'> + </b><b class='not_tr' name='arr_tbl_1_".$cur_v_ind."' style='display:none; cursor:pointer; border:1px solid #000; border-radius:6px;' onclick='show_tr_2(this.getAttribute(\"name\"), this.getAttribute(\"class\"), this);'> - </b> ".$arr_tbl_1[$key_1]."</td>
<td name='max_numb_6' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_6."</td>
<td name='max_numb_7' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_7."</td>
<td name='max_numb_8' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_8."</td>
<td name='max_numb_9' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_9."</td>
<td name='max_numb_10' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_10."</td>
<td name='max_numb_11' class='field' style='text-align:right; background:#CBDEF4;'>".$tbl_1_11."</td>
</tr>";
$itog_sum_6 += $sum_cur_v_6;
$itog_sum_7 += $sum_cur_v_7;
$itog_sum_10 += $sum_cur_v_10;
$tbl_1_6 = "";
$tbl_1_7 = "";
$tbl_1_8 = "";
$tbl_1_9 = "";
$tbl_1_10 = "";
$tbl_1_11 = "";
$sum_cur_v_6 = 0;
$sum_cur_v_7 = 0;
$sum_cur_v_10 = 0;
}
0
<?php
public function submit()
{
$requestUri = 'http://127.0.0.1:8000/test/hs/Services/GetShedule';
$response = $this->doPostCall($requestUri . '?' . $this->prepareParams(), null);
$temp_str = json_encode(mb_convert_encoding($response, 'UTF-8'));
$temp_str = str_replace('\ufeff', '', $temp_str);
$temp_str = str_replace('\r', '', $temp_str);
$temp_str = str_replace('\n', '', $temp_str);
$temp_str = str_replace('\"', '"', $temp_str);
$temp_str = mb_strcut($temp_str, 1, -1);
$temp_arr = json_decode($temp_str, true);
$post_main_data = [];
$post_sub_data = [];
foreach($temp_arr as $main_unit_key => $main_unit_value) {
foreach($main_unit_value as $main_unit_feature_key => $main_unit_feature_value) {
foreach ($main_unit_feature_value as $sub_unit_key => $sub_unit_value) {
foreach($sub_unit_value as $sub_unit_feature_key => $sub_unit_feature_value) {
unset($sub_unit_value['Расписание']);
$post_sub_data[$main_unit_key][$main_unit_feature_key][$sub_unit_key] = $sub_unit_value;
}
}
}
}
$raw_data = $temp_arr;
$filter = array('Посты');
$raw_data_length = count($raw_data);
for ($row = 0; $row < $raw_data_length; $row++) {
$post_main_data[] = array_diff_key($raw_data[$row], array_flip($filter));
}
foreach($post_main_data as $pmd_key => $pmd_value) {
$post_main_data[$pmd_key][key($post_sub_data[$pmd_key])] = array_values(array_values($post_sub_data[$pmd_key])[0]);
}
header_remove();
header("Content-Type: application/json");
http_response_code(200);
exit();
}
?>
0
procedure TF_dvij.rg_sortClick(Sender: TObject);
var k :Integer;
s,str1,str2 :string;
fl :boolean;
begin
if G.Columns[9].Visible then
begin
fl := Q_dvij.Active ;
with Q_dvij do
begin
if fl then k := RecNo;
if rg_sort.ItemIndex=0 then s:='order by obd,gr,exped,grot'
else
if rg_sort.ItemIndex=1 then s:='order by exped,gr,obd,grot'
else
if rg_sort.ItemIndex=2 then s:='order by gr,vp,exped,obd,grot'
else
if rg_sort.ItemIndex=3 then s:='order by id_korr,exped,obd,gr,grot'
else
if rg_sort.ItemIndex=4 then s:='order by grot,gr,exped,obd'
else
s:='order by strn,obd,gr,exped,grot';
if rg_sort.ItemIndex=3 then
begin
str1 := 'select vp, id_korr,' ; //100
str2 := 'group by 1,2,3,4,5,6,7,8' //192
end
else
begin
str1 := 'select vp, max(id_korr) as id_korr,' ;
str2 := 'group by 1,3,4,5,6,7,8'
end ;
Active:=false;
SQL.Delete(100);
SQL.Insert(100, str1 );
SQL.Delete(192);
SQL.Insert(192, str2 );
SQL.Delete(262);
SQL.Insert(262, s);
Active:= fl;
if fl then RecNo := k;
G.Refresh;
end;
end;
сортировОЧКА
0
console.log('Hello from GovnoKod!');