Вход | Регистрация
    1  2  3  4  5  6   

Конкретные вопросы по lsFusion. Часть 2.

Конкретные вопросы по lsFusion. Часть 2.
Я
   CrushBy
 
14.10.19 - 21:08
В этой ветке только вопросы по lsFusion, без оценок и срача, что в сторону lsFusion, что в сторону 1С.

Для сравнения и троллинга есть отдельная ветка : OFF: lsFusion vs 1C. Раунд 3
 
 
   Ещё1
 
201 - 23.10.19 - 14:24
Тут на форуме уже столько всего полезного накидано. Я уже несколько раз пытался найти нужные сниппеты, о которых читал ранее, но забыл где конкретно...
   НиколаевГ
 
202 - 23.10.19 - 14:28
(199) Их костяк разработчиков - человек 5, максимум. Почему они не считают необходимыми стандарты разработки - я не могу понять.
   Пузан
 
203 - 23.10.19 - 14:30
В каждой ветке в нулевом посте надо бы ссылочку на фузину, а то мне лень искать.
   _DAle_
 
204 - 23.10.19 - 14:31
(195) Ну как минимум, потому что мы разные люди, обладающие разными знаниями и опытом даже в контексте обсуждаемого языка. И у нас еще нет огромного опыта рассказывания о платформе и языке в частности, поэтому "плавать" у нас в сообщениях может даже терминология, не говоря уже о стиле написания кода. Да и в любом языке (если это не brainfuck) есть возможность писать код слегка по-разному, а в некоторых и сильно по-разному. Это уже зависит от существующих стандартов, практик и рекомендаций.
   НиколаевГ
 
205 - 23.10.19 - 14:33
(198) 1. Ещё проще, пожалуйста. Мне непонятно, в чем плюсы multiple dispatch, и, если честно, не очень понятно, что это вообще такое.
   Злопчинский
 
206 - 23.10.19 - 14:34
(204) ну так пора как-то "стандартизировать"...
   Пузан
 
207 - 23.10.19 - 14:35
Через год/полтора выяснится, что фузина - это на самом деле 1С v9, но чтобы не палиться и дать народу привыкнуть, 1С выпустила ее через левых товарищей. :)
   НиколаевГ
 
208 - 23.10.19 - 14:35
(204) Я не понимаю, почему такая элементарная вещь, как видимость кнопки по условию, не стандартизирована. Зачем возможны несколько вариантов в таком элементарном действии? Поймите, вот такое вот разнообразие очень порог входа повышает...
   НиколаевГ
 
209 - 23.10.19 - 14:38
(198) Кстати, исходя из этого, я правильно понимаю, что ключевая часть вашей концепции - это свойства?
   НиколаевГ
 
210 - 23.10.19 - 14:39
(207) Нет, сынок, это фантастика.(с)
   Ещё1
 
211 - 23.10.19 - 14:43
(197) Там есть бизнес-классы и их свойства. Выстраивая иерархию классов, охватываем предметную область. Классы и свойства прозрачно интегрированы как в уровень СУБД, так и в уровень представления (экранные формы, отчёты). Платформа сама думает, как грамотно распихать классы и свойства по таблицам, как сделать индексы. Заголовки классов и свойств автоматически становятся заголовками в формах, в элементах ввода на формах. И т.д. и т.п.

Т.е. программист должен в первую очередь думать на уровне бизнес-классов, их свойств, событий и действий. Это уровень 2 в 3-звенном приложении (СУБД - сервер приложений - пользовательские программы). А как это всё будет отражено на уровне 1 и уровне 3 - решает платформа. Хотя при желании можно ей подсказать, какую конкретно таблицу в СУБД создать, как её назвать, как расположить элементы на форме для удобства пользователя.
   _DAle_
 
212 - 23.10.19 - 14:43
(205) Я понимаю, что это не простое объяснение, но чтобы простыми словами рассказать, нужно много текста с примерами, а на это соответственно много времени.

(208) Там вопрос был на самом деле не в самой видимости кнопки по условию. А конкретно в использовании довольно сложного (по крайней мере, для lsfusion) синтаксиса, когда добавляемое на форму действие (кнопка) создается прямо по месту.

(209) В целом, да.
   НиколаевГ
 
213 - 23.10.19 - 14:50
(212) Хотите, чтобы вашу платформу использовали - придётся потратить время, тут ничего не поделать. Опять же, это время будет потрачено не просто на ответ на форуме, но и на получение в итоге качественной и непротиворечивой документации.
   Ещё1
 
214 - 23.10.19 - 14:52
(207) :)
Главное, чтобы 1С их не купила и не сделала 2С, с лицензиями на каждого пользователя, сервер, базу данных, web-клиента, и на каждую отдельную конфигурацию.
   _DAle_
 
215 - 23.10.19 - 14:53
(206) На мой взгляд, пока недостаточно опыта использования языка для более строгой стандартизации и рекомендаций. Сейчас основную массу кода на lsfusion пишет одна команда, у них есть выработанные внутри команды практики и стиль кодирования, но есть вещи, к которым они просто привыкли и не факт, что это нужно принимать в качестве стандарта. Хочется больше кода, написанного разными людьми с разным опытом, тогда можно делать выводы о преимуществах каких-то конкретных подходов и стилей.
   HeKrendel
 
216 - 23.10.19 - 14:54
3 ветки
   HeKrendel
 
217 - 23.10.19 - 14:54
Карл
   Злопчинский
 
218 - 23.10.19 - 14:54
(214) вот это точно!
   Конструктор1С
 
219 - 23.10.19 - 14:56
(211) с неменьшим успехом можно .NET Framework назвать бизнес-ориентированной платформой. Под неё тоже можно писать "бизнес-классы и их свойства". А уж крутяцких вещей, облегчающих жизнь разработчику, в .NET немеряно
   НиколаевГ
 
220 - 23.10.19 - 14:57
(215) Замкнутый круг какой-то. Больше кода нет из-за необычной концепции и высокого порога вхождения, стандартов нет, так как нет кода. Вот я хотел бы реализовать на фузине небольшое, нужное на практике, приложение, но прогнозируемые временные затраты на получение минимально приемлемого результата удручают :((
   НиколаевГ
 
221 - 23.10.19 - 14:59
(217) "Неладно что-то в датском королевстве"(с)
   НиколаевГ
 
222 - 23.10.19 - 15:00
(219) Так да, это и есть бизнес-ориентированная платформа.
   Конструктор1С
 
223 - 23.10.19 - 15:05
(222) не-а
   _DAle_
 
224 - 23.10.19 - 15:09
(220) Ну, все же не такой уж и замкнутый. Мы выложили платформу в общий доступ и стали писать статьи максимум пару месяцев назад. Сейчас уже есть люди, которые пробуют платформу на практике, мы потихоньку получаем фидбэк. На его основании будем что-то улучшать, добавлять.
   Bro
 
225 - 23.10.19 - 15:14
(220) Вы просто плохо представляете как 1с выглядит со стороны. Я когда первые материалы открыл первая реакция ЧТО ЭТО. Картинку со статьи видели? Порог вхождения у 1с очень высокий. Даже выше чем у условного .net, особенно если у человека до был хоть какой то опыт программирования.
   Ник080808
 
226 - 23.10.19 - 15:17
(225) то что вы дупля в 1с не отбиваете мы по вашим глупым статьям  поняли. Вопрос в другом - нафига вы рассуждаете о том, в чем не понимаете?)
   Ещё1
 
227 - 23.10.19 - 15:18
(219) Ну так и на платформе .NET такое есть. Введите в Гугл "ERP .NET Framework" и там в первых строках среди прочего будет https://mixerp.org - Free ASP.net Open Source ERP Software. Больше альтернатив - лучше.
   Пузан
 
228 - 23.10.19 - 15:25
А как обстоят дела с разработкой печатных форм? Всякие там ТОРГ-12, СФ и прочие довольно сложные оп структуре формы? Есть какой то визуальный редактор?
   Bro
 
229 - 23.10.19 - 15:27
(228) бесшовно jasperreports встроен. Но он чисто за дизайн печатной формы отвечает (за все остальное сама платформа). Естественно визуальный редактор есть, собственно это единственное место где в нем есть смысл.
   Ещё1
 
230 - 23.10.19 - 15:30
(225) Могу подтвердить, что после 1С сразу пользовательский интерфейс показался каким-то совсем упрощённым, однотонным. Сейчас вот обновил модули lsFusion до последней версии 3 beta, поработал по пару часиков каждый день, и вроде уже начинает нравиться.

То есть внешний вид в 1С очень хорошо продуман, это да. Но к lsFusion тоже можно привыкнуть.
 
 Рекламное место пустует
   Bro
 
231 - 23.10.19 - 15:32
(226) ну не знаю половину говорят что все так и есть. Вот одно из последних мнений.

Я со всем согласен кроме части про блокировки и СКД.

На самом деле управляемые блокировки достаточно удобны и в друхе времени.
СКД тоже не имеет аналогов. Возможно позиционирование у него и правда не до конца выверено, но продвинутым пользователям очень нравится.

У меня есть опыт работы с BI (особенно с MS BI) и могу сказать что пользователи вообще не могут работать с BI системами, они слишком сложны для них.
Если я им дашборды создам то да, они могут, где то могут поля перетянуть, но на этом все.

В то же время совсем нулевые девочки из ЗУП которые даже компьютер сами выключить не могут, активно используют отчеты на СКД (конечно обернутые в более дружественный интерфейс).
   Ник080808
 
232 - 23.10.19 - 15:32
(225) ыыыыы глянул код добавленный на гите по заданию))) и ты будешь рассказывать о "ЧТО ЭТО"?))
   Bro
 
233 - 23.10.19 - 15:34
(232) я к тому что 1с со стороны стороннего разработчика выглядит не менее дико чем lsFusion со стороны 1сца.
   Ещё1
 
234 - 23.10.19 - 15:35
(225) В 1С немного другой подход. Там есть готовые конфигурации и пошаговые методические рекомендации. Сделано всё для того, чтобы "внедрятелю" не пришлось лезть внутрь исходных модулей платформы. И конечно, это сложно назвать программированием, это настройка. Написать пару внешних обработок с печатными формами - не в счёт.

А вот если конкретно заниматься программированием на 1С, изучить язык, изучить 1С-SQL, разобраться как всё там устроено, как работают разные механизмы - вот такого человека можно назвать 1С-программистом. И там порог вхождения заметно выше, чем для "внедрятеля".
   Bro
 
235 - 23.10.19 - 15:36
(230) вот не знаю. Я смотрел ту же формы номенклатуры в УТ и не мог понять почему отбор запихнули хер знает куда, а создать заметку заслужило отдельную кнопку.
   НиколаевГ
 
236 - 23.10.19 - 15:39
(225) Не надо мне тут про 1С втирать, я у вас про 1С в этой теме не спрашивал ничего, так как понимаю, что ничего нового вы про 1С мне рассказать не в состоянии. Отвечайте за свою платформу.
   Ник080808
 
237 - 23.10.19 - 15:40
(231) кто говорит о чем говорят? такие же как и вы?) Ты понимаешь, что 1с программистами работают люди в большинстве своем не программисты по образованию? Вот лично я финансист по образованию. Я не увлекался программированием до того, как освоил 1с.  В кабинете из 6 разрабов, проги по образованию 2 человека. Собственно, что бы сделать небольше приложение на 1с - задание в духе зарубы с Ромой - начинающий человек абсолютно полный ноль в программировании сделает за пару недель не спеша. Поэтому, когда мне практикующий программист говорит что в 1с высокий порог вхождения, я понимаю что у этого программиста уровень ниже джуна)
   Ник080808
 
238 - 23.10.19 - 15:41
(230) "пользовательский интерфейс показался каким-то совсем упрощённым, однотонным" - как красиво сказал "унылое г*но"! аплодирую стоя
   Пузан
 
239 - 23.10.19 - 15:42
Зачем нужен абстрактный класс? Т.е. у него какая функция, кроме того чтобы другие классы от него наследовать? Т.е. просто некоторый группировочный класс. В примере определяется класс Document и все. Я бы понял, если бы в нем определили какие-то обязательные для всех наследников свойства и интерфейсы, которые наследник обязан реализовать. А так, не понимаю для чего он.
   Ещё1
 
240 - 23.10.19 - 15:43
(235) Ну, есть нюансы, может кому-то надо. Просто со временем на лишнее не обращаешь внимания. Я ж говорю, дело привычки.
   PR
 
241 - 23.10.19 - 15:49
(205) Да все просто
Это примерно как
Функция ПолучитьСуммуДокумента(Документ)
    
    Если ТипЗначения(Документ) = ОписаниеТипов("ДокументСсылка.РеестрТМЦНаСкладах") Тогда
        Возврат Документ.ТМЦ.Итог("ОценочнаяСтоимость");
    Иначе
        Возврат Документ.СуммаДокумента;
    КонецЕсли;
    
КонецФункции

То есть в зависимости от количества и типа параметров функции вызывается либо одна функция либо другая либо третья, а в принципе все можно решить через если
   Smile 8D
 
242 - 23.10.19 - 15:49
(225) Пришел из php и спортивного программирования в 1С. Ничего особо дикого не увидел. Прошел 2 дистанционных курса по основным объектам и механизмам (заняло около 2х недель) и уже на 3ей неделе начал решать реальные задачи. Поначалу, конечно, понаступал на стандартные грабли, но влился довольно быстро. Менее чем через год спеца получил по платформе. И это было в то время, когда кроме официальных курсов и книжек ничего особо не было. Сейчас порог вхождения еще ниже.
Отдельная тема сложность современных конфигураций, там порог вхождения может быть чуть повыше, но если с логикой и алгоритмами дружишь (а у вас речь шла о программистах на других языках), то серьезных проблем быть не должно.
(231) Вы очень странно считаете половины. Я уже писал ранее, что вы выбираете отзывы на хабре, которые оставляют люди не осилившие базовые механизмы в 1С (судя по текстам). Как из этого можно составить сколько нибудь реальную картину, а особенно высчитывать проценты мне не понятно.
Краш меня вообще в ступор вводит своей логикой, которая ну никак не соответствует уровню адекватного программиста (когда он делал вывод о жителях России по тому что "если бы я жил в России, то хотел бы стать чиновником").
   PR
 
243 - 23.10.19 - 15:52
(225) Ага, очень высокий, да, даже домохозяйки за вечер могут уже что-то наклепать
То ли дело у Фузины, где без поллитры даже не поймешь, про что вообще речь
И потом, ты не забывай, после этого порога перед программистом 1С целый волшебный мир возможностей
А перед разработчиком Фузины что, возможность использования платформы бесплатно?
   PR
 
244 - 23.10.19 - 15:57
(233) Ты не путай дико и уепищно
Дико — это когда непривычно, все не так, все непонятно, везде все новое и порой неочевидное
А уепищно — это когда просто сразу видно, что унылое неудобное, малофункциональное говно с не юзерфрендли интерфейсом
   _DAle_
 
245 - 23.10.19 - 15:59
(241) Если решать это через "Если", то при появлении какого-нибудь нового типа документа придется во всех этих блоках с Если добавлять еще одну ветку. А при полиморфизме это не нужно, вы просто объявляете новую реализацию для нового класса (в классическом ООП), а в lsfusion сверх этого можно добавить новую реализацию для нового набора классов.
   Smile 8D
 
246 - 23.10.19 - 16:03
(245) Это был просто пример. В БСП все сделано универсальнее. Есть какие-то признаки, либо стандартные реквизиты, где указано по каким правилам считать СуммуДокумента.
Т.е. в общем виде принцип такой же - заранее потрать время на проектирование так, чтобы потом было проще расширять функциональность.
   Пузан
 
247 - 23.10.19 - 16:04
(244) Я же правильно понимаю, что твое образование никак не связано с программированием ну или очень косвенно?
   Ник080808
 
248 - 23.10.19 - 16:08
(245) поэтому и не делается это через если, а через универсальные функции и тебе не нужно добавлять ничего за пределами "класса"
   _DAle_
 
249 - 23.10.19 - 16:08
(239) Обычно абстрактный класс Document нужен для того, чтобы можно было определить некоторую базовую логику, которая будет работать со всеми наследниками Document независимо от их реального класса. Например, объявить какие-то свойства, которые будут у всех документов вне зависимости от того, что это будут за документы. Ну, в общем, как и в любом другом языке программирования, где есть абстрактные классы.
   Пузан
 
250 - 23.10.19 - 16:10
(249) В примерах у абстрактных классов вообще ничего нет, кроме объявления. В инструкции тоже. Т.е. не понятно для чего он нужен, кроме некоторой логической группировки.
   Bro
 
251 - 23.10.19 - 16:11
(242) я считал мнение людей только которые постоянно пишут на 1с, как из поста который я кидал.
И он написал правильную мысль:

чуть позже отвечу подробнее


На мой взгляд не нужно отвечать.
Суть в том что у тех кто способен понять о чем вы пишите вопросов не возникает, может быть есть в каких то моментах иной взгляд, но в целом (особенно в части про СУБД) так все и есть.

А те кто начинают с этим спорить, не смогут вас понять все равно.

Так что флудить давайте лучше в отдельную ветку.
   Пузан
 
252 - 23.10.19 - 16:12
(249) В других языках абстрактные таки имеют свойства и интерфейсы, которые потомки обязаны реализовать, таким образом как раз и задаются базовые свойства и методы. А тут чего то я не нашел про это не слово. Можно пример?
   Smile 8D
 
253 - 23.10.19 - 16:17
(251) А как вы определяли, что они постоянно пишут на 1С?
Ну и, собственно, спорить я не собирался. Просто привел пример альтернативной точки зрения в надежде, что вы хоть попытаетесь абстрагироваться и рассуждать объективнее. Но пока вы упорно видите только то, что соответствует вашему поверхностному первоначальному мнению.
Очевидно, что есть люди, которым что-то не нравится и некоторые из них даже могут красиво формулировать свои мысли. Но это не более чем красота, потому что умом во фразе "кто спорит - тот дурак" (в оригинале "А те кто начинают с этим спорить, не смогут вас понять все равно") не пахнет. Умный человек способен абстрагироваться и понять точку зрения оппонента.
   PR
 
254 - 23.10.19 - 16:20
(245) Во-первых, я не сказал, что это лучше, я просто объяснил суть на пальцах, то, про что ты в (212) написал, что это очень долго, сложно и муторно
Как видишь, можно и просто объяснить, за полминуты
Во-вторых, не придется, если не решать задачу втупую, а, например, заточить функцию не на тип тип документа, а на, к примеру, группу типов, а в новом типе документов сделать метод, возвращающий эту группу
   Bro
 
255 - 23.10.19 - 16:23
   Ник080808
 
256 - 23.10.19 - 16:23
(253) +100500(251) откуда ты знаешь что они постоянно пишут на 1с? даже если они пишут на 1с это не говорит о их правоте в отношении 1с))) тут выше товарищ твой писал что вы термины согласовать не можете, потому что каждый по своему понимает и каждому по своему привычно, так вас пять человек, а в 1с десятки тысяч с разных профессий и разным мировоззрением. Знаешь сколько на мисте нытиков бывших джавистов/сишарповцев было орущих что 1с говно потому что нет ооп и строгой типизации? просто их так учили, что ооп - это основа мира, строгая типизация это основа основ, они не могут кодить с динамической типизацией, потому что узкое мышление. они пять лет в универе осваивали ооп, а пришли в реальный мир и оказалось что пять лет они фигней маялись)
   Ник080808
 
257 - 23.10.19 - 16:28
(255) этот же чувак в другой ветке бросает ссылку на вашу статью как пример того, что являет собой платформа)))))
   НиколаевГ
 
258 - 23.10.19 - 16:31
(241) Ты мне тут 1С-ом не тычь :)). Я авторов услышать хочу, чтобы они так мне объяснили, чтобы потом это объяснение кому угодно понятно стало :))
   Bro
 
259 - 23.10.19 - 16:33
(257) прикольно. Только я не понял в каком контексте он ссылку на эту статью кинул (то есть зачем)
   Ник080808
 
260 - 23.10.19 - 16:34
(259) вот и я о том, что он о 1с знает столько же сколько и вы)
   Smile 8D
 
261 - 23.10.19 - 16:35
(255) Не совсем понял для чего ссылка, но по комментариям видно, что человек крайне негативно относится к 1С (да и вообще ко многим вещам, судя по комментариям). Я могу только пожалеть его, если он считает 1С "ущербным" языком (прямая цитата) и продолжает с ним работать. Ушел бы давно уже в нормальные языки, не трепал себе нервы)
Ну а как программист вы должны владеть базовой логикой и понимать, что в ответ на мое "как вы определяете, что они постоянно пишут на 1С?" кидать частный пример нелогично. Частные примеры не являются доказательством общего случая. Думаю, что всем очевидно, что вы никак не можете определить по комментариям на Хабре уровень профессионализма в 1С, про это и была речь в моем комментарии.
   НиколаевГ
 
262 - 23.10.19 - 16:36
(259) (261) Идите в срачеветку, не мешайте полиморфизм обсуждать.
   _DAle_
 
263 - 23.10.19 - 16:36
(252) Да, сейчас попробую набросать пример. Предположим, что у нас есть абстрактный класс Document.

CLASS ABSTRACT Document;

Абстрактный класс от обычных классов отличает то, что нельзя создать объект этого класса. Более того, в lsfusion это единственное отличие между абстрактным и конкретным классом. Если говорить о практике применения то...

1. Например, у всех наших документов должен быть идентификатор. Создаем соответствующее свойство:

id(Document d) = DATA LONG (Document);

В это свойство аргументом можно будет передать любой из объектов классов-наследников Document. То есть у любого объекта-документа будет идентификатор.

2. Мы хотим создать свойство документа, которое будет по-разному определяться в классах-наследниках, но иметь единый синтаксис обращения к нему, при котором нужный метод будет выбираться в рантайме в зависимости от реального класса объекта (то есть тот самый subtype-полиморфизм). Пускай это будет некое имя документа. Можно создать абстрактное свойство:

name = ABSTRACT STRING (Document);

Затем в каком-нибудь другом модуле мы определяем класс приходного документа:

CLASS IncomeDocument : Document;
   HeKrendel
 
264 - 23.10.19 - 16:37
(260) Ты  только что раскрыл порочный круг
   Smile 8D
 
265 - 23.10.19 - 16:38
(262) Ну так человек первый начал в специализированной ветке делиться своими впечатлениями об 1С и вбрасывать "факты", которые очевидно противоречат логике. Или расчет и был на то, что он под защитой темы? :)
   _DAle_
 
266 - 23.10.19 - 16:38
(263) Ну и как теперь отредактировать... Вот поэтому я и не хочу писать длинные ответы на мисте.
 
 Рекламное место пустует
   НиколаевГ
 
267 - 23.10.19 - 16:39
(265) Не надо уподобляться, будь выше этого.
   НиколаевГ
 
268 - 23.10.19 - 16:40
(266) А и не надо, делай ответы на своём сайте, а сюда ссылку кидай :)
   HeKrendel
 
269 - 23.10.19 - 16:40
(263) И чем вы отличаетесь в этом конкретном примере от 1С?
   Пузан
 
270 - 23.10.19 - 16:41
(263) Ага т.е. IN base  в абстрактном классе не нужен.
   НиколаевГ
 
271 - 23.10.19 - 16:42
(266) Кстати, неплохо получается объяснять, сразу ясны аналогии и можно задать уточняющие вопросы по теме без всякого флуда.
   Bro
 
272 - 23.10.19 - 16:42
(260) Еще раз может сложиться мнение что я считаю что платформа «плохая» но нет, я очень люблю платформу, она меня как минимум кормит и я знаю как быстро на ней можно решать любые задачи бизнеса

Это про 1с этого автора, но все ухожу в другую ветку.
   Пузан
 
273 - 23.10.19 - 16:42
(263) Хотя не, не понял разве так нельзя абстрактный класс объявить:
CLASS ABSTRACT Document;
DateDoc 'Дата' = DATA DATETIME (Document) IN base;
NomDoc 'Номер' = DATA NUMERIC[15, 0] (Document) IN base;
   Ник080808
 
274 - 23.10.19 - 16:43
(272) ага. это типа - вася говорит что его жена жирная и тупая, но он ее то любит ведь она мать его детей)))
   НиколаевГ
 
275 - 23.10.19 - 16:45
(273) Они не от классов танцуют, а от "свойств".
   Пузан
 
276 - 23.10.19 - 16:47
(275) Тем не менее в их же примере для обычного класса именно так выглядит объявление.
   Пузан
 
277 - 23.10.19 - 16:49
Т.е. класс объявляют без всего, а потом свойства объявляют именно как в (273), однако в (263) другой способ объявления свойства. Так то я начинаю по не многу въезжать в синтаксис, но почему такая разница на похожих примерах?
   _DAle_
 
278 - 23.10.19 - 16:52
(263) Продолжу

Определяем его name как первичное хранимое в базе свойство:

name = DATA STRING (IncomeDocument);

и расширяем наше абстрактное базовое свойство:

name(IncomeDocument d) += name(d);

Затем в другом модуле объявляем класс расходного документа:

CLASS OutcomeDocument : Document;

Допустим, что его имя всегда вычисляется по какой-то логике:

name(OutcomeDocument d) = name(header(d)) + someInfo(d);  

И также расширяем абстрактное свойство:

name(OutcomeDocument d) += name(d);

Теперь в коде, где используется абстрактный name, например

showDocumentName(Document d) { MESSAGE name(d); }

будет при передаче туда приходного документа браться имя из базы, для расходного будет вычисляться по заданной нами логике.
   PR
 
279 - 23.10.19 - 16:55
(263) В 1С такое же будет, если в менедежере каждого документа сделать такой метод
   Пузан
 
280 - 23.10.19 - 16:55
(278) Не, ты слишком вглубь пошел, пока задача прозаичная. Объявить абстрактный класс и его свойства, так чтобы само собой объект такого класса быть создан не мог, а наследники таки свойства от него получили. Почему (273) не канает?
   _DAle_
 
281 - 23.10.19 - 16:59
(280) Ну я просто попытался описать самую простую логику, где типично использование абстрактного класса.

(273) Канает, я вроде бы в (263) про это вверху и написал
   _DAle_
 
282 - 23.10.19 - 17:02
(270) IN base; - это вообще лишнее в этих примерах, это добавление свойства в группу свойств. В данном контексте это можно выбросить из кода.
   Пузан
 
283 - 23.10.19 - 17:06
(282) Зачем оно тогда там? Сбивает с толку, я подумал что это значит, что это свойство хранится в базе. В примерах каждая буква должна быть описана, че она там делает, а такое всякое только сбивает с толку.
   _DAle_
 
284 - 23.10.19 - 17:08
(283) А откуда этот код? :)
   _DAle_
 
285 - 23.10.19 - 17:11
(254) Не соглашусь. Это не объяснение того, что такое multiple dispatch. Это показ функциональности, где руками делается single dispatch.
   НиколаевГ
 
286 - 23.10.19 - 17:12
(285) Тогда точно придется объяснить :)
   НиколаевГ
 
287 - 23.10.19 - 17:13
(278) Вот, теперь это в FAQ на сайт, и, если что, ссылку джунам кидать.
   Пузан
 
288 - 23.10.19 - 17:14
Ребята, описалово вообще никакое, примеры вводят в заблуждение, структуры никакой. Надо кучу времени потратить чтобы понять че к чему. Я уже час не могу элементарно базовые классы сделать, оказывается если написать NUMERIC[10,2] и NUMERIC[10, 2] - это сильно не одно и то же, во втором случае будет ошибка, потому что среда разработки ничего не знает пробелах, табах, переводах строк и прочих разделителях, которые не в синтаксисе должны игнорироваться.
   Пузан
 
289 - 23.10.19 - 17:14
   НиколаевГ
 
290 - 23.10.19 - 17:17
(288) Да, именно об этом я неоднократно говорил выше. Но они почему-то считают, что сейчас для них важнее битва с 1С...
   _DAle_
 
291 - 23.10.19 - 17:23
(289) А этот пример.. там, возможно, этот IN base; для чего-то нужен. Почему-то люди, которые писали этот пример, решили не рассказывать, что это за base такой. Я не знаю почему, нужно, конечно, эти примеры улучшать. Я думал вы смотрите документацию по языку.

(288) К сожалению этот NUMERIC[10,2] - это единая лексема, там не может быть пробелов.
   Пузан
 
292 - 23.10.19 - 17:26
Даже в примерах для начинающих по любому ЯП даже в Hello world! описывается каждое слово, зачем оно там, для чего и какой эффект от него. У вас ...IN base…, че это и за на фига и 99% разработчиков имеющих дело с СУБД, а с ним мы дело имеем в данном случае, поймут однозначно, что это вроде как будем хранить в БД, потому что логично что могут быть свойства, которые в БД не хранятся.
   _DAle_
 
293 - 23.10.19 - 17:27
(288) И еще заходите к нам в slack: slack.lsfusion.org, мы там отвечаем на вопросы, там они хоть не потеряются. И на slack у нас куда больший приоритет.
   НиколаевГ
 
294 - 23.10.19 - 17:28
(291) Документацию Бро писал? Тогда, это очень плохая документация :((
   Пузан
 
295 - 23.10.19 - 17:29
(291) Ты же наверное на программиста учился, помнишь примеры первые с приветом миру? Там каждая лексема описывалась на программу из пяток строк. А тут отмазка как в детском саду: "Да фиг знает". Ну и поискал я что такое IN в вашей документации - некая группировка. А за нахрена одна, нигде не написано. :)
   _DAle_
 
296 - 23.10.19 - 17:29
(294) Коллективное творчество.
   НиколаевГ
 
297 - 23.10.19 - 17:29
(293) Слак это хорошо... Но не всем пока ясно, что вообще стоит с фузиной заморачиваться, поэтому, здесь то-же отвечайте, да и гарантировано больше людей увидит.
   НиколаевГ
 
298 - 23.10.19 - 17:31
(296) Вы его, пожалуйста, из написания документации исключите. В этом от него вреда больше, чем пользы. Что называется, объяснять доходчиво и внятно ему "не дано".
   _DAle_
 
299 - 23.10.19 - 17:35
(297) Ну как бы, миста - это же все-таки временно, здесь мы в любом случае чужаки. Не будем же мы сюда заходить постоянно каждый день.
   Bro
 
300 - 23.10.19 - 17:35
(298) зависит от того какую часть вы читаете. парадигму язык и примеры писали разные люди для разных целей. И 1сцы все же не фокус группа. :)
  1  2  3  4  5  6   

Список тем форума
Рекламное место пустует  Рекламное место пустует
Закон Брукера: Даже маленькая практика стоит большой теории.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.