Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата

Наши программы => УкрСклад => Тема розпочата: Vitaly_Gl від Листопад 27, 2014, 13:41:34

Назва: Вопрос о скриптах
Відправлено: Vitaly_Gl від Листопад 27, 2014, 13:41:34
Привет. У меня вопрос-при переходе на 6-ю версию, что будет со скриптами которые работали у меня в 5-й версии. Спасибо.
Назва: Re: Вопрос о скриптах
Відправлено: admin від Листопад 27, 2014, 15:38:19
Цитата: Vitaly_Gl від Листопад 27, 2014, 13:41:34
Привет. У меня вопрос-при переходе на 6-ю версию, что будет со скриптами которые работали у меня в 5-й версии. Спасибо.

О каких скриптах идет речь?
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Листопад 27, 2014, 16:17:11
У меня работал скрипт по наценках на товары. После каждой приходной накладной я запускал команду и происходил перерасчет цен.
Назва: Re: Вопрос о скриптах
Відправлено: installer від Листопад 28, 2014, 08:50:47
так же интересует, старые скрипты будут работать например скрипт для смены цены грн в уе?
Назва: Re: Вопрос о скриптах
Відправлено: admin від Листопад 28, 2014, 09:29:27
Цитата: Vitaly_Gl від Листопад 27, 2014, 16:17:11
У меня работал скрипт по наценках на товары. После каждой приходной накладной я запускал команду и происходил перерасчет цен.

Если вы о своих скриптах которые вы запускали в меню Опции : SQL менеджер, то должно работать. Только зачем их сейчас использовать если есть наценка SQL скриптом, она автоматом при изменении цены работает.
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Листопад 28, 2014, 10:28:20
Наценка будет автоматом происходить после проведения приходной накладной или как. Опишите пожалуйста механизм. Спасибо.
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Листопад 28, 2014, 15:05:28
И еще вопрос-где в программе прописывается скрипт и можна ли внести изменения в него? Спасибо.
Назва: Re: Вопрос о скриптах
Відправлено: admin від Листопад 28, 2014, 16:00:52
Цитата: Vitaly_Gl від Листопад 28, 2014, 15:05:28
И еще вопрос-где в программе прописывается скрипт и можна ли внести изменения в него? Спасибо.

меню Опции : Наценки на товары : Наценки SQL скриптом
Назва: Re: Вопрос о скриптах
Відправлено: admin від Листопад 28, 2014, 16:03:56
Цитата: Vitaly_Gl від Листопад 28, 2014, 10:28:20
Наценка будет автоматом происходить после проведения приходной накладной или как. Опишите пожалуйста механизм. Спасибо.

И при вводе товара в справочник,  можно в справочнике клацнуть на группе товара и выбрать "Переоценить выделенную группу товаров", можно нажать "Назначить новые цены" в меню Опции : Наценки на товары : Наценки SQL скриптом. Хотите автоматом включите в меню Опции : Параметры : Справочники : Автоматическая корректировка цены товара :
Автоматически наценивать, тогда при смене цены в приходной будет происходить наценка согласно настройкам в  в меню Опции : Наценки на товары.
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Листопад 28, 2014, 16:05:01
Вы меня не поняли-я имел ввиду можна ли посмотреть в каком-то файле какой скрипт работает что б внести в него изменения.
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Листопад 28, 2014, 16:08:13
Например-у меня работает скрипт по наценке на товары в зависимости от приходной цены. Например для цены от 0 до 20 уе у меня работает наценка 25 процентов а я хочу изменить на 28 процентов. Вот и вопрос-программа где-то держит в памяти мои скрипты которые я потом запускаю-хочу внести в них изменения.
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Листопад 28, 2014, 16:12:20
Если б я нашел тот листик со скриптом который вводил больше года назад то вопросов бы не возникало-заново бы ввел его с нужными поправками...
Назва: Re: Вопрос о скриптах
Відправлено: TheOK від Листопад 28, 2014, 22:44:00
Цитата: Vitaly_Gl від Листопад 28, 2014, 16:12:20
Если б я нашел тот листик со скриптом который вводил больше года назад то вопросов бы не возникало-заново бы ввел его с нужными поправками...
Если скрипт наценки предоставил Вам я, напишите на мой и-мейл (если не помните (а не Вы его, конечно, не помните) после того, как напишите в личку скину Вам свой и-мейл в личные сообщения на форуме) с и-мейла, которого Вы ко мне обращались
Я постараюсь найти нашу переписку и переслать Вам и-мейл с инструкцией, которую нужно было выполнять перед обновлением, который высылал ранее
Если же скрипты не мои, помочь Вам не смогу
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Листопад 29, 2014, 09:38:12
Задам вопрос по другому-где в программе хранятся рабочие скрипты (в каком файле)?
Назва: Re: Вопрос о скриптах
Відправлено: TheOK від Листопад 29, 2014, 10:01:26
Цитата: Vitaly_Gl від Листопад 29, 2014, 09:38:12
Задам вопрос по другому-где в программе хранятся рабочие скрипты (в каком файле)?
Все зависит от того, как вы запускаете скрипт
А вы ведь его запускаете, судя по вот этим словам
Цитата: Vitaly_Gl від Листопад 27, 2014, 16:17:11
У меня работал скрипт по наценках на товары. После каждой приходной накладной я запускал команду и происходил перерасчет цен.
Итак как Вы его запускаете, какую команду?
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Листопад 29, 2014, 10:03:10
Скрипт забивался в программу а запускаю его после каждой приходной цены
EXECUTE PROCEDURE usr_tovar_nacenka
Назва: Re: Вопрос о скриптах
Відправлено: TheOK від Листопад 29, 2014, 18:56:46
Данный файл хранится в самой базе данных Sklad.tcb или как-то так
Есть программы, которымы вы можете посмотреть эти данные (например, IBExpert), есть команды по работе с этими данными, но думаю, это будет для вас менее интересно
Если вы произведете какие-то действия в этой программе, структура базы может быть нарушена
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Листопад 30, 2014, 17:15:39
Тогда получается надо лопатить форум и вспоминать и делать заново скрипт по наценке.
Спасибо.
Назва: Re: Вопрос о скриптах
Відправлено: TheOK від Листопад 30, 2014, 21:05:32
Цитата: Vitaly_Gl від Листопад 30, 2014, 17:15:39
Тогда получается надо лопатить форум и вспоминать и делать заново скрипт по наценке.
Спасибо.
Достаточно установить IBExpert, подключиться к базе (кажется на форуме было описано, как это делать), сделать бекап базы и посмотреть текст хранимой процедуры usr_tovar_nacenka
Это не тяжело
Просто, людям, которые любят мышью тыкать во все подряд, лучше вообще держаться подальше от программ учета, но Вы ведь не такой?)
Предварительный бекап базы и все ваши проблемы решены
для максимальной безопасности можете установить УкрСклад сервер на каком-то ПК, где не работаете с УкрСклад и скопировать на него файл Sklad.tcb и подключиться к нему
тогда уж точно не поламаете ничего (кстати, там сможете и проверить не ломает ли ничего Ваш скрипт в 6й версии:)
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 01, 2014, 10:19:02
Нашел в ибеексперт скрипт свой но не могу внести изменения, может заново набить его
BEGIN
  FOR
    SELECT
      num,
      cena,
      cena_r,
      cena_o,
      cena_1,
      cena_2
    FROM
      tovar_name
    WHERE
      visible = 1
    INTO
      :v_tovar_id,
      :v_cena,
      :v_cena_r,
      :v_cena_o,
      :v_cena_1,
      :v_cena_2
  DO
  BEGIN
      IF (:v_cena <= 20) THEN
    BEGIN
      UPDATE tovar_name SET cena_r = cena * 1.25 WHERE num = :v_tovar_id AND cena_curr_id = cena_out_curr_id; 
    END
    ELSE
    IF (:v_cena > 20 AND :v_cena <= 30) THEN
    BEGIN
      UPDATE tovar_name SET cena_r = cena * 1.2 WHERE num = :v_tovar_id  AND cena_curr_id = cena_out_curr_id; 
    END
    ELSE
    IF (:v_cena > 30 AND :v_cena <= 100) THEN
    BEGIN
      UPDATE tovar_name SET cena_r = cena * 1.15 WHERE num = :v_tovar_id  AND cena_curr_id = cena_out_curr_id; 
    END
    ELSE
    IF (:v_cena > 100 AND :v_cena <= 1000) THEN
    BEGIN
      UPDATE tovar_name SET cena_r = cena * 1.1 WHERE num = :v_tovar_id  AND cena_curr_id = cena_out_curr_id; 
    END
  END
END
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 01, 2014, 11:15:34
Может подскажете как в 6-й версии вставить этот скрипт в меню-автоматическое наценивание скриптом. Спасибо.
Назва: Re: Вопрос о скриптах
Відправлено: admin від Грудень 01, 2014, 17:19:11
Цитата: Vitaly_Gl від Грудень 01, 2014, 11:15:34
Может подскажете как в 6-й версии вставить этот скрипт в меню-автоматическое наценивание скриптом. Спасибо.

Так если вы обновлялись на 6 версию с версии 5 в которой был этот скрипт, то он и останется, обновление не трогает "не свое".
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 01, 2014, 17:22:24
Так мне надо внести изменения в наценку-тобеж добавить по 3 процента к каждой наценке.
Назва: Re: Вопрос о скриптах
Відправлено: admin від Грудень 01, 2014, 17:25:19
Цитата: Vitaly_Gl від Грудень 01, 2014, 17:22:24
Так мне надо внести изменения в наценку-тобеж добавить по 3 процента к каждой наценке.

Лучше использовать штатные наценки скриптом, если не хотите, обратитесь к первоисточнику (нашли по usr_tovar_nacenka):
http://www.softbalance.com.ua/forum/index.php/topic,461.msg3610.html#msg3610 (http://www.softbalance.com.ua/forum/index.php/topic,461.msg3610.html#msg3610)
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 01, 2014, 17:32:00
Хорошо тогда помогите мне- как в штатной автонаценке реализовать мой скрипт? Взять просто выше описанный скрипт и вставить в окно программы и выставить галочку автонаценка скриптом или как?
Я впринципе полностью за за штатный-так как всегда можна поменять процент наценки.
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 02, 2014, 11:42:31
Тогда получается так? В окне наценки SQL скриптом все очистить и вставить скрипт

BEGIN
  FOR
    SELECT
      num,
      cena,
      cena_r,
      cena_o,
      cena_1,
      cena_2
    FROM
      tovar_name
    WHERE
      visible = 1
    INTO
      :v_tovar_id,
      :v_cena,
      :v_cena_r,
      :v_cena_o,
      :v_cena_1,
      :v_cena_2
  DO
  BEGIN
      IF (:v_cena <= 20) THEN
    BEGIN
      UPDATE tovar_name SET cena_r = cena * 1.25 WHERE num = :v_tovar_id AND cena_curr_id = cena_out_curr_id; 
    END
    ELSE
    IF (:v_cena > 20 AND :v_cena <= 30) THEN
    BEGIN
      UPDATE tovar_name SET cena_r = cena * 1.2 WHERE num = :v_tovar_id  AND cena_curr_id = cena_out_curr_id; 
    END
    ELSE
    IF (:v_cena > 30 AND :v_cena <= 100) THEN
    BEGIN
      UPDATE tovar_name SET cena_r = cena * 1.15 WHERE num = :v_tovar_id  AND cena_curr_id = cena_out_curr_id; 
    END
    ELSE
    IF (:v_cena > 100 AND :v_cena <= 1000) THEN
    BEGIN
      UPDATE tovar_name SET cena_r = cena * 1.1 WHERE num = :v_tovar_id  AND cena_curr_id = cena_out_curr_id; 
    END
  END
END

Далее выставить галочку автоматическая наценка SQL скриптом.
Это все или надо еще какие-то процедуры проводить?

Спасибо.
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 02, 2014, 13:48:35
Нет-так не работает...
Назва: Re: Вопрос о скриптах
Відправлено: admin від Грудень 02, 2014, 13:58:36
Цитата: Vitaly_Gl від Грудень 02, 2014, 13:48:35
Нет-так не работает...

Прежде чем очищать, посмотрите пример SQL наценок там все просто.
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 02, 2014, 14:03:32
Да но в примере идет наценка на определенные группы, а мне нужна наценка на весь товар в зависимости от приходной цены.
Когда вставляю свой скрипт и нажимаю сохранить-выдает ошибку.
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 02, 2014, 14:19:49
Вижу, что переменные не такие как в моем скрипте...
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 02, 2014, 14:31:36
BEGIN
      IF (cena_in <= 20) THEN
    BEGIN
            cena_r_out = udf_roundto(cena_in * 1.28, 2);
    END
    ELSE
    IF (cena_in > 20 AND cena_in <= 30) THEN
    BEGIN
            cena_r_out = udf_roundto(cena_in * 1.23, 2);
    END
    ELSE
    IF (cena_in > 30 AND cena_in <= 100) THEN
    BEGIN
            cena_o_out = udf_roundto(cena_in * 1.18, 2);
    END
    ELSE
    IF (cena_in > 100 AND cena_in <= 1000) THEN
    BEGIN
            cena_o_out = udf_roundto(cena_in * 1.13, 2);
    END
    END

Суть такова, работаю в уе
при приходной цене до 20уе наценка 28%
от 20 до 30 уе наценка 23%
от 30 до 100 уе наценка 18%
от 100 до 1000 уе наценка 13%
Правильный ли скрипт?
Спасибо.
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 02, 2014, 15:31:59
В таком варианте скрипт сохраняет без ошибки но наценку не делает.
udf_roundto - это что за переменные?
Назва: Re: Вопрос о скриптах
Відправлено: admin від Грудень 02, 2014, 15:36:22
Цитата: Vitaly_Gl від Грудень 02, 2014, 15:31:59
В таком варианте скрипт сохраняет без ошибки но наценку не делает.

Наценку не делает где именно?

Цитата: Vitaly_Gl від Грудень 02, 2014, 15:31:59
udf_roundto - это что за переменные?

Это функция округления udf_roundto(<число>,<кол._знаков_после _запятой>)
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 02, 2014, 15:41:10
Не меняется розничная цена  в справочнике товаров.
Назва: Re: Вопрос о скриптах
Відправлено: admin від Грудень 02, 2014, 15:48:47
Цитата: Vitaly_Gl від Грудень 02, 2014, 15:41:10
Не меняется розничная цена  в справочнике товаров.

Как вы ее меняете или думаете как она должна меняться? При вводе приходной Enter нажимаете?
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 02, 2014, 15:53:24
Уже нашел проблемку
cena_o_out поменял на cena_r_out
Назва: Re: Вопрос о скриптах
Відправлено: Vitaly_Gl від Грудень 02, 2014, 15:55:21
Все супер, разобрался.
Последний вопрос-цена новая будет меняться автоматически после проведения новой приходной накладной?
Назва: Re: Вопрос о скриптах
Відправлено: admin від Грудень 03, 2014, 18:03:55
Цитата: Vitaly_Gl від Грудень 02, 2014, 15:55:21
Все супер, разобрался.
Последний вопрос-цена новая будет меняться автоматически после проведения новой приходной накладной?

При смене цены в приходной или при вводе новой накладной.

Цитата: admin від Листопад 28, 2014, 16:03:56
И при вводе товара в справочник,  можно в справочнике клацнуть на группе товара и выбрать "Переоценить выделенную группу товаров", можно нажать "Назначить новые цены" в меню Опции : Наценки на товары : Наценки SQL скриптом. Хотите автоматом включите в меню Опции : Параметры : Справочники : Автоматическая корректировка цены товара :
Автоматически наценивать, тогда при смене цены в приходной будет происходить наценка согласно настройкам в  в меню Опции : Наценки на товары.
Назва: Re: Вопрос о скриптах
Відправлено: Beatle від Лютий 07, 2015, 08:20:58
День добрый.
Пытаюсь скриптом обнулить кол-во товара в группе
UPDATE
  tovar_name
SET
  z_kolvo = 0
WHERE
  tip = 2

Поправьте меня плз, а то ошибка вылазит...
Назва: Re: Вопрос о скриптах
Відправлено: Creat від Лютий 07, 2015, 13:32:42
Не можна скриптом обнуляти кількість товару в групі!!! Зробіть акт інвентаризації - включіть всі товари з групи в нього і вкажіть що у вас залишок їх 0. Випишіть на основі нього внесення залишків та списання. І отримаєте те що вам потрібно. А по іншому буде повна фігня!!!
Назва: Re: Вопрос о скриптах
Відправлено: Beatle від Лютий 07, 2015, 17:28:49
Почему же фигня? Я хочу убрать весь товар и удалить группу, необходимости инвентаризировать или списывать товар у меня нет, а просто хочу все обнулить и забыть. Вбивать 100500 позиций особого желания нет, но если нет другого выхода, то придется...
Назва: Re: Вопрос о скриптах
Відправлено: TheOK від Лютий 07, 2015, 22:17:02
Цитата: Beatle від Лютий 07, 2015, 17:28:49
Почему же фигня? Я хочу убрать весь товар и удалить группу, необходимости инвентаризировать или списывать товар у меня нет, а просто хочу все обнулить и забыть. Вбивать 100500 позиций особого желания нет, но если нет другого выхода, то придется...
Вся эта процедура делается достаточно быстро
Не стоит нарушать принцип работы программы ради того, чтобы обнулить всего лишь одну группу
Кол-во товара не важно. Добавьте весь товар группы в акт инвентаризации и не мучайтесь (кнопочки необходимые для этого есть)
Назва: Re: Вопрос о скриптах
Відправлено: weee від Лютий 09, 2015, 16:10:23
Подскажите, как через скрипт сделать скидку на товар, который продается кратно 6 (шести) ?
Например 6 (или 12 или 18 или 102 и т.д.) шт - скидка 2%
Если 5,8 или 34 тогда без скидки.

(можно ли вводить переменные в скрипт) ?

ПС. пробовал использовать "остаток от деления" (% mod) но походу они не поддерживаются
Типа: если кол. товара делится на 6 с остатком который больше 0,01 тогда скидки нет
Назва: Re: Вопрос о скриптах
Відправлено: admin від Лютий 10, 2015, 17:28:17
Цитата: weee від Лютий 09, 2015, 16:10:23
Подскажите, как через скрипт сделать скидку на товар, который продается кратно 6 (шести) ?
Например 6 (или 12 или 18 или 102 и т.д.) шт - скидка 2%
Если 5,8 или 34 тогда без скидки.

ПС. пробовал использовать "остаток от деления" (% mod) но походу они не поддерживаются
Типа: если кол. товара делится на 6 с остатком который больше 0,01 тогда скидки нет

mod на самом деле есть, но он только для целых чисел, пример:
  IF(MOD(in_tovar_kolvo, 6) = 0) THEN
    tovar_znig_proc = 2;

проблема что MOD(12,6) будет равен нулю и MOD(12.2,6) тоже т.к. 12.2 будет приведен к 12. Зачем это сделано для меня загадка.
Хотя вещественные числа сравнивать нельзя, попробуйте вот это:
  IF(UDF_ROUNDTO(in_tovar_kolvo/6,0) = in_tovar_kolvo/6.0) THEN
    tovar_znig_proc = 2;


Цитата: weee від Лютий 09, 2015, 16:10:23
(можно ли вводить переменные в скрипт) ?

Не предусмотрено, но свои UDF функции можете вводить, есть много разных бесплатных функций в инете.
Назва: Re: Вопрос о скриптах
Відправлено: weee від Лютий 11, 2015, 10:22:35
Спасибо! Помогло!
Назва: Re: Вопрос о скриптах
Відправлено: syuli від Лютий 11, 2015, 16:32:13
Я питала про це в темі "Бонусная система", але ніхто так і не відповів, тому питаю тут.

1. Як дізнатися ID клієнта для SQL дисконт за сумою?

2. В SQL дисконт за сумою серед "Исходящие переменные" є змінні для роботи з бонусами, але серед SQL дисконт по товару нема. Тобто, якщо використовувати SQL дисконт по товару, то нарахувати бонуси неможливо? Чи можна використовувати два види дисконту одночасно (наприклад, SQL дисконт по товару для нарахування скидки і SQL дисконт за сумою для нарахування бонусу)?
Назва: Re: Вопрос о скриптах
Відправлено: weee від Лютий 13, 2015, 09:51:50
1. https://yadi.sk/i/vlRK14rFeeQcA