среда, 19 июня 2013 г.

Пауза в коде 1С.

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



четверг, 4 апреля 2013 г.

Оптимизация работы сервера SQL для 1С

Хочется начать с небольшой истории.
Когда я только начинал работать системным администратором, нам в конторе дали указание. Переходим с файлового варианта базы 1С на SQL вариант. Ну в чем проблема, поставил SQL 2008, запустил его, создал базу какую то, по быстрому настроил резервное копирование и забыл про это. И это была ошибка! Ох какая ошибка.
Где то через три-четыре месяца 1С начала тормозить. Но ведь я ничего не делал, значит проблема не с моей стороны. А вот и нет. База SQL без обслуживание становится всё более и более запутанной растет в размерах, и начинает с каждым днем всё медленнее работать. Таким образом запросы, которые поступают от 1С всё дольше и дольше работают.

пятница, 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 не видно некоторых объектов или кнопок или еще чего нибудь. Что бы разобраться с этим можно воспользоваться данной схемкой:

пятница, 1 февраля 2013 г.

Пин коды RuToken и E-Token



Однажды перепутал эти две системы, и упорно вводил не тот пин код, решил записать, мало ли понадобится.

RuToken

Уровень доступа PIN-код
Гость не требуется
Пользователь 12345678
Администратор 87654321


E-token

Стандартный pin-код 1234567890

Открывается окно проводника при загрузке windows


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


Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]"Userinit"="C:\\WINDOWS\\system32\\userinit.exe,"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]"PersistBrowsers"=dword:00000000 


Обратите внимание, что reg-файл может быть применен только в том случае если Windows установлена на диске C

Двойная загрузка Win 7 и XP



Создание совместной загрузки Win7(vista) и WinXP. В Windows 7 в командной строке необходимо ввести команды:

%windir%\system32\Bcdedit /create {ntldr} /d "Microsoft Windows XP"
%windir%\system32\Bcdedit /set {ntldr} device partition=C:
%windir%\system32\Bcdedit /set {ntldr} path \ntldr
%windir%\system32\Bcdedit /displayorder {ntldr} /addlast


Примечание. Синтаксис утилиты Bcdedit.exe вы можете просмотреть по команде
Bcdedit /?


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


Тормозит терминал при подключение к 2003 из Windows 7


Тормозит клиент RDP на Windows Vista, 7, 8 при работе с сервером терминалов 2003.

Решение следующее, на компьютере с Windows 7 в командной строке выполнить следующую команду:
netsh int tcp set global autotuninglevel=disabled 
Все, проблема решилась.

О установке HASP

Очень часто при установке и настройке HASP ключей для работы с 1С возникают проблемы.


1С 8.2 и...работа с COM объектами

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