Загадка возвращамого значения ЗначениеВСтрокуВнутр()

05.08.13

Разработка - Математика и алгоритмы

ЗначениеВСтрокуВнутр(Значение); Из синтаксис помощника: Получает системное строковое представление переданного значения. Что же такое "системное строковое представление"? точнее из чего оно состоит?

Скачать исходный код

Наименование Файл Версия Размер
1
.png 22,30Kb
24
.png 1 22,30Kb 24 Скачать

Функция ЗначениеВСтрокуВнутр(Значение) возвращает системное строковое представление в виде строки (пример):

{"#",a86305d7-b8a1-4312-901f-2ade3efdb351,135:bc8b001ec9dd45d011dda3f1f556bd7a}

Для меня задача состояла в формировании данной строки на стороне НЕ 1с системы, но так чтобы 1с воспринимала сформированную строку как примерно свою. Поэтому первым моментом, и самым как оказалось трудным, стала расшифровка этой самой строки.

После поиска на просторах интернета попадая и на форум миста и на форум 1с получилась примерно следующая общая картина:

Расшифровка строки :               

{"#",a86305d7-b8a1-4312-901f-2ade3efdb351,135:bc8b001ec9dd45d011dda3f1f556bd7a}

 

a86305d7-b8a1-4312-901f-2ade3efdb351 – это тип объекта 1с (например справочник организации в данном случае). Описание типов в каждой отдельной базе соответственно разное.

 

135:bc8b001ec9dd45d011dda3f1f556bd7a – UUID (Universally Unique Identifier), где

 

135 – это номер таблицы в sql базе или не в sql (для файлового режима) данных например _ReferenceN135 (в другой базе этот номер может быть другой, в разрезе баз они разные)

 

bc8b001ec9dd45d011dda3f1f556bd7a – перевернутый гуид объекта. (во вложении схема переворачивания). (процедуры прямого и обратного преобразования имеются в виде кода 1с, информация о преобразовании найдена здесь в виде публикации).

См. также

Метод Дугласа-Пойкера для эффективного хранения метрик

Математика и алгоритмы Программист Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    2116    stopa85    12    

34

Алгоритм симплекс-метода для решения задачи раскроя

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    5236    user1959478    50    

35

Регулярные выражения на 1С

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    8429    5    SpaceOfMyHead    17    

60

Мини-обзор разных решений задач

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    3340    RustIG    7    

25

Тестирование средств 1С для решения СЛАУ

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

В статье анализируются средства платформы для решения системы линейных уравнений в 1С. Приводятся доводы в пользу некорректной работы встроенных алгоритмов, а значит потенциально некорректного расчета себестоимости в типовых конфигурациях.

23.11.2022    2445    gzharkoj    13    

23

Модель распределения суммы по базе

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    8173    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Антон Ширяев 529 05.08.13 15:37 Сейчас в теме
Название у статьи заманчивое, но к сожалению тема практически не раскрыта. Рассмотрена только одна узкая область - преобразование строки в ссылку. Реально через ЗначениеВСтрокуВнутр() можно передавать очень много всего, а не только отдельные ссылки.

Приведение строки вида 135:bc8b001ec9dd45d011dda3f1f556bd7a в строку вида {"#",a86305d7-b8a1-4312-901f-2ade3efdb351,135:bc8b001ec9dd45d011dda3f1f556bd7a} я реализовывал в обработке Анализ и редактирование файлов журнала регистрации 1С 8.1/8.2 - ELF/LOG/LGF/LGP.

Алгоритм там достаточно прост. Для получения идентификаторов типа (a86305d7-b8a1-4312-901f-2ade3efdb351) и номера (135) нужно пробежаться по всем метаданным и преобразовать через ЗначениеВСтрокуВнутр() пустые ссылки.
fuser; Meson; yku; lana_veta; vitalya24; +5 Ответить
2. vitalya24 239 05.08.13 15:45 Сейчас в теме
(1) Антон Ширяев, ну за рамками прикладной задачи тема не рассматривалась, спасибо за дополнение:)
3. serpent 69 06.08.13 09:01 Сейчас в теме
Сори Загадка возвращаЕмого
vitalya24; +1 Ответить
4. DrAku1a 1725 07.08.13 03:19 Сейчас в теме
Да... Тема не раскрыта... Это только верхушка айсберга!
Вот например, Про быстрые массивы

А преобразование в ссылку - это активно используется в обработках восстановления из разрушенного 1Cv8.1CD (тут таких полно).
5. mr.Kot 29.10.13 14:14 Сейчас в теме
Может быть тема раскрыта и не так глубоко, но, допустим, я хотел узнать только описанное в статье, целенаправленно стал искать и быстро нашёл, благодаря статье.
6. dyak84 19.01.14 17:49 Сейчас в теме
Автор как к человеку знающиму подскажи как правельней зделать в такой ситуации. Реквизит со значением неограничено преобразовываю при помощи функции ЗначениеВСтрокуВнутр() при обратном преобразовании при помощи функции ЗначениеИзСтрокиВнутр() приисходит ошибка формата потока. Подскажите как быть как можно решить етот вопрос. Зарание спасибо за ответ
7. nobuta 24.01.14 10:40 Сейчас в теме
(6) dyak84, у вас в клиент-серверном варианте такая ошибка возникает?
8. Diversus 2316 08.12.14 14:16 Сейчас в теме
(0) А вот скажите, что дает 135? Критично будет ли следующее:

Пусть значение ЗначениеВСтрокуВнутр дало нам строку вида: {"#",4dcc257a-be68-4de0-bad6-a7dc42232078,135:8269998f2df8084a11e421234b28682d}
Теперь мы возьмем и изменим строку на {"#",4dcc257a-be68-4de0-bad6-a7dc42232078,0:8269998f2df8084a11e421234b28682d}
и попытаемся сделать ЗначениеИзСтрокиВнутр с получившейся строкой.

Результат так же правильно возвращает ссылку. В связи с этим вопрос что дает 135 - номер таблицы во внутренней структуре?
9. Diversus 2316 08.12.14 14:23 Сейчас в теме
(0) И кстати да:
Ссылка1=ЗначениеИзСтрокиВнутр("{""#"",4dcc257a-be68-4de0-bad6-a7dc42232078,135:8269998f2df8084a11e421234b28682d}");
Ссылка2=ЗначениеИзСтрокиВнутр("{""#"",4dcc257a-be68-4de0-bad6-a7dc42232078,0:8269998f2df8084a11e421234b28682d}");
Ссылка3=ЗначениеИзСтрокиВнутр("{""#"",4dcc257a-be68-4de0-bad6-a7dc42232078,9999:8269998f2df8084a11e421234b28682d}");

Все три ссылки будут равны.
S_L_O_N_U_K; user785225; +2 Ответить
10. Xershi 1493 11.03.17 22:13 Сейчас в теме
UUID на мобильной платформе смог получить, а вот номер объекта в таблице БД уже метод не доступен на мобильной платформе.
Методов определения типов объекта 1с вообще не нашел!
Выкрутился другим моментом, что эта фича и не понадобилась.
AlexandrSmith; +1 Ответить
Оставьте свое сообщение