singlepost

вопрос по 1с 8.1 << На главную или назад  

вот за что я не люблю 1с дак это за то, что там надо тупо знать как что-то делается. Порой догадаться невозможно.

Ну и собственно вопросы:
1) есть ли простой способ сделать XOR на 1с? типа 65 XOR 67 = 2? (если есть примеры для других команд типа AND, OR, NOT – то пишите тоже)
2) какая команда позволяет циклу не зависать? (то есть какой в 1с аналог дельфовой функции ProcessMessages?)
3) как организовать задержку выполнения функции на определнное число миллисекунд?

12 ответов в теме “вопрос по 1с 8.1”

  1. 12
    Евгений Степанов ответил:

    Помогите пожалуйста установить пороль в 1с предприятии 8.1 на администратора, как это сделать?

  2. 11
    Василий Воробьев ответил:

    Вы скажите модель этого ацкого фискальника.

    Вы внешние обработки для работы с торговым оборудованием от УТ и Бухни смотрели? Драйверы АТОЛ и ШТРИХ? неужели там нет?

  3. 10
    Антон Кононов ответил:

    Если бы не эта тупая касса))

    1) чтобы послать строку в чек отправляешь код товара, ждешь ответа от кассы, отправляешь номер товара, ждешь ответа кассы, отправляешь цену товара

    2) повторяешь пункт 1 столько раз, сколько требуется добавить товаров в чек

    3) нажимаешь на кассе кнопку "итог"

    4) ждешь ответа от кассы, отправляешь название товара1, ждешь ответа от кассы, отправляешь название товара 2 и т.д.

    Как бы эту хрень попроще реализовать через COM-порт?

  4. 9
    Сергей Шеметов ответил:

    Драйверы пишутся на языках более низкого уровня..

    Почему бы весь этот обмен не реализовать с помощью внешней dll, в которой уже все будет и задержка и контрольная сумма.

  5. 8
    Антон Кононов ответил:

    2Василий Ludovic van Воробьев:

    я драйвер для особой хитрой кассы пишу. Через XOR считается контрольная сумма. Задержка нужна для того, чтобы касса успевала обработать пакеты (обычно 200 миллисекунд достаточно), а вот цикл чтобы не зависал такая команда точно есть (но я ее забыл :( )

  6. 7
    Василий Воробьев ответил:

    То: Антон.
    1)Я не понимаю, Вы там что пишите на 1С? – Игру, ОС или что?

    2) Поделитесь dll' кой.

  7. 6
    Антон Кононов ответил:

    я как мог уходил от цикла, но к нему все-таки и пришел (да поможет нам добрый яндекс):

    1)

    Функция XOR(a,b) экспорт
    Result = 0;
    для i = 0 по 7 Цикл
    если Остаток(a,2) <> Остаток(b,2) Тогда
    Result = Result + pow( 2, i );
    КонецЕсли;
    если A=1 тогда
    A = 0;
    КонецЕсли;
    A = Цел(A / 2);
    если B = 1 тогда
    B = 0;
    КонецЕсли;
    B = Цел(B / 2);
    КонецЦикла;
    возврат Result;
    КонецФункции

    в цикле вместо 7 поставить нужное в зависимости от разрядности чисел

    тупо и неинтересно, зато работает

    2) ?

    3) нашел внешнюю dll а в ней есть функция sleep(…)=)

    То есть пока что вопросы свои не снимаю – вдруг вы мне что еще получше подскажете

  8. 5
    Василий Воробьев ответил:

    1) Такого оператора нет. Ко всем перечисленным добавляю синт. конструкцию: перем1 = ?(<Логическое выражение>, рез1, рез2)
    2) Такой команды нет!
    3) Можете попробовать функцию "ПодключитьОбработчикОжидания()", "ОтключитьОбработчикОжидания()". Больше ничего нет.

  9. 4
    Сергей Шеметов ответил:

    1) внешнее что-нибудь
    2) нельзя
    3) видел изврат один с генератором случайных чисел, но где точно – не помню. Попридумывай :)

  10. 3
    Антон Кононов ответил:

    да не то все

    вы си знаете? а пхп? там есть команда & а есть &&, есть команда | а есть ||. Дело в том, что логические операции используемые в операторе if отличаются от побитовых операций.

    пример: if (65 & 64) отличается от if (65 && 64), причем отличается даже по смыслу =) как ты сравнишь: ЕСЛИ (65 или 64) – это что? для языка это бессмысленная конструкция. Или например ЕСЛИ (5 И 9) ТОГДА…

    что значит 5 и 9? а вот если это рассматривать как побитовую операцию тогда 5 AND 9 = 1 (вы все это можете виндовым калькулятором проверить – там есть все эти функции).

    Дак вот мне надо именно побитовую операцию XOR, AND, OR.

    PS NOT в том смысле что привел #2 это опять таки для булевых, а для побитовых операция NOT считается как NOT A = -A+1 (если меня память подводит – поправьте меня), где -А – это инверсия битов числа A

  11. 2
    Ростислав Чутков ответил:

    A xor B = (A OR B) AND NOT (A AND B)

  12. 1
    Андрей Прокудин ответил:

    1) XOR помойму нет Можно реализовать через if(ЕСЛИ):
    Оператор условного выполнения.
    Синтаксис:
    Если <Логическое_выражение> Тогда
    //операторы;
    [ИначеЕсли <Логическое_выражение> Тогда]
    //операторы;
    [Иначе]
    //операторы;
    КонецЕсли;
    Англоязычный Синтаксис:
    If <Логическое_выражение> Then
    //операторы;
    [Elsif <Логическое_выражение> Then]
    //операторы;
    [Else]
    //операторы;
    Endlf;

    Есть :
    ИAnd
    ИлиOr
    HeNot

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.