Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> ЗАвершение работы в программе          
kosalex Подменю пользователя
сообщение 21.03.14, 16:54
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Добрый день. В модуле сеанса пишу:
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
    ТекПользователь = Справочники.Сотрудники.НайтиПоНаименованию(ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
    Если ЗначениеЗаполнено(ТекПользователь) Тогда
        ПараметрыСеанса.ТекущийПользователь = ТекПользователь;
    Иначе
        Если НЕ РольДоступна("Директор") Тогда
              Модуль.ЗакрытьПрограмму(); // ОШИБКА
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры



Ошибка:
{МодульСеанса(7)}: Метод объекта не обнаружен (ЗакрытьПрограмму)
Модуль.ЗакрытьПрограмму();

ОбщийМодуль - Модуль: Клиент,Сервер.
&НаКлиенте
Процедура ЗакрытьПрограмму() Экспорт
ЗавершитьРаботуСистемы();    
КонецПроцедуры


Как завершить работу программы если не найден пользователь в справочнике?

Vofka Подменю пользователя
сообщение 21.03.14, 16:56
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Просто напишите ЗавершитьРаботуСистемы();

kosalex Подменю пользователя
сообщение 21.03.14, 16:58
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(Vofka @ 21.03.14, 16:56) *
Просто напишите ЗавершитьРаботуСистемы();

В модуле сеанса написал :
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
    ТекПользователь = Справочники.Сотрудники.НайтиПоНаименованию(ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
    Если ЗначениеЗаполнено(ТекПользователь) Тогда
        ПараметрыСеанса.ТекущийПользователь = ТекПользователь;
    Иначе
        Если НЕ РольДоступна("Директор") Тогда
              ЗавершитьРаботуСистемы();
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры


ОШИБКА:
{МодульСеанса(7,6)}: Процедура или функция с указанным именем не определена (ЗавершитьРаботуСистемы)
<<?>>ЗавершитьРаботуСистемы(); (Проверка: Сервер)

alex040269 Подменю пользователя
сообщение 21.03.14, 17:04
Сообщение #4

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Это нужно сделать в ПередНачаломРаботыСистемы в модуле приложения


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

kosalex Подменю пользователя
сообщение 21.03.14, 17:25
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(alex040269 @ 21.03.14, 17:04) *
Это нужно сделать в ПередНачаломРаботыСистемы в модуле приложения

Это сделать,что это? Проверку найден ли пользователь в справочнике?

Установка параметров сеанса(модуль):
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
    ТекПользователь = Справочники.Сотрудники.НайтиПоНаименованию(ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
    ПараметрыСеанса.ТекущийПользователь = ТекПользователь;
КонецПроцедуры


Общий модуль (сервер,клиент,вызов сервера):
&НаСервере
Функция ПолучитьТекущегоПользователя() Экспорт
    ТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;    
    Возврат ТекущийПользователь;
КонецФункции

&НаСервере
Функция ПроверитьРоль() Экспорт
    Если РольДоступна("Директор") Тогда
        Возврат Истина;
    Иначе
        Возврат Ложь;
    КонецЕсли;
КонецФункции



Модуль управляемого приложения:
Процедура ПередНачаломРаботыСистемы(Отказ)
    ТекущийПользователь = МойМодуль.ПолучитьТекущегоПользователя();
    Если НЕ ЗначениеЗаполнено(ТекущийПользователь) И Не МойМодуль.ПроверитьРоль() Тогда
        ЗавершитьРаботуСистемы();
    КонецЕсли;
КонецПроцедуры



ОШИБКА:{МодульУправляемогоПриложения(2)}: Метод объекта не обнаружен (ПолучитьТекущегоПользователя)
ТекущийПользователь = МойМодуль.ПолучитьТекущегоПользователя();


Убрал галку "Клиент" с общего модуля,заработало.

Скажите, почему с галкой "Клиент" не работало? ведь директивы стоят!

logist Подменю пользователя
сообщение 21.03.14, 17:26
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

А Вы не пробовали открыть типовое решение, и посмотреть как там это реализовано.

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


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 21.03.14, 17:31
Сообщение #7

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(logist @ 21.03.14, 17:26) *
А Вы не пробовали открыть типовое решение, и посмотреть как там это реализовано.

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



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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 30.05.24, 13:17
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!