Константин Чилингаров: Здравствуйте,
В этом окне, насколько я помню, сохраняется только список "постов" выбранных. При закрытии/открытии окна.
Порядок сл ...
Владимир Белов: написал:
Добрый день! Такой вопрос. Могу я установить базу данных на съемный диск и пользоваться на разных компьютерах - переставляя то ...
Константин Чилингаров: Здравствуйте,
Обычно, непосредственно с терминала выгружают управляющие программы какие-нибудь, к заданию, которое берется в работу. Н ...
Константин Чилингаров: К сожалению, проблема хронического отсутствия времени пока не позволила сделать.
Лежит заготовка под второй ролик с лета. Пока отложена ...
Константин Чилингаров: написал:
Честно говоря, "средний" уровень как-то никогда не рассматривали для работы.
Всё меняется...
10 лет назад там действитель ...
Константин Чилингаров: написал:
Можно, пожалуйста, выложить скрины, как это реализовано
Пожалуйста:
Рис.1 - Параметры в справочнике. Которые я использовал, ка ...
Константин Чилингаров: Здравствуйте!
Да, встречали такую ситуацию. Но, к сожалению, пока никак не можем научиться её стабильно повторять. Не можем пока найти к ...
Константин Чилингаров: Здравствуйте,
На совсем понял, если честно вопрос в Вашей терминологии.
Давайте попробуем ещё раз разложить всё по полочкам…
Вы ...
Константин Чилингаров: Здравствуйте,
Вместе с расчетом материала на 7 шт. еще и штучное время поделилось на 7
В этом есть логика.
Обычно эту "единицу нормир ...
Константин Чилингаров: Здравствуйте,
Не совсем понятно. Если речь идёт об окне, где отражается график работы и загрузки постов по дням и сменам (высокий/максим ...
Добрый день! Случайно, при попытке удалить неудаляющиеся позиции в технологической карте удалил деталь из дерва. По идее, саму деталь тоже надо удалить, но проблема в том, что я не могу теперь войти в "Коллекцию компонентов", поскольку деталь отсутствует в дереве. Как ее вернуть обратно в справочник? И почему не удаляются операции и детали из самой технологической карты? Где копать, подскажите. Заранее благодарю!
Похоже, я столкнулся, с глюком "двойного наследования", поскольку Копировал технологии с одного и того же источника. В любом случае, теперь невозможно удалить операции и детали без какого-то серьезного копания в БД...
Владимир Дружинин пишет: я столкнулся, с глюком "двойного наследования"
Наследование (как простое, так и двойное, тройное и т.п.) - это не "глюк", а возможность такая. Мощная достаточно. Только пользоваться ей нужно с пониманием (и с осторожностью, можно сказать). Поскольку штука не очень простая для понимания "с наскока", мы её сейчас постепенно закрываем от начинающих пользователей.
Цитата
Владимир Дружинин пишет: Копировал технологии с одного и того же источника
Вы их как именно копировали? Работали с окном Технология подробно? Или вручную, через режим "Компоненты", который открыт у вас на скриншоте?
Что касается самого скриншота: Он не особо информативен, но никакого "наследования" тут не видно, на первый взгляд.
Я так понял, вы хотите удалить содержание техпроцесса "Ступицы"? И что? Не удаляется? Что пишет то хоть?
Хотя нет... Действительно, есть, может быть, наследование. Плохо посмотрел... извините
Если есть, то понятно. Может из-за этого и не даёт удалять.
В общем, варианты решения: 1. Оставить как есть. Не удалять. 2. Разобрать по шагам здесь (бесплатно) 3. Дать копию базы и 4000 руб. Получить подробный ответ с разбором по скайпу.
Внутреннее исключение:: Конфликт инструкции DELETE с ограничением SAME TABLE REFERENCE "FK_Components_SourceComponent". Конфликт произошел в базе данных "VOGBIT", таблица "General.Components", column 'SourceComponentID'.
Ошибка преобразования значения varchar "except" в тип данных int.
Список вызовов: в Csdn.Vogbit.Data.SqlExceptionBuilder.ThrowError(Object sender, SqlException ex, String database) в Csdn.Vogbit.Data.DataObjectList.TryToApplyInternal(Boolean useTransaction) в Csdn.Vogbit.Data.DataObjectList.Apply(Boolean raiseEvent) в Csdn.Vogbit.Data.BizObject.DeleteInternal() в Csdn.Vogbit.Data.DataObject.DeleteInternal() в Csdn.Vogbit.Data.BizObject.Delete() в Csdn.Vogbit.Forms.DataForm.DeleteSelected() в Csdn.Vogbit.Forms.DataForm.DeleteClick() в Csdn.Vogbit.Forms.DataForm.DeleteCommand_Execute(Object sender, ActionExecuteEventArgs e) в Csdn.Vogbit.Forms.Action.Execute(Component component) в Csdn.Vogbit.Forms.Action.ClickHandler(Object sender, EventArgs e) в Csdn.Vogbit.Forms.ActionXtraBarItemLink.ItemHandler.EventClick(Object sender, ItemClickEventArgs e) в DevExpress.XtraBars.ItemClickEventHandler.Invoke(Object sender, ItemClickEventArgs e) в DevExpress.XtraBars.BarItem.OnClick(BarItemLink link) в DevExpress.XtraBars.BarButtonItem.OnClick(BarItemLink link) в DevExpress.XtraBars.BarItemLink.OnLinkClick() в DevExpress.XtraBars.BarButtonItemLink.OnLinkClick() в DevExpress.XtraBars.BarItemLink.OnLinkAction(BarLinkAction action, Object actionArgs) в DevExpress.XtraBars.BarButtonItemLink.OnLinkAction(BarLinkAction action, Object actionArgs) в DevExpress.XtraBars.BarItemLink.OnLinkActionCore(BarLinkAction action, Object actionArgs) в DevExpress.XtraBars.ViewInfo.BarSelectionInfo.ClickLink(BarItemLink link) в DevExpress.XtraBars.ViewInfo.BarSelectionInfo.UnPressLink(BarItemLink link) в DevExpress.XtraBars.Controls.CustomLinksControl.OnMouseUp(MouseEventArgs e) в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) в System.Windows.Forms.Control.WndProc(Message& m) в DevExpress.XtraBars.Controls.DockedBarControl.WndProc(Message& msg) в System.Windows.Forms.Control.ControlNativeWindow .OnMessage(Message& m) в System.Windows.Forms.Control.ControlNativeWindow .WndProc(Message& m) в System.Windows.Forms.NativeWindow .Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Inner Exception ---------------
Сообщение: Конфликт инструкции DELETE с ограничением SAME TABLE REFERENCE "FK_Components_SourceComponent". Конфликт произошел в базе данных "VOGBIT", таблица "General.Components", column 'SourceComponentID'. Ошибка преобразования значения varchar "except" в тип данных int.
Исключение: System.Data.SqlClient.SqlException
Источник: .Net SqlClient Data Provider
Список вызовов: в System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount) в System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount) в System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping) в System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping) в System.Data.Common.DbDataAdapter.Update(DataTable dataTable) в Csdn.Vogbit.Data.DataAdapter.Update(DataTable dataTable) в Csdn.Vogbit.Data.DataAdapter.UpdateDataTable(DataTable dataTable) в Csdn.Vogbit.Data.DataObjectList.ApplyInternal() в Csdn.Vogbit.Data.DataObjectList.TryToApplyInternal(Boolean useTransaction)
Наконец-то отправилось! Хотелось бы по-подробнее ознакомится с возможностями наследования программы. Что почитать? По вопросу решения проблемы - готов разобрать по шагам здесь подробно, поскольку, похоже, это не единственное место, где у меня в технологии такое задвоение. Заранее благодарю.
Достаточно было первых пару строчек. Само сообщение. Всё остальное в данном случае не нужно
Цитата
Владимир Дружинин пишет: Копировал в режиме "Технология подробно"
В режиме "Технология подробно", чтобы наследование появилось, нужно перед тем, как копировать , специально нажать кнопку "Использовать типовые техпроцессы". По другому никак не получится. Для чего вы её нажали? В чём был смысл?
Цитата
Владимир Дружинин пишет: Хотелось бы по-подробнее ознакомится с возможностями наследования программы. Что почитать?
Владимир Дружинин пишет: готов разобрать по шагам здесь подробно
В сообщении, почему не удаляется, написано: "Исходный компонент не существует, либо от него унаследованы компоненты"
Поэтому и нельзя удалить. Надо либо эти унаследованные компоненты сначала удалить, либо наследование (связь потомков с родителем) разорвать.
Чтобы понять, кто (где) унаследован, откройте технологию в режиме "Компоненты" (как на первом скриншоте вашем выше). Встаньте на неудаляющийся компонент. Откройте зависимое окно "Унаследованные компоненты" (рис.1). В нём увидите, где унаследовано что-то от того компонента, на котором стоите. Идём туда и либо удаляем соответствующих "потомков", либо разрываем наследование (рис.2).
Всё.
P.S. Чтобы такого не было, в "Технология подробно" не используйте ссылки на "типовой техпроцесс" без надобности. Всё из-за того, что вы когда эти комплектующие из ТП "ступицы" куда-то скопировали, зачем-то указали при этом, что эту "ступицу" следует считать типовым техпроцессом. Зачем?
Спасибо, Константин, за разъяснения. Но у меня немного запутанная ситуация, гляньте скриншоты, я нашел где что наследует, но проблема в том, что ссылка из техкарты барабана на операции Ступицы не удаляются! При этом, судя по серой кнопке разорвать наследование, и разорвать связь не получится. Посмотрите. Удалять не дает, разорвать наследование тоже. Именно поэтому, я думаю, у меня такой затык...
Вы нажали кнопку "Наследование" (показывать на экране "унаследованные" от "родителя" значения) - см. рисунок. Поэтому кнопка "Отменить наследование" и неактивна (серая). Отожмите кнопку "наследование". И будет активна кнопка "Отменить наследование".
Ура!!! Получилось!!! Просто надо было удалять наследование не у Ступицы, а у Барабана. Уффф. Без поллитры не осилишь Интересно, при удалении связи меня спрашивали удалить наследование с копированием (Да) или без (Нет). Я выбрал Нет. Это правильно? Или надо было выбрать Да?
Предлагаю голову техническими подробностями не забивать сейчас (по поводу Да/Нет). Просто не используйте наследование без надобности и всё. И не будет проблем.
По поводу разрыва наследования - что-то я не сообразил - надо было вам показать, как его разрывать не через "компоненты", а в окне "Технология подробно". Там тоже можно же. И проще (документация, рис.61).
Ну ладно... Разобрались, и хорошо.
Корень всей проблемы в том, что вы когда из одного окна "Технология подробно" копировали в другое зачем-то нажали кнопку "использовать ТТП". То есть по смыслу сказали этим, что "Ступица" - это у вас типовой техпроцесс, а в "Барабане" используются операции из типового техпроцесса. Отсюда всё и пошло (появилось наследование).
Выводы мы сделали ещё раньше. Данный топик подтверждает, что они были правильные. В следующей версии будет несколько изменён принцип работы с ТТП и типовыми операциями в "Технология подробно". В результате тем, кто реально пользуется типовыми техпроцессами, будет работать удобнее. А для тех, кто на самом деле ТТП по назначению не использует, задача "случайно" что-то куда-то унаследовать резко усложнится.
Видимо, дело в том, что сделали "конструкторскую спецификацию" в базе. Потом на её основе сделали "заказную спецификацию" чего-то (самого этого изделия или какого-то, куда данная сборочная единица входит). И, судя по всему, не одну. При этом по умолчанию сохраняется связь каждой позиции "заказной спецификации" (общего дерева изделия), с той позицией "конструкторской" спецификации, откуда она взялась (наследование).
Из-за этого "исходная" позиция в "конструкторской спецификации" и не удаляется.
Варианты решения: 1. Всё перестроить. Удалить заказные спецификации, на основе этой конструкторской построенные, в конструкторской спецификации поменять после этого всё что угодно (включая удаление позиций). Заказные после этого построить заново (чтобы они все были уже с учётом изменений).
2. Ничего не перестраивать, кроме самой спецификации исходной. 2а. Пойти в "заказные спецификации" на основе этой "конструкторской" построенные, там "разорвать наследование" (убрать просто связь со спецификацией-первоисточником). Потом менять в исходной спецификации что угодно.
2б. Вообще ничего не менять, поставить текущей конструкторской спецификации статус "Не действует". Сделать рядом новую, в неё скопировать, что нужно, со старой, что нужно удалить/поменять. Тем самым старая спецификация останется со всеми своими связями и т.п., но использоваться, когда понадобится спецификация данной сборочной единицы, будет уже новая, изменённая.
Какой вариант "правильный" - зависит от того, какой смысл вкладывается на конкретном предприятии в построенные "заказные спецификации". Зачем их строят вообще, как используют. Если это делают для того, чтобы зафиксировать, какой полный состав был в конкретный момент времени, то тогда это, скорее, вариант 2. Если используют в расчётах и т.п. и нужна всегда актуальная на сейчас версия состава полного, то тогда это, скорее, вариант 1.
Larissa пишет: Пишет ту же фразу: "Исходный компонент не существует, либо от него унаследованы компоненты."
Вообще-то другое пишет. Судя по скриншоту. В старых версиях программы такое сообщение могло бы означать, что есть "партия" и из-за этого программа не даёт удалить строчку заказа. Но это доработано было уже сто лет назад... У вас, вроде, не такая древняя версия должна быть.
Можете открыть "Администрирование" - "Файлы программы", поставить сортировку по колонке "системный", чтобы файлы без галочки были на экране все, и скриншот выложить?
Да, вроде, нормальная версия. Надо глянуть. Если срочно - пишите в скайп. Договоримся. Если не горит, то поставьте в графике производства пока к этой детали комментарий типа "неправильная" или "не использовать". Рядом добавьте в карту новую деталь, какую надо, и работайте пока (запускайте и т.п.). Потом, время будет, разберёмся, удалим.
Кстати, с "Планирование - Загрузка производства" не экспериментировали? Могут там "хвосты" какие-нибудь остаться.
В меню выберите "Планирование" -> "Загрузка производства". Если там есть какие-нибудь "варианты расчётов" (строчки), то удалите их. Они там просто кнопкой "Удалить" удаляются.
Кажется, я понял в чём тут дело... Думаю, не удаляется потому, что на этот заказ была создана ЛЗК. И из неё стоит ссылка на эту деталь в карте заказа (потому что в данной ЛЗК учтён материал в т.ч. и на эту деталь). И из-за этого и не удаляется, я думаю. Если по ЛЗК никаких движений не было, то можно просто открыть для заказа окно "ЛЗК, Требования, Заявки" и удалить ЛЗК. Потом поменять, что нужно в карте заказа (должна нормально деталь удалиться после этого) и заново ЛЗК сформировать (с учётом изменений в заказе уже).
Если ЛЗК нельзя удалить (например, по ней уже какое-то движение было), то тогда два варианта в такой ситуации: Можно деталь в карте старую оставить, но поставить ей, к примеру, комментарий типа «аннулировано». И кол-во поставить 0 можно. А рядом добавить правильную, нужную деталь. А можно удалить связь ЛЗК с деталью (это правда надо вручную в справочник документов лезть и в «связанные объекты»). Тогда потом деталь удалить можно из карты заказа.
Константин, спасибо большое. Буду знать на будущее.
Пока сделали так:
Цитата
Константин Чилингаров пишет: Можно деталь в карте старую оставить, но поставить ей, к примеру, комментарий типа «аннулировано». И кол-во поставить 0 можно. А рядом добавить правильную, нужную деталь.