Страница 1 из 2

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

Добавлено: 13 ноя 2007, 16:47
hope
Нужна помощь!!!

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

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

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

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

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

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

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

Какое может быть решение данной проблемы???

Добавлено: 13 ноя 2007, 16:54
edward_K
возможно все, ну или почти все.
решение доработка фейса 8) . Если конфигуратором не получиться добавить, то с использованием sTxoGetfieldValue через тот же конфигуратор, либ через alter interface и потом опять конфигуратор.

Добавлено: 13 ноя 2007, 17:06
hope
Конфигуратором я могу добавить ном номер, но по нему не работает поиск, что неудобно пользователям.

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

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

По идее, Галактика неправильно делает, что ном номер заменяет штрих-кодом - оба эти поля имеют право на существование в данном интерфейсе!

Добавлено: 13 ноя 2007, 17:51
edward_K
за отдельную плату :). Поиск без alter вы не сделаете, да делать поиск надо по хитрому , с использованием дополнительного интерфейса поиска - quickChoice.

Добавлено: 14 ноя 2007, 12:31
m0p3e
Надь, а какое поле добавляешь конфигуратором?
Если katmc.barkod то поиск работать не будет. А вот при добавлении prices.barkod должен.

Добавлено: 14 ноя 2007, 17:07
hope
Да, добавляю KatMc.BarKod.

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

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

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

Потом всю эту беду выгружаем в торговую систему. А ей уже без разницы как у нас в Галактике все это организовано.

Добавлено: 14 ноя 2007, 20:12
m0p3e
Посмотрел в сырцах.
if (KatOtpEd.bKod <> '')
Prices.BarKod := KatOtpEd.bKod;

и без вариантов... Хоть бы настройку какую добавили...

Добавлено: 14 ноя 2007, 20:15
m0p3e
Хотя есть вариант! У вас же БД под сиквелом!
Можно в триггерах на инсерт и апдейт для таблицы T$Prices прописать принудительную прошивку в Prices.BarKod артикула! :)

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

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

Спасибо, Всем!!!

Добавлено: 15 ноя 2007, 10:09
Алексей
hope
сделайте копию БД и "ломайте" сколько влезет!

Добавлено: 15 ноя 2007, 12:01
m0p3e
Надь, там довольно все просто. Отладить на тестовой и подсунуть в боевую.
Если будет время набросаю. :)

Добавлено: 15 ноя 2007, 14:10
hope
:) Спасибо!

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

после некторых мытарств мне удавалось туда и объектный фейс зацепить.

Добавлено: 20 ноя 2007, 08:50
hope
Спасибо! Как совсем прижмет - придется в триггера лезть...

Добавлено: 21 ноя 2007, 16:52
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