- •Анненков и. В.
- •Глава 1. Это нельзя понять, это нужно запомнить.
- •IbExpert. Хранимые процедуры.
- •Скрипт.
- •Алгоритмы.
- •Журнал.
- •Глава 2. На старт. Внимание. Марш. Прежде, чем создавать объекты. Полезные советы.
- •Создадим новый справочник.
- •Создадим новый отчет.
- •Глава 3. И что у нас на финише. Или - дожить до апдейта. Это сладкое слово - апдейт.
- •Iec – дело тонкое.
- •Выгружаем отчет.
- •Выгружаем справочник.
- •Cmd, или навесим документу добротных алгоритмов.
- •Глава 4. Это как же, вашу мать, извиняюсь, понимать?
- •До свидания.
- •Процедура для выборки номеров и дат всех документов за период.
- •Объекты Avarda по закладкам.
Выгружаем справочник.
Выгружать справочник (ZDA_111000111) будет сложнее, файлов будет больше, но начнем.
По шагам:
Хранимых процедур у нас нет, файла rdb не будет.
Выгрузим в IBExpert записи таблицы LIB с LID=100100, 100101. Выгрузим их в файл upd_111000111.sql.
Допишем в конце upd_111000111.sql строку:
EXECUTE PROCEDURE install_update('FIX_111000111', 'Создание справочника «С днем рождения»');
В конфигураторе (конфигурации/системная) выгрузим записи CFG с KID=999000000, 999000001, 999000002, 999000003, 999000004, 999000005 и запись XADM с ID=999000000. Выгрузим их в файл cfg_111000111_sys.iec.
В конфигураторе (конфигурации/типовая) выгрузим запись XADM с ID=999000001. Выгрузим ее в файл cfg_111000111_use.iec. То, что относится к типовой конфигурации должно попасть в этот файл.
В reg_ver опять пишем две строчки:
DB410.029.034
-FIX_111000111
Оформляем readme. На этот раз все по стандарту.
В update.bat должны быть строки:
call %exec% upd_111000111.sql %1
call %exec% cfg_111000111_sys.iec %1
call %exec% cfg_111000111_use.iec %1
Разместим файлы апдейта в папке 111000111_LIB_100100.
Состав апдейта по ZDA_111000111:
readme.txt
req_ver
update.bat
upd_111000111.sql
cfg_111000111_sys.iec
cfg_111000111_use.iec
Все, апдейт готов. Нет, не для применения готов. Для тестирования готов. Это принципиально. Всегда проверяйте то, что у Вас получается. Апдейт должен быть проверен.
Во первых, должно быть проверено, что он накатывается без ошибок. После пробного наката обязательно прочитайте файл Execute_SQL.log, который формируется в каталоге апдейта при его накате. Ошибок быть не должно.
Во вторых, после наката апдейта в базе должны произойти именно те изменения, которые планировались. Поэтому, перед разработкой апдейта всегда создавайте резервную копию базы, и проверяйте накат на ней. Накатив, проверьте, действительно ли созданные и измененные Вами объекты создались или корректно изменились.
Cmd, или навесим документу добротных алгоритмов.
Итак, мы разобрались для чего нужны в апдейте файлы:
readme.txt
req_ver
rdb_xxxxxxxxx.sql
upd_xxxxxxxxx.sql
cfg_xxxxxxxxx_sys.iec
cfg_xxxxxxxxx_use.iec
update.bat
Осталось разобраться с файлом cfg_xxxxxxxxx.cmd.
Доработаем, для примера, апдейт FIX_111000112.
Допустим, мы хотим, чтобы наш отчет «Документы за период» запускался от документа «Приходная накладная» (ID=6001) в состоянии «Составлен» (ID=20002). Отчеты FR-3 от документа не запускаются, но у нас есть алгоритм (ID=999000010) Так что мы пишем cmd файл с вот таким текстом:
2; 101; 6001; 20002; 999000010;
Команда 2; добавляет действие на документ/состояние, 101 – это ID системной конфигурации. Имя файла, как Вы уже наверно догадались, будет cfg_111000112.cmd. Разместим его в папке апдейта. И в update.bat добавим строку:
call %exec% cfg_111000112.cmd %1
Теперь состав апдейта по ZDA_111000112:
readme.txt
req_ver
update.bat
rdb_111000112.sql
cfg_111000112_sys.iec
cfg_111000112.cmd
Проверяем. При накате апдейта у документа «Приходная накладная» в состоянии «Составлен» должно появиться действие «Документы за период». Если Вы, при разработке алгоритма, задали ему кнопку, то на документе в этом состоянии появится кнопка этого алгоритма.
На самом деле, для корректной работы с типовой конфигурацией наш cmd должен выглядеть так:
2; 101; 6001; 20002; 999000010;
2; 102; 6001; 20002; 999000010;
5; 102; 6001; 20002; 999000010; 1;
Команда 5; в данном случае, запрещает действие на документе/состоянии, 102 – это ID типовой конфигурации.
Команды cmd описаны в документации, в файле TW_ExportAdm.
Еще тонкость. У нас получился очень маленький cmd, поэтому я не стал писать в нем комментарии. Нормальный cmd файл должен комментироваться, как это должно быть – посмотрите в примере апдейта.