пятница, 27 марта 2015 г.

Пропадает доступ к папкам (принтерам) Windows 7 из Windows XP (2003)

Проблема: После очередного автоматического обновления Windows перестал печатать принтер пользователя из терминального сеанса. Локально печатает, а из терминала - нет.

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

Машина пользователя - Windows 7, сервер терминалов - Windows 2003 Server.
Компьютеры в домене, все права выставлены, как положено, время синхронизировано с сервером.
Все работало несколько лет подряд, и "внезапно" в обед перестало.

В журнале событий при каждой попытке фиксируется следующее:

"Ошибка srv. event id 2017. Сервер не смог выделить память из невыгружаемого пула памяти, так как достигнут указанный в конфигурации верхний предел.

The server was unable to allocate from the system nonpaged pool because the server reached the configured limit for nonpaged pool allocations.
"


Решение: Найдено тут и тут.
Мы должны указать нашей системе на Windows 7 что мы хотим  использовать ее в качестве файл-сервера, чтобы она выделила под это ресурсы.
  Изменяем 1 параметр:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache
и меняем значение на “1”

Изменяем 2 параметр:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\size
и меняем значение на "2" или “3“.

Для справки:

вторник, 24 марта 2015 г.

Фильтр в запросе по списку документов (прямые запросы)

спДок = СоздатьОбъект("СписокЗначений");
тз.Выгрузить(спДок,,,"Док");
спДок.ДобавитьЗначение(РН);

//
ТекстЗапроса = "
    |SELECT
    |    Рег.IDDoc as [Док $Документ],
    |    Рег.IDDocDef as Док_вид,
    |    $Рег.СуммаСНДС as [СуммаСНДС]
    |FROM
    |    $Регистр.ОборотыТМЦ as Рег
    |WHERE
    |    Рег.IDDoc IN (SELECT Val FROM #спДок)
";

рс.УложитьСписокОбъектов(спДок, "#спДок");
тз = рс.ВыполнитьИнструкцию(ТекстЗапроса);
тз.ВыбратьСтроку();


* имя таблицы должно начинаться с символа «#». подробное описание в синтакс-помощнике и в примерах на скрипт-кодинге.
 

Запрос по документу c помощью 1С++ (прямой запрос)

рс = СоздатьОбъект("ODBCRecordset");
ТекстЗапроса = "
    |SELECT
    |    Рег.IDDoc as [Док $Документ],
    |    Рег.IDDocDef as Док_вид,
    |    $Рег.СуммаСНДС as [СуммаСНДС]
    |FROM
    |    $Регистр.ОборотыТМЦ as Рег
    |WHERE
    |    Рег.IDDoc = :ВыбДок
";

рс.УстановитьТекстовыйПараметр("ВыбДок", РН);   
тз = рс.ВыполнитьИнструкцию(ТекстЗапроса);
Возврат тз.итог("СуммаСНДС");

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


рс = СоздатьОбъект("ODBCRecordset");
ТекстЗапроса = "
    |SELECT
    |    Жур.IDDoc as [Док $Документ],
    |    Жур.IDDocDef as Док_вид
    |FROM
    |    _1SJourn as Жур
    |INNER JOIN
    |    _1SCRDOC as Отбор ON Отбор.ChildID=Жур.IDDoc AND Отбор.MDID=0 AND Отбор.ParentVal=:ВыбДок*
    |WHERE
    |    Жур.IDDocDef=$ВидДокумента.РасходнаяНакладнаяКор
 

    |    AND Жур.Closed & 1 = 1";
рс.УстановитьТекстовыйПараметр("ВыбДок", РН);   
тз = рс.ВыполнитьИнструкцию(ТекстЗапроса);



где РН - переменная с типом значения "Документ.РасходнаяНакладная",
а подчиненные документы требуются только с видом "РасходнаяНакладнаяКор"
и Жур.Closed & 1 = 1 - указание отбирать только проведенные документы (в таблице _1SJourn есть поле Closed, первый бит которого отвечает за проведенность документа)

пятница, 20 марта 2015 г.

Запуск программы с правами администратора пользователем не из группы администраторов


Требуется: На рабочей станции пользователь без привилегий должен запускать программу, которая работает только с правами администратора.
 
Стандартное решение: Воспользоваться штатной программой run as, в самом простом виде имеющей синтаксис следующего вида RUNAS  /user:\ program (for example cmd). Пароль можно передать с помощью конвейера echo |, или с помощью ключа /savecred.  Но у этого решения есть существенный недостаток, пароль передается в открытом виде, что недопустимо. Конечно, можно написать скрипт с помощью VBS и зашифровать его. Но мы не будем заниматься этим, а воспользуемся сторонними решениями, так называемыми 3-rd party программами.

Сторонние решения:  CPAU (http://www.joeware.net/freetools/tools/cpau/) и RunasSpc (http://www.robotronic.de/runasspcEn.html).
Эти программы позволяют шифровать строку запуска, и затем уже запускать зашифрованный файл.

Примеры:

вторник, 17 марта 2015 г.

Проблема с переключением языка при входе в систему / изменение языка по-умолчанию.

Проблема: Раскладка при входе - аглицкая, а пароль - на русском. Или наоборот.
Индикатор RU / EN не отображается, раскладка стандартными комбинациями не переключается.

Решения: 
1. Если логин пользователя на русском:
A=ALT+0192
д=ALT+0228
м=ALT+0236
и=ALT+0232
н=ALT+0237
и=ALT+0232
с=ALT+0241
т=ALT+0242
р=ALT+0240
а=ALT+0224
т=ALT+0242
о=ALT+0238
р=ALT+0240

Остальные коды ASCII тут. 

2. Установка по-умолчанию и настройка внешнего вида экрана приветствия.

1. Параметры реестра, отвечающие за раскладку клавиатуры при входе в систему находятся в разделе
HKU\.DEFAULT\Keyboard Layout\Preload 
Там надо на первую позицию поместить желаемую раскладку - 00000409 (английская раскладка) или 00000419 (русская).

2. Можно внести в реестр необходимые параметры:
а) выполнив следующие команды:
reg add "HKU\.DEFAULT\Keyboard Layout\Preload" /v 1 /t REG_SZ /d 00000409 /f
reg add "HKU\.DEFAULT\Keyboard Layout\Preload" /v 2 /t REG_SZ /d 00000419 /f

б) импортировав в реестр
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Keyboard Layout\Preload] 
;Английская раскладка
 "1"="00000409" 
;Русская раскладка
"2"="00000419" 
;Раскладка с номером 1 будет предлагаться по умолчанию

3. Чтобы сменить сочетание клавиш, переключающих раскладку, выполните команду 
reg add "HKU\.DEFAULT\Keyboard Layout\Toggle" /v Hotkey /t REG_SZ /d 1 /f 
выделенный красным параметр можно менять (1 - ALT+SHIFT, 2 - CTRL+SHIFT). Чтобы переключение работало, необходимо наличие как минимум двух раскладок. См. пункт 2.

P.S. Windows 7/8 - параметры по-умолчанию можно установить через панель управления.

пятница, 6 марта 2015 г.

Драйвер для АТС Panasonic KX-TDA (Windows 8 x32)

UPD. Мне нужен был драйвер для Windows 8 x32, подошел старый драйвер для Висты, так что это резервный вариант

http://www.k-max.name/ats/drajver-x64-dlya-ats-panasonic-kx-tda/

и еще много ссылок:
http://www.proftelecom.by/manual_panasonic_kx_TDA_100.htm
http://www.telemonter.narod.ru/prog/index.html
http://forum.ru-board.com/topic.cgi?forum=8&topic=3739&start=940
http://wiki.dieg.info/mini_ats_panasonic_kx-tda100

Ошибка "IP-адрес, указанный для этого сетевого адаптера, уже назначен другому адаптеру"

Проблема: При установке IP-адреса появляется ошибка «IP-адрес, указанный для этого сетевого адаптера, уже назначен другому адаптеру имя адаптера. Имя адаптера скрыто от папки «Сетевые подключения», поскольку он либо физически отсутствует в компьютере. Если обоим устройствам назначен один и тот же адрес, только одно из них сможет его использовать. Это может привести к неполадкам в работе системы. Ввести другой IP-адрес для этого адаптера в список IP-адресов в окне дополнительных параметров?».

Решение: Нужно удалить отключенный и не видимый в диспетчере устройств сетевой адаптер.
1. «Пуск» -> «Выполнить» -> cmd
2. Включаем отображение скрытых устройств: set devmgr_show_nonpresent_devices=1
3. Запускаем «Диспетчер устройств: Start DEVMGMT.MSC
4. Открываем «Вид» -> «Показать скрытые устройства»
5. В разделе «Сетевые адаптеры» находим отключенный и удаляем.

четверг, 5 марта 2015 г.

Проблема "Вход в систему выполнен с временным профилем"

Проблема: У одного сотрудника при входе ошибка «Вход в систему выполнен с временным профилем». Со всеми вытекающими - всё создаваемое в процессе работы на рабочем столе, в «Моих документах» и т.д. при выходе удаляется. Удаление существующего профиля ни к чему не приводило.

Решение: довольно простое: лезем в реестр, открываем HKEY_LOCAL_MACHINE/\SOFTWARE/\Microsoft/\Windows NT/\CurrentVersion/\ProfileList и среди папок профилей, начинающихся на «S-1-5», ищем нужный. При открытии раздела смотрим на параметр ProfileImagePath, в нем будет указан путь к профилю, например, C:/\Users/\User. Нашли ветку? Удаляем вместе со всем содержимым.

Теперь можно входить под этим пользователем — система создаст новый нормальный профиль.

вторник, 3 марта 2015 г.

База данных диспетчера учетных записей на сервере не содержит записи для регистрации компьютера через доверительные отношения с этой рабочей станцией

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

Причина:
В моем случае причина была банальна - отключена учетная запись компьютера на контролере домена, на котором и была попытка авторизации.

Решение:
Включить учетную запись компьютера в ActiveDirectory.

Альтернативные решения:

среда, 18 февраля 2015 г.

Получение и использование нумерованных маркеров на он-лайн картах.

Дано:  Есть старые скрипты (например, Yandex API 1.1) для рисования он-лайн карт напрямую из 1С 7.7 (выполняют отображение торговых точек и маршрутов агентов на карте, скрипты шли в поставке демонстрационной конфигурации 1С 7.7 к ПО "АгентПлюс" примерно в 2012 году)

Требуется: Получить возможность нумерации серий объектов на карте, причем в разных цветах.
Сами скрипты менять не желательно (во всяком случае, на текущий момент). Иначе можно было бы воспользоваться рекомендациями Яндекс и Google, и генерировать параметры маркеров "на лету".
Текущая версия скриптов умеет только загружать в карту произвольные имеющиеся локальные иконки, так что задача намного упрощается - необходимо много-много готовых иконок, чтобы иметь возможность из загрузить в карту :)


Решение 1: Использовать имеющиеся наборы меток:
1. kml4earth - набор иконок для Google
2. https://sites.google.com/site/gmapsdevelopment/ - еще 1 набор стандартных иконок
3. https://code.google.com/p/google-maps-icons - старый проект, но наборы иконок доступны, в том числе и цифровые от 1 до 100, но не для всех цветов
4. http://mapicons.nicolasmollet.com - набор современных иконок, ссылки на другие ресурсы
5. Google map markers | CTAPbIu_MABP's BLOG - полезный блог, в том числе ссылки на большое количество маркеров, иконок и других элементов управления


Решение 2: Использовать генерацию изображений на метках:
Решение найдено здесь. Автор решения Thydzik (по ссылке - есть исходный код на PHP).
Вот что сообщает автор:
Theses markers are totally dynamic and you can create whatever balloon icon you want but you need to host some files on your server to make it work. Just change the URL like: thydzik.com/thydzikGoogleMap/markerlink.php?text=12&color=5680FC where 12 is the text and 5680fc is the hexadecimal color code. Please note that you can't hotlink from your personal "My Maps" (maps.google.com). It can be done in 2 ways : 
    1. Use Google Maps API so that dynamic icon generation can work 
    2. Save static icons, and host them your server

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

Пример: Вернуть маркер с текстом 1 голубого цвета:

Результат: 
 


Стандартные цвета: красный: FC6355, : 55D7D7, желтый: FCF356, фиолетовый: 7D54FC, розовый: E14E9D, оранжевый: EF9D3F, черный: 000000, коричневый: 9E7151 
Подбирать цвета можно здесь: http://www.color-hex.com/

Еще примеры результатов: 






Чтобы закачать сразу большой диапазон иконок с нумерацией - используем DownloadMaster
1. Выполняем команду "Закачка - Добавить группу закачек"
2. Указываем модифицированный адрес:
где:
   ХХХХХХ - код выбранного цвета
   $ - подстановочный символ, указывающий, в какое место адреса надо вставить изменяющееся значение счётчика.
3. Указываем диапазон изменения счетчика, например, от 1 до 100
4. Стартует загрузки и получаем 100 файлов иконок с номерами.
5. По желанию, выполняем групповое переименование загруженных маркеров с помощью бесплатного FastStone Photo Resizer.


пятница, 6 февраля 2015 г.

Решение проблемы быстрого расхода батареи на Android из-за процесса MediaServer

Проблема: Очень быстро разряжается батарея на Samsung Galaxy, а в "Настройки - Батарея" отображается, что 40-50% жрёт процесс MediaServer

Что это вообще такое: Процесс MediaServer в Android отвечает за сканирование и обнаружение мультимедийных файлов на внутренней памяти или карте памяти.

Решение:
Наиболее полно раскрыто


Рекомендации по предотвращению:
  • Если устройство Android используется как внешний накопитель, то всегда выполняйте «Безопасное Извлечение» с компьютера. Как выше было указано проблема MediaServer Android возникает из-за повреждения файлов.
  • Используйте качественную карту памяти microSD (ну, это понятно)
  • Не делайте дефрагментацию флеш накопителей и карт память — это верная смерть для них. (???)

Рекомендации по исправлению:

Рекомендации из сети по увеличению времени работы от батареи на Andrioid


Краткий сборник отсюда: http://androidp1.ru/prodlit-zhizn-akkumulyatoru-smartfonov-android/
  1. Уменьшить яркость
  2. Уменьшить время подсветки
  3. Отключит навигацию (GPS, A-GPS) 
  4. Отключить автоматический поворот экрана (акселерометр)
  5. Отключить беспроводные сети (WiFi)
  6. Отключить пакетные данные (GPRS)
  7. Использовать только сети 2G
  8. Отключить автоматическую синхронизацию
  9. Переходить в режим "Пилот", если устройство вне зоны действия сети или на время сна
  10. Отключить "живые обои"
  11. Не устанавливать активных приложений сверх меры
  12. Вырезать рекламу из условно-бесплатных приложений
  13. "Заморозить" неиспользуемые приложения (Titanium backup, Link2SD etc.)
  14. Отключить mp3 на вызов или предварительно подготовить небольшую мелодию
  15. Удалить стоковые приложения от производителя устройства (больше для Samsung, требуется ROOT)
  16. Регулировать частоту процессора с помощью SetCPU
  17. Использовать приложение Tasker для автоматической оптимизации процессов
  18. Отключать WiFi при переходе устройства в спящий режим
  19. Решить проблему с процессом MediaServer
  20. Пыль на контактах micro-USB
  21. Использование приложения Greenify
  22. Темный Фон (AMOLED дисплей) 

понедельник, 2 февраля 2015 г.

1С++ - прямые запросы

Оригинал статьи на скрипт-кодинге: http://www.script-coding.com/Direct_queries.html
Копия статьи на скрипт-кодинге: http://ekorshunov.blogspot.com/2015/02/mssql-1-1.html

Статья на мисте: Эффективное использование MSSQL с помощью ВК 1C++

На форуме компоненты 1C++ есть Word'овая версия данной статьи, дополненная различиями в запросах к DBF и SQL базам:
Оригинал: http://www.1cpp.ru/forumfiles/Attachments/mod_002.zip
Копия: https://drive.google.com/file/d/0B5c2buazDySmanlpSTUzRHI4cDA/view?usp=sharing


Конструктор запросов для 1С++ (плагин для OpenConf): http://www.1cpp.ru/forum/YaBB.pl?num=1148127139
Ссылка на файл: http://www.1cpp.ru/forumfiles/Attachments/qryMaker.zip

Немного примеров http://www.1cpp.ru/forum:
+ пояснения к примерам из ветки http://www.1cpp.ru/forum/YaBB.pl?num=1148038411

Эффективное использование MSSQL в 1С при помощи внешней компоненты 1С++


Копия http://www.script-coding.com/Direct_queries.html на память


Перейти на главную страничку сайта (список статей, файлы для скачивания)
ФОРУМ (здесь можно обсудить эту статью, а также любые проблемы программирования на различных макроязыках и в скриптовых средах)

Эффективное использование MSSQL в 1С при помощи ВК 1С++
Автор статьи - Ситников Анатолий.
Оригинал стати расположен по адресу http://acsent.nm.ru/others.htm.

Данная статья предполагает наличие базовых знаний по TSQL у читателя.

Содержание:
Глава 1: Мой первый запрос
Глава 2: Условия в запросах
    Приведение параметров к типу колонки
    Отбор по пустому значению
    Отбор по списку или группе
Глава 3: Работа с документами
    Общие реквизиты
    Использование граф отбора
    Получение представлений в запросе
Глава 4: Работа с регистрами
    Получение документа из регистра
    Виртуальные таблицы
    Оптимизация регистров
Глава 5: Вывод остатков в форме списка
Глава 6: Некоторые методы ODBCRecordset
Глава 7: Контроль остатков и партионный учет
Глава 8: Периодические реквизиты
Глава 9: Получение итогов в запросе
Глава 10: Операции UPDATE и DELETE
Глава 11: Эмуляция OLAP кубов, как на T-SQL реализовать опции <Все> и <ВошедшиеВЗапрос>
Глава 12: Разные примеры использования прямых запросов 

Event Log Explorer - анализа и мониторинг журналов событий Windows


Event Log Explorer™ — это эффективное программное решение для анализа и мониторинга событий, хранящихся в журналах событий (Безопасность, Система, Приложения и прочие) операционных систем семейства Microsoft Windows NT/2000/XP/2003/Vista/2008/7/8. Event Log Explorer существенно расширяет возможности встроенной в ОС программы Просмотр событий и имеет много новых оригинальных возможностей.

Сайт разработчика: http://www.eventlogxp.com/rus/

Можно получить бесплатную персональную лицензию - до 3-х ПК.

pdfarea.com - набор бесплатных утилит для работы с PDF

http://www.pdfarea.com/

пятница, 30 января 2015 г.

Ошибка при включении ПК: "USB Device Over Current Status Detected! System Will Shut Down After 15 Seconds"

Ошибка: При включении ПК сообщает "usb device over current status detected system will shutdown in 15 seconds 

Решение: В переводе ошибка звучит как "Обнаружено USB устройство с большим потреблением тока, система будет перезагружена через 15 секунд".
Не надо спешить сразу открывать корпус системного блока, для начала проверяем USB-порты.

Далее в порядке уменьшения вероятности:
  1. Отключаем все USB-устройства (флэшки/мышки/клавиатуры и т.п.). Включаем компьютер, и, если ошибка не пропала, переходим ко 2-му пункту. Если ошибки нет, то причина - перебит/коротит провод или проблема в одном из устройств.
  2. Осматриваем все USB-порты на наличие сломанных частей, посторонних предметов и большого количества пыли. Были случаи, когда после очистки от пыли USB-портов сообщение об ошибке пропадало.
  3. В 90% случаях на втором этапе выявляется сломанный разъем. А какие USB-порты используются чаще всего? Те, что расположены на передней панели корпуса системного блока. Какую флешку легче выломать? Ту, что воткнута в переднюю панель.
  4. Если не удалось выявить неисправный USB порт - отключаем USB-порты на передней панели.
  5. Ошибка usb device over current status detected характерна для материнских плат компании ASUS. Если п.п.1-4 не помогли устранить проблему, то возможное решение в следующем:
  • необходимо сбросить BIOS;
  • проверить перемычку управления питанием USBPWR (её отсутствие может быть причиной);
  • наиболее экзотичная причина - неисправность резистора, идентифицирующего наличие напряжения на одном из портов

четверг, 29 января 2015 г.

Команда MSG – отправить сообщение пользователю


Команда MSG существовала еще в Windows 2000/XP и предназначалась для обмена сообщениями между пользователями вошедшими в систему локально и пользователями терминальных сессий ( подключившихся к удаленному рабочему столу ) . В Windows Vista и более поздних операционных системах семейства Windows команда MSG стала основным стандартным средством обмена сообщениями, поскольку команда net send в данных ОС больше не поддерживается.

Формат командной строки:

MSG {<пользователь> | <имя сеанса> | | @<имя файла> | *} [/SERVER:<сервер>] [/TIME:<секунд>] [/V] [/W] [<сообщение>]

Описание параметров командной строки :


  <пользователь>    Имя пользователя.
  <имя сеанса>      Имя сеанса.
         Идентификатор сеанса.
  @<имя файла>      Файл, содержащий список имен пользователей, сеансов или
                    идентификаторов сеансов, которым отправляется сообщение.
  *                 Отправить сообщение всем сеансам на указанном сервере.
  /SERVER:<сервер>  Сервер (по умолчанию - текущий).
  /TIME:<секунд>    Интервал ожидания подтверждения от получателя.
  /V                Отображение информации о выполненных действиях.
  /W                Ожидание ответа от пользователя, полезно вместе с /V.
  <сообщение>       Отправляемое сообщение. Если не указано, выдается запрос
                    или принимается ввод из STDIN.

Защищаем и оптимизируем RDP

Много интересного и полезного отсюда.

Протокол RDP – удобное, эффективное и практичное средство для удалённого доступа как для целей администрирования, так и для повседневной работы.
Учитывая, что его реализации есть практически везде (различные платформы и ОС), и их много, нужно хорошо представлять его возможности.
По крайней мере, это будет нужно по ряду причин:
  • Зачастую вместо RDP используется другое решение (VNC, Citrix ICA) по простой причине – предполагается, что “встроенный RDP минимальный и ничего не умеет”.
  • Во многих решениях, связанных с модными сейчас облачными технологиями (перевод офисов на “тонкие клиенты”, да и просто организация терминальных серверов), бытует мнение что “RDP плохой потому что встроенный”.
  • Есть стандартный миф про то, что “RDP нельзя без VPN наружу выставлять, ломанут” (миф имеет под собой обоснование, но уже давно не актуален).
  • Ну, раз уж про мифы заговорили – бытует мнение, что “Перейдя с RDP на Citrix трафик в пару раз падает”. Ведь цитрикс – это дорого, следовательно как минимум на 157% круче.
Все эти мифы – ерунда и смесь устаревших “дельных советов”, актуальных во времена NT 4.0, а так же откровенных вымыслов, не имеющих никаких причин к существованию. Так как IT – это точная наука, надо разобраться. Хорошо настроеный протокол RDP новых версий, с учётом всех новых функциональных возможностей, является достаточно хорошим и надёжным инструментом для организации удалённого доступа.
Поэтому мы займёмся:

Возврат объекта 1С 7.7 по строке внутреннего представления из журнала регистрации

Код скопирован отсюда: Парсинг файла MLG (журнал регистрации 1С:Предприятие 7.7)
 

///////////////////////////////////////////////////////////////////////
Функция ОбъектПоСтроке(прм_стр)
//Возвращает ссылку на объект (например, документ или справочник) 
//по строке вида O/7549/2093806
    
    стр=""""+СтрЗаменить(прм_стр,"/", """,""")+"""";
    сп=СоздатьОбъект("СписокЗначений");
    сп.ИзСтрокиСРазделителями(стр);
    
    Вид = сп.ПолучитьЗначение(1);
    Тип = сп.ПолучитьЗначение(2);
    Код = сп.ПолучитьЗначение(3);
    
    стр = "{"""+Вид+""",""0"",""0"","""+тип+""",""0"",""0"","""+Код+"""}";
    Возврат ЗначениеИзСтрокиВнутр(стр); 
 
КонецФункции

Формат журнала регистрации (*.mlg) 1С 7.7

Еще один разбор формата журнала. более подробный.

Скопировано отсюда:

Описание формата есть еще здесь и здесь.

пятница, 23 января 2015 г.

Масштабирование экрана в RDP сессии

Проблема 1: В окне RDP сессии помещается лишь часть изображения рабочего стола, и для его просмотра нужно использовать полосы прокрутки.
Проблема 2: На клиентской машине установлено разрешение 3800х1800 (ультрабук под Win8), шрифты в окне удаленного рабочего стола не масштабируются, все очень мелко.

Для первой проблемы решение найдено тут:  http://winitpro.ru/index.php/2013/03/12/masshtabirovanie-ekrana-v-rdp-sessii/

Подходит ли оно для 2 проблемы - надо проверить.

В Windows XP и Windows 7 включить режим масштабирования в терминальном клиенте возможно было только отредактировав .rdp файл. Для этого необходимо было открыть файл с расширением .rdp с помощью любого текстового редактора и добавить строку:
smart sizing:i:1
 Затем изменения в файле нужно сохранить и при следующем запуске RDP клиента он будет открываться в режиме масштабирования (smart-size).

В новой версии rdp клиента в Windows Server 2012 и Windows 8 (rdp v. 8.0) появилась возможность динамической активации и отключения функции масштабирования (smart-sizing) прямо  из графического интерфейса RDP клиента.
Для этого щелкните по элементу в верхнем левом углу окно RDP и отметьте опцию Smart Sizing. Режим работы rdp клиента изменится со «статического разрешения» на динамическое, зависящее от размеров окна.

вторник, 13 января 2015 г.

Формат журнала регистрации (*.mlg) 1С 7.7

Оригинал найден тут: http://lada-it.ru/index.php/1cv7/112-mlg.html


YYYYMMDD;HH:MM:SS;User;[C,E,M];[Docs,Refs,Sys,CJ];[qqq];[дополнительный код];[описание];[Ид];[Представление]


[C,E,M]
C - Configuration
E - Enterprise
M - Monitor

 

[Docs,Refs,Sys,CJ]
Docs - Действия над документами
Refs - Действия над константами
Sys - Системное действие: подключение, отключение
CJ - Действие над журналом расчетов
Restruct - реструктуризация базы
Grbgs - Сообщения об ошибках
UpDown - Загрузка - выгрузка, сохранение - восстановление данных


[qqq]
[Doc,Ref][Write,NotWrite,MarkDel,UnmarkDel] - [Справочник,Документ][Записан, не записан, помечен на удаление, снята пометка на удаление]
Doc[Passed,NotPassed] - документ [проведен, не проведен]
CJPerChng - Изменен расчетный период
RestructStatus - Это когда выскакивает окошко измения не вызвали изменений метаданных
RestructCopy - копирование МД
RestructSaveMD - СохраненыИзмененияМД
RestructAcptEnd - Окончание процесса принятия изменений
GrbgRuntimeErr - Опшибка
GrbgSyntaxErr - Синтаксическая апшибка
OpenSession - Запуск Предприятия, конф, отл, монитора
CloseSession - соответственно закрытие


[дополнительный код]
писать их не буду - их до фени для каждого объекта. Код 5 для [GRbs;GrbgRuntimeErr;5] - Неагрегатный тип данных, код 0 для предприятия, конфигуратора, и тд - нормальное завершение операции
Код 2 - чтение запись справочников, 3 - чтение запись документов (или реструктуризация МД)


[описание]
описание ошибки, или с какой машины вошел пользователь и т.п.


[Ид] - идентификатор объекта
[Представление] - Текстовое представление объекта, если есть (для документов, справочников)
 
Примечание:
Макс длина имени пользователя, которую можно задать в конфигураторе - 24, а  дополнительный код -  встречал значения только от 1 до 5
Это следует учитывать при парсинге.