+7 499 990-10-21

Как удалить конкретный штрих-код у позиции

Re: Как удалить конкретный штрих-код у позиции

Сообщение Alexander » 15 апр 2013, 12:56

Есть понимание, какой штрих-код должен быть назначен основным после удаления текущего?
Alexander
 
Постов: 4994
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Как удалить конкретный штрих-код у позиции

Сообщение kedr19 » 15 апр 2013, 13:04

в 1с как такового, основной ШК, понятия не существует. Но есть список существующих ШК значит можно подсунуть любой как основной.
Значит алгоритм будет следующий:
1. Заменяю основной на не удаляемый ШК.
2. Удаляю лишний.
Какая команда для замены основного?
kedr19
 
Постов: 587
Зарегистрирован: 24 окт 2011, 15:49
Откуда: г. Новосибирск

Re: Как удалить конкретный штрих-код у позиции

Сообщение Alexander » 15 апр 2013, 13:15

Код: Выделить всё
psql LinCash -U kassir -c "UPDATE ware_barcode SET main_barcode = 't' WHERE internal_id = '1234' AND barcode = '12345678'"
Alexander
 
Постов: 4994
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Как удалить конкретный штрих-код у позиции

Сообщение kedr19 » 16 апр 2013, 10:38

Прошу дать комментарии на вариант удаления.
1. В 1с обработкой подбирается что нужно удалить
2. Формируется файл с командами, в зависимости от задачи, где каждая команда отделена переносом строки
3. Файл записывается в папку обмена БД
4. В БД пишу демона который смотрит наличие файла с определенным именем и делает файл исполняемым
5. Стартует его на выполнение
kedr19
 
Постов: 587
Зарегистрирован: 24 окт 2011, 15:49
Откуда: г. Новосибирск

Re: Как удалить конкретный штрих-код у позиции

Сообщение Alexander » 16 апр 2013, 11:07

Вариант:
1. В 1с обработкой подбирается что нужно удалить
2. Формируется файл с sql-запросами, в зависимости от задачи, где каждый запрос заканчивается символом ";"
3. Файл записывается в папку обмена БД (например /var/Exchange/commands.txt)
4. В автозапуск (через rc.local) прописывается (с переводом в фон с помощью &) простенький shell-скрипт:
psql LinCash -U kassir < /var/Exchange/commands.txt
sleep 30
Alexander
 
Постов: 4994
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Как удалить конкретный штрих-код у позиции

Сообщение Alexander » 16 апр 2013, 11:10

Т.е. файл commands.txt выглядит примерно так:
Код: Выделить всё
select count(*) from ware; select count(*) from ware_barcode;

Хоть в одну строчку все.
Тем более, что с концом строки в Windows-кодировке еще желательно проверить, как будет работать.
Alexander
 
Постов: 4994
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Как удалить конкретный штрих-код у позиции

Сообщение kedr19 » 16 апр 2013, 11:26

Alexander писал(а):Вариант:
...
2. Формируется файл с sql-запросами, в зависимости от задачи, где каждый запрос заканчивается символом ";"

psql LinCash -U kassir -c "UPDATE ware_barcode SET main_barcode = 't' WHERE internal_id = '1234' AND barcode = '12345678'" - вот такие через ";"?
4. В автозапуск (через rc.local) прописывается (с переводом в фон с помощью &) простенький shell-скрипт:
1.psql LinCash -U kassir < /var/Exchange/commands.txt
2.
3.sleep 30

то есть он сам будет просыпаться через 30 сек и выполнять команды из файла, значит во 2-м пункте файл надо удалять?
Т.е. файл commands.txt выглядит примерно так:
КОД: ВЫДЕЛИТЬ ВСЁ
select count(*) from ware; select count(*) from ware_barcode;

тут вообще не соображу куда записывать все ранее команды по удалению штрихов, товаров и замене основного ШК
kedr19
 
Постов: 587
Зарегистрирован: 24 окт 2011, 15:49
Откуда: г. Новосибирск

Re: Как удалить конкретный штрих-код у позиции

Сообщение Alexander » 16 апр 2013, 11:34

kedr19 писал(а):то есть он сам будет просыпаться через 30 сек и выполнять команды из файла, значит во 2-м пункте файл надо удалять?

Логично,
Код: Выделить всё
rm -f /var/Exchange/commands.txt


Я имел ввиду, что в commands.txt в таком варианте просто записываются тексты запросов, т.е. как раз
Код: Выделить всё
UPDATE ware_barcode SET main_barcode = 't' WHERE internal_id = '1234' AND barcode = '12345678';DELETE FROM ware_barcode WHERE internal_id = '1234' AND barcode = '87654321';

Запросы про количество товаров и штрих-кодов просто для краткости и демонстрации принципа формирования файла использовал.
Для данной конкретной задачи они смысла никакого не имеют.
Alexander
 
Постов: 4994
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Как удалить конкретный штрих-код у позиции

Сообщение kedr19 » 16 апр 2013, 11:35

Все понял, буду пробовать. Спасибо!
kedr19
 
Постов: 587
Зарегистрирован: 24 окт 2011, 15:49
Откуда: г. Новосибирск

Re: Как удалить конкретный штрих-код у позиции

Сообщение kedr19 » 16 апр 2013, 13:34

Удаление всех шк по коду товара:
КОД: ВЫДЕЛИТЬ ВСЁ
psql LinCash -U kassir -c "delete from ware_barcode where internal_id = '1234'"

Как удалить все шк по коду товара кроме указанных?
kedr19
 
Постов: 587
Зарегистрирован: 24 окт 2011, 15:49
Откуда: г. Новосибирск

Пред.След.

Вернуться в Техподдержка

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 0


cron

Кто сейчас на конференции

Сейчас посетителей на конференции: 1, из них зарегистрированных: 1, скрытых: 0 и гостей: 0 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (415) здесь было 07 окт 2025, 11:21

Сейчас этот форум просматривают: Bing [Bot] и гости: 0