Как задать выборку Штрихкода Ean13 в заданном интервале
Добрый день уважаемые форумчане. Есть сетка магазинов работающая на распределенной базе данных.
Встала задача формирования штрих-кодов тип EAN-13 (для индивидуальных скидок) на каждом из магазинов.
Сразу возникает трудность, с тем, что если запустить формирование штрих-кодов как есть, будут дубли, трибли и т.п.
Чтобы решить данную проблему было найдено решение, задать внутренний префикс, чтобы не пересекались с основными штрихкодами, и на каждый магазин выделить интервал с кодами.
Штрих-код: 2007________К ; к - контрольный символ
Теперь стоит задача. Известен интвервал с 2000 по 12000 тысяч. Как в данном интервале найти последний с генерированный штрих-код? желательно в запросе.
Может кто решал похожую задачу?
В рознице я нашел похожую выборку с учетом внутренних префиксов:
Но как адаптировать под дополнительную выборку, по периоду. я залипаю...
Встала задача формирования штрих-кодов тип EAN-13 (для индивидуальных скидок) на каждом из магазинов.
Сразу возникает трудность, с тем, что если запустить формирование штрих-кодов как есть, будут дубли, трибли и т.п.
Чтобы решить данную проблему было найдено решение, задать внутренний префикс, чтобы не пересекались с основными штрихкодами, и на каждый магазин выделить интервал с кодами.
Штрих-код: 2007________К ; к - контрольный символ
Теперь стоит задача. Известен интвервал с 2000 по 12000 тысяч. Как в данном интервале найти последний с генерированный штрих-код? желательно в запросе.
Может кто решал похожую задачу?
В рознице я нашел похожую выборку с учетом внутренних префиксов:
ВЫБРАТЬ
ПОДСТРОКА(ЯШтрихкодыДокументов.Штрихкод, 5, 8) КАК Код
ИЗ
РегистрСведений.ЯШтрихкодыДокументов КАК ЯШтрихкодыДокументов
ГДЕ
ЯШтрихкодыДокументов.ТипШтрихкода = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыШтрихкодов.EAN13)
И ЯШтрихкодыДокументов.Штрихкод ПОДОБНО "2007_________"
ПоказатьНо как адаптировать под дополнительную выборку, по периоду. я залипаю...
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
ВЫБРАТЬ
МАКСИМУМ(ПОДСТРОКА(ЯШтрихкодыДокументов.Штрихкод, 5, 8)) КАК Код
ИЗ
РегистрСведений.ЯШтрихкодыДокументов КАК ЯШтрихкодыДокументов
ГДЕ
ЯШтрихкодыДокументов.ТипШтрихкода = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыШтрихкодов.EAN13)
И ЯШтрихкодыДокументов.Штрихкод ПОДОБНО "2007%"
Пожалуй, вариант (3) лучший. Даже можно прикрутить к нему условие
вместо
и должен сработать. Или
только передавать параметром.
|ГДЕ
| Таб.Код > """+ ДиапазонНачало+""""+ " И Таб.Код < """+ ДиапазонОкончание +"""
ЯШтрихкодыДокументов.Штрихкод ПОДОБНО "2007_________"
ЯШтрихкодыДокументов.Штрихкод ПОДОБНО "200712%"
А так?
ВЫБРАТЬ ПЕРВЫЕ 1
ПОДСТРОКА(ЯШтрихкодыДокументов.Штрихкод, 5, 8) КАК Код
ИЗ
РегистрСведений.ЯШтрихкодыДокументов КАК ЯШтрихкодыДокументов
ГДЕ
ЯШтрихкодыДокументов.ТипШтрихкода = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыШтрихкодов.EAN13)
И ЯШтрихкодыДокументов.Штрихкод ПОДОБНО "2007_________"
УПОРЯДОЧИТЬ ПО ЯШтрихкодыДокументов.Штрихкод УБЫВ
(4) это сколько же магазинов, что потребовались именно интервалы?
2007 префикс общий.
для каждого магазина дополнительный префикс ХХ.
Пример, для 1 магазина префикс будет 200701, для 2 - 200702 и т.д.
И выбирается простои и по штрихкоду сразу видно из какого магазина.
2007 префикс общий.
для каждого магазина дополнительный префикс ХХ.
Пример, для 1 магазина префикс будет 200701, для 2 - 200702 и т.д.
И выбирается простои и по штрихкоду сразу видно из какого магазина.
(5) магазинов много. в данном случае 20, но если брать общую задачу, то что делать когда их 200?
А 500? мне такие сетки знакомы.
Пока выкрутился так, удивительно но сравнение в запросе работает:
А 500? мне такие сетки знакомы.
Пока выкрутился так, удивительно но сравнение в запросе работает:
ДиапазонНачало = ДополнитьСимволами("0", 8-СтрДлина(СтрЗаменить(Строка(Диапазон.Начало), " ","")))+СтрЗаменить(Строка(Диапазон.Начало), " ","");
ДиапазонОкончание = ДополнитьСимволами("0", 8-СтрДлина(СтрЗаменить(Строка(Диапазон.Конец), " ","")))+СтрЗаменить(Строка(Диапазон.Конец), " ","");
Запрос = Новый Запрос("
|ВЫБРАТЬ
| ПОДСТРОКА(ЯШтрихкодыДокументов.Штрихкод, 5, 8) Как Код,
| ЯШтрихкодыДокументов.Штрихкод Как ШтрихКод
|Поместить Таб
|ИЗ
| РегистрСведений.ЯШтрихкодыДокументов КАК ЯШтрихкодыДокументов
|ГДЕ
| ЯШтрихкодыДокументов.ТипШтрихкода = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыШтрихкодов.EAN13)
| И ЯШтрихкодыДокументов.Штрихкод ПОДОБНО ""2" + ПрефиксШтучногоТовара + ПрефиксВнутреннегоШтрихкода + "_________""
|
| ;
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Таб.Код,
| Таб.Штрихкод
|ИЗ
| Таб КАК Таб
|ГДЕ
| Таб.Код > """+ ДиапазонНачало+""""+ " И Таб.Код < """+ ДиапазонОкончание +"""
|УПОРЯДОЧИТЬ ПО
|Код УБЫВ
|");
Показать
(6) если даже ориентироваться на очень большую сеть и префикс магазина сделать 3 символа.
Посчитаем. Общий префикс = 4 символа. Префикс магазина 3 символа. Итого 7 символов.
Учитывая использования EAN13 имеем всего 12 значащих символа. Вычитаем префиксы, получаем 5 разрядов.
В существующем решении имеем диапазон в 12000 штрихкодов. Те же 5 разрядов, но из-за диапазона в 8 раз меньше значений. И куча проблем сейчас и в будущем.
Посчитаем. Общий префикс = 4 символа. Префикс магазина 3 символа. Итого 7 символов.
Учитывая использования EAN13 имеем всего 12 значащих символа. Вычитаем префиксы, получаем 5 разрядов.
В существующем решении имеем диапазон в 12000 штрихкодов. Те же 5 разрядов, но из-за диапазона в 8 раз меньше значений. И куча проблем сейчас и в будущем.
(8) Я не совсем согласен выделять магазину отдельный префикс. Даже если их 3 штуки. Хотя ваше решение тоже имеет место быть.
Префиксы куда-то надо записывать, возможно константы или по справочнику магазинов. Магазины имеют свойство открываться и закрываться, и что делать с оставшейся емкостью?
И как это помнить пользователю? Хранить инструкции которые ни кто не читает? А если еще и текучка сотрудников.
При этом еще нужно развести с номенклатурой и инфокартами, и многое чем.
В моём решении, есть возможность задать все в одном справочнике, и что главное в любой момент менять, любые диапазоны кодов, куда остальные штрих коды попадать попросту не будут.
Но это дело каждого. На вкус и цвет.. товарища....
Я за универсальность и удобство настройки...
Префиксы куда-то надо записывать, возможно константы или по справочнику магазинов. Магазины имеют свойство открываться и закрываться, и что делать с оставшейся емкостью?
И как это помнить пользователю? Хранить инструкции которые ни кто не читает? А если еще и текучка сотрудников.
При этом еще нужно развести с номенклатурой и инфокартами, и многое чем.
В моём решении, есть возможность задать все в одном справочнике, и что главное в любой момент менять, любые диапазоны кодов, куда остальные штрих коды попадать попросту не будут.
Но это дело каждого. На вкус и цвет.. товарища....
Я за универсальность и удобство настройки...
(9) т.е. интервал кодов 0-12000 это универсально и удобно, а интервал кодов 0-99999 это проблемы?
Не нравится слово префикс, не используйте. Считайте это интервалом, если так удобнее представить.
Хороший архитектор это половина успеха и минимум проблем в будущем.
Не нравится слово префикс, не используйте. Считайте это интервалом, если так удобнее представить.
Хороший архитектор это половина успеха и минимум проблем в будущем.
(10) Дело не ёмкости интервала, а в возможности его задать и ограничить, как собственно и работать в данном интервале.
Вопрос темы изначально был, как выбрать интервал штрих-кодов в заданном интервале.
Меня искренне удивляют Ваши попытки продавливать решение, хотя оно в рамки текущего вопроса не совсем вписывается.
Возможность вашего решения я признал, но обсуждать его без привязки к конкретному случаю, считаю не целесообразным.
Вопрос темы изначально был, как выбрать интервал штрих-кодов в заданном интервале.
Меня искренне удивляют Ваши попытки продавливать решение, хотя оно в рамки текущего вопроса не совсем вписывается.
Возможность вашего решения я признал, но обсуждать его без привязки к конкретному случаю, считаю не целесообразным.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот