powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите алгоритм сжатия строки текста
7 сообщений из 32, страница 2 из 2
Подскажите алгоритм сжатия строки текста
    #34062182
Кеус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич DocAlХотя у вас, возможно, файл-серверная версия..
И документов 200000/мес?

1C у нас SQL версии. Сомневаюсь, что без вреда для самой 1С не из конфигуратора можно создавать индексы. Документов создается 200 000 в месяц, и от раза к разу их всё больше.
...
Рейтинг: 0 / 0
Подскажите алгоритм сжатия строки текста
    #34064875
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было б интересно узнать, о каком вреде идёт речь... Если, конечно, не о копеечном замедлении занесения данных в базу.)
...
Рейтинг: 0 / 0
Подскажите алгоритм сжатия строки текста
    #34065350
Кеус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DocAlБыло б интересно узнать, о каком вреде идёт речь... Если, конечно, не о копеечном замедлении занесения данных в базу.)

Имеется в виду, что разработчики 1С не рекомендуют что-то менять не посредственно в SQL базе. Конечно это не факт, что возникнут проблемы, но не хочется повредить такую большую базу. Можно делать прямые запросы в SQL базу и даже добавлять новые данные, но создавать индексы... 1С вроде сама создает и удаляет нужные индексы. Проблема не в SQL базе, а в среде 1С. Она сама по себе замедляет работу, прямой запрос к SQL базе выдает результат в 60 раз быстрее, чем тот же запрос в 1С, но это не наш вариант. Исключительно по административным причинам.
...
Рейтинг: 0 / 0
Подскажите алгоритм сжатия строки текста
    #34070038
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создай в Документы->ОбщиеРеквизиты реквизит GUID. поставь галочку отбор.
И в экспорт импорт вместо номера подставляй этот реквизит. и всё.
...
Рейтинг: 0 / 0
Подскажите алгоритм сжатия строки текста
    #34072940
Кеус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПалестинецСоздай в Документы->ОбщиеРеквизиты реквизит GUID. поставь галочку отбор.
И в экспорт импорт вместо номера подставляй этот реквизит. и всё.


В общем случае это хороший вариант. Такую возможность я знаю, мы её рассматривали, но поиск по общему реквизиту всё равно медленней, чем поиск по номеру документа. При небольшом объеме данных это не так заметно, а при нашем имеет значение каждый процент производительности.
Период поиска документа у нас год. Потому что дата документа может, изменится, с даты допустим текущего месяца, после исправления в учреждении стать датой прошлого или даже позапрошлого месяца. Такая возможность вероятна. Если бы период был месяц, то поиск по общему реквизиту нас бы устроил, но к сожалению это не так.
...
Рейтинг: 0 / 0
Подскажите алгоритм сжатия строки текста
    #34092969
ффф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks2

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Option Compare Database
Option Explicit

Private Const HEX As String = "0123456789ABCDEF"

Sub GuidToStr16(ByVal aGUID As String, ByRef aStr16 As String)
Dim i As Long
   aGUID = Mid(aGUID,  2 , Len(aGUID) -  2 )
   aGUID = Replace(aGUID, "-", "")
   aStr16 = ""
   For i =  1  To  32  Step  2 
     aStr16 = aStr16 + Chr(InStr(HEX, Mid(aGUID, i,  1 )) +  16  * InStr(HEX, Mid(aGUID, i +  1 ,  1 )))
   Next
End Sub

Sub tst()
  Dim g As String, s16 As String
  g = "(910023AC-56DC-48B5-BB86-55C1C9A21AC1)"
  GuidToStr16 g, s16
  MsgBox s16
End Sub



А как востановить тот ГУИД номер?
...
Рейтинг: 0 / 0
Подскажите алгоритм сжатия строки текста
    #34121465
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ффф aleks2

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Option Compare Database
Option Explicit

Private Const HEX As String = "0123456789ABCDEF"

Sub GuidToStr16(ByVal aGUID As String, ByRef aStr16 As String)
Dim i As Long
   aGUID = Mid(aGUID,  2 , Len(aGUID) -  2 )
   aGUID = Replace(aGUID, "-", "")
   aStr16 = ""
   For i =  1  To  32  Step  2 
     aStr16 = aStr16 + Chr(InStr(HEX, Mid(aGUID, i,  1 )) +  16  * InStr(HEX, Mid(aGUID, i +  1 ,  1 )))
   Next
End Sub

Sub tst()
  Dim g As String, s16 As String
  g = "(910023AC-56DC-48B5-BB86-55C1C9A21AC1)"
  GuidToStr16 g, s16
  MsgBox s16
End Sub



А как востановить тот ГУИД номер?

А подумать? Нет прЫвычки?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Option Compare Database
Option Explicit

Private Const HEX As String = "0123456789ABCDEF"

Sub GuidToStr16(ByVal aGUID As String, ByRef aStr16 As String)
Dim i As Long
   aGUID = Mid(aGUID,  2 , Len(aGUID) -  2 )
   aGUID = Replace(aGUID, "-", "")
   aStr16 = ""
   For i =  1  To  32  Step  2 
     aStr16 = aStr16 + Chr(InStr(HEX, Mid(aGUID, i,  1 )) -  1  +  16  * (InStr(HEX, Mid(aGUID, i +  1 ,  1 )) -  1 ))
   Next
End Sub

Function Str16ToGuid(ByVal aStr16 As String) As String
Dim i As Long, s As String, b As Byte
   s = ""
   For i =  1  To  16 
     b = Asc(Mid(aStr16, i,  1 ))
     s = s + Mid(HEX, (b And &HF) +  1 ,  1 )
     s = s + Mid(HEX, Int(b /  16 ) +  1 ,  1 )
   Next
   
   Str16ToGuid = "(" + Left(s,  8 ) + "-" + Mid(s,  9 ,  4 ) + "-" + Mid(s,  13 ,  4 ) _
                + "-" + Mid(s,  17 ,  4 ) + "-" + Right(s,  12 ) + ")"
End Function

Sub tst()
  Dim g As String, s16 As String
  g = "(910023AC-56DC-48B5-BB86-55C1C9A21AC1)"
  GuidToStr16 g, s16

  MsgBox Str16ToGuid(s16)
End Sub
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите алгоритм сжатия строки текста
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]