Имя: Пароль:
1C
1C 7.7
v7: Как преобразовать дату
0 dmitn
 
07.04.20
07:16
Подскажите, пожалуйста, как вывести дату в виде 2020-04-07?
1 Злопчинский
 
07.04.20
07:22
Формат(ДатаГод(ТекущаяДата()),"Ч(0)4")+"-"+Формат(ДатаМесяц(ТекущаяДата()),"Ч(0)2")+"-"+Формат(ДатаЧисло(ТекущаяДата()),"Ч(0)2")
2 Андрей_Андреич
 
naïve
07.04.20
07:25
Функция Дата_Для_dmitn(ВыбДата, Разделитель="-")
    Перем Результат;
    Результат=Формат(ВыбДата,"ДГГГГММДД");
    Результат=Лев(ВыбДата,4)+Разделитель+Сред(ВыбДата,5,2)+Разделитель+Прав(ВыбДата,2);
    Возврат Результат;
КонецФункции // Дата_Для dmitn(ВыбДата, Разделитель)
3 victuan1
 
08.04.20
05:21
//_____________________________________________________________________________
Функция ДатаВУТФ(Дат) Экспорт //2015-11-30
    СтрДата = Формат(Дат, "ДДДММГГГГ");
    Возврат Прав(СтрДата, 4) + "-" + Сред(СтрДата, 4, 2) + "-" + Лев(СтрДата, 2);
КонецФункции
4 MWWRuza
 
гуру
08.04.20
09:48
Тут, каждый извращается как может:

Функция ПреобразоватьДатуВСтрХМЛ(_Дата) Экспорт
    Год     = Строка(ДатаГод(_Дата));
    Мес     = Прав("00" + ДатаМесяц(_Дата),2);
    Числ    = Прав("00" + ДатаЧисло(_Дата),2);
    Возврат(Год + "-" + Мес + "-" + Числ);
КонецФункции

Подводя итоги темы - ответ: штатно, никак нельзя, нет такого форматирования в штатной функции "Формат", или отдельной встроенной функции.
А самому, можно все что угодно написать, тут, огромный простор для творчества... Выше, приведена куча реализаций этой функции.
5 Garykom
 
гуру
08.04.20
09:55
(0) Буковку T и время не забыл?

Короче глянь сначала какой у тебя тип данных (date, dateTime etc)
https://www.w3schools.com/xml/schema_dtypes_date.asp
https://msiter.ru/tutorials/uchebnik-po-xml-shemam/tipy-dannyh-dlya-daty-i-vremeni
6 Андрей_Андреич
 
naïve
08.04.20
10:00
(3) Ошибочка в Сред(СтрДата,4,2)
7 MWWRuza
 
гуру
08.04.20
10:31
Вот, кусочек из ГМ, все, что я использую для даты/времени при формировании/чтении XML^

Функция ПреобразоватьСтрХМЛвДату(Стр) Экспорт
    Год     = Лев(Стр,4);
    Мес        = Сред(Стр,6,2);
    Числ    = Сред(Стр,9,2);
    Дат        = Дата(Числ + "." + Мес + "." + Год);
    Возврат Дат;
КонецФункции

Функция ПолучитьВремяСобытия(Стр) Экспорт
    Возврат Сред(Стр,12,8);
КонецФункции

Функция ПреобразоватьДатуВСтрХМЛ(_Дата) Экспорт
    Год     = Строка(ДатаГод(_Дата));
    Мес     = Прав("00" + ДатаМесяц(_Дата),2);
    Числ    = Прав("00" + ДатаЧисло(_Дата),2);
    Возврат(Год + "-" + Мес + "-" + Числ);
КонецФункции

Функция ВернутьДатуВремяСтрокой(_Дата = "",_Время = "") Экспорт
    Если _Дата = "" Тогда
        ТекДата     = ТекущаяДата();
    Иначе
        ТекДата     = _Дата;
    КонецЕсли;
    Если _Время = "" Тогда
        ТекВремя     = ТекущееВремя();
    Иначе
        ТекВремя     = _Время;
    КонецЕсли;
    Числ    = Прав("00" + ДатаЧисло(ТекДата),2);
    Мес     = Прав("00" + ДатаМесяц(ТекДата),2);
    Год     = Прав(Строка(ДатаГод(ТекДата)),2);
    Час        = Лев(ТекВремя,2);
    Минута     = Сред(ТекВремя,4,2);
    Возврат(Числ + Мес + Год + Час + Минута);     
КонецФункции

Функция ВернутьВремяСтрокойXML() Экспорт
    Возврат "T" + ТекущееВремя();    
КонецФункции
8 Ёпрст
 
08.04.20
11:21
(0) будь проще, переходи на снеговик:

Формат(ТекущаяДата(),"ДФ='yyyy-MM-dd'")
9 Калиостро
 
08.04.20
12:49
(0)
    сз = СоздатьОбъект("СписокЗначений");
    Стр = сз.ИзСтрокиСРазделителями("""" + СтрЗаменить(Формат(ВыбДата, "ДДДММГГГГ"), ".", """,""") + """");
    ФрмДата = "";
    Для к=1 по сз.РазмерСписка() Цикл
        Если к > 1 Тогда
            ФрмДата = "-" + ФрмДата;
        КонецЕсли;
        ФрмДата = сз.ПолучитьЗначение(к) + ФрмДата;
    КонецЦикла;
10 trad
 
08.04.20
13:12
(8) точно. поставить снеговика, опубликовать хттпсервис. да, Garykom ?
11 Garykom
 
гуру
08.04.20
13:38
(10) У меня ВК на Go для этого.
12 Garykom
 
гуру
08.04.20
13:41
(11)+ И да эта ВК (или exe кому что больше нравится) http-сервис "в 1С 7.7" поднимает.

Так что можно откуда угодно к базе 1С 7.7 по rest обращаться.
И можно код на ЯП 1С 7.7 передавать для выполнения, назад забирая результат.

Сделано через изврат с #ЗагрузитьИзФайла
13 Злопчинский
 
08.04.20
13:48
(12) ссылку дай и есть примеры как с ней работать?
14 Garykom
 
гуру
08.04.20
15:40
(13) Это дикий самопал пока, мне для старой работы понадобилось данные из 77 в 8-ку переносить вот и наваял.
Оформлять это как нечто готовое (и выкладывать на ИС) не думал даже.
15 Харлампий Дымба
 
08.04.20
16:37
(6) Ну так и у тебя ошибочка в (2) в
Результат=Лев(ВыбДата,4)+Разделитель+Сред(ВыбДата,5,2)+Разделитель+Прав(ВыбДата,2);
Вместо ВыбДата везде Результат должно стоять), а то из 08.04.20 получается 08.0-4.-20
16 dmitn
 
08.04.20
16:51
как активизировались))))))
помогите лучше с темой Выгрузка в XML
(8) база в 7-ке, нет смысла
(5)  Garykom, неужели ты не знаешь xml
17 MWWRuza
 
гуру
08.04.20
22:53
(16) помогите лучше с темой Выгрузка в XML
Я бы Вам помог... Но, принципиально не пользуюсь v7plus... Ну, не пошло... Я XML формирую/читаю через MSXMLDOM. Да, понимаю, что не самый оптимальный вариант, особенно по использованию ресурсов... Но, мне, для моих задач хватает. И как-то привычнее, во всяком случае мне.
18 trad
 
09.04.20
09:44
(11) language extender из ТСВК сумел в Go?
19 Duke1C
 
10.04.20
16:30
(0) СтрЗаменить(Формат(ВыбДата,"ДГГГГММДД"),".","-");
20 trad
 
10.04.20
16:46
(19) там не будет точек
21 Duke1C
 
10.04.20
18:02
(20) Упс, действительно