Ведущие виды расчета

13.03.13

Разработка - Механизмы платформы 1С

В этой заметке собрана информация о ведущих ВР из книг, документов ИТС, учебных курсов и форумов в интернете. На основании этой информации сделаны выводы относительно составления списков ведущих ВР для некоторого заданного ВР.

Ведущие виды расчета

 

1. Введение

            Настройки большинства свойств планов видов расчета (ПВР) и видов расчета (ВР) в 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.

7. Материалы курса "Профессиональное программирование в 1С:Предприятии 8.x: Базовый курс." - www.Spec8.ru.

8. Материалы форума devtrainingforum.v8.1c.ru.

9. Радченко М.Г., Хрусталева Е.Ю. 1С:Предприятие 8.2. Практическое пособие разработчика.

 

См. также

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4481    dsdred    53    

71

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    5282    YA_418728146    25    

63

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6401    dsdred    36    

111

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    18466    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12082    human_new    27    

74

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    8804    YA_418728146    6    

141

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    6273    sebekerga    54    

94

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    15974    SeiOkami    31    

103
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4709 14.03.13 12:06 Сейчас в теме
Насколько знаю, записи перерасчёта автоматически создаются не только при указанности ведущих, но и при указанности вытесняющих. Иногда этого может быть достаточно. Хотя, как показали мои эксперименты, кашу маслом не испортишь.

Спасибо, полезный сравнительный анализ источников.
2. ishch 158 15.03.13 12:04 Сейчас в теме
Yashazz, рад что моя заметка была вам полезна.
В отличие от программ американских и европейских производителей, по 1С нет полноценной документации. Это порождает широкое разнообразие мнений в различных источниках. Информация в некоторых источниках неполна, в других - откровенно ошибочна. Чтобы получить правильный и полный ответ, приходится копаться во многих местах или ставить эксперименты над 1С.
3. yandextesting 148 15.03.13 23:02 Сейчас в теме
(0) думаю, можно при желании написать обработку, которая выводила бы пользователю рекомендуемый перечень ведущих видов расчета для выбранного вида расчета на основании всех связей (замыканий) с другими видами расчетов. Это должно быть попроще разузлования в УПП.
4. margo_m09 28.03.13 07:09 Сейчас в теме
хорошая идея, сразу понравилась обработка, даже если и есть какие недочеты пока при использовании, не заметили))))
5. kng67 23.04.13 10:56 Сейчас в теме
Спасибо автору за сравнительный анализ!
Да Ведущие виды расчета, сложно назвать по другому кроме как "мутной темой". Сама с этим ВР по началу "не дружила".
6. serge_focus 4 01.08.13 13:06 Сейчас в теме
Автору большущее СПАСИБО, что "разжевал" эту мутную и неудобоваримую тему.
Помогло разобраться больше , чем служба поддержки 1С и ИТС...
Огромный ПЛЮС.
7. ishch 158 15.08.13 21:32 Сейчас в теме
serge_focus, спасибо за ваш вдохновляющий отзыв.
Оставьте свое сообщение