СБиС news №9/06.07.98
Вышла в свет новая верси комплекса СБиС++ под
номером 1.2. К дамам и господам, имеющим честь сопровождать эту отличную
программу, большая просьба максимально содействовать повсеместному
распространению новой версии на компьютерах зарегистрированных пользователей.
Товары-материалы: В окне “Конфигурация
задачи” появился новый режим расчета себестоимости при закрытии документа.
Исправлена ошибка пропадания флага “приход по цене” во внутреннем перемещении.
Теперь в прайс-листе работают стандартные отчеты: отчет о поставках, продажах,
ведомость остатков и т.д. Расчетный счет: Раньше
итоги выписки рассчитывались только при сохранении всей выписки, теперь не так –
итоги считаются непосредственно при занесении
платежек. Основные средства: Теперь можно в
ведомости амортизации видеть тему акта приемки. Достать ее можно конструкцией
“Средство.Тема”. Наиболее часто используются в качестве аналитики субсчет и
раздел.
Появилась возможность определить тип лица,
указанного, например, в документе. Для этого достаточно проверить значение,
хранящееся в текстовой переменной “ТипЛица”. Например:
Если( Лицо1.ТипЛица == “Сотрудники” )
...
В переменной “ТипЛица” содержится название
таблицы, в которой хранятс записи данного типа. Это могут быть: “Организации”,
“Сотрудники”, “Частные лица”, “Складская картотека”, “Аналитики”, “Основные
средства”.
Начиная с версии 1.2, функци “Выполнить”
позволяет передавать параметры в выполняемую операцию и проверять возвращаемое
значение. Делается это так. При вызове функции “Выполнить”
после имени выполняемой операции можно указать произвольное количество
параметров. Для доступа к указанным параметрам из выполняемой операции нужно
использовать конструкцию “Параметр[N]”, где N - это порядковый
номер параметра, указанного при вызове функции “Выполнить”. Например:
# вызов правила операции “Расчет”
Выполнить(Расчет,“20”, Сумма );
# само правило с именем “Расчет”
C = Параметр[2]*0.10;
Проводка( Параметр[1], К70, C );
Кстати, количество параметров можно проверить
функциями “Есть” и “Размер”, например.
# проверка наличия параметров
Если( !Есть(Параметр) )
Сообщить(“Нет параметров”);
иначе Если( Размер(Параметр)<2 )
Сообщить(“Слишком мало”);
иначе
{ ... }
Кроме того, функци “Выполнить” возвращает
значение последнего посчитанного выражения, либо значение выражения, стоящего в
функции “Вернуть”. Таким образом, появилась возможность анализировать результат
выполнения операции, например.
# анализ выполнения операции “Расчет”
Если( Выполнить(Расчет,100)<100 )
Сообщить(“Маловато!”);
# само правило с именем “Расчет”
C = Параметр[1]*0.10;
# а можно написать и так
Вернуть(Параметр[1]*0.10);
Как Вы должны уже знать, оператор квадратные
скобки используется дл доступа к элементам массива, например, так “А[1]”. Есть и
еще одно применение квадратным скобкам. Можно не указывать перед скобками имя
массива. В этом случае идет обращение к переменной, им которой – это значение
выражения, стоящего внутри квадратных скобок. Давайте рассмотрим такой пример:
НДС = 20;
[НДС] = Сумма * НДС / 100;
С += [НДС];
В первой строке создается переменная с именем
“НДС” и значением 20. Во второй и третьей строках используется обращение
“[НДС]”. Сначала вычисляется выражение, стоящее внутри квадратных скобок,
получается “20”. Далее идет обращение к переменной с именем “20”. Таким
образом, во второй строке идет присвоение переменной с именем “20” некоторого
значения. А в третьей строке извлекается значение переменной с тем же именем
“20”. И в заключение еще один пример использования такой конструкции:
М = 1;
Пока( М <= 12 )
{
[МесяцПрописью(М)] = С;
М += 1;
}
В карточке сотрудника пол “Адрес” и “Паспорт”
разбиваются на отдельные поля типа “Индекс”, “Город” и т.д. Причем, в базе
данных так и хранятся поля “Адрес” и “Паспорт”, а разбиение и последующее
соединение происходит “на лету” по старым правилам, то есть через запятую
перечисляются индекс, город и т.д. Поэтому в новых полях “Индекс”, “Город” не
допускается использование запятой. Все это будет работать
только в том случае, если поля “Адрес” и “Паспорт” были заполнены по уже
упомянутым правилам. В противном случае придется либо перебить данные, либо
временно вставить в диалог абстрактные пол с именами “Адрес” и “Паспорт” и в них
расставить правильно запятые.
В задаче “Заработна плата” можно теперь
построить расчетную ведомость за период, отличный от месяца расчета. Для этого
достаточно в окне параметров отчета в соответствующих полях указать, с какого и
по какой месяцы нужно строить отчет.
В задаче “Расчет зарплаты” появился новый
отчет – “Ведомость выполненных работ”. Вызывается он как из меню “Отчеты”, так и
из локального меню справочника сотрудников. В отчете отображаются данные по
нарядам (кол-во, дни и часы), сгруппированные по видам работ.
Теперь справочник категорий может содержать
группы и подгруппы. Сделано это было для того, чтобы получать отчеты по
категориям с разным уровнем детализации. Например, на
предприятии есть рабочие и служащие. Служащими являются бухгалтера, секретарь, и
т.д. Рабочими являются слесари, монтажники и т.д. В этом случае справочник
категорий оформляется следующим образом:
РАБОЧИЕ <------Категори
Слесарь <------ Професси
Монтажник
СЛУЖАЩИЕ
Бухгалтер
Секретарь
При оформлении карточки сотрудника в поле
“Категория” из справочника категорий выбирается его профессия из соответствующей
группы. После расчета зарплаты можно построить сводную
ведомость не только по категориям, но и по профессиям. Для этого достаточно
должным образом установить поле “Уровень иерархии категорий” в окне параметров
сводной ведомости, то есть:
Строим сводную ведомость с параметрами: Разбивать по
категориям Уровень иерархий категорий -
1 Результат: сводная ведомость по категориям –“рабочие, служащие”.
Строим сводную ведомость с параметрами: Разбивать по
категориям Уровень иерархий категорий –
2 Результат: сводная ведомость по профессиям –“слесари,
монтажники, бухгалтера, секретари”.
Несколько, а если точно, полностью, изменился
механизм формировани левого поля при выводе на печать. До сих пор с этим
существовали некоторые трудности, а именно:
- поле выводилось командой принтера, при построении формы его не было видно
на экране;
- не было возможности менять поле во врем построения отчета;
- WinPrint.exe не учитывал левое поле.
Теперь левое поле формируется не командой
принтера, а дополнительными пробелами в начале строки, что сняло
вышеперечисленные проблемы. Обратите внимание на такую
принципиально новую возможность, как изменение левого поля прямо из отчета. Для
этого достаточно установить в переменной “ЛевоеПоле” требуемый размер левого
поля, например:
.ЛевоеПоле = 10
Эта строка будет со смещением 10
.ЛевоеПоле = 0
Эта строка будет без смещения
При создании форм рекомендуется использовать
следующие количества символов:
Шрифт |
Левое поле |
А4 портретна ориентация |
А4 альбомна
ориентация |
Ширина страницы |
Кол-во строк |
Ширина страницы |
Кол-во строк |
Нормальный уэ |
8 |
69 |
60 |
109 |
40 |
Уплотненный
Уэ |
8 |
117 |
60 |
185 |
40 |
Элит
уЭ |
8 |
82 |
60 |
130 |
40 |
Элит уплотненный*
ЭУ |
8 |
138 |
60 |
218 |
40 |
*Не поддерживается многими принтерами, использовать не
рекомендуется
<<< Предыдущий выпуск | Архив выпусков | Следующий выпуск >>>
|