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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ну и там выдавать номера, в том числе освободившиеся
...
Изменено: 25.05.2022, 12:04 - eNose
Рейтинг: 0 / 0
Страшная история про 1С
    #46481
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  25.05.2022, 12:04
[игнорируется]
лучше уж на делфи сваять dll
У меня до сих пор есть сомнения в этом подходе, хотя он уже отработал 6 лет. Вот есть 20 терминальных юзверей, каждый запустил по процессу, по нажатию кнопки этот процесс подгружает dll, которая должна выдать инфу, которую отосрали предыдущие пользователи, нажавшие эту кнопку. Поскольку процессы все друг от друга изолированы, нужно найти что-то, что может хранить инфу от всех пользователей. Это может быть файловая система, база данных, служба, к которой можно коннектиться по сети или через шаред мемори. Все это нужно грамотно организовать, используя вменяемые инструмены, а не фокспрошную dbf.
А в 1С это все есть из коробки. И блокировки ресурсов, и автоинкримент, все. Просто язык тупой, начинаешь на нем писать что-то нестандартное, получается какой-то пиздец. Или просто "так низя".
Думаю, надо было все-таки одинэсника нанять.
...
Рейтинг: 1 / 0
Нравится: Владайка
Страшная история про 1С
    #46487
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С 1С-плагином есть еще одна проблема, она регистрируется в реестре и пишет туда путь, где она лежит. И если dll лежит в каталоге с базой и кто-то создал копию базы и подгрузил плагин, никто не может точно сказать, из какого каталога dll подгрузится, из того, что в реестре, или из того, что в базе.
Это просто решается, плагин должен лежать в Program files. Но так усложняется подготовка среды для работы с базой.
...
Рейтинг: 0 / 0
Страшная история про 1С
    #46650
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
...
Рейтинг: 0 / 1
Не нравится: Владайка
Страшная история про 1С
    #46684
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  25.05.2022, 15:57
[игнорируется]
Видел. Семерка же!
...
Рейтинг: 1 / 0
Нравится: Владайка
Страшная история про 1С
    #52780
Шоколадный01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по диагонали прочитал..ну и говнище ваше 1ц.
- не генерит гуидов.
- не нужны дырки в интегер .. че бля? походу такое как nummernkreis диапазон номеров на русском вообще там не слыхано?
...
Рейтинг: 0 / 0
Страшная история про 1С
    #52807
IT-Христ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шоколадный01  31.05.2022, 15:25
[игнорируется]
по диагонали прочитал..ну и говнище ваше 1ц.
- не генерит гуидов.
- не нужны дырки в интегер .. че бля? походу такое как nummernkreis диапазон номеров на русском вообще там не слыхано?
Это старая версия 1С, новая много чего умеет.
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / ERP [закрыт для гостей] / Страшная история про 1С
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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