Вступление
Для небольших организаций традиционна работа с базой данных в файловом режиме. Это недорогой (не требуется приобретение сервера 1с) способ организации совместной работы нескольких пользователей. Однако он имеет серьезные недостатки. Главный из них — сетевая работа с базой данных в режиме разделенного доступа. В результате скорость работы с файлом ограничивается скоростью сети, кроме того, при совместном доступе к сетевому ресурсу windows не в лучшую сторону меняет настройки кэширования данных этого файла, что резко снижает скорость записи. При аварийном прекращении работы сети во время записи данных может произойти порча базы, часто необратимая.
К счастью, при реализации модели управляемых форм в версии 8.2 фирма 1с предоставила возможность работы с файловой базой через веб-сервер. У этого способа есть огромные преимущества:
1. Намного выше скорость работы с данными, поскольку не требуется их передача по сети во время обработки
2. База не боится разрывов сети во время записи, поскольку непосредственная работа с файлом данных происходит через модуль веб-сервера. Разрыв передачи данных по сети может вызвать лишь временное прекращение работы пользователей, но не порчу данных в базе и не тем более не может вызвать разрушение самой базы.
3. Нетребовательность к скорости сети и к быстродействию клиентских компьютеров. Это обеспечивает легкое масштабирование — путем апгрейда лишь одного сервера можно существенно повысить производительность работы.
4. Возможность работы как в тонком клиенте, так и в веб-браузере.
Но при работе в таком режиме можно столкнуться со следующей проблемой. Дело в том, что модуль 1с для веб-сервера — однопоточный. Соответственно, все пользователи 1с, подключенные к этому веб-серверу, встают в единую «очередь» серверных вызовов. Если серверные вызовы длительные, что возможно при росте объема данных в базе или при выполнении сложных запросов, то это может полностью парализовать работу других пользователей — они будут вынуждены ждать.
Вот что написано по этому вопросу на сайте 1с: «Прямо в адресное пространство веб-сервера загружается компонент для работы с файловой базой данных и сами данные информационной базы. При этом нагрузка на веб-сервер значительно возрастает, а пользователи одной информационной базы не имеют возможности работать параллельно. Все их запросы к базе данных выстраиваются в одну очередь. » (с)
Но решить эту проблему можно достаточно просто. Нужно использовать вместо одного веб-сервера несколько, вплоть до того, что каждому клиенту выделить свой собственный серверный процесс. Однако, 1с не предоставляет возможности автоматической публикации конфигурации через веб-модуль на нескольких экземплярах сервера. Тем не менее, для сервера Apachе это можно осуществить путем ручного редактирования файлов конфигурации. Для автоматизации этого процесса и предназначена данная разработка.
Разработка представляет собой cmd-файл (скрипт), облегчающий работу по созданию нового экземпляра веб-сервера Apache с публикацией файловой базы.
Описание скрипта:
При запуске скрипт принимает в качестве параметров три значения:
— имя базы, под которым она будет опубликована на экземпляре веб-сервера
— порт, на котором будет работать экземпляр
— каталог, где находится файловая база данных
В качестве имени базы следует указывать строку из латинских символов и цифр (ограничения аналогичны интернет-адресам) без кавычек. Русские буквы и пробелы не допускаются. Порт может быть любым — важно, чтобы он был не занят другим приложением и не был заблокирован брандмауэром. Каталог базы, если содержит пробелы, должен быть в кавычках.
Предварительно скрипт нужно настроить под свою систему, указав в нём, в разделе системно-специфичных переменных, следующие данные:
MODULE_1C — полный путь к модулю веб-сервера 1с
вариант: set MODULE_1C=C:Program Files1cv828.2.18.82inwsap22.dll
APACHE_PATH — путь к каталогу Apache
вариант: set APACHE_PATH=C:Program FilesApache Software FoundationApache2.2
Запуск скрипта с отсутствующим путём к базе данных вызывает удаление регистрации экземпляра веб-сервера, связанного с указанной базой и портом.
Пример использования
Задача: Нужно создать инфраструктуру для работы 5 пользователей в одной файловой базе через веб-сервер без взаимного ожидания выполнения серверных процессов.
Решение: Создать 5 экземпляров веб-сервера Apache и каждому клиенту сопоставить свой порт.
1. Настраиваем скрипт, указав в переменных MODULE_1C и APACHE_PATH актуальные для системы параметры.
2. Запускаем скрипт последовательно 5 раз, меняя порт
c: est>web_server_1c.cmd buh_base 8001 d:asesuh_base
c: est>web_server_1c.cmd buh_base 8002 d:asesuh_base
c: est>web_server_1c.cmd buh_base 8003 d:asesuh_base
c: est>web_server_1c.cmd buh_base 8004 d:asesuh_base
c: est>web_server_1c.cmd buh_base 8005 d:asesuh_base
3. На клиентах создаем ярлыки подобного содержания:
1cv8c.exe ENTERPRISE /Wshttp://192.168.0.1:8001/buh_base
…
1cv8c.exe ENTERPRISE /Wshttp://192.168.0.1:8005/buh_base
Примечание
Для удобства обновления платформы и уменьшения затрат времени лучше сделать следующее:
— На сервере создать символическую ссылку на каталог, где установлена актуальная версия платформы 1с. Это наиболее удобно сделать с помощью Far Manager.
— В параметрах обработки прописать путь к модулю 1с для веб-сервера, именно используя этот каталог-ссылку, чтобы в конфигурационных файлах не было привязки к конкретному имени каталога 1с (с номером версии).
— Данный каталог-ссылку открыть для общего доступа по сети на чтение.
— На клиентах в локальной сети 1с не ставить, а настроить всем ярлык, ссылающийся непосредственно на тонкого клиента 1cv8c.exe на сервере. Он грузится достаточно быстро для этого.
Таким образом, действия, которые необходимо предпринять при обновлении платформы 1с, ограничатся корректировкой символической ссылки на новый каталог 1с и перезапуском процессов Apache.
А как обстоит дело с блокировками при таком варианте работы? Транзакции работают?
(1) afanasko, транзакции и блокировки работают так же, как в файловой базе — проверил. По сути, каждый экземпляр веб-сервера — это клиент для базы.
(2) Chai Nic, тогда это очень круто :). Если еще смастерить «сервер», который автоматически экземпляры апача генерить будет для каждого коннекта — то зачем будет нужен микросервер от 1С?
Спасибо! как раз есть задумки на этот счет, я сам уже давно догадался использовать несколько процессов апача, но каждому свой ярлык делать не айс… и вот какие мысли есть по этому поводу:
Написать простенький сервис-тунель на Delphi , который будет принимать все входящие коннекты на порт скажем 8080, и распределять их динамически по N веб-сервисам апача… просто циклом отправляя клиентов работать 1ого клиента на первый процесс, второго на второй.. шестого снова на первый, седьмого на второй и тд.. понятно думаю смысл ) 1С:Сервера это конечно не заменит, но тогда можно будет забыть о работе через локалку в файловом варианте )
(3) afanasko, да, у меня тоже есть мысль написать сервис-диспетчер, который бы слушал один порт, принимая на него запросы клиентов, и пробрасывал бы соединение на наименее загруженный веб-сервер. Но это надо будет дельфи или си вспоминать)
А как там дальше. Вот 5 пользователей ушли с работы, утром пришли, кто то выдернул шнур по глупости из розетки. Сервер перегрузили или нет. Как там все будет ?
Особенно учитывая что на 5 юзерах штатных админов и 1С ников может не быть
(6) kiruha, насколько я в курсе, модуль веб-сервера периодически принимает от клиентов пакеты «keep alive», если какое-то время их не получает — считает что сеанс умер и отрубает его (есть подозрение на 20 минут). В этом смысле ничего не меняется, что с одним сервисом, что с несколькими на одной базе. Каждый будет работать по тому же принципу. В общем, по сути вообще ничего не меняется, можно эту функцию настроить на сервере, а работать по старинке — на одном апаче.. это если некому ярлыки пользователям раскидать по уму. Хуже не будет в любом случае.
(2) Извините, я правильно понимаю, что для базы в которой заведены 10 организаций,и работают 10 пользователей, использование веб-клиента приведет к видимым тормозам, т.е. будет еще хуже, чем при работе на терминальном сервере?
И соответственно, если у меня 10 баз 1с с 1 организацией, проблем при поднятии 1 apache сервера не возникнет для доступа 10 пользователей (по 1 к каждой базе)?
(8) В 8.3 можно настроить время жизни соединения maxAge и другие параметры:
<pool size=»10000″
maxAge=»600″
attempts=»3″
attemptTimeout=»100″
waitTimeout=»100″/>
Хорошее решение, но требуется ручное распределение пользователей по веб-серверам. Если написать автораспределение подключений по сервисам, то получится аналог сервера 1С для файлового варианта. Сервисы Апача вместо rphost, распределяющая прога — вместо rmngr.
Chai Nic, можно написать про еще один серьезный плюс такого решения — защищенность файлов базы данных от копирования или повреждения ручками пользователей. Только ради этого стоит применять такой подход. Особенно когда «узкое горлышко» веб-сервера перестает иметь значение.
(9) logdog, однопоточность модуля веб-сервера проявляется лишь в контексте одной информационной базы. Если на одном экземпляре апача висит несколько информационных баз — их серверные вызовы выполняются независимо.
(11) VladimirL,
+1
Вообщем нужно хотя бы простое автоматическое подключение к разным.
Вероятно можно реализовать через файлики настроек, типа поиска ключа.
Типа установил и забыл
(13) kiruha, автоматическое решение нужно, но оно не получится таким уж простым. Дело в том, что клиент не устанавливает постоянное tcp-соединение с сервером, сеанс поддерживается лишь на прикладном уровне. Алгоритм менеджера должен быть примерно такой — клиент подключается к менеджеру (по tcp), тот смотрит в таблицу трансляции, если для клиента в ней записи нет — выбирается свободный (или менее загруженный) рабочий сервис, данные транслируются, и в таблицу трансляции записываются сведения «клиент такой-то подключен к серверу такому-то тогда-то». При последующих запросах уже используются данные из таблицы. Периодически таблица трансляции проверяется на записи, время жизни которых превысило некий порог — они удаляются. Как-то так..
(5)Скажите не сильно разбираюсь в Apache, a нельзя установить 5 раз Apache , типа 5 каталогов ProgramFilesApache1 ProgramFilesApache2 ProgramFilesApache3 ProgramFilesApache4 ProgramFilesApache5 со своими конф. файлом своим портом или будут проблемы?
(14) Chai Nic, а откуда инфа о том что соединение не висит постоянно ?
(15) maxx, можно конечно и так сделать, но зачем? Апач нормально работает с указанием конфигурационного файла.
(16) AllexSoft, это можно увидеть в соединениях процессов 1cv8c или httpd через Process Explorer или netstat.
(17) Chai Nic, если он переподключается постоянно, то будет ли разница в контексте какого сервера апача он подключиться в дальнейшем ? ведь база то одна все равно и апачи на одном сервере вияст, все темпы будут одни и тд… может и смысла нет в таблице трансляции ?
ПС: на личку ответите ?
(18) AllexSoft, неее, к какому угодно, я думаю, нельзя, ведь контекст приложения (параметры сеанса и тому подобное) держит именно модуль веб-сервера, а он на каждом серверном процессе свой.
(19) Chai Nic, нее.. я думаю что веб-сервер то как раз ничего не держит в случае апача… ибо при отвале коннекта он бы все чистил у себя — для него это просто отключившийся клиент. А вот 1С где то держит это, чувствую что держит она это в темпах у себя, как всегда все на файликах-темпах в 1С же… ))
ПС: апач ничего не держит с вероятностью в 99%, может компонента эта 1С-ная держит конечно.. нужна проверка все равно =)
(20) AllexSoft, разумеется, апач ничего не держит. Но он в данном случае всего лишь «запускалка» для модуля 1с. И вот именно этот модуль и создает временные файлы, кроме того, хранит что-то, относящееся к запущенным сеансам, в своей оперативной памяти. А разные экземпляры апача — разные модули 1с. Сеансы, открытые на одном из них, на другом модуле будут чужими, скорее всего просто коннект отвалится с ошибкой.
Для запуска веб-клиента, нужен только апатч или он должен быть в связке с nginx?
(22) logdog, только апач
(23)Есть еще такой продукт Apache Traffic Server 4.0 — это замена апатчу (можно ли на нем поднимать веб-сервер для 1С)?
(24) logdog, думаю что не получится, я пробовал ставить Denver, не получилось ) а с обычным стандартным апачем взлетело сразу без мучений
(25)Ну, Denver — это «комбайн», а нам ни базы данных, ни php не нужно.
(26) logdog, да даже из всего огромного количества модулей апача нужен лишь один mod_alias в дополнение к модулю 1с…
(27) Я бы еще mod_ssl.so добавил. (но и mod_auth_* нужны)
(28) logdog, ну это всё-таки не обязательно, в 99% случаев с https не связываются, поскольку с базой работа ведется внутри локальной сети или vpn..
у меня кстати так и не удалось завести Аапач+SSL + 1C ( не хочет видеть 1С его и все
(30)Тут статья была, Вы поищите, я когда-то ради теста настроил — работало.
(31) logdog, сначала сам, потом по ней пытался… не захотел долго возиться, но с первого раза не взлетело
Интересует вопрос по тонкой настройке apache:
Cейчас висят два процесса httpd (почему два?) и один из них отжирает около 250 метров памяти, хотя 3 часа как отключились от веб-клиента (
(33) logdog, а ничего тут не сделаешь, память занимает не апач, а серверный модуль 1с. И занимает её он не просто так, а кэширует в памяти часть метаданных. Так, чтобы при повторном подключении клиенту не приходилось ждать загрузки. Что касается двух процессов на одну службу — так и должно быть, один как я понимаю служебный, а второй — собственно рабочий.
(34) Тогда вопрос с точки зрения лицензий, этот висящий процесс занимает клиентскую лицензию 1C? И закрытие браузера клиентом, отнюдь не означает освобождение лицензии (она освобождается, только тогда, когда время жизни соединения истечет)?
(35) logdog, клиентскую лицензию в случае веб-браузера занимает пользовательский сеанс 1с, а не серверный процесс. Внутри одного серверного процесса может работать и несколько сеансов 1с, при этом каждому нужна лицензия. По поводу времени освобождения лицензии после завершения сеанса (нормального или аварийного) — тут ничего пока сказать не могу, надо проверять.
(34)Проверил, к сожалению — это верно до истечения времени жизни сессии. До 320, после 250 — память просто не освобождается.
(37) logdog, я не думаю, что это так уж важно. А вообще, можно перезапускать сервисы по ночам планировщиком, заодно и бэкап сделать во время остановки.
А на IIS то же самое делается вполне стандартными средствами.
(39) asved.ru, так и на апаче вполне стандартными.. или что вы понимаете под «стандартными средствами»?
(39) asved.ru, например как?
(42) asved.ru, ваши личные предпочтения (gui vs комстрока) к теме обсуждения не относятся, просьба не устраивать оффтопик. Суть не в количестве рабочих процессов, а в создании изолированных экземпляров веб-сервера, слушающих разные порты и независимо загружающих одинесовскую дллку. Позволяет IIS такое?
(42) asved.ru, кажется вы не прониклись идеей, тема слишком специфична к сожалению… сам пытался подобрать что то более менее готовое, но увы ничего… разве что на роутере (или софт-роутере) настраивать порт форвардинг, но это опять немного не то
(43) Chai Nic,
А зачем? Если можно сделать все на одном порту, одном экземпляре, и мы получим ту же самую параллельность работы?
Таки позволяет, кстати, легко и непринужденно. Матчасть нужно знать и любить.
А в описанном случае, чтобы получить все на одном порту, придется еще и фронт-сайд ставить в виде, к примеру, nginx.
Поймите уже, ценность решения — не в его хитрости, а в его простоте. А с гуй/консоль вы вообще форумом ошиблись, такого рода холивары очень любят на ЛОРе.
(45) asved.ru, «можно сделать все на одном порту, одном экземпляре, и мы получим ту же самую параллельность работы» — каким образом, если wsap22.dll — однопоточная?
(46) Chai Nic, Вы путаете однопоточность ISAPI-компонента и однопоточность веб-сервера. Никто нам не мешает вызывать функцию однопоточной DLL столько раз, сколько мы хотим, не дожидаясь завершения предыдущего вызова.
Кстати сказать, я не специалист по апачу, но теоретически и в нем должна быть возможность нафоркать сколько нужно рабочих процессов.
что и делает ТС… говорю же, вы не прониклись идеей, ну или не внимательно читали
(47) asved.ru, «Никто нам не мешает вызывать функцию однопоточной DLL столько раз, сколько мы хотим, не дожидаясь завершения предыдущего вызова» — это всё слова… можете привести рабочий пример настройки ииса, позволяющей во время серверного вызова выполнять серверные вызовы других сеансов 1с?
Прошу обратить внимание на мою новую публикацию на ту же тему.
(50) Chai Nic, пропало куда то…
Тема пока убрана.. обнаружились баги, которые пока непонятно как решать.
(52) Chai Nic, расскажешь про баги?
(53) AllexSoft, при обычной работе всё нормально, а вот при простое клиента сервер 1с ведет себя непредсказуемо.. В версии 8.2 клиент после простоя более 20 минут просто теряет сеанс (вылетает ошибка что сеанс закрыт), в версии 8.3 клиент виснет, а серверный процесс при этом грузит проц.
как то очень похоже про то что я тебе в личке писал… у меня вот такая же хрень была, ну только в другой ситуации, которую я тебе описывал
а он что не пытается проверить коннект ?
(55) «а он что не пытается проверить коннект ?»
Да скорее всего пытается, но таким способом, который несовместим с редиректором..
(56) Chai Nic, интересно очень… на выходных покопаюсь
(0) все таки в статье не хватает эксперимента с nginx — он вам даст единый адрес для входа в базу.
upstream backend {
http://192.168.0.1:8001/buh_base ;
http://192.168.0.1:8002/buh_base ;
server
server
}
дальше мы экспериментировали с Ramdrive
http://blog.a-netz.de/2013/02/persistent-storage-with-ramdisks/
после этого смотрели в сторону виртуализации такой конфигурации
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1013628
в итоге получилась отказоустойчивая виртуалка с базой в памяти с достаточной многопоточностью и с возможностью восстановления
P.S. Основные трудности будут с аутентификацией через AD
(58) lustin, к сожалению, нельзя единый адрес использовать.. Клиент, подключающийся к веб-серверу, должен подключаться именно к конкретному экземпляру веб-сервера, а не к перенаправителю. Это уже проверено. Соответствие веб-модуля с клиентом должно быть взаимно-однозначным. Иначе возникают глюки, описанные в (54).
Еще можно использовать вариант, когда веб-клиенту при подключении к единому адресу будет отдаваться html-директива переадресации, вызывая перезагрузку странички с нового адреса. А для тонкого клиента придется писать собственную запускалку, поскольку он не воспринимает переадресацию в html..
(54) Chai Nic, Да, оно (
(55) А в 1С эти баги отправляли?
(60) logdog, вряд ли это баги с точки зрения 1с.. они же не декларировали возможность работы на нескольких серверах через трансляцию с одного порта.
(61) Chai Nic, вчера на весь день тест маппера поставил своего, проблемы как у тебя не наблюдаю, при простое (тестил до 2х часов) все работает и не отваливается
(62) AllexSoft, хм.. ну тогда даже не знаю, в чем может быть проблема… А ты пробовал отрубать клиентские процессы жестко? Что происходит, когда истекает 20-минутный таймаут веб-модуля? Работает ли переход в монопольный режим, например для удаления помеченных объектов?
(63) Chai Nic,
что имеешь ввиду ?
да ничего вроде не происходит, к сожалению лог не включил чтобы смотреть переподключается ли он.. но сегодня наверное еще раз потестю и включу лог
тестил подключение через тонкий клиент, ну а почему он не должен переключаться в монопольный режим?
Кстати, мне удавалось заархивировать базу даже с включенными юзерами через апач, наблюдается странный глюк, в активных юзерах никого нет (кроме конфигуратора), хотя юзеры сидят и при мне работают в это время в этой базе
Ну прервать процесс 1cv8c.exe в диспетчере задач, имитировав этим зависание клиентского компа или разрыв сети.. Из списка сеансов через 20 минут сеанс удаляется? Желательно проверить вариант, когда отрубаемый процесс редиректится на другой порт, чем тот, с которого смотрим список сеансов.
(65) Chai Nic,
делал останов маппера, и его включение через пару секунд, коннект не теряется
Проверю, очень похоже что так и есть
вот это проверить не смогу, я написал только статические маршруты к сожалению, потом узнал что ты пишешь и забил на свое детище )
(66) AllexSoft, «останов маппера, и его включение через пару секунд» — это не то, нужна именно «внезапная смерть клиента».
(67) Chai Nic,
сделал, не зависло ничего, смотрю в активных юзерах, отключенный через диспетчер сеанс висит в активных юзерах, подключился вновь, создался новый сеанс, то есть сейчас висит (конфигуратор, старый отключенный сеанс и новый включенный).. ждем 20 мин, посмотрю отвалится ли или нет
(68) AllexSoft, суть в том, что повторное подключение (которое выводит список сеансов) должно быть через другой экземпляр веб-сервиса.
(69) Chai Nic, я список сеансов смотрю через конфигуратор, так что ему все равно через какой экземпляр подключился новый коннект
ПС: через 20 мин отключенный сеанс отвалился… новый сеанс висит до сих пор
Я смотрел через другой сеанс, от другого клиентского ip и соответственно, с рабочим процессом на другом экземпляре апача (на другом порту).
В общем, ничего больше сказать не могу. Если у вас это каким-то образом работает — рад за вас.
(62) AllexSoft, версию 8.2 или 8.3 тестили?
(73) logdog, 8.2.18..
(72) Chai Nic, может у тебя пакеты keep-alive не отрабатываются правильно или что то в этом духе ?
(75) AllexSoft, у меня вообще не делается разницы между пакетами. Есть tcp-соединение, оно и транслируется, пока не закончится. На каждое соединениние между клиентом и портом редиректора создается такое же соединение между редиректором и конкретным портом апача, и между ними передаются данные.
Странно.. вот сейчас попробовал — ничего не виснет.. но и зависший сеанс не отключается через 20 минут .. ничего не делал.
(77)(74)
Для 8.2.19.80 — база БП 2.0
— по прошествии 20 минут (-30) связь не рвется
— если отключить от базы, вроде сессия отключается, не уверен … так как сейчас висит 4 процесса httpd, вместо 6.
Для 8.3.4.365 — база БП 3.0 (на 8.2 не могу потестить, перевел уже на 8.3, но если нужно …)
-При загрузке базы, табличка — временный сбой интернет-соединения. Если ее не трогать, можно в базе работать, при закрытии таблички, перезагрузка соединения с базой.
ps было пару раз, что таблички не было и можно было работать, с чем связано и такое поведение — непонятно.
А в SQL варианте веб сервер работает многопоточно или тоже по умолчанию в один поток ?
(79) kiruha, в один поток, но там очереди не бывает, так как он всего лишь передатчик на 1C:Сервер, вот там очередь будет ну или на SQL Server, тут смотря что выполняется… поэтому для клиент-серверной смысла не имеет никакого
Если ,например, 50 клиентов обращаются к веб сервису 1С в SQL варианте — идет отработка кода вебсервиса —
1 получат данные — остальные будут жевать бамбук пока не отвалятся по тайм ауту ?
Или если они подключились под разными пользователями — то параллельно ?
(81) kiruha, нет, ибо передача данных всегда быстрее чем их получениеобработка…
хотя вот если у тебя обмены идут через веб-сервисы есть смысл выделить статический второй экземпляр апача конкретно под обмен
(81) kiruha, нет, в клиент-сервере всё будет нормально — там веб-модуль всего лишь посредник по приему-передаче данных, по сути выполняющий функцию обертки серверных вызовов в http-протокол. А в файловой версии в состав веб-модуля входит встроенный сервер 1с, а вот у него один поток обслуживания серверных вызовов для конкретной базы. В принципе ничто не мешало им сделать его многопоточным, но они не захотели создавать конкурента классическому своему серверу, разумеется!
AllexSoft,Chai Nic — Спасибо!
(83) А под классическим сервером что имеется ввиду?
(85) logdog, обычный сервер 1с для sql-базы
Ух ты, недавно как раз возник вопрос подвисания 1С, когда кто-то из юзеров начинает запускать мегаотчеты и мегаобработки. Попробуем потестить, автору — спасибо!
В версии 1с 8.3.5 было исправлено много багов, поэтому публикацияhttp://infostart.ru/public/242527/ становится вновь актуальна. Проверил — версия 8.3.1119 с редиректором (МикроСервер 1с) работает нормально, вылетов и зависаний 1с не замечено. В общем, пробуйте!
Внимание! При использовании последних версий apache 2.4 поменялся минимально необходимый перечень модулей, необходимых для работы модуля 1с. Таким образом, чтобы применить решение для Apache 2.4, нужно перед использованием исправить cmd-файл, добавив строчку
echo LoadModule authz_core_module modules/mod_authz_core.so >> «%CFG_FILE_NAME%»
перед строчкой
echo LoadModule _1cws_module «%MODULE_1C%» >> «%CFG_FILE_NAME%»