Я работаю обычным аналитиком и, так получилось, что летом 2014 года, участвуя в одном e-commerce проекте, на коленке за 3 недели сделал управленческий учет в MS Excel. Давно планировал и наконец-то решил выложить на Хабр. Думаю, будет полезно малым предпринимателям, понимающим важность управления финансовыми потоками, но не желающим тратить значительное количество времени и средств на ведение управленческого учета. Не претендую на истину в последней инстанции и буду рад иным решениям, предложенным участниками сообщества.
Бизнес, к которому я летом имел отношение, был обычным интернет-магазином одежды премиум и выше сегмента с оборотом около 1 млн рублей в месяц. Бизнес работал, не сказать, чтобы очень успешно, но работал и продолжает работать. Собственник понимал необходимость ведения управленческого учета и, с этим пониманием, взял меня в качестве финансового директора (аналитика/менеджера …), так как предыдущий ушел из бизнеса за 3 месяца до моего прихода. Собственно, дыра такой же продолжительности была и в ведении управленческого учета. Забегая вперед скажу, что дыру не устранил (решили не ворошить прошлое), но создал систему, которая успешно работает при минимальных трудозатратах и по сей день.
Мой предшественник вёл управленку в Финграде, который оказался весьма мощным инструментом. Например, он позволял автоматически грузить информацию из 1С и выписок разных банк-клиентов, создавая проводки по заранее сформулированным правилам. Вещь, безусловно полезная, однако, при соблюдении системы двойной записи увеличивала время работы в разы. Чтобы избежать увеличения работы этот инструмент позволял генерировать «зависимые проводки». В создании этих дополнительных проводок и была зарыта собака. И тут выяснилось, что за всей мощью Финграда крылась уникальность, обусловившая полное отсутствие экспертизы в свободном доступе. Обычным пользователям (платившим, кстати, 3000 рублей в месяц за доступ к системе) были доступны лишь «Руководство пользователя» на официальном сайте, да 6 видео-уроков там же. Youtube, дававший доступ к ещё паре десятков видеоуроков, также не сильно помогал. Форумов с информацией «how to…» не было в принципе. Поддержка, на конкретные вопросы о правилах создания «зависимых проводок» и просьбах помочь именно в моем случае — морозилась фразами «у нас с вами не заключен договор на поддержку, поэтому на такие специфические вопросы мы не готовы отвечать». Хотя казалось бы — чего специфического в таких просьбах, да ещё и со скриншотами с моей стороны? Понятно, что все можно бить руками, но спрашивается, а зачем тогда вообще платить за инструмент, который сильно увеличивает время, необходимое на ведение управленки и не дает никаких преимуществ для малого бизнеса?
Убедив собственника в нецелесообразности использования «Финграда» при таких объемах бизнеса и выгрузив всю информацию из системы, я поставил на нем БОЛЬШОЙ и жирный крест. При этом решение уйти именно в MS Excel было не спонтанным. Хорошенько загуглив на тему ведения управленческого учета находил монстров, похожих на «Финград», либо ссылки на веб-приложения для ведения личных финансов, в то время как основными требованиями к системе были:
— возможность ведения БДДС и БДР на основе изменяемого плана счетов;
— простота в дальнейшем ведении управленческого учета (в том числе силами «финансово-неграмотных» пользователей);
— гибкость (возможность на ходу расширять/убирать функционал);
— отсутствие перегруженности инструмента/интерфейса.
Для начала проясним термины: будучи не финансистом, под БДДС понимаю «Баланс Движения Денежных Средств», БДР — «Бюджет Доходов и Расходов». БДДС считаем кассовым методом (днем совершения операции — колонка «Дата операции») и используем для операционного day-to-day планиро
Автоматическая архивация данных 1C c помощью WinRAR
Иногда случаются казусы типа: БД «рухнула», кто-то что-то совершенно «случайно» грохнул, или вообще HDD скончался…. Первая мысль: сейчас бы архивчик…. А его частенько нет, ибо любим мы на русский «авось» полагаться. Предлагаю универсальный и безотказный способ автоматической архивации, не требующий ничего потустороннего, только известный всем архиватор WinRAR. Потратите 5-10 минут на настройку, и Вы спокойны.
- -Каким образом будет запускаться задание: при включении компьютера, по графику, вручную.
- -Из какого режима работы компьютера будет запускаться задание: из рабочего или спящего.
- -Дополнительные настройки для ноутов и прочего антиквариата ПК.
Работа с bat-файлами.
Как создать batch файл?
@echo This batch file
@pauseНажмите любую клавишу для продолжения…
Обратите внимание, что символ собаки перед каждой командой в bat-файле указывает на то, что саму команду выводить на экран не надо, а нужно вывести только результат ее работы. Чтобы поэкспериментировать удалите символ собаки из начала каждой строки, сохраните и запустите полученный bat файл.
Если bat файл исполняется под управлением Windows (не в чистом DOS-е), то из него можно запускать любые приложения или открывать файлы. Например, нужно автоматически открыть лог-файл работы bat файла по завершении его работы. Для этого достаточно включить в bat файл последней строкой следующую команду:
этой команды станет открытие файла имя_файла.txt, а сам bat файл завершит свою работу. Такой способ хорош, если лог-файл небольшого размера, иначе Блокнот откажется его открывать, предложив использовать WordPad. Но эта проблема так же решаема, что и будет показано в дальнейших примерах.
>
Т.е. чтобы создать файл нужно перенаправить поток с экрана в файл. Сделать это можно при помощи следующей команды:
@echo Start file>C:1.txtПри создании файла в его имени можно использовать системные переменные или их части. Например, можно создать файл-отчет о работе bat файла с именем, равным дате запуска bat файла. Для этого можно использовать следующие строки в bat файле.
set datetemp=%date:~-10%
@echo .>%SYSTEMDRIVE%%DATETEMP%.txt@echo .>C:FolderName%COMPUTERNAME%.txtДля создания файла с определенным именем можно использовать любые системные переменные, либо создать свои, на основе системных переменных и/или других данных.
MD FolderNameMD D:FolderNameMD D:%USERNAME%MD %SYSTEMDRIVE%%USERNAME%set datetemp=%date:~-10%
MD %SYSTEMDRIVE%%datetemp%Первая команда создает в памяти переменную datetemp, которая будет уничтожена по окончании работы bat файла. То тех пор, пока bat файл не закончил свою работу есть возможность оперировать со значением этой переменной. Переменной datetemp присваивается 10 символов справа налево от системной переменной DATE, т.е. от текущей даты. Переменная DATE имеет формат Дн ДД.ММ.ГГГГ. Первые символы слева — имя дня недели и поэтому мы их отбрасываем и присваиваем временной переменной datetemp только текущую дату.
Этим не ограничивается список возможностей при создании папок. Вы можете опрерировать переменными так, как удобно Вам, создавая папки с уникальными, легко читаемыми
Как отправить почту на SMTP сервер Gmail (Google) через программу Blat
Напоминаю, что программа Blat (http://www.blat.net) — это небольшая утилита, которая может посылать почту из «Командной строки». То есть, без полноценного почтового клиента. Может пригодиться для автоматизации оправки почты без участия пользователя.
Программа отлично работает с обычными SMTP серверами и описание наладки этого процесса достаточно хорошо документировано. И все было бы замечательно, но программа не умеет работать с SMTP серверами, которые при отправке почты требуют организации «Безопасного соединения» — SSL.
Хочется нам того, или не хочется, но это «Безопасное соединение» нам придется организовывать самим. И возьмем мы для этого программу «STunnel» (http://www.stunnel.org). Я лично качал программу по этой ссылке:
http://www.stunnel.org/download/stunnel/win32/stunnel-4.26-installer.exe
Инсталлируем программу, залезаем в корень этой проги и находим файл stunnel.conf Редактируем его и приводим этот вид:
; Some debugging stuff useful for troubleshooting
;debug = 7
;output = stunnel.log
; Use it for client mode
;client = yes
; Service-level configuration
[pop3s]
accept = 995
connect = 110
;[imaps]
;accept = 993
;connect = 143
[ssmtp]
accept = 465
connect = 25
к этому виду:
; Some debugging stuff useful for troubleshooting
debug = 7
;output = stunnel.log
; Use it for client mode
client = yes
; Service-level configuration
[pop3s]
accept = 127.0.0.1:1109
connect = pop.gmail.com:995
;[imaps]
;accept = 993
;connect = 143
[smtps]
accept = 127.0.0.1:1099
connect = smtp.gmail.com:465
После чего, воспользовавшись уже созданными во время инсталляции программы ярлыками в меню «Пуск» винды, «Инсталлируем службу» (Service install) и «Стартуем службу» (Service start).
Далее распаковываем (обычной инсталляции она не требует) программу Blat в каталог, (пусть это будет каталог C:Blat), и запускаем C:Blatblat.exe /? Программа выдаст все параметры, с которыми она может работать.
Теперь делаем один важный момент. Запускаем из «Командной строки» такую команду:
C:Blatblat.exe -install -serverSMTP 127.0.0.1 -portSMTP 1099 -try 1 -u vasya@gmail.com -pw 12345 -f vasya@gmail.com
C:Blatblat.exe — это, разумеется, путь, где сидит наш запускаемый екзешник
-install — это ключ, заставляющий Blat записать в реестр винды настройки, которые следуют далее в нашей командной строке
-serverSMTP 127.0.0.1 — это сервер SMTP (который прописан нами в настройках в «Stunnel».
-portSMTP 1099 — порт SMTP сервера (который прописан нами в настройках «Stunnel».
-try 1 — это число попыток, если отправка почты не удалась (необязательный параметр).
-u vasya@gmail.com — имя пользователя
-pw 12345 — пароль
-f vasya@gmail.com — от имени кого будет приходить почта
После выполнения строки, в реестре, по этому пути:
HKEY_LOCAL_MACHINESOFTWAREPublic DomainBlat
сохранятся настройки, которые потом уже не нужно будет указывать при отправке почты через Блат. Это удобно. К тому же, это еще и безопасно тем, что в дальнейшем вам не понадобиться в параметрах blat.exe, указывать свой пароль в открытом виде (в реестре он хранится в зашифрованном виде). Хочется отметить, что команду «-install » можно и не выполнять вовсе. Это не строго обязательно. Просто потом, в дальнейшем, в параметрах программы Blat, вам придется всегда указывать абсолютно все параметры, в том числе и пароль (в открытом виде). Полная строка в этом случае будет выгляде
Отправка электронной почтты из командной строки.
Для отправки электронной почты из командной строки в операционных системах семейства Windows стандартных средств не предусмотрено, однако можно воспользоваться программным обеспечением сторонних производителей, как, например, бесплатной утилитой Blat Утилита не требует установки, просто скачайте архив и распакуйте его в какой-нибудь каталог. Если вы планируете использовать blat.exe в командных файлах, то имеет смысл поместить ее в каталог, используемый в путях поиска исполняемых файлов по умолчанию (задаваемых переменной окружения PATH), например, windowssystem32 .
При выполнении, blat.exe может использовать некоторые параметры — профиль , который хранится в реестре Windows. Профилей может быть несколько и один из них может использоваться в качестве профиля по умолчанию. Для создания профиля используется ключ -install при запуске blat.exe.
blat.exe -install smtp.mail.ru test@mail.ru 3 25 profile1 test@mail.ru пароль
параметры, следующие за «-install» должны располагаться именно в таком порядке:
smtp.mail.ru — имя почтового сервера, через который будет выполняться отправка электронных писем
test@mail.ru — имя отправителя, которое будет отображаться в поле From:
3 — число попыток повторный отправки письма при сбое соединения с сервером.
25 — номер порта SMTP-сервера
profile1 — имя профиля утилиты
test@mail.ru — имя пользователя, которое будет использоваться при подключении к SMTP-серверу
пароль — пароль, используемый при подключении к SMTP-серверу
После выполнения этой команды, в реестре будут созданы ключи, которые могут использоваться программой в качестве входных параметров.

blat.exe -install smtp.mail.ru test@mail.ru 3 25 — test@mail.ru
Параметры Blat.exe хранятся в ветке реестра
[HKEY_LOCAL_MACHINESOFTWAREPublic Domain]
Профиль по умолчанию хранится в ветке
[HKEY_LOCAL_MACHINESOFTWAREPublic DomainBlat]
Настройки для конкретного профиля
[HKEY_LOCAL_MACHINESOFTWAREPublic DomainBlatимя профиля]
Для получения встроенной справки программы используется ключ -h
blat -h — выдача справки на экран
blat -h > C:blathelp.txt — выдача справки в файл C:blathelp.txt
Даже беглый просмотр ключей, используемых программой, говорит о ее обширных возможностях, в том числе, отправку писем в любой кодировке, использование многоцелевого формата почтовых сообщений MIME, отправку с вложением файлов и т.п. Для описания всех возможностей понадобилась бы отдельная книга средних размеров, поэтому ограничусь примерами наиболее частого использования.
Отправка письма с использованием профиля по умолчанию получателю test@ab57.ru:
blat.exe -body «Hello World» -to test@ab57.ru
Параметр -body используется для формирования текста в теле письма. Если текст содержит пробелы, то заключается в двойные кавычки. Параметр -to задает адрес получателя. Остальные данные, необходимые для отправки берутся из профиля по умолчанию (адрес SMTP- сервера, имя пользователя, пароль и т.п.). В качестве текста тела письма можно использовать содержимое файла, указав его имя вместо параметра -body
blat.exe C:mytext.txt -to test@ab57.ru
Для отправки электронного письма без текста используется имя пустого файла (а не ключ -body без параметров, когда будет ожидаться ввод текста письма с клавиатуры)
Если используется текст на русском языке, то нужно указать кодировку, поддерживающую символы кириллицы, для чего используется ключ —charset :
blat.exe -body «Текст на русском» -to test@ab57.ru -charset utf-8
Для отправки писем с вложением файлов используется ключ -attach
blat.exe -body «Текст на русском» -to test@ab57.ru -charset utf-8 -attach c:boot.ini
Если тема письма не задана, то blat.exe использует в поле темы строку Contents of file: stdin.txt. Для подавления стандартной темы можно использовать ключ -ss. Поле темы, в этом случае будет пустым. Для указания нужного текста в поле темы используется ключ -subect
blat -body «TEST на русском» -subject Важно! -to test@ab57.ru -charset utf-8 -attach c:boot.ini
Для отправки письма с настройками из конкретного профиля используется ключ -p имя профиля
blat.exe -body «this is text» -p profile1 -to test@domain.ru
Для получения списка профилей, хранящихся в реестре на данный момент используется ключ -profile
blat -profile
В ответ будет выдано
Blat v2.6.2 w/GSS encryption (build : Feb 25 2007 12:06:19)
Profile(s) for all users of this computer —
SMTP: smtp.mail.ru «test@mail.ru» 1 25 ***** *****
SMTP: smtp.mail.ru «test321@mail.ru» 3 25 profile1 ***** *****
Первая строка, начинающаяся с SMTP: относится к профилю по умолчанию, вторая — к профилю с именем profile1
Для отправки электронного письма без использования какого-либо профиля, в командной строке blat.exe нужно задать все те данные, которые хранятся в профиле.
blat -body «TEST» -to test@yandex.ru -server smtp.mail.ru -f test@mail.ru -u test@mail.ru -pw пароль
Если какой-либо из параметров не задан, он будет взят из профиля по умолчанию.
-server — имя сервера SMTP
-f — почтовый адрес отправителя
-u — имя пользователя, используемое для подключения к SMTP-серверу (AUTH LOGIN)
-pw — пароль пользователя.
Автор: Guest Rooms «Varnaflats.eu»
Дата публикации: 2017-07-28T21:46:00.000-07:00
Отправка сообщений электронной почты из командной строки, с помощью утилиты Blat.exe
Сегодня я расскажу о том, как отправлять сообщения на электронную почту из командной строки. Можно привести массу ситуаций, когда необходимо выполнять данное действие. Например, для контроля выполнения различных регламентных заданий, резервного копирования баз данных и пр. А поможет нам в этом маленькая, удобная и абсолютно бесплатная утилита Blat.exe.1. Утилита Blat.exe
2. bat-файлы для отправки сообщений
rem *** Путь к программе blat.exe ***
set file_blat=D:blatblat.exe
rem *** Путь к файлу с текстом сообщения ***
set file_text=D:blatreport.txt
rem *** Путь к файлу для сохранения лога ***
set file_log=D:blatlog_blat.txt
rem *** Данные отправителя ***
set from_server=smtp.mydomen.com
set from_port=25
set from_mail=report@mydomen.com
set from_name=report
set from_pass=password
rem *** Данные получателя ***
set to_mail=user@mydomen.com
set to_subject="Report"
rem *** Отправка сообщения ***
%file_blat% %file_text% -server %from_server%:%from_port% -f %from_mail% -u %from_name% -pw %from_pass% -to %to_mail% -s %to_subject% -log %file_log% rem *** Путь к программе blat.exe ***
set file_blat=D:blatblat.exe
rem *** Путь к файлу с текстом сообщения ***
set file_text=D:blatreport.txt
rem *** Путь к файлу для сохранения лога ***
set file_log=D:blatlog_blat.txt
rem *** Данные отправителя ***
set from_server=smtp.mydomen.com
set from_port=25
set from_mail=report@mydomen.com
set from_name=report
set from_pass=password
rem *** Отправка сообщения ***
%file_blat% %file_text% -server %from_server%:%from_port% -f %from_mail% -u %from_name% -pw %from_pass% -to %1 -s %2 -log %file_log%rem *** Путь к программе blat.exe ***
set file_blat=D:blatblat.exe
rem *** Путь к файлу с текстом сообщения ***
set file_text=D:blatreport.txt
rem *** Путь к файлу для сохранения лога ***
set file_log=D:blatlog_blat.txt
rem *** Путь к файлу с адресами получателей ***
set file_to=D:blatmail_list.txt
rem *** Тема сообщения ***
set to_subject="Report"
rem *** Данные отправителя ***
set from_server=smtp.mydomen.com
set from_port=25
set from_mail=report@mydomen.com
set from_name=report
set from_pass=password
rem *** Отправка сообщения ***
%file_blat% %file_text% -server %from_server%:%from_port% -f %from_mail% -u %from_name% -pw %from_pass% -tf %file_to% -s %to_subject% -log %file_log%rem Резервное копирование завершилось успешно
call D:blatsend_email.bat "Backup - OK"
rem Резервное копирование завершилось c ошибкой
call D:blatsend_email.bat "Backup - ERROR"rem *** Основная директория файла ***
set dir=%~dp0
rem *** Путь к программе blat.exe ***
set file_blat=%dir%blat.exe
rem *** Путь к файлу с текстом сообщения ***
set file_text=%dir%report.txt
rem *** Путь к файлу для сохранения лога ***
set file_log=%dir%log_blat.txt
rem *** Путь к файлу с адресами получателей ***
set file_to=%dir%mail_list.txt
rem *** Данные отправителя ***
set from_server=smtp.mydomen.com
set from_port=25
set from_mail=report@mydomen.com
set from_name=report
set from_pass=password
rem *** Отправка сообщения ***
%file_blat% %file_text% -server %from_server%:%from_port% -f %from_mail% -u %from_name% -pw %from_pass% -tf %file_to% -s %1 -log %file_log%3. Заключение
Автор: Guest Rooms «Varnaflats.eu»
Дата публикации: 2017-07-28T21:41:00.001-07:00

