1 2 ► |
|
| ||
Гений 1С 22.01.21 - 07:40 | Ну что то типа Справочник.Номенклатура.Гуид? | ||
Ненавижу 1С 1 - 22.01.21 - 07:41 | Гений уже не торт | ||
ДенисЧ 2 - 22.01.21 - 07:42 | Мдя...
Продам СП. Очень дорого. Вылечу от мании величия. Очень-очень дорого. | ||
Mankubus 3 - 22.01.21 - 07:47 | xmlСтрока(Ссылка)
УникальныйИдентификатор() | ||
Гений 1С 4 - 22.01.21 - 07:56 | (3) а обратно, товарищ Богачев? | ||
Гений 1С 5 - 22.01.21 - 07:56 | (1) ты зато смотрю всё калорийнее! | ||
Гений 1С 6 - 22.01.21 - 08:01 | XMLЗначение(<Тип>, <СтрокаXML>) - требует Тип, зачем? Это мне надо вручную тип определить? А еще пишут: "Выполняет действие обратное действию метода XMLСтрока." | ||
Mankubus 7 - 22.01.21 - 08:17 | |||
Гений 1С 8 - 22.01.21 - 08:47 | (7) ты лучше за XMLЗначение ответь | ||
Кирпич 9 - 22.01.21 - 09:01 | ЗначениеВСтрокуВнутр() | ||
Гений 1С 10 - 22.01.21 - 09:03 | (9) я про XML | ||
Кирпич 11 - 22.01.21 - 09:05 | (10) А XML это не строка что ли? | ||
Гений 1С 12 - 22.01.21 - 09:29 | (11) не юродствуй, это не строка в формате ЗначениеВСтрокуВнутр. | ||
Кирпич 13 - 22.01.21 - 09:34 | (12) Тупой чтоли | ||
Гений 1С 14 - 22.01.21 - 09:36 | (13) истину ищу | ||
Kassern 15 - 22.01.21 - 09:38 | (12) Онли фо ю
Синтаксис: ЗначениеВСтрокуВнутр(<Значение>) Параметры: <Значение> (обязательный) Тип: Произвольный. Преобразуемое значение. Возвращаемое значение: Тип: Строка. Системное представление значения в информационной базе. Описание: Получает системное строковое представление переданного значения. | ||
Гений 1С 16 - 22.01.21 - 09:40 | |||
Кирпич 17 - 22.01.21 - 09:43 | Точно тупой | ||
Кирпич 18 - 22.01.21 - 09:44 | xmlСтрока(ЗначениеВСтрокуВнутр(Справочники.Валюты.НайтиПоНаименованию("Руб")))
или так ЗначениеВСтрокуВнутр(Справочники.Валюты.НайтиПоНаименованию("Руб")) | ||
GANR 19 - 22.01.21 - 10:00 | (0) легко) не верю что ты это не сумеешь | ||
Leonardo1c 20 - 22.01.21 - 10:07 | |||
ДенисЧ 21 - 22.01.21 - 10:14 | (20) Откуда у него такие деньги? | ||
Кирпич 22 - 22.01.21 - 10:15 | (21) Стартмани продаст | ||
Гений 1С 23 - 22.01.21 - 10:19 | (19) в строку умею. из строки не умею вот так сразу. Можно как-то через фабрику или тупо разбор строки по точкам, но ведь есть же XMLЗначение, какого хуанхэ оно не работает без типа? | ||
Гений 1С 24 - 22.01.21 - 10:19 | (20) если 100500 раз предложить, то старания окупятся, глядишь кто-то рубль за тыщу и купит, да? | ||
Stephen Ordo 25 - 22.01.21 - 10:23 | Внешнюю компоненту смотрю уже не предлагают? На си шарпе... | ||
Кирпич 26 - 22.01.21 - 10:30 | (23) "какого хуанхэ оно не работает без типа?"потому что в XML всё представлено строками. Как 1с догадается, что у тебя там не просто строка, а ссылка? Вон тебе придумали умные люди сериализацию. Пользуйся. https://1c-programmer-blog.ru/programmirovanie/xdto-serializaciya-v-1s.html | ||
Leonardo1c 27 - 22.01.21 - 10:31 | (24) сколько за последние 2 года было куплено курсов у коучей? а сколько книжек по 1с прочитано и курсов пройдено? | ||
Leonardo1c 28 - 22.01.21 - 10:33 | |||
Ненавижу 1С 29 - 22.01.21 - 10:39 | (28) а также Зимбицкий | ||
Leonardo1c 30 - 22.01.21 - 10:45 | (29) это тот кто научил гения 1с переливать из пустого в порожнее..
в сериализации строк он не силен.. Рекламное место пустует | ||
Kassern 31 - 22.01.21 - 10:51 | (23) Показываю на пальцах, чтобы было понятно на примере из СП. Вот ты решил выгрузить дату в xml и такой пишешь ЗаписьXML.ЗаписатьТекст(XMLСтрока(ДатаПлатежа)); Крутяк, а дальше берешь в базе приемнике пишешь Дата = XMLЗначение(Тип("Дата"), ЧтениеXML.Значение); А все почему? Потому что в файлике у тебя <date>2021-01-22T10:49:47</date> к примеру. Откуда базе приемнику знать, что строка "2021-01-22T10:49:47" это дата пришла, а не гуид номенклатуры к примеру? Теперь понятней?) | ||
Leonardo1c 32 - 22.01.21 - 10:59 | (26) круто - статью писал такой же гений
"На самом деле, я не знаю, как выполнить эту задачу при помощи объекта «СериализаторXDTO», я пользуюсь только фабрикой, но продолжаю считать этот процесс XDTO-сериализацией. Если Вы знаете более правильный способ, то я с удовольствием его изучу." | ||
Ненавижу 1С 33 - 22.01.21 - 11:19 | Значение = МояСсылка; ЗаписьXML = Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку(); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение); СтрокаXML = ЗаписьXML.Закрыть(); Сообщить(СтрокаXML); ЧтениеXML = Новый ЧтениеXML(); ЧтениеXML.УстановитьСтроку(СтрокаXML); Значение = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); Сообщить(Значение); | ||
Leonardo1c 34 - 22.01.21 - 11:22 | (33) работает тока в одной и той же базе | ||
Ненавижу 1С 35 - 22.01.21 - 11:23 | (34) поверь мне, ему это и надо | ||
Гений 1С 36 - 22.01.21 - 11:36 | (34) в смысле, почему в одной и той же базе. Там разве тип объекта не строкой задается? | ||
Гений 1С 37 - 22.01.21 - 11:37 | (31) читать умеем? У меня произвольная ссылка, я ее тип не знаю. | ||
Kassern 38 - 22.01.21 - 11:39 | (37) Я как раз таки умею читать и на вопрос "но ведь есть же XMLЗначение, какого хуанхэ оно не работает без типа?" дал тебе подробный ответ | ||
Гений 1С 39 - 22.01.21 - 11:42 | Погонял код:
Значение = МояСсылка; Сообщить(XMLСтрока(Значение)); ЗаписьXML = Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку(); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение); СтрокаXML = ЗаписьXML.Закрыть(); Сообщить(СтрокаXML); ЧтениеXML = Новый ЧтениеXML(); ЧтениеXML.УстановитьСтроку(СтрокаXML); Значение = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); Сообщить(Значение);Вы будете смеяться, но результаты такие: 95a99866-6c6d-11de-b4b4-00195b6993ba <CatalogRef.Номенклатура xmlns="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">95a99866-6c6d-11de-b4b4-00195b6993ba</CatalogRef.Номенклатура> Бейсболка То бишь XMLстрока просто сериализирует в GUID, это пушной зверек, друзья мои. | ||
Гений 1С 40 - 22.01.21 - 11:44 | Ну ладно, Решение нашлось благодаря ненавижну, только с Сериализатором он перемудрил, старый буквоед. Все проще:
Значение = МояСсылка; ЗаписьXML = Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку(); ЗаписатьXML(ЗаписьXML, Значение); СтрокаXML = ЗаписьXML.Закрыть(); Сообщить(СтрокаXML); ЧтениеXML = Новый ЧтениеXML(); ЧтениеXML.УстановитьСтроку(СтрокаXML); Значение = ПрочитатьXML(ЧтениеXML); Сообщить(Значение); <CatalogRef.Номенклатура>95a99866-6c6d-11de-b4b4-00195b6993ba</CatalogRef.Номенклатура>Бейсболка | ||
Вафель 41 - 22.01.21 - 11:44 | может тебе таки объект нужен? | ||
Гений 1С 42 - 22.01.21 - 11:45 | Хотя все же жаль, что нет компактного преобразования в CatalogRef.Номенклатура.95a99866-6c6d-11de-b4b4-00195b6993baХоть самому пиши, будет лишнее место засираться в базе (41) нет, ссылка. | ||
Вафель 43 - 22.01.21 - 11:46 | обычно тип как атрибут идет | ||
Вафель 44 - 22.01.21 - 11:47 | <Номенклатура type="CatalogRef.Номенклатура">95a99866-6c6d-11de-b4b4-00195b6993ba</Номенклатура > | ||
Leonardo1c 45 - 22.01.21 - 11:48 | с сайта что ли номенклатуру в базе ищешь? | ||
Гений 1С 46 - 22.01.21 - 11:49 | (43) обычно это где?
я сам сериализирую в регистре. (44) Шах и мат, господа: Значение = МояСсылка; ЗаписьXML = Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку(); ЗаписатьXML(ЗаписьXML, Значение); СтрокаXML = ЗаписьXML.Закрыть(); Сообщить(СтрокаXML); СтрокаСЖ = СтрокаXML; СтрокаСЖ = СтрЗаменить(СтрокаСЖ, "<", ""); СтрокаСЖ = СтрЗаменить(СтрокаСЖ, ">", "."); Поз = Найти(СтрокаСЖ, "/"); СтрокаСЖ = Лев(СтрокаСЖ, Поз-1); Сообщить(СтрокаСЖ); ЧтениеXML = Новый ЧтениеXML(); ЧтениеXML.УстановитьСтроку(СтрокаXML); Значение = ПрочитатьXML(ЧтениеXML); Сообщить(Значение); CatalogRef.Номенклатура.95a99866-6c6d-11de-b4b4-00195b6993ba<CatalogRef.Номенклатура>95a99866-6c6d-11de-b4b4-00195b6993ba</CatalogRef.Номенклатура> Бейсболка | ||
Гений 1С 47 - 22.01.21 - 11:50 | ну осталось еще раскодировку написать, но это мелочи.
Поисковая обработка быстрее операций с метаданными, наверное | ||
Вафель 48 - 22.01.21 - 11:50 | (46) выгрузка загрузка xml, когда реквизит составного типа | ||
Вафель 49 - 22.01.21 - 11:51 | CatalogRef.Номенклатура можно и попроще получить | ||
Гений 1С 50 - 22.01.21 - 11:53 | (49) как? (без сарказма, рили скоро кодить это дело буду) | ||
Кирпич 51 - 22.01.21 - 11:56 | XMLТипЗнч(Значение).ИмяТипа | ||
Fragster 52 - 22.01.21 - 12:00 | если ползоваться сериализатором xdto, то он сам атрибут с типом подставит при сериализации и десериализации | ||
DrShad 53 - 22.01.21 - 12:00 | (50) с = XMLСтрока(Ссылка);
т = XMLТипЗнч(Ссылка);
тСтр = т.ИмяТипа; | ||
Fragster 54 - 22.01.21 - 12:01 | главное, чтобы в пакете в импорте был http://v8.1c.ru/8.1/data/current-config | ||
Кирпич 55 - 22.01.21 - 12:24 | (54) Да ему это не надо. Он просто не знал как сделать строку типа "CatalogRef.Номенклатура.95a99866-6c6d-11de-b4b4-00195b6993ba", а наплел про сериализацию и XML.
Какой коуч ему внушил, что 1С должна всё делать как, как он только что придумал? Не нужно искать какой то подвох или глубинный смысл в его вопросах. Если мысленно заменить "Гений" на "Дятел", то суть вопроса проясняется быстрее. | ||
Гений 1С 56 - 22.01.21 - 12:31 | (53) Бро, спаасибо от души:
Значение = МояСсылка;
ТипXML = XMLТипЗнч(Значение);
Сообщить(ТипXML.ИмяТипа + "." + Значение.УникальныйИдентификатор());
Но вот вопрос, как это добро обратно десериализовывать? | ||
DrShad 57 - 22.01.21 - 12:33 | (56) XMLЗначение | ||
Вафель 58 - 22.01.21 - 12:34 | XMLЗначение(<Тип>, <СтрокаXML>) | ||
DrShad 59 - 22.01.21 - 12:42 | XMLЗначение(Тип(ТипXML), XMLСтрока(Значение)) | ||
Кирпич 60 - 22.01.21 - 12:44 | (56) "Но вот вопрос, как это добро обратно десериализовывать?" Видимо, найти точку в тексте Рекламное место пустует | ||
Leonardo1c 61 - 22.01.21 - 12:46 | (60) написать компоненту на C# | ||
DrShad 62 - 22.01.21 - 12:46 | (61) толстый троллинг | ||
mikecool 63 - 22.01.21 - 12:49 | все не читал, с сабжем разобрались? а то у меня аналогичная проблема | ||
Кирпич 64 - 22.01.21 - 12:52 | |||
Гений 1С 65 - 22.01.21 - 13:22 | |||
Гений 1С 66 - 22.01.21 - 13:23 | (64) не вполне, значение из ссылки как оптимально выковыривать, не понятно. только с поиском точки. | ||
DrShad 67 - 22.01.21 - 13:23 | (65) не ищи, разложи строку в массив подстрок и работай с ним | ||
Гений 1С 68 - 22.01.21 - 13:25 | (67) нет проблема даже в другом: нужна обратная для XMLТипЗнч функция.
то бишь из строки CatalogRef.Номенклатура как получить тип СправочникСсылка.Номенклатура? | ||
Leonardo1c 69 - 22.01.21 - 13:29 | (68) СтрРазделить() если компоненту писать не хочешь | ||
Гений 1С 70 - 22.01.21 - 13:30 | (69) да проблема не в разделителе, а в восстановлении типа. 1С опять не написала обратной функции для XMLТипЗнч | ||
DrShad 71 - 22.01.21 - 13:41 | (68) Тип(ТипXML) | ||
Кирпич 72 - 22.01.21 - 14:02 | |||
Leonardo1c 73 - 22.01.21 - 14:04 | (72) СтрокаСЖ = СтрокаXML; СтрокаСЖ = СтрЗаменить(СтрокаСЖ, "<", ""); СтрокаСЖ = СтрЗаменить(СтрокаСЖ, ">", "."); Поз = Найти(СтрокаСЖ, "/"); СтрокаСЖ = Лев(СтрокаСЖ, Поз-1); Сообщить(СтрокаСЖ); у него конвертиться в строку - а обратно не хочет | ||
Гений 1С 74 - 22.01.21 - 14:13 | (72) посмотри внимательнее. обратно можно через ЖО, т.е. через ЧтениеXML с плясками и бубнами | ||
Кирпич 75 - 22.01.21 - 14:31 | (74) Не знаю. У меня бейсболка. | ||
Кирпич 76 - 22.01.21 - 14:32 | |||
Кирпич 77 - 22.01.21 - 14:41 | Ну или просто ЗначениеВСтрокуВнутр вместо изпальцавысосанного "CatalogRef.Номенклатура.95a99866-6c6d-11de-b4b4-00195b6993ba" | ||
Гений 1С 78 - 22.01.21 - 14:55 | (77) там внутренние ID объекта используются, как-то не комильфо и нечитаемо | ||
Гений 1С 79 - 22.01.21 - 14:56 | (76) Не, ну в принципе CatalogRef.Номенклатура.95a99866-6c6d-11de-b4b4-00195b6993ba можно превратить в:
<CatalogRef.Номенклатура>95a99866-6c6d-11de-b4b4-00195b6993ba</CatalogRef.Номенклатура> А далее уже через ЧтениеXML. В принципе, решаемо. | ||
Гений 1С 80 - 22.01.21 - 14:57 | Но твою ж мать, почему функции 1С не замкнуты, почему нет обратной функции к XMLТипЗнч ?
(глас вопиющего в пустыне) | ||
Ненавижу 1С 81 - 22.01.21 - 15:00 | (80) ИзXMLТипа | ||
Ненавижу 1С 82 - 22.01.21 - 15:02 | +(81) конечно это необратная функция, потому что здесь нет биекции | ||
Кирпич 83 - 22.01.21 - 15:04 | (78) Ну читать ты вряд ли будешь, а быстродействие не помешает | ||
Вафель 84 - 22.01.21 - 15:06 | (82) пример можно когда не биекция? | ||
Гений 1С 85 - 22.01.21 - 15:06 | |||
DrShad 86 - 22.01.21 - 15:09 | |||
Кирпич 87 - 22.01.21 - 15:11 | |||
Кирпич 88 - 22.01.21 - 15:17 | Осталось научиться откусить от строки 36 символов с конца. А то и правда начнет точку искать | ||
mikecool 89 - 22.01.21 - 15:21 | |||
Гений 1С 90 - 22.01.21 - 15:21 | (87) гм, пропустил, реально работает. | ||
Кирпич 91 - 22.01.21 - 15:32 | (90) В 1с дофига функций, которые работают | ||
DrShad 92 - 22.01.21 - 15:38 | (91) еще больше, которые не работают, если их неверно применять или не знать о них ))) | ||
Гений 1С 93 - 26.01.21 - 10:53 | Может кому пригодится, выкладываю:
Функция СсылкаВXML(Ссылка) Экспорт  //Сериализирует ссылку в формат вида:  //CatalogRef.Номенклатура.95a99866-6c6d-11de-b4b4-00195b6993ba Если НЕ ЗначениеЗаполнено(Ссылка) Тогда Возврат ""; КонецЕсли; Возврат XMLТипЗнч(Ссылка).ИмяТипа + "." + XMLСтрока(Ссылка); КонецФункции Функция СсылкаИзXML(XML) Экспорт Если XML = "" Тогда Возврат Неопределено; КонецЕсли;  //Десериализирует в ссылку из формат вида:  //CatalogRef.Номенклатура.95a99866-6c6d-11de-b4b4-00195b6993ba Поз = Найти(XML, "."); Ч1 = Лев(XML, Поз - 1); Ч2 = Сред(XML, Поз + 1); Поз = Найти(Ч2, "."); Ч3 = Сред(Ч2, Поз + 1); Ч2 = Лев(Ч2, Поз - 1); Возврат XMLЗначение(Тип(Ч1 + "." + Ч2), Ч3); КонецФункции | ||
dangerouscoder 94 - 26.01.21 - 15:10 | (93) А так Возврат Справочники[Ч2].ПолучитьСсылку(Новый УникальныйИдентификатор(Ч3))); | ||
DrShad 95 - 26.01.21 - 15:21 | (94) а если это будет не справочник? | ||
Salimbek 96 - 26.01.21 - 15:22 | (0) Я игрался со всем этим, когда Шаблонизатор писал. Тут: http://catalog.mista.ru/public/1260777/
Кстати, недавно выяснил, что он и Хранилище тоже в код превращает, только там что-то типа Base64-строки получается. | ||
Kassern 97 - 26.01.21 - 15:39 | (93) Зачем такая портянка, когда есть СтрРазделить(XML,".")? | ||
Гений 1С 98 - 26.01.21 - 16:37 | (97) для общности, не во всех релизах | ||
Гений 1С 99 - 26.01.21 - 16:37 | (95) гыгыгы | ||
acht 100 - 26.01.21 - 17:56 |
1 2 ► |
Список тем форума
|