Доброго времени суток Уважаемые форумчане!
Заранее прошу прощения возможно за глупые вопросы... Скажу сразу я только учусь.
Суть вопроса вот в чем, есть конфигурация не типовая. Мне нужно создать управляемую форму к справочнику, форму создал... но тут и начинается, при открытии справочника в тонком клиенте пишет ошибку: "Попытка получения инициализированного значения параметра сеанса" Дальше жму на кнопку создать и опять пишет ошибку
"{Справочник.пмЗадачи.МодульОбъекта(60,58)}: Переменная не определена (глКонифигурацияДляКлиента)
НЕ РольДоступна("ПравоНаДобавлениеПапкиВКорне") и Не <<?>>глКонифигурацияДляКлиента и не глТекущийИсполнитель = ПараметрыСеанса.пмУчредитель Тогда"
{Справочник.пмЗадачи.МодульОбъекта(60,89)}: Переменная не определена (глТекущийИсполнитель)
НЕ РольДоступна("ПравоНаДобавлениеПапкиВКорне") и Не глКонифигурацияДляКлиента и не <<?>>глТекущийИсполнитель = ПараметрыСеанса.пмУчредитель Тогда
{Справочник.пмЗадачи.МодульОбъекта(45,5)}: Процедура или функция с указанным именем не определена (Предупреждение)
<<?>>Предупреждение("Запрещено добавлять задачи в данную папку!"+ Символы.ПС + "Задачи сотрудникам можно ставить в форме ""Оргсхемы и планирование"".");
{Справочник.пмЗадачи.МодульОбъекта(209,4)}: Процедура или функция с указанным именем не определена (пмбпНайтиСледующиеЗадачи)
<<?>>пмбпНайтиСледующиеЗадачи(ЭтотОбъект);
{Справочник.пмЗадачи.МодульОбъекта(921,32)}: Процедура или функция с указанным именем не определена (ОпредилитьДатаЗавершения)
Задача.ДатаЗавершенияПлан = <<?>>ОпредилитьДатаЗавершения(Задача.ДатаНачалаПлан, Задача.ПОИ);
Интуитивно я догадываюсь что проблема где то в параметре сеанса, более того там ничего не было, в модуле сеанса создал
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) и все, что дальше делать я не понимаю, хожу вокруг да около сдвигу никакого...
Помогите Пожалуйста!!!!!!
То что Вы увидели это не два параметра. Это две процедуры которые вызываются из модуля "ПолныеПрава". Т.е. чтобы понять как они работают в типовой - откройте общий модуль "ПолныеПрава" и ищите эти процедуры.
А вообще - думаю Вам лучше обратится к литературе, т.к. Вы не в курсе примитивных вещей, даже не представляю что Вы там городите )
Если не начнете учить самостоятельно по книжкам с примерами, потом будет еще БОЛЬШЕ вопросов. Отвечать на каждый никто не будет.
У-у-ух... Да, батенька....
Судя только по одним ошибкам трудно что-то конкретное подсказать, НО (самые элементарные вещи!):
1) Предупреждение() - у вас вызывается в модуле объекта. Это же чисто интерактивная процедура, вызывать можно только на клиентах!
2) Объект ПараметрыСеанса не доступен на тонком клиенте, хотите обратится с клиента - прыгайте через функцию общего серверного модуля!
ОбщийМодуль1 (на сервере):
Функция ПараметрыСеанса(Название) Экспорт
Возврат ПараметрыСеанса[Название]
КонецФункции
глТекущийИсполнитель = ОбщийМодуль1.ПараметрыСеанса("пмУчредитель")
всех с наступающим , посмотрел как заполняются параметры сеанса в типовой бухгалтерии и решил сделать тоже самое. Создал общий модуль "ПараметрСеанса" в него поместил след. код.
Процедура УстановитьПараметрыСеансаТекПользователь() Экспорт
//Ищем пользователя в спрвочники физ лиц.
Сотрудник = Справочники.пмСотрудники.НайтиПоНаименованию(ИмяПользователя());
//Если пользователь не найден заносим его в справочник
Если Сотрудник.Пустая() тогда
Объект = Справочники.пмСотрудники.СоздатьЭлемент();
Объект.Код = ИмяПользователя();
Объект.Наименование = ИмяПользователя();
Объект.Записать();
Сотрудник = Объект.Ссылка;
КонецЕсли;
//задаем параметр сеанса
ПараметрыСеанса.текИсполнитель = Сотрудник;
КонецПроцедуры
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
ПараметрСеанса.УстановитьПараметрыСеансаТекПользователь();
КонецПроцедуры
Попробуйте так:
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
УстановитьПараметрыСеансаТекПользователь();
КонецПроцедуры
Посчелкайте галки в свойствах модуля, как пишет logist. Ну и у функции должен быть признак Экспорт (у вас есть).
Должно быть так:
Ну и правописание проверьте, а то вдруг где ошиблись в одной букве...
Тут проблема немного в другом, дело в том что конфиг. изначально была написана на 8.1 потом конвертировали в 8.2. Модуль управляемого приложения совсем пуст. Я перенес из процедуры ПередНачаломРаботыСистемы(Отказ) модуля обычного приложения в общий модуль ПараметрСеанса 2 строки из процедуры.
Процедура ПередНачаломРаботыСистемы(Отказ) Экспорт
глВспомогательнаяОбработка = Обработки.пмСлужебнаяОбработка.Создать(); //в пмСлужебнаяОбработка заполняются все параметры сеанса
глВспомогательнаяОбработка.ПередНачаломРаботыСистемыPM(Отказ);
КонецПроцедуры
при отладке пишет что нет кучи переменных, в модуле управляемого приложения попробовал их объявить но и это ничего не дало.
листинг ощего модуля ПараметрСеанса имеет селд. вид:
Процедура УстановитьПараметрыСеансаТекПользователь() Экспорт
глВспомогательнаяОбработка = Обработки.пмСлужебнаяОбработка.Создать();
глВспомогательнаяОбработка.ПередНачаломРаботыСистемыPM();
//Ищем пользователя в спрвочники физ лиц.
Сотрудник = Справочники.пмСотрудники.НайтиПоНаименованию(ИмяПользователя());
//Если пользователь не найден заносим его в справочник
Если Сотрудник.Пустая() тогда
Объект = Справочники.пмСотрудники.СоздатьЭлемент();
Объект.Код = ИмяПользователя();
Объект.Наименование = ИмяПользователя();
Объект.Записать();
Сотрудник = Объект.Ссылка;
КонецЕсли;
//задаем параметр сеанса
ПараметрыСеанса.текИсполнитель = Сотрудник;
КонецПроцедуры
Уберите из
Процедура УстановитьПараметрыСеансаТекПользователь() Экспорт
глВспомогательнаяОбработка = Обработки.пмСлужебнаяОбработка.Создать();
глВспомогательнаяОбработка.ПередНачаломРаботыСистемыPM();
я слышал что в УПП все глобальные переменные загнаны в параметры сеанса, у Вас нет ссылки на эту конфу, что бы скачать и посмотреть как это делалают они?
http://pro1c.org.ua/redirect.php?http://users.v8.1c.ru/
Прочитал я вот это:
Сотрудник = Справочники.пмСотрудники.НайтиПоНаименованию(ИмяПользователя());
//Если пользователь не найден заносим его в справочник
Если Сотрудник.Пустая() тогда
Объект = Справочники.пмСотрудники.СоздатьЭлемент();
Объект.Код = ИмяПользователя();
Объект.Наименование = ИмяПользователя();
Объект.Записать();
Сотрудник = Объект.Ссылка;
КонецЕсли;
//задаем параметр сеанса
ПараметрыСеанса.текИсполнитель = Сотрудник;
КонецПроцедуры
Сотурдник = Справочники.Сотрудники.НайтиПоКоду(ИмяПользователя());
Если НЕ ЗначениеЗаполнено(Сотрудник) Тогда
Объект = Справочники.Сотрудники.СоздатьЭлемент();
Объект.Код = ИмяПользователя();
Объект.Наименование = ПолноеИмяПользователя();
Объект.Записать();
Сотрудник = Объект.Ссылка;
КонецЕсли;
ПараметрыСеанса.ТекущийПользователь = Сотрудник;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua