powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / ERP [закрыт для гостей] / Страшная история про 1С
37 сообщений из 37, показаны все 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
Страшная история про 1С
    #52813
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел, 2006 года платформа. Я думал, вообще прошлый век.
...
Рейтинг: 0 / 0
Страшная история про 1С
    #125898
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Тема была перенесена из форума 'Вопросы по IT'.
...
Администратор:
Тема была перенесена из форума 'Вопросы по IT'.
Рейтинг: 0 / 0
Страшная история про 1С
    #214728
Фотография Владайка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  24.05.2022, 16:37
[игнорируется]
Дэбээфина выросла до 1.5 МБ. Может, ее почистить?
нечто шринкдбф?
...
Рейтинг: 0 / 0
Страшная история про 1С
    #214730
Фотография Владайка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  24.05.2022, 16:53
[игнорируется]
Горбатый ёж  24.05.2022, 16:48
[игнорируется]
Перепиши заново.
Прямо вот так?
Просто Трёп  24.05.2022, 16:37
[игнорируется]
на Дельфи DLL-плагин к 1Ске, который работает со своей отдельной фокспрошной DBFиной
прямо вот так: UUID
...
Рейтинг: 0 / 0
Страшная история про 1С
    #214736
Фотография Владайка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bk0010  24.05.2022, 22:51
[игнорируется]
Если 1С умеет генерить GUID, то пользуйтесь ими: MS гарантирует уникальность. Почему у вас на номер не создан уникальный индекс?
файловая семерка не умеет.
а в скульной (мильпардон, в клиент-серверной) можно в семерке пряміми запрсами забрать УИД из скульбазы.

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

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

в семерке это конечно же гуид = создатьОбъект("...
...
Рейтинг: 0 / 0
Страшная история про 1С
    #214737
Фотография Владайка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  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
Страшная история про 1С
    #214739
Фотография Владайка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  25.05.2022, 10:44
[игнорируется]
Если переписывать, что делать? Может, действительно отказаться от всего нештатного и забубенить фейковый документ? Ну лишний документ, ну и хуй с ним. Там в этой конфигурации и так всякого ваговна. Ложкой больше, ложкой меньше... Работать, правда, будет медленней.
И еще нужен функционал освобождения номера. То есть, если один юзверь решил отказаться от номера, который занял, номер должен освободиться и другой юзверь должен его занять. А 1С-ка такого не позволит. Будет выдавать просто по порядку.
в восьмерке можешь и сам сгенерировать встроенной функцией
...
Изменено: 16.11.2022, 23:58 - Владайка
Рейтинг: 0 / 0
Страшная история про 1С
    #214740
Фотография Владайка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  25.05.2022, 11:28
[игнорируется]
Попадробнее, пожалуйста.
он теоретик
...
Рейтинг: 0 / 0
Страшная история про 1С
    #214742
Фотография Владайка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  25.05.2022, 12:02
[игнорируется]
IT-Христ [игнорируется] 

то есть держать таблицу освободившихся номеров?
что делать если двое одновременно запросят номер? им обоим опять придёт один и тот же?
там сделай транзакцию на свой документ. но это работает для встроенных таблиц. может в xbase для внешних хфайлов у 7.7 есть пдобный
и не нужна тиебе внешняя длл.
Код
1.
начатьтранзакцию() .. зафиксироватьтранзакцию() .. отменитьтранзакцию()
...
Изменено: 17.11.2022, 00:00 - Владайка
Рейтинг: 0 / 0
Страшная история про 1С
    #214743
Фотография Владайка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  25.05.2022, 14:03
[игнорируется]
Просто язык тупой
или не только лишь язык
смотри мои примеры
...
Рейтинг: 0 / 0
Страшная история про 1С
    #214744
Фотография Владайка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  25.05.2022, 14:14
[игнорируется]
кто-то создал копию базы и подгрузил плагин, никто не может точно сказать, из какого каталога dll
вы не читали желто-красные книшки
там написано, что длл сначала берется там-то а если не нашлась, там-то.
...
Изменено: 17.11.2022, 00:00 - Владайка
Рейтинг: 0 / 0
Страшная история про 1С
    #214745
Фотография Владайка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  25.05.2022, 15:57
[игнорируется]
и напуркуа ему 8?
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / ERP [закрыт для гостей] / Страшная история про 1С
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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