|
Бывает кодер, бывает копро-кодер, а бывает просто вредитель. Ø (Волшебник 14.03.2023 10:25) | ☑ | ||
---|---|---|---|---|
0
mr_K
01.02.23
✎
23:41
|
С таким сталкиваюсь впервые. Простая обработка, грузит данные из Excel в табличную часть. Из Excel сырое чтение в ТЗ, потом уже обработка полученных данных и загрузка в ТЧ
Попросили немного доработать. Начал смотреть и сказать, что офигел - значит ничего не сказать. Вот выдержки из "шедевра": Функция ЗаполнитьТЧ(ТЗ) .... Для Сч = 1 По ТЗ.Количество() - 1 Цикл СтрокаТЗ = ТЗ[Сч]; НовСтрока = Объект.ТаблицаОсновное.Добавить(); НовСтрока.Номенклатура = ПолучитьНоменклатуру(СтрокаТЗ.Наименование); ПодборЕденицыИзмерения(ТЗ, НовСтрока); ..... КонецЦикла; ..... КонецФункции Функция ПодборЕденицыИзмерения(ТЗ, НовСтрока) Для Сч = 1 По ТЗ.Количество() - 1 Цикл СтрокаТЗ = ТЗ[Сч]; Для Каждого Стр ИЗ Объект.ТаблицаОсновное Цикл Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | УпаковкиЕдиницыИзмерения.Ссылка КАК Ссылка, | УпаковкиЕдиницыИзмерения.Наименование КАК Наименование, | УпаковкиЕдиницыИзмерения.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование |ИЗ | Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения |ГДЕ | УпаковкиЕдиницыИзмерения.Владелец = &Владелец | И УпаковкиЕдиницыИзмерения.ЕдиницаИзмерения.Наименование = &Наименование"; Запрос.УстановитьПараметр("Владелец", Стр.Номенклатура); Запрос.УстановитьПараметр("Наименование", СтрокаТЗ.N4); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ЕденицыИзмеренияЗапроса = ВыборкаДетальныеЗаписи.ЕдиницаИзмеренияНаименование; НовСтрока.ЕдИзм = ЕденицыИзмеренияЗапроса; КонецЦикла; КонецЦикла; КонецЦикла; КонецФункции // ПодборЕденицыИзмерения() Спрашиваю у пользователей, и это работало?? Да, говорят. Только большие файлы приходилось разбивать на много маленьких, чтобы было не больше 50 строк, иначе виснет. Еще бы оно не висло, при таком коде. Как мне это развидеть и что сделать с программистом, который это наваял? |
|||
213
vyaz
02.02.23
✎
16:03
|
Нехорошо франчей лажать, они ведь разные бывают, знаю со своей практики франч (небольшой), где все ребята подкованные как по технической, так и по коммуникативной части, проекты ведут - закачаешься.
|
|||
214
OldCondom
02.02.23
✎
16:08
|
(210) Бывший кодер, который сейчас нач отдела.
|
|||
215
Sadovnikov
02.02.23
✎
16:13
|
(208) Я сейчас во франче работаю. Есть сомнения в моей компетенции?
|
|||
216
OldCondom
02.02.23
✎
16:19
|
(215) Если общаешься с такими умалишенными малолетками, будут вопросы к твоей адекватности
|
|||
217
Гений 1С
гуру
02.02.23
✎
16:35
|
(0) ггг... индусский код джи.
|
|||
218
Гений 1С
гуру
02.02.23
✎
16:36
|
(99) у меня в обработке удаления помеченных объектов есть кнопка, которая удаляет ссылки из РС, бегает с клиента на сервера на выборе 8000 объектов 8000 раз. И ниче, главное доходит до конца. Там скорость не главное.
|
|||
219
Архитектор_1С
02.02.23
✎
16:41
|
(218) 8 тысяч мало, пора переходить на миллионные транзакции
|
|||
220
Lexandr
02.02.23
✎
16:46
|
Работает - не трожь.
|
|||
221
АгентБезопасной Нацио
02.02.23
✎
16:46
|
(213) ... и упадешь.
Не, я верю, что бывают такие. Сам знаю парочку толковых ребят, работающих во франях. Вроде с этим же франями, где они, работал - а в результате от франчей все равно либо недоделки, либо гомнокод. |
|||
222
АгентБезопасной Нацио
02.02.23
✎
16:47
|
(215) какие люди! Как тебя угораздило вернуться?
|
|||
223
tonymictian
02.02.23
✎
16:49
|
(219) Если это какая-то разовая обработка, выполняемая ночью и под одеялом, то ничего плохого в этом нет. А если это что-то, выполняемое регулярно кучей пользователей в проде, то только живительная эвтаназия
|
|||
224
Sadovnikov
02.02.23
✎
16:52
|
(222) Черт его знает.. До сих пор не понимаю :)
|
|||
225
Волшебник
модератор
02.02.23
✎
17:01
|
(220) можно объявить этот код священным и не трогать его
|
|||
226
Гений 1С
гуру
02.02.23
✎
17:14
|
(215) сколько в час?
|
|||
227
Sadovnikov
02.02.23
✎
17:16
|
(226) Тебе столько кода в час и не снилось.
|
|||
228
ДедМорроз
02.02.23
✎
17:54
|
Есть такое понятие как математический подход,то есть свести задачу к любой предыдущей.
Если им сильно злоупотреблять,то получается такой код,т.к.то,что выполняется один раз оптимизируется одним способом,а что много раз - другим. |
|||
229
Полбатона
02.02.23
✎
17:54
|
о, это же мой код.
|
|||
230
ДедМорроз
02.02.23
✎
18:02
|
У меня просто была история,когда я написал отчет по азаиморасчетам на дату,который был достаточно оптимизирован,а потом его доработали просто вызывая для каждого дня в месяце алгорттм расчета.
А потом все плевались - как так можно. |
|||
231
Злопчинский
02.02.23
✎
18:14
|
(230) судя по скорости, с которой моргает 8-ка - там все так написано
|
|||
232
НафНаф
02.02.23
✎
18:20
|
(218) ты просто такой, все уже ы курсе
|
|||
233
Волшебник
модератор
02.02.23
✎
19:01
|
(230) О, клёво. А ты там оставил комментарий, что ты автор этого кода? ;)
|
|||
234
FirstLine Support
02.02.23
✎
19:06
|
(230) я всегда так делаю, я просто раньше не знал, что это называется математическим подходом.
Я наверное математик. |
|||
235
Гений 1С
гуру
02.02.23
✎
19:24
|
(227) я про рубли
|
|||
236
Гений 1С
гуру
02.02.23
✎
19:25
|
(233) всегда надо подписывать свой код, не стесняться. Чтобы подаваны офигевали и писались в штаны от восторга, что сталкивались с твоим кодом.
|
|||
237
Prog111
02.02.23
✎
19:56
|
(236) Я один раз столкнулся с кодом, который подписал LivingStar)))
|
|||
238
ДедМорроз
02.02.23
✎
20:10
|
(233) так там было два внешних отчета - один мой,второй,который на основе него сделан.
|
|||
239
experimentator76
02.02.23
✎
20:24
|
Верую что есть идеальные франчи\интеграторы, но пока в работе попадаются не очень.
Как уже неоднократно говорил - мешает текучка кадров и сама суть высасывания денег из заказчиков. Один плюс наверное есть - клепают свежие кадры для 1С, так как на фиксе мало кто будет обучать 1сников |
|||
240
Пульсир
02.02.23
✎
20:37
|
(0) Не мешайте людям зарабатывать на хлеб, а профи красиво смотреться на их фоне.
|
|||
241
Asmody
02.02.23
✎
23:44
|
(0) Я бы разрефакторил этот код еще на пяток методов и хер бы ты в нем запрос в цикле в цикле в цикле нашел
|
|||
242
experimentator76
02.02.23
✎
23:48
|
(241) отладкой легко :)
|
|||
243
Сергиус
03.02.23
✎
00:19
|
(0)Ну их в целом всё устраивало же?)
|
|||
244
1ctube
03.02.23
✎
07:52
|
Ничего себе какое у автора темы завышенное ЧСВ. Попросили, так доработай, может тот кто писал код был не опытный, а сейчас учится
|
|||
245
Chai Nic
03.02.23
✎
07:54
|
(244) Угу, новичок без опытного наставника рядом. Жуткое дело.
|
|||
246
1ctube
03.02.23
✎
07:55
|
(245) Реалии жизни...
|
|||
247
Chai Nic
03.02.23
✎
07:58
|
(246) У меня такое с линуксом было. Помню, как я писал на Си парсеры логов, понятия не имея о более адекватных для этого инструментах. Вот так же и здесь.
|
|||
248
ilkoder
03.02.23
✎
07:59
|
Любой программист при виде чужой обработки-отчета говорит - ну и фигня, все переделывать надо. Главное правило программиста: работает - не трогай...
|
|||
249
1ctube
03.02.23
✎
08:00
|
(247) Во во. У меня так же: иногда смотрю на свой старый код и думаю как я так мог написать
|
|||
250
АгентБезопасной Нацио
03.02.23
✎
08:49
|
(244) говнокод, написанный "учеником", "админом-мимокрокодилом", "сыном подруги главбуха" - оно не перестает быть говнокодом.
|
|||
251
1ctube
03.02.23
✎
08:51
|
(250) Так и никто не спорит насчет этого
|
|||
252
Tarzan_Pasha
03.02.23
✎
09:52
|
(8)захотелось писать больше кода на Java ?
|
|||
253
Волшебник
модератор
03.02.23
✎
09:53
|
(252) Java умирает. Oracle ввела лицензирование. Google уже отказался от Java.
Я больше применительно к PHP 8.2 |
|||
254
ДедМорроз
03.02.23
✎
10:15
|
(247) я до чих пор на Си парсеры пишу,так как другие инструменты соединить несколько логов не могут и найти то,что нужно
|
|||
255
Tarzan_Pasha
03.02.23
✎
10:24
|
(253)о. понимаю. я тоже на php работаю. Правда для меня это основная работа.
|
|||
256
Волшебник
модератор
03.02.23
✎
10:34
|
(255) О, приятно слышать, что мы коллеги. Как Вам новые типы в виде дизъюнктивной нормальной формы?
|
|||
257
Конструктор1С
03.02.23
✎
10:41
|
(217) растет твой конкурент. Скоро тебя переплюнет
|
|||
258
Конструктор1С
03.02.23
✎
10:49
|
(220) такие "пословицы" рождаются там, где царит говнокод. Ведь говнокод отличает не только непонятность, запутанность и плохая производительность, но и хрупкость. Правки говнокода приводят к поломкам в неожиданных местах
|
|||
259
Конструктор1С
03.02.23
✎
10:51
|
(236) твой код может только рвоту вызвать
|
|||
260
Tarzan_Pasha
03.02.23
✎
13:38
|
(256)напоминают студенческую молодость. Когда проектировали микросхемы. Приятные примеры из булевой алгебры.
|
|||
261
lubitelxml
03.02.23
✎
17:55
|
(0) я тут недавно УТ 11 внедрял, часть функционала просили из УТ 10 забрать, открыл я значит код а там - "Перейти ~M1;" - первый раз за 20 лет такое увидел.
|
|||
262
Kassern
03.02.23
✎
17:59
|
(261) это явно что-то не типовое)
Может кто-то пытался обфускацию своего решения сделать? |
|||
263
lubitelxml
03.02.23
✎
18:02
|
(262) нет, просто кто-то про рекурсию забыл или не знал, это метки - оператор GOTO. Его никто не использует обычно
|
|||
264
Krendel
03.02.23
✎
18:03
|
(263) Его не используют потому что код не читаем ;-) Пока блок схему не построишь
|
|||
265
Смотрящий от 1С
03.02.23
✎
18:29
|
(0) ни одна типовая не проходит синтаксический контроль без ошибок. Для примера запустил проверку на демо УНф. "Обнаружена 91 ошибка". Их нужно сразу на 10 лет без права переписки?
|
|||
266
lubitelxml
03.02.23
✎
18:34
|
(265) возможно из-за режима совместимости и платформы. Но ведь не падает все равно, даже если есть ошибки. Замечал несколько раз - пишешь запрос руками (я вообще не фанат конструктора, ибо это для джунов) - нажимаешь - Конструктор запроса, чтобы проверить синтаксис - пишет ошибка, запускаешь 1с - тестишь - все четко. Я сейчас не про расширения говорю...
|
|||
267
ejikbeznojek
03.02.23
✎
18:41
|
(0) хз...вполне обычный код для начинающего. Бывает и хуже))
Я от джуниора на работе такой каждый день вижу. Вот например из вчерашнего. Почти к каждой строчке можно придраться... Но этот код уже лучше того, который был раньше, главное чтоб динамика была положительная была)) Если ЭтоНовый() тогда Если Ссылка.ОсновнаяЗадача.КатегорияЗадачи = перечисления.КатегорииЗадачАсу.Проект тогда //Всегда будет ложь, потому что это новый ОсновнаяЗадачаОбъект=ОсновнаяЗадача.ПолучитьОбъект(); СтрокаДобавить=ОсновнаяЗадача.ЭтапыПроекта.Добавить(); //тут по идее всегда конфигураторная ошибка была бы, но сюда никогда не дойдёт СтрокаДобавить.ЗадачаАсу = Ссылка; //Опять же это новый, значит пустая строчка КонецЕсли; КонецЕсли; |
|||
268
lubitelxml
03.02.23
✎
18:43
|
(267) это даже не джун, а просто стажор )
|
|||
269
OldCondom
03.02.23
✎
18:50
|
(267)
//Всегда будет ложь, потому что это новый С чего бы? |
|||
270
Волшебник
модератор
03.02.23
✎
18:51
|
(266) Подтверждаю. Конструктор запросов не понимает элементарные конструкции языка запросов, например, комментарии.
|
|||
271
lubitelxml
03.02.23
✎
18:51
|
(269) наверное потому, что Ссылка не заполнена
|
|||
272
OldCondom
03.02.23
✎
18:54
|
(266) это у вас паркинсон просто. Вы случайно выделили 1-2 символа и нажали конструктор)
|
|||
273
OldCondom
03.02.23
✎
18:57
|
(271) а, точно, я думал к реквизиты обращение. Штош... все я про себя понял
|
|||
274
lubitelxml
03.02.23
✎
18:59
|
(272) нет, если не забуду, пришлю в понедельник запрос из erp, сейчас уже нет доступа туда
|
|||
275
lubitelxml
03.02.23
✎
19:00
|
+(274) запрос не типовой, проверку не пройдет, но в режиме предприятия не отработает
|
|||
276
lubitelxml
03.02.23
✎
19:00
|
(275) но в режиме предприятия не отработает = но в режиме предприятия отработает
|
|||
277
Kassern
03.02.23
✎
19:06
|
(266) Если вы берете внешнюю таблицу и пихаете ее в запрос помещая во временную, то при дальнейшем обращении к реквизитам этой таблицы через точку конструктор будет ругаться, так как не понимает тип, а сам по себе запрос будет выполняться.
|
|||
278
АгентБезопасной Нацио
03.02.23
✎
20:18
|
(265) Ну почему сразу "10 лет без права переписки"? "Два года расстрела" вполне достаточно..
|
|||
279
Бертыш
03.02.23
✎
21:08
|
(0) Ну бывает же конечно. Моя память храни историю времён 7.7 о переписки двух коллег программистов 1С в глобальном модуле. Работала некая контра себе работала, но периодически у них 1С падала, то естль не падала, но переставала запускаться. Они дёргали в такой момент постоянно работавшего с ними программиста из местного франча и он посидев, поколдовав над базой через какое то время решал их проблему база опять начинала работать. Однажды база перестала работать и они до него достучаться не смогли. В итог дёрнли моего приятеля который мне рассказал всю эту историю. Он был там чей-то родственник. Он открыл конфигуратор и в обработчике
ПриНачалеРаботыСистемы или как то так (Уже и не помню семёрку) стояло начале Если Дата>ТакойТоДаты Тогда Отказ = Чего то там (Чего уже опять таки не помню. Кажется там надо было для отказа ставить единичку); Возврат; КонецЕсли; Приятель поинтересовался у сотрудников предприятия кто их обслуживае постоянно. Они назвали ему ФИО. Он закоментировал данный код и добавил пр этом строчку комментария //Такой то такой то ты мудак Но заказчику он ничего не рассказал Та кчто вредители однозначно есть |
|||
280
Garykom
гуру
03.02.23
✎
21:10
|
(279) А уверен что мудак?
Может мудаки контора которая оплату жмотит пока снова не упадет? |
|||
281
Волшебник
модератор
03.02.23
✎
21:11
|
(279) Обзывания в программном коде
|
|||
282
Krendel
03.02.23
✎
21:19
|
(280) Не работай, в чем проблема
|
|||
283
OldCondom
03.02.23
✎
21:52
|
(279)дурачок ты некомпетентный.
Сын еврея-юриста недавно закончил унивеситет, тоже стал юристом, получил практику и выиграл свой самый первый судебный процесс. Прибегает весь взволнованный домой: - Папа, папа, я сегодня выиграл свой первый суд! И знаешь, папа, это то самое дело которое ты вел все прошлые 10 лет и не мог выиграть, а я его выиграл за один день! Отец на это очень раздраженно отвечает: - Вы только посмотрите на этого идиота! Он сегодня за один день закончил дело которое кормило нашу семью почти 10 лет! Кто нас теперь кормить-то будет? |
|||
284
Конструктор1С
04.02.23
✎
04:26
|
(283) а где-то рыдает профессиональная этика. Потом после таких "кормящихся" продукт обрастает дурной репутацией
|
|||
285
Chai Nic
04.02.23
✎
06:22
|
(284) +1. Не платят - прекращаешь работу. Никогда даже в голову не приходило оставлять закладки для выцыганивания оплат. Надо исходить из принципа, что ты им нужен больше, чем они тебе. А не нужен - найдутся другие.
|
|||
286
Прохожий
04.02.23
✎
07:02
|
(0) Передача в мире животных, а не ветка....
Какая молодежь нервная. Между прочим семерочная платформа 1С именно так конвертировала файлы в Эксель когда-то. Цикл в цикле. Большой отчет мог конвертироваться в Эксель час или больше. И даже самые порядочные люди писали и ставили патч платформы ибо иначе никак. А!!! Вы все врете про нашу любимую 1С г. Москва! |
|||
287
Прохожий
04.02.23
✎
07:10
|
Семерка брала первую ячейку (а не строку как тут!) и записывала (каждый раз стомильонов раз итого) эту ячейка на диска как файл экселя. Потом добавляла кне вторую ячейку и первые две записывала на диск ,потом брал третью и в итоге записывала файл столько раз сколько ячеек в таблице. Постоянно прибавляя объем до полного.
Вот где была пестня. |
|||
288
Chai Nic
04.02.23
✎
08:38
|
(286) "Не так всё было. Совсем не так."
Тормоза при записи 7.7 в формат xls были связаны с багом при записи строк с автовысотой. Как бы эта автовысота подсчитывалась для всего документа при записи каждой строки или что-то подобное. Достаточно было убрать автовысоту, и огромные таблицы сохранялись быстро. |
|||
289
Прохожий
04.02.23
✎
09:15
|
Парсили платформу вплоть до последних релизов. Весь советский народ.
|
|||
290
lubitelxml
04.02.23
✎
10:33
|
(288) было дело про Автовысоту, уже даже без подсказки и не вспомнил бы про это.
|
|||
291
ДедМорроз
04.02.23
✎
11:32
|
И еще.
Если что-то написано г.внокодом,но дает правильный результат - это не вредительство,это из серии,если пироги будет печь сапожник. А вот если отчет дает неправильный результат - вот это и есть вредительство. Просто,например, ОбщегоНазначения.ПолучитьРеквизитыОбъекта - это запрос,вставляем в цикл,получаеи запрос в цикле. Но,план запроса будет кеширован,а доступ по первичному ключу - это очень быстро,и вынос запроса за пределы цикла позволит сэкономить только на обмене меджу сервером 1с и сервером базы данных. Смертельно,когда в цикле делается запоос с полным скпнированием ну или перебор таблицы,кпк в обсуждаемом примере. Ну и не стоит забывать,что при количестве данных в таблицах несколько строк,как например,сисло покупок в чеке,часто перебор всего чека быстрее,чем какой-то поиск по индексу,т.к.ускорение от поиска будет несущественным,а число операций на подготовку поиска будет сравнимо с самим поиском. Оптимизированный поиск дает логарифмическое количество сравнений,которое существенно меняет картину от 1000 записей. |
|||
292
Злопчинский
04.02.23
✎
20:18
|
(204) не прокатит... кто тогда нагревает людей, которые нагревают вселенную?
|
|||
293
Злопчинский
04.02.23
✎
20:22
|
(239) "Верую что есть идеальные франчи\интеграторы, но пока в работе попадаются не очень.
Как уже неоднократно говорил - мешает текучка кадров и сама суть высасывания денег из заказчиков." . ну представь: хороший франч пришел на проект к Заказчику (сделать гоночный болид из трактора), у которого трэш угар и барадак, дорогоа в выибонах, мостов нет переезжают вброд итд... ну и начнется высасывание денег... потому что гоночный болид даже просто негде приемосдаточные испытания провести - начинаем строить дорогу, мосты итд. . |
|||
294
Злопчинский
04.02.23
✎
20:29
|
Я вас всех уважаю, коллеги!
Вы крутые. |
|||
295
Архитектор_1С
04.02.23
✎
21:12
|
(294) Выпил чтоль?
|
|||
296
1S_User
04.02.23
✎
21:25
|
Если виснет после 50 строк, скорее всего, самое страшное тут в процедуре ПолучитьНоменклатуру(). Может, делается какой полный поиск, минуя индекс. "ПодборЕденицыИзмерения" так-то по индексу отбор делает. Конечно, это идиотизм, и надо все одним запросом, но вот прям жутко убивать оно не должно.
|
|||
297
Злопчинский
04.02.23
✎
23:52
|
(295) Почему? трезв. я вообще совсем редко алкоголь употребляю, даже пиво.
просто реально уважуха спецам. |
|||
298
Valdis2007
01.03.23
✎
18:03
|
(0) Вы уважаемый разработчик 1С Бухгалтерия?
|
|||
300
magicSan
01.03.23
✎
19:39
|
Копрокодер это "давайте гить!!!! давайте сонаръ!!!!! а ещё а ещё куча тестов!!!!!!". Это обычное быдло из кодеров которые могут только тупо кодить не понимая предметной области и методов программирования RAD.
То что выше описано просто ошибки новичка. |
|||
301
Грю
01.03.23
✎
19:42
|
(0) Много букав. Что не так с этим кодом?
|
|||
302
Курцвейл
01.03.23
✎
19:50
|
(215) Вот это да. Не ожидал что Олега тут увижу :)
|
|||
303
Valdis2007
02.03.23
✎
05:23
|
(0) так демонстрация, как ты красиво исправил этот код и 50 строк из екселя теперь летают... будет))?
|
|||
304
Адинэснег
02.03.23
✎
08:34
|
(0) перепиши одним запросом, раз глаз еще дергается...
|
|||
305
zak555
02.03.23
✎
09:11
|
(0) работает же
Вред -- это когда в базе данные ломаются или данные отображаются неверно |
|||
306
Ботаник Гарден Меран
02.03.23
✎
10:37
|
Разве это вредитель?
Вот анонимный разработчик, сделавший некогда в пояснениях 2 заполнение циклом по справочнику с запросом по каждому ОС. И это ощутили на себе все типовые пользователи, у которых этих ос тысячи. Заполнялось часа 3-4. |
|||
307
АгентБезопасной Нацио
02.03.23
✎
11:08
|
(302) да многие офигели...
|
|||
308
ProgAL
02.03.23
✎
11:50
|
(0) Вы же в штат на 130 искали внедрять ЕРП, за 130 только такое.
|
|||
309
ironicman
13.03.23
✎
09:39
|
(303) +1. Интереснее всего выяснить как был исправлен этот код и мотивированную позицию почему именно так
Мне кажется что групповой рефакторинг это хорошая народная забава, которая достойна отдельной рубрики на мисте |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |