пятница, 29 марта 2013 г.

Устройство USB не обнаружено, при подключении мыши


Устройсто USB не обнаружено или не опознано!

Сегодня вместо очередного урока по 1С пришлось пол дня провозится с одной нехитрой проблемой.
Дано: ноутбук с Windows 7, USB мышь, флешка.
Что случилось?
При подключении мыши появляется сообщение windows о том, что USB устройство не опознано.
Обновление Windows, установка драйверов на чипсет, обновление БИОСа не привели к какому-либо положительному результату, мышку не видит. 
Я попробовал флешку вставить, всё работает, попробовал мышку на другом компе - работает, мышку с другого компьютера на этом ноутбуке - не работает. Уже думал устанавливать драйвера для мышки=)
Т.е. Usb в приниципе то работают, так как флешку видит и читает нормально, а вот с мышкой проблемы.

Решение: После чтения огромного количества информации на различных форумах, и каких то страшных сайтах решение нашлось. Оказалось оно до предела простым: 
1)Выключаем ноутбук
2)Вытаскиваем usb устройства
3)Вытаскиваем Батарею
4)Нажимаем кнопку питания и держим около 30 сек. Это действие снимает напряжение с материнской платы.
5)Вставить батарею, включить ноутбук, включить устройство.

PS. Помимо Usb мышки не работал еще и встроенный Bluetooth адаптер. После этих действий он так же начал корректно работать.

пятница, 1 марта 2013 г.

Работа с Обработчиком Ожидания 1с 8.2


Обработчик ожидания можно включить и выключить.
Начнем с включения. Он может быть включен только на клиенте, в модуле формы или в модуле приложения. Чтобы включить его необходимо написать следующее:

ПодключитьОбработчикОжидания("Название процедуры", Число(Это интервал выполнения), [Истина/Ложь]);

Всё, готово. Теперь через интервал, указанный во втором параметре будет вызываться процедура, указанная в первом параметре. Третий параметр необязательный, по умолчанию Ложь, и указывает он на то, Однократно ли будет выполняться указанная процедура.

Первое выполнение будет вызвано через интервал. Т.е. мы подключили обработчик, и первый раз процедура выполнится не сразу, а через указанный интервал. И соответственно, если указан флаг Однократно, то она выполнится лишь единожды, получается что-то вроде отложенного запуска.

Чтобы выключить обработчик ожидания необходимо выполнить следующий метод:

ОтключитьОбработчикОжидания("Название процедуры");

Всё, обработчик выключен. Тут всё просто.

Одна деталь, что если мы включили обработчик ожидания для процедуры, а потом включили его еще раз для этой же процедуры, то у нас НЕ будет двух обработчиков ожидания для одной процедуры, а будет использоваться последний включенный. Для разных процедур у нас могут работать разные обработчики ожидания, тут всё понятно.
 

Фоновые задания в 1С 8.2


В системе 1С 8 существует такой механизм, как фоновые задания. 

Этот механизм позволяет выполнять некоторые действия не в самом сеансе, а на сервере.
То есть, мы моем запустить сложнейший, долгий отчет или обработку "в фоне", и продолжать спокойно работать, и наша обработка будет также выполняться параллельно с нашей работой. Итак, что бы запустить какую либо процедуру в фоне необходимо выполнить следующий код:

ФоновыеЗадания.Выполнить("НазваниеПроцедурыНаСервере",[ПараметрыПроцедуры],[Новый УникальныйИдентификатор],["Название"]);

Параметры процедуры это массив параметров, кторый надо предварительно создать, таким образом мы можем передать параметры в процедуру или функцию.

Процедуру лучше всего описывать в серверном общем модуле, таким образом имя должно выглядить так:"Общиймодуль.НазваниеПроцедуры". Соответственно и вызывать лучше её с сервера, чтобы не ставить галочку общего модуля "Вызов Сервера". 
Процедура, выполняемая "в фоне" ДОЛЖНА быть экспортной. 
Единственное ограничение - это невозможность вывода сообщений из фоновых заданий, поэтому можно либо создавать файлик на где-нибудь, либо служебный элемент справочника или регистра сведений. 
Следующий ньюанс в выполнение фоновых заданий в файловой базе. 
Чтобы, написанный нами ранее код заработал в файловой базе необходимо сделать следующие действия:
1)Создать служебного пользователя с полными правами, например "ФоновыйПользователь".
2)В модуле управляемого приложения при начале работы системы написать следующий код:

Если ИмяПользователя() = "ФоновыйПользователь" Тогда

ПодключитьОбработчикОжидания("ВыполнениеЗаданий",5);

КонецЕсли;

3)Описать процедуру ВыполнениеЗаданий в этом же модуле, не забыть сделать её экспортной.
В процедуре необходимо запускать метод ВыполнитьОбработкуЗаданий() без параметров.

Процедура ВыполнениеЗаданий() Экспорт

ВыполнитьОбработкуЗаданий();

КонецПроцедуры

4)Запустить сеанс пользователя "ФоновыйПользователь".
5)Запустить наш сеанс и выполнить фоновое задание.
6)Задание будет выполняться "в фоне", не в нашем сеансе, но и не на сервере, а в сеансе пользователя "ФоновыйПользователь".

Почему не видно команд?

Бывает такое, что в командном интерфейсе 1С 8.2 не видно некоторых объектов или кнопок или еще чего нибудь. Что бы разобраться с этим можно воспользоваться данной схемкой: