Коды ошибок, которые начинаются с цифры 5, говорят о проблемах на стороне сервера. Но это не значит, что советы по их исправлению будут интересны только администраторам выделенных серверов. Узнаем, что нужно делать с пятисотыми ошибками и владельцу VPS, и пользователю виртуального хостинга.
500 Internal Server Error (Внутренняя ошибка сервера)
Серверу не удалось обработать запрос к сайту. Возможных причин для этого может быть много, но сузить их круг можно, восстановив последовательность ваших действий перед сообщением об ошибке. Также изучите само сообщение: комментарий «Internal Server Error» говорит о проблемах с файлом .htaccess, текст «HTTP ERROR 500» — о проблемах со скриптами, а текст «PHP Parse error: syntax error, unexpected» или «Internal Server Error nginx» — о неполадках в CMS.
1. Проверьте сайт, созданный с помощью CMS, на наличие проблем с плагинами или ошибок в коде. В этом вам могут лог-файлы. При обнаружении проблемного плагина обновите его или верните прежнюю версию. Если это не помогло, откажитесь от него. Если ошибка произошла после обновления CMS, проведите обновление повторно.
2. Посмотрите файл .htaccess на предмет ошибок в командах. Закомментируйте директиву Options, поставив перед ней решётку: если после этого ошибка 500 перестанет появляться, значит, есть нарушения в синтаксисе и в описании команд.
3. Убедитесь, что права доступа к файлам, папкам и скриптам выставлены верно. Для папок рекомендуется значение 755, для скриптов — 600, а для других файлов — 644. При других вариантах прав доступ к сайту может блокироваться в целях безопасности.
4. Проверьте, всё ли в порядке со скриптами. Возможно, какой-то из скриптов слишком медленный или время ожидания ответа от сервера слишком мало. Если при просмотре лог-файлов выяснится, что какой-то из скриптов незапланированно требует слишком много памяти, оптимизируйте его или удалите. А если обнаружится, что какой-то из скриптов вовсе не запускается, убедитесь, что функция прописана верно, поддерживается сервером и соответствует используемой версии PHP.
5. Отдельно обратите внимание на CGI-скрипты: вероятно, строки в них имеют не те окончания, что исправляется загрузкой скриптов через FTP в режиме ASCII. Также некорректная работа CGI-скриптов может быть причиной ошибок в HTTP-заголовках, что тоже приводит к ошибке 500. Либо же имеются ошибочные директивы, предназначенные для работы со скриптами.
502 Bad Gateway (Ошибочный шлюз)
Разбираться с этой ошибкой нужно лишь тогда, когда она появляется регулярно. А говорит она о перегруженности сервера или о неполадках в его работе, в связи с чем он посылает недопустимые для продолжения работы ответы.
1. Перезагрузите страницу. Зайдите на любой другой сайт, которой точно должен работать в данный момент. Это поможет узнать, есть ли у вас доступ к интернету в принципе. Если доступ есть, очистите файлы cookies в браузере, а затем посетите сайт снова.
2. Убедитесь, что на ваш сайт не совершается DDoS-атака. В противном случае обратитесь к хостинг-провайдеру.
3. Если на вашем ресурсе фиксируется значительный рост посещаемости, то подберите более продвинутые условия хостинга, чтобы ошибка не появлялась вновь.
4. Проверьте нагрузку на сервер. Если лимит превышается, необходимо увеличить объём оперативной памяти.
5. Посмотрите настройки сервера. Возможными поводами для появления ошибки 502 могут быть:
• неполадки после установки обновлений;
• превышение лимитов на число обращений к внешним ресурсам и на время ответа сервера;
• некорректные лимиты в файлах конфигурации ini;
• превышение лимита на число php-cgi-процессов;
• недостаточная оптимизация скриптов;
• недостаточная оптимизация запросов;
• неправильная работа модулей (если ошибка возникает при обращении к скриптам конкретного расширения).
6. Если ошибка продолжает появляться и если вы пользуетесь виртуальным хостингом, уточните у хостинг-провайдера, не создают ли другие сайты на сервере чрезмерную нагрузку.
503 Service Unavailable (Сервис недоступен)
Сервер не работает из-за перегрузок. Либо же происходит плановая перезагрузка или отключение сервера: в этом случае вместе с сообщением об ошибке после слов «Retry-After» должно отображаться время, когда сервер вернётся в работу. Если же ошибка 503 появляется часто и не по причине плановых работ, то это говорит о неполадках, которые следует устранить.
1. Сначала просто подождите. Возможно, причина в длинной очереди запросов к серверу, что не требует вмешательства.
2. Как и в случае с ошибкой 502, удостоверьтесь, что на сайт не производится DDoS-атака.
3. Если используется связь с удалённым сервером, убедитесь, что она стабильная, а тайм-аут ожидания ответа невысокий.
4. Проверьте, не слишком ли активно посещают ваш сайт поисковые роботы. Если это имеет место быть, ограничьте их активность.
5. Удалите тяжёлые или вовсе ненужные плагины и компоненты.
6. Если возможно, оптимизируйте подгрузку файлов сайта, чтобы снизить число запросов.
7. Организуйте передачу больших статичных файлов напрямую, а не через скрипты.
8. Оптимизируйте почтовую рассылку: распределяйте отправку писем по времени, запускайте рассылку в часы наименьшей нагрузки.
9. Оптимизируйте SQL-запросы, выявите самые медленные из них с помощью лог-файлов.
504 Gateway Timeout (Шлюз не отвечает)
Один из серверов не дождался ответа от вышестоящего сервера, о чём сообщает кодом 504.
1. Перезагрузите страницу, убедитесь в стабильности работы сетевых устройств.
2. Как и в предыдущих случаях, проверьте работу скриптов. Важно, чтобы они выполнялись не слишком долго, а внешние соединения происходили успешно.
3. При чрезмерной нагрузке на сервер увеличьте его ресурсы или оптимизируйте сайт.
4. Если возможно, увеличьте время ожидания при использовании nginx как прокси-сервера для Apache. Для этого добавьте эти строки в блоке server в файле nginx.conf:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
5. Если у вас нет возможности менять настройки сервера, обратитесь к хостинг-провайдеру.
Также посмотрите ответы на вопросы из нашего раздела FAQ:
- Отчего возникает ошибка 500?
- Отчего возникает ошибка 503?
- Как изменить страницы ошибок 403, 404 и 500?
Кстати, недавно мы в целом рассказали о кодах состояния сервера, к которым относятся в том числе и коды ошибок.
|
|||
maker1992
29.03.18 — 03:53 |
Здравствуйте. Настроен автоматический обмен между УТ и Розницей. При передачи документов из Розницы в УТ, УТ запускается в режиме COM-соединения. После обмена имеются предупреждения «Попытка передачи с клиента на сервер мутабельного значения» и документы с таким предупреждением не проводятся, хотя вручную их можно провести. Т. е. я так понимаю, проблема возникает из-за COM-соединения. Как быть в таком случае? |
||
h-sp
1 — 29.03.18 — 06:13 |
(0) ну что-то дорабатывали внутри УТ и криво доработали. Не учли COM-соединение |
||
maker1992
2 — 29.03.18 — 06:44 |
(1) Конфу не дорабатывал. В описании конфигураций сказано, что обмен должен работать в данных версиях Розницы и УТ. |
||
maker1992
3 — 29.03.18 — 06:51 |
(2) Ошибка вылезает из-за передачи в процедуру структуры, но в справке написано, возможен обмен с сервером. |
||
hhhh
4 — 29.03.18 — 07:07 |
(3) внутри структуры у вас мутабельное значение. ДокументОбъект скорее всего. |
||
maker1992
5 — 29.03.18 — 08:59 |
В свойствах модуля, где находится вызываемая процедура, поставил галку «Вызов сервера» — ошибка больше не возникает. |
||
maker1992
6 — 29.03.18 — 08:59 |
+(5) и еще галку «Внешнее соединение». |
||
MakaMaka
7 — 29.03.18 — 09:10 |
(5) (6) и как это связано? |
||
Flover
8 — 29.03.18 — 09:10 |
(0) на сколько помню через ком передача возможна примитивных типов: число, дата, строка, булево. все остальное формируется на другой стороне. если передавать объект, форму и т.п. — выползет как раз вот такая ошибка. |
||
MakaMaka
9 — 29.03.18 — 09:18 |
(8) Подтвержаю инфу. Через ком передается только примитивные типы данных. Так же пердается Неопределено. |
||
maker1992 10 — 29.03.18 — 09:50 |
(7) Ну COM-соединение — это же вроде внешнее соединение. |
|
TurboConf — расширение возможностей Конфигуратора 1С |
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Содержание:
1. Что собой представляет мутабельные значения в 1С?
2. Как проверить заполненные мутабельные значения в 1С?
При освоении языка программирования 1С с использованием методолических материалов со временем возникает вопрос, что же собой представляют мутабельные значения в 1С.
1. Что собой представляет мутабельные значения в 1С?
Для начала сделаем определение мутабельного типа в рамках языка программирования 1С и попытаемся понять, чем же он отличается от других типов.
Мутабельный тип (в переводе с английского Mutable – изменчивый) – это сложный тип данных в 1С, который может менять свои свойства уже после создания.
К мутабельным типам в языке программирования 1С относятся:
· объект;
· форма;
· список значений;
· таблица значений.
Исходя из этого все остальные типы являются не мутабельными. К таким типам значений следует относить простые или так называемые примитивные типы, сложные, но неизменчивые типы и предопределенные типы.
Простые (примитивные) типы:
· строка;
· число;
· дата;
· булево.
Ссылка является сложным типом, который, однако, мы не можем изменить непосредственно. Для этого требуется получение объекта через конструкцию Ссылка.ПолучитьОбъект().
Предопределенным типом является цвет.
С описанием типов разобрались. Следующий вопрос, который, думаю, заинтересует многих – как же проверить заполненность мутабельных значений в 1С.
2. Как проверить заполненные мутабельные значения в 1С?
При переходе со старой версии платформы 1С:Предприятие (до 8.2) на актуальную нередко в момент тестирования или эксплуатации возникают ошибки проверки мутабельного значения на заполненность. Это связано с особенностью глобальной функции ЗначениеЗаполнено(). Ранее использовалась гл. функция НеЗаполнено(), которая проверяла, хоть и медленнее, но более эффективно. То есть в новых версиях платформы 1С Предприятие подобная проблема может возникнуть в тот момент, когда проверяем значение, не зная его типа.
Зачастую ошибки подобного толка касаются таких типов как формы и элементы форм, списки значений (таблица, список, дерево), COM- объекты и т.д.
Для решения данной проблемы целесообразно проверять тип данных перед проверкой его заполненности, если заранее мы его не знаем. Зачастую это происходит при написании обменов данными.
Для проверки типа данных 1С мы можем использовать конструкцию типа:
В данном случае 1С проанализирует первое условие, и если типы совпадут, дальнейшее условие отработано не будет.
В некоторых случаях целесообразно сделать проверку на примитивные типы, для этого заранее создадим массив примитивных типов:
Далее последует проверка:
Специалист компании ООО «Кодерлайн»
Кулажевский Сергей Дмитриевич
Описание ошибки
При попытке сформировать результат отчета при работе с СКД в консоли разработчика, когда активна строка с пользовательскими настройками, возникает ошибка следующего содержания:
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода XMLТекст ().
{InfostartToolkit Обработка.ИТК_КонсольРазработчика.Форма.Основная.Форма(5126)}: ИТК_КонсольРазработчикаДанныеКлиент.ИзменитьПоле(ЭтотОбъект, Строка, «Текст», ИТК_СКДВызовСервера.XMLТекст(КомпоновщикНастроек.ПользовательскиеНастройки));
{InfostartToolkit Обработка.ИТК_КонсольРазработчика.Форма.Основная.Форма(513)}: СохранитьИзмененныеДанныеСтроки();
{InfostartToolkit Обработка.ИТК_КонсольРазработчика.Форма.Основная.Форма(2376)}: ЗагрузитьДанныеВКомпоновщикНастроек(ПолныеДанныеСКД(ТекущаяСтрока));
{InfostartToolkit Обработка.ИТК_КонсольРазработчика.Форма.Основная.Форма(563)}: ОбновитьЭлементыФормы();по причине:
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода XMLТекст ().
Сценарий воспроизведения
Шаги по воспроизведению:
- Открыть консоль разработчика.
- Добавить в дерево данных «Схему компоновки данных».
- Добавить в подчинение новой СКД «Пользовательскую настройку СКД».
- Выделив строку пользовательских настроек в дереве данных нажать в главном меню кнопку «Выполнить».
- Появится окно с сообщение об ошибке, текст которого приведен выше.
Окружение:
Infostart Toolkit 1.6.3
Платформа: 8.3.16.1876 (Linux x86-64)
Режим БД: клиент-серверный
Конфигурация:
1С:ERP. Управление холдингом (3.0.4.4)
Основной режим запуска: Управляемое приложение
Режим совместимости: Версия8_3_14
Версия БСП: 3.1.3.264
Клиент:
ОС: Windows x86-64 (Microsoft Windows 10 version 10.0 (Build 17763))
Язык: ru
Режим запуска: Управляемое приложение
При загрузке выдает сообщение «Попытка передачи мутабельного значения 1-го параметра метода СерверОбновитьПользователей». Клиент-серверный вариант. скорее всего из-за строчки «МассивПользователейОнЛайн = ПолучитьСоединенияИнформационнойБазы;» Строчка выполняется в привеллигрованном модуле. В файлом варианте работает. (Есстесно) Как лечить? Хочется, что бы функция определения подключенных пользователей работала и в серверном и файловом варианте..
я не уверен что именно здесь…. но наверно..
#Если клиент тогда #КонецЕсли
Да.. имеенно здесь ошибка… Но теперь другого рода: «Попытка вызова функции , возвращающей мутабельной значение». Что такое мутабельное значение??
имеено так и сделал: #Если Клиент Тогда АктивныеПользователи = ПолучитьАктивныхПользователейКлиент; #ИначеЕсли Сервер Тогда это в общем модуле 1, (стоят галки — кдиент, сервер, внешнее соединение) Функции ПолучитьАктивныхПользователейКлиент, ПолучитьАктивныхПользователейСервер в другом модуле (галки — сервер, привелигированный).
изменяемое значение — нельзя на сервере
+ например, такое значение нельзя написать при объявлении функции как значение по умолчанию, типа
В общем: у тебя в функции на сервер передаётся объект, который на сервере не может быть инициализирован.
Хм… мне впринципе в привелигированном модуле надо выполнить только
возьми функцию в {#Если Клиент}
+ ПолучитьСоединенияИнформационнойБазы;, а все остальное запихнуть в обычный??
какую??????????? ПолучитьАктивныхПользователейКлиент ?? она выполняется в модуле у которого только «Сервер». Он разве будет выполнять на клиенте??
вычислить в общем то не сложно где ошибка.. достаточно после каждого действия что нить воткнуть и при вылете посмотреть ..
+ какая хрен разница где ты список пользователей получишь
большая! если не давать пользователям админские права, то выполнить эту функцию они могут только в привилигированном модуле.
Все равно ошибка… вывод- НЕ РАБОТАЕТ ИЗНАЧАЛЬНО!=((
На какой строке ошибка случается, можешь по-человечески указать? И описание параметров функции, при вызове которой ругается.
Млин.. что тут не понятного… она одна…. Вопрос возник следующий — как можно определить в каком варианте запущена баз в «файловом» или «клиент-серверном»?
Объект «Массив» допускает обмен с сервером, так что попробуй:
+ Должно работать и на сервере, и на клиенте…
Не работает в привилигированном модуле при работе в варианте клиент-сервер. Это факт! Сделал вот так: ……В том же модуле: Функция ПолучитьАктивныхПользователейКлиентСервер
И где в указанной строке то, на что указывает ошибка? «Попытка передачи мутабельного значения 1-го параметра метода СерверОбновитьПользователей», а конкретнее: 1. где первый параметр? 2. где метод СерверОбновитьПользователей?
1) ну как видишь, функция без параметров. 2) см и . В жаловалась на функцию «ПолучитьАктивныхПользователейКлиент». (СерверОбновитьПользователей — это название старой функции в модуле.. уже не восстановлю)..
М-да?!?! Почему тогда вот это работает на клиент/сервере у меня в модуле приложения в процедуре «ПередНачаломРаботыСистемы»:
у тя у всех пользователей стоят права «Административные функции» и «Активные пользователи»?? У меня, тока у меня.
добавил пользователям право «Активные пользователи». и сделал как в .
Тэги:
Комментарии доступны только авторизированным пользователям
Ошибка передачи параметра на сервер. Помогите! |
Я |
15.04.09 — 15:08
{ОбщийМодуль.УправлениеЗапасамиПартионныйУчет(1249)}: Ошибка при вызове метода контекста (ВыполнитьКорДвижение): Попытка передачи с клиента на сервер мутабельного значения 3-го параметра метода ВыполнитьКорДвижение ().
КорректировкаСтоимости.ВыполнитьКорДвижение(РегистрУчета, СтрокаДокумента, СтруктураПараметров, Движение);
1 — 15.04.09 — 15:09
баян
2 — 15.04.09 — 15:10
(1) только ненужно этих комментариев, не знаешь не отвечай
3 — 15.04.09 — 15:11
(2) Немного неверно, надо «Знаешь — отвечай!»
4 — 15.04.09 — 15:11
(3)
5 — 15.04.09 — 15:12
я унесу в могилу эту тайну…
и гугль взорву чтобы убрать свидетелей
6 — 15.04.09 — 15:13
(5) взорви се мозг, хотя … он наверное уже взорван
7 — 15.04.09 — 15:13
В свойствах общего модуля стоить флажок «Клиент», убери
8 — 15.04.09 — 15:17
(7) чет не помогло
9 — 15.04.09 — 15:19
(8) Я обычно так решал такие проблемы
10 — 15.04.09 — 15:20
(7) мощно.
11 — 15.04.09 — 15:22
(10) флажок «Сервер» убрать еще мощнее.
12 — 15.04.09 — 15:23
(11) ваще всё снять. Кроме внешнего соединения…
«Не доставайся ж ты никому»!
13 — 15.04.09 — 15:24
а потом на кленте они будут использоваться????
14 — 15.04.09 — 15:25
Общаясь с дураком, не оберешься срама,
Поэтому совет ты выслушай Хайяма:
Яд, мудрецом тебе предложенный, прими,
Из рук же дурака не принимай бальзама.
15 — 15.04.09 — 15:28
у общего модуля поставь и «Клиент» и «Сервер»
16 — 15.04.09 — 15:44
Может всё же подумать… И посмотреть в отладчике, что там в третьем параметре лежит?
17 — 15.04.09 — 15:56
(16)+ и вспомнить, что у типов данных есть фишка: «возможен обмен с сервером»
18 — 15.04.09 — 15:59
(14) Уже пьешь?
19 — 15.04.09 — 16:16
(18) Да как тут не выпить… обновился блин… теперь париться нужно
(16) счас структуру с 3-го параметра сброшу
20 — 15.04.09 — 16:19
(19) Не разбей тока.
21 — 15.04.09 — 16:21
(20) да ты остряк… красава
22 — 15.04.09 — 16:21
(19) Да не, я шучу. Ты реально крут для своих 86-ти.
Не каждый 86-ой может обновиться сам. Но каждый 86-ой не умеет ходить в поиск и юзать СП.
Это аксиома.
23 — 15.04.09 — 16:23
+(22) но бывают и исключения из аксиомы =)
(0) типовое или самописное?
24 — 15.04.09 — 16:24
(22) Черт его знает что за 86, ну да ладно… юзал я поиск гугль говорит что значение мутабельного типа это объектное значение, которое на прямую серверу не передаеться, токо это пипец какая полезная информация
25 — 15.04.09 — 16:24
(23) типовое
26 — 15.04.09 — 16:26
(24) Ты уже забыл год своего рождения?
Загляни в пасспорт.
27 — 15.04.09 — 16:28
(24) Не, надо для вот таких статью в КЗ накропать.
По мотивам подсчетов и наблюдений.
Надо у Mikeware проконсультироваться, он тоже счет ведет.
Ты не обижайся, я обычно помогаю, только не таким агрессивным.
28 — 15.04.09 — 16:28
(25) есть 2 пути — ждать заплатку или таскать функции между модулями, расставлять директивы препроцессору, снимать/ставить флажки, но сделать так, чтоб с клиента на сервер мутабельные значения не передавать не передавать… (можно еще в файловый вариант перейти =) )
29 — 15.04.09 — 16:29
(24) Передается то, что нельзя передавать.
Варианты(пока 2 вижу):
1. Не то, что надо передается.
2. Передается управление, а передаваться не должно.
30 — 15.04.09 — 16:34
(29) Самое распространенное — передается объект вместо ссылки на него.
31 — 15.04.09 — 16:35
(30) И пожалуй единственное.
<<вместо ссылки>>
или
вместо содержащихся данных
32 — 15.04.09 — 16:38
Это типы 3-го параметра:
Структура
Булево
Булево
РегистрНакопленияНаборЗаписей.БракВПроизводстве
РегистрНакопленияНаборЗаписей.Затраты
РегистрНакопленияНаборЗаписей.НезавершенноеПроизводство
РегистрНакопленияНаборЗаписей.ПартииМалоценкиВЭксплуатации
РегистрНакопленияНаборЗаписей.ПартииТоваровНаСкладах
РегистрНакопленияНаборЗаписей.ПартииТоваровПереданные
РегистрНакопленияНаборЗаписей.ПродажиСебестоимость
РегистрНакопленияНаборЗаписей.РеализованныеТовары
РегистрНакопленияНаборЗаписей.СтоимостьОС
РегистрНакопленияНаборЗаписей.СтроительствоОбъектовОсновныхСредств
РегистрНакопленияНаборЗаписей.ТоварыВНТТВПродажныхЦенах
ДеревоЗначений
Булево
Булево
Булево
Булево
Булево
Булево
Булево
Булево
Булево
Булево
Булево
Булево
Булево
Булево
Булево
ПеречислениеМенеджер.КодыОперацийПартииТоваров
Число
Булево
Структура
ТаблицаЗначений
Дата
ДокументСсылка.КомплектацияНоменклатуры
Булево
Строка
ПеречислениеСсылка.СтретегииСписанияПартийТоваровПоСтатусам
ТаблицаЗначений
ТаблицаЗначений
ТаблицаЗначений
ТаблицаЗначений
ТаблицаЗначений
ТаблицаЗначений
ТаблицаЗначений
ТаблицаЗначений
ТаблицаЗначений
ТаблицаЗначений
ТаблицаЗначений
Число
Число
Число
Число
Число
Число
Число
Число
Число
Число
Число
Строка
Тип
ТаблицаЗначений
33 — 15.04.09 — 16:39
(31) Список значений вроде тоже нельзя передавать.
34 — 15.04.09 — 16:42
+(33) да и набор записей нельзя
35 — 15.04.09 — 16:43
вообще ничего нельзя.
36 — 15.04.09 — 16:44
Я вот понять не могу я обновлял базу, в файловой, тестил, исправлял баги и т.д., а когда залил на сервер вот такая хрень получилась… я то все понимаю идеального ничего не существует но как самый крупный франч в стране допустил такой ляпсус в результате которого ни один документ не может списать товары со склада????
37 — 15.04.09 — 16:44
(34) Набор записей — явно нельзя
(32) Че-то очень жестко накосячили… Наборы записей нельзя на сервер передавать.
(35) Таблицу значений можно…
38 — 15.04.09 — 16:44
(36) Франч видимо на файловой разрабатывал тоже :))
39 — 15.04.09 — 16:45
(38)
40 — 15.04.09 — 16:47
(26) ты не поверишь, но в файловом варианте нет сервера, и поэтому нет и проблем с передачей на него чего либо =)
41 — 15.04.09 — 16:47
(35) ты какой-то озабоченный или убогий
42 — 15.04.09 — 16:47
(40) к (36)
44 — 15.04.09 — 16:48
во всем виноват франч, а не некомпетентный автор…
45 — 15.04.09 — 16:49
Модуль Привилегированный?
46 — 15.04.09 — 16:49
(44) на самом деле исправить ошибку можно, любую, только времени жалко, я просто думал на форуме помогут
47 — 15.04.09 — 16:50
(43) (44) всяко попродвинутее =)
48 — 15.04.09 — 16:50
(45) нет
49 — 15.04.09 — 16:51
(47) ну так реши проблему умник
50 — 15.04.09 — 16:52
(48)
а выставление галок Клиент, Сервер и Внешнее соединение не помогает?
Модератор
51 — 15.04.09 — 16:52
(43) ALexALed, тебе предупреждение. см. правила.
52 — 15.04.09 — 16:53
(50) бугага…
вы нашли друг друга…
53 — 15.04.09 — 16:53
(50) неа
54 — 15.04.09 — 16:53
(52) дружище свали с ветки
55 — 15.04.09 — 16:54
(49) Я решил! Там объект передаётся на сервер!
56 — 15.04.09 — 16:54
(46) Эта проблема дистанционно за 5 минут — не решается. Налицо просчет при написании конфы. А (50) советую почитать что-нибудь про компиляцию модулей в восьмерке.
57 — 15.04.09 — 16:55
(53) посмотри отладчиком. Наверно управление переходит в модуль, где есть только галка «Сервер»
58 — 15.04.09 — 16:55
+(56) Можно оставить только галку «клиент» в модуле, но абсолютно не факт, что это поможет — ошибка в другом месте может вылезти.
59 — 15.04.09 — 16:55
(55) не не не, там не объект передается, а набор записей регистра и список значений, но автор как то пропустил это, видимо
Модератор
60 — 15.04.09 — 16:55
Блин, вот не знал про передачу НабораЗаписей.
Ну в принципе логично.
Правда вот ни разу не передавал НаборЗаписей в качестве параметра процедуры.
Как — то оно не того.
61 — 15.04.09 — 16:57
(58)+
Вообще-то там(0) — 2 модуля.
Если галки и выставлять, то у обоих.
Криво, но по-быстрому…
62 — 15.04.09 — 16:57
(59) Ненене, список значений там как раз не передается (33) был ответ на (31)
63 — 15.04.09 — 16:58
Можно попробовать перехитрить модуль — передавать выгруженные ТЗ.
Итераторы для них есть.
Потом на ошибке споткнуться и глянуть, если что.
64 — 15.04.09 — 16:58
(61) Возникает вопрос — а на хрена сервер, если мы документы на клиенте проводим?
65 — 15.04.09 — 16:59
Возникает вопрос — где автор.
66 — 15.04.09 — 16:59
Автор на месте
67 — 15.04.09 — 17:00
(65) а ты его не забанил разве?
там еще на движениях споткнется видимо, их вроде тоже нельзя на сервер передавать
68 — 15.04.09 — 17:03
(67) Еще не известно, что у него во вложенных ТЗ.
69 — 15.04.09 — 17:03
(61) Галка Серверный в обоих модулях помогла, спасибо за помощь!!
70 — 15.04.09 — 17:04
(68) Ага, я тоже об этом подумал.
71 — 15.04.09 — 17:04
(69) «Спасибо» тебе пользователи скажут благодарные.
72 — 15.04.09 — 17:04
(69) От такот. А потом будем думать, почему при вашем охрененном сервере документы по полчаса проводятся…
73 — 15.04.09 — 17:05
+(72) Или всё же ты галку ПОСТАВИЛ, а не СНЯЛ?
74 — 15.04.09 — 17:05
(69) или франч снял случайно или жди новых ошибок… этот модуль может тоже частенько вызывается в клиента… чо хоть за конфа?
75 — 15.04.09 — 17:05
(71) уж они то скажут…
(69) с этого места поподробнее???
76 — 15.04.09 — 17:05
(69) — (72)
77 — 15.04.09 — 17:06
(74) Управление торговым предприятием для Украины 1.1.1.9
78 — 15.04.09 — 17:08
(73) поставил, лучше больше чем меньше :))))))))))))))))
79 — 15.04.09 — 17:09
(78) Тогда (74)
ALexALed
80 — 15.04.09 — 17:11
(74) есть ошибочка уже в этом модуле, черт бы побрал этого франча
Раздражает, когда какой-то сайт не загружается и отзывается непонятными ошибками. Обычно они сопровождаются одним из десятков HTTP-кодов, которые как раз намекают на характер сбоя, а также его вероятные причины.
В этом материале поговорим об ошибке 400 Bad Request. Почему она появляется и как ее исправить.
Чуть подробнее об ошибке 400
Как и другие коды, начинающиеся на четверку, 400 Bad Request говорит о том, что возникла проблема на стороне пользователя. Зачастую сервер отправляет ее, когда появившаяся неисправность не подходит больше ни под одну категорию ошибок.
Стоит запомнить — код 400 напрямую связан с клиентом (браузером, к примеру) и намекает на то, что отправленный запрос со стороны пользователя приводит к сбою еще до того, как его обработает сервер (вернее, так считает сам сервер).
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Из-за чего всплывает Bad Request?
Есть 4 повода для возникновения ошибки сервера 400 Bad Request при попытке зайти на сайт:
- Некорректно настроенные HTTP-заголовки в запросе со стороны клиента. Некоторые приложения и сайты мониторят заголовки на предмет наличия в них чего-нибудь подозрительного. Если ваш запрос не соответствует ожиданиям сервера, то высока вероятность появления ошибки 400 (но это не всегда вина пользователя).
- Такой же сбой появляется, если клиент пытается загрузить на сервер файл слишком большого размера. Это происходит, потому что на большинстве сайтов есть ограничения по размеру загружаемых данных. Причем ограничение может быть как в 2 гигабайта, так и в 600 килобайт.
- Еще ошибка 400 появляется, когда пользователь пытается получить доступ к несуществующей странице. То есть в браузер банально ввели ссылку с опечаткой, некорректным доменом или поддоменом.
- Устаревшие или измененные куки-файлы. Сервер может воспринять подмену куки-файлов как попытку атаковать или воспользоваться дырой в безопасности. Поэтому такие запросы сходу блокируются.
Читайте также
Исправляем ошибку 400 Bad Request на стороне клиента
Так как ошибка 400 в 99 случаев из 100 возникает на стороне клиента, начнем с соответствующих методов. Проверим все элементы, участвующие в передаче запроса со стороны клиента (браузера).
Проверяем адрес сайта
Банальщина, но необходимая банальщина. Перед тем как бежать куда-то жаловаться и предпринимать более серьезные шаги, повнимательнее взгляните на ссылку в адресной строке. Может, где-то затесалась опечатка или вы случайно написали большую букву вместо маленькой. Некоторые части адреса чувствительны к регистру.
А еще стоит поискать запрашиваемую страницу через поисковик, встроенный в сайт. Есть вероятность, что конкретная страница куда-то переехала, но сервер не может показать подходящий HTTP-код в духе 404 Not Found. Если, конечно, сам сайт работает.
Сбрасываем параметры браузера
Этот метод срабатывает, если сервер отказывается принимать запросы из-за «битых» куки или других данных. Дело в том, что сайт использует куки-файлы, чтобы хранить информацию о пользователе у него же в браузере. При входе конкретного человека на ресурс, он пытается распознать куки и сравнить информацию с той, что уже есть на сервере.
Иногда случается, что куки-файлы одного или нескольких пользователей вступают в конфликт. В таком случае надо открыть настройки браузера, а потом удалить весь кэш, куки и прочие связанные элементы.
В зависимости от браузера процесс удаления куки-файлов может немного отличаться. В Chrome это работает так:
- Открываем настройки браузера.
- Переходим в раздел «Конфиденциальность и безопасность».
- Выбираем «Файлы cookie и другие данные».
- Нажимаем на кнопку «Удалить все».
Для чистки cookies можно использовать стороннюю программу в духе CCleaner или CleanMyPC.
Загружаем файл подходящего размера
Если ошибка 400 Bad Request появляется при попытке загрузить на сайт какой-нибудь файл, то стоит попробовать загрузить файл поменьше. Иногда вебмастера ленятся грамотно настроить ресурс, и вместо понятного объяснения вроде «Загружаемые файлы не должны быть размером больше 2 мегабайт» люди получают Bad Request. Остается только гадать, какой там у них лимит.
Устраняем проблемы, связанные с Windows и сторонним софтом
Помимо браузера, на работу сети могут влиять другие программные продукты (экраны, защищающие от «непонятных подключений»). И вирусы. Да и сама Windows может стать проблемой. Почти любой ее компонент. Поэтому надо бы проделать следующее:
- Повторно установить NET.Framework. Желательно перед этим удалить предыдущую версию.
- Установить какой-нибудь приличный антивирус (а лучше два) и запустить глубокую проверку систему. Возможно, подключению и входу на ресурс мешает вредоносная программа.
- Если у вас уже установлен антивирус, то, наоборот, попробуйте его отключить. Иногда встроенные в них экраны проверки подключений блокируют работу браузера целиком или отдельных страниц. Лучше выдать браузеру больше прав на выполнение своих задач или установить антивирус, который более лояльно относится к установленному на компьютере софту.
- Еще надо поменять параметры брандмауэра. Его можно разыскать в панели управления Windows. Там надо добавить в список исключений ваш браузер. Тогда брандмауэр не будет мешать подключению к запрашиваемому сайту.
- Почистить Windows от программного мусора. Можно пройтись приложением CCleaner.
- Обновить драйверы для сетевых устройств.
- Обновить Windows или просканировать систему на наличие погрешностей в системных компонентах.
Ищем проблему на стороне сервера
Если что-то происходит на стороне ресурса, то это редко заканчивается ошибкой 400. Но все-таки есть несколько сценариев, при которых клиента обвиняют в сбое зря, а настоящая вина лежит на сервере.
Проверяем требования к HTTP-заголовкам
Пока настраиваешь сайт, несложно допустить ошибку или даже парочку. Возможно, требования к HTTP-заголовком указаны некорректно, и сервер ожидает запросы с ошибками, которые по объективным причинам не может распознать адекватно. Тогда администратору стоит перепроверить ожидаемые заголовки на своем сайте или в приложении.
Удаляем свежие обновления и плагины
Иногда ошибка 400 Bad Request появляется после обновления CMS или установки новых плагинов. Если у вас она появилась из-за этого, то наиболее логичное решение — откатиться до более ранней версии CMS и удалить все новые плагины.
Главное, перед этим сделать резервную копию данных. И перед установкой обновлений тоже стоило бы.
Проверяем состояние базы данных
Некоторые сторонние расширения для того же WordPress получают полный доступ к ресурсу и имеют право вносить изменения даже в подключенную базу данных. Если после удаления свежих плагинов ошибка 400 никуда не исчезла и появляется у всех, кто пытается зайти на сайт, стоит проверить, в каком состоянии находится база данных. Нужно вручную проверить все записи на наличие подозрительных изменений, которые могли быть сделаны установленными расширениями.
Исправляем ошибки в коде и скриптах
Ничего из вышеперечисленного не помогло? Тогда осталось проверить свой код и работающие скрипты. Лучше провести дебаггинг вручную и не надеяться на помощь компьютера. Сделать копию приложения или сайта, потом пошагово проверить каждый отрезок кода в поисках ошибок.
В крайнем случае придется кричать «полундра» и звать на помощь техподдержку хостинга. Возможно, возникли сложности на их стороне. Тогда вообще ничего не надо будет делать. Просто ждать, пока все исправят за вас.
На этом все. Основные причины появления 400 Bad Request разобрали. Как ее лечить — тоже. Теперь дело за вами. Пользуйтесь полученной информацией, чтобы больше не пришлось мучиться в попытках зайти на нужный ресурс.
1) При работе в файловой базе все находится в памяти вашего компьютера — тут нет никаких проблем. Но когда дело касается взаимодействия вашего компьютера-клиента с компьютером-сервером, то сервер уже не имеет доступа к вашей оперативке — передаваемая в обработку информация пакуются в контейнеры и отправляются по сети. Пока все понятно?
2) При программировании на платформе 1С при работе с базой данных мы работаем или с Ссылками, или с полученными с их помощью Объектами. Ссылка отличается от Объекта своей неизменностью — это просто адрес с указанием типа данных и уникального идентификатора. Но Объект в отличии от Ссылки можно изменить и записать назад в базу по адресу этой Ссылки. Думаю это тоже понятно.
3) Что вы пытаетесь сделать? У вас локально в памяти есть измененный Объект (в переменной Источник) и вы хотите передать его на сервер для дальнейшей параллельной обработки и тут и там. К сожалению мы работаем не на квантовых компьютерах и потому эффект запутанности нам недоступен. Мы можем править Объект или локально, или на сервере. Но не одновременно в двух местах!
Итого. Судя по тексту вашей процедуры, вам вообще Источник передавать не нужно — передавайте сразу ДокументОснования. Но если предполагается, что на сервере Объект нужно изменить, то а) запишите его локально, б) передайте на него Ссылку, в) на сервере прочитайте по Cсылке, г) после изменения на сервере запишите Объект в базу, д) после возвращения потока управления на клиент, прочитайте Объект из базы по Ссылке.