Сторонний аудит кода конфигурации #617386


#0 by Snovy
Отдали нашу нетленку стороннему аудитору (соответствие ТЗ и т.д.). В том числе в заключении нашел раздел по аудиту кода. Обозвали нас непрофессионалами (у нас тоже студенты работают) и привели пример: У нас: Надо по правильному: ИначеЕсли СчетУчетаНоменклатуры.Родитель=ПланыСчетов.Хозрасчетный.Товары Я с одной стороны согласен, но замер производительности в серверном варианте дал картинку (в среднем испытывал раз 10 на разных документах): ИначеЕсли Лев(СчетУчетаНоменклатуры.Код,2)="41" - 0,005145 сек. ИначеЕсли СчетУчетаНоменклатуры.Родитель=ПланыСчетов.Хозрасчетный.Товары - 0, 005285 сек. Т.е. правильный варианот снижает производительность системы почти на 3%? Рассудите - ответ матерный писать аудиторам или ласковый?
#0 by Snovy
Отдали нашу нетленку стороннему аудитору (соответствие ТЗ и т.д.). В том числе в заключении нашел раздел по аудиту кода. Обозвали нас непрофессионалами (у нас тоже студенты работают) и привели пример: У нас: Надо по правильному: ИначеЕсли СчетУчетаНоменклатуры.Родитель=ПланыСчетов.Хозрасчетный.Товары Я с одной стороны согласен, но замер производительности в серверном варианте дал картинку (в среднем испытывал раз 10 на разных документах): ИначеЕсли Лев(СчетУчетаНоменклатуры.Код,2)="41" - 0,005145 сек. ИначеЕсли СчетУчетаНоменклатуры.Родитель=ПланыСчетов.Хозрасчетный.Товары - 0, 005285 сек. Т.е. правильный варианот снижает производительность системы почти на 3%? Рассудите - ответ матерный писать аудиторам или ласковый?
#1 by Krendel
У вас должен быть регламент проведения аудита, какие замеры делались, что проверялось, на каких правилах основывалось ;-)
#2 by Smit1C
а для чего отдавали на аудит ? небось и денег им заплатили...
#3 by Snovy
Не у нас - мне дали документ в котором я вижу пример хреновости. Мне нужно написать ответ. Хотел было согласиться и исправить замечания, но... Вот такое но! Теперь думаю, может мне не нужно объясняться, а просто отправить их лесом и замерить производительность, прежде чем писать "что при таком коде страдает производительность..."?
#4 by Snovy
Не мы отдавали - Заказчик отдавал...
#5 by andrewks
с одной стороны, они правы. а с другой стороны - для нетленки вполне нормально
#6 by Snovy
В чем правы?
#7 by eses
Причем тут скорость ?
#8 by andrewks
думаю, резон такой: завтра сменят коды в плане счетов, например, вместо 41 сделают 041, и всё, поплыла нетленка
#9 by eses
первая строчка - гавн0код , вторая грамотное сравнение
#10 by IamAlexy
напиши следующее: "Как профессионалы с многолетним опытом работы мы в курсе рекомендаций 1С по поводу оформления кода и прочих методик разработки, так же мы знаем как методологически более правильно решаются те или иные задачи. Но в целях повышения быстродействия системы мы намерено применяем не совсем методологически верные решения так как по нашим тестам оные дают прирост производительности системы"
#11 by IamAlexy
вероятность ровно такая же как если они сменят подчиненность счета
#12 by Snovy
Нетленка - тирах на всю страну для бух.учета, нал. учета, консолидированной и управленческой отчетности всей (ого-го). Плюс плнируется всю (ого-го) перевести на нетленку с соответствующими дальнейшими доработками и оставить САП только в самой (ого-го). Поэтому и аудит и вся прочая хрень (документация, тех.проект и т.д. и т.п.)
#13 by Mnemonic1C
Забиваете гвозди не правильными молотками, или на оборот, как там... хотя я бы выбрал вариант кода все таки 2
#14 by Snovy
Здорово. Преклоняюсь... Простите, ссылку на копирайт в тесте ответа вставлять не буду...
#15 by IamAlexy
не надо :) не обижусь.
#16 by experimentator76
ну во первых - замер производителности после цикла 1000 делается во вторых правильно
#17 by Snovy
Я согласен. Но эта строчка быстрее работает, чем "кошерный код".
#18 by experimentator76
аудиторы плин))
#19 by Конфигуратор1с
а аудиторы по какому принципу выбирались?
#20 by IamAlexy
а на будущее все же г.внокод оставлять неследует :) вам тупо повезло что это работает быстрее реокмендованного кода, собственно по этому есть возможность очень красиво "отмазаться" и макнуть аудиторов головой в фекальки.. типа "вы, как теоретические специалисты не разрабатыввающие решения для реальной работы на реальных предприятиях конечно можете придераться к неточному соблюдению теории, но практика показывает что иногда от общепринятых теорий стоит отходить" бгыыыы а ведь верно... исправляй на: "Как профессионалы с многолетним опытом работы мы в курсе рекомендаций 1С по поводу оформления кода и прочих методик разработки, в частности мы знаем что правильно данный участок кода должен выглядеть так: так же мы знаем как методологически более правильно решаются некоторые остальные задачи. Но в целях повышения быстродействия системы мы намерено применяем не совсем методологически верные решения так как по нашим тестам оные дают прирост производительности системы" мокните их в фекальки поглубже...иш, непрофессионалами обзываются ироды
#21 by Asmody
за код Лев(СчетУчетаНоменклатуры.Код,2)="41"  надо руки отрывать
#22 by Snovy
- 0,005453 - документы почти все с одной двуся строками. Еще медленнее...
#23 by ks_83
позорище
#24 by experimentator76
))) дада - помакать студентов в гагно милое дело)
#25 by IamAlexy
иш.. распечатали рекомендации с ИТС и пошли аудитить...
#26 by Asmody
[снижает производительность системы почти на 3%] — за такие утверждения на таких тестах тоже
#27 by andrewks
по законам жанра следующий выход за гоуту
#28 by AlexTim03
Вариант аудиторов правильный, но падение производительности с 0,0052 на 0,0051 - это вообще ничто. Меньше сотой секунды вообще не смысла в оптимизации - только время тратить
#29 by experimentator76
в контексте 8.2 обращение через точку к реквизитам приводит к расстрелу прога так что метод - лучше а еще лучше все это перенести в запрос и там сравнивать)
#30 by IamAlexy
да автор сразу сказал что там у них студенты пишут.. другое дело что в этом конкретном примере автору повезло и он может отмазаться :)
#31 by Snovy
- Что не так? Прошу учесть - разовая специфичная процедура в одном документе - по требованию заказчика весь учет НДС разбит на самые мелкие типы учета - товары, спецодежда, материалы, топливо, ОС, оборудование, НМА, РБП, просто услуги, ТЗР и т.д. - приходится по счету ловить принадлежность... Очень мелкая мелочь...
#32 by experimentator76
ты по одному доку смотришь время?
#33 by Asmody
за сравнение значения объекта учета с константой или, по-научному, за "хардкодинг"
#34 by Snovy
ОК. Я не против. Я согласен. Я ккаждому причастному кодеру завтра вставлю по первое число (жалко первое число уже недалеко, сегодня 26...). Но тем не менее - красота и правильность кода и все-таки снижение производительности, пусть и милисекундное - ???
#35 by experimentator76
он уперся
#36 by andrewks
не с константой, а с литералом
#37 by experimentator76
ну тады в студию с чем не повезло автору))
#38 by Snovy
Нет, я разные доки гоняю. Общая тенденция одна. Неправильный код быстрее, чем правильный в общем случае. Всегда быстрее, только милисекунды пляшут...
#39 by experimentator76
забалансовый "410" введут ручками и каюк проге))
#40 by Snovy
Прикол - это единственный пример в заключении...
#41 by experimentator76
щас твои 22 на кону
#42 by IamAlexy
нужно выбирать то что выгодно лично тебе аудиторам выгодно чтобы "красота и правильность" - они покажут что не зря аудители конфу и нашли "типа недочеты" тебе выгодно быстродействие - ибо ты отмажешся от претензий но будь готов что найдут других косяков которые не дадут выигрыша по быстродействию...
#43 by IamAlexy
ыыыыыыыыыы ну тогда полюбому исправленный текст из
#44 by IamAlexy
гильотина уже взведена ?
#45 by experimentator76
это некрасивость - это семерочность лезет)
#46 by experimentator76
с новой платформой показатели производительности могут поменяться на том же коде
#47 by andrewks
кстати, а нетленка-то на УФ, или на обычных?
#48 by experimentator76
у того гения что им аудит навязал надо спросить)
#49 by Snovy
Прицепились к тому, чтю в каждом документе своя процедура контроля, а нужно использовать типовую универсальную и передавать в нее структуру реквизитов для проверки. Но там отмазка есть нормальная - при нетиповых документах типовая универсальная процедура превращается в выдачу сообщений, все равно по операциям и сюжету документа нужно ее готовить в каждом случае по разному... Ну и беда всех начинающих программистов - в модулях документов и обработок вставить вопрос или предупреждение :).
#50 by experimentator76
намекни аудиторам что отсутсвие результат тоже результат и что ты знаешь три варианта решения когда они удивленно спросят - открой ПринадлежитЭлементу в СП
#51 by experimentator76
при проведении вопросов у тебя не задает?))
#52 by Snovy
Т.е. все таки главный совет - принять замечание и покаяться, указать срок исправления? Или все-таки в ответе написать - сами вы козлы?
#53 by experimentator76
= >
#54 by IamAlexy
следовать типовым рекомендациям не всегда следует.. простой пример:
#55 by experimentator76
имхо по производительности ни к чему упираться - мала разница
#56 by Snovy
Нет Это процедуры заполнения форм, вынесенные в модули. Ну и вопросы :) Соответственно серверная проверка ругается. Кстати - конфа уже с января на пяти предприятиях пилотниках работает на серверах - ошибок не выскакивает...
#57 by experimentator76
кроме того ты несколько раз сделай замер и все поймешь
#58 by experimentator76
директивы препроцессору вставь - не придерутся типа - а вдруг на клиенте будут работать
#59 by Snovy
Я же написал - что несколько раз делаю замеры. Мне не нужны абсолютные цифры. Мне нужна тенденция...
#60 by experimentator76
ну мне тут больше делать нечего - успехов!
#61 by Конфигуратор1с
ну главный совет покаятся, при этом подколов проверяющих на предмет их некомпетентности
#62 by IamAlexy
да напиши ты им письмо типа а далее я бы все же поправил на канонический вид код..
#63 by Snovy
Вот целый день сегодня студенты и вставляли. Зато сейчас красота... Я вот думаю. Оставить ошибки, которые из типовой основы лезут или тоже править?
#64 by andrewks
например?
#65 by andrewks
четыре. ещё запросом можно
#66 by experimentator76
=> самый оптимальный вариант но ТС врядли решится переписать да и для аудиторов это будет шоком навреное)
#67 by experimentator76
пожалуй соглашусь со второй частью письма
#68 by experimentator76
#69 by Snovy
Проверка конфигурации, включить все флаги. Смотреть типовую. Нам так и сделали... выползли наши ошибки и куча типовых. Это все в приложении выставили нам. Мы по ТЗ на основе КОРП делали...
#70 by andrewks
шок - это по-нашему.  по крайней мере, пусть ТС замеры этого варианта тоже произведёт.
#71 by IamAlexy
бгыыыыыы я бы у них попросил пример типовой конфигурации где подобная проверка бы не выдала бы никаких ошибок...
#72 by experimentator76
дада интересно я бы вынес эту функцию в серверный модуль и реализовал ПринадлежитЭлементу запросом хотя бы до второго родителя вложенностью
#73 by Snovy
А вообще - аудитор - нексия пачоли консалтинг.
#74 by experimentator76
спроси между делом - сколько аудитору платят а то у меня второе аудит) + 1С наверное будет от 200 тыщ)
#75 by Snovy
А оно мне надо?
#76 by experimentator76
правильно - это надо мне... можно забить
#77 by experimentator76
чет я у них не нашел услуги такой есть только Консультации по созданию, развитию и модернизации учетных систем             Контактное лицо: Данилова Ольга Владимировна • постановка и внедрение корпоративной системы единых стандартов бухгалтерского учета, как в отношении всего учета, так и по отдельным его элементам (Основные средства, дебиторская задолженность и т.п.) • разработка единого рабочего плана счетов  и инструкций по его применению для холдингов, позволяющего всем членам холдингов формировать аналитические данные в едином формате • разработка единых принципов учетной политики по бухгалтерскому учету, являющихся базовыми методическими документами, регулирующими ведение учета всеми предприятиями холдинга • постановка и внедрение единой системы методологии организации и ведения налогового учета, с учетом отраслевой спецификации и структуры холдинга. Разработка документации по налоговому учету (ПБУ 18/02)
#78 by experimentator76
если по договору от них не требовалось такой услуги то это суть - навязывание услуги
#79 by Сияющий Асинхраль
По поводу если, думаю, аудиторы правы, а вот все проверки для разных доков в одном модуле делать не люблю очень. Мне ближе подход семерочной бухи - надо поменять док - его и меняешь, а не изучаешь код на несколько тысяч строчек с целью определить в каком доке твои изменения могут отозваться
#80 by Snovy
Так и у нас - в каждом доке своя проверка в зависимости от специфики документа. А то что в каждом доке нужно проверять наличие заполненгости даты и организации - так копи-паст спасает. К этому и придрались...
#81 by Snovy
Мы субподрядчики у 1С для разработки нетленки. 1С закрыла глаза - делайте что хотите - деньги вам, слава нам.. Заказчик - куча департаментов, скидывающих ответственность друг на друга. Я даже не знаю, сколько нам платят за этот проект. Мне как-то фиолетово. Мое дело - что бы работало и было лучше, чем типовая подделка...
#82 by Snovy
Типовая КОРП дает 955 ошибок (не влияющих на работу конфы) при проверке конфигурации. Хорошо, что мы почти две трети типовых документов из конфы усрели удалить - нам выставили меньше ошибок...
#83 by Сияющий Асинхраль
сам грешу таким подходом, поэтому покаялся бы и оставил все как есть - таким подходом тоже грешу :-)
#84 by ПиН
отличный быдлокод, никаких проблем не вижу... аудиторы малолетние далба..ы
#85 by Krendel
Вот у Вас проблема какая? Показать что вы крутой специалист(свой нрав или что? Цель аудита какая- получить 2-е мнение о состоянии продукта- вполне себе благовидная цель. Вам указали что это нечитаемый код- вполне обосновано, ибо надо залазить и смотреть процедуру. Хотите быть лучшим стрелком на деревне- пошлите нахер аудиторов, скажите что такие преписки нахрен не нужны, и вы просто потеряли время и деньги. И я уверен что вашу конфу до битов разберут, уточняя отчет. Или скажите нейтрально что они не критичны и на работу не влияют. хотя несколько методов мы возьмем на вооружение- и будете спокойно работать дальше
#86 by orefkov
У аудитора не хватает на новую ауди, и детки голодные сидят. Понять и простить.
#87 by Snovy
Да не собираюсь я бодаться за то, что я самый лучший... Я обычный... И контора моя обычная... За три месяца запустить тиражный продукт, окгда все говорили, что будет опытная эксплуатация, а один из из пилотов ушел сам по себе в промышленную? И все силы были брошены на поддержку пром. эксплуатации системы... А остальные тоже сказали - ваша конфа фигня, но она лучше, чем вся остальная фигня и тоже перешли на пром. эксплуатацию раньше срока. А потом вываливают заключение о соответствии конфы ТЗ, хотя как водится - это ТЗ никто не читал и в нем тупое описание БП КОРП, даже за уши не притянутое к тому, что нужно было делать.? Теперь нужно аккуратно отмазаться. Я привел только пример одной странички. остальное я сам разберу... Основное лежит в другой поверхности - мы не успели сделать то, что на фиг никому не нужно :)
#88 by Krendel
ТОгда есть реальный шанс увеличить бюджет
#89 by rs_trade
копрокодить ради сомнительных 3%. бугагага. аудиторы правы.
#90 by rs_trade
было бы 30%, правы были бы вы.
#91 by quest
немного некоретная постановка вопроса. Ты не сказал - как этот этот счет появляется в докуметнте. вводит ли его пользователь или он присваивается как константа.  Ведь счет счет 50.41 тоже пройдет эту проверку. И не факт что этому будут рады твои клиенты...
#92 by ПиН
ггг, не пройдет...
#94 by Stepa86
оооо, волшебные значения в коде... такое надо или инкапсулировать или переписывать по нормальному, как в если это единственный пример аудиторов, то херовые они аудиторы, я могу придраться почти к любому коду, просто прагматичный код и качественный код - разные вещи, и конфа по проверке на 1С:Совместимо в моей нетленке находит где то 6000 ошибок, на 60клоков то, из которых я не нашел ни одной достаточно серьезной, чтоб переписать. По поводу обращения через точку - давно использую функции глРеквизит( Ссылка, Путь ) и глРеквизит_Кэш( Ссылка, Путь ), которые могут весьма сильно повысить производительность при обращении через точку
#95 by orefkov
А чем принципиально отличается "ПланыСчетов.Хозрасчетный.Товары" от "41" ? Все это магические слова в коде. Тогда бы уж хотя бы омНазначенияСчетов.ЭтоСчетУчетаТоваров(СчетУчетаНоменклатуры);
#96 by Stepa86
вот не поверю, что ты не знаешь, почему не рекомендуется использовать волшебные числа в коде (не нельзя, а не рекомендуется) это я и называю инкапсулированием, а как внутри считается - вообще пох
#97 by Конфигуратор1с
+100500 что один вариант, что второй - при изменении в плане счетов (не знаю как в России, но в Украине раз в год что нибудь та меняют ) все равно придется перелопачивать весь программный код, а так вынесли в общий модуль процедуру и радуемся жизни
#98 by Конфигуратор1с
видел одну конфу, где все проводки вынесены вообще в справочник и пользователь сам как хочет так и корректирует их. Правда конфа на 7ке.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С