- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
ВЫБРАТЬ
КОЛИЧЕСТВО ( РАЗЛИЧНЫЕ УвольнениеИзОрганизации.Сотрудник) КАК Сотрудник
Кадровая история сотрудников спецслужб их.Подразделение,
ЕСТЬNULL (КОЛИЧЕСТВО ( РАЗЛИЧНЫЕ ВЫБОР
КОГДА УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование = "" По собой желанию, на учебу пункт 3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" По соб желанию, по уходу за инвалидном п.3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование = "" По соб желанию, ребёнок-инвалид до 18 л., А 3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" По соб желанию , с переменой м. ж., пункт 3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" По соб желанию, по уходу за ребенком до 14 лет, п 3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" По соб желанию , на пенсию, п 3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" по соб желанию, п.3 статьи 77 ТК РФ""
ТОГДА УвольнениеИзОрганизаций.Сотрудник
КОНЕЦ ), 0) КАК увПоСобств,
ЕСТЬNULL (ВЫБОР
КОГДА УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" За прогулы, подпункт """" а"""" пункта 6 статьи 81 ТК РФ""
ТОГДА УвольнениеИзОрганизаций.Сотрудник
КОНЕЦ ,0) КАК УвПрогул,
ЕСТЬNULL ( КОЛИЧЕСТВО ( РАЗЛИЧНЫЕ УвольнениеИзОрганизации.Сотрудник
),0) Как УвВсего
ИЗ Документ.Увольнение.Сотрудник КАК УвольнениеИзОрганизации
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних как КадроваяИсторияСотрудниковСрезПоследних
ПО Сотрудник КАК УвольнениеИзОрганизации.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник
ГДЕ
УвольнениеИзОрганизации.Ссылка.Организации в ИЕРАРХИИ (& Организация)
И УвольнениеИзОрганизации.ДатаУвольнения >=& НачалоГода
И (УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" По соб желанию, по уходу за инвалидном п.3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование = "" По соб желанию, ребёнок-инвалид до 18 л., А 3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" По соб желанию , с переменой м. ж., пункт 3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" По соб желанию, по уходу за ребенком до 14 лет, п 3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" По соб желанию , на пенсию, п 3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" по соб желанию, п.3 статьи 77 ТК РФ""
ИЛИ УвольнениеИзОрганизаций.СтатьяТКРФ.Наименование ="" За прогулы, подпункт """" а"""" пункта 6 статьи 81 ТК РФ""
)
СГРУППИРОВАТЬ ПО
КадроваяИсторияСотрудниковСрезПоследних.Подразлеление
ЕСТЬNULL (ВЫБОР
КОГДА Увольнение Зоран зайти.СтатьяТКРФ.Наименование = "" За прогулы, подпункт """" а"""" пункта 6 статьи 81 ТК РФ""
ТОГДА УвольнениеИзОрганизации.Сотрудник
КОНЕЦ ,0);
Зачем ему конфигуратор? Он и так может отчеты выводить в табДок через блокнот)))
Ссылка на источник ТУТ - http://www.cyberforum.ru/1c/thread2394049.html
j123123 29.01.2019 01:09 # 0
NULL есть? А если найду?
guest8 29.01.2019 01:14 # −999
dsfix 29.01.2019 09:48 # 0
1. В строке 02 в конце строки не хватает запятой;
2. Для увПоСобств в условии ВЫБОР не хватает ИНАЧЕ;
3. В строке 36 в конце строки не хватает запятой;
4. В последней строке (в СГРУППИРОВАТЬ ПО) в условии ВЫБОР не хватает ИНАЧЕ;
5. В последней строке, в конце строки точка с запятой не нужна.
bormand 29.01.2019 11:20 # 0
dsfix 29.01.2019 11:55 # 0
bormand 29.01.2019 12:06 # +2
bormand 29.01.2019 12:20 # 0
> уходу за инвалидном
Походу таки руками :)
3oJIoTou_xyu 29.01.2019 12:44 # 0
guest8 17.07.2019 19:17 # −999
Rooster 29.01.2019 12:13 # +1
fuxed
Rooster 29.01.2019 12:20 # 0
bormand 29.01.2019 12:23 # 0
gost 29.01.2019 12:30 # 0
Rooster 29.01.2019 12:45 # 0
JIyHHblu_nemyx 29.01.2019 13:26 # 0
Выводит:
Тут размер в байтах.
Пруфлинк: https://ideone.com/YqKWVf
Именно поэтому я за "PHP".
Ещё в заголовках торрент-файлов (bencode) тоже перед строкой указывается её размер.
Где-то ещё было, но мой петушиный мозг сходу не может вспомнить. Точно ещё где-то было, это же не могло мне присниться.
gost 29.01.2019 14:58 # 0
А зачем? В контексте эскейпа это никак не поможет: в (5, "\r\nab") всё равно будет неоднозначность. А в контексте нулевых байт — ну дык «serialize()» по-любому должна бинарные данные эскейпить и выводить нуль-терминированную строку, или я что-то своим мозгом по ГОСТу не понимаю?
JIyHHblu_nemyx 29.01.2019 15:34 # 0
guest8 29.01.2019 15:07 # −999
gost 29.01.2019 15:10 # 0
guest8 29.01.2019 19:33 # −999
gost 29.01.2019 19:38 # 0
bormand 29.01.2019 20:40 # +1
gost 29.01.2019 20:53 # 0
guest8 29.01.2019 19:34 # −999
guest8 18.07.2019 00:02 # −999
guest8 29.01.2019 19:37 # −999
Rooster 05.02.2019 17:51 # 0
PA3yMHblu_nemyx 05.02.2019 22:30 # 0
guest8 05.02.2019 22:40 # −999
PA3yMHblu_nemyx 06.02.2019 01:13 # 0
3.14159265 17.07.2019 19:01 # +2
Например вот этот пиздец:
bormand 17.07.2019 20:35 # +1
Desktop 17.07.2019 21:19 # +3
разбирают выражение, находят +, начинают разбирать аргументы, тут почему-то получается так, что аргумент парсится из той же строки, что и изначальное выражение. То есть первый аргумент плюса это не 0x0, а 0x0+2. Как такое может быть? Ну может они там с индексами ебутся, а не копируют кусочки строк для оптимизации...
> fixed in PHP 5.4 [...] re-broken in PHP 5.4, with the new 0b literal
- скопировать юнит-тест религия не позволила конечно же
TEH3OPHblu_nemyx 18.07.2019 08:15 # +3
666_N33D135 18.07.2019 09:01 # +4
Какой "C" )))
TEH3OPHblu_nemyx 18.07.2019 09:11 # 0
Desktop 18.07.2019 13:47 # 0
Desktop 18.07.2019 13:49 # 0
bormand 18.07.2019 13:50 # 0
Если бы они его скормили, то всё норм было бы. А они хуйню за токеном скормили.
Desktop 18.07.2019 13:56 # 0
TEH3OPHblu_nemyx 17.07.2019 21:40 # +1
https://git.php.net/?p=php-src.git;a=blob;f=Zend/zend_language_scanner.l;hb=refs/heads/PHP-5.3
https://git.php.net/?p=php-src.git;a=blob;f=Zend/zend_language_parser.y;hb=refs/heads/PHP-5.3
Упоминание "0x" встречается в таких фрагментах:
В новой версии добавили проверку длины на ноль:
TEH3OPHblu_nemyx 17.07.2019 21:44 # +1
TEH3OPHblu_nemyx 17.07.2019 21:46 # +1
https://git.php.net/?p=php-src.git;a=blob;f=Zend/zend_operators.h;hb=refs/heads/PHP-5.3
guest8 17.07.2019 21:49 # −999
TEH3OPHblu_nemyx 17.07.2019 21:49 # +1
Desktop 18.07.2019 13:55 # +2
Мне нравится, что функции в принципе пофиг, есть в начале строки 0x или нет. Оно понятно, что функция, например, выше, которая вызывает zend_hex_strtod, ещё и сама стрипает префикс, потому пришлось так сделать, но... ёбтваюмать. Зачем тащить это в паблик
Desktop 18.07.2019 14:09 # +2
Вопрос тогда, зачем стрипать 0x отдельно уровнем выше, когда и strtol, и самописная функция его прохавают
TEH3OPHblu_nemyx 18.07.2019 14:46 # +1
https://www.php.net/manual/ru/internals2.funcs.php
Если мы хотим из пыхокода вызывать функцию как hex_strtod, то нужно объявить такую функцию:
Пышечка в первый параметр (ht) положит количество реальных аргументов (в данном случае скорее всего 1), во второй параметр (return_value) положит указатель на область памяти, в которую наша функция должна сохранить результат. Извлекать аргументы наша функция должна сама, используя вызов zend_parse_parameters.
Короче, обёртку нужно дописать, чтобы вызвать из пыха.
bormand 18.07.2019 15:24 # 0
Desktop 18.07.2019 16:12 # 0
https://www.php.net/manual/en/internals2.ze1.zendapi.php
guest8 17.07.2019 22:46 # −999
TEH3OPHblu_nemyx 18.07.2019 00:05 # +1
guest8 17.07.2019 21:41 # −999
guest8 17.07.2019 19:10 # −999
TEH3OPHblu_nemyx 17.07.2019 20:39 # +1
guest8 17.07.2019 21:16 # −999
guest8 18.07.2019 00:02 # −999
TEH3OPHblu_nemyx 18.07.2019 00:54 # +1
>> если data это list, а id вдруг пришла как строка ('1' а не 1), то ты соснул, бо типизация строга.
Напоминает «Object Pascal» (в частности, «Delphi»): там есть динамический тип Variant, в который можно пихать данные произвольных типов (ибо там есть поле-дескриптор, которое помнит, значение какого типа сейчас лежит в переменный), но неявного каста нет (ибо типизация строгая), поэтому нужно либо явно кастовать (и это на мой взгляд хорошо), либо в функции, принимающей Variant, делать свитч по всем допустимым типам.
Однако, в «Object Pascal» динамическая типизация опциональная: ты явно указываешь переменные, которые принимают динамический тип. А в «Питоне» динамическая типизация повсюду.
666_N33D135 18.07.2019 07:44 # +2
> Есть itertools, а есть list comprehension. Что и когда юзать?
Попробуй мне вырази хоть одну функцию из itertools одним компрехеженом.
> next(map(lambda p: age,filter(lambda p: p.name == "rebeshok", petushki)))
Понял, что написал? Эквивалентно просто: Ладно, сам переведу первую версию:
666_N33D135 18.07.2019 09:25 # +2
guest8 18.07.2019 00:13 # −999
TEH3OPHblu_nemyx 18.07.2019 00:56 # 0
guest8 18.07.2019 17:15 # −999
guest8 18.07.2019 17:16 # −999
TEH3OPHblu_nemyx 18.07.2019 17:31 # +1
Сам исходник, естественно, в досовской кодировке, как bat-файлы.
Если выполнить CHCP 1251, то можно исходник перевести в виндовую кодировку:
Но не нужно, ибо после CHCP 1251 обычные bat-файлы будут выводить кракозябры.
Да, в третьем Питоне работают оба варианта без CHCP.
guest8 18.07.2019 17:33 # −999
TEH3OPHblu_nemyx 18.07.2019 17:55 # 0
В двойке всё высралось в кодировке исходника, в тройке — в виндовой (cp1251) вне зависимости от кодировки исходника.
*****
После CHCP 65001 двойка вообще глючит по-страшному:
При перенаправлении вывода в файл всё работает.
*****
Тройка при перенаправлении сосноли в файл не хочет выводить юникодный текст, даже если исходник в UTF-8. Пробуем вывести греческую букву «альфа»:
Результат в stderr:
Просто в сосноль выводит нормально.
Зачем в тройке хакнули перенаправление сосноли в файл?
guest8 18.07.2019 18:00 # −999
TEH3OPHblu_nemyx 18.07.2019 18:04 # 0
666_N33D135 18.07.2019 07:52 # +2
В "PHP" у пелременных и функций отдельные неймспейсы. Именно поэтому я за "PHP".
TEH3OPHblu_nemyx 18.07.2019 08:01 # 0
guest8 18.07.2019 17:15 # −999
guest8 18.07.2019 00:13 # −999
COTOHuHCKuu_nemyx 24.03.2019 23:56 # 0
guest8 17.07.2019 19:17 # −999
bormand 17.07.2019 19:18 # 0
MaxBS 05.02.2019 17:48 # 0
Rooster 05.02.2019 17:52 # 0
Rooster 05.02.2019 17:55 # 0
Rooster 05.02.2019 18:01 # 0
bormand 05.02.2019 18:30 # 0
Rooster 05.02.2019 18:42 # 0
Кстати, после закрывающей кавычки пробел не нужен, ' S" установит ' >IN на символ за кавычкой. Но без него как-то неспокойно на душе...
bormand 05.02.2019 19:07 # 0
Rooster 05.02.2019 19:24 # 0
А можно просто эту пллату через USB к конпуктеру подключить и юзать его как терминал. Вот только лень с этим розбираться... Я пока что моргатель светодиодами :(
bormand 05.02.2019 19:32 # 0
bormand 05.02.2019 19:53 # 0
Rooster 05.02.2019 20:01 # 0
bormand 24.03.2019 11:13 # +2
Зато фортовый next для direct threading в одну инструкцию получился: ldmia r7!, {pc} (в r7 лежит указатель на шитый код).
COTOHuHCKuu_nemyx 24.03.2019 11:47 # +2
http://gforth.org/manual/ARM-Assembler.html#ARM-Assembler Ну или свой пишешь. Ассемблер просто конпелирует инструкции в область данных. Собираешь образ и выводишь в файл.
Вообще да, для x86 инструкции можно собирать по байтам, а для армов приходится по битам.
COTOHuHCKuu_nemyx 24.03.2019 11:49 # 0
bormand 24.03.2019 12:20 # +2
И пока thumb2 не особо радует - там переменная длина инструкций (16 бит или 2 раза по 16 бит), по 2-3 формы для каждой инструкции, везде разные длины immediate и куча алиасов между инструкциями...
Даже х86 местами логичней кажется.
TEH3OPHblu_nemyx 24.03.2019 12:48 # 0
bormand 24.03.2019 12:49 # 0
bormand 24.03.2019 13:12 # +2
К примеру, 0x48..0x4F ('H'..'O') упали на команду LDR. "H " загрузит в R0 dword, который лежит через 32 байта от текущей инструкции. "I " - в R1. И т.п.
EOR (аля XOR) мапается на 0x40 ('@'). Во втором байте должно быть 01SSSDDD. Т.е. почти все варианты с регистрами с r0 по r7 доступны (eor r7, r7 выпадает т.к. в ascii нет 0x7F). Всякие сложения-вычитания - аналогично.
BX (аля jmp на регистр) попал на 0x47 ('G'), во втором байте надо 0RRRR000, т.е. все регистры от R0 до R15 доступны.
STR Rt, [Rn + Rm] попадает на 0x50 и 0x51 ('P', 'Q'). Кодируется как 0101000M MMNNNTTT. Т.е. от M будет доступно где-то 4 регистра.
В целом - неплохо.
bormand 24.03.2019 13:23 # +2
COTOHuHCKuu_nemyx 24.03.2019 14:11 # +2
bormand 24.03.2019 14:33 # +1
bormand 24.03.2019 14:43 # +1
Кстати, вспомнил тут свою давнюю идею - фортоподобный язык, где слова не надо отделять пробелами. Тупо искать самое длинное совпадение в словаре. Пробел, таб и возврат каретки - пустые слова, которые ничего не делают. Цифры инициируют парсинг числа, кавычки - парсинг строки и т.п. Само собой, ты можешь всё это поменять т.к. это просто записи в словаре.
COTOHuHCKuu_nemyx 24.03.2019 16:04 # +1
Типа как в 'RETRO_FORTH префиксы? Вот только слова там пробелами отделяются, 'поэтому_строки_выглядят_вот_так. Ещё у тебя придётся убрать/переименовать слова типа: 1+ 1- 2dup 2@ 2! 2+ 2*. А мне нравится разделение пробелами, парсер простой получается. Если пробел после кавычки мозолит глаза, для строк можно придумать такой синтаксис: Я это даже где-то постил.
У меня, кстати, тоже своя идея есть, я даже её наполовину запилил, но потом забросил (ну ядро в виде com файла давно уже пылится, почти допиленное, хотел допилить и переписать на самом себе под 32 бита, но надоело):
1. Определяющие слова не сами парсят имена, а принимают их параметрами на стеке. Например : принимает адрес, длину, создаёт определение, начинает компиляцию. Код получается вербознее, но зато проще в своих определяющих словах проверять имя на что-то ( например, что слово уже определено или на какой-то ограничитель, типа как locals| ... | ), или создавать генеренные слова.
2. Ещё работа некоторых слов пересмотрена, например word не ожидает символ-разделитель в стеке, а сразу парсит имя ( не знаю нахер оно в стандарте пропускает ведущие разделители, кроме как для парсинга имён оно ни для чего не годится), и возвращает не адрес строки со счётчиком, а как parse адрес и длину. Соответственно find принимает не адрес строки со счётчиком, а адрес и длину.
3. Для неопределённого слова система не пытается преобразовать его в число, а передаёт его подпрограмме, адрес которой хранится в переменной 'not-found, по умолчанию там подпрограмма которая выводит сообщение об ошибке.
4. Чтобы записать число нужно использовать слово # оно распарсит число из исходника ( хочу заменить стандартное # которое юзается в <# ... #> на % или _ но пока не решил )
5. Ну ещё некоторые слова переименовал ( invert - not postpone - compile then - end-if begin - loop repeat - end-while )
COTOHuHCKuu_nemyx 24.03.2019 16:08 # +1
Increment_Excrement 24.03.2019 16:12 # 0
COTOHuHCKuu_nemyx 24.03.2019 16:15 # 0
COTOHuHCKuu_nemyx 24.03.2019 16:30 # 0
(jmpnz) -- выбирает из шитого кода слово, берёт число с вершины стека, если не ноль, прибавляет его к указателю инструкций шитого кода
(jmpz) -- как (jmpnz) только условие противоположное
(jmp) -- безусловный переход, стек не трогает
(not-found) ( c-addr u -- ) выводит сообщение о том, что слово не найдено, вызывает quit
(push) выбирает из шитого кода слово, увеличивает указатель инструкций на размер слова, пушит это слово на стек
immediate: -- определяет immediate слово, как : hui ; immediate в форте
r-drop -- убрать число со стека возвратов
r-n-drop ( n -- ) -- убрать n чисел со стека возвратов
r-pick ( n -- x ) как pick, только работает со стеком возвратов
Всё остальное стандартное или описано выше.
COTOHuHCKuu_nemyx 24.03.2019 16:33 # 0
bormand 24.03.2019 16:36 # 0
COTOHuHCKuu_nemyx 24.03.2019 16:40 # 0
OCETuHCKuu_nemyx 17.07.2019 11:55 # 0
666_N33D135 17.07.2019 12:09 # +1
Какой анскилл (((
guest8 17.07.2019 16:14 # −999
TEH3OPHblu_nemyx 17.07.2019 16:17 # 0
KingKong 26.10.2019 11:39 # 0
guest8 26.10.2019 14:44 # −999
COTOHuHCKuu_nemyx 24.03.2019 16:38 # 0
bormand 24.03.2019 16:48 # 0
COTOHuHCKuu_nemyx 24.03.2019 17:02 # 0
COTOHuHCKuu_nemyx 24.03.2019 16:43 # 0
CnEPMOBOP 24.03.2019 17:06 # −102
COTOHuHCKuu_nemyx 24.03.2019 20:19 # 0
bormand 24.03.2019 18:55 # +2
TEH3OPHblu_nemyx 24.03.2019 19:24 # 0
bormand 24.03.2019 19:42 # +2
Это хуйня. Главное - к чему этот оффсет прибавляется: к адресу текущей инструкции плюс четыре округлённому вниз до кратного четырём.
Для ARM'а это выглядело нормально, там все инструкции по 4 байта, поэтому там это был просто адрес следующей инструкции... Но для thumb'а эта формула выносит мозг.
COTOHuHCKuu_nemyx 24.03.2019 20:19 # 0
TEH3OPHblu_nemyx 24.03.2019 20:39 # 0
https://ru.wikipedia.org/w/?curid=3679980
TEH3OPHblu_nemyx 24.03.2019 20:25 # 0
Т. е. JMP SHORT $+2 (аналог NOP, но медленнее) кодировалось как 0EBH, 00H, а JMP SHORT $+0 (бесконечный цикл) кодировалось как 0EBH, 0FEH.
bormand 24.03.2019 23:21 # 0
Прочитал как ОВЕН.
> $+0
Х.з., мне всегда было проще метку написать.
COTOHuHCKuu_nemyx 24.03.2019 23:51 # 0
cmepmop 26.03.2019 18:36 # 0
BOKCEJIbHblu_nemyx 26.03.2019 18:50 # 0
PACTPOBblu_nemyx 26.03.2019 18:55 # 0
cmepmop 26.03.2019 19:02 # 0
PACTPOBblu_nemyx 26.03.2019 19:04 # 0
Суть ассемблера в том, чтобы выдавать именно те инструкции, которые хочет видеть программист. Может быть, от подёргивания стека возникает какой-то побочный эффект?
COTOHuHCKuu_nemyx 24.03.2019 19:37 # +1
bormand 25.03.2019 23:23 # 0
COTOHuHCKuu_nemyx 26.03.2019 08:03 # 0
Кстати, в ранних реализациях в целях экономии слова отличались лишь по первым трём символам и длине, так что надо было быть аккуратнее. Я ещё придумал экономию: в памяти можно хранить лишь код, а сами статьи читать с флеша только при интерпретации исходного кода, ведь большее время работы они не нужны.
ЗЫ. как думаешь, искать в словаре не по строке, а по хэшу (например PJW-32) хорошая идея или плохая? При коллизиях как поступать, если найдено более одного подходящего слова сравнивать по строке или тупо выдать ворнинг при переопределении?
bormand 26.03.2019 08:28 # 0
> хэшу
Зачем хеш при линейном поиске?
COTOHuHCKuu_nemyx 26.03.2019 08:40 # 0
PJW-32 не годится, я уже нашёл коллизии в стандартном наборе слов: 0= 1-
:(
bormand 26.03.2019 08:49 # 0
Оптимизацией были бы хешмап или дерево вместо списка.