Имя: Пароль:
1C
1С v8
Как получить двоичное число из десятичного?
🠗 (aka AMIGO 27.11.2013 11:31)
0 xenos
 
27.11.13
10:45
Есть несколько реквизитов,  логического типа, которое шифруется в виде числа.

Т.е. допустим:
Реквизит1 = Да = 1
Реквизит2 = Да = 1
Реквизит3 = Нет = 0
Реквизит4 = Да = 1

Шифруется в виде числа: 1*1+2*1+4*0+8*1=1+2+0+8=11

Как получить из числа 11 значения реквизитов?
1 Euguln
 
27.11.13
10:47
Строкой хранить не проще?
2 ДенисЧ
 
27.11.13
10:48
Докатились....
Такой хвост, а не можешь в двоичное число разложить?
Ну точно, разжижает...
3 Тихий омут
 
27.11.13
10:48
и эти люди запрещают мне ковыряться в носу...
4 xenos
 
27.11.13
10:49
(1) Это не я храню.
5 Wobland
 
27.11.13
10:49
ты смотри! знает ведь, что такое двоичное
6 Рэйв
 
27.11.13
10:50
7 Euguln
 
27.11.13
10:50
(4) Ещё скажи "поиск ничего не дал" )))
8 xenos
 
27.11.13
10:51
(2) > Такой хвост, а не можешь в двоичное число разложить?

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

В принципе понятна задача, что надо число разделить на 8,
остаток на если больше на 4
остаток на если больше на 2
остаток на если больше на 1.

Но лень писать.
9 xenos
 
27.11.13
10:52
(6) ТЫ код 1С можешь дать?
10 Sorm
 
27.11.13
10:52
(8) "Но лень". Это 5. Лень даже на инфостарте поискать?
11 Euguln
 
27.11.13
10:52
(8) ты не поверишь, как лень отвечать, голова другим занята
12 xenos
 
27.11.13
10:53
(11) Может есть у кого.
13 Рэйв
 
27.11.13
10:53
(9)Блин, ты совсем обленился.
а%б= остаток от деления. Самому совсем в ломы написать деление чтоли?  Да хоть в той же рекурсии на три строки
14 Fr1eNd
 
27.11.13
10:53
11/2 = 5 (остаток1 =  1) 5/2 = 2 (остаток2 =  1) 2/2 = 1 (остаток3 =  0) и собственно остаток4 = 1. стрДвоичноеЧисло = остаток1 + остаток2 + остаток3 + остаток4
15 Leksus
 
27.11.13
10:55
Делением на 2 в цикле.
11/2 = 5(1)  1
5/2  = 2(1)  1
2/2  = 1     0
             1
16 xenos
 
27.11.13
10:56
(14) (15) Кода не дадите?
17 xenos
 
27.11.13
10:56
(13) Ломает меня думать над этим.
18 Рэйв
 
27.11.13
10:56
я бы не дал:-) С ленью надо бороться.
19 xenos
 
27.11.13
10:58
(18) Я над другим думаю.
20 xenos
 
27.11.13
11:00
Ну че вы как падлы? Влом написать что-ли?
21 andreymongol82
 
27.11.13
11:01
Рукалицо....
22 Жан Пердежон
 
27.11.13
11:01
информатика, 6-7 класс
23 Ненавижу 1С
 
гуру
27.11.13
11:02
(20) сам ты п..., все уже написали
24 Жан Пердежон
 
27.11.13
11:03
(20) Вон из профессии! (с)
25 Salimbek
 
27.11.13
11:04
(20) Вот ты...
Времянка=ТвоеЧисло;
Выход="";
Пока Времянка>0 Цикл
  Если Времянка%2=0 Тогда
    Выход="0"+Выход;
  Иначе
    Выход="1"+Выход;
  КонецЕсли
  Времянка = Цел(Времянка/2);
КонецЦикла
26 hhhh
 
27.11.13
11:06
(25) у него наоборот

Выход=Выход+"0";
27 Asmody
 
27.11.13
11:06
(20) 10$
28 Asmody
 
27.11.13
11:06
(27)+ за лень
29 User_Agronom
 
27.11.13
11:11
(0) Школьное задание...
30 User_Agronom
 
27.11.13
11:12
(8) Основание системы счисления, а он на 8 делить собрался ;(
А потом тройки цифр анализировать?
31 zakidonoff
 
27.11.13
11:20
(20) Я даже не знаю, что сказать...
32 Aprobator
 
27.11.13
11:21
(20) тебя откуда выпустили с таким сленгом то?
33 Ярус
 
27.11.13
11:24
пока не научится писать не через строку, ничего не давать
34 aka AMIGO
 
27.11.13
11:26
35 zakidonoff
 
27.11.13
11:27
В общем, ребят. Тут такое дело...
Мне нужно прямую выгрузку в БД SQL написать из УТ 10.3 для переписанной вдоль и поперёк джумлы.
Не, сам-то я могу но влом.
Напишите, кому не в падлу, а?
36 х86
 
27.11.13
11:28
(0)запросом?
37 H A D G E H O G s
 
27.11.13
11:30
Что за извращения со строками.
Функция должна возвращать массив из Булево.
38 aka AMIGO
 
модератор
27.11.13
11:30
У потока сознания покривилось русло.
Для начала ветка притоплена.
39 H A D G E H O G s
 
27.11.13
11:31
(0) Автор, это тебе не в оффтопике чушь нести, тут думать надо.
40 xenos
 
27.11.13
11:31
Ну чё вы в натуре, простая же задача.
41 Fish
 
27.11.13
11:32
(40) Сколько платишь?
43 xenos
 
27.11.13
11:33
(41) Ну как бы все люди братья, надо помогать друг другу, тогда наступит коммунизм на всей Земле.

Ты против коммунизма на всей Земле?
44 H A D G E H O G s
 
27.11.13
11:33
(40) Ты 1С занимаешься минимум с мая 2006. Иди, раскинь мозгом по черепной коробке и сам думай.
45 Salimbek
 
27.11.13
11:35
(43) Чем (25) не угодило?
46 Fish
 
27.11.13
11:35
(43) Я готов помочь. Повторю вопрос: сколько платишь?
47 Ярус
 
27.11.13
11:35
(44)"1С занимаешься минимум с мая 2006" может в этом и причина деградации?
48 xenos
 
27.11.13
11:37
(45) Да,  подойдет, спасибо.

А тут накинулись на меня как петухи-драчуны.
49 H A D G E H O G s
 
27.11.13
11:38
(47) Скорее причина в творческой личности.
50 xenos
 
27.11.13
11:39
(46)>Я готов помочь. Повторю вопрос: сколько платишь?

А за идею? За победу коммунизма?
51 xenos
 
27.11.13
11:42
(49) > Скорее причина в творческой личности.

Ты хоть расскажи в чем я тебя переспорил, что до сих мне простить не можешь.
52 Aprobator
 
27.11.13
11:55
(44) срок не показатель. Уровень способностей в каждой области свой. Тут дятлов долгожителей в 1С - пруд пруди. А истинных гуру - по пальцам пересчитать.
53 Кирпич
 
27.11.13
12:10
Автор, давно пора иметь свои шаблоны и заготовки кода на все случаи жизни.
Просто берешь такую заготовку, отсекаешь всё лишнее и получаешь готовую программу.

Вот, например, мои заготовки:

Для 1С

я,Период,Счет,Валюта=Неопределено,Субкон
то1=Неопределено,Субконто2=Неопределено,
Субконто3=Неопределено,ЗнакФильтрПоОстат
кам=0)ЭкспортВидПланаСчетов=Счет.Метадан
ные().Имя;Субконто=НовыйМассив(3);Субкон
то[0]=Субконто1;Субконто[1]=Субконто2;Су
бконто[2]=Субконто3;ФильтрПоСубконто="";
ДляКаждогоТекВидСубконтоИзСчет.ВидыСубко
нтоЦиклЕслиНЕТекВидСубконто.ТолькоОборот
ыИНЕСубконто[ТекВидСубконто.НомерСтроки-
1]=НеопределеноТогдаФильтрПоСубконто=Фил
ьтрПоСубконто+"ИСубконто"+ТекВидСубконто
.НомерСтроки+"=&Субконто"+ТекВидСубконто
.НомерСтроки;КонецЕсли;КонецЦикла;Выбира
тьВалюту=(неСчет.Метаданные().ПризнакиУч
ета.Найти("Валютный")=Неопределено);Выби
ратьВалютнуюСумму=(неМетаданные.Регистры
Бухгалтерии[ВидПланаСчетов].Ресурсы.Найт
и("ВалютнаяСумма")=Неопределено);ОтборПо
Организации=(неМетаданные.РегистрыБухгал
терии[ВидПланаСчетов].Измерения.Найти("О
рганизация")=Неопределено);Запрос=НовыйЗ
апрос;Запрос.УстановитьПараметр("Период"
,Период);Запрос.УстановитьПараметр("Счет
",Счет);Запрос.УстановитьПараметр("Орган
изация",Организация);Запрос.УстановитьПа
раметр("Субконто1",Субконто[0]);Запрос.У
становитьПараметр("Субконто2",Субконто[1
]);Запрос.УстановитьПараметр("Субконто3"
,Субконто[2]);Запрос.УстановитьПараметр(
"Валюта",Валюта);ВидыСубконто=Счет.ВидыС
убконто.ВыгрузитьКолонку("ВидСубконто");
Запрос.УстановитьПараметр("ВидыСубконто"
,ВидыСубконто);ЗнакОстатков=?(ТипЗнч(Зна
кФильтрПоОстаткам)=Тип("Число"),ЗнакФиль
трПоОстаткам,0);Запрос.УстановитьПарамет
р("Множитель",?(ЗнакОстатков<0,-1,1));Ко
личествоСубконто=ВидыСубконто.Количество
();Запрос.Текст="|ВЫБРАТЬ|Счет,"+?(Колич
ествоСубконто>0,"|Субконто1,","НЕОПРЕДЕЛ
ЕНОКАКСубконто1,")+?(КоличествоСубконто>
1,"|Субконто2,","НЕОПРЕДЕЛЕНОКАКСубконто
2,")+?(КоличествоСубконто>2,"|Субконто3,
","НЕОПРЕДЕЛЕНОКАКСубконто3,")+"|ЕСТЬNUL
L(СуммаОстаток,0)*&МножительКАКСуммаОста
ток"+?(ВыбиратьВалюту,",|ЕСТЬNULL(Валюта
,НЕОПРЕДЕЛЕНО)КАКВалюта","")+?(ВыбиратьВ
алютнуюСумму,",|ЕСТЬNULL(ВалютнаяСуммаОс
таток,0)*&МножительКАКВалютнаяСуммаОстат
54 Кирпич
 
27.11.13
12:11
Аналогичная заготовка для ObjectPascal

ofChar;CharMap:array[Char]ofCharabsolute
ShadowMap;functionFindNextWordStart(varB
ufPtr:PChar):Boolean;begin{(TrueXORN)ise
quivalentto(notN)}{(FalseXORN)isequivale
ntto(N)}{WhenDirectionisforward(1),skipn
ondelimiters,thenskipdelimiters.}{WhenDi
rectionisbackward(-1),skipdelims,thenski
pnondelims}while(SearchCount>0)and((Dire
ction=1)xor(BufPtr^inWordDelimiters))dob
eginInc(BufPtr,Direction);Dec(SearchCoun
t);end;while(SearchCount>0)and((Directio
n=-1)xor(BufPtr^inWordDelimiters))dobegi
nInc(BufPtr,Direction);Dec(SearchCount);
end;Result:=SearchCount>0;ifDirection=-1
thenbegin{backuponechar,toleaveptronfirs
tnondelim}Dec(BufPtr,Direction);Inc(Sear
chCount);end;end;beginResult:=nil;ifBufL
en<=0thenExit;ifsoDowninOptionsthenbegin
Direction:=1;Inc(SelStart,SelLength);{st
artsearchpastendofselection}SearchCount:
=BufLen-SelStart-Length(SearchString)+1;
ifSearchCount<0thenExit;ifLongint(SelSta
rt)+SearchCount>BufLenthenExit;endelsebe
ginDirection:=-1;Dec(SelStart,Length(Sea
rchString));SearchCount:=SelStart+1;end;
if(SelStart<0)or(SelStart>BufLen)thenExi
t;Result:=@Buf[SelStart];{UsingaCharmapa
rrayisfasterthancallingAnsiUpperoneveryc
haracter}forC:=Low(CharMap)toHigh(CharMa
p)doCharMap[C]:=C;{SinceCharMapisoverlay
edontotheShadowMapandShadowMapis1bytelon
ger,wecanusethatextrabyteasaguardNULL}Sh
adowMap[256]:=#0;ifnot(soMatchCaseinOpti
ons)thenbegin{$IFDEFMSWINDOWS}AnsiUpperB
uff(PChar(@CharMap),sizeof(CharMap));Ans
iUpperBuff(@SearchString[1],Length(Searc
hString));{$ENDIF}{$IFDEFLINUX}AnsiStrUp
per(@CharMap[#1]);SearchString:=AnsiUppe
rCase(SearchString);{$ENDIF}end;whileSea
rchCount>0dobeginif(soWholeWordinOptions
)and(Result<>@Buf[SelStart])thenifnotFin
dNextWordStart(Result)thenBreak;I:=0;whi
le(CharMap[Result[I]]=SearchString[I+1])
dobeginInc(I);ifI>=Length(SearchString)t
henbeginif(not(soWholeWordinOptions))or(
SearchCount=0)or(Result[I]inWordDelimite
rs)thenExit;Break;end;end;Inc(Result,Dir

Ну и конечно же Си++

staticvoidchangeToCall(InvokeInst*II){Sm
allVector<Value*,8>Args(II->op_begin(),I
I->op_end()-3);CallInst*NewCall=CallInst
::Create(II->getCalledValue(),Args,"",II
);NewCall->takeName(II);NewCall->setCall
ingConv(II->getCallingConv());NewCall->s
etAttributes(II->getAttributes());NewCal
l->setDebugLoc(II->getDebugLoc());II->re
placeAllUsesWith(NewCall);//Followthecal
lbyabranchtothenormaldestination.BranchI
nst::Create(II->getNormalDest(),II);//Up
datePHInodesintheunwinddestinationII->ge
tUnwindDest()->removePredecessor(II->get
Parent());II->eraseFromParent();}staticb
oolmarkAliveBlocks(BasicBlock*BB,SmallPt
rSet<BasicBlock*,128>&Reachable){SmallVe
ctor<BasicBlock*,128>Worklist;Worklist.p
ush_back(BB);Reachable.insert(BB);boolCh
anged=false;do{BB=Worklist.pop_back_val(
);//Doaquickscanofthebasicblock,turninga
nyobviouslyunreachable//instructionsinto
LLVMunreachableinsts.Theinstructioncombi
ningpass//canonicalizesunreachableinstsi
ntostorestonullorundef.for(BasicBlock::i
teratorBBI=BB->begin(),E=BB->end();BBI!=
E;++BBI){if(CallInst*CI=dyn_cast<CallIns
t>(BBI)){if(CI->doesNotReturn()){//Ifwef
oundacalltoano-returnfunction,insertanun
reachable//instructionafterit.Makesureth
ereisn't*already*onethere//though.++BBI;
if(!isa<UnreachableInst>(BBI)){//Don'tin
sertacalltollvm.traprightbeforetheunreac
hable.changeToUnreachable(BBI,false);Cha
nged=true;}break;}}//Storetoundefandstor
etonullareundefinedandusedtosignalthat//
theyshouldbechangedtounreachablebypasses
55 shpioleg
 
27.11.13
13:01
(0) Извращенный вариант

Процедура ПолучитьДвоичное(Десятичное,МассивБит)
    Частное = Цел(Десятичное/2);
    МассивБит.Добавить (Десятичное%2);
    Если Частное Тогда    
        ПолучитьДвоичное(Частное,МассивБит);
    КонецЕсли;
КонецПроцедуры

Процедура ПолеВвода1ПриИзменении(Элемент)
    МассивБит = Новый Массив;
    ПолучитьДвоичное(ДесятичноеЧисло,МассивБит);
КонецПроцедуры
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан