Имя: Пароль:
1C
 
Как в COM-соединении преобразовать дату в строку по формату?
☑
0 Гений 1С
 
гуру
30.09.26
✎
20:30
Простой вопрос, а бьюсь долго.
v8.Format не работает
v8.String(d, "ДФ=dd.MM.yyyy") не работает
v8.Right, Substr тоже не работают
1 PR
 
30.09.26
✎
20:39
Испанский стыд
2 fram_
 
30.09.26
✎
20:40
а так

СтрокаДаты = COMПодключение.Вычислить("Формат(Дата(""" + Формат(ИсходнаяДата, "ДФ=ггггММддЧЧммсс") + """), """ + СтрокаФормата + """)")
3 Гений 1С
 
гуру
30.09.26
✎
20:55
(2) в контексте не будет исходной даты.
я кстати, в обновляторе скрипт использую

(1) поза гуру?
4 Гений 1С
 
гуру
30.09.26
✎
21:00
Почитал тут, что функции глобального контекста сохраняются:
https://infostart.ru/1c/articles/1777483/

Это натолкнуло меня писать не v8.Format, а просто Формат в обновляторе. Работает...
5 PR
 
30.09.26
✎
21:00
(3) Да я просто охуеваю с твоего уровня
Не говоря уже о том, нахуя тебе формат на той стороне и о том, чем тебя не устроил (2)
Кто те идиоты, которые платят тебе пятерку в час?
Те, кто не знает, что можно не платить, как в анекдоте чукчи, которые разговаривают по телефону, потому что не знают, как закончить разговор?
6 Гений 1С
 
гуру
30.09.26
✎
21:10
(5)
там в (2) не для обновлятора, контекст другой
у гениев, видишь ли, могут быть проблемы в простом, зато они работают в сложном так круто, что им платят как раз пятерку в час.
7 PR
 
30.09.26
✎
21:12
(6) Идиот, раз у тебя есть d в v8, значит у тебя есть d и в COMПодключение.Вычислить
А про сложное ну не надо пиздеть, мы тут все про тебя все знаем
8 Гений 1С
 
гуру
30.09.26
✎
22:01
(7) ты демонстрируешь классическую манипуляцию "послезнание"
9 Гений 1С
 
гуру
30.09.26
✎
22:12
А вот что-то не могу определить тип массив:

    Попытка
        Количество = Организация.Количество();
        ЭтоМассив = истина;
    Исключение
        ЭтоМассив = ложь;
    КонецПопытки;
    Если ЭтоМассив Тогда //ТипЗнч(Организация) = Тип("Массив") Тогда
        Для Каждого ТекОрганизация ИЗ Организация Цикл
            СформироватьОтчет(ИмяОтчета, Дата1, Дата2, ТекОрганизация, Каталог);
        КонецЦикла;
        Возврат;
    КонецЕсли;
    


ТипЗнч - ComОбъект
10 maxab72
 
30.09.26
✎
22:14
(9) вроде бы одинаковые объекты на стороне приемника и на стороне передатчика имеют разные типы. это азбука.
11 PR
 
30.09.26
✎
22:33
(10) Да он вечный первогодка, не знает нихрена
Он даже не понимает, что ТипЗнч нужно выполнять на стороне COM, чтобы вернулся тип "Массив", а иначе все верно, будет COMОбъект возвращаться
12 Гений 1С
 
гуру
01.10.26
✎
00:28
(11) и как же получать, если v8.TypeoF пишет, что нет такого метода TypeoF. Выйди уже из позы Гуру
13 H A D G E H O G s
 
01.10.26
✎
01:42
(11) Наша кочерыженька так то права, многие функции глобального контекста не видны во внешнем соединении. Но это не значит, что не надо включать голову.

&НаСервере
Функция ПроверитьТипCOMОбъекта(Значение,ТипСтрокой,Соединение)
    ПроверочноеОписаниеТипов=Соединение.NewObject("ОписаниеТипов",ТипСтрокой);
    ПриведенноеЗначение=ПроверочноеОписаниеТипов.ПривестиЗначение(Значение);
    Сравнение=Соединение.NewObject("СравнениеЗначений");
    Результат=Сравнение.Сравнить(Значение,ПриведенноеЗначение)=0;
    Возврат Результат;
КонецФункции

&НаСервере
Процедура Команда1НаСервере()
    КОМКоннектор = Новый COMОбъект("V83.COMConnector");
    Соединение=КОМКоннектор.Connect(СтрокаСоединенияИнформационнойБазы());
    ПроверяемыйМассив=Соединение.NewObject("Массив");
    
    Результат=ПроверитьТипCOMОбъекта(ПроверяемыйМассив,"Массив",Соединение);
    Сообщить("Проверяемый COM объект является массивом -"+Результат);
    Результат=ПроверитьТипCOMОбъекта(ПроверяемыйМассив,"Структура",Соединение);
    Сообщить("Проверяемый COM объект является Структурой -"+Результат);
КонецПроцедуры
14 H A D G E H O G s
 
01.10.26
✎
01:44
15 H A D G E H O G s
 
01.10.26
✎
02:03
Ну или вообще - просто. Глобальный Сериализатор они оставили доступным.

&НаСервере
Процедура Команда1НаСервере()
    КОМКоннектор = Новый COMОбъект("V83.COMConnector");
    Соединение=КОМКоннектор.Connect(СтрокаСоединенияИнформационнойБазы());
    ПроверяемыйМассив=Соединение.NewObject("Массив");
    Сериализатор=Соединение.СериализаторXDTO;
    Тип=Сериализатор.XMLТипЗнч(ПроверяемыйМассив);
    Сообщить("Проверяемый COM объект является -"+Тип.TypeName);
КонецПроцедуры
16 H A D G E H O G s
 
01.10.26
✎
02:10
Автор рождает очередное поделие

https://vkvideo.ru/video-56332541_456239184
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.