CбИС++ «БИТ»
   О ПРОГРАММЕ   
   О КОМПАНИИ   
   ЗАГРУЗИТЬ   
   ДОКУМЕНТАЦИЯ   
   · Руководство пользователя 
   · СБиС news
   · Статьи
   · Функции
   ПРАЙС-ЛИСТ   
   ВАКАНСИИ   
   АВТОМАТИЗАЦИЯ ТОРГОВЛИ   
СБиС 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!’);
     


    <<< Предыдущий выпуск | Архив выпусков | Следующий выпуск >>>