Простите за глупый вопрос. Вроде как и гуглил, да не нашел ответа.

в дбф файле имеется поле со строкой 13.11.2016, как перевести его в дату

Пробовал так вываливается ошибка

```1c
    Пока ФайлDBF.Следующая() Цикл

    НовСтрока = ТЧ.Добавить();
    НовСтрока.Код = ФайлDBF.KOD;
    НовСтрока.Наименование = ФайлDBF.NAME;
    НовСтрока.Производитель = ФайлDBF.PROIZVOD;

    // Преобразуем строку в дату
    НовСтрока.Срок = Формат(Дата(Строка(ФайлDBF.SROK)),"ДФ='ДФ=dd.MM.yyyy'");

    НовСтрока.Количество = ФайлDBF.KOL;
    НовСтрока.ЖНВЛС = ФайлDBF.FLAG;
    НовСтрока.Цена = ФайлDBF.PRICE;
    НовСтрока.ПредельнаяЦена = ФайлDBF.RPRICE;
    НовСтрока.СтавкаНДС = ФайлDBF.NDS;
    НовСтрока.Комментарий = ФайлDBF.COMMENT;
    ФайлDBF.Следующая();
    КонецЦикла;
```
---
чем не устраивает функция из БСП?
СтроковыеФункцииКлиентСервер.СтрокаВДату(ДатаСтрокой)
---
baracuda,
Дата("20161113");
либо
либо ДАТА(Год, Месяц, Число); // где год, месяц, день = числа
Тебе придется выделить год, месяц, число, сформировать строку формата "YYYYMMDD" без разделителей, и ее преобразовывать в дату.
---
baracuda, чем из типовой не устраивает?

```1c
    Функция СтрокаВДату(Знач ДатаСтрока) Экспорт

    ПозицияПробела = СтрНайти(ДатаСтрока, " ", НаправлениеПоиска.СНачала);
    Если ПозицияПробела > 0 Тогда
    ДатаСтрока = Лев(ДатаСтрока, ПозицияПробела - 1);
    КонецЕсли;
    ДатаСтрока = СокрЛП(СтрЗаменить(ДатаСтрока, ".", "));
    ДатаСтрока = Сред(ДатаСтрока, 5) + Сред(ДатаСтрока, 3, 2) + Лев(ДатаСтрока, 2);
    Если СтрДлина(ДатаСтрока) = 6 Тогда
    ДатаСтрока = "20" + ДатаСтрока;
    КонецЕсли;

    ОписаниеТипа = Новый ОписаниеТипов("Дата");
    Результат = ОписаниеТипа.ПривестиЗначение(ДатаСтрока);

    Возврат Результат;

    КонецФункции
```
---
spacecraft, на тонком клиенте нет доступа
---
baracuda, что значит нет? это в общем модуле с флагами клиент и сервер. Доступен и на клиенте и на сервере.
---
spacecraft,
А где эта функция сидит?
---
vkozak, общий модуль СтроковыеФункцииКлиентСервер. В частности в Рознице есть.
---
spacecraft, Странно. Это модуль из подсистемы БСП "БазоваяФункциональность", но в версии БСП 2.2.3.29 такой функции нет... То ли еще, то ли уже :)
---
herfis, еще. в БСП много чего нет, чего хотелось бы. Как правило в типовые дописывают.
---
Скопируй в свой модуль ;)
---
СтроковыеФункцииКлиентСервер работет! Спасибо.
---
Примного благодарен за сэкономленное время)
---
А какой тип у поля SROK? Если дата, то какого лешего работа с ним организована как со строкой?
---
Учитесь использовать функции БСП, там много что есть.

https://infostart.ru/1c/articles/1398340/

СтрокаВДату. Преобразует исходную строку в дату. Если дату не удалось распознать, то возвращается пустая дата (01.01.01 00:00:00).

Функция преобразования СТРОКИ в ДАТУ.

// Формат даты должен быть в виде "ДД.ММ.ГГГГ" или "ДД/ММ/ГГ" или "ДД-ММ-ГГ ЧЧ:ММ:CC"
// Результат 23.02.1980 0:00:00 тип Дата

```1c
    Результат = СтроковыеФункцииКлиентСервер.СтрокаВДату("23.02.1980");
```
---
Теме десять лет, вы до сих пор ее мусолите
---
точно
Какой нехороший человек ее откопал, я чета даже и не глянул на дату автора
---
```1c
    ЗначениеДата = "13.11.2016";
    Дата1С = Дата(Прав(ЗначениеДата, 4), Сред(ЗначениеДата, 4, 2), Лев(ЗначениеДата, 2));
```
---
dj_serega, В этом варианте синтаксиса еще нужно к числам преобразовать. Но можно так:

```1c
    Дата1С = Дата(Прав(ЗначениеДата, 4) + Сред(ЗначениеДата, 4, 2) + Лев(ЗначениеДата, 2));
```

Только проверить источник на предмет наличия ведущих нулей.
---
dj_serega, спасибо за оперативный ответ. На мисте клоунаду устроили
---
baracuda, Миста такая миста :)
---
dj_serega, Опа. А я и не знал, что в этом месте неявное приведение типов работает.
---
дата("13.11.2016 00:00:00")
---
тут главное не забыть добавить " 00:00:00", если дата в формате "13.11.2016". Просто выполнение Дата("13.11.2016") приведет к ошибке.
---
2020 год
Столкнулся с тем, что в одной конфигурации это работает, в другой нет. Платформа одинаковая
---
В СП, кстати, написано, что локальный формат даты тоже должно хавать.
Но и отлично, что не хавает.
---
Супер. Дата1С = Дата(Прав(ЗначениеДата, 4) + Сред(ЗначениеДата, 4, 2) + Лев(ЗначениеДата, 2)); Работает.
---
(3)
(17) Сред(ЗначениеДата, 4, 2)

Сред(ЗначениеДата, 5, 2)

Но еще надо учитывать, что год не может быть меньше 1 и больше 9999, месяц не может быть меньше 1 и больше 12, дни не могут быть меньше 1 и больше 28/29/30/31 (в зависимости от месяца и года)
---
не может быть меньше 1 и больше 9999 а не 3999? )))
---
а не 3999? )))
Смотря как на это смотреть. Ошибки преобразования не будет и с 9999
---
```1c
    Сообщить(Дата(9999, 1, 1))
```
 выдаст 01.01.9999 0:00:00
---
Доброго вечера.

```1c
    ТаблицаРеестра.Колонки.Добавить("ДатаПлатежа", Новый ОписаниеТипов("Дата") );
    ДатаПлатежа = ExcelЛист.Cells(Строка, Объект.НомерКолонкиДата ).Value;

    Дата1С = (Дата(Прав(ДатаПлатежа, 4), Сред(ДатаПлатежа, 4, 2), Лев(ДатаПлатежа, 2)+" 00:00:00");
```

У меня ругается, что преобразование значения к типу число не может быть выполнено.

Дата1С 18.02.2020 0:00:00 показывает такое значение.

Подскажите пожалуйста, в чём дело.

p.s
и в строках ТЗ такая же самая ошибка

```1c
    Комментарии = Строка(Комментарии +" "+Комментарии1+ " "+Комментарии2);
```
---
Ошибка оказалась не в формате даты- он верно преобразовывается, а в последней строке екселя.
---
Сначала искал решение. Потом сел и написал свое.
Может кому пригодится:

```1c
    Функция ПреобразоватьКДате(Текст, ПорядоВТексте = "ДнМсГдЧсМнСк")

    ВозможныеРазделители = ".:/ ";
    ЦифрыСтрокой = "1234567890";
    ТекстДаты = ";
    СтрДаты = Новый Структура("Дн,Мс,Гд,Чс,Мн,Ск",0,0,ГОД(ТекущаяДата()),0,0,0);

    Для сч = 1 По СтрДлина(Текст) Цикл
    Символ = Сред(Текст,сч,1);
    Если СтрНайти(ЦифрыСтрокой,Символ)>0 Тогда
    ТекстДаты = ТекстДаты + Символ;
    ИначеЕсли СтрНайти(ВозможныеРазделители,Символ)>0 Тогда
    ТекстДаты = ТекстДаты + "#";
    КонецЕсли;
    КонецЦикла;

    мЧастиДаты = СтрРазделить(ТекстДаты,"#",Ложь);
    Для Каждого ЧастьДаты Из мЧастиДаты Цикл
    ИндексФрагмента = мЧастиДаты.Найти(ЧастьДаты);
    Если ИндексФрагмента < СтрДлина(ПорядоВТексте) / 2 Тогда
    КлючЧасти = Сред(ПорядоВТексте,ИндексФрагмента * 2 + 1,2);
    ЧастьЧислом = Число(ЧастьДаты);
    КонецЕсли;
    Если КлючЧасти = "Гд" И ЧастьЧислом < 2000 Тогда
    ЧастьЧислом = ЧастьЧислом + 2000;
    КонецЕсли;

    СтрДаты.Вставить(КлючЧасти,Число(ЧастьДаты));

    КонецЦикла;

    Возврат Дата(СтрДаты.Гд, СтрДаты.Мс,СтрДаты.Дн, СтрДаты.Чс, СтрДаты.Мн, СтрДаты.Ск);

    КонецФункции
```
---
в коде

```1c
    СтрДаты.Вставить(КлючЧасти,Число(ЧастьДаты));
```

ошибка, по идее должно быть

```1c
    СтрДаты.Вставить(КлючЧасти,Число(ЧастьЧислом));
```
---
Не вижу ошибки. Да и функция рабочая, а не специально писаная. ЧастьДаты - если посмотрите выше, как она получается, это только цифры, так что с преобразованием к числу проблем не будет. А вот ЧастьЧислом создается только по условиям, поэтому она для
```1c
    СтрДаты.Вставить(КлючЧасти,Число(ЧастьЧислом));
```
 может оказаться равной Неопределено. А Вам такое надо?
---
Без проблем. Я не долго пишу на 1с и не большой спец.
Про "Неопределено" сразу заметил. Но сейчас все работает на текущих датах.

Я и написал что бы вы свой код проверили. И потом я возьму исправленный.

Обратите внимание что переменная "ЧастьЧислом" у вас не используется после прибавления 2000
И соответственно при попытке преобразовать "09.02.24" при дефолтовом значении параметра "ПорядоВТексте"
вы получите "09.02.0024 0:00:00"

Ну и напоследок, в имени переменой "ПорядоВТексте" забыли букву к. Глаз спотыкается на ней.

Спасибо.
---
ПреобразоватьКДате

ошибка в ИндексФрагмента = мЧастиДаты.Найти(ЧастьДаты);,
если будет например дата 9 сентября, то есть 9 - 9 - 2024
---
Стандартная (из БСП?) СтрокаВДату() очень слабая. Стараюсь не использовать, потому что при ошибке преобразования возвращать пустую дату считаю неправильным.
Поэтому тоже использую свои наработки:

```1c
    //Преобразование строки в дату/время с указанием строки форматирования.
    //При ошибке преобразования генерируется исключение.
    //Допустимые значения в строке форматирования:
    // yyyy - год полностью
    // yy - год сокращённо
    // mm - месяц
    // dd - день
    // hh - часы
    // nn - минуты
    // ss - секунды
    // Разделитель в исходной строке и строке форматирования может различаться.
    //
    // Параметры:
    // ДатаСтрока - Строка - Исходная строка с датой
    // ФорматДаты - Строка - Формат даты в переданной строке
    //
    // Возвращаемое значение:
    // Дата
    //
    // Пример:
    // СтрокаВДатуВремя("05.04.20", "dd.mm.yy")
    // СтрокаВДатуВремя("05.04.20 12:30:00, "dd.mm.yy hh:nn:ss")
    // СтрокаВДатуВремя("05/04/20 12:30:00, "dd.mm.yy hh:nn:ss")
    Функция СтрокаВДатуВремя(ДатаСтрока, ФорматДаты = "dd.mm.yyyy") Экспорт
    Если ЗначениеЗаполнено(ДатаСтрока) Тогда
    Попытка
    Годы = СтрНайти(ФорматДаты, "yyyy");
    Годы = ?(Годы = 0 , 0, Число(Сред(ДатаСтрока, Годы, 4)));
    Если Годы = 0 Тогда
    Годы = СтрНайти(ФорматДаты, "yy");
    Годы = ?(Годы = 0 , 0, Число("20" + Сред(ДатаСтрока, Годы, 2)));
    КонецЕсли;
    Месяцы = СтрНайти(ФорматДаты, "mm");
    Дни = СтрНайти(ФорматДаты, "dd");
    Часы = СтрНайти(ФорматДаты, "hh");
    Минуты = СтрНайти(ФорматДаты, "nn");
    Секунды = СтрНайти(ФорматДаты, "ss");

    Возврат Дата(
    ?(Годы = 0, 1, Годы),
    ?(Месяцы = 0, 1, Число(Сред(ДатаСтрока, Месяцы, 2))),
    ?(Дни = 0, 1, Число(Сред(ДатаСтрока, Дни, 2))),
    ?(Часы = 0, 0, Число(Сред(ДатаСтрока, Часы, 2))),
    ?(Минуты = 0, 0, Число(Сред(ДатаСтрока, Минуты, 2))),
    ?(Секунды = 0, 0, Число(Сред(ДатаСтрока, Секунды, 2)))
    )
    Исключение
    ВызватьИсключение "Ошибка преобразования строки "" + ДатаСтрока + "" в дату по формату "" + ФорматДаты + ""
    КонецПопытки;
    Иначе
    Возврат Неопределено
    КонецЕсли;
    КонецФункции // СтрокаВДатуВремя
```

Всегда с интересом изучаю подобные обсуждения, бывает, попадаются изящные, удобные, быстрые, оптимальные решения.
---
Увидел, решил допилить функцию, что бы можно было без формата распознавать дату и время. В данном случае воспринимается формат yyyymmdd, yyyy#mm#dd, dd#mm#yyyy, а так же время в любом формате с разделителями (можно допилить под другие варианты если очень нужно). Зачем? Есть ситуации, когда формат не указывается и нужно более менее стандартные строки преобразовать) Например: сервер имеет формат английский даты, а клиент русский или разные сервера (+ универсальность)

```1c
    Функция СтрокаВДатуВремя(ДатаСтрока, ФорматДаты = Неопределено, ПриОшибкиБезФормата = Ложь) Экспорт

    Если НЕ ЗначениеЗаполнено(ДатаСтрока) Тогда
    Возврат Дата(1,1,1);
    КонецЕсли;

    Если НЕ ЗначениеЗаполнено(ФорматДаты) тогда

    СимволыЦифры = "0123456789";
    ФлагПоловиныСуток = ";
    НомГода = 0;

    МассивЧастей = Новый Массив;
    СтрокаЧасти = ";
    Для Сч = 1 По СтрДлина(ДатаСтрока) Цикл

    Сим = Прав(Лев(ДатаСтрока, Сч), 1);

    Если СтрНайти(СимволыЦифры, Сим) <> 0 тогда
    СтрокаЧасти = " + СтрокаЧасти + Сим;
    Иначе

    Если ЗначениеЗаполнено(СтрокаЧасти) тогда
    МассивЧастей.Добавить(Число(СтрокаЧасти));
    Если СтрДлина(СтрокаЧасти) И МассивЧастей.Количество() < 4 тогда
    НомГода = МассивЧастей.Количество();
    КонецЕсли;
    СтрокаЧасти = ";
    КонецЕсли;

    Если Сим = "P" ИЛИ Сим = "A" тогда
    Если СтрДлина(ДатаСтрока) >= Сч + 1 тогда
    СлСим = Прав(Лев(ДатаСтрока, Сч + 1), 1);
    Если СлСим = "M" тогда
    ФлагПоловиныСуток = " + Сим + СлСим;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;

    КонецЕсли;

    КонецЦикла;

    Если ЗначениеЗаполнено(СтрокаЧасти) тогда
    МассивЧастей.Добавить(Число(СтрокаЧасти));
    Если СтрДлина(СтрокаЧасти) И МассивЧастей.Количество() < 4 тогда
    НомГода = МассивЧастей.Количество();
    КонецЕсли;
    КонецЕсли;

    Если МассивЧастей.Количество() > 6 тогда
    ВызватьИсключение "Ошибка преобразования строки "" + ДатаСтрока + "" в дату: попробуйте указать формат даты!";
    ИначеЕсли МассивЧастей.Количество() = 1 тогда
    Попытка
    Возврат Дата(МассивЧастей[0]);
    Исключение
    ВызватьИсключение "Ошибка преобразования строки "" + ДатаСтрока + "" в дату: некорректно передана дата без разделителей, попробуйте указать формат даты!";
    КонецПопытки;
    КонецЕсли;

    Годы = 1;
    Месяцы = 1;
    Дни = 1;
    Часы = 0;
    Минуты = 0;
    Секунды = 0;

    Если НомГода = 1 тогда
    Годы = МассивЧастей[0];
    Месяцы = МассивЧастей[1];
    Если НЕ МассивЧастей.Количество() = 2 тогда
    Дни = МассивЧастей[2];
    КонецЕсли;
    Если НЕ МассивЧастей.Количество() = 3 тогда
    Часы = МассивЧастей[3];
    КонецЕсли;
    Если НЕ МассивЧастей.Количество() = 4 тогда
    Минуты = МассивЧастей[4];
    КонецЕсли;
    Если НЕ МассивЧастей.Количество() = 5 тогда
    Секунды = МассивЧастей[5];
    КонецЕсли;
    ИначеЕсли НомГода = 3 тогда
    Годы = МассивЧастей[2];
    Месяцы = МассивЧастей[1];
    Дни = МассивЧастей[0];
    Если НЕ МассивЧастей.Количество() = 3 тогда
    Часы = МассивЧастей[3];
    КонецЕсли;
    Если НЕ МассивЧастей.Количество() = 4 тогда
    Минуты = МассивЧастей[4];
    КонецЕсли;
    Если НЕ МассивЧастей.Количество() = 5 тогда
    Секунды = МассивЧастей[5];
    КонецЕсли;
    Иначе
    ВызватьИсключение "Ошибка преобразования строки "" + ДатаСтрока + "" в дату: не стандартный формат года, попробуйте указать формат даты!";
    КонецЕсли;

    Если ЗначениеЗаполнено(ФлагПоловиныСуток) тогда
    Если ФлагПоловиныСуток = "AM" тогда
    Часы = ?(Часы = 12, 0, Часы);
    Иначе
    Часы = ?(Часы = 12, Часы, Часы + 12);
    КонецЕсли;
    КонецЕсли;

    Попытка
    Возврат Дата(Годы, Месяцы, Дни, Часы, Минуты, Секунды);
    Исключение
    ВызватьИсключение "Ошибка преобразования строки "" + ДатаСтрока + "" в дату: попробуйте указать формат даты!";
    КонецПопытки;

    Иначе

    Попытка
    Годы = СтрНайти(ФорматДаты, "yyyy");
    Годы = ?(Годы = 0 , 0, Число(Сред(ДатаСтрока, Годы, 4)));
    Если Годы = 0 Тогда
    Годы = СтрНайти(ФорматДаты, "yy");
    Годы = ?(Годы = 0 , 0, Число("20" + Сред(ДатаСтрока, Годы, 2)));
    КонецЕсли;
    Месяцы = СтрНайти(ФорматДаты, "mm");
    Дни = СтрНайти(ФорматДаты, "dd");
    Часы = СтрНайти(ФорматДаты, "hh");
    Минуты = СтрНайти(ФорматДаты, "nn");
    Секунды = СтрНайти(ФорматДаты, "ss");

    Возврат Дата(
    ?(Годы = 0, 1, Годы),
    ?(Месяцы = 0, 1, Число(Сред(ДатаСтрока, Месяцы, 2))),
    ?(Дни = 0, 1, Число(Сред(ДатаСтрока, Дни, 2))),
    ?(Часы = 0, 0, Число(Сред(ДатаСтрока, Часы, 2))),
    ?(Минуты = 0, 0, Число(Сред(ДатаСтрока, Минуты, 2))),
    ?(Секунды = 0, 0, Число(Сред(ДатаСтрока, Секунды, 2)))
    )
    Исключение
    Если ПриОшибкиБезФормата тогда
    Возврат СтрокаВДатуВремя(ДатаСтрока);
    Иначе
    ВызватьИсключение "Ошибка преобразования строки "" + ДатаСтрока + "" в дату по формату "" + ФорматДаты + "";
    КонецЕсли;
    КонецПопытки;

    КонецЕсли;

    Возврат Неопределено;

    КонецФункции
```
---
Стараюсь не использовать, потому что при ошибке преобразования возвращать пустую дату считаю неправильным.

именно поэтому ты обернул свою краказябру в попытку и возвращаешь неопределено в случае ошибки. Это же гениально (нет).

ну а написать это через попытку это пять....
---
Вы правы в той части, что ЧастьЧислом не используется. Это, действительно, ошибка. Ошибка логики, конечно.
В тексте уже ничего не изменить, но уж если мы обнаружили, что год меньше 2000 то нужно сделать переприсвоение переменной ЧастьДаты из ЧастьЧислом, после того как к этой части добавили 2000.
Спасибо за анализ и выявленный баг!
---
По итогу отказался от вашей функции. У вас там в логике ошибка критическая.
Когда дата к примеру "02.02.24" она просто не обработается

```1c
    ИндексФрагмента = мЧастиДаты.Найти(ЧастьДаты);
```

Этот код два раза вернет индекс дня. Месяц просто теряем!
Как у вас этот код работает не представляю.

Удачи
---
чем не устраивает функция из БСП?
СтроковыеФункцииКлиентСервер.СтрокаВДату(ДатаСтрокой)
---
СтроковыеФункцииКлиентСервер.СтрокаВДату(ДатаСтрокой)
Спасибо. Я просто новичек. БСП не очень знаю. То что нужно!
---
просто гуглишь "1с БСП %то че тебе надо%". В 99% случаев если поисковая строка задана верно и запрашиваемый функционал может быт ьреализован универсально - он будет в бсп
---
алло чилавек, посмотри на дату создания поста)
тогда бсп в помине не было.
---
странно, а итс говорит что была, при чем задолго до написания поста. И кому из вас верить?
---
а можешь пруф дать что именно эта функция была на дату написания поста.
ну и наверное если нужно было бы БСП то так и написали бы в топике поста.
 не в каждой конфе есть БСП, а вопрос задавался мною под УТ10.3
---
ответ не про функцию. ответ про
тогда бсп в помине не было.
Заметь, это написал ты, никто тебя за язык не тянул и нажимать на клаву не заставлял. Ты сам это делал. И даже сейчас ты продолжаешь искать пути отступления уводя в сторону. Прям как в анегдоте про вычисление по Ip.

В ут10.3 много чего было. Правда сейчас у меня ее под рукой нету. Последний раз ее трогал года 2 назад.

и да
не в каждой конфе есть БСП, а вопрос задавался мною под УТ10.3
зачем же ты себя топишь? в КАЖДОЙ типовой конфе есть бсп, кроме разве что узкоспециализированных технических конф. Во всяких тиражных решениях бсп гарантированно есть. Я щас именно про фирму 1с, а не про ущербные отраслевые конфигурации от таких же ущербных разрабов
---
с тобой все ясно🤣
---
еще бы. сам ворвался, сам обосрался. А ясно все со мной. Классика
---
со стороны без эмоций перечитай свои сообщения. ты все поймешь
---
читаю.

1) оставляю коммент
2) врывыаешься ты и говоришь что я закопипастил коммент
3) я отвечаю что до туда даже не дошел. потом я пишу челу как гуглить наличие функционала в бсп
4) опять врываешься ты и говоришь что на дату создания поста бсп не существовало вообще.
5) говорю что гугл с тобой не согласен (ровно как и я)
6) ты начинаешь классическое "ну ка тыкни мне в бсп того времени где там есть эта функция"
7) ты: "с тобой все ясно"

Еще вопросы?
---
ты:
1) пришел и огульно всех обозвал наркоманами
2) дал ответ, который уже есть в этом топике. Следовательно всю тему не читал.
3) похвастался, что сам не знал и "вставил это из гугла"
4) не знаешь, что на момент создания темы в БСП этой функции еще не было.
5) продолжаешь просто хамить
---
1) да я и щас не отказываюсь. Ты просто посмотри на текст который они предлагают...
2) Вроде повторять ответ правилами ресурса не запрещено.
3) сам я знал, просто скопировать из гугла быстрее чем открыть конфигуратор и копировать путь от туда.
4) а ты можешь тыкнуть вырезкой из бсп что такой функции там не было на то время? Может тс просто не знал? Или она была в другом месте?
5) неа. чел попросил перечитать без эмоций и я перечитал без эмоций. В итоге опять нашлись не довольные.

upd а ты там в числе первых. вот почему тебя задело. Ничего личного. Никого не хотел обидеть.
---
4) а ты можешь тыкнуть вырезкой из бсп что такой функции там не было на то время? Может тс просто не знал? Или она была в другом месте?
см. 14-16 сообщения.
---
там твое же сообщение что есть такая функция в бсп.
Как же так получается ?

```1c
    4) не знаешь, что на момент создания темы в БСП этой функции еще не было.
```

То что челики сидят на чем-то древнем - исключительно их проблемы
---
в 2015 году ее еще не было в БСП. Была в типовой рознице.
Позже появилась в БСП.
---
пруфы:
функция в БСП появилась в 2.3 редакции
https://its.1c.ru/db/updlib#content:14:hdoc:_top:строкавдату
В общий модуль СтроковыеФункцииКлиентСервер добавлена функция СтрокаВДату для приведения загружаемых данных к типу Дата.
---
Там же твое сообщение

```1c
    (49) странно, а итс говорит что была, при чем задолго до написания поста. И кому из вас верить?
```

Как же так получается ?

А тебе тут пруфы еще привели. Кто же тебя за язык тянул написать такое.
Топишь сам себя.

Ау караул, кругом наркоманы

P.S. Еще и минусов понаставил 🤣.
---
получается так что у тебя проблемы со зрением и\или пониманием текста.

Еще раз.
ты пишешь в 49
посмотри на дату создания поста)
тогда бсп в помине не было.

я пишу что на дату создания поста бсп уже была при чем за долго до этого поста.

теперь другой чел пишет
функция в БСП появилась в 2.3 редакции
и следом решаешь уныло потроллировать
Как же так получается ?

А то что в других версиях она могла быть в другом месте тебе в голову в принципе не приходило, да?
Ну да ладно, вопрос в другом.

ты пишешь что БСП на момент создания поста в принципе не существовало. Я ответил что это не так. Теперь ты про функцию начал писать.

К чему вся эта писанина? ты посты набиваешь или че? Тупо зачем это выяснение непонятно чего? Не нравится что я ответил комментом, который на 99% совпадает с другим комментом - позови модераПтора. К чему это набивание постов?
---
круто ты скопировал текст из
(35)
---
ниче не копировал. я посмотрел парочку первых комментов, увидел что там пацаны наглухо угашеные и вставил это из гугла
---
```1c
    Функция ПреобразоватьВYYYYMMDD(СтрокаДата)
    // Преобразует строку вида "10.07.2024" в вид "20240710"
    Сообщить(СтрокаДата);
    Год = Сред(СтрокаДата,7,4);
    Месяц = Сред(СтрокаДата,4,2);
    День = Сред(СтрокаДата,1,2);

    Преобразователь = Год + Месяц + День;
    Сообщить(Преобразователь);
    Возврат Преобразователь;
    КонецФункции
```
---
Шедевр!
---
В последующем можно использовать простую функцию Дата()
---
наркоманы. все уже придумано до вас

```1c
    СтроковыеФункцииКлиентСервер.СтрокаВДату("13.06.2016");
```

а
```1c
    Формат()
```

возвращает строку, а не дату