Имя: Пароль:
1C
1С v8
Ошибка при установке значения атрибута контекста
,
0 Jamiq
 
06.09.12
09:13
Утро доброе. Установил 1с на новый компьютер, захожу под любым пользователем, выдает такую ошибку:

{МодульПриложения(182)}: Ошибка при установке значения атрибута
контекста (***): Несоответствие типов
ПараметрыСеанса.*** = Компьютер;

В инете, нашел подобную проблему, только, приравнивание идет к ТекущийПользователь. Там проблема решается чисткой профиля в windows.

А как решить, данную, проблему?
Комп находиться на расстоянии, профиль почищу, как доберусь, просто хотел узнать, может загвоздка в другом.
1 Рэйв
 
06.09.12
09:15
Компьютер=Неопределено у тебя скорее всего.
2 Jamiq
 
06.09.12
09:16
Хм, база одна на 20 компов, проблема только с этим.
Неопределенность смотреть в том же модуле?
3 Рэйв
 
06.09.12
09:18
(2)Смотри  где определяется переменная Компьютер
4 Jamiq
 
06.09.12
10:11
Переменная Компьютер берется из запроса.
Вот кусок кода:

Если РольДоступна("смсПользователь")  Тогда
   
       Если ПараметрыСеанса.смсТекущийКонтакт = Неопределено ИЛИ ПараметрыСеанса.смсТекущийКонтакт = NULL ИЛИ ПараметрыСеанса.смсТекущийКонтакт = Справочники.смсКонтактЛист.ПустаяСсылка() Тогда
   
               ПодключитьОбработчикОжидания("смсПроверитьСообщения"        , 10);
               ПодключитьОбработчикОжидания("смсВыполнитьКомандуИзОчереди"    , 20);
               
               Запрос = Новый Запрос;
               Запрос.Текст = "ВЫБРАТЬ
               |    смсКомпьютеры.Ссылка
               |ИЗ
               |    Справочник.смсКомпьютеры КАК смсКомпьютеры
               |ГДЕ
               |    смсКомпьютеры.Наименование = &Наименование";
               
               Запрос.УстановитьПараметр("Наименование",ИмяКомпьютера() );
               
               Результат = Запрос.Выполнить();
               Выборка = Результат.Выбрать();
               
               Если Выборка.Следующий() Тогда
               
                    Компьютер  = Выборка.Ссылка;
               
               КонецЕсли;
               
               
               Запрос = Новый Запрос;
               Запрос.Текст = "ВЫБРАТЬ
                              |    смсКонтактЛист.Ссылка
                              |ИЗ
                              |    Справочник.смсКонтактЛист КАК смсКонтактЛист
                              |ГДЕ
                              |    смсКонтактЛист.Код = &Код";
               
               Запрос.УстановитьПараметр("Код",ИмяПользователя() );
               
               Результат = Запрос.Выполнить();
               Выборка = Результат.Выбрать();
               
               Если Выборка.Следующий() Тогда
               
                    Контакт  = Выборка.Ссылка;
               
               КонецЕсли;
               
                     
               РегСв                                =    РегистрыСведений.смсСтатусыКонтактов.СоздатьМенеджерЗаписи();
               РегСв.Контакт                      =    Контакт;
               РегСв.СтатусКонтакта                =    Перечисления.смсСтатусыКонтактов.Активен;
               РегСв.СостояниеСотрудника          =    Справочники.смсСостоянияСотрудника.Работает;
               РегСв.ЦелыйДень                        =    Истина;
               РегСв.Период                        =    ТекущаяДата();
               РегСв.Компьютер                        =    Компьютер;
               РегСв.Записать();
               
               ПараметрыСеанса.смсТекущийКомпьютер                    =    Компьютер;
               ПараметрыСеанса.смсТекущийКонтакт                      =    Контакт;
               ПараметрыСеанса.смсРегистрироватьОбрабатыватьСобытия    =    Истина;
               ПараметрыСеанса.смсРегистрироватьСобытия                =    Истина;
               ПараметрыСеанса.смсИнтервалМеждуЗагрузками                =    60;
               ПараметрыСеанса.смсИнтервалМеждуОперациями                =    60;
                   
               ФормаСпр    =    Справочники.смсКонтактЛист.ПолучитьФорму("ФормаКонтактЛист");
               ФормаСпр.Открыть();
               
           КонецЕсли;

   
   КонецЕсли;
5 ssh2006
 
06.09.12
10:19
(4)        Если Выборка.Следующий() Тогда
                    Компьютер  = Выборка.Ссылка;
          КонецЕсли;

Что будет, если Выборка.Следующий() = Ложь?
6 Jamiq
 
06.09.12
10:34
На моем компе, ни чего не меняется =)
На том, посмотреть не могу, плюс, если поменяю код, придется выгонять всех пользователей, что бы обновить, либо ждать, пока ночью обновиться.
7 ssh2006
 
06.09.12
10:36
(6) что насчет (5)?
8 Jamiq
 
06.09.12
10:42
Я же написал, что не могу проверить.
У себя изменил, в тестовой, все работает.
9 ssh2006
 
06.09.12
10:44
(8) может получится так, что в справочнике смсКомпьютеры нет наименования проблемного компьютера.
10 Jamiq
 
06.09.12
10:45
Думал над этим, только, почему программа его не добавляет.
11 ssh2006
 
06.09.12
10:47
(10) куда?
12 Jamiq
 
06.09.12
10:47
в справочник
13 ssh2006
 
06.09.12
10:48
(12) должна добавлять?
14 Jamiq
 
06.09.12
10:52
А как, по другому, имя компьютера там появится? =)
Перед этим, устанавливал на другие компьютеры 1с, делал все тоже самое - все работает.
У меня есть подозрение, что не порядки с правами в винде. С админами сейчас поговорю, они как раз, в том здании, где комп.
15 ssh2006
 
06.09.12
10:56
(14) [А как, по другому, имя компьютера там появится? =)]

Например, пользователь руками создаст элемент справочника. Для это нужно запустить приложение в режиме 1с:Предприятие.
16 Jamiq
 
06.09.12
10:59
(15) Сейчас попробую. Просто не делал ни когда такого, не требовалось.
17 Jamiq
 
06.09.12
11:18
http://s2.ipicture.ru/uploads/20120906/4hJSVglF.png
Справочник заполняется программой.
Таки думаю, что с правами косяк.
18 ssh2006
 
06.09.12
12:11
(0) так есть в справочнике элемент с наименованием того компьютера?
19 Jamiq
 
06.09.12
14:15
В справочнике нет наименования.
Зашел в другую базу, с этого же сервера - все работает (правда не создавал нового пользователя в этой базе, зашел под админом).
Зашел в другую базу, с другого сервера - аналогично, все работает.

Не работает одна единственная база, хотя, базы, у которых идентичный код, с неработающей и находящиеся на том же сервере, так же работают.

Добавил в справочник наименование компьютера. Пойду смотреть.
20 Jamiq
 
06.09.12
14:58
Помогло добавление справочника.
Не понятно, из-за чего сие чудо было.
21 ssh2006
 
06.09.12
15:12
(20) [Помогло добавление справочника.]

Ну вообще это очевидно сразу было - первым делом проверить есть ли в этом справочнике элемент с именем этого компьютера;)
22 Jamiq
 
06.09.12
15:25
(21) Мысля то была, просто, при установки программы на новый комп и добавлении нового пользователя ни когда его не заполнял.