|
Сторонний аудит кода конфигурации | ☑ | ||
---|---|---|---|---|
0
Snovy
26.06.12
✎
22:46
|
Отдали нашу нетленку стороннему аудитору (соответствие ТЗ и т.д.). В том числе в заключении нашел раздел по аудиту кода. Обозвали нас непрофессионалами (у нас тоже студенты работают) и привели пример:
У нас: ИначеЕсли Лев(СчетУчетаНоменклатуры.Код,2)="41" Надо по правильному: ИначеЕсли СчетУчетаНоменклатуры.Родитель=ПланыСчетов.Хозрасчетный.Товары Я с одной стороны согласен, но замер производительности в серверном варианте дал картинку (в среднем испытывал раз 10 на разных документах): ИначеЕсли Лев(СчетУчетаНоменклатуры.Код,2)="41" - 0,005145 сек. ИначеЕсли СчетУчетаНоменклатуры.Родитель=ПланыСчетов.Хозрасчетный.Товары - 0, 005285 сек. Т.е. правильный варианот снижает производительность системы почти на 3%? Рассудите - ответ матерный писать аудиторам или ласковый? |
|||
1
Krendel
26.06.12
✎
22:48
|
У вас должен быть регламент проведения аудита, какие замеры делались, что проверялось, на каких правилах основывалось ;-)
|
|||
2
Smit1C
26.06.12
✎
22:49
|
(0) а для чего отдавали на аудит ? небось и денег им заплатили...
|
|||
3
Snovy
26.06.12
✎
22:50
|
Не у нас - мне дали документ в котором я вижу пример хреновости. Мне нужно написать ответ. Хотел было согласиться и исправить замечания, но... Вот такое но! Теперь думаю, может мне не нужно объясняться, а просто отправить их лесом и замерить производительность, прежде чем писать "что при таком коде страдает производительность..."?
|
|||
4
Snovy
26.06.12
✎
22:51
|
(2) Не мы отдавали - Заказчик отдавал...
|
|||
5
andrewks
26.06.12
✎
22:51
|
с одной стороны, они правы.
а с другой стороны - для нетленки вполне нормально |
|||
6
Snovy
26.06.12
✎
22:52
|
(5) В чем правы?
|
|||
7
eses
26.06.12
✎
22:52
|
Причем тут скорость ?
|
|||
8
andrewks
26.06.12
✎
22:53
|
думаю, резон такой: завтра сменят коды в плане счетов, например, вместо 41 сделают 041, и всё, поплыла нетленка
|
|||
9
eses
26.06.12
✎
22:53
|
первая строчка - гавн0код , вторая грамотное сравнение
|
|||
10
IamAlexy
26.06.12
✎
22:54
|
(4) напиши следующее:
"Как профессионалы с многолетним опытом работы мы в курсе рекомендаций 1С по поводу оформления кода и прочих методик разработки, так же мы знаем как методологически более правильно решаются те или иные задачи. Но в целях повышения быстродействия системы мы намерено применяем не совсем методологически верные решения так как по нашим тестам оные дают прирост производительности системы" |
|||
11
IamAlexy
26.06.12
✎
22:54
|
(8) вероятность ровно такая же как если они сменят подчиненность счета
|
|||
12
Snovy
26.06.12
✎
22:54
|
(5) Нетленка - тирах на всю страну для бух.учета, нал. учета, консолидированной и управленческой отчетности всей (ого-го). Плюс плнируется всю (ого-го) перевести на нетленку с соответствующими дальнейшими доработками и оставить САП только в самой (ого-го). Поэтому и аудит и вся прочая хрень (документация, тех.проект и т.д. и т.п.)
|
|||
13
Mnemonic1C
26.06.12
✎
22:54
|
(0) Забиваете гвозди не правильными молотками, или на оборот, как там... хотя я бы выбрал вариант кода все таки 2
|
|||
14
Snovy
26.06.12
✎
22:56
|
(10) Здорово. Преклоняюсь... Простите, ссылку на копирайт в тесте ответа вставлять не буду...
|
|||
15
IamAlexy
26.06.12
✎
22:56
|
(14) не надо :) не обижусь.
|
|||
16
experimentator76
26.06.12
✎
22:58
|
(0) ну во первых - замер производителности после цикла 1000 делается
во вторых правильно ИначеЕсли СчетУчетаНоменклатуры.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.Товары) Тогда |
|||
17
Snovy
26.06.12
✎
22:58
|
(9) Я согласен. Но эта строчка быстрее работает, чем "кошерный код".
|
|||
18
experimentator76
26.06.12
✎
22:59
|
аудиторы плин))
|
|||
19
Конфигуратор1с
26.06.12
✎
23:00
|
а аудиторы по какому принципу выбирались?
|
|||
20
IamAlexy
26.06.12
✎
23:00
|
(14) а на будущее все же г.внокод оставлять неследует :)
вам тупо повезло что это работает быстрее реокмендованного кода, собственно по этому есть возможность очень красиво "отмазаться" и макнуть аудиторов головой в фекальки.. типа "вы, как теоретические специалисты не разрабатыввающие решения для реальной работы на реальных предприятиях конечно можете придераться к неточному соблюдению теории, но практика показывает что иногда от общепринятых теорий стоит отходить" (16) бгыыыы а ведь верно... (0) исправляй (10) на: "Как профессионалы с многолетним опытом работы мы в курсе рекомендаций 1С по поводу оформления кода и прочих методик разработки, в частности мы знаем что правильно данный участок кода должен выглядеть так: ИначеЕсли СчетУчетаНоменклатуры.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.Товары) Тогда так же мы знаем как методологически более правильно решаются некоторые остальные задачи. Но в целях повышения быстродействия системы мы намерено применяем не совсем методологически верные решения так как по нашим тестам оные дают прирост производительности системы" мокните их в фекальки поглубже...иш, непрофессионалами обзываются ироды |
|||
21
Asmody
26.06.12
✎
23:01
|
(0) за код Лев(СчетУчетаНоменклатуры.Код,2)="41" надо руки отрывать
|
|||
22
Snovy
26.06.12
✎
23:01
|
(16) - 0,005453 - документы почти все с одной двуся строками. Еще медленнее...
|
|||
23
ks_83
26.06.12
✎
23:02
|
позорище
|
|||
24
experimentator76
26.06.12
✎
23:02
|
(20)))) дада - помакать студентов в гагно милое дело)
|
|||
25
IamAlexy
26.06.12
✎
23:03
|
(24) иш.. распечатали рекомендации с ИТС и пошли аудитить...
|
|||
26
Asmody
26.06.12
✎
23:03
|
[снижает производительность системы почти на 3%] — за такие утверждения на таких тестах тоже
|
|||
27
andrewks
26.06.12
✎
23:03
|
по законам жанра следующий выход за гоуту
|
|||
28
AlexTim03
26.06.12
✎
23:03
|
Вариант аудиторов правильный, но падение производительности с 0,0052 на 0,0051 - это вообще ничто. Меньше сотой секунды вообще не смысла в оптимизации - только время тратить
|
|||
29
experimentator76
26.06.12
✎
23:04
|
(22) в контексте 8.2 обращение через точку к реквизитам приводит к расстрелу прога
так что метод - лучше а еще лучше все это перенести в запрос и там сравнивать) |
|||
30
IamAlexy
26.06.12
✎
23:04
|
(26) да автор сразу сказал что там у них студенты пишут..
другое дело что в этом конкретном примере автору повезло и он может отмазаться :) |
|||
31
Snovy
26.06.12
✎
23:04
|
(21) - Что не так? Прошу учесть - разовая специфичная процедура в одном документе - по требованию заказчика весь учет НДС разбит на самые мелкие типы учета - товары, спецодежда, материалы, топливо, ОС, оборудование, НМА, РБП, просто услуги, ТЗР и т.д. - приходится по счету ловить принадлежность... Очень мелкая мелочь...
|
|||
32
experimentator76
26.06.12
✎
23:05
|
(22) ты по одному доку смотришь время?
|
|||
33
Asmody
26.06.12
✎
23:06
|
(31) за сравнение значения объекта учета с константой или, по-научному, за "хардкодинг"
|
|||
34
Snovy
26.06.12
✎
23:07
|
ОК. Я не против. Я согласен. Я ккаждому причастному кодеру завтра вставлю по первое число (жалко первое число уже недалеко, сегодня 26...). Но тем не менее - красота и правильность кода и все-таки снижение производительности, пусть и милисекундное - ???
|
|||
35
experimentator76
26.06.12
✎
23:08
|
(28) он уперся (22)
|
|||
36
andrewks
26.06.12
✎
23:08
|
(33) не с константой, а с литералом
|
|||
37
experimentator76
26.06.12
✎
23:09
|
(30) ну тады в студию с чем не повезло автору))
|
|||
38
Snovy
26.06.12
✎
23:09
|
(32) Нет, я разные доки гоняю. Общая тенденция одна. Неправильный код быстрее, чем правильный в общем случае. Всегда быстрее, только милисекунды пляшут...
|
|||
39
experimentator76
26.06.12
✎
23:10
|
(0) забалансовый "410" введут ручками и каюк проге))
|
|||
40
Snovy
26.06.12
✎
23:10
|
(37) Прикол - это единственный пример в заключении...
|
|||
41
experimentator76
26.06.12
✎
23:10
|
(31) щас твои 22 на кону
|
|||
42
IamAlexy
26.06.12
✎
23:11
|
(34) нужно выбирать то что выгодно лично тебе
аудиторам выгодно чтобы "красота и правильность" - они покажут что не зря аудители конфу и нашли "типа недочеты" тебе выгодно быстродействие - ибо ты отмажешся от претензий но будь готов что найдут других косяков которые не дадут выигрыша по быстродействию... |
|||
43
IamAlexy
26.06.12
✎
23:11
|
(40) ыыыыыыыыыы
ну тогда полюбому исправленный текст из (20) |
|||
44
IamAlexy
26.06.12
✎
23:11
|
(41) гильотина уже взведена ?
|
|||
45
experimentator76
26.06.12
✎
23:11
|
(34) это некрасивость - это семерочность лезет)
|
|||
46
experimentator76
26.06.12
✎
23:12
|
(38) с новой платформой показатели производительности могут поменяться на том же коде
|
|||
47
andrewks
26.06.12
✎
23:13
|
кстати, а нетленка-то на УФ, или на обычных?
|
|||
48
experimentator76
26.06.12
✎
23:14
|
(44) у того гения что им аудит навязал надо спросить)
|
|||
49
Snovy
26.06.12
✎
23:15
|
(43) Прицепились к тому, чтю в каждом документе своя процедура контроля, а нужно использовать типовую универсальную и передавать в нее структуру реквизитов для проверки. Но там отмазка есть нормальная - при нетиповых документах типовая универсальная процедура превращается в выдачу сообщений, все равно по операциям и сюжету документа нужно ее готовить в каждом случае по разному... Ну и беда всех начинающих программистов - в модулях документов и обработок вставить вопрос или предупреждение :).
|
|||
50
experimentator76
26.06.12
✎
23:15
|
(0) намекни аудиторам что отсутсвие результат тоже результат и что ты знаешь три варианта решения
когда они удивленно спросят - открой ПринадлежитЭлементу в СП |
|||
51
experimentator76
26.06.12
✎
23:17
|
(49) при проведении вопросов у тебя не задает?))
|
|||
52
Snovy
26.06.12
✎
23:18
|
Т.е. все таки главный совет - принять замечание и покаяться, указать срок исправления? Или все-таки в ответе написать - сами вы козлы?
|
|||
53
experimentator76
26.06.12
✎
23:19
|
(52) = > (50)
|
|||
54
IamAlexy
26.06.12
✎
23:19
|
(49) следовать типовым рекомендациям не всегда следует..
простой пример: БСП: Подсистема "Запрет редактирования реквизитов" тормозит просто жутко |
|||
55
experimentator76
26.06.12
✎
23:19
|
имхо по производительности ни к чему упираться - мала разница
|
|||
56
Snovy
26.06.12
✎
23:19
|
(51) Нет Это процедуры заполнения форм, вынесенные в модули. Ну и вопросы :) Соответственно серверная проверка ругается. Кстати - конфа уже с января на пяти предприятиях пилотниках работает на серверах - ошибок не выскакивает...
|
|||
57
experimentator76
26.06.12
✎
23:20
|
кроме того ты несколько раз сделай замер и все поймешь
|
|||
58
experimentator76
26.06.12
✎
23:22
|
(56) директивы препроцессору вставь - не придерутся
типа - а вдруг на клиенте будут работать |
|||
59
Snovy
26.06.12
✎
23:22
|
(57) Я же написал - что несколько раз делаю замеры. Мне не нужны абсолютные цифры. Мне нужна тенденция...
|
|||
60
experimentator76
26.06.12
✎
23:23
|
ну мне тут больше делать нечего - успехов!
|
|||
61
Конфигуратор1с
26.06.12
✎
23:23
|
(52)ну главный совет покаятся, при этом подколов проверяющих на предмет их некомпетентности
|
|||
62
IamAlexy
26.06.12
✎
23:23
|
(59) да напиши ты им письмо типа (20) а далее я бы все же поправил на канонический вид код..
|
|||
63
Snovy
26.06.12
✎
23:23
|
(58) Вот целый день сегодня студенты и вставляли. Зато сейчас красота... Я вот думаю. Оставить ошибки, которые из типовой основы лезут или тоже править?
|
|||
64
andrewks
26.06.12
✎
23:24
|
(63) например?
|
|||
65
andrewks
26.06.12
✎
23:25
|
(50) четыре. ещё запросом можно
|
|||
66
experimentator76
26.06.12
✎
23:26
|
(65) => (29)
самый оптимальный вариант но ТС врядли решится переписать да и для аудиторов это будет шоком навреное) |
|||
67
experimentator76
26.06.12
✎
23:27
|
(63) пожалуй соглашусь со второй частью письма
|
|||
68
experimentator76
26.06.12
✎
23:27
|
(67)(62)
|
|||
69
Snovy
26.06.12
✎
23:29
|
(64) Проверка конфигурации, включить все флаги. Смотреть типовую. Нам так и сделали... выползли наши ошибки и куча типовых. Это все в приложении выставили нам. Мы по ТЗ на основе КОРП делали...
|
|||
70
andrewks
26.06.12
✎
23:31
|
(66) шок - это по-нашему. по крайней мере, пусть ТС замеры этого варианта тоже произведёт.
|
|||
71
IamAlexy
26.06.12
✎
23:32
|
(69) бгыыыыыы
я бы у них попросил пример типовой конфигурации где подобная проверка бы не выдала бы никаких ошибок... |
|||
72
experimentator76
26.06.12
✎
23:32
|
(70) дада интересно
я бы вынес эту функцию в серверный модуль и реализовал ПринадлежитЭлементу запросом хотя бы до второго родителя вложенностью |
|||
73
Snovy
26.06.12
✎
23:33
|
А вообще - аудитор - нексия пачоли консалтинг.
|
|||
74
experimentator76
26.06.12
✎
23:34
|
(73) спроси между делом - сколько аудитору платят
а то у меня второе аудит) + 1С наверное будет от 200 тыщ) |
|||
75
Snovy
26.06.12
✎
23:35
|
(74) А оно мне надо?
|
|||
76
experimentator76
26.06.12
✎
23:39
|
(75) правильно - это надо мне... можно забить
|
|||
77
experimentator76
26.06.12
✎
23:41
|
чет я у них не нашел услуги такой
есть только Консультации по созданию, развитию и модернизации учетных систем Контактное лицо: Данилова Ольга Владимировна заместитель генерального директора телефон +7 (495) 640-64-52 [email protected] • постановка и внедрение корпоративной системы единых стандартов бухгалтерского учета, как в отношении всего учета, так и по отдельным его элементам (Основные средства, дебиторская задолженность и т.п.) • разработка единого рабочего плана счетов и инструкций по его применению для холдингов, позволяющего всем членам холдингов формировать аналитические данные в едином формате • разработка единых принципов учетной политики по бухгалтерскому учету, являющихся базовыми методическими документами, регулирующими ведение учета всеми предприятиями холдинга • постановка и внедрение единой системы методологии организации и ведения налогового учета, с учетом отраслевой спецификации и структуры холдинга. Разработка документации по налоговому учету (ПБУ 18/02) |
|||
78
experimentator76
26.06.12
✎
23:42
|
если по договору от них не требовалось такой услуги то это суть - навязывание услуги
можно пободаться |
|||
79
Сияющий Асинхраль
26.06.12
✎
23:48
|
По поводу если, думаю, аудиторы правы, а вот все проверки для разных доков в одном модуле делать не люблю очень. Мне ближе подход семерочной бухи - надо поменять док - его и меняешь, а не изучаешь код на несколько тысяч строчек с целью определить в каком доке твои изменения могут отозваться
|
|||
80
Snovy
26.06.12
✎
23:51
|
(79) Так и у нас - в каждом доке своя проверка в зависимости от специфики документа. А то что в каждом доке нужно проверять наличие заполненгости даты и организации - так копи-паст спасает. К этому и придрались...
|
|||
81
Snovy
26.06.12
✎
23:54
|
(78) Мы субподрядчики у 1С для разработки нетленки. 1С закрыла глаза - делайте что хотите - деньги вам, слава нам.. Заказчик - куча департаментов, скидывающих ответственность друг на друга. Я даже не знаю, сколько нам платят за этот проект. Мне как-то фиолетово. Мое дело - что бы работало и было лучше, чем типовая подделка...
|
|||
82
Snovy
26.06.12
✎
23:58
|
(64) Типовая КОРП дает 955 ошибок (не влияющих на работу конфы) при проверке конфигурации. Хорошо, что мы почти две трети типовых документов из конфы усрели удалить - нам выставили меньше ошибок...
|
|||
83
Сияющий Асинхраль
26.06.12
✎
23:58
|
(80) сам грешу таким подходом, поэтому покаялся бы и оставил все как есть - таким подходом тоже грешу :-)
|
|||
84
ПиН
27.06.12
✎
00:01
|
(0) отличный быдлокод, никаких проблем не вижу... аудиторы малолетние далба..ы
|
|||
85
Krendel
27.06.12
✎
00:09
|
(0) Вот у Вас проблема какая? Показать что вы крутой специалист(свой нрав или что?
Цель аудита какая- получить 2-е мнение о состоянии продукта- вполне себе благовидная цель. Вам указали что это нечитаемый код- вполне обосновано, ибо надо залазить и смотреть процедуру. Хотите быть лучшим стрелком на деревне- пошлите нахер аудиторов, скажите что такие преписки нахрен не нужны, и вы просто потеряли время и деньги. И я уверен что вашу конфу до битов разберут, уточняя отчет. Или скажите нейтрально что они не критичны и на работу не влияют. хотя несколько методов мы возьмем на вооружение- и будете спокойно работать дальше |
|||
86
orefkov
27.06.12
✎
00:12
|
(0)
У аудитора не хватает на новую ауди, и детки голодные сидят. Понять и простить. |
|||
87
Snovy
27.06.12
✎
00:18
|
(85) Да не собираюсь я бодаться за то, что я самый лучший... Я обычный... И контора моя обычная... За три месяца запустить тиражный продукт, окгда все говорили, что будет опытная эксплуатация, а один из из пилотов ушел сам по себе в промышленную? И все силы были брошены на поддержку пром. эксплуатации системы... А остальные тоже сказали - ваша конфа фигня, но она лучше, чем вся остальная фигня и тоже перешли на пром. эксплуатацию раньше срока. А потом вываливают заключение о соответствии конфы ТЗ, хотя как водится - это ТЗ никто не читал и в нем тупое описание БП КОРП, даже за уши не притянутое к тому, что нужно было делать.? Теперь нужно аккуратно отмазаться. Я привел только пример одной странички. остальное я сам разберу... Основное лежит в другой поверхности - мы не успели сделать то, что на фиг никому не нужно :)
|
|||
88
Krendel
27.06.12
✎
00:28
|
(87) ТОгда есть реальный шанс увеличить бюджет
|
|||
89
rs_trade
27.06.12
✎
00:33
|
(0) копрокодить ради сомнительных 3%. бугагага. аудиторы правы.
|
|||
90
rs_trade
27.06.12
✎
00:34
|
(89) было бы 30%, правы были бы вы.
|
|||
91
quest
27.06.12
✎
00:37
|
(0)немного некоретная постановка вопроса. Ты не сказал - как этот этот счет появляется в докуметнте. вводит ли его пользователь или он присваивается как константа. Ведь счет счет 50.41 тоже пройдет эту проверку. И не факт что этому будут рады твои клиенты...
|
|||
92
ПиН
27.06.12
✎
00:45
|
(91) ггг, не пройдет...
|
|||
93
mikeA
27.06.12
✎
02:15
|
(87) толоько
"мы намерено применяем не совсем методологически верные решения так как по нашим тестам оные дают прирост производительности системы" замени на "мы сознательно изменяем методологически верные решения, когда это увеличивает производительность системы и не снижает её устойчивость" |
|||
94
Stepa86
27.06.12
✎
09:22
|
(0) оооо, волшебные значения в коде... такое надо или инкапсулировать или переписывать по нормальному, как в (16)
если это единственный пример аудиторов, то херовые они аудиторы, я могу придраться почти к любому коду, просто прагматичный код и качественный код - разные вещи, и конфа по проверке на 1С:Совместимо в моей нетленке находит где то 6000 ошибок, на 60клоков то, из которых я не нашел ни одной достаточно серьезной, чтоб переписать. По поводу обращения через точку - давно использую функции глРеквизит( Ссылка, Путь ) и глРеквизит_Кэш( Ссылка, Путь ), которые могут весьма сильно повысить производительность при обращении через точку |
|||
95
orefkov
27.06.12
✎
09:41
|
(94)
А чем принципиально отличается "ПланыСчетов.Хозрасчетный.Товары" от "41" ? Все это магические слова в коде. Тогда бы уж хотя бы омНазначенияСчетов.ЭтоСчетУчетаТоваров(СчетУчетаНоменклатуры); |
|||
96
Stepa86
27.06.12
✎
09:49
|
(95) вот не поверю, что ты не знаешь, почему не рекомендуется использовать волшебные числа в коде (не нельзя, а не рекомендуется)
>>омНазначенияСчетов.ЭтоСчетУчетаТоваров(СчетУчетаНоменклатуры); это я и называю инкапсулированием, а как внутри считается - вообще пох |
|||
97
Конфигуратор1с
27.06.12
✎
09:50
|
(95)+100500
что один вариант, что второй - при изменении в плане счетов (не знаю как в России, но в Украине раз в год что нибудь та меняют ) все равно придется перелопачивать весь программный код, а так вынесли в общий модуль процедуру и радуемся жизни |
|||
98
Конфигуратор1с
27.06.12
✎
09:52
|
(97)видел одну конфу, где все проводки вынесены вообще в справочник и пользователь сам как хочет так и корректирует их. Правда конфа на 7ке.
|
|||
99
Lama12
27.06.12
✎
10:02
|
(0) Вопрос корректности кода должен быть закреплен в документе декларирующим правила определения "корректности". Пусть аудиторы приведут свои критерии отнесения кода к верному / не верному. Если они сошлются на стандарт рекомендованный 1С, то можешь сослаться на то, что у вас в компании он не является стандартом. И к тому же 1С, сама не следует своим рекомендациям. Думаю примеры сам найдешь.
Вообще есть ли требования писать кода корректно? Может у вам в компании корректным является код, который просто выполняет свои функции. Хоть там на обработке строковых переменных все написано. Хоть свои калькуляторы. Если компанию устраивает как код работает, то он корректный. |
|||
100
Lama12
27.06.12
✎
10:03
|
99+
Кстати, причем тут замер производительности? Вы что программу пишите по критерию ее высокой производительности? Если так, и есть документ который это подтверждает, то шли их лесом. |
|||
101
Lama12
27.06.12
✎
10:06
|
И еще.
ИМХО. Я бы написал что критерием качества кода, в компании принято считать, соответствие реализованной функциональности, требованиям к разработке. И слал бы их лесом. |
|||
102
Академик_
Келдыш 27.06.12
✎
10:12
|
в (0) два абсолютно разных условия. если изначально в реквизите будет 41, без родителя, кто ошибку обработает???? пиши им что м-даки, и даже не понимают различий родителя и элемента
|
|||
103
Академик_
Келдыш 27.06.12
✎
10:14
|
ПринадлежитЭлементу - более правильно. по производительности глянь
|
|||
104
iamnub
27.06.12
✎
10:16
|
(0)
Будь мужиком, блеать! Ткнули носом в г_овно - признай и запомни на будущее! А ты цепляешься к каким-то замерам производительности с пятью нулями после запятой - смешно. Сам же знаешь, что со строкой сравнивали не из за производительности. |
|||
105
Турист
27.06.12
✎
10:17
|
(99) ветку почитай
|
|||
106
Турист
27.06.12
✎
10:20
|
А с местных акуеваю - это сейчас вы герои, а как увидели бы это в конфе типовой, так завели бы ветку на сотни постов про "гуанокод" в типовых ))
|
|||
107
mic_net
27.06.12
✎
10:25
|
(0) код похожий на
ИначеЕсли Лев(СчетУчетаНоменклатуры.Код,2)="41" встречал в типовой конфигурации, если не ошибаюсь "Астор: Торговый дом 6.0." |
|||
108
Lama12
27.06.12
✎
10:29
|
(105) Прочитал. Еще больше утвердился в своих убеждениях.
Вопрос правильности кода решается внутренними документами компании. Можно писать код верно с точки зрения методологии рекомендованной 1С, а можно писать быстро по требованию руководства. Код написанный с качеством удовлетворяющим требование руководства будет верным. Пусть он тысячу раз "гуанокод". Я могу вести разработку ПО по лучшим мировым практикам используя различные методики разработки. Стоимость разработки отчета который можно написать за час, при соблюдении методик (лучшие практики), возрастет в 100 раз. Кому нужен будет такой отчет? Что хорошо, что плохо в компании - определяет руководство. Если начальник сказал - мне нужно быстро и что б работало. То ему плевать на возможность поддержки и развития кода, на возможные риски с появлением редких ошибок и т.д. |
|||
109
Турист
27.06.12
✎
10:41
|
(108) плохо читал, один из заказчиков 1С
|
|||
110
MatrosoV AleXXXand_R
27.06.12
✎
10:43
|
(0) Они правы
|
|||
111
Lama12
27.06.12
✎
10:46
|
(109) Еще раз. Когда отдаешь разработку на субподряд, должны быть оговорены требования к коду. Если их в договоре не оговорили, а оговорили только требования к функциональности, то слать лесом.
|
|||
112
Genayo
27.06.12
✎
10:55
|
(94) Можно поподробней про глРеквизит( Ссылка, Путь ), интересно как профи делают...
|
|||
113
pumbaEO
27.06.12
✎
10:57
|
А на орфографические ошибки проверяли?
Типа Для каждого КлючИЗначене Из ? |
|||
114
Stepa86
27.06.12
✎
11:00
|
(112)
Функция глРеквизит( Ссылка, ИмяРеквизита ) Экспорт Возврат упОбщегоНазначенияКлиентСервер.ПолучитьЗначениеРеквизита( Ссылка, ИмяРеквизита ); КонецФункции упОбщегоНазначенияКлиентСервер: // Функция ПолучитьЗначениеРеквизита возвращает значение // реквизита, прочитанного из информационной базы по ссылке на объект. // // Если доступа к реквизиту нет, возникнет исключение прав доступа. // Если необходимо зачитать реквизит независимо от прав текущего пользователя, // то следует использовать предварительный переход в привилегированный режим. // // Параметры: // Ссылка - ссылка на объект, - элемент справочника, документ, ... // ИмяРеквизита - Строка, например, "Код". // // Возвращаемое значение: // Произвольный - зависит от типа значения прочитанного реквизита. // Функция ПолучитьЗначениеРеквизита(Ссылка, ИмяРеквизита) Экспорт Если Ссылка = Неопределено Тогда Возврат Неопределено; КонецЕсли; Если ПустаяСтрока( ИмяРеквизита ) Тогда Возврат Ссылка; КонецЕсли; этоОбъект = ЭтоОбъект( Ссылка ); этоПустаяСсылка = Не этоОбъект И Ссылка.Пустая(); ЕстьОбращениеЧерезТочку = ( Найти( ИмяРеквизита , "." ) > 0 ); Если ( этоОбъект ИЛИ этоПустаяСсылка ) И Не ЕстьОбращениеЧерезТочку Тогда //если это объект, то все его реквизиты уже получены и можно взять их напрямую //но на клиенте нельзя получить значения ссылки через точку Если этоПустаяСсылка Тогда #Если Клиент Тогда Возврат упОбщегоНазначенияСервер.ПолучитьЗначениеРеквизита( Ссылка, ИмяРеквизита ); #Иначе Возврат Ссылка[ИмяРеквизита]; #КонецЕсли Иначе Возврат Ссылка[ИмяРеквизита]; КонецЕсли; ИначеЕсли ЭтоОбъект И ЕстьОбращениеЧерезТочку Тогда //если это объект, но нужно получить данные через точку, то сначала получим считанные данные с объекта, а остальное рекурсивно лИмяРеквизита = ИмяРеквизита; Префикс = упКоллекции.РазделитьСтроку( лИмяРеквизита , "." ); Если этоПустаяСсылка Тогда #Если Клиент Тогда левЗначение = упОбщегоНазначенияСервер.ПолучитьЗначениеРеквизита( Ссылка, Префикс ); #Иначе левЗначение = Ссылка[Префикс]; #КонецЕсли Иначе левЗначение = Ссылка[Префикс]; КонецЕсли; Возврат ПолучитьЗначениеРеквизита( левЗначение , лИмяРеквизита ); Иначе Возврат упОбщегоНазначенияСервер.ПолучитьЗначениеРеквизита( Ссылка, ИмяРеквизита ); КонецЕсли; КонецФункции Функция ЭтоОбъект( пОбъект ) Экспорт #Если Не ВебКлиент Тогда XMLТипЗнч = XMLТипЗнч(пОбъект); #Иначе XMLТипЗнч = Неопределено; #КонецЕсли Если XMLТипЗнч = Неопределено Тогда ЭтоОбъект = ТипЗнч( пОбъект ) = Тип("ДанныеФормыСтруктура"); Иначе ИмяТипа = XMLТипЗнч.ИмяТипа; ЭтоОбъект = Найти(ИмяТипа, "Object.") > 0; КонецЕсли; Возврат ЭтоОбъект; КонецФункции упОбщегоНазначенияСервер: // работает только по ссылке Функция ПолучитьЗначениеРеквизита(Ссылка, ИмяРеквизита) Экспорт Если Ссылка = Неопределено Тогда Возврат Неопределено; КонецЕсли; Если ПустаяСтрока( ИмяРеквизита ) Тогда Возврат Ссылка; КонецЕсли; Если ИмяРеквизита = "Ссылка" Тогда Возврат Ссылка; КонецЕсли; Если Ссылка.Пустая() Тогда Возврат Ссылка[ ИмяРеквизита ]; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Таблица." + ИмяРеквизита + " Как ЗначениеРеквизита |ИЗ | " + Ссылка.Метаданные().ПолноеИмя() + " КАК Таблица |ГДЕ | Таблица.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Возврат Выборка.ЗначениеРеквизита; КонецФункции |
|||
115
Stepa86
27.06.12
✎
11:02
|
+(114) плин, теги забыл...
|
|||
116
Genayo
27.06.12
✎
11:04
|
(114) Это свой код или...? И дает выигрыш в производительности? Чудны дела 1С...
|
|||
117
Stepa86
27.06.12
✎
11:09
|
(116) за основу взял ОбщегоНазначения.ПолучитьЗначениеРеквизита( и дописал "слегка". при получении через точку от ссылки выигрыш большой, особенно если еще через кеш пропускать, при получении от объекта по времени так же + не надо заморачиваться над тем, от чего беру значение через точку. Так же поддерживается получение через несколько точек
|
|||
118
Vladal
27.06.12
✎
11:10
|
Так вы - внедренцы, а заказчик вас проаудировал?
Интересно, какая оценка такому коду: Функция ДБФДляВыгрД(VID,val ВыбДата="",ИмяФ="") Экспорт If ВыбДата="" Then ВыбДата=GetDateOfAP(); If ВыбДата>CurDate() Then ВыбДата=CurDate();EndIf;EndIf; Каталог=IBDir()+"Obmen\Out\"; ИмяФ=Mid(Format(ВыбДата,"DDDMMYY"),7,2)+Mid(Format(ВыбДата,"DDDMMYY"),4,2)+Mid(Format(ВыбДата,"DDDMMYY"),1,2)+ "d"+Строка(VID)+".dbf"; ДБФ=CreateObject("XBase"); ДБФ.CodePage(0); ДБФ.AddField("Karta","S",13,0); ДБФ.AddField("SS","N",2,0); ДБФ.AddField("SP","N",10,2);ДБФ.AddField("KP","N",3,0); ДБФ.AddField("DA","S",8,0); ДБФ.AddField("VID","N",1,0); // код группы в с-ме скидок ДБФ.CreateFile(Каталог+ИмяФ); Возврат ДБФ; КонецФункции |
|||
119
Новенький_2009
27.06.12
✎
11:10
|
(118) "Садись, два" (с)
|
|||
120
Vladal
27.06.12
✎
11:11
|
(119) И такой код по всей конфе. Страшно его читать.
|
|||
121
Stepa86
27.06.12
✎
11:12
|
(118) а смесь русского и нерусского специальна?
|
|||
122
Vladal
27.06.12
✎
11:13
|
Но всяко лучше, когда вся конструкция или процедура/функция в одной строке?
Procedure ЗагрузкаКомпонентыRainbow() Export Try ЗагрузитьВнешнююКомпоненту(IBDir()+"DLL\rainbow.dll");Except Сообщить("Не удается загрузить внешнюю компоненту Rainbow.","!");Сообщить("Проверьте расположение необходимых библиотек:"+КаталогИБ()+"DLL\rainbow.dll "+ФС.WindowsКаталог()+" system\mfc42.dll "+ФС.WindowsКаталог()+"system\msvcrt.dll");Возврат;EndTry;EndProcedure Procedure ЗагрузкаКомпонентыWheel() Export Try ЗагрузитьВнешнююКомпоненту(IBDir()+"DLL\WheelAddIn.dll");Except Сообщить("Не удается загрузить внешнюю компоненту Wheel.","!");Сообщить("Проверьте наличие "+КаталогИБ()+"DLL\WheelAddIn.dll");Возврат;EndTry;EndProcedure Procedure ЗагрузкаКомпонентыStepVC() Export Try ЗагрузитьВнешнююКомпоненту(IBDir()+"DLL\StepVC.dll");Except Сообщить("Не удается загрузить внешнюю компоненту StepVC.","!");Сообщить("Проверьте наличие "+КаталогИБ()+"DLL\StepVC.dll");Возврат;EndTry;EndProcedure Procedure ЗагрузкаКомпонентыNetaInet() Export Try ЗагрузитьВнешнююКомпоненту(IBDir()+"DLL\netaInet.dll");Except Сообщить("Не удается загрузить внешнюю компоненту NetaInet.","!");Сообщить("Проверьте наличие "+КаталогИБ()+"DLL\NetaInet.dll");Возврат;EndTry;EndProcedure Procedure ЗагрузкаКомпонентыScanVC() Export Try ЗагрузитьВнешнююКомпоненту(IBDir()+"DLL\Scanvc.dll");Except Сообщить("Не удается загрузить внешнюю компоненту ScanVC.","!");Сообщить("Проверьте наличие "+КаталогИБ()+"DLL\ScanVC.dll");Возврат;EndTry;EndProcedure Procedure ЗагрузкаКомпонентыV7PLUS() Export Try ЗагрузитьВнешнююКомпоненту(IBDir()+"DLL\V7PLUS.dll");Except Сообщить("Не удается загрузить внешнюю компоненту V7PLUS.","!");Сообщить("Проверьте наличие "+КаталогИБ()+"DLL\V7PLUS.dll");Возврат;EndTry;EndProcedure Function глОтправить(Получатель,Тема,Тело,ИмяФ,Отправитель="") Export If Отправитель="" Then Отправитель=TrimAll(Пользователь.Email);EndIf; ЗагрузитьВнешнююКомпоненту(IBDir()+"DLL\SendMail.dll"); Мыло=CreateObject("AddIn.SendMail"); Мыло.АдресПочтовогоСервера=СокрЛП(Const.АдресSMTPсервера); Мыло.ПочтовыйПользователь=СокрЛП(Пользователь); Мыло.Отправитель = СокрЛП(Отправитель); Мыло.Получатель =СокрЛП(Получатель); Мыло.Subject=Тема; Мыло.ИспользоватьQP=0; If ТипЗначенияСтр(Тело)="Текст" Then Мыло.Сообщение=""; i=1; While i<=Тело.LinesCnt() Do Мыло.Сообщение=Мыло.Сообщение+?(i>1,LineBreak,"")+Тело.GetLine(i);i=i+1;EndDo; ElsIf ТипЗначенияСтр(Тело)="Строка" Then Мыло.Сообщение=Тело; EndIf; Мыло.Вложение=?(СокрЛП(ИмяФ)="","",ИмяФ+";");Состояние("Идет отправка почты");Res=Мыло.ОтправитьПочту(); If Res="0" Then s=Тема+" на "+СокрЛП(Мыло.Получатель);//ЗаписьЖурналаРегистрации(s,"E-mail",Тема,,3); Сообщить("Почта на {"+Мыло.Получатель+"} доставлена! ("+Тема+")",1); Else Сообщить(Res,"!"); Предупреждение("При отправке почты возникли ошибки!",10); EndIf; Возврат Res; EndFunction Function глGetADODB(val ИмяФ) Export db=CreateObject("ADODB.Connection");db.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ИмяФ+";Extended Properties=""Excel 8.0;HDR=NO"""; Возврат db;EndFunction Function глGetRecADODB(db) Export rs=CreateObject("ADODB.Recordset"); rs.ActiveConnection=db; rs.CursorType=3; rs.LockType=2;Возврат rs;EndFunction |
|||
123
Vladal
27.06.12
✎
11:13
|
(121) х.з. Это не моё
|
|||
124
Stagor
27.06.12
✎
11:17
|
(0)
для счетов "410" и "41" условие для нижеприведенного кода будет Истина: ИначеЕсли Лев(СчетУчетаНоменклатуры.Код,2)="41" |
|||
125
Stagor
27.06.12
✎
11:17
|
а счета то разные!
|
|||
126
Vladal
27.06.12
✎
11:18
|
(124) Лев2 = 04, прав2 = 541.
Не будут |
|||
127
Vladal
27.06.12
✎
11:18
|
*прав2 = 41
|
|||
128
Vladal
27.06.12
✎
11:18
|
(124) Лев(КодСчета, 2) используется вообще для всей группы, тянется из нетленных семерок.
|
|||
129
Genayo
27.06.12
✎
11:19
|
(117) Спасибо. А можно еще про практическое использование кэша для начинаюших подсказать...
|
|||
130
Stepa86
27.06.12
✎
11:22
|
(129) да там все просто, ставишь у общего модуля признак "Повторное использование возвращаемых значений" "на время сеанса" и любая функция внутри этого модуля будет выполняться один раз для каждого набора входящих параметров, во всех остальных случаях будет тупо возврат последнего значения.
|
|||
131
Stagor
27.06.12
✎
11:22
|
(128) при наличии Кода счета идентичного в первых 2-х цифрах будет работать неверно!
|
|||
132
Stagor
27.06.12
✎
11:24
|
(130) Это можно использовать только если сама функция внутри себя не обращается к БД и не читает от туда данные! Иначе даже при одинаковых параметрах результат будет разный.
Т.е. только для функций без "побочных" эффектов будет работать! |
|||
133
Genayo
27.06.12
✎
11:26
|
(129) Это понятно. Но как я понял, время жизни полученного значения разработчик контролировать не может, т.е. "время сеанса" есть величина относительная...
|
|||
134
experimentator76
27.06.12
✎
11:27
|
(124)(39)
|
|||
135
Stepa86
27.06.12
✎
11:27
|
(132) есессно, что если написать в кеше
Функция ДайТекущуюДату() Экспорт Возврат ТекущаяДатаСеанса(); КонецФункции то правильно она отработает только один раз, просто писать там надо действительно кешируемые функции |
|||
136
Stepa86
27.06.12
✎
11:28
|
(133) чо?
|
|||
137
experimentator76
27.06.12
✎
11:29
|
(128) истинно так - семерочник в разработке детектед
|
|||
138
experimentator76
27.06.12
✎
11:30
|
(130) я бы поостерегся
вообще 1с СИЛЬНО рекомендует данные получать запросом я проникся... |
|||
139
Stepa86
27.06.12
✎
11:32
|
(138) в (114) как раз замена получения значений через точку запросом
|
|||
140
Stagor
27.06.12
✎
11:33
|
(135) действительно кешируемые функции :)
Чисто К.Ф. может не быть вообще, иначе это были бы Константы! :) |
|||
141
Genayo
27.06.12
✎
11:37
|
(133) В том смысле, что в умных книжках написано, что кэшированное значение "живет" в районе 20 минут, а не пока запущен текущий сеанс...
|
|||
142
gosn1ck
27.06.12
✎
11:41
|
(95) в том что если код поменяется, то придётся переписывать код видимо
|
|||
143
Stepa86
27.06.12
✎
11:42
|
(141) с ПоместитьВоВременноеХранилище не путай, да и ничего страшного, если раз в час будет кеш обновляться при вызове
|
|||
144
Андрей_Андреич
naïve
27.06.12
✎
11:47
|
А в моей нетленке ФИО гендира и ГБ прямо в формах документов прописаны, т.к. если они сменятся - меня один овощ под зад вместе с нетленкой. Причем гендир и ГБ в курсе и считают это правильным.
|
|||
145
Genayo
27.06.12
✎
11:50
|
(143) Ну может быть и ничего страшного, просто жаль что разработчик это контролировать не может...
|
|||
146
ОператорПК
27.06.12
✎
11:52
|
ИМХО аудиторы не правы т.к. если предположить что план счетов меняется и 41 может быть потенциально разбит не только на 41.01 41.02 но и на 41.01.01 41.01.02 b и т.д.(мало ли) тогда их код работать не будет а Ваш будет.... Если бы они это предусматрели то должны были написать например так:
Если СчетУчетаНоменклатуры.Родитель=ПланыСчетов.Хозрасчетный.Товары или СчетУчетаНоменклатуры.Родитель.Родитель=ПланыСчетов.Хозрасчетный.Товары или СчетУчетаНоменклатуры.Родитель.Родитель.Родитель=ПланыСчетов.Хозрасчетный.Товары Тогда //закладываемся что 41 могут еще разбить на несколько уровней При неизменном плане счетов - работать будут оба варианта. |
|||
147
Stagor
27.06.12
✎
12:07
|
(146) если учесть критические изменения плана-счетов, то ни один вариант кода не будет верным!
|
|||
148
Алистар
27.06.12
✎
12:13
|
когда счета созданы в режиме предприятия через точку не получится.
|
|||
149
ОператорПК
27.06.12
✎
12:21
|
(147) я не претендовал на истину в последней инстанции, понятно что если "41"-му счету завтра присвоят код например "141" и назовут "НашиСуперТовары" то ни один вариант работать не будет.
|
|||
150
Конфигуратор1с
27.06.12
✎
12:22
|
(144) а если гб фамилию сменит?
|
|||
151
ОператорПК
27.06.12
✎
12:26
|
(15) ГБ - мужик наверное :)
|
|||
152
Андрей_Андреич
naïve
27.06.12
✎
12:28
|
(150) У нее та же фамилия, что и у гендира. :)
|
|||
153
experimentator76
27.06.12
✎
12:48
|
(146) садись - два
|
|||
154
experimentator76
27.06.12
✎
12:49
|
(147) (16)
будет работать так как не зависит от вложенности и представлений кода |
|||
155
experimentator76
27.06.12
✎
12:50
|
(149) такую куйню может сделать только разработчик если еплан
|
|||
156
Stagor
27.06.12
✎
12:51
|
(154)
Я говорил о (0)! Да, в (16) вариант более верный, чем в (0) любой из вариантов! |
|||
157
experimentator76
27.06.12
✎
12:52
|
(156) просто щас туденты начитаются и будут копрокодить
поэтому мои коменты в контексте всех сообщений темы) |
|||
158
experimentator76
27.06.12
✎
12:52
|
как (146) например))
|
|||
159
Академик_
Келдыш 27.06.12
✎
12:54
|
Если СчетУчетаКод = "10" Тогда
Если Лев(СчетУчета.Код, 5) = "10.09" Тогда Возврат "инвентаря"; ИначеЕсли Лев(СчетУчета.Код, 7) = "10.11.1" Тогда Возврат "спецодежды"; ИначеЕсли Лев(СчетУчета.Код, 7) = "10.11.2" Тогда Возврат "спецоснастки"; Иначе Возврат "материалов"; КонецЕсли; ИначеЕсли СчетУчетаКод = "20" Тогда Возврат "продукции для давальца"; ИначеЕсли СчетУчетаКод = "21" Тогда Возврат "полуфабрикатов"; ИначеЕсли СчетУчетаКод = "41" Тогда Возврат "товаров"; ИначеЕсли СчетУчетаКод = "43" Тогда Возврат "продукции"; ИначеЕсли СчетУчетаКод = "45" Тогда Возврат "отгруженных товаров"; ИначеЕсли СчетУчетаКод = "001" Тогда Возврат "арендованных основных средств"; ИначеЕсли СчетУчетаКод = "002" Тогда Возврат "товаров на ответственное хранение"; ИначеЕсли СчетУчетаКод = "003" Тогда Возврат "материалов в переработку"; ИначеЕсли СчетУчетаКод = "004" Тогда Возврат "товаров комитента"; |
|||
160
Академик_
Келдыш 27.06.12
✎
12:54
|
кусок кода упп последней стандартной
|
|||
161
Академик_
Келдыш 27.06.12
✎
12:55
|
слать лесом!! общий модуль упп бухгалтерский учет строка 417
|
|||
162
experimentator76
27.06.12
✎
12:55
|
круг замкнулся)))))))
|
|||
163
Академик_
Келдыш 27.06.12
✎
12:56
|
Функция ПолучитьНазваниеОбъекта(СчетУчета) Экспорт
|
|||
164
experimentator76
27.06.12
✎
12:56
|
(161) если не секрет а цель сего соотвествия?
|
|||
165
Академик_
Келдыш 27.06.12
✎
12:56
|
параметр СчетУчета там именно счет, не строка еси чо
|
|||
166
experimentator76
27.06.12
✎
12:56
|
1с - копрокодеры
|
|||
167
Академик_
Келдыш 27.06.12
✎
12:56
|
(164) соответствия? не понял вопрос
|
|||
168
izekia
27.06.12
✎
12:57
|
(0) а не покуй ли на снижение производительности в строке, где нет потерь для общей производительности
и второе: ты полез замеры делать чтобы хоть как-то оправдать такой кривой код? |
|||
169
Академик_
Келдыш 27.06.12
✎
12:57
|
короче еще раз: слать лесом аудировать стандартные конфы 1с
|
|||
170
experimentator76
27.06.12
✎
12:58
|
причем как я понимаю
Если Лев(СчетУчета.Код, 5) = "10.09" Тогда Возврат "инвентаря"; ИначеЕсли Лев(СчетУчета.Код, 7) = "10.11.1" Тогда Возврат "спецодежды"; ИначеЕсли Лев(СчетУчета.Код, 7) = "10.11.2" Тогда Возврат "спецоснастки"; Иначе Возврат "материалов"; КонецЕсли; СчетУчетаКод = СчетУчета.Код то есть пипец неоптимально |
|||
171
experimentator76
27.06.12
✎
12:58
|
(167) щас конфы нет под рукой - для чего возврат используется?
|
|||
172
izekia
27.06.12
✎
13:03
|
(95) меньше возможностей ошибиться и указать некорректный код, не говоря уже о возможном варианте со счетом 410, который упоминали в теме
|
|||
173
Академик_
Келдыш 27.06.12
✎
13:03
|
в основном для СОДЕРЖАНИЕ в проводках
|
|||
174
Академик_
Келдыш 27.06.12
✎
13:04
|
(170) это что за 2 минуты в упп нашел. боюсь они так 50/50 определяют счет.
|
|||
175
Академик_
Келдыш 27.06.12
✎
13:06
|
функция из (159) используется в любом движении материалов. напомню - написано так же как у ТС. и ничего - аудит прошла и во всех релизах упп присутствует
|
|||
176
experimentator76
27.06.12
✎
13:07
|
я недавно типовую торговлю 10 оптимизировал на скорость запуска начала работы
тоже был копрокод в смысле неоптимальности |
|||
177
Академик_
Келдыш 27.06.12
✎
13:08
|
Если Сред(Выборка.Счет.Код,5,2) = "62" Тогда
модуль переоценки валютных средств, строка 1541 |
|||
178
Академик_
Келдыш 27.06.12
✎
13:09
|
поступление товаро и услуг модуль объекта строка 4998
Если Лев(СтрокаТЧ.СчетЗатратНУ.Код, 2) = "97" Тогда |
|||
179
Академик_
Келдыш 27.06.12
✎
13:11
|
а запрос на строке 420 отчета Анали состоянию налогового учета вообще песня
|
|||
180
Академик_
Келдыш 27.06.12
✎
13:11
|
(176) так тс утверждает что со строковой функцией быстрей
|
|||
181
experimentator76
27.06.12
✎
13:13
|
(177) видимо выборка из запроса
там же можно было и Код получить |
|||
182
experimentator76
27.06.12
✎
13:14
|
(180) в торговле - там касательно использования результата функции 3-4 раза в пределах 10 строк кода
то есть функция вызывалась несколько раз с одним результатом в пределах одного экрана |
|||
183
experimentator76
27.06.12
✎
13:16
|
(180) видимо 1с забыла как план счетов был несколько лет назад изменен)
то есть таким кодом она закладывает потенциальную временную бомбу так что аудиторы молодцы что обратили внимание быстро небыстро не дело аудитора - но потенциальную угрозу они увидели |
|||
184
Академик_
Келдыш 27.06.12
✎
13:17
|
(182) бреда полно в типовых.
|
|||
185
Академик_
Келдыш 27.06.12
✎
13:18
|
(183) счета учета материалов и товаров 41 и 10 были есть и будут в рбу всегда
|
|||
186
Академик_
Келдыш 27.06.12
✎
13:21
|
А вот 97 как в поступлении - большой вопрос
|
|||
187
experimentator76
27.06.12
✎
13:28
|
(185) я бы не зарекался... вполне возможна реформа бух.учета после включения нас в ВТО
|
|||
188
experimentator76
27.06.12
✎
13:28
|
включение в ВТО уже состоялось
|
|||
189
Академик_
Келдыш 27.06.12
✎
13:35
|
(187) тогда придется помимо счетов еще очень много чего переделывать. Счета-наменьшее зло.
|
|||
190
Aleksey_a_z
27.06.12
✎
13:40
|
недавно сам вычищал конструкции НайтиПоКоду(...
|
|||
191
ОператорПК
27.06.12
✎
13:45
|
(158) ты чудо-дивное, во первых за базаром следи, во вторых на каком релизе платформе работает "будет работать так как не зависит от вложенности и представлений кода"?
|
|||
192
0xFFFFFF
27.06.12
✎
13:49
|
(0) ты ведь знаешь, как правильней. Зачем делал оценку сравнения? Для собственного оправдания?
|
|||
193
Vladal
27.06.12
✎
14:14
|
(131) Где встречал, там проверялась просто принадлежность группе счетов.
Лев(код, 2) вернёт "41" и для группы "41" или для "41.1" и для "41.1.1" |
|||
194
experimentator76
27.06.12
✎
14:15
|
(191) не бзди - будет работать как я сказал
|
|||
195
Vladal
27.06.12
✎
14:16
|
(146) А если исходить из такого:
Если Счет.Принадлежитгруппе(ПланыСчетов.Хозрасчетный.Товары) ? |
|||
196
experimentator76
27.06.12
✎
14:17
|
(195) такого кода в 8-ке нет)
|
|||
197
mrBlutig
27.06.12
✎
14:18
|
Аудиторам - Зачет!
Наверно тут нужно голосовалку прикрутить. |
|||
198
experimentator76
27.06.12
✎
14:18
|
да с совалкой легче пойдет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |