|
Уникальность артикула номенклатуры | ☑ | ||
---|---|---|---|---|
0
korgallom
04.10.24
✎
13:21
|
Добрый день, уважаемые форумчане.
У нас в 1С:КА 2.5.17 существует своя функция, которая создает свой артикул уникальный, функция вызывается перед записью номенклатуры, в ней выполняется запрос, который по шаблону, например 134, ищет последний артикул, где первые 3 символа совпадают, например 134008, находит последний артикул, после чего добавляем 1, и артикул 134009 готов. Проблема в том, что если несколько пользователей создают одновременно номенклатуру, артикулы задваиваются. Может кто посоветует, куда можно копнуть. Вариант с блокировкой не подходит. Может быть, как-то использовать нумератор документов, например. |
|||
1
maxab72
04.10.24
✎
11:43
|
При записи артикул не создавать, а записывать ссылки номенклатуры в очередь (например список значений) и потом общим регламентным заданием раздавать им артикулы)
|
|||
2
shuhard
04.10.24
✎
11:50
|
(0)[несколько пользователей создают одновременно номенклатуру ]
используй MDM и одну точку ввода |
|||
3
korgallom
04.10.24
✎
13:25
|
(1) Вариант, заодно и скорость записи увеличить, единственная проблема, что у пользователя будет открыта номенклатура и если её например заблокировать, то будет ошибка. И пользователи будут думать, где же артикул)
|
|||
4
lEvGl
гуру
04.10.24
✎
11:54
|
почему блокировка номенклатуры не вариант?
если совсем не вариант, то можно вынести счетчики в отдельное место, где блокировка вариант заодно проблем с формированием строковых счетчиков можно избежать, сделать число и прибавлять 1 |
|||
5
maxab72
04.10.24
✎
11:52
|
(3) если ошибка - ссылка не удалятся из очереди, а ждет когда пользователь проснется, получит по ушам и закроет карточку. потом с очередной порцией получит свой артикул.
|
|||
6
korgallom
04.10.24
✎
11:53
|
(2) вы про 1С:MDM Управление нормативно-справочной информацией?
|
|||
7
Timon1405
04.10.24
✎
11:55
|
ищет последний артикул где первые 3 символа совпадают
какой артикул будет следующим для 134999? |
|||
8
korgallom
04.10.24
✎
12:00
|
(7) там в случае что больше нет шаблон обновляется на 135, это отдельная функция. Эта функция работала 4 года успешно, пока я так понимаю штат не увеличился))
|
|||
9
lEvGl
гуру
04.10.24
✎
12:07
|
(8) все грамотно там 👍
|
|||
10
Timon1405
04.10.24
✎
12:09
|
в типовой в справочнике виды номенклатуры в настройках создания номенклатуры для каждого реквизита номенклатуры есть поле-колонка "использовать в контроле уникальности". это должно работать из коробки
|
|||
11
korgallom
04.10.24
✎
12:13
|
(10) проверил в используемых видах данная настройка стоит истина.
|
|||
12
СвинТуз
04.10.24
✎
13:16
|
(0)
Главное чтобы разрядность не закончилась ... в (10) наверное лучшее решение. |
|||
13
CepeLLlka
04.10.24
✎
12:21
|
(12)В УТ в кодах весовых товаров есть такой прикол, только 10 000 весовых товаров может быть и всё. Жалко было походу ещё один разряд добавить, хз
|
|||
14
Timon1405
04.10.24
✎
12:26
|
(11) там еще константа есть КонтролироватьУникальностьРабочегоНаименованияНоменклатурыИХарактеристик
может что-то сломали в дописках что до проверки не доходит? обменданными.загрузка=истина или что-то в этом роде. впрочем, там контроль рабочего наименования вцелом, а не отдельных его частей, может это и не ваш случай |
|||
15
korgallom
04.10.24
✎
12:25
|
(10) проверил перезаписал дубликат перезаписался без ошибки. Может где отключили программно...
|
|||
16
Aleksey
04.10.24
✎
13:14
|
Так а почему нельзя артикул к коду приравнять?
|
|||
17
korgallom
04.10.24
✎
13:25
|
(16) код с префиксом, в теории это бы сработало, но бизнес может не оценить.
|
|||
18
AAA
04.10.24
✎
13:30
|
(17)удалите префикс
Если в артикуле не заложен смысл, то какая разница как он будет формироваться. Ваш артикул все равно бестолковый. Это не артикул, а номер по порядку. И код тоже номер по порядку Ваш артикул просто не нужен. Он лишний |
|||
19
PLUT
04.10.24
✎
13:44
|
(0) ну как вариант добавить свой регистр сведений для "нумератора" артикуйлов: префикс - три первых цыхры артикула, номер - последний присвоенный...
была задача как-то нумеровать договора в отдельный реквизит префикс-номер (причем префиксы разные, длина номера тоже разная - настраивалось в отдельном справочнике префиксов) в обормотчике кнопки: ПодробностиПрефиксНомера = ВыбранныйПрефикс.ПрефиксНомера; ДлинаНомера = ВыбранныйПрефикс.ДлинаНомера; НачатьТранзакцию(); БлокировкаДанных = Новый БлокировкаДанных; ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрСведений.LastDocumentID"); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.УстановитьЗначение("Prefix", ВыбранныйПрефикс); БлокировкаДанных.Заблокировать(); Запрос = Новый Запрос; Запрос.Текст = ПолучитьТекстЗапросаПоследнегоНомераDocumentID(); Запрос.УстановитьПараметр("Префикс", ВыбранныйПрефикс); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); НовыйНомер = Выборка.Номер + 1; МЗ = РегистрыСведений.LastDocumentID.СоздатьМенеджерЗаписи(); МЗ.Prefix = ВыбранныйПрефикс; МЗ.LastNumber = НовыйНомер; МЗ.Записать(); ЗафиксироватьТранзакцию(); Объект.DocumentID = СокрЛП(?(ПустаяСтрока(ПрефиксНомера), "", ПрефиксНомера + "-") + Формат(НовыйНомер, "ЧГ=0")); ЭтаФорма.Модифицированность = Истина; |
|||
20
AAA
04.10.24
✎
13:33
|
(19)еще добавить пару подписок на события и регламентное задание
|
|||
21
PLUT
04.10.24
✎
13:45
|
(20) для чего?
пользователи ручками же создают номенклатуру регистр с "нумератором" и блокировка обеспечат уникальность артикуйла при одновременном заведении номенклатуры ручками(вручную) |
|||
22
arsik
гуру
04.10.24
✎
13:56
|
(0) ПередЗаписью создаете новый, а в ПриЗаписи проверяете, есть ли дубликат. При записи в транзакции выполняется, так что дубликатов не будет.
|
|||
23
lEvGl
гуру
04.10.24
✎
13:58
|
(21) та я уже предлагал, не влетело)
ответа на вопрос "что с блокировкой номенклатуры" не последовало |
|||
24
PLUT
04.10.24
✎
13:58
|
(23) ага, в (4) то же самое
|
|||
25
Eiffil123
04.10.24
✎
14:33
|
(0) зачем изобретать велосипед, если с блокировкой можно это решить, причем достаточно не сложно
|
|||
26
Злопчинский
04.10.24
✎
17:32
|
А почему в артикул тупо не пихать уникальный код номенклатуры?
|
|||
27
Serg_1960
04.10.24
✎
18:09
|
"Вариант с блокировкой не подходит."(0) Ну почему-же сразу "не подходит"? Можно блокировать константу, которая используется в качестве флага монопольного доступа к механизму автонумерации артикулов.
|
|||
28
Serg_1960
04.10.24
✎
18:15
|
+(27) Захватил константу / заблокировал / установил флаг / создал / записал уникальный артикул / сбросил флаг / разблокировал константу... "И пусть весь мир подождет"(слоган Даниссимо)
|
|||
29
craxx
04.10.24
✎
18:49
|
(0) механизм штрихкодов чем плох?
|
|||
30
DrZombi
гуру
07.10.24
✎
06:59
|
(0) При записи элемента блокировать регистр, где у вас там нумератор...
1. Не искать номер, а хранить его в том же регистре, хоть в разобранном состоянии, хоть как-то. 2. Структуру регистра придется продумать... по обстановки (утро, думать все нет желания) Но в структуре писать УИД записи, для контроля, что запись не изменилась, пока вы там её ждали :) 3. Перед записью блокировать запись, пока не запишется с новым, следующим номером. ... 4. И так по кругу... По скорости вы не особо заметите просадки :) |
|||
31
Рэйв
07.10.24
✎
07:36
|
>>несколько пользователей создают одновременно номенклатуру,
бить ремнем по наглым мордам не пробовали? |
|||
32
AlexKimp
07.10.24
✎
08:08
|
(31) за что? движуха у конторы, например, такая, что там один кладовщик коней двинет, поэтому их там 10. нормальная ситуация
(0), (18) да, для поиска решения неплохо бы озвучить бизнесовый смысл артикула |
|||
33
Krendel
07.10.24
✎
09:02
|
(0) Что за позорище, скопируй присвоение артикула как кода в типовой
|
|||
34
СвинТуз
07.10.24
✎
09:58
|
(0)
Вообще надумано. Артикул такая штука уникальность, которой всегда поддерживалась вне 1с кладовщиками и т.д. Абы как с потолка в приличных конторах где он реально нужен не назначается. Артикул = нумератор(порядковый номер) это нонсенс. Используйте код. |
|||
35
maxab72
07.10.24
✎
11:20
|
(34) Уникальность артикула — это зона прямой ответственности товароведа, а не кладовщика. Например, приходит ткань в голубой горошек с текстильной фабрики в Цзянь-Хао с артикулом таким-то, а потом точно такая же ткань с тем же самым рисунком от текстильной фабрики в Чунь-Цинь-Тао (очень частый случай, даже если фабрики между собой никак не связаны) под другим артикулом. И товаровед дает распоряжение кладовщикам присвоить и той и другой ткани единый внутренний артикул, который сам и составит по каким-то внутренним правилам.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |