СБиС news №22/25.01.99
Из жизни горячей
линии: |
«И давно у Вас задержки? А чем Вы
занимались до этого?» |
Карикатура в номере: http://www.chance.ru/~zudin/gallery/bw/economic/011.htm
Приятная неожиданность (выпуск новой версии)
Увидела свет (лучше бы она этого не
делала) новая версия комплекса СБиС++ с номером 1.5. Кардинальных изменений
в этой версии, пожалуй, и не произошло, но есть много приятных и не очень
мелочей. В этом и следующих выпусках СБиС news постараемся рассмотреть все
нововведения.
Улучшенная производительность
Как утверждают разработчики, в новой версии
значительно увеличена скорость переиндексации базы данных в формате
“TBL”. Кроме того, “Jinnee.exe”, начиная с версии 1.7,
должен быстрее конвертировать и оптимизировать базу данных. К тому же после
оптимизации Btrieve базы данных её объём может значительно сократиться.
Закрывать окно внутри транзакции через ХХХ сек
В окне “Конфигурация базы данных” появился
новый параметр - “Закрывать окно внутри транзакции через ХХХ сек”. Чтобы
было понятно, что этот параметр означает, и зачем он нужен, давайте рассмотрим
пример из жизни. Допустим, Вы закрываете документ, в
котором правило операции выдает некоторое сообщение (ну, например, “Привет!”) и
ждет, когда Вы нажмете кнопочку “о'кей”. Вообще говоря, в этом нет никакого
криминала, но процедура закрытия документа не делима, то есть она либо
полностью выполняется, либо опять же полностью не выполняется. Знающие
люди обозначают подобные процедуры страшным словом -
транзакция. Теперь, представьте, что в середине
процесса закрытия документа, программа приостанавливается и ждёт, когда же
пользователь нажмет кнопку “о'кей”. А пользователь в это время пошёл покурить,
кофе попить или ещё, какую нужду справить. База же данных находится в этот
момент в несколько приподнятом состоянии (транзакция осталась не завершённой).
Опять же ничего страшного нет, если с базой работает один человек. Когда же к
базе обращается несколько пользователей, задержка выполнения транзакции чревата
замедлением работы программы, зависанием станций и появлением ошибок в базе
данных. Так вот, чтобы такого не происходило, через
указанный в рассматриваемом параметре промежуток времени автоматически
генерируется команда “Отменить”, что равносильно нажатию пользователем кнопки
<Esc>. Окно закрывается, и процесс идёт дальше. На
самом деле комплекс устроен так, чтобы по возможности в процессе транзакции не
было ожиданий ввода. К сожалению не всегда это возможно, например, кроме уже
описанной ситуации, то же самое получается при выводе сообщения об ошибке.
Новое в задаче “Кадры”
В локальном меню штатного расписания
появилась команда “Сформировать штатное расписание по должностям”. Как Вы,
наверно, догадались, по этой команде штатное расписание формируется по
справочнику должностей. Теперь в СБиС'е можно использовать
единый общероссийский справочник городов и улиц.
Макрособесие
В новой версии значительно доработана система
выполнения макросов. Во-первых, для группы макросов
и для отдельного макроса можно указать, сколько раз его повторять. Для этого
нужно просто ввести нужное значение в соответствующее поле карточки
макроса. Во-вторых, в командной строке СБиС'а можно
указать, какой макрос выполнять при запуске комплекса. Делается это так:
sbis.exe /macro ИмяМакроса
ИмяМакроса - имя макроса, которое
опять же указывается в соответствующем поле карточки
макроса. В-третьих, в меню теперь можно создавать
кнопки, нажатие на которые будет вызывать на выполнение макрос. Для этого нужно
сделать следующее.
- укажите имя макросу, который будет выполняться;
- откройте меню и переведите его в режим редактирования клавишей
<Ctrl+F12>;
- вставьте новую кнопку клавишей <Ins>;
- в поле “Действие при нажатии кнопки” выберите значение “Выполнить макрос”;
- в поле “Имя окна или макроса” укажите имя макроса, который нужно
выполнить.
В-четвертых, появилась возможность
прерывать на время выполнение макроса, дождаться ввода нужной информации от
пользователя, и продолжить выполнение макроса. Например, в процессе выполнения
макроса нужно запросить у пользователя параметры выборки.
Делается это так. Записывается последовательность клавиш,
открывающая выборку и вызывающая окно “Параметры выборки”. Далее вставляется
запись “Ожидание ввода”, после этого записывается всё остальное.
Печать полного названия раздела
По многочисленным просьбам продвинутых
пользователей, которых не пугают функции, переменные и объекты, затронем вопрос
вывода в отчетах полного названия раздела. Вкратце опишем
проблему - при построении отчетов возникает необходимость выводить полное
название раздела, в котором находится запись. Например, при печати расходной
накладной требуется вывести название склада и групп, в которых находится товар.
Название группы, в которой товар находится доступно из переменной “Раздел”, но
для того, чтобы добраться до всех вышестоящих групп придется
потрудиться. Сделаем в файле “manager.pa0” заплатку
расходной накладной с печатью полных разделов:
++Расходная накладная полный раздел.Расходная накладная (НДС включая)
+Строка
{
Наименование=ПолныйРаздел("Склады","Наименование")+
"."+Наименование;
Напечатать("Шаблон.Строка");
}
Заплатка с двумя строками расчета реализует
поставленную задачу, но простота обеспечивается использованием функции
“ПолныйРаздел”, поэтому рассмотрим функцию
подробнее. Функция должна быть описана в файле с
расширением “prg”, например, “sbis.prg”:
Функция ПолныйРаздел(Иерархия,Поле)
{
# Определим переменные
перем ПутьРаздел, НазваниеРаздел, Иерархия;
ПутьРаздел = Поле;
НазваниеРаздел = "";
# ПутьРаздел – путь по связям к названию раздела
# На каждом шаге цикла идет
# переход к верхней иерархии,
# например, "Склады>Наименование",
# далее "Склады>Склады>Наименование"
# Цикл продолжается до тех пор,
# пока поле раздела иерархии не пустое
Пока([Иерархия + ">" +ПутьРаздел])
{
НазваниеРаздел = "." +
Текст([Иерархия+">"+ПутьРаздел],"в")+
НазваниеРаздел;
ПутьРаздел = Иерархия+">"+ПутьРаздел;
}
вернуть ПодСтрока(НазваниеРаздел,2,-1);
}
Функция имеет два параметра: Иерархия
– название поля перехода по разделам, определяется соответствующим реестром.
Название иерархии можно выяснить с помощью программы “Jinnee” совершив несколько
шагов:
- Открыть Джином словарь данных “!sbis.dic”;
- Найти соответствующий реестр, например “Складская картотека” или
“Организации”;
- Открыть описание реестра и посмотреть название полей с типом “Иерархия”. В
складской картотеке иерархия “Склады” или “Прайс-лист”, в организациях –
“Организации”.
Поле – название поля раздела, значение
которого выводится в качестве полного названия. В примере при вызове функции
указывается название раздела, но можно было использовать субсчет или другое.
Новые формы: задолженность за предоставленный кредит
Обратите внимание на этот новый отчет задачи
“Расчет зарплаты”. В нем выводится информация о кредитах, предоставленных
сотрудникам. Форма строится через пункт меню “Внешние отчеты…” или из
справочника сотрудников (группа “ВЕДОМОСТИ УДЕРЖАНИЙ”). Описание самого отчета
находится в файле “uderjan.ffz”.
<<< Предыдущий выпуск | Архив выпусков | Следующий выпуск >>>
|