Что нового в Инфо-Бухгалтер 8.605

1. Исправлено обновление списков директорий бланков и архивов при попытке подключения к несуществующей базе и последующего выбора другой базы.
2. Изменена реализация функции ЗАМ. Ранее замена производилась по всему тексту, пока в нем присутствуют искомые подстроки.

Пример старого поведения:

ЗАМ("12", "5112", "21")

Шаг 1: "5121" - замена 3-4 символов
Шаг 2: "5211" - замена 2-3 символов
Результат: "5211".

Теперь однократно заменяются все вхождения подстроки без повторных просмотров уже обработанного текста. Таким образом, в приведенном примере будет выполнен только первый шаг и результат будет "5121".

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

Замечание. Как старое, так и новое поведение не противоречат описанию функции в справке и приведенному там примеру.
3. В функции СУММАП_АНГЛ теперь добавляется пробел в конце для чисел, оканчивающихся сотнями (200, 2300 и т.п.).
4. В интерпретаторе исправлено добавление новых переменных, при указании имени в выходном параметре функции. Ранее новая переменная создавалась, но не регистрировалась в интерпретаторе, что, кроме прочего, приводило к утечке памяти.
5. В сетевой версии уменьшено время формирования встроенных отчетов (движение средств и проч.), кроме оборотной ведомости и ведомости остатков.
6. Сделана поддержка Инфо-Сервера 2.01 в сетевой и локальной версиях. Теперь поддерживаются именованные автоинкрементальные счетчики, которых можно использовать произвольное количество для каждой базы данных.
7. Функция ЕСТЬ_СЕРВЕР для локальной версии теперь возвращает ДА, если в ibw.ini указан признак [NET] UseServer=ON и установлена клиентская часть Инфо-Сервера 2.01. В сетевой версии поддерживается как Инфо-Сервер 1.x, так и Инфо-Сервер 2.01.
8. Сделана возможность передачи дополнительных параметров функции ЗАПРОС_СЕРВЕРА.

ЗАПРОС_СЕРВЕРА( [<дир_базы>, <пользователь>], <запрос>, <таблица>, <тип_таблицы> )

<дир_базы> - вход, необязательный параметр, директория базы
<пользователь> - вход, необязательный параметр, имя сетевого пользователя

Пример.

ЗАПРОС_СЕРВЕРА( ["L:\MyBase", "Вася"], "SELECT * FROM MYTBL WHERE S>100", "RESTBL", PARADOX )

Параметры в квадратных скобках могут быть опущены. В этом случае используется директория и имя пользователя по умолчанию. В сетевой версии по умолчанию используется директория базы, а в локальной - директория DBF.

Вызов функции с параметрами по умолчанию совместим с прежним:

ЗАПРОС_СЕРВЕРА( "SELECT * FROM HOZOP WHERE MCOMMENT LIKE '%товар%'", "TOVOPERS", DBASE )

Замечание. Ранее функция ЗАПРОС_СЕРВЕРА в локальной версии всегда возвращала НЕТ. Теперь, при использовании Инфо-Сервера 2.0, с ее помощью возможно производить выборку и модификацию в сторонних таблицах.

9. Сделана новая функция ИС_СЧЕТЧИК для работы с именованными автоинкрементальными счетчиками Инфо-Сервера 2.0 в локальной и сетевой версиях.

ИС_СЧЕТЧИК( [<дир_базы>, <пользователь>], <имя счетчика>, <список таблиц-полей> )


<дир_базы> - вход, необязательный параметр, директория базы (умолчания см. в описании ЗАПРОС_СЕРВЕРА)
<пользователь> - вход, необязательный параметр, имя сетевого пользователя
<имя счетчика> - вход, логическое имя счетчика. Сетевой Инфо-Бухгалтер использует счетчик с именем "IB".
<список таблиц-полей> - вход, необязательный параметр, строковое выражение или объект типа "список", список имен таблиц и ключевых полей в формате:
"<таблица1>:<поле1>, ..., <таблицаN>:<полеN>".

Список используется для расчета максимального значения по указанным таблицам для установки начального значения счетчика. При последовательных вызовах функции ИС_СЧЕТЧИК список требуется передавать только в первый вызов. Для последующих вызовов этот параметр может быть опущен. Сетевой Инфо-Бухгалтер использует при инициализации счетчика "IB" следующий
список: "HOZOP:OPER_NUMB,PROVOD:PROVID,PLSCET:SCETID,OPREDEL:RMID,REKVISIT:RMID,PLOST:OSID".

Функция ИС_СЧЕТЧИК возвращает очередное значение счетчика или 0 - в случае ошибки, в т.ч. при отсутствии Инфо-Сервера 2.0.

Пример.

// получение счетчика сетевой базы Инфо-Бухгалтера
сч1 = ИС_СЧЕТЧИК("IB", "HOZOP:OPER_NUMB,PROVOD:PROVID,PLSCET:SCETID,OPREDEL:RMID,REKVISIT:RMID,PLOST:OSID")

// получение счетчика сторонней базы
сч2 = ИС_СЧЕТЧИК( ["L:\MyBase", "Вася"], "RECID", "PERSONAL:PERSONID,CUSTOMERS:CUSTID" )

10. Сделаны новые функции ИС_УСТ_БЛОК и ИС_СНЯТЬ_БЛОК для работы с логическими блокировками записей Инфо-Сервера 2.0 в локальной и сетевой версиях.

ИС_УСТ_БЛОК( [<дир_базы>, <пользователь>], <таблица>, <id>, <рез>, <блок_польз> )
ИС_СНЯТЬ_БЛОК( [<дир_базы>, <пользователь>], <таблица>, <id>, <рез> )

<дир_базы> - вход, необязательный параметр, директория базы (умолчания см. в описании ЗАПРОС_СЕРВЕРА)
<пользователь> - вход, необязательный параметр, имя сетевого пользователя
<таблица> - вход, имя таблицы, в которой блокируем запись. Указанная таблица не обязана существовать.
<id> - вход, целочисленный идентификатор записи. Запись с таким идентификатором не обязана существовать.
<рез> - выход, результат блокировки. ДА - успешно заблокирована, НЕТ - отказ. Для снятия блокировки: ДА - успешно снята, НЕТ - не была заблокирована.
<блок_польз> - выход, необязательный параметр, в случае отказа блокировки получает имя заблокировавшего запись пользователя.

Обе функции возвращают логическое значение: ДА - успешный вызов, НЕТ - ошибка, в т.ч. отсутствие Инфо-Сервера 2.0.

Пример.

ЕСЛИ НЕ ИС_УСТ_БЛОК( ["L:\MyBase", "Вася"], "CUSTOMERS", 23076, ок, кто) ТО
СООБЩЕНИЕ("Ошибка блокировки записи!");
СТОП_ВСЕ
КОНЕЦ_ЕСЛИ

ЕСЛИ НЕ ок ТО
СООБЩЕНИЕ("Запись заблокирована пользователем " + кто)
СТОП_ВСЕ
КОНЕЦ_ЕСЛИ

// ...работаем с записью

ЕСЛИ НЕ ИС_СНЯТЬ_БЛОК(["L:\MyBase", "Вася"], "CUSTOMERS", 23076, ок) ТО
СООБЩЕНИЕ("Ошибка снятия блокировки записи!");
КОНЕЦ_ЕСЛИ

11. В режиме "Формат даты как в Windows" для функции ДАТАП0 сделана коррекция формата даты, заданного в региональных настройках Windows. Например, если задан формат "d MMMM yyyy 'г.'", то он преобразуется в "dd MMMM yyyy 'г.'".
12. Исправлена ошибочная зависимость от алфавитного порядка ключа столбца в функции ДОБ_ТАБЛ_ПОДСТ. В результате ошибочного поведения могли пропускаться некоторые ячейки табличной подстановки.
13. Включена новая версия библотеки msoexp (msoexpa.dll, msoexpw.dll), соответствующая ИБ 10.106. Добавлена поддержка подсказок типов при подстановке в шаблоны документов. В ИБ8 подсказка типа формируется на основании типа значения, передаваемого функциям ДОБ_ПОДСТ и ДОБ_ТАБЛ_ПОДСТ.

В настоящей реализации msoexp подсказки типов при подстановке текста учитываются только для Excel. Т.к. Excel пытается самостоятельно преобразовывать текст в соответствии с региональными настройками форматов Windows, то строковые представления чисел и дат иногда интерпретируются им неверно. Это связано с тем, что настройки форматов в Инфо-Бухгалтере могут отличаться от региональных настроек Windows. Использование подсказок типов позволяет отчасти решить проблему. Так для подсказки числового типа, из текста удаляются разделители разрядов, а разделитель дробной части устанавливается в соответствии с региональными настройками. Для даты и времени также происходит замена разделителя в соответствии с региональными настройками. Для форматов даты с отличным от день-месяц-год порядком, подстановки будут работать неверно.
В результате использования подсказок передаваемый текст может быть модифицирован библиотекой msoexp. Чтобы принудительно запретить изменение текста, передавайте преобразованные в строку значения в ДОБ_ПОДСТ и ДОБ_ТАБЛ_ПОДСТ (например, с помощью функции СТР).

Для подавления автоматических преобразований в Excel'е задайте ячейкам формат "Текстовый" (по умолчанию используется "Общий", допускающий преобразования). При этом подставляемый текст должен отображаться в том виде, в котором он был передан Инфо-Бухгалтером.

14. Оператор ОТЛАДКА теперь может принимать выражения произвольного типа, а не только строкового.

Пример: ОТЛАДКА(ДАТА_ТЕК)

15. Поток опроса ключей SentinelSuperPro и SentinelSuperProNet в сетевой версии с локальными ключами использовал функции библиотеки времени выполнения Delphi, которая не рассчитана на многопоточный доступ. Это приводило к порче памяти и спонтанным ошибкам в программе.

Теперь при опросе ключа исключен вызов функций библиотек Delphi и конфликтов между основным потоком и потоком опроса ключа не возникает.
16. В локальной версии при установке условий на проводки в фильтре операций в выборку попадали операции без проводок. Теперь не попадают, локальная версия фильтрует операции аналогично сетевой.
17. В интерпретаторе внутреннего языка исправлена обработка блочных комментариев в режиме холостого прохода оператора. Если внутри пропускаемой секции оператора встречалась последовательность /* в составе строкового литерала ".../*...", то она ошибочно интерпретировалась как начало блочного комментария. Теперь делается дополнительный анализ строки и отбраковываются вхождения /* в строковый литерал, комментарий //... и в блок /*...*/.

В режиме компилятора комментарии обрабатывались правильно.

18. Улучшен алгоритм раскраски текста в текстовом редакторе ИБ10 и в части ИБ8, обеспечивающей разбор строки. Теперь дополнительно передается признак продолжения блочного комментария, который позволяет правильно раскрашивать текст, содержащий различные комбинации символов ", //, /*, */. Включена новая версия edctrl.dll, соответствующая ИБ 10.106.
19. Перевод даты в полночь сделан опциональным. В диалоге отчетного периода можно указать один из трех режимов:
- переводить с подтверждением
- переводить автоматически
- не переводить.
Выбор режима недоступен, если установленная текущая дата отличается от даты по системным часам.
20. Внесены изменения в систему разделения доступа.

Исправлено действие разрешения "Установки" (перестало работать в связи с переносом пункта "Типовые операции" в подменю).

Добавлено новое разрешение "Исходные остатки" в настройках доступа пользователя. Данное разрешение управляет:
- доступностью пункта "Исходные остатки" Главного меню
- доступностью кнопки "Исх. Ост." в диалоге редактирования счета
- доступностью режима вида "Исходные остатки" при выборе счетов.

Распространено действие разрешения "Формировать отчеты" на режим вида "Остатки на конец отчетного периода" при выборе счета.

21. В таблицах счетов сделана возможность поиска счета, как по коду, так и по наименованию путем набора на клавиатуре. Теперь, если не найдено соответствия набранного тексту кода одного из счетов, то поиск продолжается по наименованию. Т.к. счета не упорядочены по наименованию, то будет найден ближайший подходящий счет вниз от текущей позиции курсора. Когда подходящий счет определяется однозначно, то он будет найден вне зависимости от позиции.

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

В отчетах (оборотной ведомости и ведомости остатков) поиск по наименованию работает только при частичном или полном отображении наименования счетов.


<< 8.604 8.605 8.606 >>

Все версии

Главная страница

Hosted by uCoz