Страница 1 из 2
Штрих-коды и номенклатурные номера
Добавлено: 13 ноя 2007, 16:47
hope
Нужна помощь!!!
В Галактике используем как номенклатурные номера так и штрих-коды.
Номенклатурные номера заносим, как и полагается по логике Галактики, в KatMc.BarKod.
Штрих-коды заносим в KatMc.BarKod2.
Во все интерфейсы добавили наш штрих-код. Работали... почти все устраивало: не устраивало то, что не везде работал поиск по штрих-коду, и то, что штрих-код у МЦ был только один, хотя реально их может быть несколько.
Сейчас остро возникла необходимость в нескольких штрих-кодах: на разные виды упаковки - разные штрих-коды. Логично, что в этом случае штрих-код нужно вводить в отпускных единицах измерения.
Перенесли все штрих-коды в отпускные ед измерения.
При этом, часть пользователей пользуется номенклатурными номера, часть пользователей работает по штрих-кодам.
Теперь при вводе МЦ в прайс-лист в поле номенклатурный номер заносится штрих-код из отпускной единицы измерения. И получается, что номенклатурный номер как таковой отсутствет в прайс-листе. Это не удобно.
Почему Галактика не может отобразить оба поля: и ном номер и штрих-код из отп ед измерения??? Или такое все-таки возможно?
Какое может быть решение данной проблемы???
Добавлено: 13 ноя 2007, 16:54
edward_K
возможно все, ну или почти все.
решение доработка фейса
. Если конфигуратором не получиться добавить, то с использованием 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