Показаны сообщения с ярлыком утилиты. Показать все сообщения
Показаны сообщения с ярлыком утилиты. Показать все сообщения
12 мая 2016 г.
Деноминация 2016. Технические аспекты
Мы подготовили инструкцию для наших клиентов по деноминированию базы данных. Технически нет возможности хранить в рамках одной базы данных суммы в старых и новых рублях. Поэтому в определенный момент времени база должна быть деноминирована, т.е. с помощью специальной утилиты все денежные значения в базе данных должны быть разделены на 10 000. С этого момента, все суммы, вне зависимости от периода времени к которому они относятся, будут храниться в деноминированных рублях.
В отличие от конкурирующих решений наш подход сохраняет всю историю, весь документооборот предприятия до 1 июля.
Первая проблема, которая возникает, это возможная потеря точности. Платформа использует тип Currency, который позволяет обрабатывать денежные величины с точностью до 4-го знака после запятой. После деноминации 0.0001 в новых деньгах будет соответствовать 1-му старому рублю. Все что меньше рубля потеряется (округлится по правилам математического округления). Хотя 1 неденоминированный рубль очень маленькая величина (коробок спичек сейчас стоит 400 рублей) можно представить базу данных, где мелкий товар учитывается поштучно и цена единицы содержит копейки -- пуговицы, швейные иголки, болты, гайки и т.п. Мы рекомендуем в таком случае провести на 30 июня 2016 г. переоценку товара, округлив учетные цены до целых рублей.
Вторая проблема -- округление до целого числа в скрипт-функциях и отчетных формах через вызов функций Round, Int, Fix, CLng, CInt или обращение к полю через свойство AsInteger. Мы внесем исправления в типовые прикладные решения, но решить задачу в общем случае, анализируя программный код и автоматически заменяя вызовы функций нам не представляется возможным. Единственный путь -- заранее создать копию рабочей базы данных, деноминировать ее и затем тестировать на ней все режимы работы и устранять выявленные проблемы.
Третья проблема заключается в том, что бухгалтерия предприятия до 20 июля производит закрытие июня и второго квартала. При этом вносятся и/или корректируются документы прошлых периодов, закрываются транзитные счета, выполняется трансформация баланса, рассчитываются промежуточные показатели и налоги. Согласно методическим разъяснениям налоговые декларации за июнь подаются в неденоминированных рублях.
Мы видим такое решение данной проблемы: предприятие продолжает после 1 июля вести учет в неденоминированных рублях при этом, непосредственно в печатных формах товарных накладных, денежные величины делятся на 10 000; суммы, поступающие из системы банк-клиент умножаются на 10 000, соответственно, суммы, уходящие в банк-клиент, делятся на 10 000; входящие накладные умножаются на 10 000 и т.д. После того, как налоговые декларации будут сданы можно будет проводить деноминацию базы данных и переходить на учет в деноминированных рублях.
Малое предприятие, при надлежащей подготовке в июне месяце, вполне может выполнить закрытие в самых первых числах июля и, таким образом, избежать промежуточного периода учета в старых и новых рублях.
Деноминация базы данных производится с помощью отдельной утилиты dnmn.exe, которая предоставляется клиентам на абонентском обслуживании. Мы обработали несколько десятков баз данных и сформировали список полей для деноминации. Если на вашем предприятии используются частные решения, то перед запуском процесса следует добавить нужные поля в список деноминируемых.
Labels:
база данных,
утилиты
21 мар. 2014 г.
Архивирование удаленного SVN репозитория
На случай ядерной войны (как бы грустно не звучало, но это теперь не шутка) решили подстраховаться и локально заархивировать наш проект с code.google.com. Действия не сложные, может кому пригодятся:
-
Понадобятся утилиты командной строки SVN. На официальном сайте доступны несколько пакетов для Windows, в которых нам было лень разбираться, поэтому мы просто переустановили TortoiseSVN, указав в процессе галку Устанавливать утилиты командной строки.
Запускаем режим командной строки и идем в папку C:\Program Files\TortoiseSVN\bin
Создаем локальный репозиторий:
svnadmin create c:\temp\gedemin_svn Теперь надо в папке c:\temp\gedemin_svn\hooks создать пустой файл pre-revprop-change.bat. Это похоже на вуду, но так надо. Указываем откуда мы будем синхронизировать данные:
svnsync init file:///c:/temp/gedemin_svn https://gedemin.googlecode.com/svn/trunk/. Обратите внимание на слэши в обратную сторону (юникс стайл) и их количество. И запускаем процесс:
svnsync sync file:///c:/temp/gedemin_svn Ждем... По окончании, для проверки, можно создать чистую папку и с помощью TortoiseSVN чек-аутнуть туда проект из нашего локального репозитория. Для этого указываем источник file:///c:/temp/gedemin_svn. Последующие запуски команды svnsync sync file:///c:/temp/gedemin_svn через день, неделю, месяц, будут загружать только изменения, скомиченные на сервер с момента последней синхронизации.
Labels:
полезное,
утилиты,
SubVersion
5 авг. 2012 г.
Виртуальная машина для компиляции Гедымина
Сколько там обещанного ждут? Трех лет точно не прошло, а виртуальная машина для компиляции Гедымина уже тут. Образ под Oracle VM Virtual Box включает:
любая кухарка сможет управлять государством каждый желающий сможет с минимальными усилиями "выпекать" для себя свежайший экзешник.
UPD: Исходный код Гедымина располагается на диске c: в папке Golden. Для его обновления до текущей версии следует на папке нажать правую кнопку мыши и выбрать команду SVN Update.
-
Borland Delphi 5
Tortoise SVN
Firebird 2.5
Исходный код платформы Гедымин
Тестовую базу данных
IBExpert
Файловый менеджер FAR
Labels:
программирование,
утилиты
7 дек. 2011 г.
etalon.sql
Долгое время формирование эталонной базы данных представляло собой трехступенчатый процесс. Сначала из отдельных файлов в папке SQL создавался скрипт, в результате выполнения которого получалась промежуточная база. Далее, утилита makelbrbtree.exe создавала прямо в этой базе необходимые метаданные интервальных деревьев. Наконец, формировался и выполнялся еще один SQL скрипт (для метаданных и данных, которые должны идти строго после инфраструктуры интервальных деревьев).
Мы изменили утилиту makelbrbtree.exe. Теперь она формирует и возвращает текст с метаданными интервальных деревьев вместо корректировки непосредственно базы данных. Объединив его с имеющимися в папке файлами мы получаем итоговый скрипт etalon.sql для генерации эталонной базы данных от и до за один проход.
PS: а так можно проверить совпадение содержимого двух текстовых файлов в пакетном файле:
... FC first.txt second.txt /C | FIND "FC: no dif" > nul IF ERRORLEVEL 1 goto s_files_are_different ... :s_files_are_different ...
Labels:
деревья,
исходный код,
оптимизация,
утилиты,
SQL
13 нояб. 2011 г.
Обо всем
-
Наводнение в Тайланде стало серьезной преградой к обновлению офисного рабочего сервера. Четыре 2Тб винчестера на сегодняшний день стоят не намного меньше, чем весь компьютер в сборе еще пару месяцев назад. Печально, что восстановление производства не обещают ранее конца 1 кв следующего года.
Краткий курс SQL уже имеет более 100 000 просмотров. К моему стыду, в интернете выложен недоработанный, неоконченный вариант. По сути, черновик. Надо будет разобраться с очередной группой и существенно переделать его. Идея краткого (по настоящему краткого, а не "Освой SQL за 21 день") курса родилась во времена регулярных занятий с сотрудниками ГИВЦа, где действовал жесткий временной лимит — не более 1-1,5 часа раз в неделю.
Наша текущая разработка под Windows CE 5 — терминал кладовщика на основе Datalogic Skorpio, является первым нашим true open source продуктом. Не только весь ее исходный код доступен, но и для компиляции используется Free Pascal.
Необходимость сделать дубликат 2Тб винчестера выявила полное превосходство бесплатного софта в этом сегменте над платными аналогами. Сначала Nero не смог создать загрузочный DVD из ISO образа Clone Zilla. Размер ISO был небольшим и Nero настойчиво требовал предоставить ему болванку именно формата CD-R. Где сейчас такую найдешь? Infra Recorder справился с задачей не задумываясь.
Встроенная в Windows Server 2003 R2 утилита архивного копирования не имеет опции для отключения сжатия данных. И это только пол беды, так как используемые ею алгоритмы настолько небыстры, что для сжатия 1.8 Тб по оценке требуется 3-4 суток. FBackup (без сжатия) справился с задачей за одну ночь.
Так получилось, что окно О программе обновлялось нерегулярно. В результате, некоторые люди незаслуженно "выпали" из когорты причастных к Гедымину. Восстановленный полный список выглядит так:
17 апр. 2011 г.
Редактор CSV файлов
При записи в CSV файл Microsoft Excel не сохраняет пустые колонки, если они находятся в конце записи. Как на беду, наша процедура универсального импорта требует строгого соответствия количества полей заданной спецификации. С помощью Гугла легко нашелся автономный бесплатный редактор CSV файлов с широчайшими возможностями.
Как и многие другие замечательные программы, CSVed написан наBorland Inprise Borland CodeGear Embarcadero Delphi.
Как и многие другие замечательные программы, CSVed написан на
Подписаться на:
Сообщения (Atom)

