Как посчитать суммы в 1с. Рассчитываем сумму в строке

Время бухгалтера, как известно очень ценное и поэтому нужно учиться его экономить на полезных мелочах, которые предусмотрены в программе 1С Бухгалтерия 3.0.

Давайте рассмотрим некоторые из них:

  • Для того, чтобы суммировать выбранные ячейки отчета, достаточно их выделить и на панели инструментов появится сумма ячеек. Выделять ячейки можно и те, которые не находятся рядом. Для этого нужно просто удерживать клавишу CTRL и левой кнопкой мыши выделять требуемые ячейки.
  • Если Вам нужно выбрать Контрагента в документе, а Вы забыли, как он называется. Начинается точно на "Агро". Просто поставьте курсор в нужное поле и начните набирать "Агро". Программа сама найдет контрагента "АгроПтица" и предложит Вам его выбрать.
  • "Живой" поиск значений — это самый удобный поиск в программе 1С. Работает в любом справочнике или документе. Выберите любую строчку в нужном столбце и просто набирайте текст. Обо всём остальном позаботится система "живого" поиска в 1С.
  • Бывают ситуации, когда в справочнике названия элементов просто не помещаются в одну строчку и Вам нужно изменить её высоту раза в два. На панели списка нажмите кнопку "Все действия" и из выпавшего меню выберите пункт "Изменить форму...". В появившемся окне "Свойства элемента формы" достаточно установить значение "Высота" — 2 и нажать кнопку "ОК".
  • Программа 1С может сохранять любые печатные формы в самом удобном для Вас формате. Просто сформируйте нужный отчет и нажмите на значок дискеты на панели управления. В появившемся окне "Сохранить как" введите название отчета, выберите подходящий формат и нажмите кнопку "Сохранить". Поддерживаются форматы: WORD, EXCEL, HTML, PDF, Текстовый файл и многие другие.
  • Чтобы автоматически установить нужную границу в документе, нажмите и удерживайте CTRL. Не отпуская ее сделайте двойной щелчок по правой границе колонки. Теперь ширина колонки станет как раз подходящей, чтобы полностью видеть значения полей или не занимать место таблицы пустотой ячеек.
  • Таким же способом можно и просто установить нужную ширину ячеек вручную. Удерживая CTRL, установите курсор мыши на границу ячейки и просто перетащите границу в нужное место.
  • Чтобы не тратить время на распечатку каждого документа отдельно, можно распечатать сразу группу документов. Откройте журнал требуемого вида документов. Удерживая CTRL, выделите нужные Вам документы и нажмите кнопку печати на панели управления. Если нужно выделить все документы их журнала, достаточно нажать комбинацию клавиш CTRL+A.
  • Если необходимо распечатать табличную часть документа, то нужно раскрыть пункт "Все действия" в журнале или документе. В появившемся меню выберите "Вывести список...". В окне настроек выберите колонки, которые необходимо распечатать и нажмите "ОК". После формирования списка просто нажмите на "печать" в верхней части окна.
  • Таким образом, не сложными, но действительно полезными маневрами можно сэкономить немало времени, а также повысить свою квалификацию как специалиста.

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

Мы создали документ Приход товара. В котором есть дата прихода и Поставщик. В табличной части добавили четыре поля это Наименование, Количество, Цена и Сумма. Все вроде бы нормально но вот по логике нужно сделать так чтобы поле Сумма подсчитывалось автоматически. Этим вопросом сейчас и займемся.

Рассчитываем сумму в строке

И так открываем конфигуратор заходим в созданный ранее документ и переходим на вкладку Формы. В ней нужно открыть и отредактировать Форма Документа кликаем на ней два раза или выбираем Карандашик.

Теперь необходимо перейти в Модуль.

В окне модуля пишем небольшой код

&НаКлиенте
Процедура МатериалыКоличествоПриИзменении(Элемент)


КонецПроцедуры

&НаКлиенте
Процедура МатериалыЦенаПриИзменении(Элемент)
Строка = Элементы.Материалы.ТекущиеДанные;
Строка.Сумма=Строка.Количество*Строка.Цена;
КонецПроцедуры

Теперь немного поясню код который нужно написать.

&НаКлиенте — Это значить что вычисление будет происходить на компьютере пользователя, а не на сервере.

Процедура — Это собственно процедура)

МатериалыКоличествоПриИзменении — Это название нашей процедуры.

Строка — Это переменная

Элементы.Материалы.ТекущиеДанные — Этой строкой мы получаем данные строки.

Строка.Сумма=Строка.Количество*Строка.Цена — Это формула (Строка.Сумма, Строка.Количество, Строка.Цена этими строчками мы обращаемся к значениям которые находятся в таблице)

КонецПроцедуры — Это как вы уже догадались конец процедуры.

После чего запускаем отладку и проверяем. Для этого в документе вводим значения в поля Количество и Цена после чего сумма должна подставиться автоматически.

Точнее налоговой базы для него.

Определение базы по налогу на прибыль достаточно простое. Это разница между доходами и расходами.

Сложность заключается в том, что доходы и расходы признаются в разных видах учета по-разному. Часть доходов и расходов может быть признана только в одном из видов учета. В результате появляются постоянные и временные разницы.

«Дружба» бухгалтерского и налогового учета выражается формулой, состоящей из четырех значений:

БУ = НУ + ПР + ВР,

  • БУ – сумма по бухгалтерскому учету;
  • НУ – сумма по налоговому учету;
  • ПР – постоянная разница;
  • ВР – временная разница.

В бухгалтерских конфигурациях 1С 8.3 для реализации этой формулы используется специальный регистр, в котором для каждого значения есть свой ресурс (рис.1).

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

В проводках 1С вместо одной суммы может фигурировать сразу 4 (по числу значений из вышеприведенной формулы). На рис.2 видим различные суммы амортизации по бухгалтерскому и налоговому учету. Разница между ними (83,34) образует временную разницу и находится в строчке с аббревиатурой «ВР ».

При проведении документов программа сама рассчитывает нужные суммы по БУ и по НУ, а также контролирует равенство БУ и НУ по формуле. После закрытия периода на основании этих значений формируется нужная нам база.

План счетов в 1С также имеет свои особенности. Все счета, на которых ведется учет по налогу на прибыль, имеют установленный флажок «НУ» (рис.3). Например, счета 20, 23, 25 принимают участие в формировании прибыли, а счет 19 на прибыль не влияет, для него флажок «НУ» не установлен.

Из-за этого в некоторых проводках по налоговому учету бывает заполнена либо дебетовая, либо кредитовая сумма. На рис.4 видим, что в проводке по начислению взносов в строчках по НУ есть сумма по дебету, но нет суммы по кредиту.

Получите 267 видеоуроков по 1С бесплатно:

Дело в том, что счет 68.01 не относится к налоговым счетам. Признак «НУ» для него не установлен (рис.5).

Для промежуточных расчетов по налогу на прибыль используется счет 68.04.2, которого нет в типовом плане счетов; этот субсчет добавили разработчики 1С (рис.6). Проводка Дт 68.04.2 Кт 99.09 на сумму 0.15 руб. нужна для округления суммы налога до целых значений.

Поиск и устранение ошибок по расчету налога на прибыль

Несмотря на то, что практически все расчеты по налогу на прибыль в программе выполняются автоматически, могут возникнуть ошибки. Особенно часто они возникают при вводе ручных операций.

Для контроля используется отчет «Анализ учета по налогу на прибыль» (рис.7).

Каждый раздел отчета можно раскрыть двойным щелчком и найти ошибочный документ. «Подозрительные» разделы выделены красной обводкой (рис.8).

Раскроем раздел «Прочие расходы по реализации…». Ниже (рис.9) видим документы, на основании которых получились данные суммы.

Чтобы вывести документы, нужно включить флажок «По документам»

Исправляем ошибки и получаем «красивый» отчет (рис.10).

Настройка налогового учета в 1С 8.3

В заключение — о двух вариантах ведения налогового учета в программах 1С. Так как применение ПБУ 18/02 в некоторых случаях не является обязательным, то ряд организаций могут вести учет без формирования постоянных и временных разниц. Необходимые настройки выполняются на закладке «Налог на прибыль» в (рис.11)

Число в 1С 8 — значение примитивного типа Число . Числовым типом может быть представлено любое десятичное число. С числовыми данными возможно совершать основные арифметические операции: сложение, вычитание, умножение и деление. Максимальное количество разрядов для числа в 1с 8: 38 знаков.

Литералы числа: набор цифр вида: [+|-]{0|1|2|3|4|5|6|7|8|9}[.{0|1|2|3|4|5|6|7|8|9}] В качестве разделителя целой и дробной части используется «.» (точка).

Пример 1. Создадим числовую переменную

ЧислоПи = 3.14;

Преобразование значений другого типа в число

Преобразовать в число можно значения строкового типа, либо логического типа (Булево ). Значение типа Булево преобразуется в число по следующим правилам:

  • Ложь преобразуется в 0;
  • Истина преобразуется в 1.

Значение типа Строка преобразуется в число в том случае, если оно является строковым представлением литерала численного типа.

Для преобразования существует специальная функция Число(<Значение>) , которая возвращает полученное число, если преобразование удалось и выдает сообщение об ошибке в противном случае.

Пример 2. Преобразовать в 1с число строку «1.25»

Строка = "1.25"; ПолученноеЧисло = Число(Строка);

После выполнения данного кода в переменной ПолученноеЧисло будет содержаться числовое значение 1.25

Пример 3. Преобразовать в число строку «Привет мир!»

Строка = "Привет мир!"; ПолученноеЧисло = Число(Строка);

При попытке выполнить данный код будет выдано сообщение об ошибке: «Преобразование значения к типу Число не может быть выполнено».

Функции работы со значениями типа Число в 1с 8.3

В данном разделе будут рассмотрены основные функции работы с числами в 1с 8 и приведены примеры их использования.

Цел

Цел(<Число>) . Возвращает целую часть числа переданного в параметре.

Пример 4. Определить делится ли число 121 на 11.

Делимое = 121; Делитель = 11; Результат = Делимое / Делитель; Если Цел(Результат) = Результат Тогда Сообщить("Делится нацело"); Иначе Сообщить("Не делится нацело"); КонецЕсли;

Результатом выполнения данного кода будет вывод на экран сообщения «Делится нацело».

Окр

Окр(<Число>, <Разрядность>, <РежимОкругления> ). Функция округляет число, переданное в первом параметре, до знака после запятой переданного во втором параметре. Значение разрядности может быть и нулевым (округление до целого) и отрицательным (округление до соответствующего разряда целой части). Параметр РежимОкругления может принимать значения:

  • 0 (или РежимОкругления.Окр15как10) . Округляет в меньшую сторону, то есть при округлении 1.5 будет возвращено 1;
  • 1 (или РежимОкругления.Окр15как20) . Округляет в большую сторону, то есть при округлении 1.5 будет возвращено 2;

Пример 5. Для того чтобы лучше разобраться с принципами округления рассмотрим округление до целого в меньшую и большую стороны, на ряде чисел от 1.1 до 1.9

Массив = Новый Массив; Шаг = 0.1; Число = 1; Пока Число < 1.9 Цикл Число = Число + Шаг; Массив.Добавить(Число); КонецЦикла; Для Каждого Стр Из Массив Цикл Сообщить("Исходное: "+Стр+" В меньшую: "+Окр(Стр,0,0)+" В большую:"+Окр(Стр,0,1)); КонецЦикла;

Pow

Pow(<Основание>, <Показатель>) . Возводит число переданное в первом параметре в степень переданную во втором параметре.

Пример 6. Извлечь квадратный корень из числа 144, а затем возвести его в квадрат, в итоге снова должно получится число 144.

Число = 144; КвКорень = Pow(Число, 1/2); Число = Pow(КвКорень, 2); Сообщить(Число);

Результатом исполнения кода будет вывод на экран числа 144.

Прочие функции работы со значениями типа Число в 1с 8.3

  • Log(<Число>) . Получает натуральный логарифм числа, переданного в параметре;
  • Log10(<Число>) . Получает десятичный логарифм числа, переданного в параметре;
  • Sin(<Угол>) . Получает синус угла, заданного в радианах. Угол передается в параметр;
  • Cos(<Угол>) . Получает косинус угла;
  • Tan(<Угол>) . Получает тангенс угла;
  • ASin(<Угол>) . Получает арксинус угла;
  • ACos(<Угол>) . Получает арккосинус угла;
  • ATan(<Угол>) . Получает арктангенс угла;
  • Exp(<Число>). Получает экспоненту от числа переданного в параметр.