Установка МНН
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. После обновления менеджера, проверить приходуется ли электронная накладная