Новые статьи
This commit is contained in:
parent
651d1c19cc
commit
4c818a6253
@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
## Через консоль
|
||||||
|
```PowerShell
|
||||||
|
regsvr32 "C:\Program Files\1cv8\[номер платформы]\bin\comcntr.dll"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Вручную
|
||||||
|
|
||||||
|
### Шаг 1: Создание COM+ приложения
|
||||||
|
|
||||||
|
1. Откройте **Панель управления** → **Администрирование** → **Службы компонентов**.
|
||||||
|
2. Перейдите по пути: Компьютеры → Мой компьютер → Приложения COM+
|
||||||
|
3. Щёлкните **Создать приложение**.
|
||||||
|
4. Выберите **Создать новое приложение**.
|
||||||
|
5. Введите имя: `V83.COMConnector`.
|
||||||
|
6. Установите переключатель в положение **Серверное приложение**.
|
||||||
|
7. Укажите пользователя с правами администратора.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Шаг 2: Добавление компонента `V83COMConnector`
|
||||||
|
|
||||||
|
1. В дереве слева найдите приложение `V83COMConnector`.
|
||||||
|
2. Перейдите в раздел **Компоненты**.
|
||||||
|
3. Нажмите **Создание нового компонента** → **Установка новых компонентов**.
|
||||||
|
4. Найдите и выберите файл `comcntr.dll` в каталоге установки 1С.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Шаг 3: Настройка безопасности приложения
|
||||||
|
|
||||||
|
1. Щёлкните правой кнопкой мыши по `V83COMConnector` → выберите **Свойства**.
|
||||||
|
2. Перейдите на вкладку **Безопасность**.
|
||||||
|
3. Снимите галочку **Принудительная проверка доступа для приложений**.
|
||||||
|
4. Установите галочку **Применить политику программных ограничений**.
|
||||||
|
5. В поле **Уровень ограничений** выберите **Неограниченный**.
|
@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
```bsl
|
||||||
|
|
||||||
|
//Для заполнения реквизитов создаваемой задачи при старте бизнес-процесса на элементе "ТочкаДействия" карты маршрута нужно определить обработчик события "При создании задач"
|
||||||
|
Процедура ИсполнитьПоручениеПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ)
|
||||||
|
Для Каждого ФормируемаяЗадача Из ФормируемыеЗадачи Цикл
|
||||||
|
ФормируемаяЗадача.Наименование = Описание;
|
||||||
|
ФормируемаяЗадача.Исполнитель = Исполнитель;
|
||||||
|
ФормируемаяЗадача.ПредметЗадачи = ПредметЗадачи;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
```
|
@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
* Добавьте подсистему Взаимодействие, включив ее в командный интерфейс.
|
||||||
|
|
||||||
|
* Добавьте определяемый тип ПредметПроцесса, включив в него все документы и справочники.
|
||||||
|
|
||||||
|
* Добавьте в подсистему Взаимодействие задачу Задача, задав для нее:
|
||||||
|
Достаточно длинное наименование (например, 150 знаков).
|
||||||
|
Реквизит адресации Исполнитель (СправочникСсылка.Сотрудники).
|
||||||
|
Реквизит Предмет (ОпределяемыйТип.ПредметПроцесса)
|
||||||
|
|
||||||
|
* Добавьте в подсистему Взаимодействие процесс Поручение, задав для него:
|
||||||
|
Обязательный к заполнению реквизит Описание (строка, которая станет наименованием задачи).
|
||||||
|
Обязательный к заполнению реквизит Исполнитель (сотрудник, который станет исполнителем задачи).
|
||||||
|
|
||||||
|
* Простую схему процесса из одного действия с наименованием задачи по умолчанию "Исполнить поручение".
|
||||||
|
|
||||||
|
* Для единственного действия переопределите обработчик события ПриСозданииЗадач, заполняя в нем наименования и исполнителей формируемых задач по данным самого процесса:
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
Для Каждого ФормируемаяЗадача Из ФормируемыеЗадачи Цикл
|
||||||
|
ФормируемаяЗадача.Наименование = Описание;
|
||||||
|
ФормируемаяЗадача.Исполнитель = Исполнитель;
|
||||||
|
КонецЦикла;
|
||||||
|
```
|
||||||
|
* Удостоверьтесь, что создаваемые задачи содержат исполнителя и наименование из процессов-поручений.
|
||||||
|
* Добавьте в задачу Задача реквизит Результат (строка неограниченной длины).
|
||||||
|
* В модуле задачи переопределите обработчик ПередВыполнением, в котором:
|
||||||
|
* При отсутствии результата - установите Отказ в Истина и выведите пользователю разумное сообщение
|
||||||
|
При наличии результата - ничего не делайте
|
||||||
|
* Взведите флаг "Заполнять из данных заполнения" стандартного реквизита ВедущаяЗадача процесса Поручение.
|
||||||
|
* К процессу Поручение добавьте команду ПодчиненноеПоручение, параметризованную типом ЗадачаСсылка.Задача. В модуле команды откройте форму нового поручения, передав в составе параметров открываемой формы структуру ЗначенияЗаполнения со свойством ВедущаяЗадача, заполненным параметром команды (задачей).
|
||||||
|
* Добавьте кнопку для этой команды на форму задачи и в список задач. Удостоверьтесь, что при нажатии создается подчиненный процесс Поручение.
|
||||||
|
* Добавьте справочник Роли Без кода, с наименованием разумной длины
|
||||||
|
* Добавьте регистр сведений ИсполнителиРолей:
|
||||||
|
С измерениями Роль (СправочникСсылка.Роли) и Исполнитель (СправочникСсылка.Сотрудники)
|
||||||
|
Запретив незаполненные значения измерений
|
||||||
|
* В задачу Задача:
|
||||||
|
Добавьте адресацию по регистру ИсполнителиРолей
|
||||||
|
Добавьте реквизит адресации Роль (СправочникСсылка.Роли)
|
||||||
|
Основным реквизитом адресации останется Исполнитель
|
||||||
|
* Свяжите реквизиты адресации Роль и Исполнитель с одноименнными измерениями регистра ИсполнителиРолей
|
||||||
|
* В поле "Текущий исполнитель" выберите параметр сеанса ТекущийСотрудник
|
||||||
|
* В процессе Поручение
|
||||||
|
Расширьте тип реквизита Исполнитель типом СправочникСсылка.Роли.
|
||||||
|
Доработайте обработчик события ПриСозданииЗадач так, чтобы в зависимости от типа исполнителя в задаче заполнялся Исполнитель или Роль.
|
||||||
|
* Добавьте форму списка задач ЗадачиМне Не назначая ее основной формой (основная форма будет содержать все задачи)
|
||||||
|
* Добавьте в нее динамический список по виртуальной таблице Задача.Задача.ЗадачиПоИсполнителю с разумным минимумом реквизитов
|
||||||
|
* Добавьте команду ПринятьКИсполнению, при вызове которой на севере:
|
||||||
|
Получите объект текущей задачи
|
||||||
|
Установите реквизит Исполнитель равным значению параметра сеанса ТекущийСотрудник
|
||||||
|
* Запишите объект текущей задачи
|
||||||
|
* Добавьте этот список в рабочую область начальной страницы
|
||||||
|
* Удостоверьтесь, что пользователи видят на рабочем столе свои задачи, адресованные лично или по роли.
|
@ -0,0 +1,62 @@
|
|||||||
|
|
||||||
|
```bsl
|
||||||
|
Схема = Новый СхемаЗапроса;
|
||||||
|
|
||||||
|
// в схеме уже есть один пакет и один оператор
|
||||||
|
ЗапросВыбора = Схема.ПакетЗапросов.Получить(0);
|
||||||
|
ОператорВыбрать = ЗапросВыбора.Операторы.Получить(0);
|
||||||
|
|
||||||
|
// Заполняем источники данных
|
||||||
|
Если ТипЗнч(ВладелецФайла) = Тип("ДокументСсылка.УТЗ_ПЛ_ЗаявкаНаТранспорт") Тогда
|
||||||
|
ИсточникДанных = ОператорВыбрать.Источники.Добавить(
|
||||||
|
"Справочник.УТЗ_ПЛ_ЗаявкаНаТранспортПрисоединенныеФайлы", "ПрисоединенныеФайлы");
|
||||||
|
ИначеЕсли ТипЗнч(ВладелецФайла) = Тип("ДокументСсылка.УТЗ_ПЛ_ПутевойЛист") Тогда
|
||||||
|
ИсточникДанных = ОператорВыбрать.Источники.Добавить(
|
||||||
|
"Справочник.УТЗ_ПЛ_ПутевыеЛистыПрисоединенныеФайлы", "ПрисоединенныеФайлы");
|
||||||
|
Иначе
|
||||||
|
ИсточныкДанных = Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Выбираемые поля
|
||||||
|
ОператорВыбрать.ВыбираемыеПоля.Добавить("ПрисоединенныеФайлы.Загрузил");
|
||||||
|
ОператорВыбрать.ВыбираемыеПоля.Добавить("ПрисоединенныеФайлы.Размер");
|
||||||
|
ОператорВыбрать.ВыбираемыеПоля.Добавить("ПрисоединенныеФайлы.Расширение");
|
||||||
|
ОператорВыбрать.ВыбираемыеПоля.Добавить("ПрисоединенныеФайлы.ИмяФайла");
|
||||||
|
ОператорВыбрать.ВыбираемыеПоля.Добавить("ПрисоединенныеФайлы.ВладелецФайла");
|
||||||
|
ОператорВыбрать.ВыбираемыеПоля.Добавить("ПрисоединенныеФайлы.НомерВерсии");
|
||||||
|
ОператорВыбрать.ВыбираемыеПоля.Добавить("ПрисоединенныеФайлы.ПутьКФайлуНаСервере");
|
||||||
|
|
||||||
|
// Условия отбора
|
||||||
|
ОператорВыбрать.Отбор.Добавить("ПрисоединенныеФайлы.ВладелецФайла = &ВладелецФайла");
|
||||||
|
ОператорВыбрать.Отбор.Добавить("ПрисоединенныеФайлы.НомерВерсии = &НомерВерсии");
|
||||||
|
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.Текст = ЗапросВыбора.ПолучитьТекстЗапроса();
|
||||||
|
Запрос.УстановитьПараметр("ВладелецФайла", ВладелецФайла);
|
||||||
|
Запрос.УстановитьПараметр("НомерВерсии", НомерФайла);
|
||||||
|
|
||||||
|
Результат = Запрос.Выполнить();
|
||||||
|
Если Результат.Пустой() Тогда
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Выборка = Результат.Выбрать();
|
||||||
|
```
|
||||||
|
|
||||||
|
Результат
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
ВЫБРАТЬ
|
||||||
|
ПрисоединенныеФайлы.Загрузил КАК Загрузил,
|
||||||
|
ПрисоединенныеФайлы.Размер КАК Размер,
|
||||||
|
ПрисоединенныеФайлы.Расширение КАК Расширение,
|
||||||
|
ПрисоединенныеФайлы.ИмяФайла КАК ИмяФайла,
|
||||||
|
ПрисоединенныеФайлы.ВладелецФайла КАК ВладелецФайла,
|
||||||
|
ПрисоединенныеФайлы.НомерВерсии КАК НомерВерсии,
|
||||||
|
ПрисоединенныеФайлы.ПутьКФайлуНаСервере КАК ПутьКФайлуНаСервере
|
||||||
|
ИЗ
|
||||||
|
Справочник.УТЗ_ПЛ_ЗаявкаНаТранспортПрисоединенныеФайлы КАК ПрисоединенныеФайлы
|
||||||
|
ГДЕ
|
||||||
|
ПрисоединенныеФайлы.ВладелецФайла = &ВладелецФайла
|
||||||
|
И ПрисоединенныеФайлы.НомерВерсии = &НомерВерсии
|
||||||
|
```
|
@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
title: Статусы соединения с DIRECTUM
|
||||||
|
---
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
// Функция - Статус подключения к directum
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Соответствие -
|
||||||
|
// * Ключ - Число - ID Статуса выполнения метода GetApplicationEx
|
||||||
|
// * Значение - Строка - Описание статуса выполнения метода GetApplicationEx
|
||||||
|
Функция СтатусыПодключенияКDirectum() Экспорт
|
||||||
|
|
||||||
|
СтатусыПодключения = Новый Соответствие;
|
||||||
|
СтатусыПодключения.Вставить(0, "Ошибок нет, объект приложения создан успешно");
|
||||||
|
СтатусыПодключения.Вставить(1, "Требуется изменение пароля, у пользователя установлен пароль по умолчанию");
|
||||||
|
СтатусыПодключения.Вставить(17, "Сервер не найден");
|
||||||
|
СтатусыПодключения.Вставить(2763, "Роль приложения не найдена");
|
||||||
|
СтатусыПодключения.Вставить(4060, "Невозможно открыть базу данных");
|
||||||
|
СтатусыПодключения.Вставить(15247, "У пользователя нет прав на выполнение данного действия");
|
||||||
|
СтатусыПодключения.Вставить(18456, "Не удалось произвести вход в систему");
|
||||||
|
СтатусыПодключения.Вставить(-3, "Неправильное имя пользователя или пароль");
|
||||||
|
СтатусыПодключения.Вставить(-8, "Данная система не установлена. Система установлена, если она указана в файле SystemInfo.xml");
|
||||||
|
СтатусыПодключения.Вставить(-42, "Неизвестная ошибка");
|
||||||
|
СтатусыПодключения.Вставить(-43, "Не удалось установить соединение с базой данных");
|
||||||
|
СтатусыПодключения.Вставить(-44, "Ошибка установки соединения");
|
||||||
|
СтатусыПодключения.Вставить(-45, "Неверные параметры соединения");
|
||||||
|
СтатусыПодключения.Вставить(-96, "Неверные параметры разблокировки");
|
||||||
|
СтатусыПодключения.Вставить(-97, "Ресурс заблокирован");
|
||||||
|
|
||||||
|
Возврат СтатусыПодключения;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
```
|
@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
title: Строка соединения DIRECTUM
|
||||||
|
---
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
// Функция - Возвращает строку соединения directim в формате
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// СтрокаСоединения - Строка вида ServerName=<ИмяСервера>;DBName=<ИмяБазыДанных>;UserName=<Логин>;Password=<Пароль>
|
||||||
|
//
|
||||||
|
Функция СтрокаСоединенияDirectim() Экспорт
|
||||||
|
|
||||||
|
ДанныеСоединения = ДанныеСоединенияDirectum();
|
||||||
|
|
||||||
|
СтрокаСоединения = СтрШаблон("ServerName=%1;DBName=%2;UserName=%3;Password=%4",
|
||||||
|
ДанныеСоединения.ИмяСервера,
|
||||||
|
ДанныеСоединения.ИмяБазыДанных,
|
||||||
|
ДанныеСоединения.Логин,
|
||||||
|
ДанныеСоединения.Пароль);
|
||||||
|
|
||||||
|
Возврат СтрокаСоединения;
|
||||||
|
|
||||||
|
КонецФункци
|
||||||
|
```
|
Loading…
x
Reference in New Issue
Block a user