Сергей Ивачев 0 Опубликовано: 22 сентября (изменено) Здравствуйте. Таблица БД "items" является основным (значения и ссылки) источником данных для учетных единиц? К примеру, если в разделе "Выполнение" учетной единицы "Расходники" запустить стороннюю программу, которая удалит строку по этому расходнику из таблицы "items" БД это будет корректное удаление этого расходника из общего списка расходников (аналогично красному крестику в списке расходников)? Целостность БД не нарушится (соответственно и функционирование приложения)? И как передать в эту стороннюю программу ID учетной единицы по которой она вызывается? Изменено 22 сентября пользователем Сергей Ивачев Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Администратор 70 Опубликовано: 22 сентября Здравствуйте. Помимо таблицы items есть ещё таблицы с дополнительными свойствами объектов. Лучше всего развернуть тестовую копию базы и на ней изучить запросы через SQL Server Profiler - система которая в реальном времени показывает все sql запросы которые вызываются на сервере во время работы программы. можно и просто удалить запись из таблицы items - целостность БД не нарушится. Как передать в эту стороннюю программу ID учетной единицы по которой она вызывается? - к сожалению я не знаю такого способа - может быть через cmd файл и как параметр командной строки или ещё как-то. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Сергей Ивачев 0 Опубликовано: 23 сентября (изменено) Доброе утро. 1) "Помимо таблицы items есть ещё таблицы с дополнительными свойствами объектов... ", "..можно и просто удалить запись из таблицы items целостность БД не нарушится..."- понятно. Поэтому и отсутствие документированной структуры БД приведёт к потере времени на её изучение сторонними средствами. Ну что ж, у нас почти везде так. Совет по созданию тестового клона рабочей БД для изучения хороший, спасибо. 2) Более менее нормальную возможность передать в стороннюю программу параметром ID текущего расходника вижу в создании свойства расходника значение которого формируемого SQL запросом получения ID и использовании этого свойства в части выполнения используя параметр @P. Есть конечно и другие, но они требуют доп действий от пользователя. 3) Вообще для технологии дублирования учетной единицы расходника при действии "Выдача расходника" не вижу веского обоснования кроме коммерческого для вендора (К примеру запись расходника - блок из 20 батареек как одной учетной единицы, при выдаче, приведёт к порождению 20 учетных единиц, что при активном использовании быстро приведет к исчерпанию лимита лицензии и побудит к её усилению). Гораздо логичнее (для пользователя) было бы использовать изменение значений свойств расходника. Исправление этого вижу в действии напрямую в БД либо средством выполнения сторннего скрипта (скажем на питоне) с передачей ему параметром ID расходника, либо посредством использования триггера INSTEAD OF над view с перехватом и подменой операций над таблицей. Второй способ более надёжный (Foreign keys же отсутствуют), хотя немного сложнее. В любом случае пробовать надо на тестовой БД. Изменено 23 сентября пользователем Сергей Ивачев Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Сергей Ивачев 0 Опубликовано: 23 сентября Кстати, пытаюсь сделать свойство Id_Copy, тип выставляю и Текст, и Число, но оно не появляется в списке Свойств на главной вкладке расходника. Скрин прилагаю. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Администратор 70 Опубликовано: 23 сентября Все дополнительные свойства у которых прописан SQL запрос отображаются только в табличном представлении. В карточной форме такие доп свойства не отображаются так как они не редактируемые. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Сергей Ивачев 0 Опубликовано: 23 сентября (изменено) А почему указывая в команде выполнить @P свойство у которого прописанSQL запрос, команда (ppp) не появляется в контекстном меню для выполнения? Изменено 23 сентября пользователем Сергей Ивачев Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Администратор 70 Опубликовано: 23 сентября Это проблема именно раздела Расходники в комбинации со свойством с SQL запросом - у расходников есть особенности связанные с тем что они могут иметь множественное количество + программа не была рассчитана на запуск приложений с параметром в виде доп свойства на основе SQL. В данном случае как временное решение должно помочь привязка этого доп свойства к типам - тогда будет отображаться Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Сергей Ивачев 0 Опубликовано: 24 сентября Доброе утро. Да действительно, выполнение появилось на свойстве определенным SQL запросом, спасибо. Но значение его в программу не передаётся. К примеру свойство "Цвет" выбирается из списка, его значение в программу передаётся, а свойство "Копия IDtek" нет. Может ещё чего-то я не доделал? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Администратор 70 Опубликовано: 24 сентября Удалось оперативно внести изменение и теперь в расходниках в разделе ВЫПОЛНЕНИЕ есть возможность выбрать базовое свойство ID для использования. Вы можете скачать архив с обновлением и заменить файлы в папке с программой на файлы из архива: https://it-invent.ru/Download/ITInventUpdateSimple.zip Версия программы будет 1.70.3 Создавать какое-либо собственное дополнительное свойство с SQL запросом не нужно. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Сергей Ивачев 0 Опубликовано: 24 сентября Спасибо ). Сейчас обновлюсь. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Сергей Ивачев 0 Опубликовано: 24 сентября Всё работает ). Спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах