Ошибка аутентификации клиента 1cv8 средствами операционной системы

Обновлено: 29.01.2023

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

Наиболее крупными контекстами являются и . Причина их существования заключается в том, что в самом общем случае прикладные решения работают в клиент-серверном варианте.

В этом варианте работы пользователь взаимодействует с клиентским приложением. В клиентском приложении в определенные моменты времени (события) выполняется программный код, написанный в модулях. Этот код исполняется в клиентском контексте.

Клиентское приложение, в свою очередь, взаимодействует с кластером серверов «1С:Предприятия 8». В кластере серверов также, в определенные моменты времени (события) или в определенной ситуации (вызов серверного метода), выполняется программный код, написанный в модулях. Этот код исполняется в серверном контексте.

Так как система программ «1С:Предприятие 8» позволяет работать с прикладными решениями через Интернет, клиентское приложение и кластер серверов могут находиться и исполняться не просто на разных компьютерах, а в разных городах, странах, частях света.

Конечно, в более простых случаях клиентское приложение и кластер серверов могут находиться на одном компьютере, или кластер серверов может вообще не использоваться (в файловом варианте работы). Но это не влияет на то, как пишутся модули: они пишутся один раз и сразу для работы в самом общем, клиент-серверном варианте. А если в реальной ситуации используется более простой вариант развертывания системы, то платформа просто эмулирует нужные контексты при выполнении тех или иных модулей.

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

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

Самое очевидное место, где вы можете увидеть использование клиентского и серверного контекстов – это модули форм. Эти модули могут исполняться и клиентскими приложениями и кластером серверов. Поэтому, как правило, перед каждым методом таких модулей указана директива компиляции. Она определяет, в каком контексте будет существовать этот метод в этом модуле:

Директива &НаСервере значит, что эта процедура будет существовать в модуле, когда он исполняется на сервере. Когда он исполняется на клиенте, в нем этой процедуры не будет.

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

Помимо клиентского и серверного контекстов существуют и более «узкие» контексты. Это связано с тем, что клиентских приложений существует несколько (тонкий клиент, веб-клиент, толстый клиент, мобильный клиент), а серверная часть бывает не только у «настольных» приложений, но и у мобильных. Каждое из клиентских приложений, каждая серверная часть имеют свои особенности исполнения программного кода, имеют свой контекст. Эти контексты вы можете увидеть в синтакс-помощнике, в описании всех типов, их методов, свойств и событий. Они перечисляются в разделе Доступность.

Для типа Массив указано:

Это значит, что тип Массив вы можете использовать практически во всех клиентских и серверных контекстах. В том числе и на мобильных устройствах.

Настройка аутентификации Windows при расположении веб-сервера IIS и рабочих серверов на разных машинах

Не работает аутентификация операционной системы (windows) через IIS при использовании тонкого клиента или веб-клиента.

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

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

Решение проблемы

На сервере 1С включить технологический журнал, используя следующую настройку:

Воспроизвести ситуацию с неудачной аутентификацией операционной системы. Авторизоваться под пользователем операционной системы, указанным в свойствах пользователя 1С.

Открыть технологический журнал рабочего процесса и найти событие EXCP со следующим описанием: «Идентификация пользователя не выполнена
Неправильное имя или пароль пользователя»

Обратите внимание на предшествующее ему событие CONN и значение свойства DstUserName2 — именно в таком виде пользователь должен быть указан в свойствах пользователя информационной базы.

Заменить значение свойства «Пользователь» пользователя информационной базы согласно следующему формату «» + [Имя пользователя из свойства DstUserName2 без скобок].

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

Расположение веб-сервера IIS и рабочих серверов 1С на разных машинах

В некоторых случаях, несмотря на корректно указанного пользователя операционной системы в пользователе информационной базы, при попытке входа в опубликованную базу через браузер аутентификация операционной системы не проходит. Такая ситуация может возникать, если веб-сервер IIS и сервер 1с находятся на разных машинах. В таком случае в технологическом журнале рабочего процесса можно наблюдать следующую картину:

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

1) Убедиться, что процессы сервера 1С запущены от имени доменной учетной записи, входящей в группу Domain Users.

2) Убедиться, что веб-сервер IIS настроен корректно.

В публикации информационной базы найти настройки аутентификации

В настройках аутентификации отключить анонимную аутентификацию и включить Windows-аутентификацию. В Windows-аутентификации упорядочить доступных провайдеров так, чтобы на первом месте был Negotiate.

Пул приложений публикации не нуждается в настройках, в нем можно оставить все по умолчанию.

После изменения настроек перезапустить веб-сервер с помощью команды iisreset в командной строке.

3) Убедиться, что в контроллере домена в свойствах компьютера, на котором запущен веб-сервер, на вкладке делегирование установлено «Доверять компьютеру делегирование любых служб (только Kerberos)»

Для этого откройте оснастку Active Directory Users and Computers (dsa.msc), в компьютерах найдите веб-сервер, перейдите в его свойства и на вкладке Делегирование установить значение «Доверять компьютеру делегирование любых служб (только Kerberos)» и нажать применить.

4) Убедиться, что на клиенте в свойствах обозревателя разрешена встроенная проверка подлинности Windows.

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

Важно: аутентификации Windows при расположении веб-сервера IIS и рабочих серверов на разных машинах в тонком клиенте работает, начиная с версии 8.3.10.2620 (для тестирования).

ВИД (внешние источники данных) в 1С – это объекты конфигурации, позволяющие использовать информацию из внешних ODBC-источников (баз данных), не основанных на 1С:Предприятии, внутри прикладного решения так же, как будто бы она хранится в самой информационной базе.

В качестве ODBC-драйвера был выбран пакет FreeODBC, т.к. он бесплатный и его везде используют.

В процессе гугления использовались источники:

Установка

Достаточно установить пакет tdsodbc (разрядность должна совпадать с сервером 1С!):

(дополнительно установятся: libodbc1 odbcinst odbcinst1debian2)

В файл odbcinst.ini добавить (если не добавилось автоматически) секцию для FreeTDS:

  • Для 32-битного пакета: /usr/lib/i386-linux-gnu/odbc
  • Для 64-битного пакета: /usr/lib/x86_64-linux-gnu/odbc

Если этого не сделать, или поставить пакет не той же разрядности, что сервер 1С, то будет ошибка:
[unixODBC][Driver Manager]Can’t open lib ‘FreeTDS’ : file not found

А вот такая ошибка будет, если неверно указали путь к либам:
/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so file not found

«Ошибка аутентификации клиента 1cv8 средствми операционной системы: Аутентификационный контекст клиента отсутствует в рабочем процессе»

Как я понял, поключаться и работать с ВИД можно двумя способами:
1) Подключаться программно.
Пример:
(Спасибо caponid за инфу о поле СУБД):

Соед = Новый ПараметрыСоединенияВнешнегоИсточникаДанных ;
Соед . СУБД = «MSSQLServer» ; //Явно указываем, потому что тот тип, что указали в строке соединения, игнорируется;
Источник = ВнешниеИсточникиДанных [ «НазваниеИсточника» ] ;
Источник . УстановитьПараметрыСоединенияСеанса ( Соед ) ;

Но тут у меня не получилось запихнуть проинициализированный объект ВИД в запрос:

2) Использовать механизм подключения в режиме Предприятия. Параметры подключения хранятся тут:
РегистрСведений.НастройкиПодключенияКВнешнемуИсточникуДанных
или
Все функции -> Стандартные -> Управление внешними источниками данных

Строка подключения выглядит так:
«Driver=; Server=SERVER,1433; Database=BASE; User Password=PASS;»
Пользователя и пароль я запихивал в отдельные поля.

Если в режиме предприятия будут отсутствовать параметры подключения к внешнему источнику данных, то будет ошибка:
«[unixODBC][Driver Manager]Data source name not found, and no default driver specified»

Дату нужно форматировать перед добавлением, например, так:

«[FreeTDS][SQL Server]Conversion failed when converting date and/or time from character string.»

«[FreeTDS][SQL Server]Cannot insert explicit value for identity column in table ‘t_logs’ when IDENTITY_INSERT is set to OFF.»

При добавлении таблицы с помощью помощника, поля с внешними ключами (foreign_key) будут по-умолчанию устанавливаться в тип объекта, а не Число. Мне это небыло нужно, поэтому вручную менял тип.

Нужно быть внимательным с поиском записи с помощью функции НайтиПоПолю(). Значение должно совпадать с типом поля в таблице. Например, строку перегонять в число:

Что не получилось

Не получилось сделать поля выбора (а-ля combobox) с выпадающим списком значений из ВИД. Ставишь реквизиту формы тип таблицы ВИД, переносишь его на форму. Все ок, элемент (контрол) создается, но не отображается. Заморачиваться не стал, вводил вручную id-шники записи, этого было достаточно.

1) FuncName
2) [FreeTDS][SQL Server]Invalid column name ‘FuncName’.

1) dbo.FuncName
2) [FreeTDS][SQL Server]Cannot find either column «dbo» or the user-defined function or aggregate «dbo.FuncName», or the name is ambiguous.

1) SELECT <FuncName>
2) [FreeTDS][SQL Server]Incorrect syntax near the keyword ‘SELECT’.

1) EXECUTE <FuncName>
2) [FreeTDS][SQL Server]Incorrect syntax near the keyword ‘EXECUTE’.

1) * from dbo.FuncName()
2) Обращение к процедуре объекта как к функции (FuncName)

Так же не решился вопрос с кириллицей. А точнее, при создании записей из 1С в MS SQL текст на русском языке превращался в кракозябры, например:

» 0:@KB85 70O2:8 87 1!, >

Параметры сортировки базы: Cyrillic_General_CI_AS.
Что пытался сделать:
1) настроить FreeTDS, всунув в его конфиг параметр charset в секцию [global]:

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

Средствами платформы аутентификация выполняется через проверку пароля пользователя.

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

Аутентификация 1С:Предприятия

Ниже можно указать пароль пользователя. Тогда для входа в программу нужно ввести логин и пароль:

Аутентификация 1С:Предприятия

Если у пользователя снят флаг Аутентификация 1С:Предприятия, то он не будет отображаться в списке выбора пользователей.

Аутентификация операционной системы

Аутентификация операционной системы работает только для Windows. Но если подключение выполняется через веб-сервер Apache, то аутентификация операционной системы не будет работать.

В настройках пользователя нужно установить флаг Аутентификация операционной системы и выбрать одного из пользователей операционной системы:

Аутентификация операционной системы

При запуске платформа запросит имя пользователя у операционной системы, затем проверит есть ли в списке пользователей 1С пользователь, у которого указана аутентификация операционной системы и указан текущий пользователь ОС. Если такой пользователь 1С есть, то программа будет запущена под ним без запроса логина и пароля. Если нет такого пользователя, то будет выведен стандартный диалог ввода логина и пароля (если установлен флаг Аутентификация 1С:Предприятия).

Аутентификация операционной системы

Для одного пользователя может быть одновременно включена и аутентификация средствами операционной системы и аутентификация 1С:Предприятия.

OpenID-аутентификация

OpenID-аутентификация позволяет использовать для аутентификации в 1С внешний OpenID-провайдер. OpenID-провайдером может быть как база на платформе 1С, так и внешняя система, которая реализует работу по протоколу OpenID Authentication 2.0 и расширение этого протокола, реализованное в платформе 1С.

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

Алгоритм аутентификации через OpenID выглядит следующим образом:

Сначала опубликуем на веб-сервере OpenID-провайдер. Это будет база 1С с пустой конфигурацией:

OpenID-провайдер

Чтобы данную базу можно было использовать как OpenID-провайдер нужно на закладке OpenID установить флаг Использовать в качестве OpenID-провайдера и указать Время жизни аутентификации в секундах. После истечения этого времени нужно будет снова ввести логин и пароль при входе в 1С.

04.09

Двойная аутентификация в 1С к моему удивлению до сих пор процветает во многих компаниях, где уже давным-давно работает контроллер домена (Active Directory), да и там где его, собственно нет тоже.

Кто не догадался о чем я.

Опишу типичную ситуацию в компании:

«Бухгалтер приходит на работу запускает свой ПК, вводит пару логин-пароль на вход, затем после этого повторяет действие, уже с программой 1С.»

Выполняет двойную аутентификацию, что собственно и не есть хорошо.

Так как зря тратится время а, следовательно, падает продуктивность работы.

За день, пользователь 1С Предприятия не редко по нескольку раз закрывает и открывает программу,

и при каждой такой операции, ему приходится заново авторизоваться.

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

Рассмотрим на примере конфигурации «Бухгалтерия 3.0».

Запускаем 1С Предприятие в режиме конфигуратор,

11

Кликаем администрирование – пользователи.

22

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

33

Например, это будет бухгалтер «Иванова Ирина Владимировна».

Убираем птичку аутентификация 1С Предприятия, и ставим «аутентификация операционной системы».

Затем выберем в списке пользователя, в нашем случаи это будет локальный пользователь

«User02»

(Если Ваш ПК в домене тогда, разумеется, выбираем учетную запись пользователя в домене)

И кликаем по кнопке «ОК»

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

Что собственно упростит жизнь всем, и пользователю 1С Предприятия и администратору 1С.

Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>

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

  • Где в 1с регламентные операции по ндс
  • Как открыть файл osm в автокаде
  • Не воспроизводится видео в браузере firefox
  • План меню форма оп 2 образец заполнения в ворде
  • Sony xperia драйвера для подключения к компьютеру

 
ВИД (внешние источники данных) в 1С – это объекты конфигурации, позволяющие использовать информацию из внешних ODBC-источников (баз данных), не основанных на 1С:Предприятии, внутри прикладного решения так же, как будто бы она хранится в самой информационной базе.

В качестве ODBC-драйвера был выбран пакет FreeODBC, т.к. он бесплатный и его везде используют.

В процессе гугления использовались источники:

  • Внешние источники данных на Linux-серверах 1С
  • Настройка доступа к базе 1С на MSSQL из под Linux
  • Настройка доступа к Microsoft SQL Server через ODBC. Ubuntu 12.04
  • Пример интеграции базы 1С и внешней СУБД (хорошая статья)
  • Подробное описание работы с ВИД (да и вообще хороший блог о работе с 1С)
  • Программное добавление, изменение, удаление (примеры)
  • Запись во внешний источник данных из 1С 8.3 (используя хранимые процедуры MS SQL Server)
  • Запись во внешние источники данных в «1С:Предприятие 8» (используя хранимые процедуры MS SQL Server)

Установка

Достаточно установить пакет tdsodbc (разрядность должна совпадать с сервером 1С!):

(дополнительно установятся: libodbc1 odbcinst odbcinst1debian2)

$ apt install tdsodbc:i386

В файл odbcinst.ini добавить (если не добавилось автоматически) секцию для FreeTDS:

$ nano /etc/odbcinst.ini

[FreeTDS]

Description = FreeTDS

Driver = <путь_к_либам>/libtdsodbc.so

Setup = <путь_к_либам>/libtdsS.so

FileUsage = 1

UsageCount = 1

, где <путь_к_либам_tdsodbc>:

  • Для 32-битного пакета: /usr/lib/i386-linux-gnu/odbc
  • Для 64-битного пакета: /usr/lib/x86_64-linux-gnu/odbc

Если этого не сделать, или поставить пакет не той же разрядности, что сервер 1С, то будет ошибка:
[unixODBC][Driver Manager]Can't open lib 'FreeTDS' : file not found

А вот такая ошибка будет, если неверно указали путь к либам:
/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so file not found

При нажатии на кнопку “…” конфигурация выдаст последний вскрик в виде окошка с ошибкой и благополучно покрашится. Что это за НЛО непонятно, но на нашем серваке оно поселилось, видать, надолго:

"Ошибка аутентификации клиента 1cv8 средствми операционной системы: Аутентификационный контекст клиента отсутствует в рабочем процессе"

Как я понял, поключаться и работать с ВИД можно двумя способами:
1) Подключаться программно.
Пример:
(Спасибо caponid за инфу о поле СУБД):

Соед = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;

Соед.СтрокаСоединения = «Строка_соединения»;

Соед.АутентификацияОС = Ложь;

Соед.ИмяПользователя = Пользователь;

Соед.Пароль = Пароль;

Соед.СУБД = «MSSQLServer»; //Явно указываем, потому что тот тип, что указали в строке соединения, игнорируется;

Источник = ВнешниеИсточникиДанных[«НазваниеИсточника»];

Источник.УстановитьПараметрыСоединенияСеанса(Соед);

Источник.УстановитьСоединение();

Но тут у меня не получилось запихнуть проинициализированный объект ВИД в запрос:

Запрос.Текст =

«ВЫБРАТЬ

| Источник.Поле

|ИЗ

| &ВИД КАК Источник

;

Запрос.Параметры.Вставить(«ВИД», ВИД);

2) Использовать механизм подключения в режиме Предприятия. Параметры подключения хранятся тут:
РегистрСведений.НастройкиПодключенияКВнешнемуИсточникуДанных
или
Все функции -> Стандартные -> Управление внешними источниками данных

Строка подключения выглядит так:
"Driver={FreeTDS}; Server=SERVER,1433; Database=BASE; User Id=USER; Password=PASS;"
Пользователя и пароль я запихивал в отдельные поля.

Если в режиме предприятия будут отсутствовать параметры подключения к внешнему источнику данных, то будет ошибка:
"[unixODBC][Driver Manager]Data source name not found, and no default driver specified"

Названия Таблиц и полей в конфигураторе могут быть какими угодно, а вот к полям “Имя в источнике данных” нужно присмотреться внимательнее. Если в именах полей БД MS SQL есть, к примеру, символ “_”, то будет вот такая ошибочка:
"[FreeTDS][SQL Server]Incorrect syntax near 't_ticket_id'"

Спасибо master1c8.ru, выручил!

“Если значение, находящееся в свойстве Имя в источнике данных заключено в одинарные кавычки, то в SQL-запрос к базе данных это значение попадает без преобразований, вне зависимости от состава символов.”

Т.е. названия таблиц и полей MS SQL в поле “Имя в источнике данных” нужно указать в одинарных кавычках.

Дату нужно форматировать перед добавлением, например, так:

Формат(ТекущаяДата(), «ДФ=’yyyy-MM-dd HH:mm:ss'»)

Иначе будет:

"[FreeTDS][SQL Server]Conversion failed when converting date and/or time from character string."

Для добавления новых записей поле идентификатора с автоинкременом нужно установить в “Только чтение”, иначе будет:

"[FreeTDS][SQL Server]Cannot insert explicit value for identity column in table 't_logs' when IDENTITY_INSERT is set to OFF."

При добавлении таблицы с помощью помощника, поля с внешними ключами (foreign_key) будут по-умолчанию устанавливаться в тип объекта, а не Число. Мне это небыло нужно, поэтому вручную менял тип.

Нужно быть внимательным с поиском записи с помощью функции НайтиПоПолю(). Значение должно совпадать с типом поля в таблице. Например, строку перегонять в число:

НайтиПоПолю(«поле», Число(ЗначениеДляПоискаСтрока));

По поводу поиска вхождений записей в список значений в запросе:

table.id В(&СписокЗаявки) – не прокатит (СписокЗаявки – это СписокЗначений со значениями – строками, а id – число)

table.id В(«+СтрокаЗаявки+») – прокатит (СтрокаЗаявки – строка со значениями через запятую)
Сейчас пишу и не понимаю почему не попробовал значения списка СписокЗаявки привести к численному типу, но проверять уже лень.

Чтобы не выводить таблицы в командный интерфейс раздела (подсистемы) в свойствах таблицы нужно убрать галку “Использовать стандартные команды“.


Что не получилось

Не получилось сделать поля выбора (а-ля combobox) с выпадающим списком значений из ВИД. Ставишь реквизиту формы тип таблицы ВИД, переносишь его на форму. Все ок, элемент (контрол) создается, но не отображается. Заморачиваться не стал, вводил вручную id-шники записи, этого было достаточно.

Выполнить хранимую процедуру. До этого хранимыми процедурами в БД не пользовался, хотя хорошая вещь.
Но как ни крутил я этот функционал в конфигураторе, ничего не вышло (а тут и тут работало).
Какие были ошибки…:
1) <Выражение в источнике данных>
2) <Ошибка>

1) FuncName
2) [FreeTDS][SQL Server]Invalid column name 'FuncName'.

1) dbo.FuncName
2) [FreeTDS][SQL Server]Cannot find either column "dbo" or the user-defined function or aggregate "dbo.FuncName", or the name is ambiguous.

1) SELECT <FuncName>
2) [FreeTDS][SQL Server]Incorrect syntax near the keyword 'SELECT'.

1) EXECUTE <FuncName>
2) [FreeTDS][SQL Server]Incorrect syntax near the keyword 'EXECUTE'.

1) * from dbo.FuncName()
2) Обращение к процедуре объекта как к функции (FuncName)

Так же не решился вопрос с кириллицей. А точнее, при создании записей из 1С в MS SQL текст на русском языке превращался в кракозябры, например:

" 0:@KB85 70O2:8 87 1!, ID=[3037]"

Параметры сортировки базы: Cyrillic_General_CI_AS.
Что пытался сделать:
1) настроить FreeTDS, всунув в его конфиг параметр charset в секцию [global]:

$ nano /etc/freetds/freetds.conf

client charset = UTF8

2) добавить параметр charset в строку подключения:
"Driver={FreeTDS}; Server=SERVER,1433; Database=BASE; charset=UTF8;"

Не получилось. Еще есть вариант 3:
3) сменить API ODBC
Но придется делать все заново. Поэтому, ограничился записью текста на инглише.


Нужно больше прав!!!

При нехватке прав при выполнении запроса к таблицам ВИД будет ошибка:
Ошибка при вызове метода контекста (Выполнить): Недостаточно прав для работы с таблицей "ВнешнийИсточникДанных.БДTickets.Таблица.<TableName>"
Нужно добавить права:
На ВИД: Использование
На таблицы в запросе: Чтение

 

Для выполнения функции
<ТаблицаВИД>.НайтиПоПолю() нужно добавить права (иначе “Нарушение прав доступа!”):

На ВИД: Использование
На таблицы в запросе: Чтение, Изменение

Для функции
<ТаблицаВИД>.СоздатьОбъект() соответсвенно: Использование, Чтение и Добавление.

Кстати, стандартная роль “Запуск внешнего соединения” не понадобилась, для меня осталось загадкой ее назначение (разобраться не пытался).


Просмотров:
8 742

Аутентификация операционной системы. Перестала работать.

Я
   nufnufcheg

22.05.14 — 16:16

Добрый день.

Платформа 1С:Предприятие 8.2 (8.2.18.96). УПП (1.3.23.1). Windows Server 2008 R2.

До сегодняшнего дня отлично работала аутентификация операционной системы. Сегодня аутентификация работать перестала. При старте 1С выскакивает окно авторизации.

Из действий, которые могут быть связаны — в 1С в режиме предприятия были созданы 3 пользователя с указанием аутентификация операционной системы (указаны пользователи домена). Как потом выяснилось такие пользователи уже были созданы с галкой Недействительный. (не знаю может быть ли это связано или нет).

В какую сторону копать?

Настроил ТЖ с параметрами conn и excp,

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

в разделе EXCP нашел следующие записи:

22.05.2014 13:35:27

InitializeSecurityContext: Error 80090324!

22.05.2014 13:35:30

InitializeSecurityContext: Error 80090324!

22.05.2014 13:35:36

‘server_addr=any:1560 descr=Ошибка сетевого доступ

NetDataExchangeException

22.05.2014 13:35:36

‘server_addr=any:1561 descr=Ошибка сетевого доступ

NetDataExchangeException

22.05.2014 13:35:36

‘server_addr=any:1562 descr=Ошибка сетевого доступ

NetDataExchangeException

22.05.2014 13:35:36

‘server_addr=any:1563 descr=Ошибка сетевого доступ

NetDataExchangeException

в разделе CONN:

22.05.2014 13:35:27

‘addrBelongsToThisComputer2, address=localhost, result=true’

22.05.2014 13:35:27

‘Connected, client=(23)[::1]:59291, server=(23)[::1]:1541’

22.05.2014 13:35:27

Clnt: MyUserName1: МойЛогин@МойДомен

22.05.2014 13:35:27

Clnt: DstUserName1: ЛогинСервера1С@МойДомен StartProtocol: 0 Success

22.05.2014 13:35:29

‘addrBelongsToThisComputer2, address=ИмяСервера, result=true’

22.05.2014 13:35:29

‘Connected, client=(23)[::1]:59300, server=(23)[::1]:1560’

22.05.2014 13:35:29

Clnt: MyUserName1: МойЛогин@МойДомен

22.05.2014 13:35:29

Clnt: DstUserName1: ЛогинСервера1С@МойДомен StartProtocol: 0 Success

кто знает, в какую сторону копать?

   Heckfy

1 — 22.05.14 — 16:17

Заэкспарился пароль в винде. Пусть пользователь пароль поменяет.

   nufnufcheg

2 — 22.05.14 — 16:22

Добавление — пользователи работают через терминальный доступ непосредственно на сервер 1С.

(1) т.е. истек срок действия пароля? данная проблема у всех пользователей. и на сервер через РДП они попадают без проблем

   vde69

Модератор

3 — 22.05.14 — 16:25

(2) с сервера 1с не видится сервер AD …. или поменяли чего на сервере AD (типа включили последнюю версию авторизации, а сервак 1с сидит на старой…)

   nufnufcheg

4 — 22.05.14 — 16:27

(2) по словам админов — ничего не менялось.

Когда я открывают список пользователей и выбираю доменного юзера для конкретного пользователя — я вижу список доменов и список пользователей доменов.

т.е. получается с сервера 1С видно и домены и пользователи?

   Defender aka LINN

5 — 22.05.14 — 16:29

(4) Ты его открываешь не с сервера

Ну и «Ничего не менялось, а аносамо» еще пользователю простительно сказать, но не админу.

   vde69

Модератор

6 — 22.05.14 — 16:32

(4) судя по всему у Вас несколько доменов?

сервер 1с в том-же домене, что и пользователи????

   nufnufcheg

7 — 22.05.14 — 16:34

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

по поводу «оно само и ничего не менялось» возразить нечего. только доверять сказанному и работать с тем что есть

   nufnufcheg

8 — 22.05.14 — 16:35

(6) домен один. имеет два названия (одно для старых ОС, другое для новых). например ИмяКомпании_Нью и ИмяКомпании.Локал.

При установке пользователю конкретной учетки — вижу оба домена и оба списка пользователей (одинаковых). Пробовал выбирать и тех и других. Результат один — выскакивает окно авторизации

   vde69

Модератор

9 — 22.05.14 — 16:43

забей руками в таком виде

\ИмяДоменаДляСтаройСистемылогин

   nufnufcheg

10 — 22.05.14 — 16:48

(9) такой адрес подставляется автоматически, когда я выбираю доменного пользователя из списка (что для имя домена для старых ОС, что для новых)

получается строка \ИмяКомпании_НьюИмяПользователя или \ИмяКомпании.ЛокалИмяПользователя

   DmitrO

11 — 22.05.14 — 16:53

План такой:

1.Пишем обработку в которой вызываем метод глобального контекста ПользователиОС(), и в полученной ТЗ смотрим на вторую колонку ИмяСервера.

Там будет именно короткое имя.

Это имя сервера-контроллера домена которое будет использовать 1С при аутентификации.

2.Пытаемся лукапить это короткое имя с компа, на котором стоит сервер 1С.

Из командной строки вот так:

nslookup.exe server_name

3.Смотрим какой возвращается айпишник и тот ли он, узнаем у админа, если не лукапится идем к админу и просим вежливо..

   nufnufcheg

12 — 22.05.14 — 17:12

(11) спасибо за такую развернутую инструкцию.

Для обоих имен домена выдал имя контроллера домена.

лукап по этому имени показал его ип-адрес.

и имя и ип-адрес соответствуют контроллеру домена.

по имени и по ип пингуются с сервера 1С..

   DmitrO

13 — 23.05.14 — 08:57

Ну тогда мы имеем что-то мелкопакостное. Типа того:

— системные часы, надо проверить время на сервере и на контроллере домена;

— некорректная установка софта на сервак, возможно некорректные записи в реесте, возможно обновления надо поставить, возможно они криво встали и т.п.

А сервер перегрузить пробовали?

   vde69

Модератор

14 — 23.05.14 — 09:00

попробуй \IP_ADИмяПользователя

   nufnufcheg

15 — 26.05.14 — 09:22

(13) сейчас сравнил время на контроллере и на сервере 1с через NET TIME. Время отличается. Это может быть причиной проблемы авторизации?

(14) не помогло

P.S. как ни странно, проблема исчезла в пятницу и появилась снова сегодня.

   nufnufcheg

16 — 26.05.14 — 09:23

ан нет, время как будто совпадает. разница в секунду, как раз момент между вызовами команды

   DmitrO

17 — 26.05.14 — 09:30

(16)это нормально

   DmitrO

18 — 26.05.14 — 09:31

(14) это в принципе не верно

   vde69

Модератор

19 — 26.05.14 — 09:38

(18) это позволяет исключить танцы с резервным контролером АД…

(15) если есть резервный контроллер AD подставь его ап

\IP_резервный_ADИмяПользователя

   vde69

Модератор

20 — 26.05.14 — 09:39

такое может быть при рассогласовании основного и резервного AD

   DmitrO

21 — 26.05.14 — 09:41

(19)(20) до имени пользователя AD пишется не айпиадрес и не имя контроллера домена, а именно имя самого домена, это разные имена в принципе

   oleg_km

22 — 26.05.14 — 09:51

Ошибка  0x80090324 denote «Time Skew» все-таки говорит о том что время на участниках процесса авторизации расходится, по-моему больше чем на 15 минут. Проверить нужно все контроллеры домена. Кроме того, обязательно нужно проверить часовые пояса. Вы можете видеть якобы одинаковое время, но если при этом будет другой часовой пояс или летнее/зимнее время, короче время, приведенное к мировому должно быть одинаковым

   DmitrO

23 — 26.05.14 — 10:03

Кстати, а служба времени запущена на сервере 1С?

   DmitrO

24 — 26.05.14 — 10:04

Системный журнал Windows тоже поизучать уже пора.

   vde69

Модератор

25 — 26.05.14 — 10:09

(21) можно указывать имя или IP ЛЮБОГО сервера который может разрешить sid пользователя.

Когда ты указываешь имя домена — то дополнительно идет поиск предподчительного сервера и подставляется в запрос….

кроме того автору следует проверить ОБРАТНУЮ зону ДНС, то есть видимость с сервера AD сервера 1с ПО_ИМЕНИ

   nufnufcheg

26 — 26.05.14 — 10:09

(22) Бинго! Время сервера 1С и контроллера домена совпадало до секунды. Однако на трех резервных контроллерах было расхождение от 5 до 10 минут. Привели время вручную с точностью до 1 минуты. Авторизация заработала!

Большое спасибо! Я люблю вас!

  

oleg_km

27 — 26.05.14 — 10:17

(26) На будущее: с гуглем дружите. Все это было найдено минут за пять.

Ну и время на контроллерах домена должно само синхронизироваться. А то в самое неподходящее время опять все обвалится

Пытаюсь подключиться ко внешнему источнику данных в конфигураторе. Создаю ВИД, выбираю «Выбрать из списка таблиц внешнего источника данных», далее, пытаюсь сформировать строку соединения и.»ошибка аутентификации клиента 1cv8 средствами операционной системы. Аутентификационный контекст клиента отсутствует в рабочем процессе» и падает платформа (8.3.10.2999). На другой машине с этой же платформой все ОК. Какие мысли?

Конфигуратор запущен на том же хосте, где запущена служба сервера приложений, в кластере которого развернута инфобаза, в конфигураторе которой ты подключаешься к ВИДу?

Чистка кэш не помогла. Конфигуратор и сервер 1с на разных машинах

На той машине, где сервер, все ОК. На третьей машине тоже ОК, Проблема только на конкретном хосте.

Пересоздай пользователя ИБ, под которым входишь в конфигуратор

Под другим пользователем та же история

Ну вот ты пишешь «На другой машине с этой же платформой все ОК». ИБ ведь не та же самая?

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Понравилась статья? Поделить с друзьями:
  • Ошибка аутентификации как это убрать
  • Ошибка аутентификации при доступе к вай фай
  • Ошибка аутентификации почты opera mail
  • Ошибка аутентификации как убрать ошибку
  • Ошибка аутентификации интернет что это