Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
27 ноя 2024, 11:27

Как лучше выделить количество лет из месяцев в стаже

Автор Kras, 29 сен 2011, 12:39

0 Пользователей и 1 гость просматривают эту тему.

Kras

Может кто сталкивался уже с такой задачей, в общем в у ФизЛица стаж вытаскивается через запрос как
ВЫБРАТЬ
   |   ФизическиеЛицаСтажи.РазмерДней,
   |   ФизическиеЛицаСтажи.РазмерМесяцев,
   |   ФизическиеЛицаСтажи.Ссылка КАК ФизЛицо,
   |   ФизическиеЛицаСтажи.ВидСтажа
   |ИЗ
   |   Справочник.ФизическиеЛица.Стажи КАК ФизическиеЛицаСтажи
   |ГДЕ
   |   ФизическиеЛицаСтажи.ВидСтажа = &ВидСтажа
   надо выделить кол-во лет и месяцев.
Была такая идея
ВЫБРАТЬ
   |   ФизическиеЛицаСтажи.РазмерДней,
   |   ВЫРАЗИТЬ(ФизическиеЛицаСтажи.РазмерМесяцев/12 КАК ЧИСЛО(3,0) КАК Лет,
   |   ФизическиеЛицаСтажи.Ссылка КАК ФизЛицо,
   |   ФизическиеЛицаСтажи.ВидСтажа
   |ИЗ
   |   Справочник.ФизическиеЛица.Стажи КАК ФизическиеЛицаСтажи
   |ГДЕ
   |   ФизическиеЛицаСтажи.ВидСтажа = &ВидСтажа

правда тогда Лет округляется в большую сторону,а хотелось бы выделить целое
Мес должно быть =РазмерМесяцев-Лет*12
как это можно сделать?

Андрей Федотов

А куда данные из запроса выводятся?
Можно добавить точность в Запрос (ЧИСЛО(3,2)). А потом выделите только целую часть

Kras


Андрей Федотов

Ну сделайте тогда в запросе как я написал.
А на ячейку макета поставьте ограничение: число = 3 Точность = 0.
Должно работать верно.

Или посмотрите синтаксис-помощник: не помню название функции, выделяющей целую часть.

Kras

написала условие в запросе
ВЫБОР
КОГДА (ВЫРАЗИТЬ(ФизическиеЛицаСтажи.РазмерМесяцев / 12 КАК ЧИСЛО(15, 0))) - ФизическиеЛицаСтажи.РазмерМесяцев > 0
ТОГДА ВЫРАЗИТЬ(ФизическиеЛицаСтажи.РазмерМесяцев / 12 - 0.5 КАК ЧИСЛО(15, 0))
ИНАЧЕ ВЫРАЗИТЬ(ФизическиеЛицаСтажи.РазмерМесяцев / 12 КАК ЧИСЛО(15, 0))
КОНЕЦ КАК Лет
на одном сотруднике срабатывает нормально,у другого ситуация след.У него месяцев 33 и в результате выдает,что лет у него-3,месяцев-(-3!!!)
что делать? :wacko:

Kras

Сделала след.образом,сработало!
ВЫБОР
КОГДА (ВЫРАЗИТЬ(ФизическиеЛицаСтажи.РазмерМесяцев / 12 КАК ЧИСЛО(15, 0))) - ФизическиеЛицаСтажи.РазмерМесяцев > 0.3
ТОГДА ВЫРАЗИТЬ(ФизическиеЛицаСтажи.РазмерМесяцев / 12 - 0.5 КАК ЧИСЛО(15, 0))
ИНАЧЕ ВЫРАЗИТЬ(ФизическиеЛицаСтажи.РазмерМесяцев / 12- 0.6 КАК ЧИСЛО(15, 0))
КОНЕЦ КАК Лет

Андрей Федотов

Работает на всех сотрудниках? Честно говоря числа 0,3, 0,5 и 0,6 заставляют в этом усомниться.
Или в этих числах (особенно 0,3) есть какая-то логика?

Kras

 Начала проверять,нет не на всех,странная ситуация,срабатывает через раз,очень неудобно без выделения целого.Может есть другой способ?:xfbnsdfb:

Kras

Переделала,все проверила
ВЫБОР
КОГДА ФизическиеЛицаСтажи.РазмерМесяцев < 12
   ТОГДА 0
ИНАЧЕ ВЫБОР
КОГДА (ВЫРАЗИТЬ(ФизическиеЛицаСтажи.РазмерМесяцев / 12 КАК ЧИСЛО(3, 0))) - ФизическиеЛицаСтажи.РазмерМесяцев / 12 > 0
ТОГДА ВЫРАЗИТЬ(ФизическиеЛицаСтажи.РазмерМесяцев / 12 - 0.5 КАК ЧИСЛО(3, 0))
ИНАЧЕ ВЫРАЗИТЬ(ФизическиеЛицаСтажи.РазмерМесяцев / 12 КАК ЧИСЛО(3, 0))
КОНЕЦ
КОНЕЦ КАК Лет,
и
Общий.Месяцев - Общий.Лет * 12 КАК ОбщийСтажМесяцев
выводила все промежуточно,чтобы проверить,как отрабатывает

primus

в каком варианте надо вывести результат?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск