понедельник, 17 октября 2016 г.

Общие сведения о спецификации интерфейса IPMI

Цитата отсюда: http://white55.ru/ipmi.html, по ссылке больше и с картинками :)


IPMI (от англ. Intelligent Platform Management Interface) — интеллектуальный интерфейс управления платформой, предназначенный для автономного мониторинга и управления функциями, встроенными непосредственно в аппаратное и микропрограммное обеспечения серверных платформ. Другими словами IPMI – это средство управления, которое реализовано независимо от основного оборудования сервера и обеспечивает его включение, выключение, сброс, удаленное подключение виртуальных мониторов, клавиатур и мышей, наблюдение за работой оборудования и оповещение о важных событиях, связанных с работоспособностью сервера. Спецификация IPMI версии 1.0 была опубликована еще в 1998г. и базировалась на подключении к модулю IPMI через последовательный интерфейс RS-232. Текущая спецификация IPMI опубликована в 2004 г. и базируется на использовании стандартного сетевого интерфейса.

Ядром системы управления серверной платформой является специализированное устройство - Baseboard Management Controller (BMC), который практически является специализированным компьютером, встроенным в серверную платформу, имеющим свои собственные процессор, память, периферийное оборудование и операционную систему. Спецификация IPMI не задает жестких стандартов по реализации IPMI-устройств. Они могут быть выполнены в виде отдельного адаптера, могут быть распаяны непосредственно на материнской плате или выполнены в виде отдельного микроконтроллера. В настоящее время, наиболее распространены интегрированные в серверные материнские платы контроллеры BMC на базе технологии “система на одном кристалле” (System-on-Chip, SoC), позволяющие реализовать как эффективное взаимодействие с управляемой платформой, так и огромное количество функций по удаленному мониторингу, оповещению о важных событиях по e-mail или SNMP, ведению журналов и т.п.

Контроллеры BMC для серверных материнских плат подключаются к ним через системный интерфейс, названный IPMB (Intelligent Platform Management Bus/Bridge) или к другим контроллерам BMC через интерфейс IPMC (Intelligent Platform Management Chassis). Для удаленного управления оборудованием через контроллер BMC может быть использован специальный протокол прикладного уровня Remote Management Control Protocol (RMCP), обеспечивающий работу через обычную локальную сеть. Как правило, современные контроллеры BMC обеспечивают управление серверными платформами через веб-интерфейс, а также обеспечивают удаленное подключение устройств CD/DVD и работу клавиатуры-видео-мыши по сети ( IP KVM ), что позволяет легко выполнять, например изменять настройки BIOS или выполнять установку операционной системы, не имея физического доступа к оборудованию сервера.

Еще немного по теме:
ссылка 1: Пример конфигурирования IPMI на сервере 
ссылка 2: Настраиваем IPMI на Dell PowerEdgeстатья на wiki: Intelligent Platform Management Interface

пятница, 7 октября 2016 г.

Ошибка «Saving changes is not permitted…» в Microsoft SQL Server 2008 Management Studio при изменении структуры таблицы.

Проблема: В таблице есть колонка nvarchar(60), возникла необходимость увеличить до количество знаков до 75.
При попытке сохранения изменений в дизайнере, SQL Server Management Studio выдает следующее сообщение: "Saving changes is not permitted. The change you have made requires the following table to be dropped and re-created. You have either made changes to a table that can't be recreated or enabled the option prevent saving changes that require the table to be re-created."

Решение:

Вариант 1) Снять чекбокс «Prevent saving changes that require table re-creation» (Tools->Options):

Вариант 2) Выполнить на таблице следующий скрипт:
alter table ИмяНашейТаблицы 
alter column ИмяКолонкиКоторуюНадоУвеличить nvarchar(75)

P.S. Перед выполнением скрипта необходимо удалить индекс по этой колонке - пока этого не сделали, получали сообщение об ошибке.

среда, 5 октября 2016 г.

1С 7.7 + OLE часть 3/3

Копия статьи с http://www.softpoint.ru/article_id90.htm под катом

1С 7.7 + OLE часть 2/3

Копия статьи с мисты под катом:

1С 7.7 + OLE часть 1/3


Подробно описано:

Простой пример:
БазаОле = СоздатьОбъект("V77.Application");
КаталогБазыОЛе  = "D:\base";
ПользовательОле = "";
ПарольОле       = "";
МонопольныйРежимOLE = " /m"; // для немонопольного запуска указать пустую строку!
ЗапускБезЗаставки = 0;    // без заставки 1, с заставкой 0
РезультатПодключения = БазаОле.Initialize(БазаОле.RMTrade , "/d" + СокрЛП(КаталогБазыОле) + " /n" + СокрЛП(ПользовательОле) +
 " /p" + СокрЛП(ПарольОле) + МонопольныйРежимOLE,
 ?(ЗапускБезЗаставки = 1, "NO_SPLASH_SHOW", ""));
Если РезультатПодключения = 0 Тогда
    Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
КонецЕсли;
 
//
КонтрагентыOLE = БазаОле.CreateObject("Справочник.Контрагенты");
КонтрагентыOLE.ВыбратьЭлементы();
Пока КонтрагентыOLE.ПолучитьЭлемент()=1 Цикл
   Сообщить(КонтрагентыOLE.Наименование);
КонецЦикла;



Возможные проблемы:
http://www.forum.mista.ru/topic.php?id=395287
При использовании работы ИБ через OLE выдается сообщение: "Действие не может быть завершено, так как другая программа занята. (сервер занят)
Для перехода к этой программе воспользуйтесь кнопкой "Переключиться"."

Время до появления диалога "зашито" в 1С:Предприятие и не может быть изменено из встроенного языка или внешними средствами. Однако согласно документации Микрософт данное сообщение появляется только в случае, если пользователь использовал кливиатуру или мышь во время работы OLE-сервера - поэтому можно посоветовать после запуска обработки дождаться ее завершения, и лишь затем продолжить работу.

Вариант решения: Программа для автоматического закрытия окна "Server busy"
Данная утилита выполняет одну единственную функцию - каждые 5 секунд проверяет наличие окна с заголовком "Server busy" и жмет на кнопку "Retry" до тех пор, пока оно не закроется.
При запуске программы необходимо нажать кнопку "Старт" и свернуть в трей. При наведении курсора мыши на значок в трее программа показывает количество "кликов", если они были, т.е. сколько раз программа "нажимала" на "Retry".

понедельник, 3 октября 2016 г.

Использование службы геокодирования Google в 1С 7.7 + чтение динамических страниц

Задание: В 1С для каждой торговой точки записан адрес, необходимо по адресу торговой точки получить ее координаты, для последующего отображения на карте.

Решение: Для получения координат ТТ по адресу используется Google Maps Geocoding API, описание и документация здесь: https://developers.google.com/maps/documentation/geocoding/intro?hl=ru


"Быстрое" решение - использование функций v7plus.dll:

Функция ПолучитьОтветСлужбыГеокодирования(_Адрес)
 
    Попытка
        Соединение = СоздатьОбъект("Addin.V7HttpReader");
        Соединение.КоличествоПопытокАвторизации = 10;
    Исключение
        Сообщить("Не удалось создать объект Addin.V7HttpReader!");
        Возврат 0;
    КонецПопытки;
   
    //
можем указать json или xml
    Адрес = "http://maps.googleapis.com/maps/api/geocode/xml?address=";
    Адрес = Адрес + "ukraine" + "," + СокрЛП(_Адрес);
    Адрес = Адрес + "&components=country:UA";
 
    Стр = ""; // сюда вернется xml или json ответ сервера, который 
    Попытка
        Соединение.Получить(Адрес, Стр, 2); //строка
    Исключение
        Сообщить("Неудачная попытка соединения.");
    КонецПопытки;
   
    Возврат стр;

   
КонецФункции

"Быстрое" решение было рабочим, однако, периодически ответ сервера усекался до 1-2 килобайт. При этом если строку запроса вставить в браузер - всегда возвращается нормальный ответ.

Оказалось, проблема известная, рассматривалась неоднократно:

1. V7Plus не полностью выкачивает страничку
"AddIn.V7HttpReader прекрасно работает с любыми страницами и качает всю как надо. Проблема в самих страницах, которые не отдают заголовок "Content-length". Поэтому по-умолчанию используется 1Кб."


2.V7HttpReader метод получить файл
"С помощью метода ПолучитьКакФайл пытаюсь с сайта выгрузить файл xml нужного формата. Проблема - файл не загружается полностью. ... Пробовал по всякому и через ПолучитьКакСтроку и с циклом после получения (типа для докачивания, если оно в фоне).
Все-равно файл загружается не полностью. Если через браузер все скачивается без проблем."

"Это не работает, когда динамически генерируется страница через пост-запрос. ПолучитьКакФайл работает для скачивания ТОЛЬКО статического содержимого."

И приводится код решения:
    Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl");
    Скрипт.language = "vbscript";
          
    x = CreateObject("Microsoft.XMLHTTP");
    x.Open("GET", АдресСтраницы, 0,"","");
    x.Send();
          
    s = CreateObject("ADODB.Stream");
    s.Mode = 3;
    s.Type = 1;
    s.Open();
          
    Скрипт.AddObject("s",s);
    Скрипт.AddObject("x",x);
    Скрипт.Eval("s.Write(x.responseBody)");
          
    s.SaveToFile(ИмяФайлаЗагрузки, 2);
3. Наиболее подробно и полно вопрос рассматривается здесь: Мои опыты чтения динамических WEB-страниц
  • Вариант 1-5 - различные модификации использования V7HttpReader, и делается вывод, что внешняя компонента v7plus.dll и ее объект AddIn.V7HttpReader не годятся для чтения  динамических WEB-страниц.
  • Вариант 6:  ФС.КопироватьФайл(Адрес,Результат) - нерабочий
  • Вариант 7: WinHttp.WinHttpRequest.5.1
  • Вариант 8: InternetExplorer.Application
  • Вариант 9. MSXML2.XMLHTTP
  • Вариант 10. WinHttp.WinHttpRequest.5.1 + MSScriptControl
  • Вариант 11.MSXML2.XMLHTTP +  MSScriptControl  + VBScript
  • Вариант 12. MSXML2.XMLHTTP (http-test.vbs + WScript.Shell)
  • Вариант 13. Microsoft.XMLHTTP+ MSScriptControl+ADODB.Stream

В итоге, пришлось переписать процедуру на вариант с использованием Microsoft.XMLHTTP +
ADODB.Stream + MSScriptControl.ScriptControl.

Код функции под катом:

пятница, 30 сентября 2016 г.

CAD-системы

Бесплатные CAD-системы
 
2D: https://ru.wikipedia.org/wiki/LibreCAD


3D:

http://www.collabcad.com/featuresCollabCAD.html

https://sourceforge.net/projects/brlcad/

http://solvespace.com/index.pl

http://www.salome-platform.org/downloads/current-version

+
https://www.rs-online.com/designspark/home

https://www.onshape.com/cad-features

вторник, 20 сентября 2016 г.

1С 8.х: Ошибка при записи конфигурационного файла

Проблема: В 1С 8.х после установки - пустой список шаблонов баз. Прописываем каталоги шаблонов конфигураций и обновлений, жмём "ОК", получаем сообщение : "Ошибка при записи конфигурационного файла".

Решение: Здесь и здесь.
"В папке C:\Users\Имя пользователя\AppData\Roaming\1C\1CEStart вместо файла 1CEStart.cfg находилась папка с таким же именем."
Удаляем эту папку и платформа сможет создать файл конфигурации без проблем.

понедельник, 12 сентября 2016 г.

Мультизагрузочная USB-флэшка

Потребовалось сделать для себя.

Решений множество, большинство на Grub.
Например: GRUB всемогущий, или Делаем загрузочную флешку и Делаем загрузочную флэшку с помощью grub4dos

Попробовал - да, работает, но приходится играться с настройками меню.

В итоге воспользовался вот этим: YUMI – Multiboot USB Creator
Быстро, просто, удобно, проблем не было.

Под катом копия по Grub4Dos на память:

понедельник, 27 июня 2016 г.

Компьютер не может быть присоединён к домену. На этом домене превышено максимальное допустимое число учётных записей. Обратитесь к системному администратору с просьбой отменить это ограничение или увеличить значение

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

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

  1. Использовать запись с правами администратора домена. Он не имеет таких ограничений.
  2. Изменить предел подключаемых машин.
Эти и другие пути решения описаны в базе знаний Microsoft:

четверг, 2 июня 2016 г.

1С 8.х: Использование стандартных периодов в СКД

Отсюда: http://1cskd.ru/2010/07/ispolzovanie-standartnyx-periodov/

Для удобства работы с параметрами типа дата, в системе компоновки данных существует возможность использовать Стандартные периоды.
Как же их использовать?
Мы имеем отчет, в котором 2 параметра: Начало периода и Конец периода. Добавим в параметры третий параметр, назовем его Стандартный период и установим ему тип СтандартныйПериод.
Для параметров Начало периода и Конец периода в Выражение запишем следующее:
&СтандартныйПериод.ДатаНачала
&СтандартныйПериод.ДатаОкончания
Также у этих параметров установим галку Ограничение доступности.

Все. Теперь можно пользоваться возможностями стандартного периода:

Кроме того, стандартная дата окончания содержит время 23:59:59 что избавляет от проблемы, описанной здесь.

понедельник, 18 апреля 2016 г.

Знаки вопросов вместо русского языка (1С 7.7, AIDA64 и т.п.) при запуске под Windows 2008 и выше

Проблема:
Знаки вопроса вместо русских букв

Решение:
1. Через реестр: В разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\ заменить 1250 -1254 на 1251
2. Через панель управления поправить локализацию: “Панель управления” -> “Язык и региональные стандарты” -> “Дополнительно” -> “Изменить язык системы…” + "Язык для программ не поддерживающих UNICODE.

Источники:
http://www.maxblogs.ru/articles/znaki-voprosov-vmesto-russkogo-yazyka и, конечно, Google.

среда, 24 февраля 2016 г.

Windows Server 2008 R2 x64 + 1С 7.7: проблема с "Разобрать по копиям"

Проблема: После миграции с 2003 R2 на 2008 x64 R2 не работает опция "Разобрать по копиям" при печати из 1С 7.7. Независимо от установки флага, листы идут 1-1, 2-2, 3-3, а не 1-2-3, 1-2-3. 
Из других программ (Word-Excel) - все работает прекрасно!
Проблема проявилась на разных подразделениях, на разных физических принтерах,с разными версиями драйверов.

Источники:
Наиболее обсуждаемые темы тут:
http://forum.ru-board.com/topic.cgi?forum=5&topic=28783
http://citrix.pp.ru/forum/viewtopic.php?p=33552
http://www.forum.mista.ru/topic.php?id=530462
https://bugs.etersoft.ru/show_bug.cgi?id=2843

Цитата с баг-трекера etersoft:
Есть 2 способа печати: напрямую и через спуллер. И зависит это от приложения 1С использует печать напрямую. С помощью функций StartDoc, EndDoc
http://msdn.microsoft.com/en-us/library/dd162865(VS.85).aspx
Чтобы раскладка по копиям начала работать необходимо УДАЛИТЬ СТАРЫЕ НАСТРОЙКИ из реестра: ключ (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers\{Имя принтера}) , нужно удалить DefaultDevMode

Решение: Чтобы не устраивать танцы с бубнами, реализовали со стороны 1С, через собственный диалог печати, посылая задания на принтер в цикле.

четверг, 18 февраля 2016 г.

Использование XML в 1С 7.7

Памятка отсюда, хороший был сайт:
http://web.archive.org/web/20041102064633/http://chin.dataltd.ru/index2.php?id=1c_xml1
http://web.archive.org/web/20041102065411/http://chin.dataltd.ru/index2.php?id=1c_xml2

Создание XML-файла с помощью компоненты v7plus.dll.

XML, как известно, один из языков разметки. Подробно о нем можно прочитать в книге и в Инете. С его помощью легко реализовать древовидную структуру хранения данных , а также задать жесткие правила построения дерева, что уменьшит ошибки, связанные с доступом к данным.


Применительно к 1С с его помощью можно реализовать множество задач, в частности по документообороту внутри компании и с внешними корреспондентами, всевозможные переносы справочников и документов между конфигурациями, обмен данными с другими приложениями, поддерживающими формат XML.

XML-документ вкратце можно представить следующим образом. Верхним в иерархии является корневой элемент. Все остальные элементы (кроме сведений о формате файла) являются вложенными по отношению к нему (подчиненными), назовем их ветви. Каждый элемент, в т.ч. и корневой поименован. Каждый элемент имеет атрибуты, может содержать данные, а также может иметь множество других вложенных в него элементов. В качестве примера разберем задачу по переносу приходно-кассовых ордеров и банковских выписок, формируемых оперативным отделом с помощью ТиС в бухгалтерию. Данный пример показывает простые приемы работы со структурой XML-документа.Код с пояснениями:

//Сначала проинициализируем компоненту v7plus, предоставляющую объекты для работы с XML:
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "v7plus.dll") <> 1 Тогда
     Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() +
"v7plus.dll") <> 1 Тогда
          Предупреждение(
"Компонента v7plus.dll не найдена!");
     КонецЕсли;
КонецЕсли;
Анализатор = СоздатьОбъект("AddIn.XMLParser");


//Теперь начнем строить дерево документа. Заодно занесем служебную информацию о файле выгрузки в атрибуты корневого элемента
Корень=Анализатор.СоздатьДокумент();
Данные =Корень.СоздатьПодчиненныйЭлемент("Данные");Данные.УстановитьАтрибут("ИБ",КаталогИБ());
Данные
.УстановитьАтрибут("Дата",Строка(РабочаяДата()));
Данные
.УстановитьАтрибут("Оператор",ИмяПользователя());


//И создади две основные ветви Справочники и Документы
Справочники=Данные.СоздатьПодчиненныйЭлемент("Справочники");
Документы=Данные.СоздатьПодчиненныйЭлемент("Документы");
 

// в общей ветке Справочники создадим ветку для справочника Контрагентов
Клиенты=Справочники.СоздатьПодчиненныйЭлемент("Клиенты");


//А вот так заполняются элементы для справочников. Каждый реквизит справочника выносится в отдельный элемент дерева. Т.к. в данном задании выбрана схема синхронизации справочника Контрагентов по ИНН, то в значение элемента записываем ИНН, а для наглядности в атрибут элемента заносим наименование клиента
К=СписокКлиентов.ПолучитьЗначение(х);
Состояние(
"Выгружаются сведения по: " +К.Наименование);
Клиент=Клиенты.СоздатьПодчиненныйЭлемент("Клиент");
Клиент.УстановитьАтрибут("Наименование",К.Наименование);
Клиент.Значение=К.ИНН;

 

// выгружаем все нужные реквизиты контрагента
ПН=Клиент.СоздатьПодчиненныйЭлемент("ПолнНаименование");
ПН.Значение=К.ПолнНаименование;
ВК=Клиент.СоздатьПодчиненныйЭлемент("ВидКонтрагента");
ВК.Значение=К.ВидКонтрагента.Идентификатор();

 

// и так далее по всем необходимым реквизитам, аналогично заполняется информация о документах в соответствии с разработанной схемой обмена с бухгалтерией.

// Завершающие шаги и сохранение файла
ИмяФайла= СтрЗаменить(Строка(ДатаВыгрузки)+Строка(ДатаВыгрузки1),".","") + ".xml";
ПапкаФайла= "C:\1C\Change\Sweet\";
Корень.Записать(ПапкаФайла+ИмяФайла);



Чтение данных. 


В первой части статьи были рассмотрены простейшие приемы работы по созданию XML-документа. В этой части будут описаны способы получения данных. Основным моментом, на который я хотел бы обратить Ваше внимание, является следующее правило: сперва с помощью методов .ВыбратьУзел() или .ВыбратьУзлы() производится выборка узла/элемента, а затем с помощью методов соответственно .ПолучитьПодчиненныйПоНомеру() и .ПолучитьУзел() обеспечивается непосредственный доступ к узлам/элементам документа. Впрочем, здесь можно провести аналогию работы со справочниками и документами в 1С: сначала делаем выборку с помощью .ВыбратьЭлементы() или .ВыбратьДокументы(), а затем получаем сами объекты .ПолучитьЭлемент() или ПолучитьДокумент(). Оба приема используются в данном примере. Код с пояснениями:

Инициализацию компоненты опустим. Для чтения она ничем не отличается.
//создадим объект для доступа к xml-файлу, загрузим в него файл и получим ссылку на корневой элемент xml-документа. Напомню, что у нас он назван "Данные"
ФайлДанных=Анализатор.СоздатьДокумент();
ФайлДанных.Загрузить(ФайлЭксп);
ВсеУзлы=ФайлДанных.ВыбратьУзлы("Данные");


// получаем доступ к корневому узлу/элементу и читаем его атрибутыДанные=ВсеУзлы.ПолучитьУзел(0);
Сообщить(
"Идет загрузка данных из базы: " +Данные.ПолучитьАтрибут("ИБ"));
Сообщить(
"Выгрузка производилась: " +Данные.ПолучитьАтрибут("Дата"));
Сообщить(
"Выгрузку произвел/произвела: " +Данные.ПолучитьАтрибут("Оператор"));


// следующими операторами мы получаем доступ к двум основным ветвям: ветки Справочники и ветке Клиенты
Справочники=Данные.ВыбратьУзел("Справочники");
Документы=Данные.ВыбратьУзел("Документы");


// "спускаемся" по иерархии глубже и получаем доступ к элементу Клиенты, Выписки и Приходники
Клиенты=Справочники.ВыбратьУзел("Клиенты");
Выписки=Документы.ВыбратьУзел("Выписки");
Приходники=Документы.ВыбратьУзел("Приходники");


//если очень интересно сколько прийдется загружать Контрагентов, то можно воспользоваться следующей конструкцией 

Сообщить("Количество клиентов: " + Строка(Клиенты.КоличествоПодчиненных()));

// организация перебора всех элементов узла Клиенты
Для х= 1 ПоКлиенты.КоличествоПодчиненных() Цикл
     Клиент=Клиенты.ПолучитьПодчиненныйПоНомеру(х);
     ИНН=Клиент.Значение;
     Если ПустоеЗначение(ИНН) = 1 Тогда
          Сообщить(
"Ошибка. В файле выгрузки не задан ИНН клиента " +Клиент.ПолучитьАтрибут("Наименование"),"!!");
     Продолжить; 

     КонецЕсли;
КонецЦикла;



среда, 17 февраля 2016 г.

1C 7.7 SQL: Доступ к базе данных на сервере возможен только из одного каталога информационной базы


Проблема: При обновлении 1С получаем сообщение "Доступ к базе данных на сервере возможен только из одного каталога информационной базы".
 
Решение: http://www.pokatashkin.com/it/1c/1108

Обычно это происходит из-за некорректного завершения подключения пользователя к базе. В результате остается зависший SQL-процесс и/или открытые по сети файлы *.LCK в каталоге информационной базы и каталогах пользователей.

Если завис SQL-процесс, то можно либо просто перезагрузить SQL сервер, либо убрать зависший SQL-процесс с помощью SQL Enterprise Manager. Для этого в Management\Current Activity\Process Info перейдите к зависшему процессу и в меню «Action» выберите пункт «Kill Process».

Если проблема в открытых по сети файлах *.LCK, то как и в первом случае можно просто перезагрузить файл-сервер с информационной базой, либо зайти на этом сервере в Управление компьютеров (Computer Management) в Общие папки\Открытые файлы и закрыть все файлы с расширением *.LCK в каталоге информационной базы и каталогах пользователей.

P.S. Виновник в блокировке *.LCK в моем случае, как и здесь Зависание сессий в терминальном режиме  - файл hpmup081.bin. Блокировка вылечилась удалением его из процессов.

понедельник, 18 января 2016 г.

Wake-on-LAN

Материал из Wiki:

Wake-on-LAN (WOL; в переводе с англ.  — «пробуждение по [сигналу из] локальной сети») — технология, позволяющая удалённо включить компьютер посредством отправки через локальную сеть специальной последовательности байтов — пакета данных (так называемого 'magic packet' — «волшебного пакета», см. ниже). Этот пакет может быть вставлен в пакеты любых стандартных протоколов более высоких уровней, например, UDP или IPX.
  
Требования к компьютеру для работы с Wake-on-LAN
  • Компьютер с источником питания, соответствующим стандарту ATX 2.01, и материнской платой, поддерживающей Wake-on-LAN;
  • Сетевая плата (в виде платы расширения либо встроенная в материнскую плату) с поддержкой Wake-on-LAN;
  • Если используется внешняя (не встроенная в материнскую плату) сетевая плата, и хотя бы одна из этих плат не соответствуют стандарту PCI 2.2 или более позднему, то необходим также специальный трёхпроводной кабель для соединения разъёмов Wake-on-LAN на материнской и сетевой платах.
Кроме того, необходима возможность послать magic packet управляемому компьютеру. Это можно сделать, например, с помощью другого компьютера с соответствующей программой (см. примеры ниже). 

Принцип работы 
Управляемый компьютер находится в дежурном режиме (англ. stand-by) и выдаёт питание на сетевой адаптер[1]. Сетевой адаптер находится в режиме пониженного энергопотребления, просматривая все пакеты, приходящие на его MAC-адрес, и ничего не отвечая на них. Если одним из пакетов окажется magic packet, сетевой адаптер выдаст сигнал на включение питания компьютера. 

Magic packet
англ. Magic packet — это специальная последовательность байтов, которую для нормального прохождения по локальным сетям можно вставить в пакеты UDP или IPX. Обычно для Wake-on-LAN пакеты протоколов верхнего уровня рассылают широковещательно, так как в случае динамического присвоения адресов неизвестно, какой IP-адрес соответствует какому MAC-адресу. Однако, для корректного прохождения через маршрутизатор, запрещающий широковещательные пакеты, можно послать пакет по какому-то определённому адресу.
В начале пакета идет так называемая цепочка синхронизации: 6 байт, равных 0xFF. Затем — MAC-адрес сетевой платы, повторённый 16 раз. То есть, если бы адрес платы выглядел как 01:02:03:04:05:06, то магический пакет оказался бы таким:
FFFFFFFFFFFF010203040506
010203040506010203040506
010203040506010203040506
010203040506010203040506
010203040506010203040506
010203040506010203040506
010203040506010203040506
010203040506010203040506
010203040506
 
Программы

Наш выбор - WakeMeOnLan! :)

среда, 6 января 2016 г.

Аудит входа в систему

Источникhttps://technet.microsoft.com/ru-ru/library/cc787567%28v=ws.10%29.aspx

Применяется к:
Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2, Windows Vista

Описание
Этот параметр безопасности определяет, подлежит ли аудиту каждая попытка пользователя войти в систему с компьютера или выйти из нее.
События входа в систему формируются контроллерами домена в процессе проверки учетных записей домена и локальными компьютерами при работе с локальными учетными записями. Если включены обе категории политик — учетных записей и аудита при входе в систему, — входы в систему, использующие учетную запись домена, формируют события входа или выхода на рабочей станции или сервере и событие входа в систему на контроллере домена. Кроме того, интерактивные входы с использованием учетной записи домена на рядовой сервер или рабочую станцию формируют событие входа на контроллере домена, в то время как при входе пользователя производится поиск сценариев входа и политик. Дополнительные сведения о событиях входа в систему см. в разделе Аудит событий входа в систему.
Если этот параметр политики определен, можно задать аудит успехов или отказов либо вообще отключить аудит событий данного типа. Аудит успехов означает создание записи аудита для каждой успешной попытки входа в систему. Аудит отказов означает создание записи аудита для каждой неудачной попытки входа.

пятница, 25 декабря 2015 г.

Перекодировка текста в/из UTF-8 штатными средствами 1С 7.7

Надо: Сохранить из 1С 7.7 файл в формате UTF-8

Решение больше частью отсюда.
Альтернативные варианты: использование библиотеки от romix или использовать adodb stream.

UPD 16.08.17 По умершей ссылке было что-то вроде этого:

Функция ПреобразоватьСтрокуВУТФ8(Стр)
    Длина=СтрДлина(Стр);
    Итог="";
    Для Н=1 По Длина Цикл
        Знак=Сред(Стр,Н,1);
        Код=КодСимв(Знак);
        Если Код<128 Тогда
            Итог=Итог+Знак;
        Иначе
            Если (Код>=КодСимв("А"))И(Код<=КодСимв("п")) Тогда
                Итог=Итог+Симв(208)+Симв(144+Код-КодСимв("А"));
            ИначеЕсли (Код>=КодСимв("р"))И(Код<=КодСимв("я")) Тогда
                Итог=Итог+Симв(209)+Симв(128+Код-КодСимв("р"));
            ИначеЕсли (Знак="ё") Тогда
                Итог=Итог+Симв(209)+Симв(145);
            ИначеЕсли (Знак="Ё") Тогда
                Итог=Итог+Симв(208)+Симв(129);
            ИначеЕсли (Знак="і") Тогда
                Итог=Итог+Симв(209)+Симв(150);
            ИначеЕсли (Знак="ї") Тогда
                Итог=Итог+Симв(208)+Симв(151);
            ИначеЕсли (Знак="є") Тогда
                Итог=Итог+Симв(209)+Симв(148);
            ИначеЕсли (Знак="Є") Тогда
                Итог=Итог+Симв(208)+Симв(132);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Возврат Итог;
КонецФункции

четверг, 19 ноября 2015 г.

Грамотное добавление сетевого диска через групповые политики

Два простых  решения:
  1. Создать ярлык на раб. стол (к примеру) на этот ресурс и юзать себе на здоровье.
  2. Подключить сетевой диск.
Рассмотрим второй вариант. Для подключения сетевого диска всем пользователям домена используется простой cmd-файл:

start /wait /min net use o: /delete /yes
start /wait /min net use o: \\Server\Share
$ /persistent:no  /yes



/persistent:no  - параметр, при котором диск не будет постоянно восстанавливаться при входе в систему (т.е. создается только на данный "сеанс"). Строка net use o: /delete перед строкой добавления диска исключит возможную ошибку, если диск w уже существует.

Открываем оснастку Active Directory Users and Computers. Кликаем правой кнопкой по нашему домену, выбираем св-ва, вкладка групповые политики (групповые политики домена, а не контроллера домена!), выбираем вашу политику, кликаем Edit. В открывшемся Group Policy Object Editor`е -> User Configuration -> Windows Setting -> Scripts -> Logon. Добавляем наш скрипт и все.
Почему именно в User Configuration, а не в Computer Configuration? Возможно, на сетевой папке будет открыт доступ только для определенных групп/пользователей. Скрипт из Computer Configuration выполнится раньше входа в систему пользователя, при этом возникнет ошибка доступа к ресурсу из-за отсутствия соответствующих прав. Именно в этих целях скрипт прописан в User Configuration, т.е. он выполняется при непосредственном входе пользователя в домен.

среда, 18 ноября 2015 г.

GPS+AGPS (обновление альманаха через инженерное меню)

Отсюда: http://4pda.ru/2014/09/25/177874/#comment1887672

1) Включить в настройках Android, в разделе “Мое месторасположение” AGPS, затем открыв верхнюю “шторку” в телефоне активировать GPS.
2) Затем в звонилке, необходимо набрать *#*#3646633#*#* - вход в инженерное меню.
Может быть, на вашем телефоне заработает другой номер для входа в инженерное меню Android:
*#*#4636#*#*
*#*#8255#*#*, *#*#4636#*#* — для Samsung
*#*#3424#*#*, *#*#4636#*#*, *#*#8255#*#* — для HTC
*#*#7378423#*#* — для Sony
*#*#3646633#*#* — для Philips, Fly, Alcatel
*#*#2846579#*#* — для Huawei
Если не получается, поищите информацию о том, как войти в инженерное меню в вашем Android телефоне. Если у вас телефон на базе процессоров MTK (MT6577, MT6589 …), вы можете воспользоваться программой “MobileuncleTools” (необходим ROOT), ее можно скачать из GooglePlay. В ней присутствует раздел EngineerMode. Он нам и нужен.
3) Когда вы попали (любым способом) в инженерное меню телефона, нужно перейти на вкладку YGPS – и посмотреть на закладке “Satellites” – появляются ли шкалы сигнала. Если да, значит спутники телефон пытается искать , но не находит из-за неправильно записанного Альманаха. И это не удивительно, ведь аппарат приехал с другого “конца света” .
4) Следующим шагом будет переход на вкладку “Information”, а затем нажатие по очереди кнопок “full”, “warm”, ”hot”, “cold” (для полного сброса старого Альманаха).
5) После этого, на вкладке NMEA Log, необходимо нажать кнопку start. (начнется запись нового Альманаха)
6) Теперь для правильной работы GPS, необходимо перейти на задку “Satellites” и ожидать в течении 5-15 минут пока будет найдено максимальное кол-во шкал спутников (обычно от 10 до 13 штук) и их шкалы позеленеют .
7) Когда все спутники будут найдены – перейдите снова на закладку Nmea Log и нажмите кнопку “stop”. Поздравляю, новый альманах для вашей местности записан.
Делал эту процедуру на многих китайфонах - в результате процедуры, телефон должен начать быстрее находить спутники.
Напомню, что все вышеописанные действия для улучшения качества GPS, необходимо проводить сугубо на открытой местности, подальше от зданий. И последний совет – рекомендую выставить точно системное время и дату в телефоне.

пятница, 13 ноября 2015 г.

Простые числа

primesieve.org - primesieve is a free software program and C/C++ library that generates primes using a highly optimized sieve of Eratosthenes implementation. It counts the primes below 10^10 in just 0.45 seconds on an Intel Core i7-6700 CPU (4 x 3.4GHz). primesieve can generate primes and prime k-tuplets up to 2^64.

Wheel_factorization

Решето Сундарама

Решето Эратосфена

Решето Аткина

четверг, 5 ноября 2015 г.

Жёсткий диск работает в неправильном режиме: UltraDMA-2/PIO вместо UltraDMA-5

Проблема: Постоянные жалобы пользователя на медленную работу компьютера. Компьютер старый, P-IV-2800/512/80 IDE под Windows XP, однако, рядом стоят еще 2 абсолютно таких же, и работают без проблем.

В диспетчере устройств  - режим работы жесткого диска UltraDMA-2, хотя недавно 100% был UltraDMA-5.

Поиск выдал несколько вариантов:

Програмка Hard Drive Inspector 2.80 пишет, что Ваш диск работает в Ultra DMA mode 2 (33 MB/s), хотя его оптимальный режим передачи данных Ultra DMA mode 5 (100 MB/s). Это может привести к снижению производительности дисковых операций.

HDD Работает в режиме PIO за место Ultra DMA-5 

Как включить режим Ultra DMA, выключить PIO. Hardware Interrupts грузит систему
Причина:
После определенного количества ошибок чтения Windows переводит контроллер на более медленный режим.

Решение:
1. Узнать, в каком режиме винт.
Заходим в диспетчер устройств — IDE/ATAPI контроллеры — первичный(вторичный)  канал и в дополнительных параметрах смотрим режим передачи — если PIO/UltraDMA-2, это он. Пробуем поставить режим «DMA если доступно» (причем это проделать во  всех первичных и вторичных каналах) и перезагрузить систему. Если опять стоит режим PIO, то проверить шлейф винчестера и питание. Если не помогло, то решение — поменять винчестер или вариант 2:

2. Отключить контроль ошибок.
В разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdfs создайте ключ ErrorControl и установите его значение в 0. Если ключ уже существует, просто измените его значение. Перезагрузитесь. Удалите и заново установите IDE-контpоллеp из "Диспетчера устройств".  

3. Выставить вручную режим UDMA для контроллеров
Заходим в реестр(меню Пуск-выполнить-regedit), далее в раздел
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}.
Где:
0000 – сам контролёр.
0001 – Secondary IDE Chanell.
0002 – Primary IDE Chanell
 В подразделах 0001 и 0002 делаем так:
1. В меню правка Создать, параметр DWORD.
2. Введите строку ResetErrorCountersOnSuccess и нажмите клавишу ВВОД.
3. 2 раза щелкнуть по созданому параметру и ввести значение 1. Нажать Ок.
В этих же разделах проверить
«MasterIdDataCheckSum»=dword:0
«SlaveIdDataCheckSum»=dword:0
Далее, проверьте, чтобы в этих же разделах параметры MasterDeviceTimingModeAllowed и SlaveDeviceTimingModeAllowed у вас имели значеие ffffffff (в шестнадцатиричной системе). И соответствующему параметру MasterDeviceTimingMode или SlaveDeviceTimingMode присвойте требуемое значение:
0×10010 — соответствует режиму UDMA Mode 5 (ATA100).
0×8010 — UDMA Mode 4 (ATA66).
0×2010 — UDMA Mode 2 (ATA33).
0×0410 — Multi-Word DMA Mode 2
Перезагрузиться.

Мне же, увы, помогла только замена шлейфа на новый  и красивый 80-пиновый. :)

понедельник, 26 октября 2015 г.

Firefox: код ошибки: ssl_error_weak_server_ephemeral_dh_key

Проблема: При попытке зайти на сервере DELL Power EDGE в консоль OpenManage Server Administrator (https://*:1311) получаем в Firefox:
"Ошибка при установлении защищенного соединения. При соединении с *** произошла ошибка. SSL получило слабый эфемерный ключ Диффи-Хеллмана в сообщении рукопожатия «Обмен ключами сервера». (Код ошибки: ssl_error_weak_server_ephemeral_dh_key)"


Решение:
Здесь "Код ошибки: ssl_error_weak_server_ephemeral_dh_key"
и здесь: https://support.mozilla.org/ru/questions/1075891


Копия под катом.

среда, 21 октября 2015 г.

Установка 1С:Предприятие 7.7 на Microsoft SQL Server 2008 R2

Источник: http://tavalik.ru/ustanovka-1spredpriyatie-7-7-na-microsoft-sql-server-2008-r2/

Официально, платформа 1С:Предприятие 7.7 работает только с MS SQL Server 2000. Но с помощью небольших манипуляций можно организовать стабильную работу и с последней, на момент написания статьи, версий Microsoft SQL Server 2008 R2. Ниже представлена пошаговая настройка связки 1С:Предприятие 7.7 + MS SQL Server 2008 R2 + Microsoft Windows Server 2008 R2 (Справедливо и для других операционных систем семейства Windows). Итак:

0. Оглавление

  1. Установка Windows Server 2008 R2
  2. Установка SQL Server 2008 R2 
  3. Создание новой базы данных в SQL Server 2008 R2
  4. Настройка Windows Server 2008 R2
  5. Установка 1С:Предприятие 7.7
  6. Патч и замена файла BkEnd.dll
  7. Создание представления sksprocesses в MS SQL Server
  8. Добавление информационной базы в 1С:Предприятие 7.7
  9. Настройка безопасности для всех пользователей