Автор: Пользователь скрыл имя, 12 Февраля 2013 в 13:57, дипломная работа
Ключевым бизнес-процессом в работе любого сельскохозяйственного предпри-ятия, такого, как рассматриваемого в данной дипломной работе ООО «БелАгроКрив-цово», является процесс управления готовой продукцией. Поэтому автоматизация этого процесса является актуальной и жизненно необходимой для развития предпри-ятия и откроет новые горизонты в его производственной и управленческой деятель-ности.
Введение 5
1 Исследование документооборота предприятия по учету готовой продукции 6
1.1 Направления деятельности ООО "БелАгроКривцово" 6
1.2 Учет готовой продукции на предприятии 8
1.2.1 Обзор номенклатуры выпускаемой продукции 9
1.2.2 Оценка готовой продукции 9
1.2.3 Синтетический учет готовой продукции 10
1.2.4 Документация по движению готовой продукции 12
1.2.5 Учет отгрузки готовой продукции 17
1.3 Схема документооборота учета готовой продукции на ООО БелАгроКривцово» 19
1.3.1 Учет в 1С: Бухгалтерии 20
2 Постановка задачи автоматизации учета готовой продукции на ООО «БелАгроКривцово» 22
2.1 Общие сведения 22
2.1.1 Полное наименование системы и ее условное обозначение 22
2.1.2 Основание для создания 22
2.1.3 Реквизиты предприятия заказчика и разработчика 22
2.1.4 Назначение и цель создания системы 22
2.2 Функции автоматизированной системы 23
2.3 Пользователи автоматизированной системы 23
2.4 Характеристика входной и выходной информации 23
2.5 Требования к программе 25
2.5.1 Общие требования 25
2.5.2 Требования к документации 26
2.5.3 Требования к программному и аппаратному обеспечению 26
2.5.4 Требования к дополнительному ПО 26
2.5.5 Состав и содержание работ по созданию ПО 26
3 Разработка программного обеспечения 28
3.1 Обоснование выбора средств разработки 28
3.1.1 Выбор ПО для проектирования Бизнес-процессов 28
3.1.2 Средство для проектирования структуры базы данных 36
3.1.3 Средства разработки программных модулей 39
3.1.4 Сервер баз данных Interbase 41
3.1.5 Средства Delphi 7 для доступа к данным 43
3.1.5.1 Иерархия классов наборов данных 43
3.1.5.2 Сервер баз данных InterBase и компоненты InterBase Express 44
3.1.5.3 Возможности построения распределенных приложений БД 45
3.2 Построение модели в BPWin 47
3.3 Организация данных в ERWin 53
3.4 Состав и структура ПО 57
4 Организационно-экономическая часть 59
4.1 Расчет трудоемкости выполнения разработки программного продукта 59
4.2 Расчет числа исполнителей 61
4.3 Расчет сметной стоимости и договорной цены разработки ПП 62
4.4 Оценка годовых эксплуатационных издержек потребителя ПП 68
4.5 Оценка экономической эффективности ПП 69
5. БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ 71
5.1 Характеристика опасных и вредных производственных факторов 72
5.2 Обеспечение электробезопасности при работе с ПЭВМ 73
5.3 Вредные производственные факторы 75
5.3.1 Требования к вентиляции и кондиционированию воздуха в помещениях с компьютерной техникой 76
5.3.2 Требования к освещению в помещениях 77
5.3.3 Рекомендации по организации рабочего места сотрудника, работающего на компьютере 28
5.3.4 Режим труда и отдыха при работе с компьютером 79
5.4 Пожарная безопасность 80
Заключение 83
Список литературы 84
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Pokupat R/51 Накладная_на_отпуск ON PARENT DELETE RESTRICT */
select count(*)
from Накладная_на_отпуск
where
/* Накладная_на_отпуск.INN = OLD.INN */
Накладная_на_отпуск.INN = OLD.INN into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tI_Pokupat FOR Pokupat AFTER INSERT AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* INSERT trigger on Pokupat */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Firma Pokupat ON CHILD INSERT RESTRICT */
select count(*)
from Firma
where
/* NEW.INN = Firma.INN */
NEW.INN = Firma.INN into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tU_Pokupat FOR Pokupat AFTER UPDATE AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* UPDATE trigger on Pokupat */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Pokupat R/65 Оплата ON PARENT UPDATE RESTRICT */
IF
/* OLD.INN <> NEW.INN */
(OLD.INN <> NEW.INN) THEN
BEGIN
select count(*)
from Оплата
where
/* Оплата.Pokupat = OLD.INN */
Оплата.Pokupat = OLD.INN into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;
END
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Pokupat R/51 Накладная_на_отпуск ON PARENT UPDATE RESTRICT */
IF
/* OLD.INN <> NEW.INN */
(OLD.INN <> NEW.INN) THEN
BEGIN
select count(*)
from Накладная_на_отпуск
where
/* Накладная_на_отпуск.INN = OLD.INN */
Накладная_на_отпуск.INN = OLD.INN into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;
END
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Firma Pokupat ON CHILD UPDATE RESTRICT */
select count(*)
from Firma
where
/* NEW.INN = Firma.INN */
NEW.INN = Firma.INN into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tD_Poluchat FOR Poluchat AFTER DELETE AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* DELETE trigger on Poluchat */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Poluchat R/61 Moves ON PARENT DELETE RESTRICT */
select count(*)
from Moves
where
/* Moves.Place = OLD.Place */
Moves.Place = OLD.Place into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tI_Poluchat FOR Poluchat AFTER INSERT AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* INSERT trigger on Poluchat */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Place Poluchat ON CHILD INSERT RESTRICT */
select count(*)
from Place
where
/* NEW.Place = Place.Place */
NEW.Place = Place.Place into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tU_Poluchat FOR Poluchat AFTER UPDATE AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* UPDATE trigger on Poluchat */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Poluchat R/61 Moves ON PARENT UPDATE RESTRICT */
IF
/* OLD.Place <> NEW.Place */
(OLD.Place <> NEW.Place) THEN
BEGIN
select count(*)
from Moves
where
/* Moves.Place = OLD.Place */
Moves.Place = OLD.Place into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;
END
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Place Poluchat ON CHILD UPDATE RESTRICT */
select count(*)
from Place
where
/* NEW.Place = Place.Place */
NEW.Place = Place.Place into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tD_Predpr FOR Predpr AFTER DELETE AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* DELETE trigger on Predpr */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Predpr R/66 Оплата ON PARENT DELETE RESTRICT */
select count(*)
from Оплата
where
/* Оплата.Prodavec = OLD.INN */
Оплата.Prodavec = OLD.INN into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Predpr R/54 Department ON PARENT DELETE SET NULL */
update Department
set
/* Department.INN = NULL */
Department.INN = NULL
where
/* Department.INN = OLD.INN */
Department.INN = OLD.INN;
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tI_Predpr FOR Predpr AFTER INSERT AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* INSERT trigger on Predpr */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Firma Predpr ON CHILD INSERT RESTRICT */
select count(*)
from Firma
where
/* NEW.INN = Firma.INN */
NEW.INN = Firma.INN into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tU_Predpr FOR Predpr AFTER UPDATE AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* UPDATE trigger on Predpr */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Predpr R/66 Оплата ON PARENT UPDATE RESTRICT */
IF
/* OLD.INN <> NEW.INN */
(OLD.INN <> NEW.INN) THEN
BEGIN
select count(*)
from Оплата
where
/* Оплата.Prodavec = OLD.INN */
Оплата.Prodavec = OLD.INN into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;
END
END
/* Predpr R/54 Department ON PARENT UPDATE SET NULL */
IF
/* OLD.INN <> NEW.INN THEN
BEGIN
update Department
set
/* Department.INN = NULL */
Department.INN = NULL
where
/* Department.INN = OLD.INN */
Department.INN = OLD.INN;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Firma Predpr ON CHILD UPDATE RESTRICT */
select count(*)
from Firma
where
/* NEW.INN = Firma.INN */
NEW.INN = Firma.INN into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tD_Накладная_на_отпуск FOR Накладная_на_отпуск AFTER DELETE AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* DELETE trigger on Накладная_на_отпуск */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Накладная_на_отпуск R/45 Строки_накладной ON PARENT DELETE RESTRICT */
select count(*)
from Строки_накладной
where
/* Строки_накладной.NaklNum = OLD.NaklNum and
Строки_накладной.NaklDat = OLD.NaklDat */
Строки_накладной.NaklNum = OLD.NaklNum and
Строки_накладной.NaklDat = OLD.NaklDat into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tI_Накладная_на_отпуск FOR Накладная_на_отпуск AFTER INSERT AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* INSERT trigger on Накладная_на_отпуск */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Pokupat R/51 Накладная_на_отпуск ON CHILD INSERT RESTRICT */
select count(*)
from Pokupat
where
/* NEW.INN = Pokupat.INN */
NEW.INN = Pokupat.INN into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tU_Накладная_на_отпуск FOR Накладная_на_отпуск AFTER UPDATE AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* UPDATE trigger on Накладная_на_отпуск */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Накладная_на_отпуск R/45 Строки_накладной ON PARENT UPDATE RESTRICT */
IF
/* OLD.NaklNum <> NEW.NaklNum or
OLD.NaklDat <> NEW.NaklDat */
(OLD.NaklNum <> NEW.NaklNum or
OLD.NaklDat <> NEW.NaklDat) THEN
BEGIN
select count(*)
from Строки_накладной
where
/* Строки_накладной.NaklNum = OLD.NaklNum and
Строки_накладной.NaklDat = OLD.NaklDat */
Строки_накладной.NaklNum = OLD.NaklNum and
Строки_накладной.NaklDat = OLD.NaklDat into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;
END
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Pokupat R/51 Накладная_на_отпуск ON CHILD UPDATE RESTRICT */
select count(*)
from Pokupat
where
/* NEW.INN = Pokupat.INN */
NEW.INN = Pokupat.INN into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tI_Оплата FOR Оплата AFTER INSERT AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* INSERT trigger on Оплата */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Predpr R/66 Оплата ON CHILD INSERT RESTRICT */
select count(*)
from Predpr
where
/* NEW.Prodavec = Predpr.INN */
NEW.Prodavec = Predpr.INN into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Pokupat R/65 Оплата ON CHILD INSERT RESTRICT */
select count(*)
from Pokupat
where
/* NEW.Pokupat = Pokupat.INN */
NEW.Pokupat = Pokupat.INN into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tU_Оплата FOR Оплата AFTER UPDATE AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* UPDATE trigger on Оплата */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Predpr R/66 Оплата ON CHILD UPDATE RESTRICT */
select count(*)
from Predpr
where
/* NEW.Prodavec = Predpr.INN */
NEW.Prodavec = Predpr.INN into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Pokupat R/65 Оплата ON CHILD UPDATE RESTRICT */
select count(*)
from Pokupat
where
/* NEW.Pokupat = Pokupat.INN */
NEW.Pokupat = Pokupat.INN into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tD_Отправитель FOR Отправитель AFTER DELETE AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* DELETE trigger on Отправитель */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Отправитель R/64 Moves ON PARENT DELETE RESTRICT */
select count(*)
from Moves
where
/* Moves.Place = OLD.Place */
Moves.Place = OLD.Place into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Отправитель Dojarka ON PARENT DELETE CASCADE */
delete from Dojarka
where
/* Dojarka.Place = OLD.Place */
Dojarka.Place = OLD.Place;
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tI_Отправитель FOR Отправитель AFTER INSERT AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* INSERT trigger on Отправитель */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Place Отправитель ON CHILD INSERT RESTRICT */
select count(*)
from Place
where
/* NEW.Place = Place.Place */
NEW.Place = Place.Place into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tU_Отправитель FOR Отправитель AFTER UPDATE AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* UPDATE trigger on Отправитель */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Отправитель R/64 Moves ON PARENT UPDATE RESTRICT */
IF
/* OLD.Place <> NEW.Place */
(OLD.Place <> NEW.Place) THEN
BEGIN
select count(*)
from Moves
where
/* Moves.Place = OLD.Place */
Moves.Place = OLD.Place into numrows;
IF (numrows > 0) THEN
BEGIN
EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;
END
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Отправитель Dojarka ON PARENT UPDATE CASCADE */
IF
/* OLD.Place <> NEW.Place */
(OLD.Place <> NEW.Place) THEN
BEGIN
update Dojarka
set
/* Dojarka.Place = NEW.Place */
Dojarka.Place = NEW.Place
where
/* Dojarka.Place = OLD.Place */
Dojarka.Place = OLD.Place;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Place Отправитель ON CHILD UPDATE RESTRICT */
select count(*)
from Place
where
/* NEW.Place = Place.Place */
NEW.Place = Place.Place into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tI_Отпущено_по_накладной FOR Отпущено_по_накладной AFTER INSERT AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* INSERT trigger on Отпущено_по_накладной */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Строки_накладной R/63 Отпущено_по_накладной ON CHILD INSERT RESTRICT */
select count(*)
from Строки_накладной
where
/* NEW.NaklDat = Строки_накладной.NaklDat and
NEW.NaklNum = Строки_накладной.NaklNum */
NEW.NaklDat = Строки_накладной.NaklDat and
NEW.NaklNum = Строки_накладной.NaklNum into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Moves R/62 Отпущено_по_накладной ON CHILD INSERT RESTRICT */
select count(*)
from Moves
where
/* NEW.Op = Moves.Op and
NEW.DatN = Moves.DatN and
NEW.NE = Moves.NE and
NEW.EIKoH = Moves.EIKoH and
NEW.Place = Moves.Place and
NEW.Place = Moves.Place */
NEW.Op = Moves.Op and
NEW.DatN = Moves.DatN and
NEW.NE = Moves.NE and
NEW.EIKoH = Moves.EIKoH and
NEW.Place = Moves.Place and
NEW.Place = Moves.Place into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
END !!
CREATE TRIGGER tU_Отпущено_по_накладной FOR Отпущено_по_накладной AFTER UPDATE AS
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* UPDATE trigger on Отпущено_по_накладной */
DECLARE VARIABLE numrows INTEGER;
BEGIN
/* ERwin Builtin Wed May 12 22:33:18 2004 */
/* Строки_накладной R/63 Отпущено_по_накладной ON CHILD UPDATE RESTRICT */
select count(*)
from Строки_накладной
where
/* NEW.NaklDat = Строки_накладной.NaklDat and
NEW.NaklNum = Строки_накладной.NaklNum */
NEW.NaklDat = Строки_накладной.NaklDat and
NEW.NaklNum = Строки_накладной.NaklNum into numrows;
IF (
/* */
numrows = 0
) THEN
BEGIN
EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;
END
/* ERwin Builtin Wed May 12 22:33:18 2004 */
Информация о работе Исследование документооборота предприятия по учету готовой продукции