Гость
Map
Форумы / ERP [закрыт для гостей] / Страшная история про 1С / 37 сообщений из 37, показаны все 2 страниц
24.05.2022, 16:37
    #45578
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
6 лет назад возникла задача генерировать гарантированно уникальный номер в файловой 1С 7.7. Не смейтесь. Бывает.
Причем в 1С есть встроенный механизм, который это делает, но он работает только для кодов документов. То есть, если хочешь сгенерировать уникальный номер, надо в конфигураторе создать фейковый документ и журнал к нему, а потом в работе создать документ и получить его код. Задействовать этот механизм без создания лишних пустых документов наверное, можно, но я не нашел, как. И пошел своим путем. Это вообще пиздец. Как вспомню, остатки волос дыбом на голове встают. Дальше слабонервным не читать.

Я написал на Дельфи DLL-плагин к 1Ске, который работает со своей отдельной фокспрошной DBFиной и просто записывает в нее уже выданный номер и дату, когда этот номер был выдан. По задумке, уникальность номера была гарантирована. Плагин создавал лок-файл, работал с dbf, убирал лок-файл. Поскольку все пользователи работали в терминале, все это происходило на одном компе, в одном каталоге, все должно быть пучком.

В общем, сегодня выяснилось, что номера задваиваются. Иногда. Очень редко. На меня смотрят с удивленными глазами, а я делаю задумчивое и немного загадочное лицо.

Провели эксперимент, два человека нажали на кнопку генерации номера одновременно, по щелчку пальцев. Номера получились уникальные.

Дэбээфина выросла до 1.5 МБ. Может, ее почистить?

Да хуй с ней, этой дэбээфиной. Как теперь с этим жить?
...
Рейтинг: 0 / 0
24.05.2022, 16:48
    #45587
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  24.05.2022, 16:37
[игнорируется]
Как теперь с этим жить?
Перепиши заново.
...
Рейтинг: 0 / 0
24.05.2022, 16:53
    #45589
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Горбатый ёж  24.05.2022, 16:48
[игнорируется]
Перепиши заново.
Прямо вот так?
Просто Трёп  24.05.2022, 16:37
[игнорируется]
на Дельфи DLL-плагин к 1Ске, который работает со своей отдельной фокспрошной DBFиной
...
Рейтинг: 0 / 0
24.05.2022, 18:30
    #45612
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп [игнорируется] 

Тебе виднее.
Я в 1С дуб-дубыч.
...
Рейтинг: 0 / 0
24.05.2022, 18:34
    #45614
IT-Христ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  24.05.2022, 16:37
[игнорируется]
6 лет назад возникла задача генерировать гарантированно уникальный номер в файловой 1С 7.7. Не смейтесь. Бывает.
Причем в 1С есть встроенный механизм, который это делает, но он работает только для кодов документов. То есть, если хочешь сгенерировать уникальный номер, надо в конфигураторе создать фейковый документ и журнал к нему, а потом в работе создать документ и получить его код. Задействовать этот механизм без создания лишних пустых документов наверное, можно, но я не нашел, как. И пошел своим путем. Это вообще пиздец. Как вспомню, остатки волос дыбом на голове встают. Дальше слабонервным не читать.

Я написал на Дельфи DLL-плагин к 1Ске, который работает со своей отдельной фокспрошной DBFиной и просто записывает в нее уже выданный номер и дату, когда этот номер был выдан. По задумке, уникальность номера была гарантирована. Плагин создавал лок-файл, работал с dbf, убирал лок-файл. Поскольку все пользователи работали в терминале, все это происходило на одном компе, в одном каталоге, все должно быть пучком.

В общем, сегодня выяснилось, что номера задваиваются. Иногда. Очень редко. На меня смотрят с удивленными глазами, а я делаю задумчивое и немного загадочное лицо.

Провели эксперимент, два человека нажали на кнопку генерации номера одновременно, по щелчку пальцев. Номера получились уникальные.

Дэбээфина выросла до 1.5 МБ. Может, ее почистить?

Да хуй с ней, этой дэбээфиной. Как теперь с этим жить?
Номер подлиньше и генератор случайных чисел, на 1С. Где нибудь хранить предыдущее значение.
...
Рейтинг: 0 / 0
24.05.2022, 22:08
    #45802
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Дата время тики

Гарантированно уникальные
...
Рейтинг: 1 / 0
Нравится: Владайка
24.05.2022, 22:51
    #45910
bk0010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Если 1С умеет генерить GUID, то пользуйтесь ими: MS гарантирует уникальность. Почему у вас на номер не создан уникальный индекс?
...
Рейтинг: 0 / 0
24.05.2022, 23:31
    #45976
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Не, там гуиды и случайные числа не катят. Нужны номера по порядку.

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

1С 7.7
DLL
Драйвер фокс про
дбф
файловая система на сервере, где кроме виндового кэша кэш контроллера и дисков, в многопользовательском режиме.

самая жопа - драйвер фокс про.

Все это нагромождение просто не может работать надежно, а где происходит ошибка, хуй поймешь.
...
Рейтинг: 0 / 0
25.05.2022, 06:21
    #46208
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Вообще автоинкремент даже в дбф гарантирует уникальность

Надо сильно постараться сделать бд несетевой
...
Рейтинг: 0 / 0
25.05.2022, 07:41
    #46228
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
eNose  25.05.2022, 06:21
[игнорируется]
Вообще автоинкремент даже в дбф гарантирует уникальность
Ему дырки не нужны.
...
Рейтинг: 0 / 0
25.05.2022, 09:12
    #46251
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Горбатый ёж  25.05.2022, 07:41
[игнорируется]
eNose  25.05.2022, 06:21
[игнорируется]
Вообще автоинкремент даже в дбф гарантирует уникальность
Ему дырки не нужны.
очень зря

дырки нужны на всякий случай
...
Рейтинг: 0 / 0
25.05.2022, 10:44
    #46315
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Если переписывать, что делать? Может, действительно отказаться от всего нештатного и забубенить фейковый документ? Ну лишний документ, ну и хуй с ним. Там в этой конфигурации и так всякого ваговна. Ложкой больше, ложкой меньше... Работать, правда, будет медленней.
И еще нужен функционал освобождения номера. То есть, если один юзверь решил отказаться от номера, который занял, номер должен освободиться и другой юзверь должен его занять. А 1С-ка такого не позволит. Будет выдавать просто по порядку.
...
Рейтинг: 0 / 0
25.05.2022, 10:56
    #46317
IT-Христ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  25.05.2022, 10:44
[игнорируется]
Если переписывать, что делать? Может, действительно отказаться от всего нештатного и забубенить фейковый документ? Ну лишний документ, ну и хуй с ним. Там в этой конфигурации и так всякого ваговна. Ложкой больше, ложкой меньше... Работать, правда, будет медленней.
И еще нужен функционал освобождения номера. То есть, если один юзверь решил отказаться от номера, который занял, номер должен освободиться и другой юзверь должен его занять. А 1С-ка такого не позволит. Будет выдавать просто по порядку.
-Сделай документ номер, в реквизитах будет пользователь, и передавай как документ.
...
Рейтинг: 0 / 0
25.05.2022, 11:28
    #46334
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Попадробнее, пожалуйста.
...
Рейтинг: 0 / 0
25.05.2022, 11:46
    #46358
IT-Христ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  25.05.2022, 11:28
[игнорируется]
Попадробнее, пожалуйста.
Документы это для отражения деятельности предприятия. Сделай документ, который отражает выдачу номера, он не фейковый будет, а вполне рабочий.
...
Рейтинг: 0 / 0
25.05.2022, 11:49
    #46363
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  25.05.2022, 10:44
[игнорируется]
И еще нужен функционал освобождения номера. То есть, если один юзверь решил отказаться от номера, который занял, номер должен освободиться и другой юзверь должен его занять.
чо за бред???

а если с момента выдачи до момента отказа номера успели получить 100500 человек?
...
Рейтинг: 0 / 0
25.05.2022, 11:52
    #46367
IT-Христ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
eNose  25.05.2022, 11:49
[игнорируется]
Просто Трёп  25.05.2022, 10:44
[игнорируется]
И еще нужен функционал освобождения номера. То есть, если один юзверь решил отказаться от номера, который занял, номер должен освободиться и другой юзверь должен его занять.
чо за бред???

а если с момента выдачи до момента отказа номера успели получить 100500 человек?
Тем более в документ номера писать какому юзеру он принадлежит и свободный ли. Если номер свободный, то можно другому передать.
...
Рейтинг: 0 / 0
25.05.2022, 12:02
    #46379
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
IT-Христ  25.05.2022, 11:52
[игнорируется]
eNose  25.05.2022, 11:49
[игнорируется]
Просто Трёп  25.05.2022, 10:44
[игнорируется]
И еще нужен функционал освобождения номера. То есть, если один юзверь решил отказаться от номера, который занял, номер должен освободиться и другой юзверь должен его занять.
чо за бред???

а если с момента выдачи до момента отказа номера успели получить 100500 человек?
Тем более в документ номера писать какому юзеру он принадлежит и свободный ли. Если номер свободный, то можно другому передать.
то есть держать таблицу освободившихся номеров?
что делать если двое одновременно запросят номер? им обоим опять придёт один и тот же?
...
Рейтинг: 0 / 0
25.05.2022, 12:04
    #46381
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
лучше уж на делфи сваять dll, которая организаует стек fifo

ну и там выдавать номера, в том числе освободившиеся
...
Изменено: 25.05.2022, 12:04 - eNose
Рейтинг: 0 / 0
25.05.2022, 14:03
    #46481
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
eNose  25.05.2022, 12:04
[игнорируется]
лучше уж на делфи сваять dll
У меня до сих пор есть сомнения в этом подходе, хотя он уже отработал 6 лет. Вот есть 20 терминальных юзверей, каждый запустил по процессу, по нажатию кнопки этот процесс подгружает dll, которая должна выдать инфу, которую отосрали предыдущие пользователи, нажавшие эту кнопку. Поскольку процессы все друг от друга изолированы, нужно найти что-то, что может хранить инфу от всех пользователей. Это может быть файловая система, база данных, служба, к которой можно коннектиться по сети или через шаред мемори. Все это нужно грамотно организовать, используя вменяемые инструмены, а не фокспрошную dbf.
А в 1С это все есть из коробки. И блокировки ресурсов, и автоинкримент, все. Просто язык тупой, начинаешь на нем писать что-то нестандартное, получается какой-то пиздец. Или просто "так низя".
Думаю, надо было все-таки одинэсника нанять.
...
Рейтинг: 1 / 0
Нравится: Владайка
25.05.2022, 14:14
    #46487
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
С 1С-плагином есть еще одна проблема, она регистрируется в реестре и пишет туда путь, где она лежит. И если dll лежит в каталоге с базой и кто-то создал копию базы и подгрузил плагин, никто не может точно сказать, из какого каталога dll подгрузится, из того, что в реестре, или из того, что в базе.
Это просто решается, плагин должен лежать в Program files. Но так усложняется подготовка среды для работы с базой.
...
Рейтинг: 0 / 0
25.05.2022, 15:57
    #46650
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
...
Рейтинг: 0 / 1
Не нравится: Владайка
25.05.2022, 16:44
    #46684
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
eNose  25.05.2022, 15:57
[игнорируется]
Видел. Семерка же!
...
Рейтинг: 1 / 0
Нравится: Владайка
31.05.2022, 15:25
    #52780
Шоколадный01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
по диагонали прочитал..ну и говнище ваше 1ц.
- не генерит гуидов.
- не нужны дырки в интегер .. че бля? походу такое как nummernkreis диапазон номеров на русском вообще там не слыхано?
...
Рейтинг: 0 / 0
31.05.2022, 16:22
    #52807
IT-Христ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Шоколадный01  31.05.2022, 15:25
[игнорируется]
по диагонали прочитал..ну и говнище ваше 1ц.
- не генерит гуидов.
- не нужны дырки в интегер .. че бля? походу такое как nummernkreis диапазон номеров на русском вообще там не слыхано?
Это старая версия 1С, новая много чего умеет.
...
Рейтинг: 0 / 0
31.05.2022, 16:27
    #52813
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Посмотрел, 2006 года платформа. Я думал, вообще прошлый век.
...
Рейтинг: 0 / 0
25.08.2022, 18:24
    #125898
Администратор
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Тема была перенесена из форума 'Вопросы по IT'.
...
Администратор:
Тема была перенесена из форума 'Вопросы по IT'.
Рейтинг: 0 / 0
16.11.2022, 23:40
    #214728
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  24.05.2022, 16:37
[игнорируется]
Дэбээфина выросла до 1.5 МБ. Может, ее почистить?
нечто шринкдбф?
...
Рейтинг: 0 / 0
16.11.2022, 23:43
    #214730
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  24.05.2022, 16:53
[игнорируется]
Горбатый ёж  24.05.2022, 16:48
[игнорируется]
Перепиши заново.
Прямо вот так?
Просто Трёп  24.05.2022, 16:37
[игнорируется]
на Дельфи DLL-плагин к 1Ске, который работает со своей отдельной фокспрошной DBFиной
прямо вот так: UUID
...
Рейтинг: 0 / 0
16.11.2022, 23:48
    #214736
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
bk0010  24.05.2022, 22:51
[игнорируется]
Если 1С умеет генерить GUID, то пользуйтесь ими: MS гарантирует уникальность. Почему у вас на номер не создан уникальный индекс?
файловая семерка не умеет.
а в скульной (мильпардон, в клиент-серверной) можно в семерке пряміми запрсами забрать УИД из скульбазы.

но можно с помощью того же WSH

guid = createobject("scriptlet.typelib").
guid msgbox guid
Это возвращает что-то вроде: {75111620-C143-11D3-A82A-00E02948E7D6}

в семерке это конечно же гуид = создатьОбъект("...
...
Рейтинг: 0 / 0
16.11.2022, 23:49
    #214737
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  24.05.2022, 23:31
[игнорируется]
1С 7.7
DLL
Драйвер фокс про
дбф
файловая система на сервере, где кроме виндового кэша кэш контроллера и дисков, в многопользовательском режиме.

самая жопа - драйвер фокс про.

Все это нагромождение просто не может работать надежно, а где происходит ошибка, хуй поймешь.
выкинуть всё кху ям и переписать:
Код: C
1.
2.
guid = createobject("scriptlet.typelib").
guid msgbox guid
Это возвращает что-то вроде:
{75111620-C143-11D3-A82A-00E02948E7D6}
...
Изменено: 16.11.2022, 23:57 - Владайка
Рейтинг: 0 / 0
16.11.2022, 23:50
    #214739
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  25.05.2022, 10:44
[игнорируется]
Если переписывать, что делать? Может, действительно отказаться от всего нештатного и забубенить фейковый документ? Ну лишний документ, ну и хуй с ним. Там в этой конфигурации и так всякого ваговна. Ложкой больше, ложкой меньше... Работать, правда, будет медленней.
И еще нужен функционал освобождения номера. То есть, если один юзверь решил отказаться от номера, который занял, номер должен освободиться и другой юзверь должен его занять. А 1С-ка такого не позволит. Будет выдавать просто по порядку.
в восьмерке можешь и сам сгенерировать встроенной функцией
...
Изменено: 16.11.2022, 23:58 - Владайка
Рейтинг: 0 / 0
16.11.2022, 23:50
    #214740
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  25.05.2022, 11:28
[игнорируется]
Попадробнее, пожалуйста.
он теоретик
...
Рейтинг: 0 / 0
16.11.2022, 23:51
    #214742
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
eNose  25.05.2022, 12:02
[игнорируется]
IT-Христ [игнорируется] 

то есть держать таблицу освободившихся номеров?
что делать если двое одновременно запросят номер? им обоим опять придёт один и тот же?
там сделай транзакцию на свой документ. но это работает для встроенных таблиц. может в xbase для внешних хфайлов у 7.7 есть пдобный
и не нужна тиебе внешняя длл.
Код
1.
начатьтранзакцию() .. зафиксироватьтранзакцию() .. отменитьтранзакцию()
...
Изменено: 17.11.2022, 00:00 - Владайка
Рейтинг: 0 / 0
16.11.2022, 23:52
    #214743
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  25.05.2022, 14:03
[игнорируется]
Просто язык тупой
или не только лишь язык
смотри мои примеры
...
Рейтинг: 0 / 0
16.11.2022, 23:54
    #214744
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
Просто Трёп  25.05.2022, 14:14
[игнорируется]
кто-то создал копию базы и подгрузил плагин, никто не может точно сказать, из какого каталога dll
вы не читали желто-красные книшки
там написано, что длл сначала берется там-то а если не нашлась, там-то.
...
Изменено: 17.11.2022, 00:00 - Владайка
Рейтинг: 0 / 0
16.11.2022, 23:55
    #214745
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшная история про 1С
eNose  25.05.2022, 15:57
[игнорируется]
и напуркуа ему 8?
...
Рейтинг: 0 / 0
Форумы / ERP [закрыт для гостей] / Страшная история про 1С / 37 сообщений из 37, показаны все 2 страниц
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Игнорируют тему (1): erbol
Читали форум (1): Анонимы (1)
Пользователи онлайн (120): Анонимы (103), serg_tmb, Королева Жезлов, жЫвоглот, basename, Green, Молоко, XEugene, Bing Bot 1 мин., Неуловимый Джо 2 мин., Yandex Bot 2 мин., Брюквенные годы 3 мин., pashtetos1 3 мин., IT-Клоп 3 мин., anonymous 5 мин., Ветер 7 мин., Просто Трёп 8 мин., ElenaG 9 мин.
x
x
Закрыть


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