Группы расчетов в 1с это
Итак, это для начинающих работать с подсистемой Расчет - по результатам собственного опыта. Сразу скажу - сначала все казалось крайне сложным, сложнее, чем все остальные подсистемы, а потом оказалось, что всего лишь надо было понять несколько принципиальных моментов и все резко упростилось.
Вот и давайте разберемся с принципами работы этой подсистемы, ведь многие программисты категорически отказываются ей заниматься. В чем же причина? Это действительно так сложно?
Для чего используется подсистема Расчет в 1С:Предприятие 8.2 и 8.3?
Почти всегда – для расчета заработной платы, хотя, ее назначение более универсальное.
Например, можно сделать расчет для биллинговых систем у провайдеров. Но, это редко кому требуется. А вот зарплату считают все.
Почему это отдельная подсистема?
Можно и без нее, только, тогда придется много-много программировать для расчета зарплаты, а эта подсистема – «заточена» под такие расчеты и в ней есть много механизмов, обеспечивающих расчеты зарплаты без дополнительного программирования. Можно провести аналогию, когда в программно-аппаратных комплексах какие-то функции, сложные для программирования, реализуются аппаратно, тогда программирование резко упрощается. Вот и здесь, часть функций для расчетов уже реализована в объектах 1С:Предприятие 8.2 и 8.3.
Так из чего же состоит подсистема Расчет в1С:Предприятие 8.2 и 8.3?
Если посмотреть на структуру даже самой простой конфигурации, увидим много блоков, во взаимосвязях которых, на первый взгляд, очень трудно разобраться. Если посмотрим на типовые конфигурации УПП или ЗУП, тем более совсем не захочется даже разбираться в их структуре. А какие там сложные запросы многократной вложенности…
Но, иногда все-таки очень надо разобраться хотя бы в принципах этой подсистемы, работа есть работа.
Для примера возьмем простейшую конфигурацию. Какие в ней объекты для расчета зарплаты? Например:
Справочники: Физические лица, Подразделения, Работники организаций, Группы видов расчета, Типы графиков
Регистры сведений: Плановые начисления, Плановые удержания, Графики работы
Планы видов расчета: Основные начисления, Дополнительные начисления, Удержания
Регистры расчета: Основные начисления, Дополнительные начисления, Удержания
Отчеты: Расчетные листки, Расчетная ведомость
Обработка: Регистр расчета
Общий модуль: Расчет зарплаты.
Ну вот, даже в простейшей конфигурации все очень сложно – больше двух десятков объектов с непонятными взаимосвязями. Вот и причина, почему не все программисты хотят с этим разбираться.
Зададим себе вопрос, а все ли из этих объектов действительно относятся к подсистеме Расчет?
И обнаружим, что, оказывается, нет. Объектов именно этой подсистемы – на удивление мало, поэтому и разобраться в таком маленьком количестве объектов вполне возможно.
Почему такое утверждение? Сейчас поймем.
Действуем методом исключения.
Без чего Расчет остается Расчетом, а без чего Расчетом быть перестанет?
Часть объектов есть в любой конфигурации, даже, если Расчет не будем использовать.
Это, например, справочники – Физические лица, Подразделения.
Часть объектов – носит просто вспомогательный характер, с ними удобнее, но, можно и без них, только придется вводить часть информации вручную. Это не страшно, ведь мы хотим понять взаимосвязи именно для Расчета.
К таким объектам относятся, например, регистры сведений для плановых данных.
Ну, про отчеты даже говорить не будем – отчеты есть отчеты, запрос к базе данным, они аналогичны сотням других отчетов конфигурации.
Часть объектов – для учета кадров. Это просто, там расчет делать не надо, обычные справочники для сотрудников и документы для приема на работу.
Так что же осталось для собственно Расчета из этой схемы?
Остался очень важный объект – План видов расчета.
Не менее важный объект – Регистр расчета.
Без них, действительно никак не обойтись.
Графики работы, конечно, иначе как зарплату начислять, надо ведь знать: какие дни рабочие, какие выходные.
А раз начислять зарплату надо, да и регистру расчета нужен регистратор – это документ начисления зарплаты, в котором вводим исходные данные (в нем и разовые начисления вводить можно на отдельной закладке) Если будут вспомогательные объекты, о которых говорили – берем данные из них, если нет – расчетчик вводит данные из бумажных документов, для подсистемы Расчет это не принципиально.
Ну вот, совсем мало объектов у нас в Расчете осталось:
План видов расчета;
График работы и Типы графиков;
Документ начисления заработной платы.
Разбираемся с ними.
Графики работы с Типами графиков – это элементарно. Пятидневка – Тип графика, конкретные значения часов по датам для рабочих дней – сам график. Шестидневка может еще быть, сменные графики - кому как надо.
Теперь сложнее, но не очень. Для чего необходим План видов расчета? И сколько их должно быть?
Это, можно сказать, аналог плана счетов, только для видов расчета - список видов расчета с основными характеристиками.
Что такое Вид расчета – ну, например, Основная заработная плата, Премия, Оплата за отпуск. В-общем, понятно.
Какие основные характеристики?
Базовый вид или зависит от других, зависит от времени или нет, при изменении каких видов надо делать его перерасчет, да еще несколько аналогичных принципиальных моментов. Например, какие виды расчета должны вытеснять другие, например, Прогул вытесняет Основную заработную плату.
Причем, программировать ничего не надо, надо, в основном, отметить флажками, или указать из какого объекта брать данные, то есть, вполне можно разобраться с такими настройками.
Сколько таких планов - сколько надо по смыслу и, например, по зависимости от времени или от некоторых других принципиальных характеристик.
Регистр расчета. Это что за объект?
А вот он и делает все расчеты, обычно по одному для каждого плана.
Этот регистр удивительно точно умеет вычислять без программирования, сколько надо было отработать рабочих дней и часов по указанному ему графику работы за указанный период, сколько за этот период действительно отработал сотрудник, если часть прогулял. А еще, сколько дней, например, в периоде для расчета отпуска и т.д.
Ну, без программирования, конечно, условно, совсем без этого не обойдемся – просто есть команды, которые эту информацию получают. Синтаксис-Помощник подскажет, быстро разберетесь.
Ну, а после того, как эти дни регистр командами определит, тогда, правда уже с помощью обычного программирования, результат расчета зарплаты и отпуска регистр с помощью движений в себя же запишет. Это уже не так сложно – вид расчета предполагает вполне конкретный алгоритм расчета (законодательство это четко определяет), так что, по указанной регистру зарплате сотрудника по трудовому договору, периоду расчета, да по тому, сколько тот прогулял, когда должен был работать, вполне можно не слишком сложно запрограммировать такой расчет.
Только, раз этот регистр знает, какая зарплата по трудовому договору и сколько сотрудник прогулял, кто-то ему это сказать должен был.
А сказал ему это – документ Начисление заработной платы, который необходимые для расчета зарплаты записи в регистр расчета сделал. Обычный документ, как и другие в конфигурации, ничем особенным не отличающийся, в который данные по сотрудникам расчетчик вручную ввел или этот документ из вспомогательных объектов взял, о которых мы говорили.
Вот, собственно, и все основные принципы этой подсистемы.
Про отчеты мы уже говорили. Регистр расчета – это ведь всего лишь регистр. Запросы к нему вполне можно сделать, если программист умеет работать с другими регистрами.
Когда сложно одним запросом все учесть, можно пока и несколько сделать – не оптимально, конечно, но работать будет.
А когда совсем осознаем весь этот Расчет, сделаем все очень оптимально, ведь теперь уже не так все сложно будет.
Ну, а в типовых конфигурациях теперь уже точно разберемся, там же аналогично все.
Контекст работы с видами расчетов и группами расчетов
Так же как константы и регистры, виды расчетов и группы видов расчета являются частью глобального контекста выполнения программы 1С:Предприятие. Таким образом, для использования атрибутов и методов видов расчетов и групп расчетов достаточно писать непосредственно обращение к атрибутам и методам того или иного расчета или группы с использованием ключевого слова «ВидРасчета» или «ГруппаРасчетов». Это исключает необходимость использования функции СоздатьОбъект для получения ссылки на соответствующий агрегатный объект.
Англоязычный синоним ключевого слова ВидРасчета — CalculationKind .
Англоязычный синоним ключевого слова ГруппаРасчетов — CalculationGroup .
// Узнаем, входит ли вид расчета ОплатаПоОкладу
//в группу ОблагаютсяНалогом
// Выведем наименование вида расчета
Кроме того, объекты типа «вид расчета» могут сохраняться в базе данных, т. е. реквизиты справочников, документов, журналов расчета могут иметь тип «ВидРасчета» и хранить ссылки на объекты этого типа.
В глобальном контексте программы 1С:Предприятие есть атрибут «ВидРасчета». Этот объект имеет метод ПолучитьАтрибут , который позволяет получить доступ к объекту вида расчета конкретного вида по его имени. Т. е. допустимы следующие синтаксические конструкции:
Атрибуты видов расчета и групп видов расчета
Код вида расчета или группы видов расчета.
ААнглоязычный синоним:
Атрибут типа «строка».
Представляет собой строку, соответствующую идентификатору, заданному при конфигурировании.
См. также: Наименование
Наименование
Наименование группы видов расчета или вида расчета.
Англоязычный синоним:
Атрибут типа «строка». Представляет собой строку, соответствующую комментарию, заданному при конфигурировании.
ВРО2 = Вид Расчета.АмортизацияС_НДС;
Сообщить("Это расчет " + ВР01.Наименование);
См. также: Наименование
Атрибуты видов расчета
Очередность
Очередность вида расчета.
Англоязычный синоним:
Атрибут типа «число». Представляет собой число, соответствующее очередности вида расчета, заданной при конфигурировании.
Понятие очередности используется для упорядочивания записей журнала расчетов. Это помогает упорядочить расчет записей, тем самым выполняя, например, расчет всех начислений раньше, чем расчет базирующихся на них удержаний.
Сообщить("Это расчет "+ВР01.Наименование+"с очередностью "+ВРО1.Очередность);
См. также: ПриоритетВытеснения
ПриоритетВытеснения
Приоритет вытеснения вида расчета.
Англоязычный синоним:
Атрибут типа «число». Представляет собой число, соответствующее приоритету вытеснения вида расчета, заданному при конфигурировании. Система использует приоритет вытеснения при разрешении ситуации, когда полностью или частично пересекаются периоды действия видов расчета. Например, когда метод журнала расчетов ВвестиРасчет вводит расчет в «занятый» временной интервал.
Для невытесняющих видов расчета значение этого атрибута равно нулю.
Замечание. Атрибут сохранен для поддержания совместимости с предыдущими версиями программы. Вместо использования данного атрибута рекомендуется использовать методы ВытесняетВидРасчета и ВытесняетсяВидомРасчета .
Сообщить("Это расчет "+ВР01.Наименование+" с очередностью "+ВР01.Очередность);
ЖрнЗарплата.ВыбратьЗаписиПоОбъекту(Сотрудник, Начало, Окончание>;
Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл
Если Начало > Окончание Тогда
Если Можно = 1 Тогда
ЖрнЗарплата.ВвестиРасчет(Сотрудник, ВидРасчета.ОплатаБЛ, Начало,
Если Начало < ЖрнЗарплата.НачалоТекущегоПериода() Тогда
Перерасчет(ГруппаРасчетов.ПересчДляБЛ, Сотрудник, ТекущийДокумент(),
Предупреждение("Некорректный больничный лист!
| Проверьте и исправьте даты начала и окончания.
| После этого закройте документ, повторно откройте
| и проведите его");
См. также: методы журнала расчетов ВвестиРасчет , ЗаписатьРасчет
Методы видов расчета
ПолучитьАтрибут
Получить доступ к объекту вида расчета конкретного вида по его имени.
Англоязычный синоним:
Строковое выражение, содержащее идентификатор вида расчета, как он задан в конфигураторе.
Возвращаемое значение:
Объект вид расчета.
Метод ПолучитьАтрибут позволяет получить доступ к объекту вида расчета конкретного вида по его имени, как оно задано в конфигураторе.
Этот метод применяется только к объекту глобально контекста ВидРасчета.
Определяет входимость вида расчетов в группу видов расчета.
Англоязычный синоним:
Группа расчетов, входимость в которую проверяется.
Возвращаемое значение:
Число: 1 — если вид расчета входит в группу < Группа >; 0 в противном случае.
Этот метод предназначен для определения входимости вида расчета в конкретную группу расчетов.
// В журнале расчетов зарплаты посчитаем все начисления
// для текущего сотрудника
// Начало и конец текущего периода журнала
ЖР.ВыбратьЗаписиПоОбъекту(Объект, НТП, КТП);
Пока ЖР.ПолучитьЗапись() = 1 Цикл
Всего = Всего + ЖР.Результат;
Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл
Если ЖрнЗарплата.ВидРасч = ВидРасчета.РайонныйКоэФйициент Тогда
СуммаРайонн = СуммаРайонн + ЖрнЗарплата.Результат;
Если ЖрнЗарплата.ВидРасч = ВидРасчета.СевернаяНадбавка Тогда
СуммаСеверн = СуммаСеверн + ЖрнЗарплата.Результат;
Сумма = Сумма + ЖрнЗарплата.Результат;
Если ТипРасчета = 1 Тогда
Дней = Дней + КалендОтп.Дней(ЖрнЗарплата.ДатаНачала,
Дней = Дней + ЖрнЗарплата.Дни;
См. также: СодержитВидРасчета
Выбран
Возвращает признак того, выбран конкретный вид расчета или нет.
Англоязычный синоним:
Возвращаемое значение:
Число: 1 — если конкретный вид расчета выбран; 0 в противном случае.
Этот метод предназначен для определения, не является ли «пустым» значение переменной или реквизита типа «ВидРасчета».
Вид расчета (в отличие от группы расчетов, например) в рамках описываемого встроенного языка — сохраняемый агрегатный тип данных, т. е. объекты этого типа могут сохраняться в информационной базе. Например, реквизиты справочника, документа или журнала расчетов, могут иметь тип «ВидРасчета» и, следовательно, хранить ссылки на конкретные виды расчетов. При этом часто необходимо иметь возможность определить выбрано ли конкретное значение для реквизита (например, справочника или документа) этого типа.
// Допл — объект типа "группа расчетов"
// Док — ссылка на документ, имеющий реквизит Сотрудник
Пока ЖЗ.ПолучитьЗапись() = 1 Цикл
// предполагается, что документы-основания этих
// видов расчета имеют реквизит ВР
Если ЖЗ.Документ.ВР.Выбран() = 0 Тогда
Сообщить("Не указан конкретный вид расчета в документе!");
ВытесняетВидРасчета
Определяет, вытесняет ли данный вид расчета, заданный в качестве параметра.
Англоязычный синоним:
Вид расчета, для которого проверяется, вытесняется ли он текущим видом расчета.
Возвращаемое значение:
Число: 1 — если вид расчета, метод которого вызывается, вытесняет заданный в качестве параметра < ВидРасчета >; 0 в противном случае.
Метод предназначен для определения взаимного влияния видов расчета при вводе их в журнал расчетов.
// ВР — реквизит документа типа "вид расчета",
// тогда при проведении документа
// Сотр — реквизит документа типа "элемент справочника Сотрудники".
// ДтНач, ДтОконч — реквизиты документа типа "дата"
ЖР.ВыбратьПоОбъекту(Сотр, ДтНач, ДтОконч);
Пока ЖР.ПолучитьЗапись() = 1 Цикл
Если ЖР.ВидРасч.ВытесняетВидРасчета(ВР) = 0 Тогда
// если нашли вид расчета, который мы не сможем вытеснить
Сообщить("Невозможно корректное проведение документа");
См. также: ВытесняетсяВидомРасчета
ВытесняетсяВидомРасчета
Определяет, вытесняется ли текущий вид расчета заданным видом расчета.
Англоязычный синоним:
Вид расчета, для которого проверяется, вытесняет ли он текущий вид расчета.
Возвращаемое значение:
Число: 1 — если вид расчета, метод которого вызывается, вытесняется видом расчета, заданным в качестве параметра < ВидРасчета >; 0 в противном случае.
Метод предназначен для определения взаимного влияния видов расчета при вводе их в журнал расчетов.
См. также: ВытесняетВидРасчета
Методы групп видов расчета
СодержитВидРасчета
Определяет, содержит ли группа вид расчета.
Англоязычный синоним:
Вид расчета, входимость которого проверяется.
Возвращаемое значение:
Число: 1 — если < ВидРасчета > входит в группу; 0 в противном случае.
Метод предназначен для определения того, содержит ли группа заданный вид расчета.
Количество
Количество видов расчета, включенных в группу видов расчета.
Англоязычный синоним:
Возвращаемое значение:
Целое положительное число — количество видов расчета, входящих в группу.
Метод группы видов расчета, который позволяет определить количество видов расчета, включенных в данную группу. Обычно применяется в цикле с методом ПолучитьВидРасчета .
// модуль выполняется в контексте журнала расчетов
// текущий сотрудник Сотр = Объект;
// Для всех видов удержаний проведем расчет в
// журнале расчетов зарплаты
Пока Счетчик <= ВсеУд.Количество() Цикл
Счетчик = Счетчик + 1;
См. также: ПолучитьВидРасчета
ПолучитьРасчет
Получает ссылку на вид расчета.
Англоязычный синоним:
Номер вида расчета в списке видов расчета данной группы.
Возвращаемое значение:
Агрегатный объект типа «Вид Расчета».
Метод позволяет получить ссылку на вид расчета, входящий в данную группу под определенным номером. Обычно применяется в цикле с методом Количество .
Важнейшим свойством системы 1С:Предприятие является возможность определения произвольных алгоритмов расчета. Конкретные алгоритмы расчетов зависят от области применения программы. Для расчета заработной платы, например, это будут начисления и удержания; для задачи учета акций — это алгоритмы расчета дивидендов по акциям разного типа и т.д.
Для алгоритмизации расчетов в системе 1С:Прсднриятие служит понятие видов расчетов.
Виды расчетов в системе 1С:Предприятие
Виды расчетов в системе 1С:Предприятие — это специальный тип объектов метаданных, основное свойство которых — наличие алгоритма обработки данных. Результатом действия этого алгоритма является заполнение реквизита «Результат» журнала расчетов. Понятие видов расчета неразрывно связано с понятием журналов расчетов, так как журнал расчетов — единственное место, где «срабатывают» алгоритмы видов расчетов. Один из предопределенных реквизитов журнала расчетов является реквизитом типа «Вид расчета» и предназначен для хранения ссылки на конкретный вид расчета. С использованием алгоритма именно этого вида расчета будет выполняться вычисление результата расчета при выполнении системной операции «Рассчитать».
Группы расчетов. Понятие группы расчетов имеет в системе 1С:Предприятие вспомогательное значение. Единственное предназначение групп расчетов — упорядочивание и классификация видов расчета для тех областей применения программы 1С:Предприятие, где количество различных алгоритмов обработки данных и, следовательно, видов расчетов значительно. Тесная взаимосвязь между этими двумя понятиями объясняет то, что они рассматриваются в одной главе данного Руководства.
Управление списками видов расчетов и групп расчетов
Вся работа с объектами метаданных типа «Вид расчета» и «Группа расчетов» ведется в окне «Конфигурация — Метаданные». Для видов расчетов отведена ветвь дерева метаданных, которая начинается у фразы «Виды расчетов», а для групп расчетов — ветвь «Группы расчетов». Приемы создания, редактирования свойств и удаления видов расчетов и групп расчетов совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные», стр. Ошибка! Закладка не определена..
Свойства вида расчета
В этом параграфе будут описаны уникальные свойства видов расчетов, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..
Свойства вида расчета редактируются в окне редактирования «Вид расчета».
Приоритет. Особого пояснения требует свойство «Приоритет», которое является одной из важных характеристик вида расчета.
Дело в том, что для многих предметных областей применения программы 1С:Предприятие очень важным бывает очередность, в которой выполняются те или иные расчеты. Например, в случае расчета заработной платы, как минимум, важно сначала рассчитать начисления, а затем удержания.
Для организации последовательности выполнения расчетов служит понятие их приоритета. Этот параметр может принимать значение от 0 до 999 и действует следующим образом: чем меньше приоритет расчета, тем раньше он выполняется. Это отражается в последовательности расположения записей журнала расчетов — записи с видами расчетов меньшего приоритета располагаются перед записями с видами расчетов большего приоритета.
Вытесняющие расчеты. Представление о вытесняющих расчетах в системе 1С:Предприятие связано со следующими практическими предпосылками.
В некоторых случаях требуется автоматизировать предметные области, в которых расчет каких-либо величин может вестись взаимно исключающими способами. Возвращаясь вновь к задаче расчета заработной платы, рассмотрим пример расчета следующих начислений: оплата рабочих дней по окладу, оплата дней болезни по больничному листу и оплата дней отпуска.
Очевидно, что в этом случае выполняется условие взаимоисключения перечисленных видов расчета — нельзя, например, одновременно и болеть и работать, т. е. получать и оклад, и деньги по больничному листу. Такие расчеты взаимно исключают друг друга во времени и система должна гарантировать, что ввод одного из них приведет к исключению другого.
Заметим, что взаимное исключение видов расчета ограничивается одним объектом расчета — болезнь одного сотрудника не исключает оплату по окладу другого сотрудника.
Для пояснения приведем примеры вытесняющих и не вытесняющих расчетов в рамках все того же расчета заработной платы. Вытесняющими расчетами, как правило, являются: оплата по основному виду деятельности, оплата больничных, оплата отпуска, оплата по среднему заработку вынужденного отсутствия на работе и пр. Не вытесняющими расчетами являются: удержание налога, выплаты штрафов, оплата но исполнительному листу и другие удержания, а также разного рода доплаты.
Механизм управления взаимоисключающими расчетами настраивается в окне «Настройка вытеснения», открывающегося при нажатии соответствующей кнопки в окне «Вид расчета».
В этом окне все виды расчета, включая определяемый, помещены в два списка, «Вытесняет виды расчета» и «Вытесняется видами расчета». Назначение их очевидно из вышесказанного.
Необходимо только отметить, что вполне возможна ситуация, когда некоторому виду расчета флажок устанавливается в обоих списках (взаимовытесняющие виды расчета). Например, форма оплаты труда работника может быть на какой-то период заменена с оплаты по окладу на оплату по тарифу и последний вид расчета должен вытеснить первый; столь же обычно и обратное.
При установке флажка самому определяемому виду расчета в одном из списков флажок в другом списке устанавливается автоматически (самовытесняющий вид расчета). Например, работника на время перевели на другой оклад.
Описанный механизм полностью определяется при редактировании свойств вида расчета, хотя, собственно, этот механизм работает при вводе новых записей журналов расчета. Это еще раз иллюстрирует тесную взаимосвязь понятия журнала расчетов и вида расчета.
Управление входимостью расчетов в группы
Механизм группировки видов расчета предназначен для выделения видов расчета по тем или иным признакам, что облегчает дальнейшую работу с ними. Это позволяет, например, определив группу расчетов «Начисления» и, определив входимость в нес конкретных видов расчета, оперировать затем понятием этой группы, а не перебирать все входящие в нее расчеты отдельно.
Использование окна редактирования «Вид расчета». Для редактирования входимости расчета в те или иные группы используются два списка в окне редактирования вида расчета. В левом списке отражены группы, в которые редактируемый вид расчета включен, в правом списке — группы, в которые вид расчета не включен.
Для переноса группы или нескольких групп расчетов из правого списка в левый, т. е. для включения редактируемого вида расчета в требуемую группу или набор групп, выделите требуемые группы в правом окне и нажмите кнопку .
Для переноса группы или нескольких групп расчетов из левого списка в правый, т. е. для исключения редактируемого вида расчета из некоторой группы или набора групп, выделите требуемые группы в левом окне и нажмите кнопку .
Использование окна редактирования «Группа расчетов». Объединением видов расчетов в группы, о котором говорилось выше можно управлять не только при редактировании свойств вида расчета, но и при редактировании группы расчетов. Это позволяет, например, создав новую группу расчетов, сразу определить набор видов расчета, входящих в нес, а не указывать входимость расчетов в новую группу путем редактирования каждого расчета.
Для редактирования входимости расчетов в данную группу используются два списка в окне редактирования «Группа расчетов». В левом списке отражены виды расчета, которые включены в данную группу, в правом списке — виды расчета, которые не включены в данную группу.
Для переноса вида расчета или нескольких видов расчетов из правого списка в левый, т. е. для включения их в редактируемую группу, выделите требуемые виды расчетов в правом окне и затем нажмите кнопку .
Для переноса вида расчета или нескольких видов расчетов из левого списка в правый, т. е. для исключения их из редактируемой группы, выделите требуемые расчеты в левом окне и затем нажмите кнопку .
Модуль расчета
Модуль расчета, как правило, содержит предопределенную процедуру ПровестиРасчет. Основная задача процедуры расчета — описать, каким образом при выполнении операции расчета журнала расчетов должно вычисляться значение «Результат». Кроме того, вид расчета может влиять на другие данные системы, например, изменять содержимое справочников.
Для редактирования модуля расчета используется текстовый редактор, который можно вызвать на экран одним из следующих способов:
· в окне редактирования вида расчета нажмите кнопку «Модуль расчета»;
· выберите наименование вида расчета в окне «Конфигурация — Метаданные», нажатием правой кнопки мыши вызовите на экран контекстное меню и в этом меню выберите пункт «Модуль расчета».
Подробно порядок работы с текстовым редактором описан в главе «Редактор текстов».
Правила перерасчета
«Правила перерасчета» являются вспомогательными объектами метаданных, предназначенными для автоматического отслеживания актуальности результатов проведенных расчетов при вводе новых записей журнала расчетов, удалении существующих или ручном исправлении результата расчета.
При создании правила перерасчета в Конфигураторе определяются виды расчетов, при редактировании которых правило перерасчета «срабатывает», и виды расчетов, которые должны быть перерассчитаны при срабатывании данного правила.
Список видов расчета, на основании которых срабатывает конкретное правило перерасчета, условно называется ведущие виды расчета. Список видов расчета, которые должны быть перерассчитаны при срабатывании конкретного правила, условно называется зависимые виды расчета.
Например, для организации правильного перерасчета доплат к основным начислениям следует в качестве ведущих видов расчета указать те, на основании которых считаются доплаты (оклад, тариф, сдельная оплата), а в качестве зависимых видов расчета следует указать собственно перерассчитываемые доплаты.
После ввода в систему такого правила перерасчетов журнал расчетов будет вести себя описанным ниже образом. При этом сначала рассмотрим случай для взаимосвязи видов расчета в одном расчетном периоде.
Итак, если в журнале расчетов появится новая (в результате проведения документа), исчезнет (при отмене проведения) или будет исправлена существующая запись с одним из «ведущих» видов расчета (в нашем примере — оклад, тариф, сдельная оплата), то будет снят признак «Рассчитана» со всех записей, соответствующих доплатам, если найдутся таковые, с тем же периодом действия, что и введенная, удаленная или исправленная запись.
Если при этом вводится запись с периодом действия не в текущем расчетном периоде, а в одном из прошлых (например, расчет оклада задним числом за прошлый месяц), то система введет записи-перерасчеты для всех доплат соответствующего прошлого периода.
Правило перерасчета может быть трех типов: перерасчет записей текущего периода, перерасчет записей того же периода, или перерасчет записей будущих периодов.
В первом случае перерассчитываются заданные виды расчетов с только текущего периода в независимости от того, какой период действия имеют изменяемые записи журнала расчетов.
Во втором случае перерассчитываются заданные виды расчетов с тем же периодом действия, что и новая введенная запись.
В третьем — перерассчитываются записи одного или нескольких будущих расчетных периодов.
Например, если построить правило перерасчета больничных листов, то в качестве ведущих расчетов будут назначены виды начислений, базовые для больничного листа, в качестве зависимых — все виды больничного листа, а тип правила перерасчета будет определен как «перерасчет будущих периодов», причем количество периодов — это число месяцев используемых при исчислении среднего заработка с целью расчета больничного листа.
Другой пример — правило перерасчета подоходного налога. При этом тип перерасчета — «только текущий период», а ведущие виды расчета — все облагаемые налогом начисления.
Управление списком правил перерасчета
Вся работа с объектами метаданных типа «Правила перерасчета» ведется в окне «Конфигурация — Метаданные». Для правил перерасчета отведена отдельная ветвь дерева метаданных, которая расположена «внутри» ветви «Виды расчетов» и начинается у ключевого слова «Правила перерасчета». Приемы создания, редактирования свойств и удаления правил перерасчета совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. Ошибка! Закладка не определена..
Свойства правил перерасчета
В этом параграфе будут описаны специфические свойства правил перерасчета, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..
Свойства правил перерасчета редактируются в окне редактирования «Правило перерасчета».
При вводе видов расчета. В этом списке необходимо пометить ведущие виды расчетов (см. выше).
Необходимо пересчитать. В этом списке необходимо отметить зависимые виды расчета (см. выше).
Период в котором будут проводится перерасчеты, как уже упоминалось выше, выбирается из следующих возможных значений:
. только в текущем периоде журнала расчетов
ввод, редактирование или удаление строк журнала расчетов, соответствующих одному из ведущих видов расчета, приведет к перерасчету строк журнала с зависимыми видами расчета только в текущем периоде. Это значит, что какой бы период действия не имела изменяемая строка журнала, будет снят признак «рассчитанности» с соответствующих записей текущего периода журнала расчетов;
. в том же периоде журнала расчетов
ввод, редактирование или удаление строк журнала расчетов, соответствующих одному из ведущих видов расчета, приведет к перерасчету строк журнала с зависимыми видами расчета, относящихся к тому же периоду действия, что и измененная запись. Это значит, что какой бы период действия не имела изменяемая строка журнала, будет введена запись-перерасчет (для прошлых периодов) или снят признак «рассчитанности» (для текущего периода) для соответствующих записей журнала, имеющих тот же период действия;
. в следующих n периодах журнала расчетов
ввод, редактирование или удаление строк журнала расчетов, соответствующих одному из ведущих видов расчета, приведет к перерасчету строк журнала с зависимыми видами расчета, относящихся к будущим (относительно измененной записи) периодам действия, что и измененная запись. Это значит, что при изменении записи журнала расчетов, действующей в одном из прошлых периодов (т. е. «задним числом»), будут введены записи-перерасчеты (для прошлых периодов) или снят признак «рассчитанности» (для текущего периода) для соответствующих записей журнала, имеющих один из последующих n периодов действия.
Онлайн обучение 1С доступно и понятно для каждого пользователя
ЧИТАТЬ СТАТЬЮ
9 отличий Групп финансового учета от Номенклатурных групп в 1С Комплексная и ERP 2
ЧИТАТЬ СТАТЬЮ
ЧИТАТЬ И СМОТРЕТЬ ВИДЕО
Как анализировать расчеты с покупателями в 1С Комплексная автоматизация 2 и ERP?
ЧИТАТЬ СТАТЬЮ
Как учесть расходы на доставку от переработчика в 1С Комплексная автоматизация 2?
ЧИТАТЬ И СМОТРЕТЬ ВИДЕО
1С Комплексная автоматизация 2 и ERP: как удалить ненужные варианты отчетов?
ЧИТАТЬ СТАТЬЮ
Как правильно перевыставить расходы в 1С Комплексная автоматизация 2 и ERP 2?
ЧИТАТЬ СТАТЬЮ
Где найти ведомость по заказам клиентов в 1С Комплексная автоматизация 2 и ERP?
ЧИТАТЬ СТАТЬЮ
ЧИТАТЬ И СМОТРЕТЬ ВИДЕО
ЧИТАТЬ СТАТЬЮ
Подпишитесь на канал YouTube:
Перейти к разделам:
Как анализировать расчеты с покупателями по документам в 1С Комплексная автоматизация 2 или ERP?ЧЕРНАЯ ПЯТНИЦА 23-30 НОЯБРЯ!
Как анализировать расчеты с покупателями по документам в 1С Комплексная автоматизация 2 или ERP?
Конфигурации: 1С КА2, 1C ERP
возможно ли сформировать оборотно-сальдовую ведомость по счету 62 в 1С ЕРП в разрезе документов?
В этом коротком вопросе сформулированы ожидания не только бухгалтеров, но и менеджеров, директоров компаний. Оборотка – это знакомо и удобно, но в ней действительно не хватает аналитики.
Смотрите в видео или читайте ниже в статье:
В оборотно-сальдовой ведомости по счетам учета расчетов нет группировки по документам расчетов.
1С ERP или Комплексная автоматизация 2: оборотно-сальдовая ведомость по счету 62
Но решение есть. В программе есть отчет, который позволит сформировать отчет по покупателям (или по поставщикам) в разрезе документов.
Это отчет «Сводная ведомость расчетов». Этот отчет примечателен тем, что в нем есть группировка по расчетному документу. В остальных отчетах мы можем выбрать только объект расчетов или регистратор. Объектом расчетов может оказаться и заказ клиента, и договор, в зависимости от настроек расчетов в договоре с контрагентом. А отчет по регистраторам не дает нужной группировки, и, по сути, повторяет карточку счета.
Для того, чтобы найти этот отчет, идем в меню Продажи - Отчеты по продажам, и отжимаем кнопку Настройка. В списке отчетов находим отчет «Сводная ведомость расчетов» и устанавливаем флаг напротив него, как на картинке.
1С ERP или Комплексная автоматизация 2: настройка списка отчетов по продажам
1С ERP или Комплексная автоматизация 2: сводная ведомость расчетов
По умолчанию, в него попадают все расчеты.
Но этот отчет можно дополнительно настроить. В нашем случае мы укажем тип расчетов. Это позволит выбрать только покупателей или поставщиков. Тогда можно будет сопоставить данные отчета счету учета 62 или 60.
1С ERP или Комплексная автоматизация 2: настройка сводной ведомости расчетов
Перейдем на закладку «Структура», включим расширенный режим настройки и добавим группировку по расчетному документу.
1С ERP или Комплексная автоматизация 2: настройка сводной ведомости расчетов
После этого отчет даст нам нужную расшифровку по расчетам с покупателями.
1С ERP или Комплексная автоматизация 2: сводная ведомость расчетов по документам
В общем случае, она сойдется со счетом 62.
Может быть, что некоторые контрагенты у вас указаны как покупатели, но учет расчетов настроен на другой счет. Например, счет 76.
Тогда можно ввести дополнительный признак, по которому вы поделите контрагентов, а можно ограничить отбор на уровне договоров или групп финансового учета.
Настройки большинства свойств планов видов расчета (ПВР) и видов расчета (ВР) в 1С:Предприятие 8.2 не представляют каких-либо сложностей. Книги М.Г.Радченко [9] вполне достаточно, чтобы в них разобраться. А вот ведущие виды расчета - это немного "мутная" тема. Информация о правилах заполнения списка ведущих ВР распределена по многим источникам, которые иногда противоречат друг другу. Если собрать все эти сведения вместе, становится понятным алгоритм, по которому для данного ВР нужно указывать ведущие ВР.
2. Варианты зависимости между видами расчетов
"Ведущие" - одна из закладок в окне настроек видов ВР. Она есть у каждого вида расчета, независимо от значений свойств ПВР. В качестве ведущих можно указывать ВР, принадлежащие любому ПВР конфигурации.
Наряду с ведущими, для ВР могут быть указаны базовые и вытесняющие ВР. Базовые - это ВР, обороты которых за определенный период являются исходными данными для расчета данного ВР. Например, ВР "Премия" рассчитывается на основании ВР "Оклад", то есть "Оклад" является базовым ВР для "Премии".
Вытесняющие - это ВР, которые влияют на фактический период действия и которые могут вытеснять данный ВР по периоду действия. Например, сотрудник за один и тот же день не может получать оклад и выплаты по больничному листу. ВР "Больничный" вытесняет ВР "Оклад".
Поскольку ВР связаны между собой, при изменении одних ВР может потребоваться перерасчет других ВР.
Как, правило, базовые и вытесняющие ВР однозначно определяются постановкой задачи. Указание списка ведущих ВР может вызвать некоторое затруднение.
3. Информация о ведущих видах расчета из различных источников
Документация 1С, как всегда, не балует нас подробной информацией и детальными инструкциями. В [1] о ведущих ВР сказано лишь, что "на закладке "Ведущие" указываются те виды расчета, которые определяют работу механизма перерасчетов соответствующего регистра расчета (т.е. того, которому назначен данный план видов расчета)".
В справке Конфигуратора приведено описание предопределенной табличной части ПВР ВедущиеВидыРасчета, но нет правил заполнения ведущих ВР.
В [3] содержится более подробная информация. Там указано, что ведущие виды расчета используются для перерасчета неактуальных записей в регистрах расчета. Необходимость указания ведущих видов расчета продемонстрирована на примере. Пусть ВР "А" является базовым для ВР "Б", а тот в свою очередь является базовым для ВР "В". Если механизм перерасчетов будет опираться только на базовые ВР, то при изменениях по ВР "А" выяснится необходимость перерасчета только для ВР "Б". И только после внесения изменений (перерасчета) по ВР "Б" выяснится необходимость перерасчета для "В". Правильное использование ведущих ВР позволяет избежать подобных многоэтапных перерасчетов. В данном примере для ВР "В" нужно указать ведущие ВР "А" и "В".
В [4] дано определение, которое совсем не способствуют пониманию сути вопроса: "Ведущий вид расчета - вид расчета, результат которого косвенно влияет на данный вид расчета". Получается, что ВР, который прямо влияет на данный вид расчета, не должен быть включен в список ведущих ВР. Это не правильно. И дальше: "Если результат ведущего вида расчета изменился, данный вид расчета надо рассчитать заново." Нас интересует только результат или любая характеристика ВР, которая может повлиять на данный ВР?
В [5] указано следующее: "В табличной части 'Ведущие виды расчета' указываются виды расчета, при вводе (изменении) которых результат текущего вида расчета должен быть пересчитан (например 'Оклад по дням' является ведущим видом расчета для видов расчета 'Доплата за вредность' и 'Премия процентом')".
В [9] дано такое определение: "Ведущие - изменение их результатов должно приводить к необходимости пересчета этого вида расчета". И далее: "Здравый смысл подсказывает, что все базовые виды расчета должны быть включены и в категорию ведущих. Кроме того, ведущие виды расчета могут содержать и некоторые другие виды, косвенно влияющие на данный вид расчета."
Если "Невыход" вытесняет "Оклад" по периоду действия, а "Премия" зависит по базовому периоду от "Оклада", то в качестве ведущих для "Премии" нужно указывать следующие ВР: "Оклад", "Невыход" [9]. То есть, при формировании списка ведущих ВР нужно учитывать транзитивные (или каскадные) зависимости.
Этот пример также подробно рассмотрен в [8].
Определение из книги [5] почти ничего не добавляет к материалам предыдущих источников: "Ведущими называют виды расчетов, при вводе или изменении которых необходимо перерассчитать результат уже существующих расчетов". Но в этой книге приведен хороший пример. "Премия" зависит по базе от "Доплаты за разъезды", которая в свою очередь зависит по базе от "Командировки". Ведущими ВР для "Премии" являются "Доплата за разъезды" и "Командировка". Это транзитивная (или каскадная) зависимость по базе.
В [6] тема ведущих расчетов не рассмотрена подробно, дается отсылка к [3].
Наиболее полный список причин, по которым ВР надо включать в список ведущих ВР, приведен в [7]. Предназначение ведущих ВР - "отразить влияние видов расчета друг на друга. Влияние может возникать:
- при настройке базы,
- при определении вытеснения,
- от каскадной зависимости видов расчета,
- от специфики решаемой задачи."
3. Выводы
Таким образом, в списке ведущих ВР указываются все ВР, при вводе, удалении или изменении которых нужно выполнять пересчет данного ВР, а именно:
- базовые ВР для данного ВР,
- вся цепочка ВР, от которых базовые ВР зависят прямо или транзитивно (каскадно), это может быть зависимость по базе или вытесняющая зависимость:
- ВР, прямо вытесняющие базовые ВР,
- ВР, транзитивно (каскадно) вытесняющие базовые ВР,
- ВР, которые являются базовыми для базовых или вытесняющих ВР.
В большинстве случаев работает упрощенное правило, сформулированное в [9] в виде примера: ведущие - это базовые ВР и ВР, вытесняющие базовые.
Источники:
1. 1С:Предприятие 8.2. Руководство разработчика. - М.: Фирма "1С".
2. Габец А.П., Козырев Д.В., Кухлевский Д.С., Хрусталева Е.Ю. Реализация прикладных задач в системе 1С:Предприятие 8.2.
3. ИТС. Документ "Ведущие виды расчета".
4. ИТС "Глоссарий разработчика".
5. Материалы курса "Конфигурирование в системе 1С:Предприятие 8. Решение расчетных задач". - 1С-Учебный центр №3.
6. Материалы курса "Конфигурирование платформы 1С:Предприятие 8.2". - 1С-Учебный центр №1.
9. Радченко М.Г., Хрусталева Е.Ю. 1С:Предприятие 8.2. Практическое пособие разработчика.
Читайте также: