|
Функция ПредставлениеПериода | ☑ | ||
---|---|---|---|---|
0
HalloMain
22.05.19
✎
13:50
|
Приветствтую!
Начал изучать 1С по книжке Радченко М.Г. "1С программирование для начинающих" И выполняя задания, столкнулся с проблемой. Никак не могу выполнить задание. Нужно создать функцию, которая бы возвращала значение даты в формате текста. Укажите пожалуйста на ошибки: Процедура ПриНачалеРаботыСистемы() УстановитьКраткийЗаголовокПриложения("Тест"); ТекДата = ТекущаяДата(); Сообщить(МояДата(ДатаНачала(ТекДата), ДатаОкончания(ТекДата), "ФП = Истина")); КонецПроцедуры Функция МояДата(ВыводимДату) Если ДатаНачала = ТекДата Тогда ДатаНачала = НачалоДня(Формат(ТекДата, "ДЛФ=ДД")); КонецЕсли; Если ДатаОкончания = ТекДата Тогда ДатаОкончания = КонецДня(Формат(ТекДата, "ДЛФ=ДД")); КонецЕсли; Возврат ПолученнаяДата; КонецФункции Уже и так, и сяк попробовал, но что-то не догоняю, видимо... |
|||
1
ДенисЧ
22.05.19
✎
13:53
|
Формат(НачДата, "ДФ=ДД.ММ.ГГГГ")
|
|||
2
Zmich
22.05.19
✎
13:55
|
(0). Формат() возвращает строку. Нельзя брать НачалоДня или КонецДня от строки.
|
|||
3
Жан Пердежон
22.05.19
✎
14:25
|
(0) (1) да там начиная с переменных в функции уже всё плохо
|
|||
4
HalloMain
22.05.19
✎
14:33
|
ДенисЧ, подскажите пожалуйста, откуда в выражении взялось - НачДата?
У меня такого нет. Жан Пердежон, я понимаю, что мог что-то не так сделать, поэтому и обратился, чтобы мне указали на ошибки... |
|||
5
ДенисЧ
22.05.19
✎
14:43
|
(4) Подставь свою переменную. Или тебе форели нажарить и с руки покормить?
|
|||
6
HalloMain
22.05.19
✎
14:48
|
<B>ДенисЧ</B>
Было бы неплохо )) |
|||
7
hhhh
22.05.19
✎
14:55
|
(6) выкинь Формат. Понимаю, это красиво, нравится, но с другой стороны дебилизм. Пиши
ДатаНачала = НачалоДня(ТекДата); |
|||
8
HalloMain
22.05.19
✎
15:58
|
Задание.
Создайте функцию, которая получает значение типа Дата. А возвращает эта функция текстовое представление месяца и года этой даты. Для формирования текстового представления используйте функцию ПредставлениеПериода(). Её описание вы найдёте в синтакс-помощнике в ветке Глобальный контекст — Функции форматирования. Исходя из него, я и ваяю )) Самое просторе, что пришло голову: ТекДата = ТекущаяДата(); ТекДата = Формат(ТекДата, "ДФ=""ММММ гггг 'г.'"""); |
|||
9
HalloMain
22.05.19
✎
16:00
|
Но я не понимаю пока как мне передать результат, если запихнуть это в функцию
|
|||
10
_Дайвер_
22.05.19
✎
16:04
|
ТекДата = ТекущаяДата();
НачДата = НачалоМесяца(ТекДата); КонДата = КонецМесяца(ТекДата); Описание = "" + ПредставлениеПериода(НачДата, КонДата, "ФП = Истина"); |
|||
11
HalloMain
22.05.19
✎
16:15
|
Тоже самое, что я привел выше:
ТекДата = ТекущаяДата(); ТекДата = Формат(ТекДата, "ДФ=""ММММ гггг 'г.'"""); |
|||
12
HalloMain
22.05.19
✎
16:16
|
Только там не фигурирует "ПредставлениеПериода()"
|
|||
13
_Дайвер_
22.05.19
✎
16:21
|
Так сделай через ПредставлениеПериода()
"Нужно создать функцию, которая бы возвращала значение даты в формате текста." Это будет тип строка |
|||
14
_Дайвер_
22.05.19
✎
16:22
|
Если от текущей даты отработать (10) результатов будет "22 мая 2019 г." с типом строка, как тебе и надо
|
|||
15
hhhh
22.05.19
✎
16:23
|
(12) вы просто подумайте над своей программой. Вот вы пишете
Возврат ПолученнаяДата; а что такое ПолученнаяДата ? Нет такой у вас. Из воздуха она что ли возникнет? |
|||
16
HalloMain
22.05.19
✎
16:24
|
Мне надо понять механизм, а с этим пока трудности...
Как я уже писал, мне пока не въехать, как сделать "Возврат". В учебнике, на примере рассматривается вариант с переменными и "Если", и как прикрутить это сюда, я не догоняю |
|||
17
_Дайвер_
22.05.19
✎
16:25
|
(16) читай (15)
|
|||
18
hhhh
22.05.19
✎
16:27
|
(16) вы и делайте как в учебнике. Не надо самодеятельности.
|
|||
19
HalloMain
22.05.19
✎
16:30
|
Дан вот такой пример:
Процедура ПриНачалеРаботыСистемы() НомерДняНедели = 1; Занятий = СколькоЗанятий(НомерДняНедели); КонецПроцедуры Функция СколькоЗанятий(ДеньНедели) Если ДеньНедели = 1 Тогда КоличествоЗанятий = 5; Иначе КоличествоЗанятий = 6; КонецЕсли; Возврат КоличествоЗанятий; КонецФункции |
|||
20
HalloMain
22.05.19
✎
16:31
|
А как здесь обработать 'дату', я догнать не могу
|
|||
21
HalloMain
22.05.19
✎
16:39
|
Просто в примере 2 переменных имеющих значение и с ними идет работа, если значение первой переменной такое-то, то значение второй будет такое, а как подобное реализовать со временем?
|
|||
22
HalloMain
22.05.19
✎
16:40
|
Есть только некое время, которое нужно преобразовать в строку и вернуть из функции, здесь я и затыкаюсь
|
|||
23
Вафель
22.05.19
✎
16:42
|
(0) тебе бы подучить, что такое переменные, а что такое функции и их парамтеры
безотносительно 1с |
|||
24
hhhh
22.05.19
✎
16:44
|
(22) ну так пробуй
Функция МояДата(ВыводимДату) Возврат Формат(ВыводимДату, "ДФ=""ММММ гггг 'г.'"""); КонецФункции |
|||
25
HalloMain
22.05.19
✎
16:54
|
hhhh
Спасибо, попробую поработать с Вашим примером. |
|||
26
HalloMain
23.05.19
✎
09:29
|
Все спасибо.
Я перемудрил похоже. В задании нужно создать функцию, которая бы вернула дату в требуемом формате, а поскольку "ПредставлениеПериода()" это встроенная функция, то нет смысла что-то городить, как мне кажется. Поэтому, считаю, что прав оказался "Драйвер" и решение данной задачи будет таким: ТекДата = ТекущаяДата(); НачДата = НачалоМесяца(ТекДата); КонДата = КонецМесяца(ТекДата); ПолученнаяДата = "" + ПредставлениеПериода(НачДата, КонДата, "ФП = Истина"); Всем спасибо! |
|||
27
HalloMain
24.05.19
✎
13:01
|
Посидев и подумав, решил сделать иначе:
Процедура ПриНачалеРаботыСистемы() ТекДата = ТекущаяДата(); МояДата = НачалоКвартала(ТекДата); Значение = ТекстДата(МояДата); КонецПроцедуры Функция ТекстДата(МояДата) НачДата = НачалоМесяца(МояДата); КонДата = КонецМесяца(МояДата); ПолученнаяДата = "" + ПредставлениеПериода(НачДата, КонДата, "ФП = Истина"); Возврат ПолученнаяДата; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |