|
v7: Генерация GUID | ☑ | ||
---|---|---|---|---|
0
san4ez1008
12.05.17
✎
02:44
|
Всем доброго времени суток. Сбербанк дал примеры для разработки Спасибо от Сбербанка, у них функция реализована на JavaScript. Не могу понять, как в 1С ее переписать.
function s4(){ return Math.floor((1 + Math.random()) * 0x10000) .toString(16) .substring(1); }; function guid(){ // функция для получения guid return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); } хрен с ним с рандомом, Ранд=_GetPerformanceCounter()%(100+1); floor,toString и substring это что? |
|||
1
Sserj
12.05.17
✎
03:44
|
V7PLUS.DLL
Инфо = СоздатьОбъект("AddIn.V7SysInfo"); ГУИД = Инфо.СоздатьGUID(); |
|||
2
san4ez1008
12.05.17
✎
04:53
|
(1) а без v7plus?
|
|||
3
Злопчинский
12.05.17
✎
05:05
|
(2) формекс, см. метод объекта "Сервис", получитьGuid типа, только фигурные скобки слева/справа убрать надо
|
|||
4
Злопчинский
12.05.17
✎
05:06
|
если формекс ненправославен в вашей раскольнической епархии - тогда более чем уверен что гуид можно получить из виндов, через WSH
|
|||
5
Злопчинский
12.05.17
✎
05:08
|
также недавяння моя ветка
http://www.forum.mista.ru/topic.php?upd&id=796272 и по ссылкам в ней http://www.forum.mista.ru/topic.php?upd&id=630426http://www.forum.mista.ru/topic.php?upd&id=630426http://www.forum.mista.ru/topic.php?id=630426http://www.forum.mista.ru/topic.php?id=630426http://www.forum.mista.ru/topic.php?id=630426http://www.forum.mista.ru/topic.php?id=630426 |
|||
6
Злопчинский
12.05.17
✎
05:08
|
а вообще - есть в КЗ
Книга знаний: Получение GUID в 1С |
|||
7
san4ez1008
12.05.17
✎
05:08
|
(4) 1С голая,ни формекса, ни других доп.компонент нету
|
|||
8
Злопчинский
12.05.17
✎
05:14
|
(7) см (6) - через WSH
|
|||
9
Злопчинский
12.05.17
✎
05:15
|
(7) для существующих объектов 1С - ГУИД можно получить из внутреннего ИДа
|
|||
10
VladZ
12.05.17
✎
05:17
|
(7) Нету - поставь!
|
|||
11
san4ez1008
12.05.17
✎
05:22
|
(9) (10) спасибо,вопрос закрыт
|
|||
12
san4ez1008
12.05.17
✎
05:31
|
а по поводу Программное открытие форм
в 1С 7.7 нереально 2 формы на одну обработку? |
|||
13
Sserj
12.05.17
✎
05:53
|
(2)(7) v7plus - часть стандартной поставки 7.7, чем она не походит?
|
|||
14
vladmenleo
12.05.17
✎
06:13
|
Дарю
Процедура Сформировать() Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.Language = "JScript"; Стр = " | |function s4(){ |return Math.floor((1 + Math.random()) * 0x10000) | .toString(16) | .substring(1); |}; |function guid(){ |return s4() + s4() + '-' + s4() + '-' + s4() + '-' + | s4() + '-' + s4() + s4() + s4(); |} |"; Скрипт.AddCode(Стр); Гуй = Скрипт.Run("guid"); Сообщить(Гуй); КонецПроцедуры |
|||
15
1dvd
12.05.17
✎
08:16
|
да, блин. Вы что, ребята? этот код можно на голом 1С написать. Тупая генерация рандомом...
|
|||
16
trdm
12.05.17
✎
08:50
|
_GetPerformanceCounter() - может глючить. Нарывался на такое.
|
|||
17
vladmenleo
12.05.17
✎
09:19
|
(15) Ему пример Сбербанк дал, уже с алгоритмом который их устраивает, так сам бог велел его использовать
|
|||
18
Oftan_Idy
12.05.17
✎
09:45
|
(0) "floor,toString и substring это что?"
Уволен! За профнепригодность |
|||
19
san4ez1008
12.05.17
✎
09:49
|
(18) floor понятно,округление до наименьшего,toString я как понял аналог Строка() в 1С. а substring это что? и 0x10000?
|
|||
20
Oftan_Idy
12.05.17
✎
09:53
|
(19) "substring"
Ну ты хоть бы блин в гугл-транслейт что-ли забил этот текст. Он тебе подскажет смысл этой функции, и ты глядишь догадаешься что в 1С есть точно такая же |
|||
21
Злопчинский
12.05.17
✎
10:02
|
(12) без проблем
|
|||
22
san4ez1008
12.05.17
✎
10:07
|
(21) объясни глупому человеку,ибо было сказано "в 1С 7.7 одна обработка = одна форма"
|
|||
23
Fedor-1971
12.05.17
✎
10:17
|
(19) поищи в сети хелпик по WSH Script56.CHM там по басурмански (возможно, что появился и русский, но это врядли). Почитай на досуге
По (0) вычисляем нечто рандомное + отбрасываем дробную часть + переводим в строку по основанию 16 (т.е. не давим буквы, т.к. исходное число шестнадцатиричное) + после сих манипуляций получаем 5 символов в строке, посему забираем от 1 и до конца. В чём сложность то? |
|||
24
Злопчинский
12.05.17
✎
10:28
|
(22) если имеется в виду "открыть несколько форм одной обработки" то кури
ОткрытьФорму("Обработка.ПоказатьОстаткиТМЦ#ЧитайСП"+_GetPerformanceCounter(), Параметр); если что-то типа для умных одна форма обработки, а для "тупых" - свосем простенькая форма той же обработки - то нет, (хотя думаю мастера смогут извернуться при необходимости) |
|||
25
Fedor-1971
12.05.17
✎
10:36
|
(24) Это два слоя на одной форме
|
|||
26
ADirks
12.05.17
✎
12:01
|
кстати, то, что приведено в (0) - это не GUID. это шляпа полная.
|
|||
27
san4ez1008
12.05.17
✎
12:04
|
(26) ну вот они так его генерируют
|
|||
28
san4ez1008
12.05.17
✎
12:04
|
(26) а как правильно тогда?
|
|||
29
Злопчинский
12.05.17
✎
12:04
|
А вы вообще знаете, что гуиды не бесконечные и их экономить надо и не гегерить по всяким поводам налево-направо?!
|
|||
30
ADirks
12.05.17
✎
12:08
|
(28) правильно любым способом, который использует встроенную в винду функцию генерации GUID'ов. С применением ВК к примеру.
GUID - это не просто случайное число. |
|||
31
san4ez1008
12.05.17
✎
12:11
|
(30) то бишь лучше (6)
|
|||
32
san4ez1008
12.05.17
✎
12:16
|
так..ладно,теперь вопрос, как лучше сделать?
Выписка из ТЗ: Формирование уникального идентификатора чека (параметр "RECEIPT" в расширении "PURCHASE_EXT_PARAMS") Уникальный идентификатор чека – это GUID либо другой уникальный идентификатор, который генерируется при открытии нового чека продажи либо чека возврата. В чеке продажи в запросах по операциям списания и начисления бонусов – передается одинаковое значение параметра "RECEIPT". Аналогично для чека возврата, в запросах возврата по операциям списания и начисления бонусов передается одинаковое значение параметра "RECEIPT" При этом идентификатор в чеке возврата не должен совпадать с идентификатором в чеке продажи. В чеке лучше завести новый реквизит, который будет генерироваться в WSH или с помощью v7plus.dll? |
|||
33
Злопчинский
12.05.17
✎
12:18
|
(32) уникальный в пределах какой области?
Если в рамках конторы и одна касса то уникальный ид вполне достаточно таймстамп датавремя |
|||
34
san4ez1008
12.05.17
✎
12:19
|
(33) в рамках кучи ТТ по области
|
|||
35
Злопчинский
12.05.17
✎
12:24
|
(34) твймстамп+номеркаccы+кодточки
По токлму номеру при необходимости быстро определяется место чека безо всякой автоматизации, в отличие от безликого гуида |
|||
36
san4ez1008
12.05.17
✎
12:39
|
(35) ок,будем думать,спасибо
|
|||
37
Lokli
16.05.17
✎
16:05
|
(23) Есть als для 7.7 по wsh.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |