Имя: Пароль:
JOB
Работа
OFF: Проверка на соответствие кода стандартам разработки.
0 _Ramzes
 
03.11.11
18:37
Добрый день. На предприятии руководитель вводит проверку кода Аудитом на соответствие стандартам разработки.
В связи с этим есть вопросы:
1)Кто сталкивался с таким, были ли проблемы связанные с придирками, к примеру отступы, названия переменных?
2)Какова стоимость аудита была?
3)Был ли реально прогресс или все заглохло?
1 rotting
 
03.11.11
18:39
предприятие чем занимется? Если НЕ разработкой под 1С, тогда увольте руководителя
2 smaharbA
 
03.11.11
18:40
а где он возьмет эти стандарты ? или свои микалки напишет ?
3 Ахиллес
 
03.11.11
18:40
Ну вот скоро и узнаешь.
Видать крепко вы своим индусским (китайским) кодом достали руководителя.
(2) На ИТСе скорее всего.
4 smaharbA
 
03.11.11
18:41
а какая разница руководителю какой код ?
5 Ахиллес
 
03.11.11
18:43
Мож это начальник отдела разработки. Ему может по должности положено их авнокод проверять.
6 smaharbA
 
03.11.11
18:45
даже при том ему нах не нужен код, ему нужен результат
7 _Ramzes
 
03.11.11
18:46
(1) Внедрением УПП
(3) Код у всех разный. Он считает что если код соответствует стандартам, то 1С Будет работать без глюков.
8 Ахиллес
 
03.11.11
18:46
Если продукт на поддержке, то качество кода не меньше важно, чем результат.
9 Пришел в тапках
 
03.11.11
18:47
(3) А что там на ИТСе такого лежит? Что-то не встречал ранее.
10 _Ramzes
 
03.11.11
18:47
И собственно кто может дать ответы на вопросы?
1)Кто сталкивался с таким, были ли проблемы связанные с придирками, к примеру отступы, названия переменных?
2)Какова стоимость аудита была?
3)Был ли реально прогресс или все заглохло?
11 Пришел в тапках
 
03.11.11
18:48
(10) Я вот сразу приучился писать по стандартам, нормальные переменные, где нужно комментарии расставляю.
12 Inform
 
03.11.11
18:48
(4) да вариантов туча:
1. чтобы не только 1 разработчику было понятно, что откуда и куда
2. чтобы не ломать глаза, когда читаешь
3. чтобы можно было делать 1С:Совместимо
4. если есть методики и стандарты разработки созданные 1С, разумно придерживаться именно их при написании
5. если конфу увидят сторонние разработчики, то могут возникнуть какие-либо проблемы с объяснением того, что квалификация разработчиков конфы соответствует...
и т.д.

P.S.: когда читаю *овнокод нередко появляется желание оторвать руки тому, кто его написал
(9) вот это: http://its.1c.ru/db/v8dev
13 Ахиллес
 
03.11.11
18:49
(9) Мне лень тянутся за ИТСом, так, что раздел не скажу, но там есть типа рекомендаций по стилю программирования и стандартам к продуктам "1С совместимо".
14 Mort
 
03.11.11
18:50
Оформленный по всем стандартам г*код остается г*кодом.
15 Ахиллес
 
03.11.11
18:51
(14) Нет, оформленный по стандартам код может не работать или выдавать неверный результат, но это уже не авнокод.
16 Пришел в тапках
 
03.11.11
18:53
(15) Верно подметил.
17 Inform
 
03.11.11
18:54
(10)
1.) сталкивался но пишу по стандартам, придирки были наверно поначалу, но скорее не придирки, а наставления...
2.) непонятно про какой ты аудит, скорее всего почасовка, а дальше от объема вашей конфы, в одном из крупных моск. франчей, такой фигней занимаются отделы специальных работ, там вроде как стоимость часа выше чем в остальных
3.) конечно прогресс всегда есть при вылизывании кода, да и множество работодателей сейчас смотрят примеры кода и если он написан совершенно без соблюдения всех описанных 1С методик, то шансы попасть на нормальное место уменьшаются
P.S.: для разработчиков - это только в плюс, потому как вас приучат нормально писать + самим начнет нравится так писать и смотреть такой код за коллегами
18 Mort
 
03.11.11
18:55
(15) Г*внокод можно и в запросе написать и будет работать. Форматируй его сколько влезет по всем стандартам, хорошим он не станет.
19 Alexandr Puzakov
 
03.11.11
18:55
Стандарты разработки - хорошая вещь. Нужно их придерживаться.

Вываливай фрагменты своего кода, посмотрим.
20 Пришел в тапках
 
03.11.11
18:56
(18) Видимо у тебя по этому поводу "пунктик" ))
21 Ахиллес
 
03.11.11
18:57
(18) Ну вообще то стандарты на код это далеко не стандарты на ширину отсупа :-)
22 _Ramzes
 
03.11.11
19:01
Проблема в том, что проверка будет выполнятся за деньги. И в случае нахождения расхождения со стандартами разработчик платит из своего кармана.
По формуле расчета 12,5% от заявленной стоимости разработки (которую проверяют на соответствие) * 4000
23 _Ramzes
 
03.11.11
19:01
Т.е. проверка недельного программного кода равна 20000 рублей.
24 _Ramzes
 
03.11.11
19:02
8*5*0,125*4000
25 _Ramzes
 
03.11.11
19:06
(17)
Ты выполняешь требование локализации:

1. Если в модулях конфигурации встречаются строки, предназначенные для пользовательского интерфейса (сообщения пользователю, надписи в формах, названия и подсказки команд и т.п.) необходимо обеспечить возможность локализации таких строк.
Для этого необходимо применять функцию НСтр вместо прямого использования строковых литералов. Иное использование строк, предназначенных для пользовательского интерфейса, не допускается.
26 Ахиллес
 
03.11.11
19:07
(24) Так, что зубрите стандарты, скоро тех авнокодеров из за которых контора будет постоянно попадать на бабки погонят ссаными тряпками.
27 Ахиллес
 
03.11.11
19:08
(25)Ну это они загнули. Этого даже в одинэсовских типовых днём с огнём искать. Не стоит стараться быть святее папы римского.
28 Mort
 
03.11.11
19:11
(19) Эт ты кому?

(21) А что же это тогда? Можешь перечислить стандарты из разряда хорошо и оптимально написать? Только рекомендации типа не юзать запросы в циклах и т.п.
29 Ахиллес
 
03.11.11
19:13
(28) Ну например запрос к документам там где нужен запрос к регистрам это авнокод, хоть как его отформатируй.
30 Mort
 
03.11.11
19:17
(29) Ключевое здесь "там где нужен". Потому что иногда действительно нужно делать запросы к документам. И никаких жестких стандартов на этот счет нет, чтобы лицо далекое от программирования могло сказать "это г-код, потому что, не соответствует стандарту".
Т.е. распознать всё равно должен профессионал, и никакие стандарты тут не помогут.
31 Ахиллес
 
03.11.11
19:19
Ну тык профессионал должен чем то руководствоваться? Это и есть стандарты для профессионалов, а не для вьетнамцев с Черкизона ретузами торгующими.
32 Inform
 
03.11.11
19:43
(25) в 8.1 не делал раньше, а в 8.2 уже выполняю
33 Inform
 
03.11.11
19:45
+ еще некоторые требуют, чтобы разработчики писали правильные запросы, с учетом всех требований, которые встречаются на kb.1c.ru, это так же быстро привык делать и ни капли об этом не жалею
34 Inform
 
03.11.11
19:51
(0) а ваще штрафовать за это - не дело, надо валить тебе оттуда, т.к. нормальный руководитель дал вам время переучиться и все исправить, чтобы привыкнуть к такому стилю, а то все будете без ЗП сидеть таким макаром...
35 _Ramzes
 
04.11.11
00:04
(34) Я месяц отработаю, посмотрю. На данный момент код пишу в соответствии со стандартами разработки. Просто с 7 ноября вводится аудит.
36 Inform
 
04.11.11
00:12
(35) качни конфу "1С:Автоматизированная проверка конфигураций", прогони ей тесты, по своим участкам поправь насколько возможно, может и не успеют по карману вдарить...
37 smaharbA
 
04.11.11
00:22
какие такие стандарты ? где их начальник брать собрался ?
если буквоедствовать - он обязан разработать, утвердить и сертифицировать стандарт предприятия (в простонародии - микалка) - иначе пшол на
38 cViper
 
04.11.11
00:23
(34) Что есть нормальный руководитель?  В некоторых компаниях этот самый руководитель пишет запросы в цикле который в цикле, указывает имена пользователей и доменные имена в коде.
39 Злопчинский
 
04.11.11
00:43
скажу сразу: разгоребаю вот сейчас 7.7 конфу полусамопальную - в первый же раз. когда я увидел код - я понял - будут проблемы! и что вы думаете - их есть у меня!!!
40 Злопчинский
 
04.11.11
00:43
(38) потому что проще затычку поставить, чем новый набор прав рисовать для этого юзверя..
41 Inform
 
04.11.11
00:44
(37) см. (12) или в гугле набери "Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие"
(38) вот я и говорю, что руководитель должен быть адекватным, а если он самодур и решает произвести какие-то кардинальные изменения в работе отдела, которые могут только лишь ударить по карману сотрудников, то это Не нормальный руководитель, т.е. человек рубит с плеча и при этом его решение смотивирует всех после получения очередной ЗП написать ПСЖ, хотя он мог бы нормально попросить ребят заточить код под стандарты своими силами, дал бы им некоторое время, глядишь, и все бы встало на свои места и без таких мер. Т.е. достаточно просто было нормально отнестись к этому нововведению и согласовать как-то с сотрудниками. И вообще с какого перепугу он вдруг решил, что необходимо ввести такую проверку, почему раньше она была не столь критична и т.д. Все это говорит только о чьем то больном воображении, которое уже вряд ли когда перестанет фонтанировать инновационными идеями "улучшающими" качество программных продуктов.
А в компаниях, где руководитель пишет запросы в куче вложенных циклов, как правило, те кто привык писать правильно - долго не работает (если конечно руководитель не стремится к совершенству и не хочет вникать в правильность своих действий в конфигураторе)...
42 IamAlexy
 
04.11.11
00:46
(0) хороший способ подчистить штат и убрать неугодных...
не ну а чо.. некодишь в соответствии со стандартами и методикам - досвидос.. с записью о несоответствии высокому званию "программист 1с" :) :) :)
43 Inform
 
04.11.11
00:53
(42) тут еще можно предположить, что начальник прогонит конфу спец. средствами, выявит все недочеты и тупо получит откат от франча, потому что не очень понятно что там "аудиторы" будут проверять неделями...
44 smaharbA
 
04.11.11
01:00
(41) чего, какая система стандартов - эта липа от адинеснегов ?
стандарта не существует !
45 _Ramzes
 
04.11.11
23:21
46 _Ramzes
 
04.11.11
23:48
(36) Она работает под 8.1 а у меня конфа под 8.2
47 Inform
 
05.11.11
00:04
(46) вот тут написано как сделать АПК под 8.2:
v8: Автоматизированная проверка конфигураций для 8.2.
делал также, вроде что-то где-то находила, но не факт что корректно, я лично долго не разбирался с этим, т.к. особой нужды не было, но способ описан работоспособный
48 VasilyKushnir
 
05.11.11
02:21
(0) Ты пошутил? Если да, то весьма скверно... А теперь (лишь бы не забанили, лишь бы не забанили...). Впрочем небольшая предистория: у нас полностью поменялось руководство почти (да хрын там почти! - во всех!) во всех звеньях. Меня пока , а может не пока..., считают непотопляемым - 4-ю смену, практически полную, руководства переживаю. НЕ знаю... С одной стороны.... впрочем никаких сторон!: это мои проблемы и я их сам порешаю. Но! (ближе к теме), если бы меня хоть на пол-х.я заподозрили не в компетентности. А я уже не говорю за аудит - извини братан, но на твоем месте я бы не оказался, а если бы и оказался, то никакого аудита (!!!). НИ-КА-КО-ГО!!! Либо заявление ПСЖ, либо пошли они... (а вот здесь есть варианты - в или на).
49 Alexandr Puzakov
 
05.11.11
08:13
(44) быдлокодер?
50 Визард
 
05.11.11
09:47
(48) все хомяки офисные смелые и бравые в интернете
51 Mort
 
05.11.11
10:34
(44) Для некоторых одинэсников оказываются существует, о как. Когда знаешь с гулькин нос, кажется что применить к этому некий стандарт можно на раз-два.
52 Sammo
 
05.11.11
10:44
53 NcSteel
 
05.11.11
10:54
Если код работает , то нет смысла проводить аудит . Видимо в (0) уже всех косяками достал
54 cViper
 
05.11.11
12:19
(53) Тут многие с тобой не согласятся. Вопрос в том как он работает?
55 МихаилМ
 
05.11.11
12:29
вот сыылка по теме
http://brix8x.stavr.ru/
56 NcSteel
 
05.11.11
12:31
(54) Если при определенном наборе входных параметров код выдает ожидаемые выходные , то код корректен.
57 Inform
 
05.11.11
12:34
(53) проверять собрались не только (0), а всех разработчиков, как я понял
(56) код корректен, если при синтаксическом контроле нет ошибок, а вот алгоритм и стиль написания кода...
58 NDN
 
05.11.11
12:35
Алгоритм - это определенным образом организованная последовательность действий, за конечное число шагов приводящая к решению задачи.
Свойства алгоритмов:
Определенность
Дискретность
Целенаправленность
Конечность
Массовость

А стиль - это субъективно
59 NcSteel
 
05.11.11
12:36
(57) Все же код пишут не для самого процесса, а для выполнения задачи . Следовательно корректность кода тесно связана с выполнением поставленной задачи.
60 vde69
 
05.11.11
12:42
я:

ЗА стандарты
ПРОТИВ аудита

за соблюдением стандартов и стиля обязан следить ведущий или архитектор, если меня что-то не устраивает - я говорю, если человек не прислушивается - можно и растатся...

из личного
сам только недавно начал писать префикс локальных переменных "м" до этого использовал "_"

сотрудник перебарщивает временными таблицами в запросе, несколько раз выговаривал, сдвиги есть но пока не слишком сильные :(

сам привык результат запроса выгружать в ТЗ (там где надо и не надо), - тоже думаю менять свой стиль на использование выборки
61 Inform
 
05.11.11
12:44
(59) да, но только при написании необходимо учитывать соглашения 1С и для того чтобы другой разработчик мог, не ломая глаз, что-либо исправить
Например, читать и править код написанный самой 1С гораздо проще, чем код после каких-либо супер-франчей
62 Inform
 
05.11.11
12:51
(60) за использование такого подхода: выгрузка результата запроса в ТЗ без необходимости на экзамене 1С:Специалист снижают оценку на 1 балл и оправдано, так что переучивайся, а перебарщивание временными таблицами - это скорее плюс...
http://www.1c.ru/rus/partners/training/files/ATT82PL.zip
63 cViper
 
05.11.11
13:06
(56) Простой пример: получить данные справочника запросом или обходом элементов справочника циклом. Результат одинаковый, но есть НЮАНС. А ведь есть программисты которые вообще не знают запросов, на мисте от кого-то слышал о таких.
64 smaharbA
 
05.11.11
13:14
(45) это чо ?!
65 smaharbA
 
05.11.11
13:16
Стандартов нет, "стандарты" от адинес - это микалки только для фирмы адинес, другие должны даже если их берут за основу выпустить стандарт предприятия, утвердить и сертифицировать, все. Иначе это филькина грамота и не более того.
66 smaharbA
 
05.11.11
13:17
(63) запросы чем лучше обхода ? патамушта эта крута ?!
67 cViper
 
05.11.11
13:22
(66)Это быстрее.
68 Alexandr Puzakov
 
05.11.11
13:22
(58) алгоритмы бывают разные... Часто встречаю код, который работает только в определенных условиях (!), и при этом код вроде бы даже дотягивает до стандартов разработки...

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

Но это еще пол беды. Все самое интересное начинается тогда, когда пытаешься доработать такой вот "ограниченный" алгоритм, и выясняется, что он буквально не предназначен для доработки (если тут поменяем, то там начнет рассыпаться)...
69 cViper
 
05.11.11
13:25
(66) Что крутого в запросах?
70 Alexandr Puzakov
 
05.11.11
13:26
(65) с чего это? В стандартах от фирмы 1С есть даже "как делать нельзя". Ну разумеется, эти стандарты не на все случаи жизни, но даже судя по отраслевкам (и типовым), разработчикам не всегда удается выдерживать стандарты. Куда еще усложнять-то?
71 smaharbA
 
05.11.11
13:34
(67) правдо быстрее ?
72 smaharbA
 
05.11.11
13:35
(70) это не стандарты !
ты прочитай, что написал то хоть, второе предложение в (70)
73 smaharbA
 
05.11.11
13:36
+ сложность/несложность не причем
74 Alexandr Puzakov
 
05.11.11
13:47
(73) а в чем же тогда дело? В стандартах описано: как образовывать имена переменных, процедур, функций, как организовывать структуру модуля, правила создания общих модулей... Вот именно эти штуковины не всегда выдерживают разработчики. Ну иногда бывают ляпсусы целые, но это отдельные ситуации.

Везде, где допущены несоответствия стандартам можно было бы выполнить в соответствии со стандартами. Несоответствие стандартам вызвано не производственной необходимостью, когда "пишем супер-пупер алгоритм и под стандарты код не ляжет", а даже фиг его знает чем...
75 Alexandr Puzakov
 
05.11.11
13:49
(72) >>это не стандарты

А название "Система стандартов и методик разработки..." говорить об обратном.
76 ado
 
05.11.11
13:56
(40) Потом про затычку благополучно забывают, юзер увольняется и внезапно обнаруживается, что никто не может выполнить операции, которые выполнял он. И никто нахер не может понять, в чем же дело. Плавали, знаем.
77 ado
 
05.11.11
13:59
(56) Ага, если автомобиль выехал своим ходом за ворота завода, значит он не ведро.
78 Mort
 
05.11.11
14:27
(67) Замечательный пример такого "стандарта". Для первокурсника потянет.
Стандарты хороши, когда не хватает знаний или банально мозгов сделать правильно основываясь исключительно на своём опыте.
79 smaharbA
 
05.11.11
16:35
(75) на заборах тоже пишут
80 smaharbA
 
05.11.11
16:37
Стандарт это когда утвержден на предприятии и прошли акредитацию + аудит рабочих мест, но проблема в том что некому проводить аудит ибо нет государственного стандарта
81 Inform
 
05.11.11
17:52
82 abfm
 
05.11.11
18:09
Были случаи когда запрос в цикле работает быстрее одного запроса, просто памяти не хватает и лезет в своп. А мелкие запросики на ура. Проверено практикой. И на прямых и на 1с. По стандартам получаеться хуже.
83 Нуф-Нуф
 
05.11.11
18:35
(85) ну это отдельные случаи, тоже с такими сталкивался. но в целом - стандарты рулят
84 Нуф-Нуф
 
05.11.11
18:36
кстати, смотрю продвинутый курс от Гилева - стандарты не соблюдаются :)
85 Alexandr Puzakov
 
05.11.11
18:36
(80) какой, нафиг, стандарт? А не фирме ли 1С создавать стандарты разработки на ее платформе...
86 GROOVY
 
05.11.11
18:43
(84) А что анонсировалось что будет полностью по стандарту? Я часто на начальном этапе вообще пказываю примеры разработки с дикими косяками, потом объясняю почему так не надо делать. О каких стандартах может идти речь? В обучении главное привить ПОНИМАНИЕ того что пишешь, как работают механизмы. А стандарты за пару дней усваиваются если есть понимание вышеперечисленного.
87 Alexandr Puzakov
 
05.11.11
18:44
(79) я вот никак не пойму, что Вы пытаетесь доказать? Что фирма 1С не компетентна в написании стандартов разработки на своей же платформе?
88 Нуф-Нуф
 
05.11.11
18:47
(86) да не, я же без претензии,.

главное познакомиться со стандартами до того как станешь прожженым прогером, ибо трудно переучиваться
89 Злопчинский
 
05.11.11
18:51
> В стандартах описано: как образовывать имена переменных, процедур, функций, как организовывать структуру модуля, правила создания общих модулей... Вот именно эти штуковины не всегда выдерживают разработчики. Н
- для поддержания стандартов система проектирования/разработки должна максимально облегчать написание кода/использование стандартов, а не возлагать это 100% на разработчика..
90 Alexandr Puzakov
 
05.11.11
18:52
(86) судя по некоторым распространенным отраслевкам, у некоторых они не прививаются даже за годы разработки...
91 Злопчинский
 
05.11.11
18:54
(76) > Потом про затычку благополучно забывают, юзер увольняется и внезапно обнаруживается, что никто не может выполнить операции, которые выполнял он. И никто нахер не может понять, в чем же дело. Плавали, знаем.
- плавали, знаем. Но это не кртично, ибо если такой затык - то выясняется довольно быстро, ибо легко локализуется. это раз.
два: потому как увольнение сделано из рук вон плохо. чел никому ничего не сдал, не обучил и прочее. если даже увольняется "срочно" - то описанные выше проблемы свидетельствуют лишь  о том, что в конторе отсутсвуют какие-дибо подходы к СИСТЕМЕ организации работы - пожинаем плоды, ничего удивительного...
92 Alexandr Puzakov
 
05.11.11
18:57
(89) как-как? Платформа сама должна писать код что-ли? :)

Хотя отчасти она это делает, например, в 8.2 в режиме управляемого приложения разработчику не удастся воплотить все свои извращенные фантазии... Мало-по-малу, но все ближе к армейскому принципу "безобразно, но однообразно".
93 Alexandr Puzakov
 
05.11.11
18:58
+(92) в части интерфейса :)
94 Злопчинский
 
05.11.11
19:00
можно сказать, что я пишу - без стандартов, прост стараюсь создавать читабельный код для такого же как и я. По крайней мере с трудностями аналииза чужого кода сталкивался всего один лишь раз (когда читал код Садовникова - да и то, больше потому что "предметная" область новая...), да и по моему коду вроде никто ко мне никогда не стучался - по крайней мере несколько десятков продаж на Исе есть - ни возвратов, ни вопросв - не было за все время.
.
мне кажется, что большую роль играет владение тем кто п ишет/анализирует код - знание предметной области... - если логика кода понятна - то вопрсов он не вызывает..
.
конечно, возможно, что при промышленном подходе к кодированию на 1С - знание предметной области уходит подальше и на первый план особенно в 8-ке становится чтобы было понятно что куда обращается и сто откуда вызывает.. и прочее по СВЯЗЯМ кода...
95 Alexandr Puzakov
 
05.11.11
19:01
Может, стоит "изобрести" конструктор кода?
96 Злопчинский
 
05.11.11
19:02
(92) - ты не поверишь - таки да!!! в свое время на Кларионе (и под досом, и под виндами) - код приложения генерился самсотяотельно - на сонвое схемы данных. а ручками - дописывали только "извращенную" логику.. ;-)
.
в принципе, на 8-ке для типового функционала - вообще кода не надо - все автоматом строится. ;-) Коммунизм - близко!!! ;-)
97 Злопчинский
 
05.11.11
19:04
(95) в принципе - да... такое даже в 7.7 в зачяточном состоянии было - конструкторы запросов например - генерили и процедуры и код выборки результатов запроса и вывод в таблицу..
.
по идее д.б. кодогенерация для всех типовых вещейс ключевыми точками куда вставлять свои "допилки"
98 Alexandr Puzakov
 
05.11.11
19:13
(97) задумался... Надо будет покурить код в разных конфигурациях, на предмет выявления закономерностей.
99 abfm
 
05.11.11
19:17
Машина думать не может, машина должна ездить.
100 Torquader
 
05.11.11
19:18
(97) Генератор кода может решить задачу стандартными методами, а когда нужно провести нестандартную обработку данных, он, скорее, вреден.
Что касается имён переменных, то писать по стандартам не очень удобно, так как получаются длинные имена, которые при использовании в выражениях не влазят в одну строку экрана, а потом бывает, что в начале кода было "КоличествоМатериаловВРезерве", а в другом месте получается "РезервКоличестваМатериалов".
Кроме того, автоматическая система преобразования кода спасает любой язык программирования.
101 Alexandr Puzakov
 
05.11.11
19:20
(100) was ist das "автоматическая система преобразования кода"?
102 Torquader
 
05.11.11
19:29
(101) Это когда ты в функции написал, скажем "Перем А //=> КоличествоТоваровНаСкладе", и везде используешь в коде переменную как А.
Если же тебе нужно собрать финальный код после отладки, то пропускаешь его через систему, и везде, где в функции было написано А - будет написано длинное название.
Также и с макросами только 1С для такой системы не готова, так как код перез скармливанием самой 1С приходится преобразовывать, а внятного доступа к коду в момент разработки нету.
103 smaharbA
 
05.11.11
19:29
еще раз о чем Вы говорите это не стандарт (речь не о качественности написания оного документа)
104 smaharbA
 
05.11.11
19:32
(81) чо это ?!
105 smaharbA
 
05.11.11
19:40
+ если напишу документ с заголовком
"Стандарт для всех разработчиков на платформе адинес (обязателен к исполнению!)"
это будет являться стандартом ?
106 abfm
 
05.11.11
19:46
Зачем завёлся так. Кино было "Старый новый год", фраза : отдыхай Вася Отдыхай. Старые Госты не работаютновых нет, на комбайнах в бамбантон играют, отдыхай а?
107 Нуф-Нуф
 
05.11.11
19:51
(66) запросы лучше выборки хотя бы потому что выборка при наличии РЛС может показать тебе большую и Толстую дулю
108 Alexandr Puzakov
 
05.11.11
19:52
(102) так ведь это умеет делать поиск и замена...
109 Нуф-Нуф
 
05.11.11
19:53
Мне кажется в смахарба вселился снук. Обычно он себя так ведет отставая свою позицию до последнего
110 Alexandr Puzakov
 
05.11.11
19:53
(105) нет.
111 Нуф-Нуф
 
05.11.11
19:54
Только снук в случае когда уже и дебил поймет сто спор проигран - просто теряется.
Смахарба неуподобляйся
112 abfm
 
05.11.11
20:00
(111)Он не проигран, время покажет. ЕГАИС тоже по стандартам сделан, но эксперимент Фурсенко был признат неудачным.
113 Alexandr Puzakov
 
05.11.11
20:03
(105) в любом уважающем себя документе должен выполняться принцип приоритета содержания над формой. Так вот у стандарта от фирмы 1С такой принцип выполняется, а в Вашем документе навряд ли он будет выполняться... И давайте не будем опровергать/доказывать тут почему туалет, при навешивании на него таблички "коттедж", не перестает быть туалетом, и почему коттедж, при навешивании на него таблички "туалет", продолжает быть коттеджем.
114 ОбычныйЧеловек
 
05.11.11
20:19
Забавно читать о стандартах, особенно о стандартах от 1С :) Стандарты от 1С придуманы для всех остальных, но только не для самой 1С, ни одна из конфигураций 1С не пройдет "1С совместимо".
115 smaharbA
 
05.11.11
20:48
(110) почему ?
116 smaharbA
 
05.11.11
20:48
(109) я всегда прав )
117 Inform
 
05.11.11
20:53
(114) дело даже не в том для кого они придуманы, а в том, что если все будут их придерживаться, то уменьшится вероятность появления такого:

для й=1 по 10 цикл
если й<5 тогда возврат истина иначе возврат ложь конецесли;
конеццикла;

а если такого "кода" на несколько разворотов, как еще, не сославшись на стандарты, доказать франчам или сотрудникам, что это не особо хорошо? Стандарты от 1С - упрощают нам жизнь, хотя бы даже тем что можно тыкнуть в них носом и в следующий раз спросить почему так получилось.
(115) никто не говорит, что ты не можешь сам для себя создать какие-либо стандарты, но такие вещи как стандарты разработки от 1С и венгерская нотация являются общепринятыми, сможешь сделать лучше - размещай, авось кто-то начнет соблюдать твои стандарты
118 Feanor
 
05.11.11
20:59
(117) и какому стандарту уважаемой фирмы адинэс этот код противоречит?
119 smaharbA
 
05.11.11
21:56
(117) общепринятым многое является, но не является Стандартом.
Вы сначала выясните, что является Стандартом, а после пишите свой бред.
120 cViper
 
05.11.11
22:13
(118) Программист в первую очередь пишет код для другого программиста, а уже потом для машины. Из кода (117) абсолютно не понятно что он делает и для чего он.
121 Inform
 
05.11.11
22:37
(118) нет отступов (вертикальных и горизонтальных), название переменной не информативно, регистр в операторах везде нижний, такой код совершенно нечитабелен. Подробнее про стандарты см. (12)
(119) то, что является стандартом прекрасно описано в вики (81), вот еще варианты: http://slovari.yandex.ru/стандарт/
Коли уж называете мои слова бредом, будьте так любезны пояснить каким пунктам из определения "Стандарт" не соответствуют стандарты от 1С.
122 Torquader
 
05.11.11
23:30
(117) Так вы куски кода не выкладывайте. Там, может быть, просто всё, что работало, живёт в комментариях.
Другое дело, что грамотная обработка ошибок требует оставлять "бесконечные" циклы, чтобы что-то можно было продолжить сначала, а также сделать завершающие действия при отказе на любой строчке кода.
Поэтому и получается что-то типа:

While 1=1 Do
// Инициализация системы исполнения
InitProcess();
GoodResult=0;
While 1=1 Do
 // выполняем этап 1
 If RunStage1()=0 Then Break;EndIf;
 // выполняем этап 2
 If RunStage2()=0 Then Break;EndIf;
 // этапов может быть сколько угодно
 // и отлаживать их можно поэтапно
 // если выполнены все, то
 GoodResult=1;
 Break;
EndDo;
// выполняем корректное закрытие используемых объектов
// здесь также нужно не забыть, что какие-то этапы были выполнены
// и их нужно "откатить" назад
CloseProcessObjects();
// теперь проверяем, что мы завершили исполнение успешно
// тут, конечно, можно сообщить пользователю, что действие не удалось
// но диалоговое окно с вопросом или сообщением - не есть хорошо
If GoodResult<>0 Then Break;EndIf;
EndDo;

И на каком бы языке программирования код не писался, будет примерно тоже самое.
123 smaharbA
 
06.11.11
11:37
(121) Вы кране не образованы.
124 Zaval
 
06.11.11
11:58
smaharbA

123 - 06.11.11 - 11:37
   
(121) Вы кране не образованы.


Классный афоризм )))
125 orefkov
 
06.11.11
12:04
(122)
Вы таки считаете, что замаскировав брэйками голимые гоуту, они будут меньше вонять? Духами на монитор не брызгаете?
126 Torquader
 
07.11.11
01:14
(125) Ну, можно их ещё и в процедуры спрятать, то есть цикл - в нём вызов единственной процедуры, которая при успешном завершении прерывает цикл.
Не все в этом goto узнают.
P.S. а как ещё делать, если нормальной обработки ошибок с возвратом в точку ошибки в 1С не наблюдается и никогда не будет.
127 Alexandr Puzakov
 
07.11.11
09:49
(126) писать код надо нормально, и не придется извращаться. В 99% случаев, при нормальной организации кода, ничего предусматривать и не надо. А реализуй такую возможность (требующуюся лишь в 1% случаев) и товарищи быдлокодеры начнут пихать ее куда ни попадя, еще больше усложняя свой быдлокод...

Платформа 1С:Предприятие узкоспециализированная, и нафиг на ней не нужны костыли от значительно более низкоуровневых систем.
128 Stepa86
 
07.11.11
09:56
Следование стандартам разработки - вещь полезная, особенно если стандарты адаптированы под команду, а не тупо взяты откуда то еще...
Проведение аудитов кода еще одна весьма полезная вещь... но только если проверяется не стандарт, а качество кода. Отклонение от стандарта - тревожный звоночек, но не более, смотреть надо суть, объяснять автору почему так не надо делать и как надо было написать. ( Нарушение стандартов это не более 10% возможных запахов кода по Фаулеру и Мартину)
Попытка проаудитить существующий код стандартам тож полезная вещь - поможет выявить очаги косяков и принять решение о проведение рефакторинга, но лучше это делать силами команды, а не на аутсорс отдавать. В чужом коде почти всегда есть места, где можно придраться. И команде полезнее будет и дешевле.
Штрафы за найденные косяки - большое зло, команда разбежиться тут же или просто перестанет писать хоть какой то код - меньше кода, меньше косяков, меньше штрафов...

В идеале аудитеть код при отработке задания, есть косяки - назад на исправление, нету - в хранилище. И никаких штрафов, бонусов и других мотиваций
129 Alexandr Puzakov
 
07.11.11
18:20
Апнем. Вдруг кто чего интересного напишет.
130 Torquader
 
08.11.11
00:46
Ещё не стоит забывать, что 1С - интерпретатор с предварительной компиляцией.
То есть при написании кода нужно учитывать, что время выполнения может зависеть от длины переменных (хотя в случае 1С будет зависеть только время начальной загрузки, когда имени переменной сопоставляется ячейка).
Также надо понимать, что система подготовки кода к исполнению преобразует код немного в другой вид, так что стандарты, прежде всего, не должны вредить скорости исполнения.
131 Inform
 
08.11.11
01:09
(130) на современных ПК вряд ли время выполнения кода будет отличаться в зависимости от имени переменных
Стандарты точно не смогут вредить времени выполнения, тем более если 1С рекомендует писать, например:

Если <Условие> Тогда
<Операторы>
Иначе
<Операторы>
КонецЕсли;

а не:

Если <Условие> Тогда <Операторы> Иначе <Операторы> КонецЕсли;

То целесообразно полагать, что когда интерпретатор начинает работать - первоначально он разбирает код преобразуя строки в определенный набор операций и если в 1 строке встречается множество операторов, то это может значительно увеличить время разбора (естественно не значительно на современных ПК).
132 Alexandr Puzakov
 
08.11.11
04:38
(130) на современных ПК выруливать копеечную производительность - не имеет смысла. Тем более "неаккуратный" фрагмент кода, обращающийся к данным, на раз-два может свести на нет всю экономию производительности на длинне кода...

И тем более пишем на русскоязычном встроенном языке, а он не допускает "обрезаний" слов, как это допускают англоязычные ЯП... Это особенность русского языка.
133 Alexandr Puzakov
 
08.11.11
04:43
И вообще, товарищам, постоянно пишущим переменные:

Кол
З
Стро
В
Ост
Мас
Струк

и тому подобные, я бы посоветовал не мучать себя и других, а тихонько разогнаться - и об стенку.
134 skunk
 
08.11.11
06:13
я вот про стандарты тоже не слыхал ... в лучшем случае рекомендации ... notation
135 mishaPH
 
08.11.11
06:18
(133) а чем тебе это не нравится?
136 Нуф-Нуф
 
08.11.11
06:19
мсье из (135) шутит?
137 Alexandr Puzakov
 
08.11.11
06:27
(135) ненравится сложность восприятия этого кода. Нормальный код должен быть самодокументируемым (т. е. из кода должно быть понятно, что он делает), а это какой-то винегрет... Не ну ладно еще можно из сокращений понять, что "Мас" - это массив (но опять же остается совершенно не ясным из названия, что содержит этот массив), но когда такие вот сокращения имеют переменные, носящие "прикладной" смысл, начинаются писдецы: один раз УчПолит, другой раз ПолУ, третий раз Учет...
138 skunk
 
08.11.11
06:30
(137)стесняюсь спросить ... а для кода вида


для х = 0 по 100 цикл
конеццикла


х - обязательно писать ЦелоеСчетчик
139 Нуф-Нуф
 
08.11.11
06:31
(138) не обязательно, достаточно просто писать Счетчик
140 smaharbA
 
08.11.11
06:32
(133) советую сменить мозг
141 smaharbA
 
08.11.11
06:32
(131) какие стандарты ?
142 smaharbA
 
08.11.11
06:35
(139) а почему не Счётчик ?
143 skunk
 
08.11.11
06:38
(139)а тогда как быть здесь


Шаг = 0.01;
Счетчик = 0;
пока Счетчик < 100 цикл
конеццикла;


сразу за кодом из (138) ... ведь Счетчик из предыдущего кода целое
144 Alexandr Puzakov
 
08.11.11
06:43
(138) для счетчиков это нормально. Для остальных переменных - нет (кроме общепринятых сокращений).
145 0xFFFFFF
 
08.11.11
06:45
(144) Хотя некоторые чудики пишут
Для ё=1 по 100 Цикл...
146 Alexandr Puzakov
 
08.11.11
06:46
(140) а что, с другим мозгом быдлокод станет для меня родным и приятным? :)
147 Alexandr Puzakov
 
08.11.11
06:47
Обычно счетчик все же обозначают "Сч".
148 skunk
 
08.11.11
06:54
(147)обычно счетчики обазначают - i, x, y, z ... это по популярности

i - для одиночных циклов
x, y, z - для вложенных ... более трех вложенных не рекомендуют(обращаю внимание "не рекомендует" <> "станадрт" ... то есть при необходимости вложить четвертый цикл тебе ни кто не запрещает)
149 Alexandr Puzakov
 
08.11.11
07:09
(148) для счетчиков пускай. А за попытки на русском ЯП применять англоязычный стиль написания переменных - руки надо отбивать. Между английским и русским языком - целая пропасть, и если на английском языке слово с выкинутыми гласными или отсеченым окончанием нормально читается, то на русском оно почти всегда превращается в непонятный набор букв...
150 smaharbA
 
08.11.11
07:16
(146) смею заверить код написанный Вами является быдлокодом - просто поверьте
быдлокод определяется не по именам переменным и операторам перехода и бесконечным циклам
151 smaharbA
 
08.11.11
07:20
еще раз - стандартов на программирование в России нет, это до сих пор является проблемой в космостроении и ядренобатоностроении, а тут на тебе у тупых снеговиков нате есть оказывается стандарт.
152 Rovan
 
гуру
08.11.11
07:25
а у нас вот такие требования начальник ставит:
- не должно быть пустых строк
- после "(" и перед ")" не должно быть пробелов
- не должно быть переводов строк
(даже если в строке 300 символов, то они должны быть в 1 строку)
153 Кириллка
 
08.11.11
07:25
1. Стандарты не совсем удачное слово, как и notation. У буржует есть термин CODE GUIDE. И если уж использовать что-то русское, то Рекомендации по оформлению кода. Как было замечено выше, не может быть стандартов по оформлению. Потому что стандарты подразумевают четкое и неприкословное следование им. В оформлении кода такого не может быть.

2. Применение Рекомендаций в программировании полезно, а в командной разработке просто необходимо. Люди разные и пишут по разному - изучать код, написанный разными разрабами, с разным оформлением, как минимум, не комфортно.
154 Rovan
 
гуру
08.11.11
07:25
(151) на ИТСах есть рекомендации по оформлению кода от фирмы 1С !
155 Alexandr Puzakov
 
08.11.11
07:37
(150) конкретнее. Почему?
156 Alexandr Puzakov
 
08.11.11
07:40
(151) опять двадцать пять... Есть стандарты разработки на платформе 1С от самой фирмы 1С. И совершенно покуй, что они в Госстандарте никак не обозначены.
157 smaharbA
 
08.11.11
07:40
(156) писец, вы не пту оканчивали ?
158 smaharbA
 
08.11.11
07:41
(154) рекомендации !
159 Alexandr Puzakov
 
08.11.11
07:42
(153) куйня. Либо Вы даже не читали ГОСТов, либо какое-то религиозное воззрение...
160 Alexandr Puzakov
 
08.11.11
07:44
(158) это не рекомендации, а именно часть "Системы стандартов и методик разработки...".
161 Alexandr Puzakov
 
08.11.11
07:45
(157) нет.
162 smaharbA
 
08.11.11
07:45
(160) Вы однозначно пту-шник. все.
163 smaharbA
 
08.11.11
07:46
начинаю писать "Система стандартов и методик разработки тупых снеговиков. (Обязателен к исполнению)"
164 Alexandr Puzakov
 
08.11.11
07:50
(163) не выйдет, Вы не компетентны...
165 Stepa86
 
08.11.11
07:52
(138) Чем меньше область видимости переменной, тем больше пофик, что имя у нее короткое. Для мелких циклов одной буквы достаточно (я пишу или ц, или цЭлемент или цСтрока в зависимости от контекста)
(162) я Вас тож не понимаю, есть документ по стилю программирования от 1С, который называется "Система стандартов и методик...", и все, кто его так называет закончили ПТУ?
166 smaharbA
 
08.11.11
07:53
(165) все кто называет Это - стандартом.
167 smaharbA
 
08.11.11
07:55
о качественности Этого речи не шло и не идет.
в свете сабжа Это не может применяться на предприятии, не более чем памятка для программиста.
168 Stepa86
 
08.11.11
07:55
+(165) для глобальных переменных очень рекомендуют писать основательные имена, а для переменных метода обычные, и чтоб в них было понятно что там... Про венгерскую нотацию холиварить будем?
169 Starhan
 
08.11.11
07:55
(52)(117) А Мартин пишет что что Венгерская Нотация устарела. Не нужны сейчас префиксы типа переменной :)
170 smaharbA
 
08.11.11
07:56
(169) как будете различать переменные разной области видимости ?
171 Кириллка
 
08.11.11
07:57
(159) Далеко ходить не надо - 19-е ГОСТы. Либо ты оформляешь все в точности как требует ГОСТ, либо тебе это заварачивают с формулировкой не-поГОСТу.

Я спорить не собираюсь. Мне ни какого профита не принесет, если я кого-то смогу переубедить :)

Вообще забавно, что спор начался за СЛОВО, а не по сути.
172 Starhan
 
08.11.11
07:57
(170) пример пжлста.
173 Кириллка
 
08.11.11
07:59
(170)Дополнение по Фаулеру: он заверяет, что не нужны префиксы, описывающие тип этой переменной, например, szSomeStringNullTerminated.
174 Stepa86
 
08.11.11
08:00
(169) 1) Венгерская нотация в понимании Мартина устарела для языков с типизацией, в 1Ске тип переменной в любом месте в конфигураторе не узнать
2) Это все равно иногда полезнее, и больше определяется применяемым стилем (кодируется область видимости, тип и вид переменной)
3) Венгерская нотация на самом деле не то, о чем думают 90% разработчиков, у Джоэла Спольски есть пост на эту тему
175 Starhan
 
08.11.11
08:02
я в (169) уже написал что речь про префикс типа переменной :)
176 Alexandr Puzakov
 
08.11.11
08:05
(166) Вы бы лучше удосужились Это прочитать сначала. Там вместе с руководством по стилю мож чуть больше 100 станиц А4 будет, делов на 2 часа.
177 vs84
 
08.11.11
08:06
КаждоеСловоСБольшойБуквы
Информативные имена переменных и функций
Пробелы между операторами
Лаконичные, но информативные комментарии

Хотя бы это и уже будет неплохо. Стандарты нужны, в значительной степени для того, что бы кто то кроме автора решения мог быстро в нем разобраться и не испытывали культурный шок.
178 skunk
 
08.11.11
08:06
(176)что за гост по стилю вы откапали ... хоть номер госта огласите
179 mishaPH
 
08.11.11
08:07
(152) по моему ваш начальник слегка не в себе. пробелы и пустые строки как-бы улучшают читабельность кода. некоторые блоки функциональные внутри процедуры выделять пустой строкой до и после - это даже хорошо.
180 Stepa86
 
08.11.11
08:07
+(174) 3) http://www.livelib.ru/quote/121070 вот выдержка, остальное есть видимо или у Джоэла в блоге на иностранном или в книге
181 Stepa86
 
08.11.11
08:09
(152) Макконнелл пишет свой код (и рекомендует писать) с точностью до наоборот =)
182 Alexandr Puzakov
 
08.11.11
08:09
(167) пример качественных стандартов, разработанных на предприятии - в студию!

Забегая вперед скажу, что вероятнее всего там будет лишь воплощение привычек программирования нач. ИТ, перетянутые им с других ЯП (ну мол риальные пасаны пишут так)...
183 Alexandr Puzakov
 
08.11.11
08:13
(171) всю ветку я пытаюсь цепляться за суть, а некоторые товарищи настойчиво доказывают, мол фирма 1С не доросла до написания стандартов разработки на собственной же платформе...
184 Alexandr Puzakov
 
08.11.11
08:14
(178) это не гост, а все тот же материал с ИТСа.
185 mishaPH
 
08.11.11
08:30
Александр, я понял корень ваших проблем. Простите но вы зануда.
186 Alexandr Puzakov
 
08.11.11
08:44
(185) пускай зануда, и что?

Мне остается неясным один момент. Если вы не хотите, или религия не позволяет использовать стандарты от 1С, то зачем какахами в них кидать?
187 skunk
 
08.11.11
08:46
(184)ты кричал про ГОСТ ... материал с ИТСа не может быть ГОСТом ... и если ГОСТ еще можно воспринимать как требование к оформлению текста ... то материалом с ИТСа можно вытереть место после испоражнения фекалий ... это просто рекомендации ... и ни йотой больше
188 Stepa86
 
08.11.11
08:53
[off]
есть 3 уровня мастерства (я хз как они по кетайски зовутся, но как то зовутся)

1) Молчаливое следование правилам (стандартам,рекомендациям, стилю, ЭТОМУ итп), никаких вопросов "Почему?" и "Зачем?". За любое отступление от правил - удар табуреткой.

2) Активное изучение границ правил и исключений, понимание когда можно использовать это правило, а когда нет и к чему приведет его использование

3) Правил больше нет, просто очевидно когда и что нужно делать и что будет, если сделать не так. В любой новой ситуации легко придумывается новое правило и рассказывается первому уровню
[/off]
189 mishaPH
 
08.11.11
08:55
(186) нету у 1с стандарта. у 1с есть рекомендации.
190 mishaPH
 
08.11.11
08:56
+ 189 мне вот труднее понять код по стандарту 1С когда блин пока прочитаешь название переменной или функции процедуры, из бошки вылетит что ты хочешь вообще тут делать.
191 Alexandr Puzakov
 
08.11.11
09:06
(187) и снова же. Не нравится, зачем в него какахами кидать? Разработчикам типовых он не мешает, целой толпе программистов он не мешает, мне он не мешает. А Вас он чем задел?
192 Alexandr Puzakov
 
08.11.11
09:08
(190) у меня таких проблем не возникает...
193 Alexandr Puzakov
 
08.11.11
09:14
(189) не пойму, юридический пинок что-ли требуется, чтобы начать использовать стандарты от 1С? Эти стандарты разработаны для повышения культуры разработки, и для единого стиля написания конфигураций. Применять их никто насильно не заставляет, но намного лучше, когда их применяют.
194 skunk
 
08.11.11
09:15
(191)меня стандарт лично никак не задел ... задевают, если так можно выразиться, ваши высказывания про стенку ... и не следованиям каких-то ГОСТов

еще раз вы разницу между ГОСТом и рекомендацией понимаете?
195 Fish
 
08.11.11
09:20
Почти 200 постов и все практически ни о чём :)) А на самом деле, вопрос простой: есть определенные методики программирования и оптимизации кода, справедливые для ВСЕХ языков. А так называемые "стандарты 1С" придуманы для тупых быдлокодеров, которые в программировании ничего не понимают, и для них придерживаться стандартов - это значит меньше накосячить :)) А если программист грамотный и понимает, что и зачем он пишет, и как это работает (т.е. хотя бы представляет, как этот код будет выполнятся на уровне процессора) - то ему никакие "стандарты 1С" не нужны - он и так напишет оптимальный по работе код. А читабельность названий переменных - это всего лишь дань уважения тем, кто будет дорабатывать твой код после тебя, и не более того.
196 Волесвет
 
08.11.11
09:23
всё о старом?

ЭтаПеременнаяЯвляетсяСчетчикомДляПеребораМассиваДанныхВыгруженныхПоЗапросуВБазеНаТекущийДень

//ии-счетчик
ии
197 Fish
 
08.11.11
09:24
+(195) К тому же, если быдлокодер выполняет "стандарты 1С", то после него будет легче править косяки, а у грамотного программиста код будет нормально работать и с переменными i,x,y,z :))
198 Vetal_978
 
08.11.11
09:25
(195) Пример кода в студию, поржать охота :)
199 Fish
 
08.11.11
09:27
(198) Код не мой, но на, поржи:

Функция ГлПадежС(z1,Знач z2=2,Знач z3="*",z4=0) Экспорт
   z5=Найти(z1,"-");
   z6=?(z5=0,"","-"+ГлПадежС(Сред(z1,z5+1,СтрДлина(z1)-z5+1),z2,z3,z4));
   z1=НРег(?(z5=0,z1,Лев(z1,z5-1)));
   z7=Прав(z1,3);z8=Прав(z7,2);z9=Прав(z8,1);
   z5=СтрДлина(z1);
   za=Найти("ая ия ел ок яц ий па да ца ша ба та га ка",z8);
   zb=Найти("аеёийоуэюяжнгхкчшщ",Лев(z7,1));
   zc=Макс(z2,-z2);
   zd=?(za=4,5,Найти("айяь",z9));
   zd=?((zc=1)или(z9=".")или((z4=2)и(Найти("оиеу"+?(z3="ч","","бвгджзклмнпрстфхцчшщъ"),z9)>0))или((z4=1)и(Найти("мия мяэ лия кия жая лея",z7)>0)),9,?((zd=4)и(z3="ч"),2,?(z4=1,?(Найти("оеиую",z9)+Найти("их ых аа еа ёа иа оа уа ыа эа юа яа",z8)>0,9,?(z3<>"ч",?(za=1,7,?(z9="а",?(za>18,1,6),9)),?(((Найти("ой ый",z8)>0)и(z5>4)и(Найти("опой вбой",Прав(z1,4))=0))или((zb>10)и(za=16)),8,zd))),zd)));
   ze=Найти("лец нёк вей бей дец пец мец нец рец вец аец иец ыец бер",z7);
   zf=?((zd=8)и(zc<>5),?((zb>15)или(Найти("жий ний",z7)>0),"е","о"),?(z1="лев","ьв",?((Найти("аеёийоуэюя",Сред(z1,z5-3 ,1))=0)и((zb>11)или(zb=0))и(ze<>49),"",?(za=7,"л",?(za=10,"к",?(za=13,"йц",?(ze=0,"",?(ze<16,"ь"+?(ze=1,"ц",?(ze=5,"к","")),?(ze<41,"ц",?(ze<53,"йц","р"))))))))));
   zf=?((zd=9)или((z4=3)и(Прав(z1,1)="ы")),z1,Лев(z1,z5-?((zd>6)или(zf<>""),2,?(zd>0,1,0)))+zf+СокрП(Сред("а у а "+?((z8="ич")или(z8="ыш"),"е",?((z8="ов")or(z8="ин"),"ы","о"))+"ме "+?(Найти("гжкхш",Лев(z8,1))>0,"и","ы")+" е у ойе я ю я ем"+?(za=16,"и","е")+" и е ю ейе и и ь ьюи и и ю ейи ойойу ойойойойуюойойгомуго"+?((zf="е")или(za=16)или((zb>12)и(zb<16)),"и","ы")+"мм",10*zd+2*zc-3,2)));
   Возврат ?(""=z1,"",?(z4>0,ВРег(Лев(zf,1))+?((z2<0)и(z4>1),".",Сред(zf,2)),zf)+z6);
КонецФункции

// z1 - фамилия имя отчество например Железняков Юрий Юрьевич
// z2 - Падеж ( по  умолчанию = 2 - родительный)
// 2 - родительный  ( нет кого?    ) Железнякова Юрия Юрьевича    
// 3 - дательный    ( кому?        ) Железнякову Юрию Юрьевичу
// 4 - винительный  ( вижу кого?   ) Железнякова Юрия Юрьевича  
// 5 - творительный ( кем?         ) Железняковым Юрием Юрьевичем    
// 6 - предложный   ( о ком?       ) Железнякове Юрии Юрьевиче
// Если задать Z2 меньше 0, то на выходе получим от -1=Железняков Ю. Ю. до -6=Железнякове Ю. Ю.
// z3 - параметр Пол может не указываться, но при наличии фамилий с
// инициалами точное определение пола невозможно, поэтому предлагается задавать пол этим
// параметром  1 - мужской 2 - женский  
// ДЛЯ СКЛОНЕНИЯ ПРОФЕССИЙ ИСПОЛЬЗУЙТЕ ФУНКЦИЮ ПАДЕЖП И БУДЕТ ВАМ СЧАСТЬЕ!
// ---------------------------------------------------------------------------------------
// Бибик Галушка Цой Николайчик Наталия Петровна Герценберг Кривошей Капица-Метелица
// Если Падеж(Фио ,1 ,3),       то на выходе получим Фамилия Имя Отчество и т.д.
// Если Падеж(Фио ,1 ,3,"1" ),  то                   Фамилия
// Если Падеж(Фио ,1 ,3,"2" ),  то                   Имя
// Если Падеж(Фио ,1 ,3,"3" ),  то                   Отчество
// Если Падеж(Фио, 1 ,3,"12" ), то                   Фамилия Имя
// Если Падеж(Фио, 1 ,3,"23" ), то                   Имя Отчество
// Если Падеж(Фио,-1 ,3,"231" ),то                   И. О. Фамилия
// Если Падеж(Фио,-1 ,3,"23" ), то                   И. О.  
// 10-11-2003 3-20
Функция ГлПадеж(z1,z2=2,z3=3,z4="123",z5=1) Экспорт
   z6=Нрег(Прав(СокрП(z1),4));
   z7=Прав(z6,1);
   Возврат?(z5<4,ГлПадеж(СокрЛП(СтрЗаменить(Сред(z1,Найти(z1+" "," ")+1),".",". ")),z2,z3,СтрЗаменить(z4,z5,ГлПадежС(?((z5=3)и(z7="ы"),z1,Лев(z1,Найти(z1+" "," ")-1)),z2,Сред("ча"+z7,?(z3=3,?(z6="оглы",1,?(z6="кызы",1,3)),z3),1),z5)+" "),z5+1),z4);
КонецФункции

//склонение профессии/должности
Функция ГлПадежП(Знач z1,Знач z2,z3=0) Экспорт
   z1=СокрЛП(z1);z4=Найти(z1+" "," ")+1;z5=Лев(z1,z4-2);z6=Прав(z5,2);
   z7=?((Найти("ая ий ый",z6)>0)и(Найти("ющий нный",Сред(z1,z4-5,4))=0)и(z3=0),"1","*");
   Возврат НРег(?((z6="ая")или(Прав(z6,1)="а"),ГлПадежС(z5,z2,z7,1)+" "+ГлПадежС(Сред(z1,z4),z2),ГлПадежС(z5,z2,"ч",1)+?((z6="ий")и(Найти(z1," ")=0),""," "+?(z7="1",ГлПадежП(Сред(z1,z4),z2,Число(z7)),Сред(z1,z4)))));
КонецФункции
200 Alexandr Puzakov
 
08.11.11
09:28
(194) понимаю. И что? Стандарты от фирмы 1С не имеют юридической силы, однако, от этого не перестают быть стандартами. И совершенно пофиг, что у кого-то там в голове возникла ассоциация с какими-то там стандартами, имеющими юридическую силу, и он пытается эту ассоциацию проецировать на стандарты от фирмы 1С.
201 Fish
 
08.11.11
09:29
+(199) А большинство моего кода, боюсь, матофильтр не пропустит, т.к. велик и могуч русский язык :)))
202 skunk
 
08.11.11
09:32
(200)стандарт становится стандартом когда он стандарт ... то есть шаг вправо/влево расстрел на месте ... иначе он просто рекомендация ... и если кто-то не следует рекомендациям то еще не значит, что ему надо убиться апстену... вот как раз таки ярым стороникам "стандарта" надо подумать над вопросом "а не сменить ли мне профессию"
203 Alexandr Puzakov
 
08.11.11
09:33
(195) проблема в том, что автоматизация на 1С - это отрасль, в которой работает целая армия программистов. Так вот любому из этой армии гораздо проще будет разобраться в быдлокоде оформленном по стандартам, чем разгребать якобы грамотный код за якобы грамотным программистом.

1С:Предприятие - открытая система, и очень важно, чтобы было ЕДИНООБРАЗИЕ.
204 Alexandr Puzakov
 
08.11.11
09:36
(196) стандарты как раз рекомендуют избегать длинных имен переменных. Да и здравый смысл никто не отменял.
205 Stepa86
 
08.11.11
09:37
(199) я конечно дико извиняюсь, но это пездец... как такой код отлаживать?
(195) а я чо то и не знаю, как код 1Сный выполняется на уровне процессора =(
и вообще единый стиль в разработке нужен в любой команде, независимо от уровня разработчиков. Как минимум чтоб не допустить холиваров на ровном месте, код одного стиля проще потом читать/отлаживать другим и выглядит это профессионально, а не поделкой школьника
206 Fish
 
08.11.11
09:37
(203) за грамотным программистом код "разгребать" не придется, ты уж мне поверь :))) Просто проблема в том, что сейчас каждый второй, прослушавший курсы 1С гордо называет себя "программистом", каковым на деле не является :))
А про армию я соглашусь - только армия не программистов, а именно "быдлокодеров". Грамотных программистов сейчас, к сожалению, раз, два и обчелся :)))
207 Fish
 
08.11.11
09:39
(205) А нафига тебе этот код отлаживать? он работает и без твоих отладок, и очень грамотно работает - можешь проверить и сравнить, как, например, в ЗУПе фамилии склоняются :)))
208 Alexandr Puzakov
 
08.11.11
09:41
(199 :) а вот и пример "грамотного" кода якобы грамотного специалиста.
209 Кириллка
 
08.11.11
09:43
(194) Справедливости ради: Стандарт != ГОСТ в общем смысле. ГОСТ - это стандарт, но Стандарт не ГОСТ. Стандарт - это согласованные правила, которым необходимо придерживаться. А на каком уровне он утвержден - дело десятое (на международном уровне, на уровне компании 1с или вообще в пределах отдела).
210 Alexandr Puzakov
 
08.11.11
09:44
(202) :) вот вам ГОСТ 34, и найдите-ка мне там жесткие требования. Да такие, чтобы были жестче, чем в стандартах от 1С.
211 Stepa86
 
08.11.11
09:44
(207) не касаясь конкретно это примера, очень часто бывают исключительные ситуации, не учтеные при первоначальной разработке (особенно если в системе чо то сменилось), бывают ошибки (они у всех бывают) и бывает необходимость выправить код под новые требования/задачи. Поэтому код неплохо бы писать так, чтоб там потом смогли разобраться. Да и сам автор потом тратит на такой код больше времени через 1-2 месяца после создания.

Ухудшение читаемости допустимо тока в одном случае - агрессивная оптимизация, при которой невозможно оставить читаемость на должном уровне. Все остальное - левые отмазки
212 smaharbA
 
08.11.11
09:46
(200) у Вас в голове бардак - перечитайте сабж и не впаривайте липу как стандарт.
213 smaharbA
 
08.11.11
09:47
(209) именно по сабжу и не десятое, а первое
214 Alexandr Puzakov
 
08.11.11
09:47
(209) я еще раз спрашиваю, неужели без содержания в себе юридического пинка стандарт не может быть стандартом?
215 Fish
 
08.11.11
09:47
(208) Это пример между прочим с проклуба, и он даже вставлен в типовые конфы Раруса, который сертифицирован на 1С:Совместимо. А склоняет фамилии и профессии грамотней всех функций, виденных мной ранее. А если у тебя мозгов не хватает этот код осилить - то пиши по "стандартам 1С" :))
216 Stepa86
 
08.11.11
09:52
(215) я правильно понимаю, что для вас грамотный спец это тот, кто пишет методы которые выполняют поставленную задачу, и пофик как они выглядят внутри?
217 Кириллка
 
08.11.11
09:53
(213) Дело личное, но так формально подходить к терминалогии не нужно. Это тупо калька с английской терминалогии - нужно об этом помнить. Назвали в 1с этот документ Стандартом, значит хотели ему значимость поднять, не более.
Однако, по мне, документ должен называться Рекомендацией.
218 Alexandr Puzakov
 
08.11.11
09:54
(212) ладно, тогда будем иначе.

Привидите-ка ссылку на юридический документ, в котором четко прописано, что любой стандарт в обязательном порядке должен сертифицироваться, утверждаться, а иначе он не может считаться стандартом. Сможете?
219 Fish
 
08.11.11
09:58
(216) Абсолютно так :)) Если программа работает - значит она написана правильно. А если не работает - то нет. И все.
220 Alexandr Puzakov
 
08.11.11
10:00
(217) почему рекомендацией-то?
221 cViper
 
08.11.11
10:00
(219) Стив Макконелл и Мартин Фаулер с вами не согласны!
222 smaharbA
 
08.11.11
10:02
(217) о чем и талдычу с первых постов, если нужно и хочется ее использовать именно по сабжу - то начальнеги обязаны узаконить ее.
223 Stepa86
 
08.11.11
10:03
(219) а я всегда считал, что это быдлокодер, ну или просто кодер, но никак не спец.
224 Кириллка
 
08.11.11
10:03
(219)Солнце видно - день, Солнце не видно - ночь.
225 Fish
 
08.11.11
10:04
(217) +100500 В других языках эти "стандарты" являются всего лишь "советами по программированию", и только 1С называет "стандартами". Это правда не значит, что их вовсе не нужно знать - этого я не утверждаю, но тупо следовать им - нет уж, увольте :))
(221) Это  я немного утрирую конечно. Код конечно же должен быть еще и оптимизирован с точки зрения быстродействия, использования памяти и т.п. :)))
226 Кириллка
 
08.11.11
10:05
(222)Начальник называет документ "ВНУТРЕННИЕ стандарты ..." - все, узаконил. В суть нужно смотреть, а не в обложку.
227 Stepa86
 
08.11.11
10:07
(225) то есть если стоит задача сделать некоторый механизм, который может работать (время на разработку x) и может работать быстро (время на разработку 3x), то грамотный спец. сделает по второму варианту и будет молодец?
228 Fish
 
08.11.11
10:07
(223) Молодой человек, может я и быдлокодер, но когда Вы еще только родились, я уже программировал на Фортране 4, если Вам это о чем-то говорит.
229 Alexandr Puzakov
 
08.11.11
10:08
(219) мы имеем дело с системами автоматизации, и кроме работает/не работает есть еще куча требований:
- возможность разобраться в коде;
- возможность доработки;
- производительность;
- правильность использования тех или иных объектов;
- ну и т. п.
230 Fish
 
08.11.11
10:10
(229) Во-во и я про производительность - А как Вы объясните, что если написать запрос так, как это рекомендует 1С (одним запросом с кучей левых соединений и вложенных запросов) то он отработает в РАЗЫ дольше, чем несколько небольших запросов?
231 Stepa86
 
08.11.11
10:11
(228) вот на личности переходить не надо, у меня свое мнение по поводу определения слов быдлокодер, кодер, разработчик и спец., у вас свое... мое мнение подтверждают (точнее оно сформировалось после прочтения их) работы Макконелла, Фаулера, Мартина, Спольски, Гудлиф, Бек итп. Вы можете быть не согласны с моим мнением и мне как то пофик, потому что в этом споре я для себя ничего нового и полезного не вынесу. Но на личности не надо переходить
232 cViper
 
08.11.11
10:12
На мой взгляд код в (199) имеет место быть. Это не идеально конечно, но наврятли кому-то придется дорабатывать эту функцию. Вот если бы в обработчике проведения были такие переменные как в этой функции, то можно было бы смело ставить диагноз.
233 Stepa86
 
08.11.11
10:13
(232) а если появиться новая фамилия, которая неправильно отрабатывает, то что делать? Если мне такой код попадется, то перед тем, как его менять, я его буду долго рефакторить
234 Alexandr Puzakov
 
08.11.11
10:13
(230) кхм. А где фирма 1С такое рекомендует?
235 Vetal_978
 
08.11.11
10:15
авнокод из (199) ничем не отличается от байт-кода. :) Выложил бы уж тогда текст бинарника, еще веселей было бы.
236 Alexandr Puzakov
 
08.11.11
10:16
(232) если такой код более чем в 1 функции, то вероятность, что его придется дорабатывать повышается ты количеством кода. И я более чем уверен, что у автора этого кода такие нагромождения сплошь и рядом...
237 Alexandr Puzakov
 
08.11.11
10:18
*повышается с количеством кода
238 smaharbA
 
08.11.11
10:18
(226) с таким "ВНУТРЕННИМ..." начальника можно слать в сад ибо это не соответствует Стандарту ?
Как требовать выполнения правил нарушающих правила ?
239 cViper
 
08.11.11
10:19
(236) Я не всматривался в алгоритм вычисления падежа, но если эта функция отрабатывает как надо, то лезть в нее я бы не стал. Если бы мне потребовалась такая функция, то я бы ее позаимстввовал.(233) Что там долго рефакторить? Заменить z-переменные на другие имена долго?
240 Fish
 
08.11.11
10:21
(243) Во всяком случае, на ВСЕХ сертифицированных курсах 1С преподы говорят именно так: "1С рекомендует делать всё одним большим запросом, а не кучей маленьких" :)) Да хотя бы посмотреть типовые отчеты в ЗУПе, где запросы на несколько страниц :)))
(236) Вы невнимательно читали мой пост (215) :))
(233) А ты проверь её на разные фамилии - будешь удивлён :)))
241 Fish
 
08.11.11
10:23
(243) к (234)
242 Кириллка
 
08.11.11
10:23
(238)Я начальник - ты дурак, Ты начальник - я дурак.
243 Stepa86
 
08.11.11
10:25
(240) то, что я не смогу придумать фамилии, на которой сломается этот алгоритм ни разу не означает, что такой фамилии нет
244 orefkov
 
08.11.11
10:26
(228)
Оно и видно, по (199).
А вы вот в таком ключе не маленькую функцию напишите, а хотя бы что-то уровня УТ, а потом посопровождайте это.
245 smaharbA
 
08.11.11
10:26
(242) согласен )
246 Fish
 
08.11.11
10:28
(243) Я этого и не говорил, конечно она ломается на некоторых сложных составных фамилиях, я только говорил, что эта функа склоняет правильно гораздо больше фамилий, чем та же функа в типовой ЗУП. А склонения профессий в ЗУПе и в помине нету :))
247 Vetal_978
 
08.11.11
10:29
(244) Хотелось бы посмотреть на такое чудо :)
248 Волесвет
 
08.11.11
10:32
они скоро будут просить, чтобы в начале вставлялась презентация твоего кода с няшечками и грудастыми эльфийками + музыка релаксационная для лучшего понимания)))))))
249 Vetal_978
 
08.11.11
10:32
(246) шо вы говорите? Там функции склоняют даже фразы. Практически ИИ :))
250 Fish
 
08.11.11
10:34
(244) Еще раз повторюсь, код не мой, а взят с проклуба, и встречал я его не далеко не в одной конфигурации, которая "1С совместима" :))
(249) Пример приведите, может я плохо искал :)
251 Fish
 
08.11.11
10:34
*не далеко не в одной -> далеко не в одной :))
252 Alexandr Puzakov
 
08.11.11
10:36
(247) не лучше такого не видеть, и *зажмурившись* не дай бог случится сопровождать дорабатывать.
253 Vetal_978
 
08.11.11
10:36
(250)
// Функция склоняет переданую фразу
// Параметры:
//  Фраза (обязательный), тип строка
//   Параметр должен содержать фразу. Каждое слово фразы будет просклонено отдельно
//
//  Падеж (обязательный), тип число
//   Падеж, в который необходимо поставить ФИО.
//   1 - Именительный
//   2 - Родительный
//   3 - Дательный
//   4 - Винительный
//   5 - Творительный
//   6 - Предложный
//
Функция Просклонять(Компонента, Знач Фраза = "", Падеж = 1, Пол = Неопределено, Результат) Экспорт
254 Fish
 
08.11.11
10:42
(253) Про эту функу я и говорил, должности она склонять не умеет правильно, да и с фамилиями у нее большие проблемы :))
И читаем комменты из нее:
// Выделим первые 3 слова, так как компонента не умеет склонять фразу большую 3х символов
Прямо обалдеть какой ИИ :)))
255 Fish
 
08.11.11
10:46
(244) Жаль, что вы не умеете читать внимательно посты. Вас я уважаю, как профессионала за ваши разработки. А по поводу своих разработок уровня УТ, я хвалиться не буду, но те разработки что я писал, работают успешно как минимум на 3-х предприятиях до сих пор, и серьезных доработок пока не требуют :))
256 Mort
 
08.11.11
10:47
(125) И как из цикла выходить?
257 Vladal
 
08.11.11
10:48
(199) А!!! У нас такой же!
Видать, с 2003 года примерно в сети появился этот код.
258 Mort
 
08.11.11
10:49
+(256) Им. ввиду остальные варианты не менее отстойные.
259 Fish
 
08.11.11
10:50
(256) Просто стараться не использовать бесконечные циклы :)))
260 Fish
 
08.11.11
10:52
(256) Или следовать такой рекомендации: "Правильнее считается не использовать операторы прерывания цикла, а возлагать логику управления на условие. Старайтесь организовывать циклы именно так."
261 Mort
 
08.11.11
11:00
(260) Да это понятно, в условие цикла ставится флаг прерывания, а итератор организуется ручками. Один хрен читается хуже чем break.
262 Stepa86
 
08.11.11
11:02
Возврат в середине метода это тот же гото, дада
263 Feanor
 
08.11.11
11:06
бедный оператор гоуту, никто его не любит, даже фирма 1С в своих рекомендациях (хотя не понятно, за каким он тогда был добавлен в платформу)
264 Stepa86
 
08.11.11
11:09
(263) если можно реализовать хитрый алгоритм проще и быстрее с гото и дольше и запутанней без него, то есть смысл пойти по первому пути.
265 Fish
 
08.11.11
11:13
(263) Почему же никто не любит? просто выходить из цикла по GOTO, считается некорректным, и это было задолго до 1С :))
(264) Если бы вы внимательно прочитали книжки, на которые ссылались, то знали бы, почему выходить из цикла по GOTO неправильно :))
266 Feanor
 
08.11.11
11:15
(265).1 не видел ни одного гоуту в работающем код за последние лет этак 10
267 Stepa86
 
08.11.11
11:17
(265) а где я написал, что выходить из цикла по гото корректно? Прервать и Продолжить юзаю там, где это облегчает и жизнь и код и в книжках как раз и рекомендуют головой работать в такие моменты, а не тупо не использовать брейк никогда
ЗЫ ни разу не юзал гото в коде в явном виде
268 Fish
 
08.11.11
11:18
(267) Читаем внимательно: "С точки зрения структурного программирования команды досрочного выхода из цикла и продолжения итерации являются избыточными, поскольку их действие может быть легко смоделировано чисто структурными средствами. Более того, по мнению ряда теоретиков программирования (в частности, Эдсгера Дейкстры), сам факт использования в программе неструктурных средств, будь то классический безусловный переход или любая из его специализированных форм, таких как break или continue, является свидетельством недостаточно проработанного алгоритма решения задачи."


(266) Я видел. Сразу оговорюсь, что код не мой, а то опять набегут и обзовут быдлокодером :))
269 Stepa86
 
08.11.11
11:25
(268) Макконнелл: http://screencast.com/t/RFXYvEeUvL

если не юзать гото, то и не юзать возвраты из середины метода, продолжить и прервать и даже попытка/исключение. Без них можно обойтись в большенстве случаев, но иногда проще и быстрее не делать правильно и долго, а отойти от правила и решить задачу быстро, особенно если нарушение правила не несет в себе никаких проблем
270 Fish
 
08.11.11
11:34
(269) Вы тут приводили много умных фамилий, но судя по (267) даже не знаете, что для компьютера команды GOTO, Break, Continue - суть одно и тоже, т.е. варианты безусловного перехода. Вы хотя бы представляете, в какие команды МАШИННОГО кода преобразуется ваш код на 1С при выполнении, и какие сегменты памяти подо что выделяются? Если бы Вы это представляли, то не говорили бы "нарушение правила не несет в себе никаких проблем". Может они и не критичные, но могут привести к переполнению стека, например. Или попробуйте в 1С запустите бесконечную рекурсию :)) Тут речь идет о том, что если правильно продуман сам алгоритм решения задачи, то можно легко обойтись и без прерывания циклов.
271 cViper
 
08.11.11
11:38
(265) Дейкстра об этом писал.
272 Inform
 
08.11.11
11:45
(222) smaharbA, Вы наверняка "кране" образованный человек, не поленитесь и ответьте пожалуйста на мой вопрос, от которого Вы ушли, в виду того, что я "кране" не образован:

Есть определение стандарта:
СТАНДАРТ — подвид нормативного издания, нормативно-техн. документ, устанавливающий требования к группам однородной продукции (в необходимых случаях и к конкретной продукции), правила ее разработки, производства и применения, а также требования к иным объектам стандартизации.

Под какие слова из определения не попадают стандарты фирмы 1С?

P.S.: не надо так часто упрекать людей в их образовании и компетентности, судя по возрасту Вы уже не молоды, а ведете себя как ребенок.
P.P.S.: если считаете, что фирма 1С совершила оплошность, прошу написать здесь в чем же все таки различия между стандартом и стандартами от 1С и при желании обратиться в саму фирму 1С раз там одни ПТУ-шники, может быть к Вам прислушаются
P.P.P.S.: стандарты 1С - это не только рекомендации по написанию кода, не надо путать.
273 Mort
 
08.11.11
11:45
(270) Переход он есть переход, все описанные ужасы (270) касаются и условных и безусловных переходов. Кроме читабельности и логики структуры ничто не страдает. Если Goto нарушает объектную логику, то "продолжить" в неё вполне вписывается. Неиспльзование "продолжить" приводит к куче условий на всё тело цикла, что выглядит по большей части отвратительно.
274 Stepa86
 
08.11.11
11:47
(270) Перечитайте (269) еще два раза, там как раз и сказано, что под гото можно так же подразумевать. И мне как бэ глубоко пофик в какие именно команды машинного кода преобразуется код, особенно учитывая, что 1С интерпретируемый язык и одна и таже конфа под разными версиями платформы может вызывать разные команды, а закон дырявых абстракций обходить вплоть до машинных кодов вот вообще неохото... Про бесконечную рекурсию прекрасно знаю, и прекрасно умею переписывать любой код без всех эмуляций гото... В вашей конфе размера УТ наверняка нет ни продолжить, ни прервать, ни возвратов в середине, ни попыток/исключения (кроме случаев, когда без них вообще никак)

и вообще ваши нападки выглядят как попытка восстановить свое ЧСВ после (199), это как минимум не профессионально, обсуждайте проблему и ее решение, а не человека
275 Fish
 
08.11.11
11:50
(271) Видимо как раз Дейкстра человек и не читал, не знаю, что говорили по этому поводу Макконелл, Фаулер, Мартин и все, на кого ссылался молодой человек, но мало прочитать книгу, надо её еще и понять, а не имея базовых знаний в компьютерных технологиях, ИМХО, довольно сложно понять про что идет речь.
(273) Не буду с Вами спорить, видимо Вы умнее Дейкстры :))
(274) Для особо тупых - повторю, код в (199) не мой, но мне он кажется вполне нормальным :))
276 Fish
 
08.11.11
11:56
(274) А вообще я на Вас не нападал, просто после поста (199) все, не удосужившись прочитать, откуда мной был взят код, бросились обвинять меня в непрофессионализме и быдлокодерстве. Прочитайте мой пост (215) внимательно.
В топике речь шла о "стандартах 1С", а я всего лишь привел наглядный пример того, как сама 1С или компании, которые 1С совместимы, сами не выполняют этих стандартах.
А по поводу профессионализма могу сказать лишь то, что для настоящего программиста все равно на каком языке писать - на С, Паскале, Ассемблрере или 1С. Главное - правильно продумать алгоритм. Вот Вы, например, на скольких языках, кроме 1С, программируете либо программировали?
277 Feanor
 
08.11.11
12:03
(276) увы, для многих сейчас главное - это подтирка от 1С, ну и знание и почитание "стандартов" от 1С как следствие.
278 Mort
 
08.11.11
12:07
(275) Не умней Дейкстры, но Дейкстра сформировал эти принципы довольно давно, а область не такая постоянная (Бруксу тут больше повезло).

Вот простой пример из книги C++ for real programmers Джефа Элджера:

FreeList* fl = NULL;
for (fl = all_lists; fl != NULL; fl = fl->next)
if (fl->chunk_size == bytes) break;

if (fl == NULL) // Списка для такого размера нет
{....

Интересно бы посмотреть на реализацию без break. Была бы она столь же понятной и короткой.
279 Stepa86
 
08.11.11
12:10
(275) а заказчиков вы тоже оскорбляете, если их не понимаете?
(276) настоящий разработчик не характеризуется количеством изученных языков (до 1С я программировал и на паскале и на си и на с++ и на sql и на матлабе), а скорее качеством решения проблем и количеством проблем после того, как спец. решил проблему.

Относительно (199) у меня вообще подозрение, что код написан специально максимально запутанно и сжато

Относительно Дейкстры: он писал тогда, когда программы писались для компов, а не для людей, сейчас читабельность важнее, чем более правильный код с точки зрения структурного программирования
280 smaharbA
 
08.11.11
12:12
(272) по словам "стандарты фирмы 1С"
281 smaharbA
 
08.11.11
12:14
читаем сабж внимательно и автор тоже
"вводит проверку кода Аудитом на соответствие стандартам разработки"
и не парим мозги "стандартом фирмы 1с"
282 Mort
 
08.11.11
12:16
(281) Приведи пример "стандарта разработки".
283 Mort
 
08.11.11
12:17
+(282) В том смысле, чтобы по этому стандарту можно было отличить быдлокод от хорошего.
284 Fish
 
08.11.11
12:17
(277) Хорошо сказано :))
(278) Да я не против, иногда без этого действительно не обойтись, на самом деле сколько людей, столько и мнений, тут можно спорить хоть до усрачки. :))
(279) Извините, если я Вас чем-то задел :)) Со второй фразой полностью согласен. Просто мне было довольно странно, что я привел пример из конфигурации Раруса, чтобы показать, как 1С или то, что признано "1С совместимо" нарушает свои же стандарты, а на меня сразу стали нападать, как на непрофессионала в программировании. Пока что на качество решенных мной проблем никто еще не жаловался, так что, хоть я не считаю себя "крутым спецом", но в непрофессионализме меня еще никто из заказчиков не обвинял :))
285 smaharbA
 
08.11.11
12:19
(282) не могу, ибо нету такого
286 Mort
 
08.11.11
12:23
(285) Вот и я о том же. Фаулер в №чистом коде№ привел отличие плохого кода от хорошего в виде рисунка, на котором две двери за которыми читают код. Откуда слышно больше матерных слов - тот код хуже.
287 Stepa86
 
08.11.11
12:25
(284) я вас и не обвинял, вот код в (199) - пипец (именно код, даже не автор), разработчик, который решает только то, что написано в тз, не удосуживаясь даже код в порядок привести и шаг влево/вправо все падает с рантаймовой ошибкой - быдлокодер или кодер (в зависимости от херовости кода). То, что Рарус получает 1ССовместимо просто так, эт всем известно (УАТ же тоже совместим, а внутри там адово), я проходил его, утомился вылизывать код изза придирок на ровном месте. И именно вас в непрофессионализме никто не обвинял...

(286) показатель "вотзефак", вроде б называется
288 Starhan
 
08.11.11
12:28
(287) скорее фак пер минутс :)
289 Inform
 
08.11.11
12:29
(280) название стандартов таково: "Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8" (слова "фирма 1С" не фигурируют в названии, это Ваши домыслы)
(279) код приведенный в (199) вряд ли может быть написан с использованием других имен переменных, т.к. если вглядеться - там фигурируют какие-то неопределенные (в русском языке) части слов, поэтому даже если назвать переменные как-то более информативно, смысл не поменяется, а только запутает того, кто будет это дописывать, а в некоторых рарусовских конфах этот код присутствует с нормальным форматированием кстати, не буду показывать пальцем, но кое-где это есть. И вообще этот код наверняка повторяет код компоненты NameDecl, которая используется в типовых.
290 smaharbA
 
08.11.11
12:33
(286) это Ваши слова, но дело не в этом
слова "Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8" - уже нарушают Стандарт, когда они не будут нарушать Стандарт тогда и будут Стандартом. (не ищите в них, к чему придрался - никчему не придрался)
291 Fish
 
08.11.11
12:37
(286) И чем же матерный код "хуже" нематерного? Если процедура названа, например "ТупоЖдатьБл..." и внутри неё просто пустой цикл на определённое кол-во итераций, то в принципе, она подпадает под "стандарты 1с", т.к. название полностью отражает суть :)))
А материться или нет в коде - это моё неотъемлемое право.
Заказчику по барабану - матерный код или нет, заказчику надо, чтобы программа работала так, как он заказывал, а мат в коде его волновать не должен. :))
292 Starhan
 
08.11.11
12:39
(291) ты не уловил сути. речь не про мат в коде а про мат из уст смотрящего в чужой код
293 Fish
 
08.11.11
12:43
(292) А с точки зрения коммерции,то если я пишу коммерческий продукт на продажу, т.к. идеальных методов защиты не существует, то самым действенным является как раз "обфускация" кода, и даже есть куча обработок для этого :))
294 Jofa
 
08.11.11
13:04
Всё чушь если руки кревые то идеально написанный код не будет работать !!!
А стандарт нужен для того чтобы если этот код будет читать другой прог он мог быстро разобраться в этом коде !!
Для того чтобы код работал правильно нужно проверять на коректность использования тех или иных методов !!
295 Alexandr Puzakov
 
08.11.11
13:12
(289) может тот код быть описан "человеческими" словами, не вводите в заблуждение. Есть правила русского языка, они написаны русскими словами, и нигде там не встречается ни обозначений слов на санскрите, ни набора символов вместо слов...
296 Alexandr Puzakov
 
08.11.11
13:15
(290) Вы так и не ответили, по каким-таким магическим законам стандарты от фирмы 1С не могут считаться стандартами?
297 Inform
 
08.11.11
13:18
(295) может конечно, но если заменить "z" на "ЧастьСлова" к примеру, то код от этого более читабельным и понятным не станет
298 Alexandr Puzakov
 
08.11.11
13:18
Есть отрасль, в основе этой отрасли стоит фирма. И уж не этой ли фирме устанавливать стандарты для отрасли?
299 Alexandr Puzakov
 
08.11.11
13:22
(297) эти "часть слова" носят названия "суффиксы" и "окончания". Видоизменения слов также имеют четкое названия.
300 Feanor
 
08.11.11
13:23
(298) есть компьютерная наука, есть множество парадигм, теорий и подходов, а в фирме 1С такие умные ребята сидят, "стандарты" на ура выдают, право, забавно :)
301 Stepa86
 
08.11.11
13:24
(297) там хотя бы с обилием скобок нужно разобраться, а то 10 закрывающихся скобочек как бэ сильно ржут над тобой... я вообще не представляю как алгоритм такой сложности можно записать в таком стиле, чтоб он работал корректно...
ЗЫ хороший программист пишет гениальные вещи простым кодом, а не наоборот (с)
302 Alexandr Puzakov
 
08.11.11
13:24
Корень, приставка, суффикс, окончание - вполне себе определенные слова.
303 Feanor
 
08.11.11
13:29
+(300) это примерно тоже самое, как уважаемая фирма Майкрософт написала бы для своих API "стандарты" и пыталась бы всех разработчиков нагибать на эти стандарты, мотивируя это тем, что она автор этих самых API и лучше всех знает, когда, что и почему нужно использовать. Но вроде от Майкрософт такого "стандарта" нет, или я чего-то не знаю?
304 Alexandr Puzakov
 
08.11.11
13:46
(300) они же платформу написали, кому как ни им устанавливать стандарты разработки?
305 Starhan
 
08.11.11
13:47
Венгерскую нотацию придумал в МС )
правда с выходом .нет сами же от нее отказываются
306 Stepa86
 
08.11.11
13:49
(305) я про нее еще в (174) и (180) написал
307 Starhan
 
08.11.11
13:50
(305) было ответом (303)
308 Stepa86
 
08.11.11
13:54
(307) в ссылке по (180) кратко причины отказа, и венгерскую нотмацию придумали В мс, а стандарты придумала фирма 1С, это немного разные вещи все же... но гуайд стайл вроде б есть для программ под винду, под макось он точно есть
309 Feanor
 
08.11.11
13:58
годный получился вброс :)
310 Stepa86
 
08.11.11
13:58
(309) ты про какой из?
311 Feanor
 
08.11.11
14:01
(310) в целом про ветку
312 Starhan
 
08.11.11
14:16
Куда то потерялся ТС. ) Интересно развитие ситуации. И ответы на его вопросы им же самим.
313 chingiz
 
08.11.11
14:47
А кто пользовался http://infostart.ru/public/77909/ этим Анализатором? Есть авторитетные мнения?
314 Alexandr Puzakov
 
08.11.11
15:27
(313) *басистым голосом*
Я не пользовался.

Авторитетно получилось? :)
315 Inform
 
08.11.11
17:29
(299) разве это:
z7=Прав(z1,3);z8=Прав(z7,2);z9=Прав(z8,1);
похоже на приставку, корень, суффикс или окончание?
P.S.: для морфемного анализа слова совсем недостаточно 1 процедуры на 1 экран
316 _Ramzes
 
08.11.11
22:02
А все начиналось так красиво и легко
317 Inform
 
08.11.11
22:06
(316) однако, никто и не ожидал другого конца :)
319 skunk
 
09.11.11
07:01
(303)если стандартом называть то, что называет много уважаемый Alexandr Puzakov  ... то есть
http://msdn.microsoft.com/en-us/library/aa260976(v=vs.60).aspx


только вот тебе ни кто не предложит убиться об стену если ты с++ напишешь так:

std::string HowKillTheWall(void)
{
Return "like this http://www.eblog.ru/index.php?newsid=1961 "
}
320 Alexandr Puzakov
 
09.11.11
07:49
(315) это не похоже на приставку, суффикс или окончание. Это есть г@внокод. Из которого ничуть не понятно, что же он выполняет и как он работает. Нормальный код должен сам про себя рассказывать, что же он делает...

Вы сейчас отталкиваетесь от этого кода. А у него проблема не только в переменных, он говнисто организован... Переписать его можно в различных вариантах и намного грамотнее, и читабельнее.
321 skunk
 
09.11.11
07:51
(320)хм ... а мне вот было все понятно ... в том числе и как он работает ... что я делаю не так?
322 Alexandr Puzakov
 
09.11.11
07:53
(319) я не понял, это Вы сейчас путем отталкивания от погоды, широты и долготы, и от настроения Васи сантехника пытаетесь вывести, что стандарты от фирмы 1С не могут быть стандартами?
323 Alexandr Puzakov
 
09.11.11
07:54
(321) не надо сказки рассказывать, код построен, что называется "черт голову сломит".
324 skunk
 
09.11.11
07:58
(323)я тебе говорю я прекрасно в нем разобрался ... и даже в году 2006 специалисту по стандартам объяснял как он работает
325 skunk
 
09.11.11
07:58
объяснял рисуя ему блок схемы как на уроках алгоритмического языка
326 Alexandr Puzakov
 
09.11.11
08:03
(324) в таком случае распишите алгоритм его работы по пунктам. Для Вас это не составит труда. Ну или нарисуйте блок-схему, раз уж делали это.
327 skunk
 
09.11.11
08:14
ломает ... да и мне кажеться мало поможет ... как и не помогло в (324) ... программист - это не блок схемы рисовать ... тут думать надо
328 Alexandr Puzakov
 
09.11.11
08:15
(327) все ясно.
329 skunk
 
09.11.11
08:19
(328)давай пойдем другим путем ... напиши анналогичное ... понятным и доступным языком согласно установленных стандартов
330 Alexandr Puzakov
 
09.11.11
08:37
(329) это требует много времени, для начала мне придется изрядно покурить правила русского языка...
331 skunk
 
09.11.11
09:04
(330)мне сказать все ясно ... или намекнуть, что я говорил ... переведи на "стандартный" язык  1С быдлокод про склонение по падежам
332 smaharbA
 
09.11.11
09:14
стандарты от фирмы 1С могут быть стандартами, при соблюдении ряда условий
333 Alexandr Puzakov
 
09.11.11
10:30
(331) видите ли, описать что же делает этот код, знающему, что же делает этот код, будет гораздо проще, чем "с нуля" написать код, который будет выдавать такой же результат.

И не понятно, Вы что, пытаетесь настоять на том, что в данном случае кроме как быдлокодом нельзя было выкрутиться?

(332) каких?
334 Inform
 
09.11.11
10:32
(330) ну, не надо преувеличивать, в любом ховнокоде можно разобраться при желании, тем более в той процедуре с небольшим количеством строк, тем более в том коде используются достаточно простые для понимания операторы.
P.S.: тот код существует уже много лет, может даже со времен клюшек и никто его более понятным языком еще не переписал, может быть Вам повезет...
335 ОбычныйЧеловек
 
09.11.11
10:35
(334) Уверен, что "и никто его более понятным языком еще не переписал" ?!
336 Sammo
 
09.11.11
10:36
(334) Видел в начале 2000, емнип, там шел комментарий автора с 1999 (но могу ошибаться за давностью лет). На 7.7.
В 8-ке, емнип, может решаться другими средствами - dll для склонения.
337 skunk
 
09.11.11
11:06
(336)лучшее данного кода в правильности склонения я пока не видел ... кстати у самого автора есть данные реализации и на других языках
338 Inform
 
09.11.11
11:14
(335) я не видел в общем доступе более читабельного варианта (за исключением структурированного варианта), но мне кажется в этом коде читабельности не прибавить (кроме как отструктурировать), если у Вас есть более читабельный вариант - выложите пожалуйста
339 ОбычныйЧеловек
 
09.11.11
11:24
(338) "если у Вас есть более читабельный вариант..." - алгоритм должен быть таким, что бы в нем не было необходимости вообще разбираться т.е. он написан один раз и на все случаи жизни.

Вот ссылка: http://wiki.kint.ru/index.php/Регистры_правил._Развитие_парадигмы - это теория (а ссылку на реализацию (готовый алгоритм) думаю легко найдете сами)
340 Sammo
 
09.11.11
11:28
(339) Возможно это по второму кругу, но для чего должен быть?
Для чего нужно следовать стандартам:
1. Уменьшение вероятности глупых ошибок.
2. Повышение читабельности кода для его дальнейшего сопровождения и развития (например, в случае, если сменилась команда разработчиков).
Если это не требуется, то допустимо использование кода как черного ящика - вызывается функция, параметры такие, возвращаемое значение такое.
А что внутри - да хоть goto в каждой строке... :)
Так с и приведенным примером, имхо.
341 Кириллка
 
09.11.11
11:32
(340)"...то допустимо использование кода как черного ящика..." - допустимо только в одном единственном случае, когда этот код зашивается в какую-то железку и он там работает до конца свей жизни. Все остальное - успокоение собственного бескультурья.
342 ОбычныйЧеловек
 
09.11.11
11:44
(340) это точно мне? :)
кстати с первым пунктом не согласен, так как одно с другим вообще никак не связано.
343 Inform
 
09.11.11
11:56
(342) в хорошо структурированном коде легче искать ошибки (ни для кого не секрет) => разработчик при написании сразу увидит свои ляпы, исправит => вероятность появления ошибок в хорошем коде меньше :)
Например:
очень много ошибок появляется когда имеется куча вложенных циклов с множеством условий, люди тупо путаются с местом размещения последовательности операторов.
Может и не очень удачный пример, но думаю, суть ясна.