Как в 1с посмотреть формулы
Коллеги, в данной статье будут рассмотрены алгоритмы записи и переноса из системы программ 1С:Предприятие формул в ячейки Excel. Так как существует множество интеграций Excel с системой 1С, то у многих возникает вопрос о переводе формул из 1С 8.3 Предприятие в MS Excel. Проще всего понять алгоритм на примерах задач, поэтому таким способом и будет задаваться «настроение» данной статьи.
2. Алгоритм интеграции Excel
Создадим следующий пример указания формулы внутри ячейки: Пусть в MS Excel Cells (1,3) необходимо переместить формулу вида «=СЦЕПИТЬ(Е1;С7). Для начала стоит заметить, что визуализация функций в ячейках MS Excel обычно не знакома разработчикам 1С, поэтому лучше приводить в вид функции Excel на VBA – это особый диалект языка Visual Basic, который расширяет возможности данного языка программирования и необходим для того, чтобы производить работу с различными приложениями Microsoft Office. Но для этого надо знать название каждой соответствующей функции Excel на VBA.
Для обеспечения данной операции нужно следовать такому алгоритму:
1. Создать и открыть новую книгу в MS Excel;
2. Перейти во вкладку меню «Сервис», после чего выбрать «Макрос», кликнуть на «Начать запись» и подтвердить, нажав на «ОК». После данного действия откроется небольшое окно, в котором будет кнопка квадратного типа, его закрывать нельзя;
3. Далее выбираем ячейку «С1», кликнув на неё, и прописываем в ней нужную нам формулу: «=СЦЕПИТЬ(Е1;С7);
4. Далее кликаем на квадратную кнопку, речь о которой шла выше, после этого действия мы одержали нужный нам макрос на VBA для Excel.
Далее следует проверить результат: для этого переходим во вкладку меню «Сервис», после чего выбираем «Макрос», кликаем на «Макросы», в данном пункте появится созданный в пункте выше «Макрос1». Кликаем на него и выбираем «Войти». После проделанных действий откроется редактор VBA, который является встроенным, и схож с конфигуратором 1С. Далее видим следующий текст, который приведён на скриншоте примера кода ниже:
Рис. 1 Программный код в редакторе VBA
По факту, в этом программном коде нам необходимы лишь следующая строчка:
Рис. 2 Строчка программного кода в редакторе VBA
Данная формула и будет тем, что при работе в системе 1С:Предприятие нужно ввести после «=». Проверим, как будет это выглядеть в коде конфигуратора 1С:
Рис. 3 Программный код при работе в системе 1С:Предприятие
Все действия сработали.
В результате, не трудно заметить, что строчку, представленную на рисунке 4, можно заменить на строчку, показанную на рисунке 5:
Рис. 4 Исходная строчка программного кода при работе в системе 1С:Предприятие
Рис. 5 Нужная строчка программного кода при работе в системе 1С:Предприятие
В этом случае результат останется прежним, но возможностей прибавится.
Таким образом, получение любой формулы из 1С 8.3 в MS Excel будет выглядеть аналогичным образом.
Можно рассмотреть ещё одну задачу: допустим при работе с таблицами MS Excel нужно чтобы при открытии файла в таблице был фильтр по заданным параметрам, как на скриншоте ниже:
Рис. 6 Фильтр по заданным параметрам при работе с таблицами MS Excel
В результате необходимо получить всю продукцию, количество которой, например, 11 единиц.
В этом случае программный код на платформе системы 1С:Предприятие будет выглядеть следующим образом:
Итак, давайте на примере посмотрим какие конкретно возможности предоставляет 1С ЗУП. Условия примера будут такими. В организации сотрудники подразделения в течении месяца могут на определенное количество дней привлекаться к работе на другом участке производства. Каждый участок предполагает свою месячную тарифную ставку. Расчет на каждом участке осуществляется пропорционально отработанному времени. В качестве данных для расчета примера будем использовать следующую таблицу.
Создание нового вида расчета в 1С ЗУП
Для реализации автоматизации расчета этой схемы начисления зарплаты нам необходимо создать новый вид расчета. Открываем для этого список «Основных начислений организации». Создадим новый элемент. В открывшейся форме установим в активное положение переключатель «Первичное начисление», поскольку данный вид расчета от других начислений не зависит. Далее в группе настроек «Способ расчета» установим значение «Произвольная формула расчета» и после этого по ссылке «Редактировать формулу расчета» переходим в окно редактирования:
Теперь необходимо в открывшемся окне задать формулу, по которой будут рассчитываться начисления по этому виду расчета. Формула будет иметь следующий вид:
(ТарифнаяСтавкаМесячная / НормаВремениВДнях * (ВремяВДнях – ДнейНаУчастке1 – ДнейНаУчастке2)) + ОкладНаУчастке1 / НормаВремениВДнях * ДнейНаУчастке1 + ОкладНаУчастке2 / НормаВремениВДнях * ДнейНаУчастке2
Поясню эту формулу. НормаВремениЗаМесяцВДнях – это показатель предопределенный разработчиками. Он возвращает норму времени в дня, установленную по графику текущего сотрудника. Например, в Сентябре 2014 года для графика Пятидневка это 22 дня. ТарифнаяСтавкаМесячная – также показатель предопределенный. Его значение будет устанавливаться при приеме сотрудника на работу, либо при изменении условий оплаты документом «Кадровое перемещение».
Создание собственных показателей
ОкладНаУчастке… - 2 показателя, которые являются условно постоянными. Их нужно добавить. Для этого в открытой ранее форме, в нижней её части следует нажать на ссылку «Добавить показатель». Указываем наименование, в поле «Вид показателя» денежный, в поле «Назначение показателя» установим «Для всей компании (организации)», а поле «Порядок ввода показателя» установится автоматически в значение «Периодически». Наиболее интересным полем здесь является «Назначение показателя». Также оно может принимать значение «Для подразделения» и «Для сотрудника». О последнем мы поговорим чуть ниже, а о том в каких случаях можно использовать показатель для подразделения можете почитать в статье Произвольные формулы видов расчета в 1С ЗиУП: использование собственных показателей для расчета зарплаты. Таким образом создаем 2 показатель по количеству участков.
ДнейНаУчастке… - 2 показателя, которые будут вводиться расчетчиком ежемесячно для каждого сотрудника, если сотрудник работал на участках. Создадим эти показатели. Заполним поля формы при создании следующим образом:
- Вид показателя – числовой;
- Назначение показателя – для сотрудника;
- Порядок ввода показателя – ежемесячно перед расчетом зарплаты.
Создадим 2 таких показателя по количеству участков.
Теперь вводим формулу в поле, которое расположено в верхней части окна. Ещё раз напомню формулу:
(ТарифнаяСтавкаМесячная / НормаВремениВДнях * (ВремяВДнях – ДнейНаУчастке1 – ДнейНаУчастке2)) + ОкладНаУчастке1 / НормаВремениВДнях * ДнейНаУчастке1 + ОкладНаУчастке2 / НормаВремениВДнях * ДнейНаУчастке2
Сохраняем эту формулу.
Далее необходимо перейти на закладку «Время» в создаваемом виде расчетов и установить в активное положение переключатель «Начисление за работу полную смену в пределах нормы времени». А в поле «Вид времени по классификатору…» указать «Явка».
Теперь сохраняем этот вид расчета.
Ввод значений для созданных показателей
Теперь давайте введем значения для созданных показателей. Вначале введем сведения для показателей ОкладНаУчастке1 и ОкладНаУчастке2. Для этого откроем сервис «Показатели расчета заработной платы». Доступ к нем можно получить на закладке «Расчет зарплаты» главного меню программы в левой колонке ссылок, внизу. В открывшемся окне переходим на закладку «Постоянные», устанавливаем переключатель «Данные по организации», выбираем организацию и добавляем значения для двух наших показателей.
Теперь переходим на закладку «Ежемесячные». Здесь будут вводиться расчетчиком ежемесячные показатели о количестве отработанных часов на участках. Указываем период, устанавливаем режим ввода «Данные по сотрудникам» (пример с показателями по подразделениям смотрите тут). Далее выбираем удобный способ ввода: по сотрудникам или по показателям и вводим значения.
Вот собственно и всё. Теперь можно создавать документ «Начисление зарплаты сотрудникам организации», заполнять этими сотрудниками и рассчитывать зарплату.
В заключение отмечу ещё ряд публикаций на тему работы с произвольными формулами в 1С ЗУП:
С течением времени все меняется, меняются и учетные системы 1С. Многие пользователи, осуществившие переход ПП 1С: Зарплата и управление персоналом на редакцию 3.0, заметили, что программа разительно отличается от привычной редакции 2.5 – основные механизмы, конечно неизменны, но многие привычные мелочи вроде ввода показателей для расчета зарплаты, настройки видов расчета или разовых удержаний в той или иной степени были изменены, а что-то вообще исчезло из программы.
Но ничто в природе не исчезает бесследно, и 1С не исключение, на смену привычным документам или механизмам пришли новые, и хорошо бы их «знать в лицо». Ведь программа должна работать на Вас, а не наоборот!
Сегодня расскажу, как настроить и как в последствии использовать вид начисления, у которого непростая формула из нескольких показателей.
Пример. Сотруднику Люфт А.А. с окладом по дням (стандартное начисление) в 10000 руб. полагается некая надбавка за работу с клиентами, которая рассчитывается так:
фиксированная часть надбавки
(2000 руб.)/ПлановоеКоличествоКлиентов*ФактическоеКоличествоКлиентов, но не более 2000 руб.
20% от установленного оклада/ПлановоеКоличествоКлиентов*ФактическоеКоличествоКлиентов, но не более 20% от установленного оклада,
при этом общая сумма надбавки должна зависеть от фактически отработанного сотрудником времени в днях.
Наша задача, настроить начисление так, чтобы при начислении зарплаты сотруднику бухгалтер вводил минимум данных, надбавка рассчитывалась автоматически, при этом процент надбавки, плановое количество клиентов и фиксированную часть можно было изменять с течением времени при кадровых перемещениях, а Фактическое количество клиентов вводить для списка сотрудников перед начислением зарплаты каждый месяц.
Начнем с создания самого вида начисления. Раздел «Настройка», пункт «Начисления», кнопка «Создать». Рис.1
В открывшемся окне задаем основные параметры. Первая вкладка «Основное», здесь указываем название нашего начисления, назначение начисления «Повременная оплата труда и надбавки», расчет и показатели устанавливаем в положение «Результат рассчитывается», начисление выполняется «Ежемесячно». Далее нужно задать формулу расчета, для этого переходим по гиперссылке «Редактировать формулу». Рис.2
Теперь необходимо определиться с переменными для формулы. Необходимо задать столько переменных, чтобы при каких-либо кадровых изменениях с изменением размеров начислений не пришлось менять саму формулу расчета. Поэтому заводим показатели «%Процент», «Фиксированная часть», «Плановое количество клиентов», «Количество клиентов».
Для создания показателя в окне «Редактирование формулы» нажимаем кнопку «Создать показатель». рис.3
Первый показатель назовем «%Процент», назначение «Для сотрудника», тип «Числовой с произвольной точностью, я возьму два знака после запятой. Использоваться он будет во всех месяцах после ввода значения, следовательно, вводиться и изменяться он будет с помощью кадровых документов. Рис.4
Показатели «Фиксированная часть», «Плановое количество клиентов» настраиваются аналогично, отличаться будут только названием.
Для показателя «Количество клиентов» в блоке «Использование» устанавливаем значение «Только в месяце, в котором вводится значение» и «Вводится единовременно документом ввода данных для расчета зарплаты», потому что фактическое количество обслуженных клиентов каждый месяц разное.рис.5
Теперь составим саму формулу. Для того чтобы расчетная сумма не превышала определенную величину использую функцию Мин(,). Показатели подставляются в формулу из списка внизу формы двойным щелчком мыши.
Таким образом, формула будет выглядеть так:
Нажимаем «Ок», наша формула сохраняется. На рис.6-10 показано, каким образом я настраивала остальные параметры начисления.
Начисление мы создали, нажимаем «Записать и закрыть».
Теперь еще один момент. Необходимый для ежемесячного ввода данных по показателю «количество клиентов» для каждого сотрудника. Переходим в разделе «Настройка» к пункту «Шаблоны ввода исходных данных».
Создаем новый шаблон «Количество клиентов». На рис. 11 и 12 показано какие настройки внутри нужно выполнить для подобного показателя.
На рис.12 отмечаются нужные виды времени, если необходимо будет вводить данные за каждый день. В нашем примере этого не требуется, поэтому галочку с поля «Явка» я уберу.
На рис.13 показана закладка «Дополнительно», здесь выбираем, как будет выглядеть форма документа ввода данных для расчета зарплаты. Можно заполнять списком сотрудников автоматически, если показатель используется для всех сотрудников или сотрудников определенного подразделения. Если в базе несколько организаций, можно настроить ввод документов для одной конкретной организации.
Записываем и закрываем шаблон.
Теперь необходимо назначить сотруднику (или списку сотрудников) новый вид начисления.
Раздел «Кадры» пункт «Приемы, переводы, увольнения». Создаем документ «Кадровый перевод». Выбираем нужного сотрудника, устанавливаем дату и параметры перевода (при необходимости), переходим на вкладку «Оплата труда» и добавляем новое начисление, которое мы создали.
На рис.14 можно увидеть, что программа предлагает заполнить показатели, необходимые для расчета данного начисления, для которых мы определили, что изменяться они будут только при кадровых изменениях. Итак, заполним по нашему условию: процент от оклада – 10%, плановое количество клиентов 50, фиксированная часть надбавки 2000 руб. рис.15
Если для сотрудника никаких изменений больше не предполагается, то проводим и закрываем документ.
Теперь бухгалтеру остается непосредственно перед начислением зарплаты по результатам работы в конкретном месяце ввести фактическое количество обслуженных сотрудником клиентов с помощью документа «Количество клиентов», для которого мы и создавали шаблон. Находится документ в разделе «Зарплата» пункт «Данные для расчета зарплаты». На рис.16 форма этого документа.
Теперь в документе «Начисление зарплаты» за июнь наша надбавка рассчитывается автоматически, для примера я ввела в табель учета рабочего времени для нашего сотрудника один день больничного, чтобы показать, что формула все рассчитывает верно. Результат можно увидеть на рис.17 и легко проверить на калькуляторе.
Больше не нужно будет из месяца в месяц думать, верно ли программа рассчитала это начисление или нет.
Если бы количество обслуженных клиентов было более планового, то расчет получился бы такой(рис.18), так как по условию фиксированная часть не может быть больше 2000, а процентная не более установленного % от оклада:
Заставьте программу работать на Вас! Если при самостоятельной настройке у Вас возникают трудности, обращайтесь к нам, всегда поможем! Легкой Вам работы!
В программе «1С:Зарплата и управление персоналом 8», ред. 3.1, бухгалтеры регистрируют множество доходов, начиная с окладов, отпускных, заканчивая доплатами и надбавками, которые рассчитываются по сложнейшим формулам. В основе всего лежит начисление. Оно определяет многие моменты, например, специфику по НДФЛ, взносам, вхождение в базу среднего и др.
Создание начисления
В поставке программы предусмотрен набор наиболее распространенных типовых начислений – оклад по дням, отпуск основной и т.д. Наряду с этим пользователь может создать свое начисление, в котором можно задать необходимые настройки, назначение начисления, его расчет. Ищите начисления в разделе «Настройка» – «Начисления».
Нажимаем кнопку «Создать». Откроется карточка начисления, которое необходимо оформить.
В поле «Наименование» указываем название начисления – так оно будет отображаться в документах и аналитических отчетах программы. На вкладке «Основное» наиболее важное поле – «Назначение начисления».
Назначение позволяет программе определять, какие настройки допустимы для начисления, каким образом и где начисление может назначаться, рассчитываться и выполняться. Другими словами, по назначению программа «узнает» начисления.
Список возможных назначений начислений - закрытый, расширить его нельзя. Некоторые из назначений доступны только в том случае, если выбрали соответствующую возможность программы. Это такие назначения, использование которых предполагает также создание специфичного для них показателя, вида времени и т. п.
Например, если выбрать назначение начисления «Премия», то программа автоматически ставит флаг «Включать в базу начислений при расчете среднего заработка» на вкладке «Средний заработок». Снять этот флаг нет возможности, так как премии учитывают в расчете среднего заработка, согласно Положению, утв. постановлением Правительства РФ от 24.12.2007 № 922.
Назначение «Прочие начисления и выплаты» позволяет настроить начисление произвольным образом, без каких-либо ограничений в последующих настройках среднего, НДФЛ и т.д. Его можно использовать, если все другие имеющиеся в программе назначения не позволяют решить ту или иную задачу. Прежде, чем использовать «прочее» назначение, рекомендуем убедиться, что иные возможности программы не подходят. Уточнить этот момент помогут на Линии консультаций.
Способ выполнения начислений
В значении поля «Начисление выполняется» указано то, в каком документе можно выбрать/заполнить начисление/где и как оно будет заполнено.
Какие виды выполнения начислений доступны в программе, узнаете из Таблицы 1.
Таблица 1. Виды выполнения начислений
Возможный вариант
Как работает
Ежемесячно
Такое начисление можно назначить плановым, и оно будет автоматически выполняться при окончательном расчете зарплаты документом «Начисление зарплаты и взносов» и др.
По отдельному документу
Такое начисление можно выполнить только межрасчетными документами «Разовое начисление», «Материальная помощь», «Премия» и проч.
В перечисленных месяцах
Совпадает со способом «Ежемесячно». Отличие в том, что можете выбрать месяцы, при окончательном расчете которых программа будет выполнять это начисление.
Только если ввели значение показателя
Такое начисление выполняется при окончательном расчете только в том случае, если на этот месяц с помощью универсального документа «Данные для расчета зарплаты» ввели значение хотя бы одного из отмеченных «определяющих» показателей. В формуле такого начисления должен использоваться показатель разового использования (рассмотрим далее в статье). Именно такие показатели предлагается отметить в таблице.
Только если ввели вид учета времени
Это начисление выполняется при окончательном расчете только в том случае, если на этот месяц каким-либо способом (в графике, табеле или в документе «Данные для расчета зарплаты») зарегистрировали время выбранного вида.
Только если время приходится на праздничные дни
Начисление выполняется при окончательном расчете только в том случае, если рабочее время по графику работы сотрудника (обычному или индивидуальному) выпадает на государственные праздники согласно производственному календарю.
Формулы начисления
В Таблице 1 мы упомянули про формулу начисления. Это важный параметр, который определяет, как начисление выполняется и как рассчитывается его результат.
Для части начислений автоматически заложен внутри программы алгоритм расчета, который регламентирует законодательство. Для таких начислений нельзя задать произвольную формулу расчета (например, «Оплата по больничному»).
Для других видов назначений возможно установить произвольную формулу.
Для некторых назначений формулу расчета предлагает программа автоматически. Например, для оклада. Но при необходимости ее можно изменить. Если хотите в документах просто ввести итоговую готовую сумму, то укажите способ расчета «результат вводится фиксированной суммой».
Формула состоит из показателей, которые соединяются арифметическими операциями (+, -, *, /), можно использовать скобки. Кроме показателей в формуле можно использовать постоянные числа. В качестве разделителя целой и дробной части, как правило, используют точку, если не задали иные региональные установки.
Еще используют функции. Например: Макс(Выражение1, …, ВыражениеN) – выбирается выражение с наибольшим значением. В качестве выражений подойдут любые показатели и формулы.
Ключевые элементы формулы - показатели расчета зарплаты.
Если в формуле начисления фигурирует показатель «Расчетная база», программа даст доступ к такой вкладке, как «Расчет базы».
На этой вкладке указывайте начисления, участвующие в расчете данного начисления.
Например, в расчете «Доплаты за выполнение плана» работает формула, где на размер доплаты влияет процент от расчетной базы. В расчетную базу входят оклад и премия. Значит, на вкладке «Расчет базы» по кнопке «Подбор» указываем базовые начисления «Оклад по дням» и «Премия разовая (суммой)».
Также можем выбрать период расчета базы, то есть за какой месяц, квартал и т.д. брать в расчет базу.
Учет времени
На вкладке «Учет времени» определяем, как программа будет учитывать время в течение того периода, пока действует начисление. Возможные варианты: в качестве отработанного времени по норме либо сверх нормы, как неотработанное время либо как дополнительно оплачиваемое время. Например, доплата за ночные часы. Кроме того, здесь же указываем вид времени по классификатору использования рабочего времени.
В свою очередь для назначений начислений за отработанное время программа предложит следующие варианты:
Полная рабочая смена в пределах нормы времени. Означает, что время, отработанное по виду начисления, оплачиваем в пределах нормы времени сотрудника.
Неполная смена в пределах нормы времени. Время оплачиваем в пределах нормы времени, измеряем в часах.
Работа сверх нормы времени. Оплачиваем отработанное сверх нормы время. Например, оплата сверхурочных часов за работу в выходные по графику дни, нерабочие по графику.
Зависимости
Вкладка «Зависимости» - чтобы указать начисления/удержания, взаимосвязанные с данным конкретным начислением. Скажем, пользователь может указать начисления, в расчетную базу которых входит рассматриваемое начисление.
Например, надбавка за ученую степень входит в расчетную базу ежемесячной премии.
Читайте также: