четверг, 9 февраля 2012 г.

Бег по кругу.


За что люблю державу что всегда для всех работа.
  1. Минфин клепает законы не задумываясь о их содержании, вводят новые отчетные формы которые отличаются только названием файла  от предыдущих.
  2. Бухгалтера бегают по потолкам за неделю до граничного срока, пытаясь понять глубинный смысл нововведения и вычитывая печатные формы в поисках отличий (А ведь трудно найти черную кошку в темной комнате, особенно если ее там нет).
  3. IT-ки топчут потолки, по ранее протоптанной бухгалтерами дорожке. Переписывают ПО чтоб поменять 1 символ в имени формируемого файла.
  4. Налоговая нагибает  штрафует (отказывает в возмещении НДС) тех кто не постиг глубинного смысла и забыл поменять 1 символ.
  5. Все заняты.
  6. А через 1-2 месяца чтоб скучно не было переходим к пункту1.
Наглядный пример рекурсивной задачи в реальной жизни. :)

четверг, 28 июля 2011 г.

Забудьте все что учили в школе


А математику пусть учат ботаники, 
для работы в налоговой она теперь не нужна.

Как оказалось Государственная Налоговая Администрация  Украины не дружит с логикой, а также со школьным курсом математики за 1й/2й класс.

Следующую строчку
 (р. 08 – р. 09 (при позитивному значенні) х р.10 / 100)
Следует считать так
((р. 08 – р. 09) (при позитивному значенні) х р.10 / 100)
Т.е. сначала вычитаем, а затем умножаем.

И подозреваю это далеко не единственный перл.


понедельник, 23 мая 2011 г.

Нестандартные сортировки

Привези ка мне батюшка чудище заморское цветочек аленький.


Как часто бывает в жизни что желания не совпадают с возможностями. Вот и по работе часто пожелания пользователей и чиновников не совпадают со стандартными  возможностями MS SQL Server. 
Пример: Необходимо отсортировать накладные для реестра по коду(хранится как строка) и дате выписки.

Допустим имеются следующие данные

Код              Дата
1/01              01/02/2011
2/01             05/02/2011
11/01           09/02/2011

На первый взгляд можно обойтись банальным ORDER BY, но тут по классике жанра начинают публиковаться пояснения, исключения и замечания.

Сортировать надо не по всему коду, а по части до "/" с приведением к числовому значению, т.к. 2 должно идти перед 11 а не наоборот, т.к. если сортировать как строку то получится порядок 1, 11, 2 вместо требуемого 1, 2, 11.

Ну а дальше начинаются субъективные факторы по типу "погоды на Марсе". 
Например если погода на Марсе ясная и накладная выписалась заданному клиенту, когда муха пролетая над кактусом потеряла ориентацию в пространстве и упала в кружку с чаем операциониста, то запись необходимо разместить в самом конце списка, независимо от того когда и с каким номеров эту накладную выписали. 

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

Форматирование адреса для налоговой

Вот за что я люблю нашу украинскую налоговую, так это за то что благодаря ее стараниям без работы никогда не останусь. То крестики на нолики поменяют, то заставят писать каждый символ в отдельную ячейку(хотя софт самой налоговой этого не умеет), то таблицы в отчетной форме местами поменяют. А самое главное делают все это задним числом, в результате чего на вопрос клиентов на когда надо получаю стандартный ответ "на вчера".
Вот на днях опять разродились разъяснениями.

Суть истории. 

В течении десятилетия налоговая принимала накладные с произвольно заполненным адресом. Ну программа естественно выгружала адрес в том формате который требуется статотчетностью нацбанка, ФАТФом, фондом гарантирования вкладов физлиц. Зато теперь налоговая ввела новый формат адреса

Было: Донецкая обл,Шахтерский район,86200,с. Маринка,ул. Университетская,д. 10,кв. 1,Украина
Стало: Университетская, 10, 1, маринка, шахтерский, Донецкая, 86200

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

Первое

Это мое первое сообщение.
Ну чтож опишу опишу вкратце о чем буду писать.
Во первых никакой политики(ее мне хватает в реальной жизни), может быть когда нибуть заведу для описания жизни, политики и путешествий отдельный блог, а пока ...
А пока буду писать о работе, точнее о программировании и о том какие нестандартные решения применять для того чтобы решить на первый взгляд простые задачи.
Начну пожалуй с удаления дубликатов в клиентской базе, но об этом уже в следующем посте.