Имя: Пароль:
1C
1С v8
Принцип единственности ответственности и 1С
0 Ненавижу 1С
 
гуру
23.01.19
21:53
Продолжим темы философии программирования.
Умные книги нас учат каждый объект отвечает за одно действие.
А как же в 1с?
Документ это и проведение и печатные формы и вообще ввод первички...
Давайте обсудим
1 Aleksey
 
23.01.19
21:54
а что в сапе это по другому?
2 palsergeich
 
23.01.19
21:54
(0) Печатная форма - другой объект который связан с документом.
У документа одно свойство - фиксировать изменения в жизни фирмы
3 МихаилМ
 
23.01.19
22:23
скорее скд не соответсвует, тк и обрабатывает данные и выводит.
4 palsergeich
 
23.01.19
22:26
(3) СКД это не объект а фреймоврк.
Там внутри объекты и вот они уже один обрабатывает, другой выводит
5 Ненавижу 1С
 
гуру
23.01.19
22:31
(2) печать документа (логика) защита в документ
6 МихаилМ
 
23.01.19
22:31
(4) как в скд обработать данные без вывода (в коллекцию значений)?
7 palsergeich
 
23.01.19
22:33
(5) В первый раз о таком слышу.
(6) Что понимать под обработкой?
8 МихаилМ
 
23.01.19
23:11
(7) обработка полей тз без вывода в другую тз
9 palsergeich
 
23.01.19
23:19
(8) А ТЗ до вывода нет.
Есть служебный объект, к которому нет доступа из встроенного языка, который может быть выведен или в ТЗ(дерево) или в ТабДок.
Так и было задумано на этапе архитектуры и не вижу в этом какой либо драмы.
10 Скиурус
 
23.01.19
23:40
>>Умные книги нас учат каждый объект отвечает за одно действие.
Умные книжки такой ерунде не учат. За одно действие должен отвечать метод объекта.
11 Мимохожий Однако
 
23.01.19
23:46
(0) "каждый объект отвечает за одно действие". Дай реальную ссылку на сию цитату.ИМХО, берешь за основу недоказанную теорему. Пятнично.
12 VladZ
 
23.01.19
23:50
(0) "Умные книги нас учат..." Что за книги? Кто автор?
13 sFAQer
 
24.01.19
04:01
(11) https://ru.wikipedia.org/wiki/Принцип_единственной_ответственности

Мартин,, Роберт. Быстрая разработка программ. Принципы, примеры, практика
14 Конструктор1С
 
24.01.19
06:40
(0) скорее документ это не один объект, это сложная помесь классов. Документ можно рассматривать как подпрограмму.
15 Конструктор1С
 
24.01.19
06:43
(3) СКД тоже не отдельный объект
16 Конструктор1С
 
24.01.19
06:46
предполагаю, даже ТабличныйДокумент состоит из множества классов
17 Emery
 
24.01.19
07:18
> Умные книги нас учат…

«Забудь всё, чему тебя учили!»

> А как же в 1с?

«1С» это капиталистическая система, следовательно, все, что там делается, делается в интересах одних в ущерб другим.

> Документ это и проведение и печатные формы и вообще ввод первички...

Это «капиталистический» документ. В моей системе документ – «социалистический». Т.е., менее понтовый, более простой и понятный. Есть первичные данные или таблицы определений (объектов, если хотите, на уровне записей) и вторичные данные – таблицы отношений (между объектами). Всё! Больше ничего от таблиц не надо. Далее вступает в дело движок базы данных. Хороший или так себе, внутренний или внешний – это уже на усмотрение прикладного программиста. Система отчетов это уже как бы внешняя система. Если ей подготовить хорошие данные (задача программиста), то ее дело просто эти данные красиво отобразить.

> Давайте обсудим

Давайте! Начинай! :)
18 Hans
 
24.01.19
07:27
(0) Вот когда печатная форма выводит данные которых нет в документе (например какие нибудь остатки) тогда и нарушается это принцип. Не люблю такое делать.
19 Casey1984
 
24.01.19
08:16
(0) Документ - это фиксация плана/факта хоз. деятельности. То что это можно разложить на части (запись, проведение, печать) не считается ;-)
20 shuhard
 
24.01.19
08:23
(0) а нечего обсуждать
ты путаешь тёплое с мягким
патерн разработки и бизнес-логику
21 MyNick
 
24.01.19
08:52
(0) "каждый объект отвечает за одно действие."
Если бы это было так, то классы бы содержали только один метод. Все остальное бы считалось овнокодерством и невежеством.
22 Ненавижу 1С
 
гуру
24.01.19
10:40
(21) нет, методов может быть несколько, но они отвечают одной задаче

в документе методы отвечают разным задачам
23 Вафель
 
24.01.19
10:58
(22) почему ты считаешь что разным?
24 Ненавижу 1С
 
гуру
24.01.19
11:02
(23)
1. логика проведения
2. печатные формы
3. работа с формой (хотя форму можно считать внутренним классом)

Кстати, если форма внутренний класс, то почему она не может использовать не экспортные методы внешнего объекта?
25 Вафель
 
24.01.19
11:03
(24) а почему печать - не внутренний класс тогда?
26 Ненавижу 1С
 
гуру
24.01.19
11:09
(25) назови его
27 Конструктор1С
 
24.01.19
11:16
(24) "если форма внутренний класс, то почему она не может использовать не экспортные методы внешнего объекта?"

хотя бы чтобы 1сники меньше говнокодили
28 Ненавижу 1С
 
гуру
24.01.19
11:31
(27) ну как меньше
хотим метод объекта вызвать из формы - делаем его экспортным
и всё...
он открыт для всех, а зачем?
29 ADirks
 
24.01.19
11:32
(0) А нельзя ли привести пример умных книг, которые такому учат?
30 ДенисЧ
 
24.01.19
11:34
31 ADirks
 
24.01.19
11:44
(30) Ага, нашёл.  Формулировка в (0) конечно убила :)
объект с одним действием - это что-то

Ну и в общем опять же, вроде здравый постулат, но если довести до крайности, то такого наворотить можно...  Термин "ответственность" крайне расплывчив. Бог вон вообще за всё мироздание отвечает.
32 ДенисЧ
 
24.01.19
11:45
(31) Ну... Действие - это тоже расплывчатое понятие...
Вон QApplication - тоже формально одно действие выполняет - Run()...
33 ADirks
 
24.01.19
11:49
(32) точно :))
"без фанатизма" - пока что лучший известный мне принцип