|
Конкретные вопросы по lsFusion Ø (длинная ветка 14.10.2019 21:06) | ☑ | ||
---|---|---|---|---|
0
Bro
06.10.19
✎
20:21
|
Здесь только вопросы по lsFusion, без оценок и срача, что в сторону lsFusion, что в сторону 1С. Кто будет начинать того будут блокировать.
|
|||
903
Bro
14.10.19
✎
11:00
|
(901) Вообще Rename(SHIFT+F6) все делает автоматически. Да про Move забыли. А copy paste я бы в принципе не рекомендовал переносить, так как ссылки могут битыми стать (а так IDE за этим следить).
|
|||
904
orefkov
14.10.19
✎
11:07
|
(899)
Спасибо, почитал, там как-то не очевидно описано. Описаны реализации функций для разных типов параметров (но это и обычной перегрузкой делается), но не приведен пример именно полиморфного вызова, когда я вызываю для двух абстрактных объектов Thing collide, и получаю вызов конкретной реализации для реальных типов параметров. И реализация унутре выглядит как-то в духе семерочного 1С: Если док.Вид() = "РасходнаяНакладная" Тогда ИначеЕсли док.Вид() = "ПриходнаяНакладная" Тогда КонецЕсли |
|||
905
Bro
14.10.19
✎
11:40
|
(904) Технически да там создается CASE, но потом оптимизаторы / компиляторы очень много шаманят с этими свойствами переставляя, вырезая лишние IF'ы, потом при компиляции в SQL своя магия работает. В любом случае это все особенности реализации. Для разработчика lsFusion это не так принципиально (хотя и не сказать, что и не очевидно, для тех кто захочет все таки разобраться как это работает)
|
|||
906
Asmody
14.10.19
✎
11:44
|
Настрочил кучу кода, запустил сервер, получил простыню джавовского стек-трейса. Из адекватного там только "java.lang.AssertionError: TABLE WAS REMOVED BEFORE". И что мне теперь с этим делать?
|
|||
907
Злопчинский
14.10.19
✎
11:45
|
(906) не хотел жрать кактус? ну теперь ты понял, что придется жрать взамен - то на чем растут...
|
|||
908
Asmody
14.10.19
✎
11:46
|
Сообщение про удаление таблицы какбэ моногообещающее.
|
|||
909
ДенисЧ
14.10.19
✎
11:47
|
(906) Радоваться, что таблица таки существовала ))
|
|||
910
Bro
14.10.19
✎
11:49
|
(906) Джавовский стек-трейс это был такой баг в 2.0 (на всякий случай можете стектрейс на [email protected] кинуть). А вообще она же в лог пишет все изменения про таблицы (и добавления и удаления). Или нет?
|
|||
911
Asmody
14.10.19
✎
11:50
|
(910) Event log это вот это:
11:39 Build completed successfully in 689 ms 11:40 Build completed successfully in 531 ms 11:41 All files are up-to-date 11:49 Build completed successfully in 579 ms ??? |
|||
912
Bro
14.10.19
✎
11:55
|
(911) Это build лог проекта. Все что он делает это копирует lsf файлы из исходников в директорию запуска (при сборке при помощи IDEA это по умолчанию out/production) и компиляция туда же Java файлов проекта (которых у вас скорее всего нет). Я про лог запуска, там где Server is starting вначале и Server has successfully started в конце.
|
|||
913
Asmody
14.10.19
✎
12:03
|
Короче, я, кажется, понял.
Если в базе уже есть какие-то данные, но в результате изменений кода они не удовлетворяют какому-то новому CONSTRAINT, то сервер не запустится. Консистентность, чо! |
|||
914
Bro
14.10.19
✎
12:13
|
(913) Нет, сервер запустится. CONSTRAINT это событие
WHEN SET(f(a)) DO { MESSAGE CANCEL } То есть работает на новые изменения. В Администрирование -> Обслуживание (или как то так есть) проверить все ограничения / пересчитать все следствия для старых данных. |
|||
915
НиколаевГ
14.10.19
✎
12:20
|
(906) Хм... порог входа без ИТ-бэкграунда неделя :))
|
|||
916
Asmody
14.10.19
✎
12:21
|
(914) ХЗ, у меня не запускалось, пока я не закоментировал CONSTRAINT
|
|||
917
НиколаевГ
14.10.19
✎
12:25
|
(916) Судя по всему, при изменении структуры БД CONSTRAINT таки срабатывает :))
|
|||
918
Asmody
14.10.19
✎
12:30
|
А ширина колонок в гриде как-то программно задается?
|
|||
919
Bro
14.10.19
✎
12:34
|
(918) CHARWIDTH для свойства емнип.
https://documentation.lsfusion.org/pages/viewpage.action?pageId=7798786 И в дизайне формы есть опция. |
|||
920
Злопчинский
14.10.19
✎
12:40
|
(919) если в количестве символов - то при изменении масштаба в настройках ОС - смасштабируется нормально само?
|
|||
921
la luna llena
14.10.19
✎
12:43
|
кстати, с шириной колонок у вас проблемы, если длинные названия не влезают в поле, то никак это не изменить в пользовательском режиме
|
|||
922
Bro
14.10.19
✎
12:46
|
(920) Да в этом и смысл. Собственно есть настройка у пользователя % увеличения шрифта.
(921) Вообще по умолчанию колонки расширяемы. Другое дело, что у некоторых специально это ограничивают. Чтобы при расширении других колонок они не расширялись. |
|||
923
la luna llena
14.10.19
✎
12:49
|
(922) я обратила внимание, что даже открывая стандартную форму с настройками по умолчанию, сделано так, что заголовок столбцов не влезает в отведенное ему место, смотрится неряшливо
|
|||
924
Bro
14.10.19
✎
12:57
|
(923) Там просто иногда заголовок шире данных. И тут конечно непонятно что делать, или буквами кодировать (что тоже будет непонятно) или еще что.
|
|||
925
Asmody
14.10.19
✎
15:53
|
Что-то я из ваших примеров так и не понял, как сделать выбор значения в поле с предустановленным отбором (у вас же крутые подборы!)
вот такой кусок https://gist.github.com/Asmody/e0207c14332b0abcf99839a712845a81 Хочу такой выбор item'ов: Если type(doc) == DocType.PI Тогда для выбора доступны только Item с type(item) == ItemType.goods Если type(doc) == DocType.SI Тогда для выбора доступны Item c type(item) == ItemType.goods или ItemType.product, такие что balance(item, stock) > 0, где stock из документа. А последний CONSTRAINT должен учесть вариант наличия двух и более одинаковых item в строках |
|||
926
PR
14.10.19
✎
16:03
|
Гляжу я на все это форменное ммм... пусть будет безобразие, Asmody уже втянулся, прочие уважаемые товарищи
У меня один вопрос. А напаркуа? Как платформа, Фузина ясен пень настолько хуже и беднее 1С, что даже сами фузиновцы от безысходности сравнивают свою платформу с готовым решением от 1С, ДДСничая по поводу и без повода Как решение, Фузина неинтересна просто потому, что хоть какого-то мало-мальски интересного решения нет Возможность съэкономить на лицензиях 1С (потом, я так понял, потратившись на других вещах)? Не очень верится Остается, просто от скуки, типа 1С приелась, из спортивного интереса? Так мне и это было бы неинтересно. Мне еще на 1С столько интересного, на пять лет хватит точно Так что же это, в чем причина? |
|||
927
Bro
14.10.19
✎
16:03
|
(925) Вы в диалоге выбора товара хотите предустановленный отбор? Так просто в FILTERS напишите отбор.
Но я вообще не понимаю, что вы пытаетесь сделать. Если вы хотите чтобы именно по product остаток был больше 0 просто сделайте: CONSTRAINT type(Item item) = ItemType.product AND balance(item, stock) < 0; |
|||
928
Bro
14.10.19
✎
16:05
|
(926) 1С не умеет и половины того что умеет фузина. Вон мне про отрицительные остатки на приходе никто ничего не может написать. Не говоря уже о прозрачные материализации, ограничения, события, 21 проблема из статьи и остальные https://lsfusion.org/opportunities.
|
|||
929
Asmody
14.10.19
✎
16:07
|
(926) Хуяк, хуяк и в продакшен.
|
|||
930
PR
14.10.19
✎
16:07
|
(928) Я не тебя спрашивал, ты не относишься к уважаемым товарищам
|
|||
931
Asmody
14.10.19
✎
16:08
|
(927) Я хочу, чтобы в документах с типом si показались только товары и продукты с положительным остатком на складе из документа
|
|||
932
PR
14.10.19
✎
16:11
|
(929) Не не не, хуяк и в продакшн — это так в 1С можно
Фузину у народа даже поставить по-человечески не получилось, пришлось выдрачиваться с дистрибутивом Не говоря уж про то, что чтобы даже что-то простенькое написать, сначала нужно общую концепцию понять и дохрена чего изучить Тут явно что-то другое |
|||
933
PR
14.10.19
✎
16:14
|
(928) Что за "отрицительные остатки на приходе"? Снова еще одна важнейшая проблема 21 века?
|
|||
934
PR
14.10.19
✎
16:20
|
Меня вот реально торкают вещи типа прикрутить к 1С Апач или Кролика, сделать мобильное приложение, разобраться с системой взаимодействия, еще полмиллиона интересных вещей
Из вещей, не связанных с 1С вообще, меня интересуют только задачи типа: Миллиард копеечных бесплатных кроссплатформенных легких удобных симпатичных клиентов Транспортная логистика Бигдата РАУЗ Хотя нет, последнее уберите |
|||
935
shuhard
14.10.19
✎
16:24
|
(930) +1
клиника, кодер с промытыми мозгами, не осознающий, что сделал ни кому не нужный инструмент |
|||
936
PR
14.10.19
✎
16:30
|
(935) Да в том-то и дело, что будь сейчас спецов по Фузине столько же, сколько по 1С, и не представляй Фузину два куска говна, не умеющих продвигать свой продукт, а умеющих только обсирать чужой, и будь на Фузине хоть полтора готовых решения, то глядишь, ситуация могла бы сложиться совершенно по-другому
В конце концов простой гуглинг выдает практически ничего на поиск бесплатных открытых альтернатив 1С Но история, как известно, не знает сослагательного наклонения Так все же, что интересного в Фузине? Уважаемые коллеги, что вас манит в Фузине? |
|||
937
PR
14.10.19
✎
16:32
|
(935) Это, кстати, не он сделал, у них там целая банда десять лет хуячила, теперь даже программистам не могут объяснить, что они вообще сделали
|
|||
938
Лефмихалыч
14.10.19
✎
16:37
|
(936) да прост...
скука, да |
|||
939
Ёпрст
14.10.19
✎
16:37
|
||||
940
PR
14.10.19
✎
16:41
|
+(937) Еще и не сделали, кстати
Про интерфейс сказали, что говно, рожей кривили неделю, сейчас смотрю, косметику какую-то навели Про не открытие документов из списка по энтеру сказали, что дико же, смотрю, сделали Это даже не аналог 1С 7.7, это вообще что-то унылое на уровне аксесса из 2000-х Какая-то продажа Борланд Паскаля |
|||
941
PR
14.10.19
✎
16:43
|
Меня бы, кстати, да, самого бы торкнула возможность на простом бесплатном конструкторе накидать пусть сильно ограниченную по функционалу, но систему под ключ
Но тут же сначала надо изучить Франкенштейна, принять вся его ущербную сущность, и уже только после этого, проблевавшись и дважды помыв руки... |
|||
942
Лефмихалыч
14.10.19
✎
16:47
|
(941) ... и дважды помыв руки, понять, что не так уж тебе и хотелось.
|
|||
943
sqr4
14.10.19
✎
16:48
|
(941) аяй Рома, срач в соседней ветке
|
|||
944
PR
14.10.19
✎
16:49
|
(942) Как в анекдоте, да, https://www.anekdot.ru/id/508976/
|
|||
945
PR
14.10.19
✎
16:51
|
(943) В смысле? В этой ветке же про Фузину? А про Фузину ничего кроме срача и не было никогда. Два брата-акробата изначально целенаправленно с таким настроем на Мисту и прилупили.
|
|||
946
_DAle_
14.10.19
✎
16:53
|
(945) В этой ветке люди задают вопросы по lsfusion, мы отвечаем, иногда даже конструктивное обсуждение получается. Есть просьба очередной срачик хотя бы в этой ветке не устраивать.
|
|||
947
PR
14.10.19
✎
16:57
|
(946) ok, исключительно из уважения к единственному обнаруженному адекватному представителю Фузины
|
|||
948
_DAle_
14.10.19
✎
17:08
|
(947) Спасибо за понимание
|
|||
949
Asmody
14.10.19
✎
17:09
|
(946) [мы отвечаем, иногда] - спорное утверждение
|
|||
950
PR
14.10.19
✎
17:10
|
(948) Это не понимание, понимания у меня не было, нет, думаю, что и не будет. Это уважение к адекватности конкретного человека.
|
|||
951
НиколаевГ
14.10.19
✎
17:34
|
А как на фузине сделать аналог периодического регистра сведений, чтобы срез последних самому не придумывать?
|
|||
952
CrushBy
14.10.19
✎
17:37
|
(951) https://documentation.lsfusion.org/pages/viewpage.action?pageId=46367505
Вот так. При желании можно в метакод это обернуть. |
|||
953
НиколаевГ
14.10.19
✎
17:44
|
(952) То есть, нужно определить свойство для каждого набора измерений, по которым нужно получить срез последних. А дальше платформа всё сама сделает?
|
|||
954
Asmody
14.10.19
✎
17:47
|
Мои вопросы, видимо, слишком сложные.
А всё хвастались про "продвинутые" подборы! |
|||
955
Bro
14.10.19
✎
17:49
|
(931) где показать? у вас в ссылке же ни одной формы нет... в форме документа? или чего?
|
|||
956
Asmody
14.10.19
✎
17:56
|
(955) С формой все очевидно: Doc на панели, DocLine в гриде.
Я хочу, чтобы при выборе item'ов в DocLine из списка были доступны не все товары, а только по указаным условиям. А про CONSTRAINT это уже какбэ второе требование. |
|||
957
CrushBy
14.10.19
✎
17:56
|
(953) Да, вроде того. Дальше просто обращаетесь к этому свойству также, как если бы оно было первичным и вводилось вручную. Ну и, конечно же, в него, как и в любое вычисляемое свойство, нельзя писать.
|
|||
958
НиколаевГ
14.10.19
✎
18:03
|
(957) А как определяется ключ уникальности записи регистра? И как измерения от реквизитов отделить?
|
|||
959
CrushBy
14.10.19
✎
18:03
|
(956) Схематично вот так можно сделать :
// объявляем форму по выбору товара FORM selectItems 'Выбрать товар' OBJECTS s = Stock PANEL OBJECTS i = Item PROPERTIES READONLY name(i), currentBalance(i, s) FILTERS currentBalance(i, s) ; // определяем действие по редактированию товара в документе changeItem (DocLine l) { DIALOG selectItems OBJECTS s = stock(doc(l)), i = item(l) CHANGE; } // подменяем действие редактирования при добавлении свойства на форму FORM document .... OBJECTS l = DocLine PROPERTIES nameItem(l) ON CHANGE changeItem(l) ; |
|||
960
Bro
14.10.19
✎
18:04
|
Самый тупой вариант:
FORM dialogItems OBJECTS d=DocType, s=Stock, i=Item PROPERTIES (i) name FILTERS type(i) = ItemType.goods OR (d=DocType.SI AND type(i) = ItemType.products AND balance(i, s) > 0) ; FORM doc OBJECTS d = Doc OBJECTS dl = DocLine FILTERS d = document(dl) .. PROPERTIES nameItem(dl) ON CHANGE { DIALOG dialogItems OBJECTS d=type(d), s=stock(d), i=item(dl) CHANGE; } ; |
|||
961
Bro
14.10.19
✎
18:06
|
(960) можно поиграться с CONSTRAINT CHECKED BY. Тогда платформа сама embed'ит фильтр в диалог, но то что вы хотите это не тот случай, потому как она тогда при изменении остатка будет на этот CONSTRAINT и старые документы проверять (то есть он для других случаев используется
https://documentation.lsfusion.org/pages/viewpage.action?pageId=46367200 вот тут 5-й пример) |
|||
962
НиколаевГ
14.10.19
✎
18:07
|
(959) (960) Ахренеть у вас стандарты разработки, совершенно различный код для одного и того-же :))
|
|||
963
CrushBy
14.10.19
✎
18:08
|
(958) Рассматривайте регистр как своего рода интерфейс (в программном смысле). Соответственно, либо сам объект его реализует (тогда запись регистра = объект), либо он создает другой объект (агрегированный) и тот наследует регистр (тогда регистр = агрегированному объекту). Система сама следит за тем, чтобы агрегированный объект существовал и был единственным при заданных условиях.
Измерения от реквизитов никак не отличаются с точки зрения регистра. Неявно они отличаются в расчете значения. Все что в BY - это измерения, в выражении - реквизиты. |
|||
964
CrushBy
14.10.19
✎
18:09
|
(962) Там как раз одно и то же практически. Просто Bro добавил в логику еще тип документа и действие по редактированию "заинлайнил" в объявление формы.
|
|||
965
_DAle_
14.10.19
✎
18:13
|
(962) На всякий случай.. Bro отвечал Asmody.
|
|||
966
_DAle_
14.10.19
✎
18:14
|
(965) А, это я не так понял, извиняюсь. Блин, как же хреново без редактирования сообщений :)
|
|||
967
НиколаевГ
14.10.19
✎
18:15
|
(963) Уникальность записи как определяется? Нужно самому прописывать набор полей, по которым должна быть уникальность? И останется ли идентификатор записи тем-же, если вставить запись с таким-же набором полей уникальности?
|
|||
968
Bro
14.10.19
✎
18:15
|
(964) ну я еще в двух разных местах разный стиль использовал: OBJECTS d=Doc, dl=DocLine но быстро писал, я тут параллельно еще другими делами занимаюсь знаете ли.
|
|||
969
НиколаевГ
14.10.19
✎
18:18
|
(964) Так вы считаете, что стандарты написания кода не нужны? Получается, новички у вас усваивают тот стиль, который наставник практикует?
|
|||
970
Flyd-s
14.10.19
✎
18:42
|
Как у вас организованы поставки версий программы для клиентов и что нужно сделать клиенту, чтобы вести разработку своими силами и при этом получать обновления от вендора?
|
|||
971
Ещё1
14.10.19
✎
19:59
|
(960) > d=type(d)
Компилятор разрулит такое? То есть поймёт, где d - это Doc, а где d - это DocType? |
|||
972
Злопчинский
14.10.19
✎
20:02
|
(779) ЯННП.
1. То что свойство - это функция - ну как бэ понятно. Функция что-то возвращает (примитивный тип или ссылочный тип или вообще возвращает список целый) - это и будет свойство. типа так? 2. "И вот это свойство с функцией записывания. Для некоторых ее типов" - для типов чего? для типов возвращаемого функцией свойства? Куда это возвращаемое свойство записывается? когда записывается? возвращаемое значение функции зависит от входных параметров - записывается при каждом "расчете" функции? или только для неповторяющихся комбинаций входных значений? |
|||
973
Лефмихалыч
14.10.19
✎
20:03
|
ну, до чего ж мерзкая тарабарщина-то, а... прям вырви глаз
ключевые слова какие-то обгрызенные, от инвалидских обкусанных переменных только регистром отличаются... как это говно читать и сопровождать? ну, хрен с ним, у оракла есть максимальная длина имени большинства объектов, им надо экономить, по этому там так. Но вас-то что оправдывает? Или тоже 30 букв на литерал и крутись, как хочешь? |
|||
974
Злопчинский
14.10.19
✎
20:05
|
(785) в итоге вся работа идет посредством оперирования свойствами?
|
|||
975
Лефмихалыч
14.10.19
✎
20:09
|
(974) и модулями. Вчера ж выяснили: объект там - это модуль, а все остальное - атрибуты модуля. Модуль обладает неким поведением, которое публикует посредством атрибутов, которые как колонки, но это функции, хотя их тоже нельзя так воспринимать. В результате, короче, ты, умело жонглируя модулями и осатанело дёргая их за титьки атрибутов, получаешь что тебе там надо.
|
|||
976
Злопчинский
14.10.19
✎
20:11
|
(792) "Поскольку свойство описано как DATA - оно является первичным, а значит будет иметь отображение на уровне СУБД. Item будет соответствовать таблица БД, а quantity - поле в этой таблицы. Наверное, тут всё понятно."
- нихрена непонятно. Откуда следует что item - соответсвует таблице БД? это где явно описано? или это следует из неявного чего-то типа "Поскольку свойство описано как DATA - оно является первичным, а значит будет иметь отображение на уровне СУБД."..? |
|||
977
Злопчинский
14.10.19
✎
20:12
|
(975) а свойства здесь где?
|
|||
978
Лефмихалыч
14.10.19
✎
20:13
|
а, ну и к этой всей пшенице и ржи прилагаются еще, видимо, таблички в БД, которые, благодаря революционному механонизьму нэймспэйсов, соотносятся с модулями примерно как-то так же, как в томже оракле или постгресе - со схемами. Но это уже я просто догадываюсь - это не от них инфа.
|
|||
979
Злопчинский
14.10.19
✎
20:14
|
(792) "quantity = DATA INTEGER (Item);"
- можно сказать, что это "в структуре БД объявляется таблица item, состоящая из одного столбца с типом Integer? |
|||
980
Злопчинский
14.10.19
✎
20:15
|
..эта таблица item - она когда создается? постоянно хранится в БД? доступна другим сеансам?
|
|||
981
Злопчинский
14.10.19
✎
20:19
|
(792) "и возвращающие указанный в описании новый объект." - ЯННП, в описании чего?
. Типа Чтото = F(p0,p1,p2..pN) это "что-то" и будет "новым объектом"? |
|||
982
Злопчинский
14.10.19
✎
20:21
|
кнопки (сохранить и пр) и значки (фильры и пр), которые внизу визуальных форм - их можно, не лазая внутрь платформы переопределить их местоположение на визуальной форме кодом на уровне прикладного решения?
|
|||
983
Ещё1
14.10.19
✎
20:22
|
(976) Да, свойства описанные оператором DATA так или иначе отображаются в БД. Чаще всего полем таблицы (по крайней мере я не видел других отображений, но чем чёрт не шутит). https://documentation.lsfusion.org/pages/viewpage.action?pageId=688168
Но на время начального написания программы я вообще не заморачиваюсь об отображении классов в базе. Это делает сама платформа. Потом уже, отлавливая узкие места и делая оптимизацию, это надо учитывать. |
|||
984
Ещё1
14.10.19
✎
20:26
|
(979) Можно сказать, что в таблице Item точно будет столбец quantity. Какие ещё в ней будут столбцы можно сказать только после компиляции всей программы. Но лучше не опускаться на уровень БД (по крайней мере на начальном), а программировать в рамках понятий классов, объектов и свойств. Для этого и придуман язык lsFusion, что он максимально отстраняет программиста от непосредственной работы с таблицами, столбцами, индексами, запросами и т.п.
|
|||
985
Злопчинский
14.10.19
✎
20:27
|
(793) вот в этой фразе - дохрена незнакомых мне слов. можно как-то объяснять, исходя из того что пришел джуниор с улицы, не имеющйи ИТ-бэкграунда (хрен с ним, пусть даже имеющий, но про ООП только слова слыщал),..?
|
|||
986
Ещё1
14.10.19
✎
20:27
|
(984) Я уже прям как евангелист заговорил, хотя сам в фузине ещё плаваю как топор. :)
|
|||
987
Злопчинский
14.10.19
✎
20:28
|
(792) спсб за пояснения, внятнее стало. примерно так и понимал, но мутновато... сильно низкий у меня "порог входа".
|
|||
988
Злопчинский
14.10.19
✎
20:31
|
(983) свойство может быть "списком" (я полагаю что да)? то есть функция чтото там внутри себя крутит и выдает на выходе некий набор данных, например список из двух колонок с полями "товар" и "бренд"..? где товар и бренд - это для меня что: - ссылки на таблицы товаро и таблицу брендов? или просто наименования тавра и бренда? завитсит от того что я напишу внутри функции, которая это возвращает?
|
|||
989
Ещё1
14.10.19
✎
20:34
|
(980) Да, класс Item точно отобразиться в таблицу в базе, поскольку он имеет как минимум 1 свойство (quantity) объявленное как DATA. И она будет доступна всем. Заметьте, что мы не знаем точно, как будет названа эта таблица в базе, мы оперируем классами.
Было бы свойство DATA LOCAL - значение свойства было бы доступно только в текущей сессии пользователя. А в базе хранилось бы во временной таблице с неизвестным именем, доступной только текущему пользователю. |
|||
990
Злопчинский
14.10.19
✎
20:34
|
(984) "Можно сказать, что в таблице Item точно будет столбец quantity. Какие ещё в ней будут столбцы можно сказать только после компиляции всей программы"
- то есть я, типа новый разраб, пришел на место старого. и чтобы понять структуры базы, прикладных обьектов - должен буду прошерстить вручную своим пока что незапятнанным умишщком - должен буду прошерстить ВЕСЬ код, чтобы понять как "список контрагентов" устроен и как он взаимодействует с другими обьектами базы/прикладного решаения? |
|||
991
Ещё1
14.10.19
✎
20:37
|
(981) Свойство возвращает объект того типа, который был указан при его описании. Т.е. для quantity = DATA INTEGER (Item); типом возвращаемого значения будет INTEGER. А может быть любой класс, встроенный lsFusion или созданный в программе.
|
|||
992
Ещё1
14.10.19
✎
20:39
|
(982) Вот это ещё не разбирался, но вроде там есть какие-то методы компоновки объектов на форме, даже с визуальным отображением в IDEA (закладка Design прилеплена к правому краю окна IDEA).
|
|||
993
Злопчинский
14.10.19
✎
20:42
|
(989) "заметьте, что мы не знаем точно, как будет названа эта таблица в базе, мы оперируем классами."
- ну как бы понятно. типа как в 1С. класс "Документ" - а из скольки таблиц он на урровне БД будет состоять - мне как-то пока неважно. . но в 1С я вижу класс "Документ" и из "описания" самого класса в конфигураторе пронимаю из чего он состоит. А здесь, в фузине, как я пойму из чего состоит "документ"? вот я, разработчик новый, вроде разобрался в фузине в прикладном решении с "документ.заявкапокупателя". ага, норм. для реализации поставленной передо мной задачи мне нужен "атрибут" заявки покупателя такой как "номер заявки в терминах КИС покупателя". ага, "доопределяю" класс "документ.заявкапокупателя" таким атрибутом. Только оказываетяс что другой разработчик давным давно в каком-то модуле (я его просто не нашел среди обилия модулей/кода) уже определил точно такой же атрибут с такимже прикладным назначением. может такое быть? имхо может. Это же трэш страшный будет..? Где посмотреть !!"суммарное" полное!! описание класса "документ.заявкапокупателя" в прикладном решении..? |
|||
994
Злопчинский
14.10.19
✎
20:44
|
попутно (я раньше упоминал). в свое время Кларион хорошо стартанул и была даже перспектива что будет ок. но сообщестов резко перестало развииваться и закапсулировалось как только Кларион перевел код на ООП-шаблоны ABC (насколько я помню).
|
|||
995
Злопчинский
14.10.19
✎
20:47
|
(991) "Свойство возвращает объект"
- это меня выламывает напрочь. свойчство возвращает? как бы привык что возвраЩАЕТСЯ свойство (как значяение, или набор значений, или сложное состоавное чтото типа списка). . то есть следует пониматьчто "свойство" - это функция, которая что-товозвращает? или типа свойство это ящик с выходом, в котором чтото в заивисмости от того что на входе? |
|||
996
Ещё1
14.10.19
✎
20:49
|
(988) Вот честно не знаю. Знаю точно, что возвращаемое значение свойства может быть любым классом, а значит иметь значение числа, строки, даты, Справочника товаров, Документа реализации и т.д. Может ли оно вернуть некий набор документов? Не могу сказать.
|
|||
997
Злопчинский
14.10.19
✎
20:52
|
(796) имхо это зависит от того как ты эту таблицу опишешь, можно таблицу (скю, товар) дополнить (скю, товар, организация) а можно новую таблицу типа (организация, ссылка на запись первой таблицы)
|
|||
998
Злопчинский
14.10.19
✎
20:53
|
(798) имхо, по идее - да. движок "свернет" склады. я бы если делала "фузябу" сделал бы так
|
|||
999
Ещё1
14.10.19
✎
20:55
|
(990) Не могу сказать. Возможно есть какой-то инструмент, чтобы после компиляции посмотреть все свойства указанного класса в сборе.
|
|||
1000
CrushBy
14.10.19
✎
20:58
|
(971) Там разный контекст по синтаксису. Слева от "=" d - это контекст формы, то есть она ищет среди объектов формы. Справа от "=" выражение, которое вычисляется во "внешнем" контексте, то есть откуда идет вызов.
|
|||
1001
CrushBy
14.10.19
✎
21:00
|
(970) Под это была целая статья. https://habr.com/ru/company/lsfusion/blog/461983/
Суть в том, что базовая версия в конечном итоге поставляется как один jar файл, в которым куча базовых модулей. Под клиента делаются свои модули, которые собираются, грубо говоря, в отдельный jar файл. Когда сервер стартует он собирает "общую" логику из обоих jar-файлов. |
|||
1002
CrushBy
14.10.19
✎
21:06
|
(996) Нет, не может (точнее может через STRUCT, но это уже скорее костыль, чем нормальная практика использования). Тут важно понимать, что эти функции (свойства в терминологии lsFusion) - это не совсем обычные императивные функции в классических языках программирования. Они не выполняются (в их реализации нету последовательности выполнения). На основе определений этих функций просто "компилируются" соответствующие SQL запросы. Возвращение множества значений в данном случае равносильно либо заданию 2х функций (например, item(X) и stock(X), если нужно вернуть вроде парыm или in = BOOLEAN (X,Stock), если для X нужно задать множество складов Stock)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |