Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Блокируется пользователь подключения к SQL

В локальной политики безопасности windows 2008 R2 - политика блокировки пользователь стоит галка "после 3 раз неверного ввода пароля -блокировать", после изменения пароля учетки подключения 1с к SQL происходит блокировка учетки в SQL. Галку убираешь - все работает. До изменения пароля все работало и с установленной галкой в политике безопасности.
Ответ:
У Вас служба 1С от какого пользователя запускается?
У этого пользователя убюерите смену пароля или заведите другого пользователя у кого парольменяться не будет
Вопрос: Подключение к 1С77 через COM объект из 1с 8

Всем привет!
Написал внешнюю обработку подключения к 1с7 из 1с8 через COM объект.
Хочу чтоб она работала регламентным заданием, использую запуск "ВызовСерверногоМетода"
Моя обработка работает в файловой базе данных, а нужно чтоб заработало в базе расположенной на SQL сервере.
БазаБухг = Новый COMОбъект("V77S.Application");
Не создается сам COM объект при запуске с SQL сервера.
Ответ: Добавили на 1с7 сервер пользователя USR1CV8 с паролем как на 1с сервере указан
Зашли на сервере 1с8 под пользователем USR1CV8 и запустили 1с7, прописали путь до базы и зашли один раз.

Все заработало. )
Установил регламентным заданием для теста 10 минут.
Закрыл 1с8, мониторил в базе 7ки , как пользователь подключается и отключается каждые 10 минут.

Всем большое спасибо, натолкнули на нужную мысль))
Вопрос: Linux: подключение 1С 8 к базе MySQL

Добрый день. Подскажите как можно подключить базу расположенную на My SQL через код 1С, без использования внешних источников данных, т.к. нужно предоставить возможность пользователю настраивать параметры подключения к базе MySQL.
Платформа: 8.3.10.2168
ОС (1С Сервер): Debian 9.
Ответ: Вот кстати как программно задать параметры подключения к MySQL:

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

ПараметрыСоединенияССайтомМИКО.СтрокаСоединения= "
|DRIVER={MySQL ODBC 5.1 Driver};
|SERVER=192.168.1.10;
|DATABASE=bitrix;
|UID=root;
|PWD=dbpassword_4_user_root;";
ВнешниеИсточникиДанных.СайтМИКО.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединенияССайтомМИКО);
ВнешниеИсточникиДанных.СайтМИКО.УстановитьСоединение();
Запрос = Новый Запрос("ВЫБРАТЬ
                      |   b_stat_browser.Ссылка,
                      |   b_stat_browser.ID,
                      |   b_stat_browser.USER_AGENT
                      |ИЗ
                      |   ВнешнийИсточникДанных.СайтМИКО.Таблица.b_stat_browser КАК b_stat_browser");
Таблица = Запрос.Выполнить().Выгрузить();

информация взята от сюда:
Вопрос: Генерация записи по имеющимся пользователям в БД

Всем привет.
Цель такая: Я организовал добавление пользователей в режиме предприятия, теперь как сделать так, что бы, если у нас есть пользователь созданный через конфигуратор (т.е. ручками) то создалась бы запись в
1C
1
Справочники.Пользователи
.
Думаю, что нужно писать код в форме списка процедура
1C
1
ПриОткрытии
.
Сам алгоритм представляю себе так: Если у нас пользователи информационной базы имеются в бд и если в справочнике пользов. нет записи, со схожим наименованием тогда создать запись. За исключением польз с именем Администратор, эта запись не должна там быть.
Вот собственно код:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
&НаСервере
Процедура ПриОткрытииНаСервере()//Добовляем пользователя "Администратор", при открытии пользователей.
    РольАдминистратор = Метаданные.Роли.Администратор;
    РольПользователь = Метаданные.Роли.Пользователь;
    АдминВБазе = ПользователиИнформационнойБазы.НайтиПоИмени("Администратор");
    Если АдминВБазе = Неопределено Тогда
        НовыйПользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
        НовыйПользователь.Имя = "Администратор";
        НовыйПользователь.ПолноеИмя = "Администратор"; 
        НовыйПользователь.Пароль = "1234";
        НовыйПользователь.ПоказыватьВСпискеВыбора = Ложь;
        НовыйПользователь.Роли.Добавить(РольАдминистратор);
        НовыйПользователь.Записать();
    КонецЕсли;
    
    Выборка = Справочники.Пользователи.Выбрать();//Говоря коротка, если существует запись определенного пользователя в справочнике пользователи, но он по каким-либо причинам не содержится в таблице пользователей, след. код это исправляет. 
    Пока Выборка.Следующий() Цикл
        Если ПользователиИнформационнойБазы.НайтиПоИмени(Выборка.Наименование) = Неопределено Тогда // Если такого пользователя нет в базе
        НовыйПользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
        НовыйПользователь.Имя = Выборка.Наименование;
        НовыйПользователь.ПолноеИмя = Выборка.Наименование; 
        НовыйПользователь.ПоказыватьВСпискеВыбора = Истина;
        НовыйПользователь.Роли.Добавить(РольПользователь);
        НовыйПользователь.Записать();
        КонецЕсли;  
    КонецЦикла;
    
КонецПроцедуры
 
//////////////////////////////////////////////////////////////////////////////////////////
&НаСервере
Процедура ПриОткрытииНаСервереДобавлЗапись();
    
    //спр=СоздатьОбъект("Справочник.Пользователи");
    //Если Спр.НайтиПоКоду(ИмяПользователя())=0 Тогда
    //  Спр.Новый();
    //  Спр.Код=ИмяПользователя();
    //  Спр.Записать();
    //КонецЕсли;
    //Спр.Блокировать(1);
    
    Имя = Метаданные.Имя;
    Выборка =  Справочники.Пользователи.Выбрать();
    ЮзерыИнформБазы = ПользователиИнформационнойБазы.ПолучитьПользователей();
    НоходимИмя = ЮзерыИнформБазы.Найти(Метаданные.Имя);
    Для Каждого  ФиндИмя Из 
    Если ЮзерыИнформБазы <> Неопределено и ЮзерыИнформБазы.Найти(Метаданные.Имя)= Выборка.Наименование Тогда
        
    КонецЕсли;  
        
КонецПроцедуры
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
&НаКлиенте 
Процедура ПриОткрытии(Отказ)
    ПриОткрытииНаСервере();
    ПриОткрытииНаСервереДобавлЗапись();
        Если ... Сообщить("Добавлена новая запись"); 
КонецПроцедуры
Ответ:
1C
1
2
3
4
5
6
7
8
9
10
    СписокПользователей =ПользователиИнформационнойБазы.ПолучитьПользователей();
    Для Каждого Пользователь  из СписокПольЗователей цикл
        ТекПользователь =  Справочники.Пользователи.НайтиПоНаименованию(Пользователь.Имя);
        Сообщить(Пользователь);
        Если ТекПользователь.Пустая() Тогда
            Создать =  Справочники.Пользователи.СоздатьЭлемент();
            Создать.Наименование = Пользователь;
            Создать.Записать();
       КонецЕсли;
    КонецЦикла;
Вопрос: Подключение внешней компоненты

Есть некий сканер (подключается по wi-fi, тест проходит). Установил для него дрова, в папке с дровами нашёл пресловутую PriceDrv.dll, которую описывают .
У меня розничная конфа, запуск в толстом клиенте управляемого приложения.
Dll-регана!

Подключаю ВК:
Создаю драйвер (как указано в статье ИС, да и в инструкции этому сканеру) и получаю fail:
Код:
Драйвер = Новый("AddIn.PriceChecker");

Перечитал ИТС по подключениям ВК, перепробовал все варианты - безрезультатно.

Вложения:

  • Размер файла:
    53,6 КБ
    Просмотров:
    3
  • Размер файла:
    13,6 КБ
    Просмотров:
    3
  • Размер файла:
    4,2 КБ
    Просмотров:
    4
Ответ:
Получилось подключить на локальном компе:
Код:
Перем Драйвер Экспорт;

&НаСервере
Процедура ПодключитьВнешнююКомпонентуНаСервере()
      
    Попытка
        ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("PriceDrv.dll", "My", ТипВнешнейКомпоненты.COM);
        Драйвер = Новый("AddIn.My.PriceChecker");
        Сообщить("Подключение успешно!");
    Исключение
        Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));  
    КонецПопытки;
  
КонецПроцедуры
А на сервере (терминальное подключение) не получается. Ну, бог с ним, пускай админ разруливает эту ситуёвину.
Но я всё равно не понимаю, каким образом я смогу обрабатывать события сканера ШК.
Неужели этой библиотеки достаточно для перехвата событий в соответствующем обработчике модуле формы моей внешней обработки?
Код:
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
  
    Если Источник <> "PriceChecker" Тогда
        Возврат;
    КонецЕсли;
  
    Сообщить("Событие перехвачено!", СтатусСообщения.Внимание);
  
    //ШК = СокрЛП(Данные);
    //ТаблицаНоменклатуры = Штрихкодирование.ПолучитьДанныеНоменклатурыПоШтрихкоду(ШК);
  
КонецПроцедуры
--- Объединение сообщений, 18 май 2017 ---
Повторюсь: он настроен, "общение" с тестом драйвера проходит, ответы получаю. Но как 1с увидит это я вообще не понимаю.
Вопрос: Работа со списком пользователей ИБ, связь со справочником Пользователи, вывод на форму

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

Итак вопрос, как сопоставить справочник Пользователи и список пользователей ИБ и вывести на форму?
Ответ:
Сообщение от Void-87
Есть одна идея, при создании записи в справочнике Пользователи, генерировать аналогичную запись в Пользователях ИБ...
...и сразу в запись справочника Пользователи записывать ид сгенеренного пользователя ИБ
Сообщение от Void-87
Но такой подход даст сбой, если будет сначала админ через конфигуратор создаст пользователя ИБ
вариант1: забить на админа (не заморачиваться справочником вовсе), пусть в конфигуратор руки не сует, а заводит в пользовательском режиме (как в последних типовых).
вариант2: при запуске 1с, в случае отсутствия вошедшего пользователя ИБ в справочнике - создавать
Вопрос: Под каким пользователем выполнится команда на сервере?

Здравствуйте!
Есть Клиент-Серверный вариант поставки Конфигурации. Необходимо выполнить команду на сервере под определенным пользователем.
СМД = Новый COMОбъект("WScript.Shell");
СМД.Run(Команда);

Сами регламентные задания выполняются под тем пользователем под которым запущен сервер 1с, а вот с командами я не могу разобраться.
Под каким пользователем будет выполнена "Команда" на сервере? Как узнать под каким пользователем она выполняется?
Сделал небольшой код который из wmi получает пользователя и домен,но полученные данные какие-то странные - Пользователя такого вообще нет(полученное имя - имя компьютера).
oLocator = Новый COMОбъект("WbemScripting.SWbemLocator");
		oService = oLocator.ConnectServer(".", "root\CIMV2");
		//listOfprocessDate = oService.ExecQuery("select DNSHostName,Domain from Win32_ComputerSystem");
		listOfprocessDate = oService.ExecQuery("select * from Win32_ComputerSystem");
		
		Для Каждого Эл Из listOfprocessDate Цикл
			
			ИмяПользователя = ПолучитьЗначениеРеквизитаОбъекта(Эл,"DNSHostName");
			Домен = ПолучитьЗначениеРеквизитаОбъекта(Эл,"Domain");
			
		КонецЦикла;

Подскажите как получить имя пользователя под которым выполняются команды на стороне сервера.
Ответ:
jeep81
Здравствуйте!
Есть Клиент-Серверный вариант поставки Конфигурации. Необходимо выполнить команду на сервере под определенным пользователем.
СМД = Новый COMОбъект("WScript.Shell");
СМД.Run(Команда);

Сами регламентные задания выполняются под тем пользователем под которым запущен сервер 1с, а вот с командами я не могу разобраться.
Под каким пользователем будет выполнена "Команда" на сервере? Как узнать под каким пользователем она выполняется?
Сделал небольшой код который из wmi получает пользователя и домен,но полученные данные какие-то странные - Пользователя такого вообще нет(полученное имя - имя компьютера).
oLocator = Новый COMОбъект("WbemScripting.SWbemLocator");
		oService = oLocator.ConnectServer(".", "root\CIMV2");
		//listOfprocessDate = oService.ExecQuery("select DNSHostName,Domain from Win32_ComputerSystem");
		listOfprocessDate = oService.ExecQuery("select * from Win32_ComputerSystem");
		
		Для Каждого Эл Из listOfprocessDate Цикл
			
			ИмяПользователя = ПолучитьЗначениеРеквизитаОбъекта(Эл,"DNSHostName");
			Домен = ПолучитьЗначениеРеквизитаОбъекта(Эл,"Domain");
			
		КонецЦикла;

Подскажите как получить имя пользователя под которым выполняются команды на стороне сервера.

под кем служба сервера запущена под те и выполнится (можно поменять в службах винды)
Вопрос: Подключение Атол 55ф на УТ 11.0 без обновления до последней версии 11.3

Всем привет! Может у кого из ребят есть успешный опыт подключения новых ККТ онлайн 54 ФЗ для УТ 11.0-11.2? Большая просьба поделиться примером конфигурации, возможно не бесплатно!
Ответ: в каталоге за 2-3 т.р. есть обработки подключения почти для всех конфигураций, в т.ч. очень старых.
Вопрос: При подключении 1С MS SQL выдается ошибку *ошибка доступа к файлу*

Всем доброго вечера! Столкнулся с проблемой следующего характера: при подключении базы 1С на платформе 8.3 к 1С MS SQL выдается ошибку *ошибка доступа к файлу*, к какому именно файлу - не пишет. 1С управление серверами не может удалить базу из себя. SQL 2003 года. Может кто нибудь сталкивался с такой проблемой??
Ответ:
SunnyAmber
Всем доброго вечера! Столкнулся с проблемой следующего характера: при подключении базы 1С на платформе 8.3 к 1С MS SQL выдается ошибку *ошибка доступа к файлу*, к какому именно файлу - не пишет. 1С управление серверами не может удалить базу из себя. SQL 2003 года. Может кто нибудь сталкивался с такой проблемой??

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

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


Звонки будут осуществлять порядка 30-40 человек. В справочнике сотрудников существует отдельный реквизит куда вводиться внутренний номер телефона.

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

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

Заранее спасибо.
Ответ:
Получилось сделать вот так:

Пользователь = ПараметрыСеанса.ТекущийПользователь;
сообщить("Внутренний номер " + пользователь.ВнутреннийНомер);
Протокол = "SIP/"; // еще может быть IAX2
Откуда = Протокол+пользователь.ВнутреннийНомер;

где ВнутреннийНомер - это реквизит справочника "Пользователи", в котором хранится номер сотрудника