1с ошибка доступа к сокету методом запрещенным правами доступа
Полный текст ошибки:
Ошибка в ограничении доступа к данным. Объект: «РегистрСведений.СчетаУчетаДенежныхСредств», поле «СчетУчетаНУ», Право «Чтение»
Скриншот ошибки:
Ошибка в ограничении доступа к данным
Возникла у пользователей «Бухгалтерии предприятия» в момент копирования документа «Платежное поручение (исходящее)»
Ошибка редкая. То, что можно сказать однозначно:
- речь идет о механизме «ограничения прав доступа к данным на уровне записей»
- он включается в настройках конфигурации (он включен)
- это не полные права — для них ограничения на типовых конфигурациях не включают и под ними все работает
- идет речь о праве на чтение
- скорее всего ошибка в синтаксисе ограничения
Решений может быть несколько:
Для первого «правильного» варианта:
необходимо в свойствах пользователя базы данных определить его роли, затем найти объект метаданных (в данном случае регистр сведений) и просмотреть для всех ролей наложенные ограничения
В данном случае я просто удалил ограничение в ролях, т.к. не используется несколько организаций, конструктор запроса в ограничении не выдавал ошибки, в некоторых, вообще не открывался, а решение проблемы затянулось (несколько динамических безрезультатных обновлений), которые я вообще стараюсь не использовать.
Открываете объект метаданных, вкладка «Права», перебираете «Роли»(ограничение может быть в любой из них), внизу смотрите: есть ли ограничение
Реклама — двигатель всеобщей дебилизации населения.
— Стас Янковский
Настройка прав доступа - одна из самых распространенных задач для разработчиков 1С. Это не значит, что подобные задачи всегда ставятся явно. Большая часть из них связаны с текущей разработкой, ведь новый функционал требует ограничений на использование среди пользователей. Но есть и исключения, когда поступает заказ / задача по ограничению доступа к некоторым данным или функциям в информационной базе.
Очень часто можно столкнуться с ситуацией, когда после "горячего" внедрения новой системы у большого количества пользователей имеются полные права. То есть пользователей с возможностями администратора информационной базы слишком много. Как результат - множество ошибок в данных, коллизии в настройках учета, странное поведение системы и непредсказуемые результаты отчетов. Великолепно, не правда ли?
Есть и другие истории, когда с правами все в порядке. Есть толковый администратор, который следит за корректностью их настройки. И все работает какое-то время, пока в дело не вступают разработчики (штатные или с аутсорсинга, не важно!). Множество задач, множество требований, множество ошибок с правами. Такова печальная картина.
Конечно, я дал немного пессимистичную оценку, чтобы подготовить Вас к незабываемому путешествию по типичным ошибкам разработки прав доступа. Мы пройдемся по самым частым проблемам, с которыми приходилось сталкиваться. Это не полный список, поэтому Ваши истории также приветствуются в комментариях.
Обычный процесс разработки
Прежде чем перейти непосредственно к ошибкам, давайте вспомним обычный процесс разработки прав доступа. Все основные настройки доступа выполняются с помощью ролей. Роли - объекты конфигурации, занимающие центральное место в построении модели этих самых прав. Именно с их помощью разработчик может настроить доступ к объектам конфигурации. Они же применяются для более гибкой настройки с помощью разграничений на уровне записей (RLS).
Именно с помощью ролей можно добиться приемлемого результата в части разграничений доступа, но не всегда. Если стандартных возможностей этого объекта недостаточно, то в дело вступают различные дополнительные функции, которые добавляют сами разработчики: регистры дополнительных прав, различные запреты с помощью подписок на события и многое, многое другое.
Поскольку мы говорим о самых частых ошибках, то упор будет делаться именно на роли, т.к. именно они являются самым универсальным и простым решениям для большинства задач по правам.
Внезапные проблемы
Итак, поехали! Какие же ошибки могут быть с правами доступа при разработке?
Просто новый объект
Представьте, что к Вам поступил заказ от клиента: создать новый документ в системе для внесения некоторого пакета документов. Другими словами, нужно добавить документ, который хранит ссылки на другие документы и т.д. Задача ясна. День разработки, после демонстрация клиенту (проверял сам директор!) и можно выкладывать в рабочую систему. Перед обновлением сделаны рассылки, что новый функционал заработает с такого-то числа. Наступает день "икс", Вы вечером обновляете базу и с чувством выполненного долга уходите на сон.
Но утром Вас ждет сюрприз! Никто, кроме директора и системного администратора (да, да! он там главный по 1С) не могут получить доступ к новому документу. В интерфейсе его просто нет!
Догадались в чем дело? Ну, конечно! Новый документ добавлен, функционал отлично разработан, но права на него никто не предоставил.
Следовать лозунгу: "Добавил объект - проверь права!".
А еще лучше - написать Unit-тест, который будет проверять объекты без прав доступа. Посмотрите в сторону
Давать права с разумным подходом.
В типовых конфигурациях давно есть разграничения по профилям доступа, группам доступа. С их помощью можно настраивать права быстро и эффективно.
При добавлении новых объектов не стоит делать ставку на роль "Полные права". Нужно либо добавлять новый объект в существующие роли, либо добавлять новые роли. Все же очевидно.
Скроем подсистему
Пришла срочная задача - нужно части пользователей скрыть подсистему "Супер подсистема увеличения продаж".
Проблема в том, что конфигурация наполнена legacy-кодом, а роли конфигурации не имеют четких ограничений между подсистемами. Все связано как какое-то спагетти. А сделать надо еще вчера (ну, Вы понимаете)!
Выпив 3 кружки кофе, решение приходит само. Нужно лишь скрыть всем ролям доступ к этой подсистеме. Именно подсистеме как объекту конфигурации, а все входящие в ее состав объекты вообще не трогать. Только не забыть дать доступ к этой подсистеме для нужной роли (ее даже можно создать отдельно ради такого случая). Гениально!
Есть еще другой путь - доступ на подсистему не менять, а изменить видимость по умолчанию в настройках.
Это будет работать. У вас даже могут принять работу, и Вы разойдетесь с заказчиком рукопожатием. НО! Вы сделаете не разграничение прав доступа, а лишь измените видимость элементов интерфейса. Да, в первом случае доступа к объекту подсистемы не будет, но к объектам из его состава - пожалуйста! Например, в подсистеме был документ "СекрентныйДокумент". Вы идете вот сюда, нажимаете "Перейти по навигационной ссылке" и вводите примерно такую строку.
Имя документа должно быть таким же как в конфигураторе, тогда все сработает. Все! Список документов, доступ к которым нам ограничили, мы открыли. А дальше работаем как нам нужно.
Вариант с настройкой видимости подсистемы еще проще: заходим в настройки интерфейса и включаем видимость для нужной подсистемы.
Как оказалось, права доступа мы и не настроили.
Для того, чтобы не столкнуться с такой ситуацией достаточно запомнить, что настройки видимости подсистем и настройки видимости на объекты подсистемы - это не права доступа. Это лишь ограничения / настройки интерфейса. А ограничивать доступ к данным с помощью интерфейса - это последнее дело при разработке.
Реквизит больше недоступен
Иногда можно столкнуться с задачей - запретить некоторым пользователям просматривать / изменять определенный реквизит у объекта. В ролях можно настраивать "доступ" к отдельным реквизитам.
"Это так круто!", можно услышать от некоторых разработчиков. Действительно, поставил нужные чек боксы и вперед - задача решена!
Вот только есть один нюанс - к правам доступа эти возможности не имеют никакого отношения. Как и в прошлом примере, все это интерфейсные настройки. Например, если ограничить доступ к реквизиту с помощью роли, то прочитать его все равно будет можно с помощью обычных запросов.
А если данные таким способом можно прочитать, то о каком разграничении доступа может идти речь.
Не используйте эти настройки для решения задач с правами доступа. Это интерфейсные функции.
Для разграничения доступа на изменение реквизитов Вы можете использовать проверки заполнения, события объектов (перед записью, при записи, обработка проведения и др.), в которых реализуете проверки программно. Запретить же просмотр отдельных реквизитов объекта эффективно практически невозможно. Только если дорабатывать все возможные формы, отчеты и другие места конфигурации, добавляя проверки на доступ к нему. Но вот сопровождать такое я бы не взялся.
Есть другой эффективный способ - вынести реквизит в отдельную таблицу и настраивать доступ на нее. Но это уже совсем другая история.
Видимость команд
Выше мы настраивали видимость подсистем. Как уже было сказано, решать так задачи с правами смысла нет, т.к. права на самом деле и не изменяются. По такому же принципу часто поступают не с подсистемами целиком, а с отдельными командами или объектами.
Как и в прошлый раз, по умолчанию пользователь не будет видеть команды в интерфейсе. Но что ему мешает сделать так.
Фиаско? Еще какое!
Повторюсь: настройка видимости и настройка прав доступа - совершенно разные вещи. Никогда не пытайтесь решить вопросы прав доступа с помощью настроек интерфейса.
Новая роль
Выстроенная ролевая модель, четкое разграничение прав доступа. грамотно настроенный RLS! Ваша система эталон работы с правами. И оно понятно, ведь информация в ней чувствительная, ведь это отдел казначейских операций. Сотрудники одного отдела не должны видеть операции соседних подразделений и наоборот. В общем, безопасность на высшем уровне!
Но вот однажды, выпуская новую задачу в рабочую базу, что-то пошло не так! После обновления ВСЕ пользователи стали видеть все заявки, хотя изменения в существующие правила RLS никто не вносил. Что же произошло?
Как Вы догадались - была добавлена новая роль. Нет нет, роль имеет настройки доступа только для тех объектов, для которых действительно нужно. В том числе и для объектов с той самой чувствительной информацией. Вот только есть одна проблема: при добавлении новой роли никто в ней не описал правила RLS, в итоге он перестал работать для всех кому эту роль добавили (в нашем примере ее, допустим, добавили большинству сотрудников).
Как известно, пользователь получает максимальный доступ, который ему предоставляют роли. В нашем случае роль без RLS дает больше прав, чем остальные. Вот платформа их и применяет.
Как же такое вообще можно предотвратить?
Вообще, если в системе есть RLS, то это дополнительная ответственность для разработчиков:
- Нужно корректно писать запросы
- Необходимо учитывать это в отчетах
- При добавлении ролей нужно добавлять правила RLS (это как раз наш случай)
- Некоторый код не будет работать с RLS совсем (например, некоторые приемы с объектной техникой работы с данными, или вложенные подзапросы большой глубины и т.д.).
- И др.
Так что тут можно посоветовать быть более внимательным и писать Unit-тесты для проверки прав доступа.
RLS не наша тема
Информация выше Вас напугала и теперь использовать RLS никогда не будете? Есть способ проще! Можно в динамических списках, отчетах и других местах подбора данных программно устанавливать отборы на получаемую информацию. Например, добавить ограничения по организации. Вот такой код в событии "При создании на сервере" решает эту задачу.
И ведь все работает! Но раз уж этот подход попал в статью, значит не все так гладко. Проблема в том, что ограничения доступа к данным здесь нет, есть только интерфейсные ограничения. Этот подход еще можно назвать как "костыльный RLS". Его обычно применяют, когда задачу надо сделать еще месяц назад, а в ИТ-отдел уже ломятся сотрудники с требованием ограничить доступ.
Проблема в том, что есть множество других путей получить доступ к этим данным. Предусмотреть все возможные ограничения с помощью программных "костылей" невозможно. Например, пользователь вывел отчет, а в него попал "запретный" документ. Ничто не мешает нам его открыть. Слышу вопрос: "Так в форме документа тоже можно сделать программную проверку при открытии!?". Конечно можно! Но что мне мешает в отчете вывести интересующие меня данные из документа с помощью СКД.
Все защиты пали! А как жаль, ведь потрачены десятки часов работы.
И опять, все это интерфейсные настройки. Зачем заниматься этим, если нужно ограничивать права доступа?
Сроки горят? Отлично, "костыль" оправдан! Только не забудьте вернуться к этому вопросу в будущем.
Я сам настрою
И на последок еще один небольшой "фейл". Иногда в системе имеется дополнительный функционал настройки доступа. Например, регистр сведений "Дополнительные права", в котором каждому пользователю добавляются отдельные функции.
Не раз приходилось сталкиваться с такой ситуацией, что права все настраиваются и все работает. Гибкие настройки - мечта администратора и все такое. Но.
У пользователей тоже есть доступ к этому регистру! Причем у всех и на изменение. Да, этот регистр может быть не выведен явно в интерфейс, но это не гарантия того, что любопытные коллеги будут исследовать информационную систему и найдут эту пасхалку. А раз так, то выдать им себе дополнительные права не составит проблем.
Вывод простой: создавая инструменты управления доступом, не забудьте разграничить доступ на этот инструмент.
На самом деле
Это далеко не полный список потенциальных ошибок. Скорее это самые простые, распространенные и банальные ситуации. Возможно, Вы уже знакомы с некоторыми из них. Какие-то допускали Ваши коллеги, какие-то коллеги коллег, но точно не Вы!
Скажу Вам по секрету, только никому не рассказывайте: за все время работы с платформой 1С и решениями на ее основе автором были сделаны все перечисленные ошибки. И даже больше!
Но если бы не было ошибок, то и опыта бы не было. А также этой публикации :)
P.S. Поделитесь своими историями. Дайте знать, что автор не один такой "косячник" :)
Некоторые пользователи сообщили о получениибыла сделана попытка получить доступ к сокету способом, запрещенным его правами доступа » ошибка при попытке запустить IPCONFIG / обновить команда в CMD, чтобы восстановить их сетевое соединение. Другие пользователи сообщают, что эта проблема возникает при попытке запустить сервер Apache. Однако почти все затронутые пользователи сообщают, что проблема начала возникать после установки автоматического обновления Windows.
Была предпринята попытка получить доступ к сокету способом, запрещенным его правами доступа.
Что является причиной попытки доступа к сокету способом, запрещенным ошибкой его прав доступа?
Мы исследовали эту конкретную проблему, изучив различные пользовательские отчеты и стратегии исправления, которые они использовали для решения проблемы. Исходя из того, что мы собрали, есть несколько различных сценариев, которые приведут к появлению этой проблемы:
- VPN-клиент блокирует подключенные локальные соединения — Несколько пользователей обнаружили, что в их случае виновником этой проблемы был их VPN-клиент. Отключение VPN-клиента решило проблему для большинства уязвимых пользователей.
- Сторонний брандмауэр блокирует соединение— Если у вас есть внешний брандмауэр, он может быть ответственным за блокировку ваших SMTP-соединений. В большинстве случаев McAfee Anti-Virus и Avast признаны виновными.
- Приложение пытается открыть порт, который уже используется — Одна из наиболее распространенных причин возникновения этой ошибки — попытка использовать приложение, настроенное для открытия порта, который уже открыт и активно используется другой службой или приложением.
- Функция безопасности Windows 10 — Начиная с Windows 10, Microsoft внедрила новую функцию безопасности, которая не позволит пользователям захватить случайный порт и отдать его какой-либо службе. Это может произойти, если вы используете скрипт или домашнее приложение.
- Другой процесс прослушивает нужный порт — Известно, что подобные конфликты случаются довольно часто при попытке запуска экземпляров веб-сервера Apache или при удаленном доступе к серверу SQL на Hostgator.
Для достижения наилучших результатов следуйте приведенным ниже потенциальным исправлениям, пока не встретите исправление, подходящее для вашего конкретного сценария.
Способ 1. Отключение общего доступа к подключению к Интернету
Этот довольно странный преступник, потому что общий доступ к Интернету в Windows использует несколько различных диапазонов портов, которые не обязательно сообщаются Netstat или подобному инструменту.
Тем не менее, несколько пользователей сообщили, что для них проблема была решена навсегда после того, как они отключили Общий доступ к интернету. Есть два разных способа, которые позволят вам отключить общий доступ к подключению к Интернету в Windows. Следуйте любым удобным для вас методам:
Отключение общего доступа к интернет-соединению через панель управления
Отключение службы общего доступа к Интернету
- Нажмите Windows ключ + R открыть диалоговое окно «Выполнить». Затем введите «services.mscИ нажмите Войти открыть Сервисы экран.
Диалог запуска: services.msc - На экране «Службы» используйте правую панель, чтобы найти Общий доступ к подключению к Интернету (ICS) оказание услуг. Как только вам удастся найти его, дважды щелкните по нему.
- в Общий доступ к подключению к Интернету (ICS) перейдите на вкладку Общие и измените Тип запуска в инвалид.
Установка типа запуска ICS на ручной - Перезагрузите компьютер и посмотрите, была ли проблема решена.
Способ 2: удаление стороннего AV или внесение в белый список соединения
Многие пользователи отмечают, что следует проверять сторонние защитные костюмы, чтобы убедиться, что они не мешают SMTP-соединениям. McAfee, BitDefender и Avast подтверждают, что они заблокировали определенные порты, используемые локальными соединениями. Для некоторых портов это стандартное поведение для предотвращения атак с использованием массовой почты.
Как сообщают некоторые пользователи, чрезмерная защита брандмауэра или аналогичное средство фильтрации безопасности может быть причиной «была сделана попытка получить доступ к сокету способом, запрещенным его правами доступа » ошибка.
Обычно вы можете решить эту проблему, занеся в белый список соединение, которое блокируется настройками AV. Имейте в виду, что шаги по созданию правила белого списка будут различаться в зависимости от вашего клиента решения безопасности.
Замечания: Если вы не можете найти программу, указанную в Разрешенные приложения и функции, нажмите на Разрешать другое приложение кнопку и выберите его вручную, нажав на Просматривать.
Если вы все еще видите ту же ошибку, перейдите к следующему способу ниже.
Способ 4: перезапуск информационных служб Интернета (IIS)
Несколько пользователей сообщили, что проблема была решена после перезапуска Информационные службы Интернета (IIS) из повышенного окна командной строки.
Но имейте в виду, что перезапуск серверов IIS отбросит все интернет-сервисы, включая FTP, SMTP и NNTP, и все данные, хранящиеся в приложениях, обрабатывающих соединения, будут потеряны.
Вот краткое руководство о том, как это сделать:
- Нажмите Windows ключ + R открыть диалоговое окно «Выполнить». Затем введите «CMDИ нажмите Ctrl + Shift + Enter открыть окно командной строки с повышенными правами.
Диалог запуска: cmd, затем нажмите Ctrl + Shift + Enter - В командной строке с повышенными привилегиями введите следующую команду и нажмите Enter, чтобы перезапустить информационные службы Интернета:
- Подождите, пока интернет-службы не будут успешно остановлены и перезапущены, затем повторите ту же процедуру, которая вызвала ошибку, чтобы увидеть, была ли проблема решена.
Перезапуск информационных служб Интернета
Если вы все еще видите «была сделана попытка получить доступ к сокету способом, запрещенным его правами доступа » Ошибка, перейдите к следующему способу ниже.
Способ 5: использование предыдущей точки восстановления системы
Обнаружив, что некоторые другие стратегии восстановления оказались неэффективными, некоторые пользователи наконец смогли подключиться к Интернету, не блокируясь «была сделана попытка получить доступ к сокету способом, запрещенным его правами доступа » ошибка при возврате их состояния машины к предыдущему моменту времени с помощью восстановления системы.
Если вы только начали видеть эту ошибку недавно и вам повезло иметь точку восстановления системы, которая была датирована до того, как вы начали бороться с этой проблемой, то следующие шаги должны помочь вам решить проблему навсегда:
- Нажмите Windows ключ + R открыть диалоговое окно «Выполнить». Далее введите «rstruiИ нажмите Войти открыть мастер восстановления системы.
Диалог запуска: rstrui - На первом экране восстановления системы выберите Выберите другую точку восстановления и нажмите следующий.
Выберите другую точку восстановления системы - На следующем экране начните с установки флажка, связанного с Показать больше точек восстановления. Затем выберите точку восстановления системы, которая имеет более старую дату, чем появившаяся проблема, и нажмите кнопку следующий кнопка снова.
Выберите точку восстановления системы и нажмите «Далее». - При нажатии Конец, Windows автоматически перезапустится, и старое состояние будет восстановлено при следующем запуске. Как только ваш компьютер загрузится снова, посмотрите, была ли проблема решена.
Способ 6: отключение от сети VPN
Некоторые затронутые пользователи обнаружили, что в их случае проблема была вызвана VPN-клиентом. Оказывается, что «была сделана попытка получить доступ к сокету способом, запрещенным его правами доступа » ошибка также может быть вызвана VPN-клиентом, который вызывает сбой некоторых задействованных локальных соединений.
>так может антивирус палит?
Маловероятно. На данном компьютере стоит антивирус Avast. На другом компьютере - точно такой же антивирус - и все работает нормально. Может быть посоветуете, как проверить версию с антивирусом?
так может антивирус палит?
Александр, я рада что ты получил хорошие знания, и уверена что твои вопросы разрешаться и все заработает как нужно! :)
>Александр, ты пробовал с правами администратора запускать?
Да, пробовал. Происходит то же самое.
>Можно было бы попробовать через тимвивер подключиться и посмотреть
Было бы очень хорошо. Могу подключить TeamViewer в любой день вечером, после 20:00 по Москве.
Пока приспособился таким образом, что программу пишу на своем компьютере, а потом удаленно перехожу на свой рабочий компьютер и там все работает корректно.
Можно было бы попробовать через тимвивер подключиться и посмотреть
Александр, ты пробовал с правами администратора запускать?
Еще проверил активные подключения на порту 8000 с помощью команды:
netstat -o
Активных подключений на этом порту нет.
Microsoft Windows (Version 6.2.9200]
Корпорация Майкросоот, 2012. Все права защищены.
C:\WINDOWS\systen32>netsh int ip reset resetlog.txt
Сброс Глобальный - OK!
Сброс Интерфейс - OK!
Сброс Адрес одноадресной рассылки - OK!
Сброс Сосед - OK!
Сброс Путь - OK!
Сброс Маршрут - OK!
Сброс - сбой.
Отказано в доступе.
Сброс - OK!
Для завершения этого действия требуется перезагрузка.
После перезагрузки ошибка не была устранена.
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.
Ты в любой момент сможешь отписаться от рассылки.
Научился: Слушать приятную музыку.
Трудности: Успеть реализовать задуманное.
Всем рекомендую написать эту телефонную книжку для закрепления знаний по шаблонам проектирования. Если вы еще не знаете что такое шаблоны, советую сначала пройти курс по шаблонам. Знания пригодятся не только в java, но и при написании программ на других языках программирования.
Crack error
bind: Сделана попытка доступа к сокету методом,
запрещенным правами доступа.: Сделана попытка доступа
к сокету методом, запрещенным правами доступа.
(реестр чистила)
Видимо, тебе сама система пытается намекнуть, что тебе пора заняться саморазвитием и прекратить деградировать в Симсе.
Владислав Комаров Знаток (409) Кристина Ильина, Нет смысла мне выходить на контакт с типичным, предсказуемым тинейджером. Удачной деградации в манямирке.
ты на столько далок что сидишь тут 24/7 спамя f5 в ожидании ответа ахахахах
ни личной жизни, ни работы, ни друзей, ничего у тебя видимо нет, ты жалок, ты слит, откисай
Владислав Комаров Знаток (409) Евгений Мухин, В твоём подобии словарного запаса лишь "жалок", забавно. В принципе, уже всем понятно, что ты за сынок дешёвой шлюшки и за даун. Нечего тебе было дышать мне в залупу, теперь тебе придётся опускать свои заплаканные глазки и смотреть, как я ссу на могилку твоей мамаши, которую я убил ударом своей железной залупы. И теперь малолетний блядун получил такую психологическую травму насчёт этого, что будет на коленях мне говорить каждые текста "ты жыалок, ты слет, аткесай" А я что? А я лишь без жалости и сожаления продолжать трахать его в рот и кончать на его заплаканные глазки.
Советую качать пиратку с Игрухи. При скачивании и установке желательно выключить антивирус, поскольку он может сожрать кряк. И перед скачиванием и установкой внимательно читать рекомендации.
Возможно поможет запуск от имени администратора и добавление папки с установленной игрой в исключения антивируса. Реестр тут точно не при делах, раз винда блочит кряк. Тут скорее с правами проблема.
Я как раз с игрухи и скачивала. Где-то неделю нормально всё запускалось, а потом такое окно высветилось. Но я вроде очистила весь кэш ненужный, и всё пошло.
Читайте также: