buhta-doc

View My GitHub Profile

На главную

Новое в версии. Релиз 303 от 30.10.2026

Содержание:

Добавление новой возможности

Журнал ошибок пользователя

Программа может сама записывать в базу ошибки, которые видит пользователь, и отказы в доступе: когда и у кого произошло, на каком компьютере и в какой версии программы, где именно, текст ошибки, текст SQL-запроса и снимок экрана. Записи просматривает администратор в форме Журнал ошибок пользователя.

Что записывается:

Журнал включается в меню Настройка → Общая настройка, закладка Журнал ошибок. Для каждого вида ошибок выберите, для кого вести журнал: Никому, Всем или Выбранным. Для режима Выбранным отметьте пользователей в таблице на той же закладке. Там же настраивается, сохранять ли снимок экрана. По умолчанию журнал выключен. Изменения вступают в силу в течение минуты, перезапускать программу не нужно.

В форме Журнал ошибок пользователя:

Форма предназначена для администраторов: доступ к ней настраивается так же, как к любой пользовательской форме.

Требуется синхронизация базы эталоном BuhtaClient.etl (от 26.10.2026 или позднее) — в нём таблица Журнал ошибок пользователя. Форма Журнал ошибок пользователя поставляется в файлах конфигурации.

Если таблицы в базе нет, журнал не ведётся, остальная программа работает как обычно. Снимок экрана занимает 100–300 КБ, поэтому старые записи стоит периодически очищать.

Событие перед удалением записей в скриптах карточек просмотра

В VB-скриптах карточек просмотра появилось событие FormOnBeforeDelete. Оно срабатывает перед удалением записей из списка, после подтверждения пользователем и проверки прав. Скрипт получает ключи удаляемых записей и может исключить часть записей из удаления или отменить удаление целиком.

Sub FormOnBeforeDelete(TableName, ByRef IDList, ByRef IsContinue)

Пример — не удалять автомобили, у которых в марке написано «НЕ УДАЛЯТЬ»:

Sub FormOnBeforeDelete(TableName, ByRef IDList, ByRef IsContinue)
  IDList = GetValueFromSQL("SELECT ISNULL(STUFF((SELECT ',' + CAST(Ключ AS varchar(20)) FROM Автомобиль " & _
           "WHERE Ключ IN (" & IDList & ") AND Марка NOT LIKE '%НЕ УДАЛЯТЬ%' ORDER BY Ключ FOR XML PATH('')), 1, 1, ''), '')")
End Sub

Заготовку обработчика можно создать в редакторе скриптов карточки просмотра: пункт OnBeforeDelete в списке событий Form. Если в обработчике произошла ошибка, удаление отменяется.

Справочник организаций: уникальность по паре ИНН и КПП

При сохранении карточки организации повтор теперь проверяется по паре ИНН и КПП, а не по одному ИНН. Можно завести филиалы и обособленные подразделения с общим ИНН и разными КПП. Две организации с одним ИНН и без КПП по-прежнему считаются повтором. Право Ввод организации с неуникальным ИНН действует как раньше, теперь для пары ИНН и КПП.

Зарплата: запросы и ответы СФР по больничным в новом формате

С 19.09.2026 СФР перешёл на ГИС ЕЦП: запросы для расчёта пособия приходят в новом формате (сообщение 10010 вместо 100), и ответ СФР ждёт тоже в новом формате (10110 вместо 101).

Требуется импорт из файла BuhtaConfig.mdb (от 28.10.2026 или позднее)

После импорта перезапустите программу: в таблицу запросов из ФСС добавлены новые поля.

Исправление ошибок

Скрипты форм: ошибка Access violation в Utf8ToAnsi и другие функции после релиза 302

В релизе 302 часть функций для скриптов форм работала неверно. Вызов Utf8ToAnsi и UTF8Decode приводил к ошибке «Access violation», у записи TSearchRec не было поля Name (поиск файлов через FindFirst / FindNext), не было функции Keybd_event и констант KEYEVENTF_EXTENDEDKEY, KEYEVENTF_KEYUP.

Что сделано

Функции для скриптов работают так же, как в релизе 301. UTF8Decode исправлена так же, как Utf8ToAnsi. Перед выпуском каждая версия теперь проверяется набором тестов скриптов форм.

Справочник организаций: повторное сохранение новой карточки после Ctrl+S

Если новую карточку организации сохранить клавишами Ctrl+S, изменить и сохранить ещё раз, выходило сообщение «Организация с номером … уже существует», и карточка не сохранялась.

Что сделано

Проверки номера и ИНН больше не находят саму сохраняемую карточку. Повторное сохранение работает.

Автовыход по простою: окно «Не найдено поле “Общая настройка”.”Порог свободных лицензий”»

Изредка, обычно после разрыва связи с сервером, поверх сообщения «Соединение с сервером разорвано» появлялось окно «TbmNastroikaTable : Не найдено поле “Общая настройка”.”Порог свободных лицензий”».

Что сделано

Автовыход по простою не обращается к настройкам, пока идёт обмен с сервером. Это окно больше не появляется.

Зарплата: дата выплаты у перечислений на карты и ежемесячных удержаний

При расчёте зарплаты за 2026 год у шифров, которые заведены в ЗП инфо как ежемесячные и без даты выплаты (например, шифр с алгоритмом Перечисление на кред.карты), дата выплаты в расчёте ставилась первым числом месяца расчёта. Так, в расчётном листе за июль перечисление на карту получало дату выплаты 1 июля, тогда как итоговые шифры — Всего удержано, К выдаче на руки, Долг — дату выплаты зарплаты за вторую половину месяца.

Что сделано

Если у ежемесячного шифра в ЗП инфо дата выплаты не заполнена, она снова берётся из настройки зарплаты юр.лица — день выплаты за вторую половину месяца, так же как у итоговых шифров. Для шифров, у которых дата выплаты в ЗП инфо заполнена, ничего не изменилось.

Требуется импорт из файла BuhtaConfig.mdb (от 09.10.2026 или позднее)

В уже рассчитанных документах 2026 года дата выплаты сама не меняется. Чтобы исправить её в прежних расчётах, обратитесь в службу сопровождения.

подробнее о конфигурации зарплата

скачать версию Buhta20261030.zip