Установка МНН

Материал из wiki.standart-n.ru
Версия от 10:39, 22 апреля 2015; Natali (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

1) Просим всех выйти из базы.

2) Создаем резервную копию базы данных

3) Выполняем скрипт


SET SQL DIALECT 3; /*--TEMP_MNN---------------------------------------------------------------*/ CREATE SEQUENCE GEN_TEMP_MNN_ID; CREATE TABLE TEMP_MNN (

   ID      DM_ID,
   SNAME   DM_TEXT,
   MNN     DM_TEXT,
   TNN     DM_TEXT,
   KOEF1   DM_DOUBLE,
   STATUS  DM_STATUS

); COMMIT; SET TERM ^ ; CREATE OR ALTER TRIGGER TEMP_MNN_BI FOR TEMP_MNN ACTIVE BEFORE INSERT POSITION 0 AS BEGIN

 IF (NEW.id IS NULL) THEN NEW.id = GEN_ID(gen_temp_mnn_id,1);

END ^ SET TERM ; ^ COMMIT; /*--MNN_VALS---------------------------------------------------------------*/ CREATE TABLE MNN_VALS (SVALUE DM_TEXT); COMMIT; CREATE INDEX MNN_VALS_IDX1 ON MNN_VALS (SVALUE); COMMIT; /*--PR_REPART_SNAME--------------------------------------------------------*/ SET TERM ^ ; create or alter procedure PR_REPART_SNAME (

   SNAME DM_TEXT)

returns (

   R DM_TEXT)

as declare variable RES DM_TEXT; declare variable K DM_ID_NULL; declare variable TEMP DM_TEXT; declare variable TEK_NAME DM_TEXT; begin

k=0;
res=sname||' ';
r=;


4) Проверяем, есть ли логирование таблицы VALS, если есть, то убираем. (Лоирование на все остальные таблицы тоже должно быть отключено).

5) Заполняем таблицу VALS МНН-нами, действие очень долгое) формула для примерного расчета времени: ~1,5 сек* ассортимент = Время в секундах.


/* execute block as declare variable id dm_id; declare variable sname dm_text; begin

 for select id, svalue from vals where (vtype = 0) and ((preparedvalue is null) or (preparedvalue = )) into :id, :sname do
   begin
     select mnn from pr_get_mnn(:sname, 'SNAME') into :sname;
     update vals set preparedvalue = :sname where id = :id;
   end

end

  • /

execute block as declare variable id dm_id; declare variable sname dm_text; begin

 for select id, svalue from vals where (vtype = 0) and ((preparedvalue is null) or (preparedvalue = )) and
   id in (select name_id from vw_warebase group by name_id) into :id, :sname do
   begin
     select mnn from pr_get_mnn(:sname, 'SNAME') into :sname;
     update vals set preparedvalue = :sname where id = :id;
   end

end


7) В сетеке остатков в менеджере (Под каждым пользователем) и в кассире добавляем колонку mnn.

8) В кассире у текущего пользователя в верхн панель выводим кнопку МНН (Горячие клавиши Ctrl+M)

9) Открываем справочник по этой кнопке

10) Загружаем сетку "Сетка для справочника mnn в кассире"

Прикрепленный файл Файл:Сетка для справочника mnn в кассире.zip

11) В настройках в полях поиска добавляем поле mnn

12) После закрытия настроек проверяем поиск по МНН, должен работать

13) Применяем профиль текущего пользователя ко остальным кассирам (кроме специфических, например пользователь "Заказ" или "Льгота" и что то в этом роде)

14) В менеджере нажимаем F3 проверяем наличие справочника МНН

Прикрепленный файл Файл:Сетка для справочника mnn в менеджере.zip


12. В менеджере проверяем редактируется ли поле МНН, если нет то идем в подпрограмму "редактирование поля" и добавляем это поле в разрешенное для редактирования (UPPERCASE(program_result.values['fieldname'])='MNN')or 13. Если поле все таки не обновляется, то обновляем версию менеджера до последней с соответсвующим обновлением базы 14. После обновления менеджера, проверить приходуется ли электронная накладная