29 мая 2011 г.

Чудеса 8-ки

Делаю обработку загрузки данных из ДБФ файла из приватовского клиент-банка.
Оказывается стандартная переборка записей ДБФ файла не работает.
Что такое стандартная переборка?

Конструкция типа:

БД = Новый XBase;
БД.ОткрытьФайл(Путь + "start.dbf");
Пока БД.Следующая() Цикл
Сообщить(БД.CODE);
Сообщить(БД.NAME);
КонецЦикла;
БД.ЗакрытьФайл();

Или типа:

БД = Новый XBase;
БД.ОткрытьФайл(Путь + "start.dbf");
БД.Первая();
Пока НЕ БД.ВКонце() Цикл
Сообщить(БД.CODE);
Сообщить(БД.NAME);
БД.Следующая();
КонецЦикла;
БД.ЗакрытьФайл();

Так вот я столкнулся со случаем, когда такие коды не работают.
Выручил такой код:

БД = Новый XBase;
БД.ОткрытьФайл(Путь + "start.dbf");
Размер = БД.КоличествоЗаписей();

Для ы=1 По Размер Цикл

БД.Перейти(ы);
Сообщить(БД.CODE);
Сообщить(БД.NAME);

КонецЦикла;
БД.ЗакрытьФайл();

29 мар. 2011 г.

Творцы

Стал разбираться с 7-ным начислением зарплаты. В смысле в бухгалтерии. Украинский 283-ой релиз.
Разработчики забыли про проводку начисления ЕСВ на больничные.
Вроде как нашел затык, но вдруг упёрся в то, что даже ставки начислений ЕСВ на больничные для инвалидов разработчиками не предусмотрено.
И эта конфигурация работает с 3-его марта!

16 мар. 2011 г.

Про ИТС

Намедни позвонил франч с претензией, позвони предпринимателю Имярек, который два года тому купил через меня УТ и подпиши его на ИТС. Таковы требования 1С.
А я спросил: "А зачем предпринимателю Имярек подписываться на ИТС?"
Ведь по сути, два года тому я по требованию клиента так перелопатил УТ, что конфигурацию можно обновить только в ручном режиме. Программа очень устойчива и проработает лет пять спокойно. Клиент к тому же даже не плательщик НДС. С начала года изменилась налоговая накладная, реестр налоговых документов. И никаких движений от Имярек.

1 мар. 2011 г.

Прошло два месяца реформ

Итак пронеслись два месяца после введения в действие налогового кодекса.

Пронеслись в многочисленных попытках толкования новых форм налоговых накладных, их нумерации. Как они попадают в реестры налоговых накладных для налоговой. 1С тянула до конца, не веря, что нумерация налоговых документов по-месячная. В конце концов выпустила новый 282-ой релиз, где хитро решила проблему. В смысле, сделали нумератор, но годовой, а помесячную нумерацию сделали через изменяемый по-месячно префикс налоговых документов. 282-ой релиз был выпущен 21.02. Всем моим клиентам я уже давно сделал по-месячный нумератор. А предложенный вариант не устроит фирмы ведущие распределённый учет. Там на уникальных префиксах для каждого филиала всё завязано.

Попутно решались вопросы расчета ЕСВ (Единого социального взноса) при расчете зарплаты. Эту проблему 1С решила в 281 релизе. Считает всё хорошо, если зарплаты в вашей конторе не превышают 10 минималок. Если же у Вас зарплата больше, то физкульт привет, обдираете родное государство. Не на много, но для штрафования достаточно. Эта ошибка повторяется во всех виденных мною конфигурациях 1С, во всех семёрках, и в бухгалтерской восьмёрке (23-ий релиз).

Сейчас появляются новые проблемы, согласно соцстраховского письма 1742/0/14-11/18 от 18.02.2011 даются разъяснения, как надо считать больничные. А для их получения надо не только открыть отдельный банковский счет, но и считать отдельно. Надо рассчитать больничный чисто без части вычитаемых с больничного налогов и взносов.
Т.е. деньги по больничному сначала надо начислить, а потом с них же удержать НДФЛ и ЕСВ. Что в условиях попадания на общие льготы сотрудника (например: 2 и более детей) весьма муторно.

В общем покой нам только снится. А ведь после 1-ого апреля начнется второй этап реформ. Там что-то по прибыли начудили.

10 дек. 2010 г.

Сообщения об ошибках платформы 1С Предприятие

10 Ошибка закрытия файла
20 Ошибка создания файла
30 Ошибка определения длины файла
40 Ошибка установки длины файла
50 Ошибка при попытке заблокировать файл
60 Ошибка при открытии файла
70 Ошибка чтения файла
80 Ошибка удаления файла
90 Ошибка переименования файла
100 Ошибка позиционирования в файле
110 Ошибка снятия блокировки с файла
120 Ошибка записи в файл
200 Файл не является базой данных DBF-формата
210 Неопознанное имя поля
220 Неопознанный тип поля
230 Запись слишком длинная
300 Индексный файл не содержит информации о записи
310 Нарушение структуры индексного файла
330 Указанное имя индекса недоступно
340 Ошибка уникальности индекса
400 Ожидается запятая или скобка
410 Выражение не завершено
422 IFF требует параметров одинаковой длины
425 У STR и SUBSTR 2-й и 3-й параметры – константы
430 Неверное число параметров
440 Слишком сложное выражение
450 Пропущена правая скобка
460 Неверный тип подвыражения
470 Неопознанная функция
480 Неопознанный оператор
500 Выражение не завершено символом двойной кавычки
920 Недостаточно памяти.
Код 10: -Ошибка открытия словаря Базы Данных
Поврежден файл 1cv7.DD.
Решение: уберите этот файл куда-нибудь (вдруг пригодится для анализа) , запустите Конфигуратор, сохраните конфигурацию и файл пересоздастся. *“Ошибка при открытии списка сохраняемых файлов” *
В \1Cv77\BIN\1CV7FILE.LST найти этот файлик и снять с него ReadOnly
Если его нет, то создать вот такой к примеру:
S*.DBF
S1CV7.MD
S1CV7.DD
S1CV7.SPL
S1CV7.ORD
UUSRDEF\USERS.USR
Неверно задано имя сохр отчета.
Эта ошибка возникает также при административной установке при работе с несколькими БД, когда один из пользователей лочит файл, сохраняя свою конфу.
Microsoft Visual C++ Runtime Library: Runtime Error: abnormal program termination
Попробуйте забэкапить и потом удалить все из каталога SysLog. Логи не надо удалять – они всегда пригодятся для “разбора полетов”. Достаточно их переместить туда-сюда из папки в папку или просто зайти в МЛГ с корректировкой.
Была аналогичная ситуация: Перегрузили сервер с незакрытой базой и начались ошибки Run-Time. После перезагрузки клиентов и удаления файлов *.LCK всё вылечилось.
папку с базой просто скопировали, и все стало ОК ! Потом неработающую стерли и скопированную переименовали, и все работает...
Такая ошибка может вылетать при недостатке свободного места на диске. Проверил скандиском – он нашел несколько ошибок на несоответствие в размерах файлов. Исправил и все заработало.
При внезапном падении 1С или компьютера с базой часто случается, что файл ЛОГа не успевает записаться и в последней строке лога или неполная или пустая строка. Так вот, при наличии в конце лога пустой строки – программа 1С вываливается с вышеназванным сообщением. Лечится удалением пустых строк в конце файла ЛОГа редактором WordPad‘ом.

“Порядок сортировки установленный для базы данных отличается от системного”
В Windows: Пуск – Настройка – Панель управления – Языки и стандарты – Региональные стандарты ставишь язык такой-же, как в конфигураторе Администрирование – Кодовая страница ИБ.
Для русского это будет кодировка 1251.
Error#: -330 Tag Name not Found RG_ADD *В одной из позиций номенклатуры (забитой кем-то еще в начале) не было (или была неправильная) ссылка на “Единицу измерения” (писала – в отчете “Остатки ТМЦ” – “Объект не найден/350”). Убил эту позицию (благо нигде не использовалась) – и все дела... *Касперский монитор 4.0 стоит. Выруби.
Run Time Error 6025 pure virtual function call
90% – битый хасп (1С). Меняй.
Неустранимая ошибка открытия базы
Бывает, что под определённым логином пользователя появляется эта ошибка. Лечится удалением соответствующей записи из реестра из
HKEY_USERS\.DEFAULT\SOFTWARE\1C\1Cv7\7.7\Информационная База #2\V7
Ошибка установки 1С: “При копировании файлов произошла ошибка. Код ошибки: FS_GENERROR”.
На момент установки отключите антивирус AVP.

27 окт. 2010 г.

Просвещение

Вчерась позвонила барышня и спросила про цены на семёрошную сетевую бухгалтерию.
К своему стыду я не сразу нашел цены. Помню, что в мае было очередное повышение цен на линейку продуктов 7.7. Но какими они стали, не помню.
Оказывается Бухгалтерия 7.7 в сетевом варианте стоит уже 6600 гривен. Т.е. почти 750 американских рублей.

Кроме того проснувшись от летаргии, узнал, что Windows XP ни под каким соусом уже не продаётся. А это тоже камень в огород семёрки. Ведь неизвестно, как поведёт себя семёрка под Windows 7, так как её программный модуль под новую ОС вряд ли перекомпилируют.

Жаль, что уходит эпоха стабильной Хрюши.

Просветился заодно насчет цен на ИТС. Годовая подписка теперь обойдётся пользователям 2520 гривен.

16 июл. 2009 г.

О пользе переключения занятий

Придумал элегантное, без скромности, решение - как обойти ошибку разработчиков конфигураций 1С для Украины (российские конфигурации не изучал).

В чем ошибка, спросите? А вот в чем. Есть такой параметр (реквизит) элемента справочника "Фирмы" - "Каталог отчетов". В этом реквизите указывается каталог сохранения отчетов.
Какая ошибка, опять же спросите?
В самом реквизите никакой ошибки нет. Была бы ошибка тут, исправить её было проще паренной репы. Ошибка причем каждый раз возобновляемая, в регламентированных отчетах. Причем в каждом отчете из них. Т.е. запаришься исправлять.
Итак, в чем же ошибка заключается.
Имеем реквизит "Каталог отчетов" в котором мы например проставили "dobro" (Для наименований элементов файловой системы я сам всегда использую лишь латиницу и всем остальным советую).
Так вот, при открытии любого регламентированного отчета, например, за первый квартал сего года, этот отчет автоматически проверяет наличие каталога отчетов на диске в соответствии с вышеупомянутым реквизитом. Только вся беда в том, что каталог этот создается относительно текущего каталога этого релиза отчетов.
Ну и что, опять же спросите? Дело в том, что в этом каталоге сохраняются данные ваших текущих отчетов во внутреннем формате 1С. Некоторые данные текущих отчетов 1С берёт из сохранённых отчетов предыдущего месяца или квартала.
А поскольку расположение каталога относительно текущего релиза регламентированных отчетов, то и каталогов этих ровно столько, сколько релизов регламентированных отчетов.
Т.е. например каталог отчетов за первый квартал этого года будет находиться по такому пути:
"Каталог базы данных"\ExtForms\Rp09q1\dobro ,
а каталог отчетов за второй квартал тут:
"Каталог базы данных"\ExtForms\Rp09q2\dobro
Т.е. в процессе работы с, например, Декларацией по НДС" в течение первого квартала и до момента установки регламентированных отчетов по 2-му кварталу никаких проблем не будет, но в момент перехода на новый релиз отчетов, они сразу перестают видеть каталог отчетов предыдущего релиза.
Потому как ищут в своем каталоге установки.
Как это обойти?
долгое время я, как и все остальные одинэсники, советовал своим клиентам переносить всё содержимое каталога отчетов предыдущего релиза в каталог отчетов текущего релиза, а при установке новых отчетов самолично это делал. Операция туповатая, тут главное не забыть. Но, что поделаешь, не исправлять же за 1С все регламентированные отчеты.

Но совсем недавно кто-то спросил на форуме про пропавшие данные предыдущего периода отчетов и меня осенило, как легко и изящно можно обойти эту проблему.
Надо в реквизите Фирмы "Каталог отчетов" вначале этого реквизита приписывать "..\"
т.е. наш реквизит будет выглядеть "..\dobro". И вы навсегда забудете про пропавшие данные регламентированных отчетов предыдущего периода.
Почему? Потому как "..\" для файловой системы означает на уровень выше текущего каталога
т.е.
"Каталог базы данных"\ExtForms\Rp09q1\..\dobro = "Каталог базы данных"\ExtForms\dobro
но и
"Каталог базы данных"\ExtForms\Rp09q2\..\dobro = "Каталог базы данных"\ExtForms\dobro
тоже даёт идентичный результат.
И мы таким образом избавляемся от гуляющего "Каталога отчетов".

А причем тут, спросите, переключение занятий?
При том, что одинэсничание это больше дебет-кредит, чем файловая система. А перед тем как мне пришла эта великолепная мысль, я некоторое время был вынужден заниматься со своим сайтом, с программированием движка сайта. А в коде движка сайта, команд типа "..\" в каждом файле хватает... это напомнило мне полузабытую практику программирования команд файловой системы.
А как только я встретился с вопросом, на который я до того десять лет тупо отвечал типично для одинэсника, то тут оригинальная мысль сама пришла в голову, потому как умственные занятия даром не проходят.