Имя: Пароль:
IT
 
Конкретные вопросы по 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)