воскресенье, 30 июня 2013 г.

ПОЭМА О РАБОТНИКАХ КОЛЦЕНТРОВ

У меня зазвонил телефон.
— Кто говорит?
— ОМОН.
— Откудова?
— Из Южного Бутова.
— Какой у вас вопрос?
— Не могу маску надеть на нос.
Тяну к носу изо всех сил.
И как я ее только вчера носил?
— Давайте попробуем разобраться в проблеме.
У вас так бывает всё время?
— Не, только сейчас.
— То есть, в первый раз?
— Не! Такой случай уже был!
— И как вы справились?
— Я забыл.
— Хорошо, оставайтесь у телефона.
Вы уверены, что это маска ОМОНа?
— Уверен.
— А проверьте?
— Сто раз проверил.
— И вы ее натягиваете со стороны головы?
— Кто? Я?!
— Ну конечно вы.
— Я шо по-вашему, больной?!
Я шо по-вашему... ой!
— Что случилось? Вы молчите уже минуту.
— Вы правы, я перепутал!
Я ее надевал со стороны ног!
— Всего вам доброго! Рад, что помог!

А тут есть еще немного :)

пятница, 14 июня 2013 г.

1С и Excel: общие сведения и методы


Таблицы 1С и Excel.
Многие пользователи для удобства работы сохраняют таблицы 1С (печатные формы) в формате Excel (*.xls). После чего в полученном файле делают различные группировки, сортировки, вычисления и т.п.
На сайте 1С (www.1C.ru) есть полезная программка, которая дает возможность открывать таблицы 1С в Excel и сохранять лист Excel как таблицу 1С. Это пригодится в том случае, если таблицу 1С не сохранили в формате Excel, а на том компьютере, где нужно открыть эту таблицу не установлена 1С.
Замечание: В Excel разделителем дробной части считается символ ",". Поэтому перед сохранением таблицы 1С в формате Excel замените в ней другой разделитель (например ".") на ",". Иначе в Excel с этими числами не удастся произвести вычисления, или они вообще не будут отображаться как числа. Например, в таблице 1С "15.2" отобразится в Excel как "15.фев".

Получение данных из Excel.
Доступ из 1С к Excel производится посредством OLE. Например, код
Попытка
Эксель = СоздатьОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() +
" Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;

позволит нам получить доступ через переменную "Эксель" к запущенному приложению Excel. А далее уже можно получить доступ к книге (файлу), листу и ячейке с данными. Далее примеры кода.
Открытие книги (файла):
Книга = Эксель.WorkBooks.Open(ПутьКФайлу);
ПутьКФайлу - полный путь к файлу книги Excel.
Выбор листа книги для работы с ним:
Лист = Книга.WorkSheets(НомерЛиста);
или
Лист = Книга.WorkSheets(ИмяЛиста);
НомерЛиста - номер листа в книге, ИмяЛиста - имя листа в книге.
Получение значения ячейки листа:
Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value;
НомерСтроки, НомерКолонки - номер строки и номер колонки, на пересечении которых находится ячейка.
Важно: не забывайте поле выполнения нужных действий добавлять код Эксель.Quit(); , иначе запущенный процесс останется незавершенным и будет занимать память и процессор компьютера.

Вывод данных в Excel.
Для вывода (выгрузки) данных в Excel необходимо либо открыть существующую книгу, либо создать новую, и выбрать рабочий лист для вывода данных. Открытие существующей книги описано выше, а для создания новой книги нужно использовать следующий код:
Попытка
Эксель = СоздатьОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() +
" Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;

Книга = Эксель.WorkBooks.Add();
Так как при создании книги в Excel автоматически создаются листы (Сервис->Параметры->Общие->Листов в новой книге), то нужно лишь произвести выбор листа, с которым будет вестись работа:
Лист = Книга.WorkSheets(НомерЛиста);
либо добавить в книгу новый лист, если необходимо:
Лист = Книга.Sheets.Add();
Следующим шагом будет установка значения ячейки:
Лист.Cells(НомерСтроки, НомерКолонки).Value = Значение;
НомерСтроки, НомерКолонки - номер строки и номер колонки, на пересечении которых находится ячейка.
И в конце нужно произвести запись созданной книги:
Попытка
Книга.SaveAs(ПутьКФайлу);
Исключение
Сообщить(ОписаниеОшибки()
+" Файл не сохранен!");
Возврат;
КонецПопытки;

ПутьКФайлу - полный путь к файлу книги Excel (включая имя).
Важно: не забывайте, что в имени файлов не должно содержаться символов \ / : * ? " > < |.

Часто используемые методы для чтения/установки значений в Excel.
Эксель = СоздатьОбъект("Excel.Application"); Получение доступа к приложению Excel.
Эксель.Visible = Видимость; 0 - Excel не виден, 1 - виден.
Книга = Эксель.WorkBooks.Add(); Создание новой книги (файла) Excel.
Книга.SaveAs(ИмяФайла); Сохранение книги Excel.
Лист = Книга.WorkSheets.Add(); Добавление нового листа в книгу.
Книга = Эксель.WorkBooks.Open(ИмяФайла); Открытие существующей книги (файла) Excel.
Лист = Книга.WorkSheets(НомерЛиста); Установка листа в качестве рабочего с номером НомерЛиста.
Лист.Name = ИмяЛиста; Задание рабочему листу имени ИмяЛиста
Лист.PageSetup.Zoom = Масштаб; Задание параметра страницы "Масштаб" (от 10 до 400).
Лист.PageSetup.Orientation = Ориентация; Ориентация: 1 - книжная, 2 - альбомная.
Лист.PageSetup.LeftMargin = Эксель.CentimetersToPoints(Сантиметры); Задание левой границы (в сантиметрах).
Лист.PageSetup.TopMargin = Эксель.CentimetersToPoints(Сантиметры); Задание верхней границы (в сантиметрах).
Лист.PageSetup.RightMargin = Эксель.CentimetersToPoints(Сантиметры); Задание правой границы (в сантиметрах).
Лист.PageSetup.BottomMargin = Эксель.CentimetersToPoints(Сантиметры); Задание нижней границы (в сантиметрах).
Лист.Columns(НомерКолонки).ColumnWidth = Ширина; Задание ширины колонке.
Лист.Cells(НомерСтроки, НомерКолонки).Value = Значение; Ввод данных в ячейку.
Лист.Cells(НомерСтроки,НомерКолонки).Font.Name = ИмяШрифта; Установка шрифта в ячейке.
Лист.Cells(НомерСтроки,НомерКолонки).Font.Size = РазмерШрифта; Установка размера шрифта в ячейке.
Лист.Cells(НомерСтроки,НомерКолонки).Font.Bold = Жирный; 1 - жирный шрифт, 0 - нормальный.
Лист.Cells(НомерСтроки,НомерКолонки).Font.Italic = Курсив; 1 - наклонный шрифт, 0 - нормальный.
Лист.Cells(НомерСтроки,НомерКолонки).Font.Underline = Подчеркнутый; 2 - подчеркнутый, 1 - нет.
Лист.Cells(НомерСтроки, НомерКолонки).NumberFormat = Формат; Установка формата данных ячейки.
Лист.Cells(НомерСтроки,НомерКолонки).Borders.Linestyle = ТипЛинии; Установка рамок ячейки. 1 - тонкая сплошная.

(С) http://exp-1c.narod.ru/articles/articl01.htm

Ошибка при подключении Excel к OLAP

Проблема:
Возникает ошибка при подключении Excel'ем 2010-2013 к OLAP. Куб развернут в Analysis Services 2005.

При попытке обновления данных возникает ошибка - "The LocaleIdentifier property is not overwritable and cannot be assigned a new value"
(Свойство LocaleIdentifier недоступно для перезаписи. Ему не может быть присвоено значение.) 

Решение:
Google по тексту ошибки рекомендует экспериментировать с сочетанием установок языка на закладках "Regional Options" и "Advanced" в "Regional and Language Options".
[controlPanel]-[regional settings]-English (United States)

Альтернативное решение: в строке подключения дополнительно прописывать русскую (или другую) локализацию следующим образом:
Extended Properties="Locale=1049"
 
Несколько ссылок по теме: 
http://social.msdn.microsoft.com/Forums/ru-RU/sqlanalysisservices/thread/b016735e-9630-4855-b0c5-061895b9adcd
http://social.technet.microsoft.com/Forums/ru-RU/sqlanalysisservices/thread/8a1800e1-3500-4764-b175-0daf2c15c192 
http://www.sql.ru/forum/567949/oshibka-pri-otkrytii-svodnoy-tablicy-v-excel2003
http://www.dstewart.com.au/2012/08/xml-for-analysis-parser-localeidentifier-property/
http://venkattechnicalblog.blogspot.com/2012/03/fixxml-for-analysis-parser.html

Восстановление доверия в домене

При попытке входа на одной из рабочих станций в домене, получаем следующее сообщение "Не удалось установить доверительные отношения между этой рабочей станцией и основным доменом".

Решений найдено много, но больше всех понравилась статья у http://windowsnotes.ru, утяну на всякий случай.


"Как и учетные записи пользователей, учетные записи компьютеров в домене имеют свой пароль. Пароль этот нужен для установления так называемых «доверительных отношений» между рабочей станцией и доменом.  Пароли для компьютеров генерируются автоматически и также автоматически каждые 30 дней изменяются.

Домен хранит текущий пароль компьютера, а также предыдущий, на всякий случай :) . Если пароль изменится дважды, то компьютер, использующий старый пароль, не сможет пройти проверку подлинности в домене и установить безопасное соединение. Рассинхронизация паролей может произойти по разным причинам, например компьютер был восстановлен из резервной копии, на нем была произведена переустановка ОС или он просто был долгое время выключен. В результате при попытке входа в домен нам будет выдано сообщение о том, что не удается установить доверительные отношения с доменом.

Для восстановления доверительных отношений существует несколько способов. Рассмотрим их все по порядку.

Способ первый
Открываем оснастку «Active Directory Users and Computers» и находим в ней нужный компьютер. Кликаем на нем правой клавишей мыши и в контекстном меню выбираем пункт «Reset Account». Затем заходим на компьютер под локальной учетной записью и заново вводим его в домен.
Кое где встречаются рекомендации удалить компьютер из домена и заново завести. Это тоже работает, однако при этом компьютер получает новый SID и теряет членство в группах, что может привести к непредсказуемым последствиям.

Способ этот довольно громоздкий и небыстрый, т.к. требует перезагрузки, однако работает в 100% случаев.

Способ второй
Заходим на компьютер, которому требуется сбросить пароль, открываем командную консоль обязательно от имени администратора и вводим команду:
Netdom Resetpwd /Server:SRV1 /UserD:Administrator /PasswordD:*
где SRV1 — контролер домена, Administrator — административная учетная запись в домене. Дополнительно можно указать параметр /SecurePasswordPrompt, который указывает выводить запрос пароля в специальной форме.
В открывшемся окне вводим учетные данные пользователя и жмем OK. Пароль сброшен и теперь можно зайти на компьютер под доменной учетной записью. Перезагрузка при этом не требуется.
Что интересно, в рекомендациях  по использованию и в справке написано, что команду Netdom Resetpwd можно использовать только для сброса пароля на контролере домена, другие варианты использования не поддерживаются. Однако это не так, и команда также успешно сбрасывает пароль на рядовых серверах и рабочих станциях.
Еще с помощью Netdom можно проверить наличие безопасного соединения с доменом:
Netdom Verify WKS1 /Domain:Contoso.com /UserO:Administrator /PasswordO:*
Или сбросить учетную запись компьютера:
Netdom Reset WKS1 /Domain:Contoso.com /UserO:Administrator /PasswordO:*
где WKS1 — рабочая станция, которой сбрасываем учетку.

Способ достаточно быстрый и действенный, однако есть одно но: по умолчанию утилита Netdom есть только на серверах с установленной ролью  Active Directory Domain Services (AD DS). На клиентских машинах она доступна как часть пакета удаленного администрирования Remote Server Administration Tools (RSAT).

Способ третий
Еще одна утилита командной строки — Nltest. На компьютере, который потерял доверие, выполняем следующие команды:
Nltest /query - проверить безопасное соединение с доменом;
Nltest /sc_reset:Contoso.comсбросить учетную запись компьютера в домене;
Nltest /sc_change_pwd:Contoso.comизменить пароль компьютера.

Самый быстрый и доступный способ, ведь утилита Nltest по умолчению есть на любой рабочей станции или сервере. Однако, в отличие от Netdom, в которой предусмотрен ввод учетных данных, Nltest работает в контексте запустившего ее пользователя. Соответственно, зайдя на компьютер под локальной учетной записью и попытавшись выполнить команду можем получить ошибку доступа.

Способ четвертый
PowerShell тоже умеет сбрасывать пароль копьютера и восстанавливать безопасное соеднение с доменом. Для этого существует командлет Test-ComputerSecureChannel . Запущенный без параметров он выдаст состояние защищенного канала — True или False.
Для сброса учетной записи компьютера и защищенного канала можно использовать такую команду:
Test-ComputerSecureChannel -Server SRV1 -Credential Contoso\Administrator -Repair
где SRV1 — контролер домена (указывать не обязательно).


Для сброса пароля также можно также воспользоваться такой командой:
Reset-ComputerMachineChannel -Server SRV1 -Credential Contoso\Administrator

Способ быстрый и удобный, не требующий перезагрузки. Но и здесь есть свои особенности. Ключ -Credential впервые появился  в PowerShell 3.0. Без этого параметра командлет, запущенный из под локального пользователя, выдает ошибку доступа. Получается что данный метод можно использовать только на  Windows 8 и Server 2012, ведь для остальных ОС PowerShell 3.0 пока недоступен.
Как видите, способов восстановления доверительных отношений более чем достаточно. Однако если проблема приобретает постоянный характер, то проще подойти к ее решению с другой стороны.

Изменение параметров смены пароля компьютера
Смена пароля в домене происходит следующим образом:

Каждые 30 дней рабочая станция отправляет ближайшему контролеру домена запрос на изменение пароля учетной записи компьютера. Контролер принимает запрос, пароль изменяется, а затем изменения передаются на все контролеры в домене при следующей репликации.
Некоторые параметры смены пароля можно изменять. Например, можно изменить временной интервал или совсем отключить смену паролей. Сделать это можно как для отдельных компьютеров, так и для групп.
Если настройки необходимо применить к группе компьютеров, то проще всего использовать групповую политику. Настройки, отвечающие за смену паролей, находятся в разделе Computer Configuration — Policies — Windows Settings — Security Settings — Local Policies — Security Options. Нас интересуют следующие параметры:
Disable machine account password change — отключает на локальной машине запрос на изменение пароля;
Maximum machine account password age — определяет максимальный срок действия пароля компьютера. Этот параметр определяет частоту, с которой член домена будет пытаться изменить пароль. По умолчанию срок составляет 30 дней, максимально можно задать 999 дней;
Refuse machine account password changes — запрещает изменение пароля на контролерах домена. Если этот параметр активировать, то контролеры будут отвергать запросы компьютеров на изменение пароля.


Для одиночной машины можно воспользоваться настройками реестра. Для этого в разделе HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters есть два параметра :
 DisablePasswordChange — если равен 1, то запрос на обновление пароля компьютера отключен, 0 — включен.
MaximumPasswordAge — определяет максимальный срок действия пароля компьютера в днях. При желании можно задать более 1 миллиона дней

И в разделе HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters, только у контролеров домена, параметр:
RefusePasswordChange — если равен 1, то запрещает контролеру домена принимать запрос на изменение пароля. Этот параметр надо задать на всех контролерах в домене.


Вот вроде и все про доверительные отношения. Как видите, доверие в домене — штука тонкая, так что старайтесь его не терять.

(С) http://windowsnotes.ru/activedirectory/vosstanavlivaem-doverie-v-domene/

четверг, 13 июня 2013 г.

Не работает автоматическое обновление Windows

Проблема: 
Рабочая станция (Windows XP) не получает обновления через корпоративный WSUS.
При этом групповые политики, касающиеся WSUS, работают нормально, служба автоматического обновления также работает.
Принудительно обновление политик (gpupdate /force) + принудительный запуск обновления (wuauclt /detectnow) не помогают.

В файле журнала %windir%\WindowsUpdate.log регистрируются события вида:
"WU client failed to load persisted download calls with error 0x80004002" и"DM: GetSession failed with 0x80004002."

После загрузки из Windows Server Update Services Tools and Utilities утилиты Client Diagnostics Tool и ее запуска, получаем сообщение:
"GetAUSettingsMemory(&dwMemory) failed with hr=0x80040154"
Решение:
Запрос по коду ошибки предложил решение перерегистрировать DLL и перезапустить службу:
 
net stop wuauserv
regsvr32 wuweb.dll
regsvr32 wups2.dll
regsvr32 wups.dll
regsvr32 wucltui.dll
regsvr32 wuaueng1.dll
regsvr32 wuaueng.dll
regsvr32 wuapi.dll
regsvr32 MSXML3.dll
net start wuauserv


Этот метод может не помочь, если файлы библиотек испорчены/отсутствуют.
В этом случае необходимо загрузить и установить актуальную версию агента Центра обновления Windows: x86 и x64

После перезагрузки команда wuauclt /detectnow сразу запустит процесс обновления.

Ссылки по проблеме:
1. При попытке установить обновления с веб-узла Центра обновления Windows или Центра обновления Майкрософт возникает ошибка: "0x80004002"
2. После установки или восстановления Windows XP или после установки пакета обновления 3 (SP3) для Windows XP сразу после установки Windows XP с пакетом обновления 2 (SP2) не удается установить обновления





Принудительный запуск автообновления Windows

Когда нужно вручную запустить автообновление “прямо сейчас”.
При этом зайти на сайт Windows Update невозможно, но есть локальный WSUS.
Для запуска проверки обновлений достаточно позвать wuauclt /detectnow через Пуск\Выполнить.Через пару минут Windows предложит поставить обновления (жёлтый значок у часов), если они есть.

Explorer: пустой рабочий стол

Проблема
При включении, windows загружается нормально виден в сети, но не загружается рабочий стол (видна только картинка рабочего стола). Если посмотреть диспетчер задач, то можно увидеть что не загрузился explorer

Решение
Заходим в редактор реестра: Диспетчер задач → Файл → Новая задача → regedit

Находим следующие ветки:
 
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Image File Execution Options/explorer.exe
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Image File Execution Options/iexplorer.exe
 
 Удаляем их и перезагружаемся.

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

Использование пар кабеля UTP различными приложениями

Приложение Используемые пары
Аналоговые телефоны 7-8 или 4-5
Цифровые телефоны 3-6 и 4-5
Ethernet 10BASE-T 1-2 и 3-6
Ethernet 100BASE-TX 1-2 и 3-6
Gigabit Ethernet 1000BASE-T все пары

четверг, 6 июня 2013 г.

"Оно само заработало"

xxx: сижу, пью кофе утром. звонок: одна из коллег: "Ты на работе?" (время 8:30). говорю - нет. она: а у меня вот к серверу не подключается, общая папка не работает. лезу смотреть, поправляю конфиг роутера. пишу ее коллеге в чате: пусть проверяет, мол. должно работать. звонок, та же первая коллега: спасибо, тут все само в 9-00 заработало

xxx:
хорошо им.
все само работает.
вот бы мне так.

(С) http://bash.im/quote/422889