Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 18:12
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Вывод даты изменения процента за выслугу лет. Нужна помощь  (Прочитано 3242 раз)

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

Оффлайн Техножрец

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-12-05
  • Сайт: 
  • Профессия: Ученик 1С
Такая проблема. Две недели назад начал изучать 1С и уже понадобилось вывести дату через пользовательское поле выражения. О сути поля. У сотрудника есть стаж и в зависимости от того сколько он проработал на предприятии увеличивается процент за выслугу лет. То есть:
Стаж меньше года - 0%
Стаж от года до пяти - 10%
От пяти до десяти - 15%
И т.д.
И нужно вывести сколько лет, месяцев, дней осталось до повышения этого процента.
Пример
Иванов. Стаж 6 лет 4 месяца 12 дней. Наше поле: 4 года, 8 месяцев, 18 дней.
Очень надеюсь на вашу помощь.


Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
Готов помочь новичку! Что не получается?

Оффлайн Sinsinmin

  • ***
  • Сообщений: 116
  • РЕПУТАЦИЯ: 9
  • КПД: 8%
  • Регистрация: 2010-08-11
  • Сайт: 
Это задача явно не для новичка))


Оффлайн Техножрец

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-12-05
  • Сайт: 
  • Профессия: Ученик 1С
Первый вопрос. Как реализовать оператор if(я основываюсь на delpi/С++) и соответственно не работает, а в книге это не описано.Он есть, а примера нет.
Второй вопрос. Как из текущей даты достать только год или месяц?
Добавлено: 05 Дек 2014, 14:54

Первый вопрос. Как реализовать оператор if(я основываюсь на delpi/С++) и соответственно не работает, а в книге это не описано.Он есть, а примера нет.
Второй вопрос. Как из текущей даты достать только год или месяц?
Так. С первым разобрался.
ВЫБОР
    КОГДА ЛЕТ < 1
    ТОГДА ВЫЧИСЛИТЬ(1-ЛЕТ)
КОНЕЦ

Последний раз редактировалось: Техножрец; 05 Дек 2014, 14:54. Причина: Объединение сообщений

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
1. Дельфи
If ... Then ... Else ... End;
1C
Если ... Тогда ... Иначе ... КонецЕсли;

2. Месяц(ТекущаяДата())
Год(ТекущаяДата())
или
Формат(ТекущаяДата(), "гггг")
Формат(ТекущаяДата(), "ММ")
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
1. Данная конструкция для запросов, в коде так:
Если а = 1 Тогда
    б = а * 2;
ИначеЕсли а = 2 Тогда
    б = а * 3;
Иначе
    б = 0;
КонецЕсли;

или

б = ?(a = 1, а * 2, 0); // Только первое и последнее условие из блока выше.


2. В Конфигураторе: Ctrl+F1 -> Содержание -> Общее описание встроенного языка -> Встроенные функции -> Функции работы со значениями типа Дата -> Год (Месяц)

Оффлайн Sinsinmin

  • ***
  • Сообщений: 116
  • РЕПУТАЦИЯ: 9
  • КПД: 8%
  • Регистрация: 2010-08-11
  • Сайт: 
Эхх кому то на работе выслугу лет дают...может и мне дадут?:D
Добавлено: 06 Дек 2014, 11:51

Интересно было бы узнать как решается такая задача, с учётом того что дни вычислить точно...сложно или вообще не возможно.
Скорее всего допускается какая то погрешность...которую нужно узнать у тех кто давал задачу.
Ведь сотрудник мог иметь стаж 3 года 4 месяца 12 дней уволиться, потом опять быть принятым на работу и как вычислить сколько дней там ему осталось до полных лет непонятно.
Вот к примеру если сотрудник пришёл 12 марта на работу, то понятно что 12 марта следующего года стаж его будет равен 1 год 0 месяцев и 0 дней...и от этой даты можно плясать...к примеру 365(366) - Сколько дней он проработал в этом году. А дальше добавить года до следующего стажа.
Но вот если сотрудник пришёл и у него уже был стаж, то как узнать сколько дней ему до круглой даты работать?)Возможно ли такое?)

Сколько дней он проработал в этом году = ДеньГода(ТекущаяДата()) - ДеньГода('20140312'). Выслуга лет считается в конце года...поэтому так. Для даты после 1 января. Нужно было бы написать... КонецГода - 12 марта + ТекущаяДата )


Последний раз редактировалось: Sinsinmin; 06 Дек 2014, 11:51. Причина: Объединение сообщений

Оффлайн Техножрец

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-12-05
  • Сайт: 
  • Профессия: Ученик 1С
1. Данная конструкция для запросов, в коде так:
Если а = 1 Тогда
    б = а * 2;
ИначеЕсли а = 2 Тогда
    б = а * 3;
Иначе
    б = 0;
КонецЕсли;

или

б = ?(a = 1, а * 2, 0); // Только первое и последнее условие из блока выше.


2. В Конфигураторе: Ctrl+F1 -> Содержание -> Общее описание встроенного языка -> Встроенные функции -> Функции работы со значениями типа Дата -> Год (Месяц)
1. Дельфи
If ... Then ... Else ... End;
1C
Если ... Тогда ... Иначе ... КонецЕсли;

2. Месяц(ТекущаяДата())
Год(ТекущаяДата())
или
Формат(ТекущаяДата(), "гггг")
Формат(ТекущаяДата(), "ММ")
Спасибо вам за помощь.
Добавлено: 11 Дек 2014, 09:39

Хм. Теперь появились некоторые другие проблемы. Вот кстати к чему я пришёл:
Формат(Вычислить(год(ТекущаяДата())-Лет),"гггг")
Таак. Как вывести комментарий к полю, чтобы было не просто число а например:
2 года.
И возможно ли вывести в одном поле два числа, прописав вышеуказанный код дважды но заменив во втором год на месяц?
Добавлено: 11 Дек 2014, 09:52

Таак. Как вывести комментарий к полю, чтобы было не просто число а например:
2 года.

Понял.
Строка(Вычислить(Год(ТекущаяДата()) - Лет)+ "Лет"
Добавлено: 11 Дек 2014, 10:08

....вот ведь незадача. Нужно ещё условие поставить к типу стажа, поскольку их несколько и нам нужен определённый. И мой код .... ибо мне нужно сначала определить стаж человека. Если от 1 до 5 лет(пример) тогда из пяти вычесть его настоящий стаж, затем вывести его со словом, имеющим правильное окончание. Нафиг мне вообще сегодняшняя дата. Сейчас всё будет

Последний раз редактировалось: Техножрец; 11 Дек 2014, 10:08. Причина: Объединение сообщений

Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
Потерял нить рассуждений. Ну, да, ладна. Это:
Сейчас всё будет
радует.



Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
172 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 589
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal