Поиск по этому блогу

среда, 26 августа 2015 г.

Загрузка Tails с помощью Grub2 из iso-файла на жестком диске

Проверялось на Tails 1.5 x86_64.
Дописываем в /etc/grub.d/40_custom:
menuentry "Tails 1.5 x86_64 ISO" --class tails --class gnu-linux --class gnu --class os {
 set isofile=var/download/tails-i386-1.5/tails-i386-1.5.iso
 loopback loop (hd0,2)/$isofile
 linux (loop)/live/vmlinuz2 boot=live config findiso=$isofile apparmor=1 security=apparmor nopersistent noprompt timezone=Etc/UTC block.events_dfl_poll_msecs=1000 splash noautologin module=Tails  noapic noapm nodma nomce nolapic nomodeset nosmp vga=normal
 initrd (loop)/live/initrd2.img
}
при этом заменяем "(hd0,2)" на номер диска и раздела, на котором лежит iso-образ Tails, а "var/download/tails-i386-1.5/tails-i386-1.5.iso" заменяем на путь к файлу образа относительно корня этого раздела (обратите внимание, что слэш "/" в начале пути НЕ УКАЗЫВАЕМ!). После этого выполняем
в Ubuntu:
$ sudo update-grub2
в Fedora:
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
и перезагружаемся. В меню Grub2 должен появиться новый пункт "Tails 1.5 x86_64 ISO" для загрузки Tails.
Примечания:
  • Параметры загрузки взяты из <tails-i386-1.5.iso>/isolinux/live.cfg (раздел "label live-amd64"). Там же можно посмотреть параметры для загрузки в 32-хразрядном режиме (раздел "label live").
  • Вместо опции findiso=$isofile можно указать опцию fromiso=/dev/disk/by-uuid/3cb868a1-260e-45d0-a1c9-b42d09ff2aa3/$isofile (или fromiso=/dev/sda2/$isofile), заменив UUID (или название) раздела диска на свой.
P.S. Немного не в тему, но где-то надо было написать... Для запуска из iso-файла DoudouLinux 2.1 Hyperborea можно попробовать такой вариант (у меня работает только в виртуалке, а на десктопе зависает в процессе загрузки; впрочем, он зависает на этом же месте и при загрузке с usb-флешки, так что проблема скорее всего не параметрах загрузки, а в чём-то другом; разбираться пока времени нет):
menuentry "DoudouLinux 2.1 ISO" --class doudoulinux --class gnu-linux --class gnu --class os {
 set isofile=var/download/doudoulinux-hyperborea-2.1-ru.iso
 loopback loop (hd0,2)/$isofile
 linux (loop)/live/vmlinuz findiso=$isofile boot=live config locales=ru_RU.UTF-8 keyboard-layouts=ru,us keyboard-variant=oss,, keyboard-options=grp:alt_shift_toggle,lv3:ralt_switch,compose:menu,terminate:ctrl_alt_bksp utc=no timezone=Europe/Moscow nox11autologin nomodeset video=uvesafb:mode_option=640x480-16,mtrr=3,scroll=ywrap username=tux hostname=doudoulinux
 initrd (loop)/live/initrd.img
}
Сайт Tails: https://tails.boum.org/
Сайт DoudouLinux: http://www.doudoulinux.org/

Данный текст доступен по лицензии Creative Commons Attribution (CC BY)

вторник, 18 августа 2015 г.

Выгрузка из 1С:Бухгалтерия декларации по НДС, содержащей ошибки

Проверялось на: 1С:Бухгалтерия 2.0.64.31.
1С:Бухгалтерия не даёт выгрузить декларацию по НДС, в которой есть ошибки. Чтобы обойти это справедливое, но не всегда нужное ограничение, можно воспользоваться описанным ниже способом.
  1. Читаем http://kb.mista.ru/article.php?id=105, создаем обработку Отладка.epf, в модуле которой пишем код: 
    Функция Присвоить(А, Б) Экспорт
      А = Б;
      Возврат А;
    КонецФункции
  2. Запускаем Конфигуратор, находим в дереве конфигурации отчет РегламентированныйОтчетНДС, открываем форму ФормаОтчета2015Кв1, переходим в текст модуля формы и ставим точку остановка в функции Функция ВыгрузкаВозможна(Параметры)  на последнем операторе "Возврат СтатусПроверки;".
  3. Запускаем 1С:Предприятие в режиме отладки, заходим в Регламентированную отчетность, запускаем выгрузку декларации по НДС. Срабатывает точка останова.
  4. Переходим в Конфигуратор, нажимаем Shift+F9 ("Вычислить выражение..."), в поле "Выражение" пишем (всё одна строка):
    ВнешниеОбработки.Создать("C:\Путь\Куда\Сохранили\Обработку\Отладка.epf").Присвоить(СтатусПроверки, Истина)
    и нажимаем кнопку "Рассчитать". После этого закрываем окно "Вычислить выражение..." и по кнопке F5 ("Продолжить отладку") продолжаем выполнение кода.
  5. Профит!
Лучше один раз увидеть, чем сто раз услышать (скриншот):


P.S. Если есть возможность вносить изменения в конфигурацию, то можно просто временно поменять "Возврат СтатусПроверки;" на "Возврат Истина;".

Данный текст доступен по лицензии Creative Commons Attribution (CC BY)

понедельник, 17 августа 2015 г.

Создание многострочного электронного письма из командной строки Thunderbird

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

В Linux создаём файл body.txt c текстом письма и выполняем команду (это всё одна строка):
thunderbird -compose "to='larina@example.com',subject='Привет',body='$(cat body.txt)'"
В Windows (это всё одна строка):
"C:\Program Files\Mozilla Thunderbird\thunderbird.exe" -compose "format=1,to='onegin@example.com',subject='Привет',body='<p>Я к вам пишу - чего же боле?<br>Что я могу еще сказать?<br>Теперь, я знаю, в вашей воле...<br></p><p>Т.Л.</p>'"
Сайт Thunderbird: https://www.mozilla.org/en-US/thunderbird/

Данный текст доступен по лицензии Creative Commons Attribution (CC BY)

вторник, 4 августа 2015 г.

Настройка меню пользователя в Far Manager

В Far Manager есть так называемое "Меню пользователя" (перекочевавшее ещё из Norton Commander), которое вызывается по F2, и которое "предназначено для упрощения выполнения часто используемых операций" (цитата из встроенной справки).
В данный момент я использую это меню для двух основных типов операций:
  1. Быстрая навигация по файловой системе.
  2. Выполнение команд над выделенными файлами.
Для ускорения навигации по файловой системе я предлагаю добавить в пользовательское меню пункты, у которых в качестве команды указано"cd <путь-к-нужной-папке>".
Например, если создать пункт меню, у которого "Hot key" = "W", "Label" = "Go to Work", а "Commands" = "cd D:\Work", то при последовательном нажатии клавиш F2 и W, мы моментально попадаем в папку "D:\Work".
Аналогично если задать "Hot key" = "D", "Label" = "Go to My Documents", а "Commands" = "cd %userprofile%\Documents", то при последовательном нажатии клавиш F2 и D, мы переходим в папку "Мои документы".
Всё просто. Главное значение имеет удачный выбор горячих клавиш. Очень важно чтобы в голове была чёткая ассоциация между буквой (или цифрой), которая назначена в качестве горячей клавиши, и папкой, в которую нужно перейти. Это позволит не тратить лишнее время на размышления и для перехода в нужную папку потребуется нажатие всего двух-трёх клавиш.
Почему может понадобиться нажатие трёх клавиш? Иногда возникает такая ситуация: есть две папки, допустим "D:\Folder1" и "D:\Folder2". Их названия настолько созвучны, что так и хочется и той, и другой в качестве горячей клавиши назначить "F". Но двум командам назначить одну и ту же горячую клавишу нельзя (если честно, то можно, но срабатывать будет только одна из них). Данную задачу можно решить так: создаём подменю (нажимаем F2, затем Ins, выбираем пункт [Insert menu]), у которого "Hot key" = "F" и Label = "Go to Folder<N>", затем заходим в этом подменю и создаём в нём две команды - первая с "Hot key" = "1", "Label" = "Go to Folder1", "Commands" = "cd D:\Folder1", а вторая с "Hot key" = "2", "Label" = "Go to Folder2", "Commands" = "cd D:\Folder2". Теперь, нажимая последовательно F2, F, 1 мы переходим в папку "D:\Folder1", а нажимая F2, F, 2 - в папку "D:\Folder2".

Теперь о выполнении команд над выделенными файлами.
В качестве первого примера рассмотрим команду быстрого создания резервной копии файла (или нескольких файлов). Разумеется, можно воспользоваться встроенными в Far Manager возможностями по работе с архивами, т.е. нажать Shift+F1 и просто добавить выделенный файл в архив. Но мне хочется, чтобы имя файла архива автоматически строилось по шаблону "<дата-создания-архива><имя-архивируемого-файла><время-создания-архива>.7z". Для этого я  добавил пункт меню с "Hot key" = "+", "Label" = "Arc file !&", "Commands" = "D:\.scripts\arcfile.bat !&". Как видно, при выборе данного пункта меню вызывается bat-файл, которому в качестве параметров передаются имена выделенных файлов (они будут любезно подставлены Far Manager-ом вместо метасимволов "!&"). Содержимое файла arcfile.bat такое:
for /F "tokens=1,2,3 delims=." %%i in ("%DATE%") do set DATEARC=%%k-%%j-%%i
for /F "tokens=1,2 delims=," %%i in ("%TIME%") do set TIMEHHMMSS=%%i
for /F "tokens=1,2,3 delims=:" %%i in ("%TIMEHHMMSS%") do set TIMEARC=%%i%%j%%k
set TIMEARC=%TIMEARC: =0%

set ARCFILE="%DATEARC%-%~1.%TIMEARC%.7z"

"C:\Program Files (x86)\7-Zip\7z.exe" a %ARCFILE% %*
if ERRORLEVEL 1 pause
Большая часть этого bat-файла предназначена для генерацией имени результирующего архива, после чего вызывается архиватор 7z, который и делает всю работу. По окончанию работы 7z мы проверяем ERRORLEVEL (код ошибки), и если "что-то пошло не так", то останавливаемся по команде "pause".
Теперь если мы установим курсор на файл test.txt и последовательно нажмём F2 и +, то на выходе мы получим архив 2015-08-04-test.txt.202946.7z, в котором будет сохранена резервная копия файла test.txt.

В качестве второго примера рассмотрим команду вычисления md5-сумм выделенных файлов с сохранением результата в указанный файл. Добавляем пункт меню с "Hot key" = "5", "Label" = "md5sum !&", "Commands" = "md5sum !& > !?$Md5sumHistory$Enter md5-file name?(!.!).md5!". Команда выглядит достаточно громоздко, и на первый взгляд может вообще показаться, что это какой-то хаотический набор символов, но не всё так страшно. Разберём по порядку, слева направо: "md5sum !&" вычисляет md5-суммы выделенных в панели Far Manager файлов, затем с помощью символа ">" вывод этой команды перенаправляется в файл, имя которого задаётся конструкцией "!?$Md5sumHistory$Enter md5-file name?(!.!).md5!". Эта конструкция предназначена для вывода диалогового окна, в котором пользователь может указать имя файла, в котором он хочет сохранить md5-суммы. Формат этой конструкции такой "!?$<history>$<title>?<init>!". В <history> указывается произвольный уникальный символьный идентификатор, с которым будет связана история прошлых пользовательских вводов (в нашем случае это "Md5sumHistory"). В <title> указывается подсказка пользователю что от него требуется ("Enter md5-file name"). А в <init> указывается значение по умолчанию (в нашем случае, это "(!.!).md5", т.е. имя первого выделенного файла, к которому дополнительно добавлено расширение .md5). После того, как пользователь введет имя файла (или просто согласится с именем файла по умолчанию) Far Manager выполнит команду "md5sum !& > имя-файла-которое-указал-пользователь".
Т.о, если теперь установить курсор на файл test.txt и последовательно нажать F2, 5 и Enter, то на выходе мы получим файл test.txt.md5, в котором будет сохранена md5-сумма файла text.txt.

Более подробно узнать о возможностях "Меню  пользователя" в Far Manager, а также о существующих метасимволах, можно из встроенной справки, которую можно вызвать последовательно нажав F2 и F1.

Сайт Far Manager: http://farmanager.com/
Данный текст доступен по лицензии Creative Commons Attribution (CC BY)