|
Как в COM-соединении преобразовать дату в строку по формату? arsik, H A D G E H O G s, lEvGl, Timon1405, PLUT, Доминошник, denfil, Hawk_1c, maxar, X Leshiy, maxab72, Prog_man, fram_, Garykom, probably, АнализДанных, Кирпич, GreyTim, Bad_Aleks, Karamzin, Silgis, PR, DemonShinji2, integer, fserg84, ndrv, formista2000, АНДР, paramedic, vsy, fbear, Волшебник, youalex, Мультук, alexxx961503, toypaul, laeg, kittystark, Гипервизор, nick86, Шурик71, Олдж, JohnGilbert, orakool, КонецЕсли, takefive, 1cVandal, Жеглофф, dva1c, Анцеранана, Niveus, Климов Сергей, Калиостро, ads55, jack777, ОператорПК, 2S, Конструктор1С, Zapal, skafandr, denk32, Гений 1С, KJlag, mgreat, Kongo2019, Zamestas, zenik
| ☑ | ||
|---|---|---|---|---|
|
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
|
||||
|
17
PR
01.10.26
✎
04:32
|
В (13) в итоге так и нет получения типа значения в COM
А предлагаемое в интернете COMСоединение.XMLТипЗнч(COMЗначение).TypeName для массива вернет Неопределено Так что остается только (15)
|
|||
|
18
PR
01.10.26
✎
04:52
|
А, ну и да, что там у него с форматом не срослось, я так и не понял, видимо, не дано ему
|
|||
|
19
Гений 1С
гуру
01.10.26
✎
08:48
|
(18) я вызывал Формат через v8.Формат, хотя в скриптах обновлятора на OneScript в глобальном контексте строковые функции реализованы, то бишь можно просто писать Формат, без v8.
(17) Вот видишь, а начинал с позы гуру, оказалось вопрос не для джунов. ггг |
|||
|
20
Конструктор1С
01.10.26
✎
09:34
|
(0) пробуй документацию читать
|
|||
|
21
PR
01.10.26
✎
11:16
|
(19) Ну молодец, че, документация не для слабаков, ага
Так-то в СП черным по белому написано, что Формат в COM не работает Да и непонятно, зачем форматировать дату в COM, когда она уже и так не COMОбъект, видимо, это что-то непонятное генитальное |
|||
|
22
PLUT
гуру
01.10.26
✎
11:30
|
генитальное - использовать эту "тихналогию" COM-соединения в 2026 году
ну может легася какая-нибудь древняя и нужно героически поддерживать всё не читал! Программа «Обновлятор-1С» использует COM-коннектор (библиотеку comcntr.dll) для программного управления и выполнения операций внутри информационной базы без запуска полноценного графического интерфейса 1С В «Обновляторе» можно писать свои скрипты автоматизации (например, на OneScript). Через объект V83.COMConnector администратор может программно залезть в базу, чтобы перед обновлением или после него очистить кэш, пересчитать итоги, запустить тестирование и исправление или выполнить произвольный код на встроенном языке 1С ©пижжено отсюда https://helpme1s.ru/obnovlyator-1s-uchimsya-pisat-skripty-na-onescript |
|||
|
23
PR
01.10.26
✎
11:23
|
(19) Геня, дело в том, что вопрос-то непростой, да
Но во-первых, тут даже говнорешений есть несколько штук, а ты даже до них не докопался А во-вторых, кто-то разбирается и ищет, а кто-то выкабенивается, какой он неебаться гений, а по факту даже дату отформатировать не может Так что не нужно важно топорщить моську, все понятно и так |
|||
|
24
Кирпич
01.10.26
✎
11:46
|
(9) вот так можно
Если v8.СтрШаблон("%1",Организация) = "Массив" Тогда .... КонецЕсли; Если Организация создано в v8 |
|||
|
25
Кирпич
01.10.26
✎
11:49
|
+(24) или
v8.String(Организация) = "Массив" |
|||
|
26
Garykom
гуру
01.10.26
✎
12:02
|
Только для меня странно что до сих пор путают клиент и сервер?
Да технология COM клиент-серверная... |
|||
|
27
Кирпич
01.10.26
✎
12:05
|
капитана разбудили
|
|||
|
28
PR
01.10.26
✎
12:13
|
(26) Только для тебя
|
|||
|
29
Garykom
гуру
01.10.26
✎
12:25
|
Для меня странно что пытаются извращаться напрямую через COM/OLE
Когда можно создать внешнюю обработку (с нативным кодом без COM), закинуть ее если надо через COM и тупо выполнить там Будет похоже на работу через http-сервисы |
|||
|
30
PLUT
гуру
01.10.26
✎
12:35
|
(29) все не читал
Г1С мучает обновлятор |
|||
|
31
Garykom
гуру
01.10.26
✎
12:47
|
(30) я понимаю что мучает
не понимаю что мешает создать внешнюю обработку и выполнять код из нее через обновлятор |
|||
|
32
Garykom
гуру
01.10.26
✎
12:50
|
еще лучше сваять расширения с нужным кодом
и подсунуть в нужные базы через тот же обновлятор |
|||
|
33
Кирпич
01.10.26
✎
12:56
|
вот еще извращение. только на массивах не прокатит
Функция COMТип(v8, Значение)
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |