Штрих-коды и номенклатурные номера

ПНР и сопровождение

Модераторы: m0p3e, edward_K, Модераторы

hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Штрих-коды и номенклатурные номера

Сообщение hope »

Нужна помощь!!!

В Галактике используем как номенклатурные номера так и штрих-коды.

Номенклатурные номера заносим, как и полагается по логике Галактики, в KatMc.BarKod.
Штрих-коды заносим в KatMc.BarKod2.
Во все интерфейсы добавили наш штрих-код. Работали... почти все устраивало: не устраивало то, что не везде работал поиск по штрих-коду, и то, что штрих-код у МЦ был только один, хотя реально их может быть несколько.

Сейчас остро возникла необходимость в нескольких штрих-кодах: на разные виды упаковки - разные штрих-коды. Логично, что в этом случае штрих-код нужно вводить в отпускных единицах измерения.

Перенесли все штрих-коды в отпускные ед измерения.

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

Теперь при вводе МЦ в прайс-лист в поле номенклатурный номер заносится штрих-код из отпускной единицы измерения. И получается, что номенклатурный номер как таковой отсутствет в прайс-листе. Это не удобно.

Почему Галактика не может отобразить оба поля: и ном номер и штрих-код из отп ед измерения??? Или такое все-таки возможно?

Какое может быть решение данной проблемы???
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

возможно все, ну или почти все.
решение доработка фейса 8) . Если конфигуратором не получиться добавить, то с использованием sTxoGetfieldValue через тот же конфигуратор, либ через alter interface и потом опять конфигуратор.
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

Конфигуратором я могу добавить ном номер, но по нему не работает поиск, что неудобно пользователям.

(часть пользователей пользуется поиском по штрих-коду, другая часть пользователей пользуется поиском по ном номеру).

Подскажите - как использовать sTxoGetfieldValue и alter interface?

По идее, Галактика неправильно делает, что ном номер заменяет штрих-кодом - оба эти поля имеют право на существование в данном интерфейсе!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

за отдельную плату :). Поиск без alter вы не сделаете, да делать поиск надо по хитрому , с использованием дополнительного интерфейса поиска - quickChoice.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Надь, а какое поле добавляешь конфигуратором?
Если katmc.barkod то поиск работать не будет. А вот при добавлении prices.barkod должен.
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

Да, добавляю KatMc.BarKod.

Просто в том-то и вся беда, что при заполнении штрих-кода у отпускной ед измерения, Галактика в поле Prices.Barkod вместо ном номера записывает тот самый штрих-код отп ед измерения. Он и отображается в прайсе.

Вроде выработали методику, чтобы было по-старому и была возможность вести несколько штрих-кодов для одной МЦ:
1. штрих-код для учетной ед измерения заносим по старому в KatMc.BarKod2.
2. Для отп ед измерения, равной учетной, штрих-код не заносим. Всегда делаем эту ед измерения активной.
3. Для других отп ед измерения штрих-код заносим.

Коряво, конечно, но хоть как-то...

Потом всю эту беду выгружаем в торговую систему. А ей уже без разницы как у нас в Галактике все это организовано.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Посмотрел в сырцах.
if (KatOtpEd.bKod <> '')
Prices.BarKod := KatOtpEd.bKod;

и без вариантов... Хоть бы настройку какую добавили...
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Хотя есть вариант! У вас же БД под сиквелом!
Можно в триггерах на инсерт и апдейт для таблицы T$Prices прописать принудительную прошивку в Prices.BarKod артикула! :)
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

Да, Сергей, у нас SQL. Наверное, ты прав - триггера это выход. Только я боюсь лезть в них - боюсь сломать Галактику своими экспериментами...

Попытаюсь поднять этот вопрос перед тех поддержкой.

Спасибо, Всем!!!
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

hope
сделайте копию БД и "ломайте" сколько влезет!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Надь, там довольно все просто. Отладить на тестовой и подсунуть в боевую.
Если будет время набросаю. :)
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

:) Спасибо!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

Хотя есть вариант! У вас же БД под сиквелом!
Можно в триггерах на инсерт и апдейт для таблицы T$Prices прописать принудительную прошивку в Prices.BarKod артикула
Вы тогда уже посмотрите програмные тригеры - это будет работать на любой базе и стандартные не испортите.
Точки расширения - тригера в vipprogr.chm
там и пример есть -
handler ib1 on trigger X$USERS before insert [99] ...

после некторых мытарств мне удавалось туда и объектный фейс зацепить.
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

Спасибо! Как совсем прижмет - придется в триггера лезть...
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Ну вот так вроде работает :)

Вставляем кусок в триггера T$PRICES_I и T$PRICES_U после строчки
END -- end force update fields

Код: Выделить всё

-- Force Update Barkod
IF ( SELECT F$TIP FROM Inserted ) = 0
  UPDATE T$PRICES SET
    T$PRICES.F$BARKOD = ( SELECT F$BARKOD FROM T$KATMC WHERE T$KATMC.F$NREC = Inserted.F$CTHING )
    FROM Inserted WHERE T$PRICES.F$NREC=Inserted.F$NREC
Ответить