View Issue Details

IDProjectCategoryView StatusLast Update
0000700ПроизводствоGeneralpublic2015-08-03 16:05
Reporterruslan Assigned Tobarry  
PriorityimmediateSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Summary0000700: +Производство - Функция автоматической расцеховки для комплектующих изделий в Заказе.
DescriptionТехнические требования:
1. Графический элемент запуска функции(кнопка на панели Инструментов закладка Заказы), пункт контекстного меню.
2. Исходные данные для работы функции:
2.1. Заказ(возможность множественного выбора нескольких Заказов)
2.2. Варианты группировки изделий в Заказе на Полуфабрикаты:
- Суммировать по наименованиям - вариант расцеховки, когда все изделия, которые есть в комплектующих изделий выделенного заказа(заказов) суммируются по наименованиям.
- Разбить по изделиям - вариант расцеховки, когда все изделия, которые есть в комплектующих изделий выделенного заказа(заказов)- НЕ суммируются, а остаются с кол-вом пропорциональным кол-ву изделий.
2.3. Возможность ввода Префикса Заказа- Текстовое поле(10символов), для ввода литерального префикса созданного заказа, по-умолчанию пусто.
3. Описание работы функции:
Результатом работы функции будет объект- Заказ(Заказы) с текущей датой, номер= ИД Заказа+Значение поля [Префикс Заказа] п.2.3. Цех - Цех указанный у Изделий в поле Цех -изготовитель(возможно пустое значение).
Изделия в Заказе - это комплектующие в выбранном Заказе(Заказах), которые есть в справочнике Изделия(т.е. формально полуфабрикаты), сгруппированные по Цеху-изготовителю и по принципу указанному в исходных данных.
Additional InformationВ процессе создания Заказа на полуфабрикаты - хранить ссылки на исходное изделие в Заказе к которому это изделие было комплектующим. Сейчас у Заказчика есть требование хранить и обязательно указывать в некоторых печатных формах исходное изделие верхнего уровня, т.е. корневое, однако, я думаю сделать вариант с хранением ссылки на предыдущий уровень и создание процедуры для извлечения изделия Верхнего уровня. Аналогично как у нас сделано в Складе - возможность построения дерева Расхода товара, Процедура для извлечения исходного Прихода на Склад и от Прихода конечного расхода(списание, реализация). Потому что отсутствие визуального анализа дерева ПФ - будет существенной проблемой и при отладке расцеховки и для последующей эксплуатации.
TagsNo tags attached.

Activities

barry

2014-09-02 11:03

administrator   ~0001702

>>> пункт контекстного меню
? наименование операции

barry

2014-09-02 11:06

administrator   ~0001703

Last edited: 2014-09-02 11:08

View 2 revisions

>>> Заказ(возможность множественного выбора нескольких Заказов)
? технология выбора, ? что показывать, что включать в список - ассортимент заказов, может отобранный по каким-то условиям, какие поля отражать.
Вот человек нажимает кнопку - что он должен увидеть?

barry

2014-09-02 11:20

administrator   ~0001704

>>> номер= ИД Заказа+Значение поля [Префикс Заказа]
Если запчасть в конце слова - это суффикс называется. Именно это имелось ввиду?
Префикс - это начало слова.

barry

2014-09-02 11:21

administrator   ~0001705

>>> Цех - Цех указанный у Изделий в поле Цех -изготовитель(возможно пустое значение).
? Т.е. группировать изделия в отдельные заказы по цехам, и в отдельный заказ - изделия с пустым цехом.

barry

2014-09-02 11:36

administrator   ~0001706

Нужен ли какой-то контроль что определенные заказы (или может даже изделия избирательно в них) подвергались расцеховке - для исключения повторного формирования списка расцеховки. Если да - то технология этого дела, тонкости.

ruslan

2014-09-02 13:42

manager   ~0001707

Last edited: 2014-09-02 13:47

View 4 revisions

1. >>> пункт контекстного меню
? наименование операции - "Создание заказа на полуфабрикаты"
2. >>> Заказ(возможность множественного выбора нескольких Заказов)
? технология выбора, ? что показывать, что включать в список - ассортимент заказов, может отобранный по каким-то условиям, какие поля отражать.
Вот человек нажимает кнопку - что он должен увидеть?
Множественный выбор - например, указание на Заказ в гриде на закладке Заказы с нажатой клавишей Ctrl(Shift), соответственно список заказов, которые пользователь выделил для автоматической расцеховке, будет отображен в гриде с выделением...
После нажатия на кнопку(выбора контестного пункта) "Создание Заказа на Полуфабрикаты(ПФ)", появляется Окно с дополнительными параметрами расцеховки:
-Окно для ввода текстового Суффикса;
Наверное радиобаттон(чекбокс)
-Суммировать по наименованиям;
- Разбить по изделиям.
3.>>> номер= ИД Заказа+Значение поля [Префикс Заказа]
Если запчасть в конце слова - это суффикс называется. Именно это имелось ввиду?
Префикс - это начало слова.
Да, действительно, это суффикс и будет он в конце номера заказа.
4. >>> Цех - Цех указанный у Изделий в поле Цех -изготовитель(возможно пустое значение).
? Т.е. группировать изделия в отдельные заказы по цехам, и в отдельный заказ - изделия с пустым цехом.
Да, отдельно сгруппированные в Заказ все изделия(полуфабрикаты с пустым цехом).
5. Нужен ли какой-то контроль что определенные заказы (или может даже изделия избирательно в них) подвергались расцеховке - для исключения повторного формирования списка расцеховки. Если да - то технология этого дела, тонкости.
Пока, нет. Посмотри на раздел Дополнительные сведения... может это то что ты имел в виду?

barry

2014-09-02 14:15

administrator   ~0001708

>>> может это то что ты имел в виду?
Ну это скорее модель, на которой вероятно можно построить систему исключения дубликатов, но сама проблема изначально совсем не затронута.

ruslan

2014-09-02 14:28

manager   ~0001709

Дело в том, что готовой модели использования в бизнес-процессах предприятия этой информации еще нет, все это будет рождаться параллельно с отражением этой информации в Граните, поэтому сейчас я такой потребности не вижу...

ruslan

2014-09-09 22:16

manager   ~0001710

Еще несколько вариантов группировки изделий(ПФ)
- "Группировать по кол-ву шт. в упаковке(кол-во не округлять)" - кол-во изделий в заказе на полуфабрикаты разбить на кол-во позиций = Целое(Общее кол-во изделий/Кол-во шт. в упаковке из карточки Товара на это изделие)+1(если есть дробная часть(Общее кол-во изделий/Кол-во шт. в упаковке)), соответственно Кол-во изделий в Заказе = Кол-во шт. в уп. + Остаток(кол-во изделий в последней позиции)= Общее кол-во изделий -Кол-во шт. в уп.*кол-во поз.
Например, в заказе Есть полуфабрикат Пружина с общим кол-вом = 124,7 кг, кол-во шт. в уп.=20 кг, соответственно в таком варианте расцеховки в Заказе на ПФ, будет всего 7 позиций, 6-ть поз. с кол-вом пружины = 20 кг, а 7-ая поз. с кол-вом пружины = 4,7 кг.
- "Группировать по кол-ву шт. в упаковке(кол-во округлять)"- в этом случае по примеру выше - будет 7 позиций с кол-вом 20 кг.

barry

2014-09-10 18:47

administrator   ~0001711

work32.zip
mebl_ib5.zip
пока суммарный вариант

barry

2014-09-12 15:50

administrator   ~0001714

work32.zip
+Обновление списка заказов после операции (не были видны новые заказы).

ruslan

2014-09-12 16:14

manager   ~0001715

Заказы не видны, потому что у тебя поле Dat_ заполняется с временем.... помогает только пересохранение заказа.
ID OURORGNID DAT_ NBR STOR COMMENT ZSREADY ZMREADY ZTRASH BDATE EDATE ZAKAZMAP INPSTOR1 INPSTOR2 OBJID READYPDATE WDATE NKNOCALC FTIME EQAVG USERNAME LASTEDIT EQUSE OPTIONS
35 6046 12.09.2014 22:24:32 35 68 0 0 0 3959 0 0 0 ADMIN 12.09.2014 16:07:54 0 0

ruslan

2014-09-12 16:26

manager   ~0001716

Last edited: 2014-09-12 16:27

View 2 revisions

Сделай флаг для нумерации заказов на ПФ- "Сохранять номер заказа"(активен, если выбран 1 заказ для расцеховки), чтоб можно было получить такую например номерацию заказов на ПФ - № заказа на изделие + суффикс для номера заказа на ПФ.

ruslan

2014-09-13 12:05

manager   ~0001722

1. Сделай при объединении суммирование и поля кол-во в шт. по ПФ.
2. Сейчас кол-во заказов на ПФ при запуске функции "Создание Заказов на ПФ" получается пропорционально кол-ву ПФ в заказе на Изделие, например, в Изделиях Заказа присутствует номенклатура из трех ПФ, при создании заказа, получается три одинаковых заказа.

ruslan

2014-09-15 17:14

manager   ~0001723

Last edited: 2014-09-15 17:15

View 2 revisions

Второй вариант расцеховки, который нужен сейчас - без объединения - сколько исходных изделий в заказе, столько и строк в заказе на ПФ(кол-во в шт, тоже не забудь заполнять). Остальные варианты расцеховки может и не понадобятся...

barry

2014-09-23 00:14

administrator   ~0001729

work32.zip
mebl_ib5.zip

ruslan

2014-09-24 17:33

manager   ~0001731

Сделай для Варианта расцеховки "Не объединять по изделиям":
1. Опцию(чекбокс) "Умножать кол-во шт. ПФ на кол-во изделий по Заказу", чтоб при расчете
Кол-ва в шт. ПФ = Кол-во в шт. из карточки изделия(ПФ)*Кол-во изделий.
Сейчас суммируется просто кол-во в шт.
2. Кросс-таблицу с полями
ID Записи
ID изделия в Заказе(ПФ)
ID комплектующего в изделии в заказе, по которому сделана расцеховка.
Т.е. чтоб была прямая связь, из какого комплектующего родилась эта позиция Изделия в Заказе при формировании заказа на ПФ. Таблица будет заполнятся при формировании заказа на ПФ и иметь каскадную связь с записями Изделия, т.е. - удалили изделие из Заказа на ПФ , удалились все записи с ним связанные, удалили комплектующее из Заказа на основное изделие, удалилась строка с ним связанная, удалили заказ на ПФ - очистились все строки связанные с изделиями этого Заказа.
3. Сделай процедуру для извлечения дерева ссылок по разцеховке до корня.

ruslan

2014-10-10 12:19

manager   ~0001749

Last edited: 2014-10-10 12:20

View 3 revisions

Будет идеально если ты прикрутишь в окне Изделия в Заказе НОВУЮ дополнительную Закладку в деталях( думаю назвать ее "Маршрут"), где бы видна была информация о списке корневых изделий по этому ПФ с полями :
- Наименование изделия,
- Артикул,
- Код,
- Размеры X, Y, Z(карточка товара)
- Кол-во к выпуску по Заявке
- Кол-во выпущено по Заявке
- Номер Заявки, из которой в производство попало "корневое" изделие
- Заказчик, по Заявке(по Заказу связанного с заявкой- Организация-контрагент)
-Дата плановой готовности из Заявки
- Номер производственного Заказа на корневое изделие
- Дата производственного Заказа

barry

2014-10-14 12:54

administrator   ~0001750

Маршрут - это именно многоуровневое дерево или просто один уровень вложенности (master-detail)?

ruslan

2014-10-14 23:10

manager   ~0001751

Last edited: 2014-10-14 23:11

View 2 revisions

Это один уровень вложенности, который по установленному курсору на строку с изделием-мастер(в данном случае с ПФ) покажет исходное корневое изделие(или изделия при варианте с объединением)-на детали, с той информацией в колонках, что я написал в каменте выше...

barry

2014-10-15 11:24

administrator   ~0001752

mebl_ib5.zip
work32.zip

ruslan

2014-10-18 17:25

manager   ~0001753

>> 3. Сделай процедуру для извлечения дерева ссылок по разцеховке до корня.

barry

2014-10-20 10:07

administrator   ~0001754

mebl_ib5.zip - кол-во в шт.

barry

2014-10-20 10:07

administrator   ~0001755

>> 3. Сделай процедуру для извлечения дерева ссылок по раcцеховке до корня.
Уточни интерфейс.

ruslan

2014-10-20 21:03

manager   ~0001760

см. камент 1749

barry

2014-11-24 21:19

administrator   ~0001789

mebl_ib5.zip
work32.zip

ruslan

2015-01-07 20:54

manager   ~0001881

1.Процедура в базе есть, но на закладке Маршрут в расцехованных заказах ничего не появляется...
2. При запуске функции в неосновном предприятии - не работает флаг Сохранять номер Заказа(при выборе функции номер заказа получается какой-то "левый")
3.Это воспроизводиться пока только на базе Хлебницы в ДК, если запустить функцию расцеховки в неосновном предприятии, параллельно с заказом на ПФ(в неосновном предприятии, где по заказу на изделия была запущена функция расцеховки) в основном предприятии появляется заказ с таким же номером и каким-то "левым изделием".

ruslan

2015-01-09 15:35

manager   ~0001889

1. Вот ошибка на реальной базе с нормальным заказом о большим кол-вом ПФ
Произошла ошибка:
Too many concurrent executions of the same request
At procedure 'WORKZ_DTL_MSTRECS' line: 12, col: 5
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7
At procedure 'WORKZ_..

Производство
Application.MainForm: FormWork(TFormWork) XE2 Производство: Test2014 [Лобода Борис Михайлович]
ActiveForm: FormWork(TFormWork) XE2 Производство: Test2014 [Лобода Борис Михайлович]
ActiveCustomForm: FormWork(TFormWork) XE2 Производство: Test2014 [Лобода Борис Михайлович]
2. Флаг Сохранять номер заказа - ПЕРЕСТАЛ работать!

ruslan

2015-02-16 15:35

manager   ~0001956

1. С процедурой я разобрался, ты забыл присваивать входной параметр и получалась просто циклическая ссылка.(я добавил where в первом for select)
create procedure WORKZ_DTL_MSTRECS (
    ID integer)
returns (
    PARENTID integer)
as
declare variable MID integer;
declare variable M1ID integer;
declare variable DID integer;
begin
  for select mstid, dtlid
  from WorkZRef
  where dtlid = :ID
  into :mid, :did
    do begin
    ParentID = :MID;
    suspend;
    for select ParentID
    from WORKZ_DTL_MSTRECS(:MID) into :m1ID do begin
      parentid = :m1ID;
      suspend;
    end
  end
end
2. При формировании заказа на ПФ с объединением позиций, значения в таблице WORKZREF - НЕ ЗАПОЛНЯЮТСЯ, вроде мы это уже обсуждали, там должны сохраниться ссылки одной позиции ПФ-изделия на множество его породивших деталей-комплектующих.
3. флаг Сохранять номер Заказа не работает.
4. Проверь почему может создаваться заказ на ПФ в другом предприятии.

ruslan

2015-02-18 15:20

manager   ~0001957

Ошибка после исправления процедуры не воспроизводиться, НО на закладке Маршрут запрос не правильно извлекает данные. Откуда там данные я не могу понять- они вообще никак не связаны с заказом на изделия, который породил текущий заказ на ПФ, где я смотрю закладку Маршрут. Проверь запрос.

Issue History

Date Modified Username Field Change
2014-08-20 18:11 ruslan New Issue
2014-08-20 18:17 ruslan Additional Information Updated View Revisions
2014-09-02 11:03 barry Note Added: 0001702
2014-09-02 11:06 barry Note Added: 0001703
2014-09-02 11:08 barry Note Edited: 0001703 View Revisions
2014-09-02 11:20 barry Note Added: 0001704
2014-09-02 11:21 barry Note Added: 0001705
2014-09-02 11:36 barry Note Added: 0001706
2014-09-02 13:42 ruslan Note Added: 0001707
2014-09-02 13:45 ruslan Note Edited: 0001707 View Revisions
2014-09-02 13:46 ruslan Note Edited: 0001707 View Revisions
2014-09-02 13:47 ruslan Note Edited: 0001707 View Revisions
2014-09-02 14:15 barry Note Added: 0001708
2014-09-02 14:28 ruslan Note Added: 0001709
2014-09-09 22:16 ruslan Note Added: 0001710
2014-09-10 18:47 barry Note Added: 0001711
2014-09-12 15:50 barry Note Added: 0001714
2014-09-12 16:14 ruslan Note Added: 0001715
2014-09-12 16:26 ruslan Note Added: 0001716
2014-09-12 16:27 ruslan Note Edited: 0001716 View Revisions
2014-09-13 12:05 ruslan Note Added: 0001722
2014-09-15 17:14 ruslan Note Added: 0001723
2014-09-15 17:15 ruslan Note Edited: 0001723 View Revisions
2014-09-23 00:14 barry Note Added: 0001729
2014-09-24 17:33 ruslan Note Added: 0001731
2014-10-10 12:19 ruslan Note Added: 0001749
2014-10-10 12:20 ruslan Note Edited: 0001749 View Revisions
2014-10-10 12:20 ruslan Note Edited: 0001749 View Revisions
2014-10-14 12:54 barry Note Added: 0001750
2014-10-14 23:10 ruslan Note Added: 0001751
2014-10-14 23:11 ruslan Note Edited: 0001751 View Revisions
2014-10-15 11:24 barry Note Added: 0001752
2014-10-18 17:25 ruslan Note Added: 0001753
2014-10-20 10:07 barry Note Added: 0001754
2014-10-20 10:07 barry Note Added: 0001755
2014-10-20 21:03 ruslan Note Added: 0001760
2014-11-24 21:19 barry Note Added: 0001789
2014-11-24 21:19 barry Assigned To => barry
2014-11-24 21:19 barry Status new => feedback
2015-01-07 20:54 ruslan Note Added: 0001881
2015-01-07 20:54 ruslan Status feedback => assigned
2015-01-09 15:35 ruslan Note Added: 0001889
2015-01-09 15:35 ruslan Status assigned => feedback
2015-02-16 15:35 ruslan Note Added: 0001956
2015-02-16 15:35 ruslan Status feedback => assigned
2015-02-18 15:20 ruslan Note Added: 0001957
2015-04-01 17:43 ruslan Status assigned => resolved
2015-04-01 17:43 ruslan Resolution open => fixed
2015-08-03 16:05 ruslan Status resolved => closed