28 дек. 2016 г.

Под новый год количество просмотров статей на сайте документации перевалило за 3 миллиона! Это при том, что там же находятся десятки руководств в PDF статистика чтений которых никак не учитывается.

27 дек. 2016 г.

То, что нашей компании через месяц стукнет 23 года начинаешь осознавать, когда перед "взрослым" праздником приходится устраивать утренник для детей сотрудников.

8 дек. 2016 г.

External exception C0000006

Ошибка возникает, когда операционная система не может загрузить нужную ей часть выполняемого файла или динамической библиотеки.

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

Мы добавили в заголовок gedemin.exe, gedemin_upd.exe и gdcc.exe флаг IMAGE_FILE_NET_RUN_FROM_SWAP. Теперь при запуске программы с сетевого диска она будет целиком копироваться в swap файл локального компьютера. Это замедлит процесс начальной загрузки, но позволит избавиться от ошибки в случае обрыва соединения.

Для обновления следует взять архив с нашего сайта и переписать с заменой все файлы из него. Утилита автоматического обновления может не сработать, так как номера версий файлов не изменились.

Следует протестировать новый выполняемый модуль в сетях, где возникала указанная проблема. Если установка флага не поможет, то, возможно, следует аналогичный флаг установить и для всех динамических библиотек, используемых Гедымином.

Также в сети есть информация, что если ошибка появляется при работе в терминальных сессиях Windows Terminal Server 2008, то рекомендуется установить в реестре флаг:

Subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRxSmb\Parameters
Type: REG_DWORD
Entry: MultiUserEnabled
Value: 1

30 нояб. 2016 г.

Быстрая установка сервера Firebird 3

Здесь под "быстрая" мы имеем ввиду, что Firebird запускается в режиме максимальной совместимости с версией 2.5. Т.е. от нас не потребуется дополнительных усилий по настройке учетной записи SYSDBA и для существующих приложений не придется менять клиентские библиотеки.

Заходим сюда и скачиваем архив с новейшей версией сервера нужной нам разрядности.

Предположим, мы остановились на 32-х битной версии. Заходим в c:\Program Files и создаем там папку FB3.

Распаковываем содержимое скачаного архива в созданную папку.

Переходим в нее, находим и открываем на редактирование файл firebird.conf. Находим следующие параметры, убираем перед их именем символ комментария -- решетку и устанавливаем значения по списку ниже:
  • AuthServer = Legacy_Auth
  • AuthClient = Legacy_Auth
  • UserManager = Legacy_UserManager
  • WireCrypt = Disabled
  • WireCompression = false
Если на данном компьютере уже установлен Firebird, например версии 2.5, то изменим номер порта, чтобы избежать конфликтов. Номер по-умолчанию 3050. Установим, например, 3054:
  • RemoteServicePort = 3054

Сохраняем файл конфигурации.

В папку FB3\UDF подкладываем библиотеку GUDF.DLL, которую берем здесь (если устанавливается 64-х битная версия сервера, то библиотеку берем здесь).

Создаем учетную запись SYSDBA:

  1. Остановим сервер, если он был уже запущен.
  2. Откроем командную строку. Перейдем в папку сервера и выполним:
    isql -user sysdba employee
  3. Выполним следующие команды:
    create user SYSDBA password 'masterkey';
    commit;
    quit;

Запуск сервера:

Открываем окно командной строки. Перемещаемся в папку FB3 и выполняем три команды:

  1. instreg install
  2. instsvc install -a -n fb3
  3. instsvc start -n fb3
Теперь сервер работает и к нему можно подключаться. Если мы прописали порт 3054, как указано выше, то с этого же компьютера сетевое подключение будет выглядеть как localhost/3054.

Базы со старых версий сервера на тройку следует переносить через процедуру бэкап на старом сервере, затем восстановление на новом.

29 нояб. 2016 г.

GDMNN: Задача #1

В продолжение вчерашнего разговора. Первая задача: представить альтернативную структуру таблиц для документов, бухгалтерских проводок и складского движения.

Цель:
  • Унифицировать механизмы фиксации и учета движения, обобщив и распространив их не только на движение ТМЦ, но и на движение (изменение, трансформацию) любого объекта учета.
  • Избавиться от дублирования данных и непрозрачных функций преобразования (поля документа => аналитические признаки в проводках).
  • Любое поле документа может быть использовано в качестве аналитического признака при построении отчетов.
  • Отойти от ограниченной структуры шапка-позиции. Для сложных документов предусмотреть наличие нескольких датасетов с произвольным уровнем вложенности. 
  • Для сумовых данных, используемых с целью ускорения выборок (INV_BALANCE), предусмотреть неблокирующую схему обновления, чтобы отказаться от автокомита в складских документах (комита частично введенного документа). 
  • Статус документа: черновик, отложенный, готовый.
  • Уменьшить размер базы и, как следствие, увеличить скорость операций по изменению и выборке. 
Для новой структуры представить запрос на построение журнала ордера с использованием SQL window functions и другого функционала Firebird 3.

21 нояб. 2016 г.

14-15 ноября для студентов курса "Бухгалтер-калькулятор в общественном питании", обучающихся в "Республиканском институте повышения квалификации и переподготовки работников Министерства труда и социальной защиты Республики Беларусь", были проведены занятия по программому комплексу на платформе Гедымин.

28 авг. 2016 г.

Только до 9 сентября Embarcadero раздает Delphi 10.1 Starter Edition бесплатно. Не триал и не демо версия, а полностью рабочий продукт с серийным номером.

8 авг. 2016 г.

Байдарки 2016

Добавили Нарочанку и Вилию в нашу походную коллекцию.

В этом году нам повезло с погодой. Немного дождя в первый день и замечательная солнечная погода во второй и третий.

Традиционное фото на память.


И не менее традиционные благодарности агентству Вольны Вецер за прекрасную организацию.

2 авг. 2016 г.

GS.MulDiv

Для правильного округления введена функция MulDiv, которая доступна из макросов и из FastReport4. Теперь, вместо кода:

'По реализации по розн. ценам (сумма НДС, гр9 )
S95 = round(acc_CalcTaxPosition("148725640_116707345", GS.NG(BeginDate), EndDate) / 1000 + 1/100000, 3)

пишем:

'По реализации по розн. ценам (сумма НДС, гр9 )
S95 = GS.MulDiv(acc_CalcTaxPosition("148725640_116707345", GS.NG(BeginDate), EndDate), 1, 1000, 1, 3)

3 июл. 2016 г.

GetNumeral, GetCurrNumeral

С копейками, без копеек, числом, строкой, с полным названием, с кратким названием... Число функций для преобразования дошло до пяти и каждую надо трижды прописать: для макросов, для фаст репорта 2, для фаст репорта 4. Пришло время навести порядок. Встречайте две универсальные функции для преобразования числа в числительное: Функции доступны в макросах и четвертом фаст репорте.

15 июн. 2016 г.

Чем хороши радикальные изменения законодательства -- в офис наведываются давние и очень давние пользователи наших программ. На днях заглянул Евгений Александрович Кучерявенко, один из первых покупателей, пользователь Анжелики, а затем и Гедымина с 1996 года!
Стараниями Евгения Александровича все хозяйства Ивановского района систему полной автоматизации учета с/х предприятия, включая животноводство и растениеводство.

8 июн. 2016 г.

Несколько простых правил одновременной работы над проектом в гит

  1. Как можно чаще выполнять git pull для загрузки себе изменений, произведенных другими разработчиками.
  2. При работе в отдельной ветви, из которой позже изменения будут переданы в основную, регулярно выполнять git fetch, затем git merge master.
  3. При возникновении конфликтов принимаем чужие изменения (Accept theirs -- в Tortoise Git) и вносим в них свои правки.
  4. Если автоматический merge не прошел из-за конфликта, то, после его разрешения, на комите, будет показан список измененных файлов как нами, так и другими разработчиками. Если мы работаем с Tortoise Git ни в коем случае нельзя снимать галки с файлов (даже если лично мы их не меняли), иначе изменения других людей пропадут и в репозиторий запишется файл в том состоянии, в котором он был у нас на диске до merge.