|
|
|
|
·
·
·
·
|
|
|
|
|
|
|
СБиС news №38/11.10.2000
|
13.07 |
Реализован правильный расчет и подготовка форм на инвалидов, если
инвалидность наступает в течение отчетного периода.
|
16.08 |
В счет-фактуре с НДФ для НДФ не выводились копейки
(manager.pa8).
|
28.08 |
Наконец-то в бюджетные настройки помещён новый бюджетный плат
счетов и формы в соответствии с Инструкцией №107.
|
29.08 |
Сделана шапка в печатной форме главной книги (balanc.rpt).
|
05.09 |
В развернутом журнале ордере в узкой форме по документам в
экранной форме теперь есть начальный остаток (sbis.rpt).
|
12.09 |
Новый расчет отпускных, учитывающий квартальные, полугодовые и
годовые премии.
|
28.09 |
В книге покупок и продаж теперь правильно считается сумма НСП
(sbis.pa$).
|
28.09 |
Изменён расчёт алиментов. Выпущена отдельная инструкция.
|
|
|
Параметр “Условие” в отчетах по складу
|
|
|
В параметрах многих складских отчетов версии 1.8 появилось новое
поле “Условие”. Это обычное текстовое поле, в котором можно
ввести обычное условное выражение на обычном языке СБиС'а. А
сколько возможностей! Можно очень гибко фильтровать содержимое
складских отчетов в СБиСе.
Как всё это дело работает. Очень просто! Текст, указанный в поле
“Условие”, трактуется как выражение, и его истинность проверяетс
для каждой строки отчета. Если условие выполняется, то строка
попадает в отчет, если же нет, строка отбрасывается.
Рассмотрим несколько простых примеров применения описываемой
возможности.
Пример 1. Чтобы построить отчет остатки по партиям дл
товара, себестоимость которого больше 100 рублей, достаточно в
поле “Условие” написать:
Себест > 100
Пример 2. В организации розничной торговли складской учет
организован с использованием сканера штрих-кодов, т.е.
номенклатурный номер товара содержит данные штрих-кода. Перва
цифра определяет страну-изготовителя. Построим оборотку по
себестоимости для товара, изготовленного в Германии. В параметре
“Условие” пишем:
Подстрока(НомНомер,1,1)==”4”
Пример 3. Нужно построить справку о продажах вино-водочных
изделий, вес которых составляет 0.25. Условие будет выглядеть
следующим образом:
Вес==0.25
И в заключение. Если условие получается достаточно громоздко и
используется достаточно часто, лучше описать отдельную функцию в
PRG-файле и указывать в условии именно её.
|
|
ОС – вносить или не вносить? Вот в чем вопрос!
|
|
|
Не так давно в нашем дискуссионном клубе прокатилась бурна
дискуссия на тему “Нужно ли вносить в ведомость амортизации
основные средства с нулевой остаточной стоимостью”. В общем,
всем, кто ведёт учёт основных средств (или помогает это делать
своим клиентам) настоятельно советую прочитать
данное обсуждение.
|
|
Расчет многомесячных больничных листов
|
|
|
Часто возникает ситуация, когда больничный лист продлевается в
следующем месяце расчета (увы! экологическая обстановка в
стране ухудшается, люди болеют чаще и дольше). При расчете
таких больничных, как справедливо заметил один из наших дилеров,
возникают определённые нюансы до сей поры в СБиСе не оговорённые.
Например, сотрудник был на больничном с 15.07.2000 по 01.08.2000.
Базой для расчета среднедневного заработка в этом случае являютс
май, июнь. В следующем месяце больничный продлевается, например,
со 2 по 10 августа того же года. Этот больничный должен быть
рассчитан, исходя из расчетов больничного листа, который он
продлевает (то есть база для расчета опять-таки май, июнь).
Зададим традиционный русский вопрос: “Что делать?” (кто виноват,
в общем-то, и так понятно). Ответ смотрите на следующей странице.
А делать рекомендуется следующее. Завести дополнительный вид
начисления “Больничный @ продолжение” со следующим
правилом расчёта:
# Дата начала текущего больничного
НачБол = ДатНач;
Очистить(БольнНач);
Очистить(БольнКнц);
ДляВсех(БольничныхСотр())
{
# Сначала формируем массив с индексом,
# который затем используется
# для перебора больничных в порядке
# убывания даты начала больничного
Индекс = 01.01.3000 - ДатНач;
БольнНач[Индекс] = ДатНач;
БольнКнц[Индекс] = ДатКнц;
}
# перебираем все больничные в порядке
# убывания даты начала больничного
ДляВсех(Элементов(БольнНач,Индекс))
{
# проверяем, является ли этот
# больничный продолжением предыдущего
Если (НачБол == БольнКнц[Индекс] + 1)
НачБол = БольнНач[Индекс];
}
# на сколько месяцев нужно вернуться назад
Сдвиг = Месяц(ДатНач) - Месяц(НачБол) + ( Год(ДатНач) - Год(НачБол) ) * 12;
# рассчитываем сумму больничного с учетом сдвига
Сумма = Мин(Среднее(2+Сдвиг, 1+Сдвиг) * Процент / 100, СреднееМаксДни(ДатНач)) * ПропДни;
|
|
Разделитель в развернутой ведомости
|
|
|
Автор: Каетин Юрий (kaetin@mail.ru)
ЗАО “Яртех трейдинг” (0855) 52-16-87, 52-17-87, 52-19-87
е-mail: yartech@mail.ru
В печатном виде развернутой ведомости (например, расходных
накладных) явно не хватает разделителя, отделяющего спецификацию
одного документа от другого. Чтобы улучшить ситуацию, достаточно
сделать следующее.
В самом начале отчета необходимо сделать следующую запись:
. Номер1 = Номер2 = -1
Далее подготовьте раздел “ПечатьРазделителя”, где будет
находиться собственно разделитель, например:
+ПечатьРазделителя
────────────
В том месте, где у Вас вызывается печать раздела со строкой:
Напечатать("ПечатьСтроки");
необходимо вставить перед этой строчкой следующее:
Номер1=Номер;
Если(Номер2!=Номер1 и Номер2!=-1)
Напечатать("ПечатьРазделителя");
Номер2=Номер1;
Напечатать("ПечатьСтроки");
Как только меняется Номер документа, тут же происходит вставка
разделителя, исключая самую первую строчку спецификации.
|
|
Кавычка или апостроф? ” или ’ ?
|
|
|
- Василий Иванович, а сколько будет:
одна вторая прибавить ноль целых пять десятых?
- Нутром, Петька, чую, что поллитра!
А доказать не могу…
Очень часто даже сильнопродвинутые пользователи СБиС++ путают,
где в правилах операций и отчётах нужно использовать кавычки, а
где апострофы (одинарные кавычки). Давайте попробуем хоть немного
прояснить ситуацию.
Начнём издалека. Рассмотрим следующий текст:
Сообщить(666);
Н = 666;
Сообщить(Н);
Фактически в первой и третьей строке делается одно и то же –
выводится окно с цифрой “666”. А ведь нутром, наверное, чуете,
что строчки-то чем-то отличаются! И действительно! Отличаютс
они, извиняюсь, сутью: тем, что в первой строке выводитс
просто число 666, а в третьей значение переменной с
именем “Н”, содержащей на момент выполнения функции “Сообщить”
число 666. Что называется, почувствуйте разницу!
Хорошо. Теперь усложним ситуацию:
Сообщить(”Сидорофф Иван Петрович”);
Сообщить(’Лица_>ФИО’);
Ситуация в общем-то полностью аналогична предыдущей, только здесь
работа уже идёт с текстом. В первой строке выводится текст
“Сидоров Иван Петрович”. Просто текст в отличие от числа нельз
писать просто, его приходится заключать в специальные символы –
кавычки. А во второй строке сообщается значение переменной
с именем “Лица_>ФИО”. Но поскольку в имени переменной есть
знак операции сравнения (знак “больше”), имя переменной также
приходится заключать в специальные ограничительные символы –
апострофы.
Очень важно не путать одно с другим: текст внутри кавычек
трактуется просто “as is”, а вот внутри апострофов – это им
переменной, значение которой и будет использоваться. Чтобы
прочувствовать разницу, попробуйте в предыдущем примере поменять
местами кавычки с апострофами:
Сообщить(”Лица_>ФИО”);
Сообщить(’Сидорофф Иван Петрович’);
Ну, и напоследок задачка для эрудитов. Что будет выведено в
результате выполнения следующего фрагмента?
’1C must die!’ = ”СБиС++ forever!”;
Сообщить(’1C must die!’);
|
<<< Предыдущий выпуск | Архив выпусков | Следующий выпуск >>>
|
|