• Ассемблер, почему дизассемблированном коде много ненужных операций?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему не переписать вместо этого
    add ebx,dword ptr [rbp+ECX*4+10h]

    Буквально так написать нельзя, потому что нет такого режима адресации в котором можно было бы использовать вместе Rbp (64-битный) и Ecx (32-битный). Можно было бы написать add ebx,dword ptr [rbp+rcx*4+10h], но для этого счётчик цикла должен был бы быть 64-битным, а он, как мы видим, 32-битный (int i). Т.е. ответ на вопрос "для чего это": для беззнакового расширения 32-битного счётчика цикла в регистр, который можно использовать для доступа к памяти.

    Другое дело, что из исходного кода очевидно, что при обращениях к памяти i не выходит из диапазона 0..9, так что разницы между ecx и rcx нет и не может быть. Возможно я что-то упускаю и у компилятора другое мнение на этот счёт, но может быть он просто туповат и не имеет кода который бы мог использовать эту возможность оптимизации, а может такая оптимизация и есть, но она не была включена во время генерации этого кода.
    Ответ написан
    Комментировать
  • Как выдаются лицензии 1С?

    @mezhuev
    Системный администратор
    Зависит от варианта лицензирования и способа запуска. Если используется аппаратный ключ USB и непосредственное получение лицензии клиентским ПК через HASP LM, то будет использована одна лицензия при любом количестве сеансов. Если используются программные лицензии или выдача осуществляется через сервер 1С/веб-сервер, то каждый сеанс заберёт одну лицензию.
    Ответ написан
    Комментировать
  • Как настроить автоширину в макете табличного документа?

    @Dementor
    программист, архитектор, аналитик
    1) Создать новый формат строки, в рамках которого ширина колонок будет отличной, от их ширины в остальном документе (выделяете нужные строки, пробуете менять ширину колонки и подтверждаете новый формат для выделенных строк).

    2) Непонятный вопрос. Зайдите в режим редактирования содержимого ячейки и выделите нужную часть текста. Программно частичное выделение текста в ячейке сделать невозможно. Программно считать частичное выделение невозможно.
    Ответ написан
    Комментировать
  • Как получить строку ТЧ по номеру строки для заполнения?

    @Dementor
    программист, архитектор, аналитик
    Как-то так:

    ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
    ДокументОбъект.ТабличнаяЧасть[НомерСтроки-1].ИмяРеквизита = ЗначениеРеквизита;
    ДокументОбъект.Записать();
    Ответ написан
    Комментировать
  • Есть База 1С нужно ее подключить к сайту как это сделать?

    @Dementor
    программист, архитектор, аналитик
    Мне дали базу данных на с1 можно ее сделать формата excel

    1. Запускаете базу 1С
    2. Открываете справочник товаров
    3. С помощью "настроить список..." делаете сортировки, группировки, а так же видимость колонок так, как вам нужно.
    4. С помощью "выгрузить список..." сохраняете справочник в Excel.

    Нужно подкрепить к карточке товара наличие, код, цену(обычную), цену(оптовую от 100)

    Базы 1С очень разные. В некоторых сразу в списке товаров есть вся нужная информация, а в некоторых нужно запускать дополнительные отчеты по остаткам и ценам. Данные отчетов тоже можно вывести в Excel, а потом с помощью ВПР() сделать единую табличку в том виде, как вы хотите.

    Есть База С1 нужно ее подключить к сайту как это сделать?
    Пока не понимаю как сделать и нормальных гайдов годов 2020-2022 нету есть какие то современные и хорошие решения?

    1. Технологии 1С8 уже скоро будет 20 лет, за которые в плане интеграции с сайтами она не менялась. Так что вам подойдут и гайды 2018, и 2012 и даже 2008.
    2. Весь вопрос выглядит как "Я слышал, что из досок делают мебель. Мне нужен встроенный шкаф и у меня есть доски. Я перекладываю доски, но шкаф не получается. Дайте гайд как сделать качественный шкаф".
    2.1. Т.е. что за доски, какое у них качество? что за шкаф и какая у него спецификация? Если бы вы говорили, конкретно, что у вас "1С:УНФ" и сайт "Битрикс управление сайтом", то это стандартный обмен и полно инструкций. Если сайт в 1С:UMI, то там все еще намного проще и настраивается прямо из УНФ буквально кликая "Далее-Далее". Пишите поисковый запрос "Интеграция <название базы 1с> с сайтом <название сайт>" - сразу пойдут результаты выдачи.
    2.2. Если из досок нужен какой-то нестандартный шкаф с красивой резьбой, то есть мануали и по обработке досок, и по креплениям, и по резьбе, и по лакировке... Но нет и никогда не будет одного единого мануала по превращению досок в нужный именно вам шкаф! Или вызывайте столяра, или сами отправляйтесь на курсы столярного дела (неизвестно что дешевле и найм мастера точно качественнее и быстрее). С 1С и сайтом - аналогично. Нестандартная база 1С и/или нестандартный сайт и/или нестандартные требования к обмену - нужно вызывать специалиста, который имеет опыт в таких работах.
    Ответ написан
    4 комментария
  • УТ 11.4 На клиенте получить текущую строку табличной части?

    nki
    @nki
    bezkart.ru готовая система лояльности
    Стоп, стоп, стоп!
    Попробуйте под отладчиком посмотреть, что вы получаете при
    СсылкаНаОбъект = Элементы.СписокДокументыПродажи.ТекущаяСтрока;

    Строка разделена на колонки, согласны? Где вы тут получили колонку с ссылкой на документ?
    Ответ написан
    1 комментарий
  • Желтизна в windows 10, как решить?

    загрузитесь с LiveCD/DVD/flash USB и потестируйте длительную работу в Windows и других ОС
    Ответ написан
    Комментировать
  • Какую выбрать СУБД, если в день может быть более 11млн записей?

    При такой постановке задачи лучшим вариантом СУБД будет та, которую знают и умеют обслуживать ваши админы.
    С таким объёмом вставок справится любая мейнстримная на правильно подобранном железе. Что ещё вы собираетесь делать с этими записями нам неведомо, посему на выбор повлияеть не может.
    Ответ написан
    1 комментарий
  • Как узнать возраст файла в Ассемблере?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как мне найти возраст файла?

    Сравнить creationTime который возвращает GetFileTime с текущим временем которое возвращает GetSystemTimeAsFileTime. 3 дня -- это 3 * 24 * 60 * 60 * 10000000 100-наносекундных интервала (в таких единицах измеряется FILETIME).
    Чтобы упростить себе задачу можно сравнивать только старшие части (dwHighDateTime) структур FILETIME, вес младшей части -- 429 секунд, меньше 10 минут.
    Типа того:

    invoke GetFileTime, hFile, addr ftCreate, NULL, NULL
      invoke GetSystemTimeAsFileTime, addr ftNow
      mov eax, ftNow.dwHighDateTime
      sub eax, ftCreate.dwHighDateTime
      cmp eax, (3 * 24 * 60 * 60 * 10000000 / 0x100000000)
      jg <файл старше 3 дней>
      /* иначе файл младше 3 дней */

    Если упрощать не хочется и нужно отмерить в точности 3 дня, то хвост можно переписать так:
    mov eax, ftNow.dwHighDateTime
      sub eax, ftCreate.dwHighDateTime
      cmp eax, (3 * 24 * 60 * 60 * 10000000 / 0x100000000)
      jg <файл старше 3 дней>
      jl <файл младще 3 дней>
      mov eax, ftNow.dwLowDateTime
      sub eax, ftCreate.dwLowDateTime
      cmp eax, (3 * 24 * 60 * 60 * 10000000 % 0x100000000)
      jg <файл старше 3 дней>  
      /* иначе файл младше 3 дней */
    Ответ написан
    2 комментария
  • Как изменить имя подписанта в ЗУП Отчетности форма П-4?

    @Dementor
    программист, архитектор, аналитик
    Скорее всего в регистре сведений "Ответственные лица организации".

    Если вы аналитик, то покопайтесь в настройках организации.
    Если программист - откройте код.
    Ответ написан
    1 комментарий
  • Как процессор понимает какой код выполнять после команды call?

    15432
    @15432
    Системный программист ^_^
    0xFFFFFFE9 это представление десятичного числа -23, это относительное смещение, куда "прыгнуть" процессору. Относительное значит, что это значение прибавляется к адресу сразу после команды call (в других архитектурах может быть незначительно иначе, например, в ARM адрес команды + смещение - 4)
    Ответ написан
    2 комментария
  • Я встретил непонятную конструкцию в чужом коде на ассемблере, кто обьяснит?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В квадратных скобках не два значения, а одно - адрес со смещением ecx относительно res.
    Берём адрес res, прибавляем к нему значение из ecx и по полученному адресу записываем значение из dl.
    Ответ написан
    1 комментарий
  • Для чего класть в стек регистр в начале функции?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Конкретно эта последовательность помимо тупо сохранения rbp создаёт разметку кадров стека. Если все функции в цепочке вызовов делают так, то из любой функции можно проследить всю цепочку вызовов до неё зная только текущее значение rbp без какой бы то ни было дополнительной отладочной информации, потому что по адресу в rbp хранится rbp предыдущей функции, а по адресу rbp + 8 -- адрес возврата в предыдущую функцию. Но делать это, конечно же, необязательно. Например gcc вызванный с флагом -fomit-frame-pointer генерирует код без этой последовательности и использует rbp как ещё один регистр общего назначения.

    Почему тогда все регистры не помещаются в стек?

    Потому что есть документ называемый psABI, который определяет, какие регистры должна сохранять вызываемая функция. Например: x86_64 psABI, раздел 3.2.1 "Registers".
    Ответ написан
    Комментировать
  • Какая причина нагрузки на сервер базами sql в которых не работают?

    @Dementor
    программист, архитектор, аналитик
    Если это серверные базы (сомневаюсь, что КА кто-то ставит в файловом виде), то кроме людей там работают регламентные задания. Много регламентных заданий!

    Чтобы понять что именно происходит, можно включить профилирование запросов и посмотреть к каким таблицам идут обращения. Возможно вы поставили каждую секунду пересчет рассчитываемых цен или что-то такое...
    Ответ написан
    3 комментария
  • 1С Предприятие при выгрукзе файла пишет ошибку доступа к диску...?

    @denilenko
    Пользователь от имени которого запущена 1С имеет доступ к каталогу, указанному в ошибке?
    Ответ написан
    3 комментария
  • Есть ли учебные версии конфигураций 1С?

    @kalapanga
    У 1С вроде как один бесплатный продукт для обучения: 1С:Предприятие 8.3. Версия для обучения программир...
    Вот какие конфигурации там есть - это всё.
    Ответ написан
    Комментировать
  • Почему при определении типа параметра в массиве выдает ошибку?

    @kisaa
    Я совсем не 1Сник, но беглый гуглинг позволяет предположить, что вы пытаетесь создать многомерный массив, где 3, 2, "Строка", ЛОЖЬ, ИСТИНА, Null - количество элементов по каждому измерению.
    Ответ написан
    Комментировать
  • Чем заменить TeamViewer - чтобы было просто и понятно обычному пользователю, который компьютер только умеет включать и выключать?

    @flexpc
    AnyDesk, хорошая программа, есть на все платформы, если ты этому пользователю ее установишь и закинешь в автозагрузку, то сможешь в любой момент подключаться.
    Ответ написан
    1 комментарий
  • Трудоустройство в IT после 40?

    fosihas
    @fosihas
    Автоматизации учета на 1С.
    Достаточные ли знания дадут курсы 1С (непосредственно в учебном центре 1С)?


    Нет.

    Мое мнение, лучше начать с видосов с ютуба или бесплатных сайта Курсы-1с.ру. Плюс пратика.

    Есть отличное знание предметных областей: бух учет, а в особенности кадровый учёт, начисление заработной платы. Высшее образование экономическое.

    Обратитесь в сторону Консультанта по 1С, т.е. учить бестолочей как работать в конфигурациях)))
    Это будет быстрей освоить и денежней.
    Т.ч. спецов меньше
    Ответ написан
    Комментировать