| 
    
            
         
         | 
    
    
  | 
Функция ПредставлениеПериода | ☑ | ||
|---|---|---|---|---|
| 
    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 
 | 
         
        Посидев и подумав, решил сделать иначе:
 
        Процедура ПриНачалеРаботыСистемы() ТекДата = ТекущаяДата(); МояДата = НачалоКвартала(ТекДата); Значение = ТекстДата(МояДата); КонецПроцедуры Функция ТекстДата(МояДата) НачДата = НачалоМесяца(МояДата); КонДата = КонецМесяца(МояДата); ПолученнаяДата = "" + ПредставлениеПериода(НачДата, КонДата, "ФП = Истина"); Возврат ПолученнаяДата; КонецФункции  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |