Вход | Регистрация
    1  2  3  4  5  6  7   
1С:Предприятие :: 1С:Предприятие 8 общая

Срез последних - не совсем срез?

↓ [mikecool, 16.08.21 - 15:57]
Срез последних - не совсем срез?
Я
   brainguard
 
28.07.21 - 23:39
Только сейчас обнаружил, что если в запросе будут не все измерения, то срез последних "превращается в тыкву". Например, измерения "поставщик", "номенклатура". Делаем запрос по одному измерению "номенклатура" и не получаем срез последних по этому измерению. Это действительно так? Или я что-то "неправильно готовлю" (версия платформы 8.3.18.1208)?
   Said_We
 
401 - 02.08.21 - 12:35
(398) в (189) я написал аналог запроса, который будет, скорее всего даже быстрее чем типовой СрезПослдених().
Только там вместо row_number() правильнее будет RANK() или DENSE_RANK(), по логике работы среза как он есть сейчас.
Если в 1С будут оконные функции, то СрезПоследних() и СрезПервых(), скорее всего будут не нужны. По крайней мере в той реализации, в которой они сейчас, так как они, скорее всего, будут медленнее.
Зависит от того как эти оконные функции 1С реализует и сделает ли она это когда либо.
   brainguard
 
402 - 02.08.21 - 12:39
(393) Исходные данные

01.01.2013 ООО Ромашка Свистелка 50 руб.
01.01.2021 ООО Василек Свистелка 150 руб.
01.02.2021 ООО Ландыш Свистелка 151 руб.
01.02.2021 ООО Одуванчик Свистелка 152 руб.

Как в общем случае(!) получить

01.02.2021 Свистелка 151 руб.
01.02.2021 Свистелка 152 руб.

С помощью ГДЕ?
   Said_We
 
403 - 02.08.21 - 12:43
ВЫБРАТЬ
     т.*
ИЗ
    НашРегистрСведений.СрезПоследних(, Измерение2 = @Свистелка) как т
   Said_We
 
404 - 02.08.21 - 12:44
Только там будут все четыре записи
   brainguard
 
405 - 02.08.21 - 12:44
(404) Вот-вот. С чего все и началось
   ДядяМитяй
 
406 - 02.08.21 - 12:46
(403) получишь свистелка 50. Потому что это срез последних по всем комбинациям измерений. Срез последних не выдает, насколько я помню несколько записей.
   Said_We
 
407 - 02.08.21 - 12:46
Так зачем нужны две, и что с ними планируется делать - как анализировать или разными колонками выводить?
   brainguard
 
408 - 02.08.21 - 12:47
(406) В смысле - не выдает? Не выдает неуникальные записи?
   brainguard
 
409 - 02.08.21 - 12:48
(407) Нужны последние. А сколько их будет неважно
   Said_We
 
410 - 02.08.21 - 12:48
(406) да ладно? :-)
(0) зачем вся ветка - не выдает оказывается и срез первых без учета измерений будет вместо среза последних. :-)
   brainguard
 
411 - 02.08.21 - 12:48
(406) Нет. Получишь все четыре записи
   Said_We
 
412 - 02.08.21 - 12:49
(409) Ну считай что они есть, что дальше с этим делается?
   Ыцшесрук
 
413 - 02.08.21 - 12:50
(409) Ну вот и получишь все последние по всем измерениям, которые ты не указал.
   Said_We
 
414 - 02.08.21 - 12:50
Как мне как пользователю это анализировать? На какую цифру ориентироваться?
   brainguard
 
415 - 02.08.21 - 12:51
(412) В моем конкретном кейсе этого было достаточно. Получил записи, визуализировал в отчете, заказчик доволен.
   brainguard
 
416 - 02.08.21 - 12:51
(414) На любую
   ДядяМитяй
 
417 - 02.08.21 - 12:51
(411) ну да, наверное. Но в срезе последних ты ждешь одну, поэтому возьмешь первую :Р
   Said_We
 
418 - 02.08.21 - 12:52
(416) Вот пусть я специалист по закупкам и для меня "любую" не понятно. Если они сильно разные.
   brainguard
 
419 - 02.08.21 - 12:52
(417) Нет, я уже сделал нормальный срез последних, который работает по неполному набору измерений
   brainguard
 
420 - 02.08.21 - 12:53
(418) Разберешься как-нибудь. Ты ж специалист )))
   brainguard
 
421 - 02.08.21 - 12:54
(413) А мне нужны последние по измерениям, которые я указал
   nodrama
 
422 - 06.08.21 - 09:38
(421) В продолдении темы. Если так смотреть, то 1с во многом не логична. И придератся можно к чему угодно. СредПОследних так работал всегда и у него есть описания, но Вас он не устроил и вы хотите что бы он Логично работак так как вы считаете, было бы "Логичном" ))

Вот банальный пример, взять даже Запросы

...........
.....
...
Выбор
Когда
     Пупкин = &Параметр
 Тогда 1
Конец как БольшойКОнец )))
......

Логичное, если Пупкин попал под Параметр, то в ячейки встанет цифра "1"..
Если не попал под Параметр, то в ячейки ни чего не встанет.
Только вот по моей логике, там должно встать цифра "0". а не оставить вообще пустым NULL 
Но пока ты не допишешь
Тогда 1
Иначе 0

Ноль там не встанет. ЧТо бы ты потом легко мог математически складывать нужные ячейки.  А было бы логично, если в первом варианте ты передаешь цифру 1, то если она не встает, то логично поставить туда цифру 0. Если ты передаешь в первом варианте Строку "алалал". то логично если она не встает передавать туда пустоую строку "" и так далее. Но нет же. ПОка ты не напишешь что ты хочешь место "1" увидеть там, там будет тупо NULL
А как бы ускорило работу, если бы тебе не пришлось везде дописывать лишние строки запроса, если ты изначально хочешь записать туда только цифры допустим.
А вот если тебе надо
Тогда 1
Иначе "Лалала" или Выразить(лалала как строка(111) ну не суть.. тогда да пожалуйста..
Но нет. же.

Мне вот надо было создать отчет. Выводить в ячейки цифры по номенклатуре. не суть. И вот ты как дурак пишешь.. Тогда 1, Иначе 0, ТОгда 1 иначе 0.. ну я образно. лишний код на 50% получается))
   nodrama
 
423 - 06.08.21 - 09:39
Что бы все работало по "Логике" какой человек хочет, а не по какой написана программа. Человек должен сам создать программу себе))
   brainguard
 
424 - 06.08.21 - 09:39
Короче, сделал себе универсальный срез последних. Его можно применять к любым наборам данных, где есть дата. Вот шаблон.

        зап=новый запрос;
        если не пустаястрока(колонкиизмерений) тогда
            зап.Текст="ВЫБРАТЬ "+всеколонки+" Поместить Т1 ИЗ &тз как тз;
            |ВЫБРАТЬ "+колонкиизмерений+",МАКСИМУМ(т1."+колонкадаты+") как "+колонкадаты+" Поместить Т2 ИЗ Т1 СГРУППИРОВАТЬ ПО "+колонкиизмерений+";
            |ВЫБРАТЬ Т2."+колонкадаты+","+колонкиизмерений2+",Т1."+колонкаресурса+" ИЗ Т2 СОЕДИНЕНИЕ Т1 ПО "+условиесоединения;
        иначе
            зап.Текст="ВЫБРАТЬ "+всеколонки+" Поместить Т1 ИЗ &тз как тз;
            |ВЫБРАТЬ МАКСИМУМ(т1."+колонкадаты+") как "+колонкадаты+" Поместить Т2 ИЗ Т1;
            |ВЫБРАТЬ Т2."+колонкадаты+",Т1."+колонкаресурса+" ИЗ Т2 СОЕДИНЕНИЕ Т1 ПО "+условиесоединения;
        конецесли;
        
        зап.УстановитьПараметр("тз",тзтип);
        рез=зап.Выполнить().Выгрузить();


Я использую его в универсальном просмотрщике базы. Поэтому в качестве источника у меня таблица значений. Можете переделать на любой источник.
Схему запроса не использовал из-за ее громоздкости
https://infostart.ru/public/1492741/
   Ыцшесрук
 
425 - 06.08.21 - 09:42
ОМГ, ты всегда такой вырвиглазный код пишешь?
   brainguard
 
426 - 06.08.21 - 09:46
(425) Мне лень на Shift-е плясать
   nodrama
 
427 - 06.08.21 - 09:47
зап. тз тзтип ))

Как кусок песни Скриптонита какого нибуть)
   Kassern
 
428 - 06.08.21 - 09:47
(426) сегодня зап, рез, а завтра уже з=Новый Запрос; р=з.Выполнить();?
   Kassern
 
429 - 06.08.21 - 09:48
(426) если уж лениться, так лениться))
   nodrama
 
430 - 06.08.21 - 09:49
(428) А после завтра я опять на форуме пишу, что бывший програмист мне нафигачил

о=ор.
о.Организация = с.Ор; 
сп=О.ПолучитьОбъект
и тд и тому подобное
 
 
   brainguard
 
431 - 06.08.21 - 09:54
(428) Все эти переменные умирают через строчку. Какая разница?
   Вафель
 
432 - 06.08.21 - 09:56
(431) читабельность кода?
Не не слышал
   Вафель
 
433 - 06.08.21 - 09:56
Как ты преподавал то?
   brainguard
 
434 - 06.08.21 - 10:01
(432) В данном случае чем короче, тем читабельнее
   Ыцшесрук
 
435 - 06.08.21 - 10:09
(434) Да вообще ни разу.
   brainguard
 
436 - 06.08.21 - 10:10
(435) Это потому что у вас опыта мало
   brainguard
 
437 - 06.08.21 - 10:19
Вот данный конкретный случай:

рез=зап.Выполнить().Выгрузить();
ЗначениеВРеквизитФормы(рез, "РабочееПоле");
ЭтаФорма.Заголовок="Всего строк: "+строка(рез.количество());

Если бы не третья строка, я написал бы:

ЗначениеВРеквизитФормы(зап.Выполнить().Выгрузить(), "РабочееПоле");

Но я не могу обойтись без переменной, которая умрет через строчку. Поэтому написано, как написано. Но зачем этой переменной давать длинное имя? Для кого? Для того, кто дойдя до третьей строчки, забывает, что было в первой?
   mistеr
 
438 - 06.08.21 - 10:23
(437) Ты, видимо, не знаком с командной разработкой. Бывает.
   Вафель
 
439 - 06.08.21 - 10:24
(437) те ты считаешь себя умней тех, кто стандарты разработки писал?
   brainguard
 
440 - 06.08.21 - 10:26
(438) Я думаю, что тем, кто на третьей строчке забывает про первую, не место в команде
   brainguard
 
441 - 06.08.21 - 10:26
(439) Определенно )))
   VladZ
 
442 - 06.08.21 - 10:27
(424) Жуть.
   mistеr
 
443 - 06.08.21 - 10:28
(440) Поэтому ты до сих пор без команды?
   lodger
 
444 - 06.08.21 - 10:40
(442) получается, это был промо-пост к своей публикации на нимфостарте.
   nodrama
 
445 - 06.08.21 - 10:48
Человек просто не заботится о своих коллегах.
Банально когда пишут "ДокРеализация. ляляляля .. лялял " Ты понимаешь что он берет найденый Документ Реализацию и что то делает с ней.
А когда пишут как в моей базе бывшие.. д.Ор.ПОлучитьОбъект(); и тд.. Ты тратишь на много больше времени, что бы понять что такое "Д" и что такое "ОР".. грубо говоря. ))
А если вы одновременно в 3-ом, разрабатываете что-то в одной конфигурации. Но это уже другая история)
   Ыцшесрук
 
446 - 06.08.21 - 10:52
(436) Нет, это потому что пишешь ты отвратительно.
   fisher
 
447 - 06.08.21 - 10:54
Спрашивать за читабельность? У brainguard? Муа-ха-ха-ха.
ЕМНИП это тот чел, что топил за вред использования длинных мнемонических, сбивающих с толку настоящих программистов.
Мол настоящие программисты должны схватывать суть алгоритма без странных костылей в виде говорящих имен, которые легко могут ввести в заблуждение если не совсем соответствуют своему названию.
Поэтому чем бессмысленнее имена сущностей, тем более они полезны. А тем, кто не может читать обфусцированный код с листа прозревая его суть - просто не место в программировании. Это самозванцы какие-то.
   lodger
 
448 - 06.08.21 - 11:08
(447) давайте ещё проголосуем за переменные вида
a
b
c
в коде 1с. ага.
   fisher
 
449 - 06.08.21 - 11:19
(448) Какой смысл в голосовании? brainguard'а этим не проймешь. Он постиг дзен, а ты нет. Просветленных по определению не может быть много. Поэтому и голосование неспособно выявить истину.
   brainguard
 
450 - 06.08.21 - 11:31
(445) Ага. Сначала в ДокРеализация был документ реализации, а потом... стало так, что иногда там реализация, а иногда что-то иное.
Да, ты должен ПОНИМАТЬ что такое "Д" и что такое "ОР". Но ты также ДОЛЖЕН ПОНИМАТЬ что такое "ДокРеализация". И вовсе не из названия, а из контекста. Когда ты начинаешь ориентироваться на названия, ты вступаешь на тонкий лед. Потому что смысл переменной находится не СЛЕВА, а СПРАВА
   K1RSAN
 
451 - 06.08.21 - 11:38
(419) не "нормальный", а "кастомный". Нормальным он и так был, просто ваши потребности - "нестандартные". Поэтому сами ваяете. Это как говорить, что типовая плохая, потому что не может творить дичь, а тебе нужна дичь
   Kassern
 
452 - 06.08.21 - 11:40
(450) поэтому и не стоит называть ДокРеализация переменную, если там хранится другой тип объекта. Если правильно заывать переменные и функции, то нет смысла постоянно смотреть "на право", имена переменных должны помогать и не вводить в заблуждение.
   Cyberhawk
 
453 - 06.08.21 - 11:47
(402) Всю ветку не читал. Из основной таблицы достаешь максимальные даты (с условием на нужный набор измерений и группировкой по ним), запоминаешь их в ВТ, далее во втором запросе пакета соединяешь основную таблицу с датами и значениями измерений из ВТ.
   K1RSAN
 
454 - 06.08.21 - 11:51
(450) Это банальное нарушение правил хорошего кода. Назвать реквизит "количество", а там будет цена или вообще контрагент)
   Вафель
 
455 - 06.08.21 - 11:52
(454) Прям как
#define TRUE FALSE//счастливой отладки
   brainguard
 
456 - 06.08.21 - 11:53
(452) А ее сначала и назвали нормально. А потом что-то добавилось в процессе. Скажете, так не бывает?
   brainguard
 
457 - 06.08.21 - 11:57
(453) Спасибо. Это и было сделано. До появления ветки и после появления ветки (в универсальном варианте). Но все равно спасибо за то, что кратко и по делу
   Kassern
 
458 - 06.08.21 - 11:57
(456) в нормальной среде обработки - не бывает. Нельзя присваивать переменной ДокРеализация к примеру ДокПоступления.
   Ыцшесрук
 
459 - 06.08.21 - 11:58
Ляяя... Многократное использование переменных, меняя их типы за счёт неявной типизации - это не просто говнокод, это за гранью добра и зла.
   brainguard
 
460 - 06.08.21 - 11:58
(452) Программист обязан смотреть направо всегда. Смотреть налево нехорошо
 
 
   ДенисЧ
 
461 - 06.08.21 - 11:59
(460) "Вас, Сидоровых, не поймёшь... Она говорит, что хорошо, ты - что плохо..."
   Kassern
 
462 - 06.08.21 - 12:00
(460) программист должен придерживаться стандартов разработки, но вам видимо это не понять
   K1RSAN
 
463 - 06.08.21 - 12:00
(456) Переименовать переменную религия не позволяет? Или спустя несколько итераций будет реквизит Количество, а там сидеть физ лицо?) Потом приходит новый программист, и пытается понять, как вообще можно работать в этом балагане
   K1RSAN
 
464 - 06.08.21 - 12:01
Хотя о чем я. Это хороший такой задел на "Незаменимого Васю" )
   Ыцшесрук
 
465 - 06.08.21 - 12:02
(464) О да, незаменимых васей ждёт отдельный котёл в аду.
   brainguard
 
466 - 06.08.21 - 12:02
(458) Еще как бывает! Вы намеренно берете антонимы. Реализация, Поступление. А если так: Реализация, ВозвратРеализации? Или так РеализацияСтарая, РеализацияНовая? Или так: РеализацияОпт, РеализацияРозн?
   brainguard
 
467 - 06.08.21 - 12:03
(463) А ее уже вставили в 100500 мест
   fisher
 
468 - 06.08.21 - 12:05
Вдруг кто еще не читал: https://infostart.ru/1c/articles/966234/
Для пятницы самое оно.
   Kassern
 
469 - 06.08.21 - 12:23
(466) Ну так у вас должны быть разные переменные, прочитав которую было бы понятно о каком объекте идет речь.
   Kassern
 
470 - 06.08.21 - 12:24
Ректальное программирование - это, прежде всего, программирование свободного человека, если хотите - венца творения. Это программирование, свободное от всяких предрассудков, навязанных рамок следования стандартам, параноидальной боязни демонстрировать свой код другим участникам проекта. Ректальное программирование - это путь состоявшегося программиста, уверенного в своём абсолютном превосходстве и компетенции, не нуждающегося в поучениях и не поддающегося стадному инстинкту постоянно обучаться.
   Kassern
 
471 - 06.08.21 - 12:24
(468) веселая статья)
   Злопчинский
 
472 - 06.08.21 - 12:30
(471) Главное - полезная!
   Kassern
 
473 - 06.08.21 - 12:31
Нравится вам такой код? Если уж лениться на шифт, то можно лениться и на энтер с табом:

процедура создатьдокумент(отказ,сс,массив,тч,сообщпользчтнельзсозддок=ложь)
если отказ=истина тогда отказ=ложь; возврат; конецесли;
если типзнч(сс)=тип("документссылка.заказклиенту")тогда...
   K1RSAN
 
474 - 06.08.21 - 12:31
(467) Ну если вы пишите не код, а говнокод - то да, всё бесполезно и надо жить переменными, которые вообще не соответствуют своему названию.
   nodrama
 
475 - 06.08.21 - 13:23
(450) Если  у тебя в "Переменной"  ДокРеализация. КОД КОД КОД.
Оказался не "ДокРеализация." найденный.. а что-то другое..
То опять же возникает вопрос, по грамотности написания кода. Такого быть не должно.
   nodrama
 
476 - 06.08.21 - 13:27
Нормально написанный код.
Не может быть, что у тебя сначала ДокРеализация. переменная..
А в середине кода, ЭТА ЖЕ Переменна ДокРеализация. Получила документ ПОступления товаров и услуг.
Это не нормально как минимум.

А если к этому добавить... что сначала у тебя была переменная "с." "о." с чем-то.. А в середине кода.. эти же переменные с и о у тебя с другим чем-то..
То это еще более не нормально).

Зачем так делать изначально? Из за экономии времени на набор лишних букв? или из за желания сделать хуже программисту который будет читать и редактировать этот код в будующем?
   nodrama
 
477 - 06.08.21 - 13:30
Если ты пишешь программу себе дома для себя.. можно делать хоть a b c d а в середине кода А Б С  Д..
Но когда ты делаешь это для организации за деньги при этом считаешь себя адекватным программистом, то зачем?)
Вот сейчас ты в единственном лице. А через месяц возьмут второго программиста, вы будете сидеть с ним рядом. Он откроет обработку.. А там черт ногу сломит.
Посмотрит на тебя, ты посмотришь на него.. ))) он поржет и заплачет ))
   brainguard
 
478 - 06.08.21 - 13:46
Ребята! Вы мне напоминаете героя анекдота, который устроился работать пожарным. И все его устраивало. И зарплата, и коллеги, и начальство, и офис. Но вот только... как пожар, так прям хоть увольняйся. Я искренне не понимаю - если тебе так тяжело программировать, то зачем заниматься этим?
История вопроса проста и банальна. Когда человек учится программировать, он сперва осваивает сериализацию, т.е. превращение мысли в текст. Через некоторое время, когда он уже успел наполниться гордостью за себя, человек сталкивается с необходимостью проделывать обратную операцию, структуризацию, т.е. превращение текста в мысль. Эта операция действительно существенно более сложная, чем сериализация и многие тут по началу обламываются. И по свойственной человеческой натуре склонности тут же начинают искать виновного. Дескать, это не я пока еще слаб в программировании, это другой человек плохо написал программу. А я-то молодец, гораздо лучше, чем тот козел!
Лет через 20 это точно проходит.
Впрочем, на самом деле, спор ни о чем. В ближайшем будущем мы будем избавлены от необходимости выполнять сериализацию и структуризацию. Будем записывать мысль не виде текста, а виде мысли. И спор об именах переменных уйдет в историю
   Ыцшесрук
 
479 - 06.08.21 - 13:49
Ля, он ещё и идеологическую базу под копрокод подводит.
Клиника.
   ДенисЧ
 
480 - 06.08.21 - 13:52
(478) Ты молодец. Лучше всех окружающих. И весь в белом.
А нет. В белом - врачи вокруг тебя...
   Вафель
 
481 - 06.08.21 - 13:53
(478) но таки при этом большинство пишет г. код. да и мой древний код такое же г.
   fisher
 
482 - 06.08.21 - 13:53
(478) > Лет через 20 это точно проходит.
К счастью, эволюция нормальных программистов обычно идет в другом направлении.
Поначалу видишь код - мама родная! Какой козел это написал? И все с тобой соглашаются. Глядишь - а это ты же когда-то и написал.
А лет через 20 видишь код - красота-то какая! И все с тобой соглашаются. Глядишь - а это ты же когда-то и написал.
   Вафель
 
483 - 06.08.21 - 13:57
просто чел не освоил 10 пальцевой метод, поэтому ему тяжело много букв набирать
   ildary
 
484 - 06.08.21 - 13:58
(483) наверное хорошо, когда столько времени освобождается от набивки переменных, да и голова не устаёт.
   Вафель
 
485 - 06.08.21 - 13:58
с хорошо отформатированным кодом как минимум приятно работать.
   brainguard
 
486 - 06.08.21 - 13:59
(482) Ну значит я ошибся. Не через 20, а через 30. Просто не засекал точно. Через 30 лет глядишь на тот и другой код. Код, как код. И тот и другой делают одно и то же. Все говорят, что один хороший, а другой плохой, а ты искренне не понимаешь - в чем разница )))
   Вафель
 
487 - 06.08.21 - 14:00
просто в 1с код ревью не приняты поэтому такие как ТС и могут писать такой свой код
   fisher
 
488 - 06.08.21 - 14:00
(483) Шутки-шутками, но когда нет необходимости отрывать взгляд от монитора то и мысль меньше рвется и ошибок меньше допускаешь.
   Вафель
 
489 - 06.08.21 - 14:01
(486) у тебя повреждено чувство прекрасного. а может и вообще никогда не было
   fisher
 
490 - 06.08.21 - 14:05
(486) Эффективность понимания кода зависит от его оформления. Для всех. Но не для тебя. Допустим, ты сверхчеловек и для тебя - не зависит. Проблема в том что для работы в команде нельзя тебя ксерокопировать. Тебе придется работать с обычными недалекими людьми, для которых эффективность понимания кода от его оформления зависит. Отсюда вывод какой? Для команды такие сверхлюди отказывающиеся играть по правилам - противопоказаны.
   brainguard
 
491 - 06.08.21 - 14:07
(489) "рез" звучит прекрасно, как полет стрижа или взмах самурайского меча. А как звучит РезультатЗапроса?
   ildary
 
492 - 06.08.21 - 14:08
(491) А почему целых три буквы? Достаточно "р" - и именно незаглавной - чтобы сэкономить на шифте.
   fisher
 
493 - 06.08.21 - 14:10
(492) Видимо он не потянул чистоту своего пути. И каким-то людоедским словарем пользоваться все же вынужден.
   Вафель
 
494 - 06.08.21 - 14:11
кстати в других языках переменные принято со строчной буквы начинать
   brainguard
 
495 - 06.08.21 - 14:11
(490) Вот тут кроется самое главное. С чего вы взяли, что зависит? У человека проблема со структуризацией. Он, как и многие другие, хочет в мыслях переложить свою проблему на другого, чтобы не чувствовать себя ущербным. Все находится в области психологического и субъективного. А где объективный критерий?
   brainguard
 
496 - 06.08.21 - 14:12
(493) Ну я пишу же букву "й" )))
   ildary
 
497 - 06.08.21 - 14:12
(493) Надеюсь, что текст "РезультатЗапроса" был скопирован из типовой, чтобы не утруждать себя набором такого количества символов.

(494) Это случайно не вредная венгерская нотация, которую надо похоронить в 80-х, когда ей самое место.
   Вафель
 
498 - 06.08.21 - 14:12
(495) ты отрицаешь что по разному написанный код требует разного уровня структуризации?
   Вафель
 
499 - 06.08.21 - 14:13
(497) почему вредная? у гугла код стайл такой например
   Вафель
 
500 - 06.08.21 - 14:13
с большой буквы объекты пишутся
  1  2  3  4  5  6  7   

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