Как перевести dll из 32 в 64

Обновлено: 07.07.2024

Скажите, а невозможность загрузки в 64bit-процесс 32bit DLL - фатальна, или же возможны какие-то хаки, недокументированные обходные пути?

Отвечаю здесь, так как ответ получился слушком длинным.

Во-первых, про любые недокументированные возможности меня спрашивать бесполезно. Даже если такая возможность существует, я всё равно о ней не расскажу. Этому есть несколько причин, включая очевидные вещи вроде NDA, законе об авторском праве и т.д. Еще одна причина, почему я не горю желанием это делать, - это то, что раскрывая детали реализации того или иного компонента, я тем самым лишаю этот компонент возможности развиваться и улучшатся в следующих версиях.

Почему так? Приведу пример. Создавая класс, разработчик задаёт каждому его члену определённый уровень доступа:

  • public – для членов класса, составляющих публичный интерфейс класса;
  • protected – для членов класса, определяющих внутренний интерфейс класса;
  • private – для членов, являющихся деталями реализации класса, о которых остальным знать не положено.

Сокрытие части функциональности класса облегчает будущие исправления и добавление новой функциональности, так как код может быть изменен при условии, что публичный интерфейс не изменяется. Windows, как и любой другой продукт, никак не отличается от класса в этом плане.

Недокументированные возможности существуют. Причины из недокументированности ровно те же самые, что и причины для существования private и protected членов класса. И если я (или другой инсайдер) поделиться с Интернетом описанием какой-либо недокументированной функции, то эта функция мигом становиться частью публичного интерфейса, так как появляются приложения, использующие эту функцию. Шишки за то, что такая программа перестаёт работать в следующей версии Windows, естественно сыпятся на авторов Windows.

Во-вторых, про загрузку 32-х битной DLL в 64-х битный процесс. Это можно сделать, если при вызове LoadLibraryEx указать флаг LOAD_LIBRARY_AS_DATAFILE. Это позволяет загрузить ресурсы, хранящиеся в этой DLL, но не позволяет выполнять код в DLL.

Если же нужно загрузить 32-х битную DLL в 64-х битный и выполнить код из неё, то это невозможно в принципе. Для этого нужно загрузить и проинициализировать Wow64, не говоря уже о структурах в ядре. Короче нужно будет на ходу превратить процесс в 32-х битный. Проще создать новый. :-)

в своем предыдущем посту я озадачивался вопросом о том, как можно прикрутить DLL файл в проект visual studio, для доступа к функциям библиотеки. Получил очень хороший ответ, разобрался в нем и реализовал небольшое консольное приложение для тестирование функциональности DLL.

Как же в последствии выяснилось, библиотека существует только в 32 разрядном виде и возможностей генерирования у разработчиков этой библиотеки, ее в 64 bit не существует в принципе.

По моему заданию мне нужно разработать 64 bit DLL (своего рода компонентный блок типа блока из simulink), в котором будут реализована вся функциональность 32 битной предоставленной мне библиотеки.
То есть как ни крути, а грузить ее в 64 битный процес надо.

Несколько дней курил мануалы на просторах msdn, stackoverflow и других ресурсов, но так и не нашел реализованного решения, в виде небольшого примера как это делается.

Так как в большинстве статей, говориться о том, что это сделать невозможно, задача интеграции разных процессов очень нетривиальна. Именно поэтой причине и вынес данный вопрос в отдельную тему, надеясь, что она будет интересной и остальным участникам.

Может кто-нибудь из форумчан сталкивался с подобной задачей и имеет некоторые наработки в ней?

чтобы тотчас же применить на практике теоретический рецепт.

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Java.lang.UnsatisfiedLinkError: xxxx.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
При работе с субд sybase iq необходима библиотека jconn4 и некая dbjdbc12.dll. Так вот почему-то.

NAudio.dll не работает в Wi7 и Win8.1 64 bit
Добрый день Всем! В VB2005 на XP 32 bit писал программку по обработке звуковых данных с.

Обясните мне, если Windows 32 bit, процессор 64 bit, то работает ли 2-ое ядро?
Обясните мне, если ОС Windows 32 bit, процессор 64 bit, все программы установлены разумеется 32.

Не проще будет написать приложение-обёртку и общаться с ним по любому удобному IPC?

Добавлено через 49 секунд
Проглядел по диагонали статью по ссылке, там как раз об этом и говорят.

Не проще будет написать приложение-обёртку и общаться с ним по любому удобному IPC?

Добавлено через 49 секунд
Проглядел по диагонали статью по ссылке, там как раз об этом и говорят.

Так вот в том то вся и проблема, что не хватает для этого опыта, примера же найти не смог.
И, как следствие, обратился к более опытному сообществу. По моему заданию мне нужно разработать 64 bit DLL (своего рода компонентный блок типа блока из simulink), в котором будут реализована вся функциональность 32 битной предоставленной мне библиотеки.
То есть как ни крути, а грузить ее в 64 битный процес надо.

Грузить 32-битную dll в 64-битный процесс ? Забудьте.

Несколько дней курил мануалы на просторах msdn, stackoverflow и других ресурсов, но так и не нашел реализованного решения, в виде небольшого примера как это делается. Соберите библиотеку под платформу x64.
Для ее клиентов это будет наилучшим вариантом, чем всякие грабли в
виде суррогатных процессов, IPC и прочего. A 32-bit DLL cannot be injected into a 64-bit process, and a 64-bit DLL cannot be injected into a 32-bit process.

Грузить 32-битную dll в 64-битный процесс ? Забудьте.

Соберите библиотеку под платформу x64.
Для ее клиентов это будет наилучшим вариантом, чем всякие грабли в
виде суррогатных процессов, IPC и прочего.

в том то и проблема, что библиотеку 32bit не перекомпилировать в 64bit, так как даже у ее разработчиков нет исходного кода на с++. A, все из-за того, что библиотека генерируется одной очень редко распространненой программой на основе заложенной туда математической модели (что то вроде модели из блоков в matlab simulink) и программа эта доступна только в 32 битном виде и в ней нет заложенных функций генерации 64 битной библиотеки.
Отсюда и мучения с поисками примеров создания суррогатных процессов.
Без них мне никак не обойтись.. Так вот в том то вся и проблема, что не хватает для этого опыта, примера же найти не смог. Опыта обмена данными между процессами? В простейшем варианте делов-то передать входные данные и забрать выходные.
Между тем, что мешает собирать основную софтину только под 32 бита? Пользователям проприетарщины не привыкать. Опыта обмена данными между процессами? В простейшем варианте делов-то передать входные данные и забрать выходные.
Между тем, что мешает собирать основную софтину только под 32 бита? Пользователям проприетарщины не привыкать. Да, именно так, опыта в межпроцессорном взаимодействии нет вообще.
И, до прошлой недели, не было вообще никакого опыта с работой с dll файлами.
Но, как говорится опыт дело наживное. особенно в условиях поставленной задачи.
Основную софтину 32 битную не взять, доступна только 64 битная.
Конечными же пользователями является только мой отдел.
Отсюда и столько никому не нужных заморочек.
Ну, а чтобы было понятнее, что за задача стоит..
Есть программа похожая отдаленно на симулинк, каждой компонент который называется фильтром(dll файл).
мне нужно из ранее написанного фильтра (64 bit ) получить в мой фильтр (64 bit ) поток данных с CAN шины, в потоке выделить нужный сигнал и произвести с ним цифровую обработку на основе предоставленной мне ранее dll (32 bit) , результат анализа передать в следующий за моим фильтром фильтр (64bit) . в том то и проблема, что библиотеку 32bit не перекомпилировать в 64bit, так как даже у ее разработчиков нет исходного кода на с++.

Тогда Вам нужно сделать примерно следующее - собрать 64-битную версию dll-ки с точно
таким же API, как у 32-битной, чтобы 64-битные клиенты могли ее свободно загружать и
использовать, а настоящую 32-битную версию dll-ки загрузить в свой 32-битный процесс.
А потом наладить передачу данных между 64-битной dll-кой, загруженной в клиентский
64-битный процесс, и 32-битной dll-кой, загруженный в свой 32-битный процесс.

Последовательность вызовов в этом случае будет такой: клиент (64-бит), загрузив
64-битную dll-ку, будет вызывать оттуда некоторые функции, но реально эти функции
будут всего лишь "заглушками", которые сериализуют данные и передают вызов в
32-битный процесс, в который загружена настоящая 32-битная dll. В этом процессе
вызываются настоящие функции и выполняется реальная работа, после чего параметры
сериализуются обратно, в вызывающий процесс, и в итоге клиент получает результат.
Все так, как если бы он загружал настоящую 64-битную dll, если бы она существовала.

Не факт, что это удастся так легко реализовать. Например, если какая-то функция dll
возвращает указатель, Вам нужно будет воссоздать объект, на который он указывает, в
контексте вызывающего процесса. Есть и другие потенциальные проблемы - с синхронизацией,
например, или правами доступа к объектам.

Тогда Вам нужно сделать примерно следующее - собрать 64-битную версию dll-ки с точно
таким же API, как у 32-битной, чтобы 64-битные клиенты могли ее свободно загружать и
использовать, а настоящую 32-битную версию dll-ки загрузить в свой 32-битный процесс.
А потом наладить передачу данных между 64-битной dll-кой, загруженной в клиентский
64-битный процесс, и 32-битной dll-кой, загруженный в свой 32-битный процесс.

Последовательность вызовов в этом случае будет такой: клиент (64-бит), загрузив
64-битную dll-ку, будет вызывать оттуда некоторые функции, но реально эти функции
будут всего лишь "заглушками", которые сериализуют данные и передают вызов в
32-битный процесс, в который загружена настоящая 32-битная dll. В этом процессе
вызываются настоящие функции и выполняется реальная работа, после чего параметры
сериализуются обратно, в вызывающий процесс, и в итоге клиент получает результат.
Все так, как если бы он загружал настоящую 64-битную dll, если бы она существовала.

Не факт, что это удастся так легко реализовать. Например, если какая-то функция dll
возвращает указатель, Вам нужно будет воссоздать объект, на который он указывает, в
контексте вызывающего процесса. Есть и другие потенциальные проблемы - с синхронизацией,
например, или правами доступа к объектам.

Перенос 32-битных Windows приложений на 64-битную машину может быть весьма проблематичным, если у вас есть 32-разрядные библиотеки DLL, которые вы не можете переписать и портировать для 64-bit. Майк Беккер покажет вам, как можно получить доступ к 32-bit DLL из 64-битного кода с помощью встроенных механизмов IPC.

64-разрядные технологии Microsoft впервые появились в Windows Server 2003 для процессоров Itanium 2 (архитектура ихвестна как "IA64") а также для eXtended CPUs (архитектура известна как "x64"). 64-bit технология имеет много преимуществ, но также поднимает новые вопросы для разработчиков программного обеспечения. Например, вам может понадобиться необходимость доступа к существующим 32-разрядным библиотекам DLL из 64-битного процесса.

Главное преимущество технологии 64-бит состоит в способности адресовать до 8 ТБ памяти, против максимальных 2 Гб для 32-битных процессов. Как результат, 64-разрядная технология позволяет проводить операции с большим объёмом данных в оперативной памяти без необходимости временного сброса памяти на жётский диск. Это может значительно повысить производительность и открыть новые алгоритмы обработки данных базирующихся на очень больших доступных объёмов оперативной памяти. Как бы то ни было аргументы для миграции существующего программного обеспечения на 64-битную платформу имеют место быть.

Многие приложения, написанные с помощью C/C++ могут быть легко портированы под 64-битную платформу, особенно если они написаны в виде монолитного модуля. Иногда достаточно просто пересобрать исходные коды с использованием x64/IA64 компилятора. Однако уже опубликованное или базирующееся на модулях ПО может вызвать проблемы.

Конфликт: 64-bit против 32-bit

Основная проблема миграции возникает при необходимости портирования 32-разрядных программных компонентов, которые не могут быть пересобраны, возможно, потому что исходный код потерян, к нему нет доступа или одна из зависимостей этого модуля не можeт быть перенесена на 64-bit платформу.


Например, 32-битный программный продукт содержит основной модуль WeatherReport (см. рисунок выше), который внутри обращается к DLL WeatherStationControl. Пока основной модуль и DLL являются 32-разрядными, продукт может работать как на 32-битных, так и 64-битных платформах (внутри WOW64). Если основной модуль и DLL переносятся на 64-битную платформу, то они могут работать в рамках 64-битных процессов. Однако, если только основной модуль переносится на 64-bit, он не сможет загружать 32-разрядные DLL.

Лучшим способом переноса такого продукта на 64-битную платформу является миграция как основного модуля, так и всех его зависимостей, но если хоть одна зависимая DLL не может быть перенесена, то продукт не может быть загружен в 64-битном процессе, следовательно приложение работать не будет.

Решение: суррогатный процесс

Эта проблема может быть решена путем загрузки зависимой 32-битной DLL в отдельном пространстве 32-разрядного процесса. Основной модуль, работая в качестве 64-битного процесса, может получить доступ к зависимым DLL'ям через границы процессов, используя IPC (Смотри MSDN reference).


64-битный процесс может получить доступ к 32-разрядной DLL используя механизмы межпроцессного взаимодействия. То бишь 32-разрядные DLL загружаются в отдельный 32-битный суррогатный процесс, и тогда 64-битное приложение использует встроенные механизмы IPC для того, чтобы обмениваться данными 32-битным процессом.

Это решение требует дополнительной работы, например необходимо создать 32-разрядный суррогатный процесс, который загрузит 32-разрядные DLL и предоставит API для работы с ними. Кроме того, некоторые изменения будет необходимо стелать со стороны 64-битного клиента, т.к. клиент будет вынужден использовать методы IPC вместо непосредственного доступа к 32-разрядной DLL. Стоит отметить, что, в крайнем случае, эта дополнительная работа может быть сравнима с работой, которую необходимо выполнить при разработке 64-разрядной версию 32-битной DLL с нуля.

Одним из возможных путей сокращения этих расходов является реализация 64-разрядной DLL обертки, которая предоставит те же функции, что и оригинальная 32-битная DLL. Эта обёртка уже внутри себя скроет детали IPC вызовов оригинальной 32-битной DLL, загруженной в 32-битный суррогатный процесс.


64-битная обёртка (WeatherStationControl64.DLL) экспортирует тот же интерфейс, что и оригинальная 32-битная DLL (WeatherStationControl.DLL), то бишь предоставляет главному модулю WeatherReport те же сервисы без необходимости внесения изменений в код модуля WeatherReport.

Основные затраты этого решения связаны с реализацией суррогатного процесса, загружающего 32-битную DLL и реализаццей 64-битной DLL оболочки. Фактически затраты будут зависеть от того, какая из IPC технологий будет использоваться для обмена данными между 64-битным и 32-битным процессами.

Использование COM для межпроцессного взаимодействия

Один из самых популярных методов IPC - это DCOM (Distributed COM). Первоначально разработанная для распределенных систем, DCOM по-прежнему поддерживается как на 64-битных платформах Windows. Модули COM могут быть собраны как 32-разрядные так и 64-разрядные. Единственным ограничением является то, что 64-битные и 32-битные модули не могут находиться в одном и том же процессе, следовательно они должны взаимодействовать через границы процессов. Это делается с помощью out-of-process (OOP) COM компонентов, следующим образом:

  1. Создаём 32-битный COM-Сервер, который загрузит 32-битную DLL и опубликует 32-bit DLL интерфейс как COM-интерфейс, реализованный внутри через делегирование к API исходной 32-битной DLL.
  2. Конфигурируем этот COM-Сервер для out-of-proc загрузки любым способом создания COM+ приложений (используя dllhost.exe в качестве суррогата).
    Также можно реализовать этот COM-компонент как специальный COM-Сервер EXE, используя ATL COM Server в качестве хостящего процесса.
    Можно также помеcтить этот COM-компонент внутрь Win32-сервиса.
  3. Создаём 64-разрядную DLL оболочку, реализующую тот же интерфейс, как оригинальная 32-битная DLL. Обёртка будет импортировать COM-интерфейс из COM-объекта, созданного выше, и транслировать каждый API вызов в обращение к COM-интерфейсу, передавая параметры вызова и получая возвращаемые значения.

32-разрядная DLL (WeatherStationControl.DLL) используется СОМ-объектом (WeatherStationWrapper), который предоставляет интерфейс 32-битной DLL в качестве COM-интерфейса. 64-битная DLL обёртка (WeatherStationControl64.DLL) делает вызовы COM-интерфейса, которые уже делегируют всю работу оригинальным API вызовам исходной 32-битой DLL. Основной процесс (WeatherReport) использует интерфейс, предоставляемый 64-разрядной DLL обёрткой, но на самом деле работа выполняется в оригинальной 32-битной DLL.

Это решение должно быть значительно дешевле, чем создание 64-разрядную версию 32-битных DLL с нуля. Библиотека ATL, поддерживающаяся Visual Studio, вкупе со всеми своими визардами и готовыми фрагментами кода, также должны помочь снизить затраты миграции за счет экономии времени и снижения вероятности ошибок.

Пришлось перейти на Office 64 bit (2019, Professional Plus). У меня есть большое количество сценариев VBA, и большинство из них обращаются к старой 32-битной dll, написанной на простом языке C и скомпилированной с помощью очень старой Developer Studio 97. Мне удалось перекомпилировать ее с Visual Studio 2019 как dll на C ++ на 64 бит, и я столкнулся с двумя проблемами: функция MessageBox (и MessageBoxA) помечена как "undefined". Обходной путь: я временно заменил их на OutputDebugStringA, и DLL компилируется нормально.

Вызывая функцию из VBA, она не загружается. Благодаря ProcessorMonitor я обнаружил, что моя dll пытается загрузить VCRUNTIME140D.dll и UCRBASED.dll. Я загрузил их из Интернета и обнаружил, что должен поместить их в C: \ Program Files \ Microsoft Office \ root \ Office16. Но этого было недостаточно! VCRUNTIME140D.dll необходимо также поместить в C: \ WINDOWS \ SYSTEM32!

На этом этапе моя DLL отлично работает как 64-битная dll.

Следующим сюрпризом стало то, что после перезагрузки он снова не загрузился из-за отсутствия VCRUNTIME140_APP.dll (обратите внимание на отсутствие буквы "D" после "140")! Скачанная и помещенная в C: \ Program Files \ Microsoft Office \ root \ Office16, DLL работает нормально, как и ожидалось.

Я попытался скомпилировать его как «статический» («Генерация кода» -> «библиотека времени выполнения» -> «многопоточный» вместо «многопоточный dll»), но получил ошибку: MSB8024 Использование статической версии библиотеки времени выполнения C ++ не поддерживается.

Где-то я читал, что VCRUNTIME140 связан с Visual Studio 2014 . странно, но, может быть, я тоже пропускаю некоторые .obj из этой версии, чтобы статически связать? Зачем мне нужны элементы из старой системы?

На данный момент у меня следующие вопросы: -Можно ли создать 64-битную статическую .dll? -Это нормально . Мне нужно загрузить 3 указанные выше библиотеки DLL из Интернета и скопировать их в некоторые каталоги? -Можно ли использовать обычный MessageBox (дескриптор, текст, заголовок, кнопки) в 64-битной dll?

32-разрядная компонента не может быть загружена в адресное пространство 64-разрядного приложения. Попробуйте зарегистрировать компоненту XXX.dll в COM+. Для этого:

  • запустите Component Services;
  • создайте пустое COM+ приложение с Activation type - Server application, укажите имя пользователя Windows, от имени которого компонента будет запускаться в адресном пространстве отдельного процесса dllhost.exe;
  • в ветке Components добавьте новую компоненту XXX.dll.

Таким способом некоторые 32-разрядные COM компоненты можно использовать в 64-разрядных приложениях. Однако, скорость работы с COM объектом при этом несколько снизится.

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

(2) а можно тоже самое только в cmd.. был бы очень признателен Очень помогло при регистрации GflAx.dll(не работала dll gj 64-x разрядным сервером приложений)

(7) А как заработало?
Я сделал, создание COM перестало ругаться, но дальше ругается все равно.
Ошибка при вызове метода контекста (LoadBitmap): Произошла исключительная ситуация (GflAx.GflAx.1): Error to open file

Очень помогло при регистрации GflAx.dll(не работала dll при 64-x разрядным сервером приложений) Спасибо! Правда Compound.dll таким образом зарегистрировать так и не удалось, зато ActiveMD.dll зарегистрировалась - переписал методы под нее.

(9) maljaev, мне удалось зарегистрировать Compound.dll под Windows7 x64 простым способом (но не простыми были поиски решения) прописыванием в реестре следующего:

Правда, при импорте еще несколько ключей образовалось, но автоматически:

Естественно, что во всех ключах "InprocServer32" нужно прописать свой путь к Compound.dll !

Очень помогло решить регистрацию компоненты GflAX.
Спасибо большое .

Просмотры 29892

Загрузки 0

Рейтинг 40

Создание 07.05.10 16:30

Обновление 07.05.10 16:30

№ Публикации 69986

Тип файла Нет файла

Конфигурация Не имеет значения

Операционная система Windows

Вид учета Не имеет значения

Доступ к файлу Бесплатно (free)

Код открыт Не указано

54-ФЗ: Онлайн-кассы для 1С 7.7 (с поддержкой маркировки ЕГАИС, ТАБАКА, ОБУВИ, ЛЕКАРСТВ и пр.)

См. также

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017 67637 user700211_a.straltsou 30

Выгрузка в dt на сервере 1С по расписанию с завершением соединений и подключением к консоли сервера через com

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

16.04.2020 9056 karamazoff 48

Самые распространенные заблуждения об индексах в мире 1С

"Магия" индексов привела к множеству заблуждений об их работе. Попробуем развеять некоторые из них в контексте 1С.

28.11.2019 30512 YPermitin 51

Установка и настройка нескольких экземпляров сервера 1С: Предприятия 8.3 разных релизов на одном Ubuntu-server

Запуск нескольких экземпляров сервера 1С Предприятия 8.3 разных релизов на одном Ubuntu-server.

19.09.2019 13463 Error34 23

Копирование числовых ячеек из 1С в Excel Промо

15.01.2019 35339 itriot11 27

Как настроить сервер 1С по умолчанию для ПРОФ лицензии после 10.09.2019

Здесь мы собираем все данные по настройкам сервера для работы ПРОФ лицензии.

11.09.2019 109650 Infostart 90

Использование Zabbix для сбора информации о серверных вызовах и управляемых блокировках с сервера 1С Предприятия, работающего на платформе GNU/Linux

Описанные в данном опусе механизмы ни в коей мере не противопоставляются тому, что реализует КИП от 1С или какие-либо другие инструменты (решения)! Это всего лишь еще один взгляд на "проблему", который может быть полезен в некоторых ситуациях.

10.09.2019 22741 Sloth 49

Нарушение целостности системы

Причины возникновения ошибки "Обнаружено нарушение целостности системы" и способы ее устранения.

07.09.2019 53606 Rain88 27

Обработка картинок для УТ 11 Промо

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

06.10.2011 39028 308 59

Установка 1С Сервера взаимодействия на Linux

В статье описан пошаговый процесс установки Сервера взаимодействия 1C на Linux CentOS 7.6.

06.09.2019 13323 KlSergey 25

1С + PostgreSQL + SSD: Куда уходит ресурс хост-записей?

Работа PostgreSQL на SSD начиная с 10 версии, резко увеличивает нагрузку на ресурс SSD, даже когда к базе нет коннектов.

06.09.2019 9341 2tvad 7

Уверенное обновление

Уверенное обновление. Анализ файла ОтчетОСравнении.txt. Bash

18.07.2019 13219 vasilev2015 36

Семь рекомендуемых бесплатных курсов Microsoft для ИТ-администраторов Промо

Образовательный портал «Нетология» предлагает вам пройти семь онлайн-курсов по облачным сервисам Microsoft бесплатно и получить сертификат об их завершении. Все курсы основаны на самых популярных сценариях использования облачных технологий в компаниях малого и среднего бизнеса. Разберемся, что же эти учебные программы предлагают.

28.12.2018 18201 VKuser24342747 2

Почему Вы не обслуживаете итоги?

Небольшая заметка по обслуживанию итогов. Все ли Вы делаете правильно?

04.07.2019 25825 YPermitin 36

Вопросы и ответы по лицензированию приложений Microsoft Office

Завершение цикла статей о лицензировании продуктов Microsoft.

23.06.2019 26417 accounting_cons 7

Обновление PostgreSQL на Windows

Указана последовательность действий при обновлении PostgreSQL на примере Windows. Также описаны некоторые особенности.

11.06.2019 21474 extalionos 11

Чем PostgreSQL может быть полезен разработчику 1С Промо

В статье будут рассмотрены примеры, которые могут оказаться полезными в повседневной работе разработчика 1С и не только: как можно сделать снимок рабочей базы без файла резервной копии, как можно эффективно использовать табличные пространства СУБД PostgreSQL, а также как организовать простой и удобный доступ к админке СУБД посредством мобильных устройств.

20.12.2018 25056 Shmell 40

Вопросы и ответы по лицензированию Microsoft Windows

То, что интересует покупателей настольной операционной системы Microsoft.

20.05.2019 38229 accounting_cons 8

Регулярная перезагрузка Сервера 1С с чисткой кэша

Батник для перезагрузки агента сервера 1С и чистки серверного кэша и сеансовых данных. Для регулярной перезагрузки вставляем в планировщик заданий Windows.

17.05.2019 16066 alfir70 20

Способы проверки доступности TCP-портов

Как проверить доступен ли порт сервера? Или внешний веб-сервис? Приведены несколько способов для использования на Windows-системах.

12.05.2019 88018 VKislitsin 9

Зачем в 1С нужно периодически пересчитывать итоги по регистрам? Промо

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

10.03.2013 249221 Aleksey.Bochkov 141

Опыт обновления до 8.3.14 - лицензии и утилита ring

На выходных было скучно, поэтому решили обновить 1с до 8.3.14.1694. С лицензиями пришлось немного повозиться.

29.04.2019 46082 Sander80 31

Практика перехода на Linux и Postgres в небольшой компании (10 пользователей)

Почему я решил поставить давнему клиенту Linux + Postgres вместо Windows + MS SQL? Что меня останавливало раньше?

22.04.2019 33986 starik-2005 180

PID процесса в сборщиках PerfMon

06.04.2019 7301 VKislitsin 26

Создание пользователя СУБД MS SQL Промо

Создание пользователя MS SQL для развертывания базы 1С.

15.02.2017 47740 hayroff 9

Переход на 64-х разрядный сервер 1С

Переход с 32-х разрядной версии сервера 1С на 64-х разрядную с сохранением данных журналов регистрации информационных баз, используемых в 32-х разрядной версии.

05.04.2019 29583 ids79 20

Введение в лицензирование ПО Microsoft

Поговорим о принципах лицензирования программных продуктов Microsoft.

19.03.2019 42278 accounting_cons 49

Собираю Новый бюджетный Сервер для 1С ЗУП на 50 пользователей за 160 тысяч рублей (новый)

06.03.2019 7720 Indgo 97

Все, что надо знать о технологической платформе 1С:Предприятие: компоненты, архитектуры, операционные системы, лицензии Промо

Все о платформе и лицензировании для начинающих и не только. (благодаря Сообществу учтены новейшие изменения лицензионной политики 1С!)

19.12.2015 81642 barelpro 51

Вопросы и ответы по лицензированию Microsoft SQL Server

Продолжение темы лицензирования серверных продуктов Microsoft.

26.02.2019 38783 accounting_cons 55

Скорость работы 1С: Предприятие с разными СУБД: MS SQL и с PostgreSQL

Рассмотрим несколько вариантов работы 1С: Предприятие с различными СУБД.

20.02.2019 31484 valentinko 174

Восстановление файловой базы с помощью tools 1cd

Небольшая заметка, как удалось вылечить битую файловую базу 1С, с помощью утилиты tools 1cd.

19.02.2019 19761 rzabolotin 68

Кто заблокировал объект ? 7.7 (SQL/DBF) Промо

Обработка блокировки объекта в базе для SQL/DBF варианта.

13.08.2010 41378 Ёпрст 125

Вопросы и ответы по лицензированию Microsoft Windows Server

Все, что вы хотели знать о лицензировании Microsoft Windows Server.

13.02.2019 40077 accounting_cons 52

А еще был такой случай

Сервер, Сеть и два Сеанса.

04.02.2019 6156 kraynev-navi 12

Debian 9.7 + PostgreSQL для 1С. Как завести с пол-оборота

Предлагаю взять на заметку информацию по установке и настройке в формате typical, typical, done.

02.02.2019 30283 valentinko 15

LiteManager — удаленное администрирование. Описание, практика применения, рекомендации. Промо

Удаленное администрирование компьютерами. Локальная сеть. Интернет. Описание, практика применения, рекомендации.

30.04.2013 84092 StepByStep 55

Собираем бюджетный игровой компьютер core i7 для Программиста 1С из всякого хлама за 20 тысяч рублей

В продолжение статьи со сборкой бюджетного сервера так же решил написать про свой комп. С бюджетом 20 тыс. рублей.

29.01.2019 11865 Indgo 128

Собираем бюджетный б/у сервер 1С:Предприятия 8.3 на 250+ Пользователей за 100 тыс. рублей

В последнее время в виду дорогого доллара, санкций и прочих проблем покупка нового сервера за 500 и более тысяч рублей стала недостижимой роскошью. Ввиду этого попытаемся собрать его из б/у сервера на Авито.

24.01.2019 20272 Indgo 138

1С и Яндекс.Облако Compute Cloud. Вдоль и поперек

Бороться и искать. Найти и перепрятать. Достаточно популярная поговорка во времена Союза. Вот и сейчас, те у кого сервер 1С в локальной сети мечтают вынести его в облако, а те у кого в облаке прикупить свой в локальную сеть. Тестирование Яндекс.Облако Compute Cloud для 1С Предприятие оставило у меня приятное впечатление. Возможно кто-то повторит его и внесет больше ясности в настройки виртуальных серверов, использованию API и так далее. Пока же пользуйтесь чем я послал. Интересующихся прошу под кат…

20.01.2019 19566 capitan 29

Сжатие баз данных 1С:Предприятие в MS SQL Server Промо

Тема сжатия баз данных 1С в настоящий момент довольно часто обсуждается. Достоинства сжатия известны – уменьшение размера базы данных, уменьшение нагрузки на дисковую подсистему и некоторое ускорение выполнения тяжелых операций чтения/записи. Из недостатков – небольшое увеличение нагрузки на процессоры сервера СУБД за счет расхода ресурсов на компрессию/декомпрессию данных. Но при использовании в качестве MSSQL и DB2 (за Oracle и PostgreSQL не скажу, т.к. не знаю) есть один «подводный камень» - при выполнении реструктуризации происходит декомпрессия новых таблиц и индексов. Происходить это может как при выполнении обновления конфигурации с изменением структуры метаданных, так и при выполнении тестирования и исправления ИБ (реиндексация пересоздает только индексы, а реструктуризация – и таблицы, и индексы). «Проблема» кроется в том, что признак сжатия устанавливается индивидуально для каждой таблицы и индекса.

29.01.2012 96052 Aleksey.Bochkov 62

Установка Windows без загрузочной флэшки и загрузочного DVD-диска

Что делать, если нужно установить Windows на ПЭВМ со старой системной платой, а под рукой нет dvd-привода, а с флэшки загрузка невозможна или идет очень медленно.

Читайте также: