0. starik-2005 1429 18.09.17 22:34 Сейчас в теме

Подбор в управляемой форме - что может быть проще?

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

Перейти к публикации

Лучшие комментарии
17. spacecraft 19.09.17 11:06 Сейчас в теме
Придрались к наименованию переменных. Это больше к рефакторингу относится.
Тут есть программная "ошибка".
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
	Объект.ТабличнаяЧасть1.Добавить().ФИО = ВыбранноеЗначение;
КонецПроцедуры

Да и в другом примере ОбработкаВыбора. Этот код не всегда будет работать как задумано.
Hamsik; TreeDogNight; pbazeliuk; NSerget; jONES1979; +5 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. nomadon 322 19.09.17 07:07 Сейчас в теме
Сначала задается планка где лишняя переменная - это плохо, а потом в, собственном коде, Рез и Доп. Отсюда вывод, даже несколько, но некоторые до конца не ясны:
1. Если обгадил чужой код - самому можно плохокодить
2. Чужой код гадь, а в свой не смотри
3. Даже если знаешь что плохогодить нельзя, но ничего с этим сделать не можешь - посмотри в чужой код и скажи что там еще хуже


Доброе утро;)
kadild; PoZiTiFFF; bulpi; Gorus; TreeDogNight; jONES1979; NN2P; uri1978; awk; Tolpinski; mmoozzgg; +11 Ответить
2. starik-2005 1429 19.09.17 09:17 Сейчас в теме
(1) рез и доп - обязательные аргументы функции оповещения. Без них она работать не будет. Учим мат.часть.

Ну, как я и говорил, подтянулись "программисты", плохо владеющие механизмами платформы. Но для остальных появилась возможность учиться на чужих ошибках)))
kadild; Anchoret; uri1978; Sheriff1987; KSy; корум; +6 1 Ответить
9. nomadon 322 19.09.17 10:03 Сейчас в теме
(2) я не про наличие параметров в процедуре (кстати это процедура а не функция), а про смысловое наименование переменных
11. starik-2005 1429 19.09.17 10:08 Сейчас в теме
(9) в С вообще процедур нет - одни функции, но некоторые из них не возвращают значение. Так что разницы между словами "процедура" и "функция" практически нет. Главное, что свою функцию данная процедура выполняет. Помните картинку о всей сути критиков со словами "горизонт завален"? Вот в этом вся суть Вашей критики. Молодежи может даже интересно на этот диалог посмотреть, так что не зря.
14. nomadon 322 19.09.17 10:21 Сейчас в теме
(11) ну тогда можно вообще в нулях и единицах пример писать, функция процедуры тоже будет выполняться)
15. starik-2005 1429 19.09.17 10:31 Сейчас в теме
(14) ну если заговорили о нулях и единицах, то в ассемблере нет различий в вызове процедур и функций, а машинному коду об именах переменных ничего не известно.

По поводу стандартов, то они предписывают именовать переменные так, чтобы была ясна их суть. С "рез" и "доп" суть ясна. Проблема тут в интерпретации стандартов с Вашей стороны.
16. nomadon 322 19.09.17 10:36 Сейчас в теме
(15) а мы пишем код что бы кому было ясно?
1. машине?
2. тому кто писал это код?
3. тому кто не писал этот код?

Если учитывать последнее, то принимает решение о допустимости кода совсем не тот кто его писал а тот для кого.
Brawler; mvxyz; kuzyara; BlizD; TreeDogNight; +5 Ответить
7. starik-2005 1429 19.09.17 09:51 Сейчас в теме
(1) если говорить о коде, то, как я понял, Ваша придирка была к поименованию переменных. Т.к. 1с - это чаще всего открытый код и данное замечание справедливо. Моя же придирка была к использованию лишней переменной - за это в олимпиадном программировании снижают балл, ибо это грубая ошибка, влияющая на производительность.
10. nomadon 322 19.09.17 10:05 Сейчас в теме
(7) моя придирка в общем впечатлении, если сами себе поднимаете планку - то приводить дурацкие ошибки в пример - глупо.
12. starik-2005 1429 19.09.17 10:09 Сейчас в теме
(10) ошибки с именем переменной? Это не ошибки. Но да, горизонт завален)))
13. nomadon 322 19.09.17 10:19 Сейчас в теме
(12) если не считать нарушение стандартов разработки ошибкой то не ошибка)
3. Сурикат 183 19.09.17 09:23 Сейчас в теме
Имелось ввиду, что название переменных не отображает их суть.
Неужели так сложно написать Результат, ДополнительныеПараметры?

А если процедура получиться не маленькая в конце уже и можно запутаться в сокращениях...
kadild; mvxyz; PoZiTiFFF; Gorus; TreeDogNight; Prikum; +6 Ответить
4. starik-2005 1429 19.09.17 09:25 Сейчас в теме
(3) а смысл обязательные аргументы функции писать полными именами? Я ж написал, что для друзей УФ можно и без фамилии обойтись.)))
5. TODD22 17 19.09.17 09:35 Сейчас в теме
Очень похоже на пример из книги Радченко "Практическое пособие разработчика" из главы "Организация подборов" или нет?

На экзамене на спеца "подбор" заставляют делать через ВременноеХранилище.
6. starik-2005 1429 19.09.17 09:47 Сейчас в теме
(5) по-разному подбор организовать можно. Радченко? Кто это?
8. TODD22 17 19.09.17 09:54 Сейчас в теме
(6)https://its.1c.ru/db/pubdevguide
по-разному подбор организовать можно.

Для полноты картины можно было и подбор через ВХ привести...
19. webester 28 20.09.17 08:44 Сейчас в теме
(6)
Радченко? Кто это?

Вот и выросло молодое поколение... "программистов (ну да, назовем так)"(с)кто-то из (0)
21. starik-2005 1429 20.09.17 10:25 Сейчас в теме
(19) ага, когда мы писали машинный код в тетрадках по русскому языку, их еще и в проекте не было))) И Радченко тоже не было.
22. webester 28 20.09.17 12:01 Сейчас в теме
(21)Не было конечно,не радченко, ни чуства юмора, ничего не было. Зато ЧСВ было точно.
23. starik-2005 1429 20.09.17 12:01 Сейчас в теме
(22)
Зато ЧСВ было точно.
Ну как без него-то, родимого. Это как без Радченко современным говнокодерам )))
24. webester 28 20.09.17 12:07 Сейчас в теме
(23)Это точно. 90% людей считают, что их способности выше средних. Хотя лурк утверждает, что 95% населения — идиоты. Вроде как нонсенс,но на самом деле, все логично.
25. starik-2005 1429 20.09.17 12:11 Сейчас в теме
(24) ну с учетом того, что в спейсикс и тесла народу работает крайне мало, то ЛУРК сильно завысил цифру.
26. webester 28 20.09.17 15:16 Сейчас в теме
(25)Скорее занизил, судя по тому, что происходит вокруг.
И я не знаю каков процент
Сумасшедших на данный час,
Но если верить глазам и ушам -
Больше в несколько раз. (с)ИзвестноКто
27. TODD22 17 20.09.17 15:45 Сейчас в теме
(26)
Скорее занизил, судя по тому, что происходит вокруг.

ЧСВ разум затуманил... бывает....
28. starik-2005 1429 20.09.17 15:46 Сейчас в теме
(26)
Скорее занизил
Занизил одно, завысил второе. Я о количестве умных говорил, а Вы о дураках )))
29. webester 28 20.09.17 15:47 Сейчас в теме
(27)ну я то себя отношу к тем 95% куда уж нам уж....
(28)кхм )))
30. starik-2005 1429 20.09.17 15:48 Сейчас в теме
(29)
куда уж нам уж
Я, лично, всегда за левелап. Но, как говорил мудрец, что можно привести верблюда к воде, но заставить его пить не получится. Хочет - будет пить, не хочет - не будет.

Вот, кстати, придумал хорошую задачку для собеседования: есть куб или квадрат с ребром/стороной Х. Какая длина стороны/ребра будет у куба/квадрата с объемом/площадью, в два раза меньше исходного. Сильно сложная? )))
31. webester 28 20.09.17 15:49 Сейчас в теме
(30)Я пробую. Но вроде как уже напился. Не знаю может влезет еще немного.
>>Сильно сложная.
Что вы хотите выяснить этой задачей? Я тоже ищу, что бы спросить у кандидата в программисты, если он не умеет ничего. От слова вообще.
32. KapasMordorov 428 20.09.17 16:39 Сейчас в теме
(30)
Он над нами издевался. Ну сумасшедший, что возьмешь!
18. pbazeliuk 1488 19.09.17 18:39 Сейчас в теме
(5) На экзамене можно доказать свою позицию, но экзаменаторы могут иметь уровень ниже чем у программиста.
Вариант как в статье и подбор через временное хранилище могут иметь побочные эффекты, и если объяснить экзаменатору их - придирок не должно быть.

Очень давно сдавал специалиста, и решил задачу контроля остатков с помощью "нового" метода проведения и опции "БлокироватьДляИзменения" :) Почти влепили "-1" за решение пока не ткнул носом в литературу и новую на то время конфигурацию УТ 11.
20. TODD22 17 20.09.17 08:48 Сейчас в теме
(18)Речь была не столько о конкретном методе, сколько о том что не плохо было бы рассказать о нескольких методах.
А на экзамене не всегда есть возможность что то доказывать, не все сдают очно и не у всех есть возможность из за экзамена ехать за 5000 км.
17. spacecraft 19.09.17 11:06 Сейчас в теме
Придрались к наименованию переменных. Это больше к рефакторингу относится.
Тут есть программная "ошибка".
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
	Объект.ТабличнаяЧасть1.Добавить().ФИО = ВыбранноеЗначение;
КонецПроцедуры

Да и в другом примере ОбработкаВыбора. Этот код не всегда будет работать как задумано.
Hamsik; TreeDogNight; pbazeliuk; NSerget; jONES1979; +5 Ответить
33. Labotamy 20.09.17 20:28 Сейчас в теме
А это точно статья из 2017 года? =)
34. nomadon 322 20.09.17 22:29 Сейчас в теме
(33) нет конечно..
Пока действие происходит в одном месте весь фокус происходит в другом,
Статья про то что нужно все-таки не забывать про пользователей и делать им подбор, тем более это просто, а в комментах батл в стиле мисты)
35. Rustig 1021 22.09.17 08:49 Сейчас в теме
(0)
1) в УТ 10.3, в КА 1.1, которые на обычных формах, до сих пор используется форма подбора, и весь механизм, описанный в данной статье, используется в данной форме подбора. Что было на обычных формах, перешло в управляемые. Ничего нового. :)
Мне кажется, что разобраться с идеей подбора легче на обычных формах, чем на управляемых - нет отвлекающих процедур перехода с клиента на сервер и наоборот (какие переменные передать на сервер и получить обратно на клиенте).
2) У самой популярной методички по изучению 1с от автора Радченко методы организации подбора освещаются в отдельной главе книги.
3) В чем смысл статьи - я не понимаю.
Всякий раз в статьях посвященных управляемым формам замечаю одну и ту же тенденцию - "сложность" - как будто все прекрасное должно быть сложным - уберите из статьи слова "многопоточность", "асинхронность" , "НаКлиенте" - и идея подбора станет чуточку понятнее. :)
Прикрепленные файлы:
36. starik-2005 1429 22.09.17 10:52 Сейчас в теме
(35)
Всякий раз в статьях посвященных управляемым формам замечаю одну и ту же тенденцию - "сложность"
Статья как раз и говорит о том, что никакой сложности нет. В этом основная ее цель. А причина, по которой она появилась, в статье описана.
37. Jestery 25.09.17 22:37 Сейчас в теме
Если НЕ Рез = Неопределено Тогда


Сорри за возможно очевидный вопрос, я новичок. А почему не написать
Рез <> Неопределено?
38. starik-2005 1429 25.09.17 23:12 Сейчас в теме
(37)
А почему не написать
А вломы переключать раскладку.
39. strange2007 131 08.08.18 16:31 Сейчас в теме
(37) Потому что начинающие программисты всегда гнут пальцы знаниями "крутых" языков. Вот когда автор поймёт, что программирование в бизнесе, это работа с объектами этого самого бизнеса, а не методами сортировки пузырьком, тогда будет писать код грамотный и может даже профессиональный.
Каюсь, 20 лет назад я тоже считал единственным настоящим языком программирования ассемблер.
40. starik-2005 1429 08.08.18 17:48 Сейчас в теме
(39)
что программирование в бизнесе, это работа с объектами этого самого бизнеса, а не методами сортировки пузырьком, тогда будет писать код грамотный и может даже профессиональный
Ну когда автор этого сообщения поймет, что решение задач бизнеса в программировании - это применение актуальных методов и приемов, последних технологических достижений и разработок в области алгоритмов и обработки данных, тогда он немножко будет думать перед тем, как ляпнуть какую-то ерунду )))
41. strange2007 131 09.08.18 04:41 Сейчас в теме
(40) Хм, спорное утверждение. Во многих российских компаниях используется семёрка, а в западных компаниях даже попадаются системы, работающие на алгоритмах, написанных в прошлом тысячелетии. При этом большинство из этих примеров - успешные зарабатывания денег и программисты в этих компаниях зачастую в совершенстве владеют всякими современными средствами разработки!
42. strange2007 131 09.08.18 08:25 Сейчас в теме
(40) Всё. Нигде не нашёл в рекомендациях по программированию на 1С хоть какое-то упоминание про запутывание читаемости. И вообще, трудночитаемый код применяется только в некоторых случаях. Например, при создании защищённых модулей или для попытки зарабатывания дополнительных денег с невезучего клиента. В других случаях "трудный" код только вредит и значит гордое "А вломы переключать раскладку." является показателем не совсем высокого профессионализма.
43. starik-2005 1429 09.08.18 08:58 Сейчас в теме
(42) Вы даже не представляете, на сколько смешным может быть Ваш комментарий. Но точно могу сказать одно - комплексы вполне себе лечатся. Обратитесь к специалисту, ибо кроме как нарушением психики мне сложно объяснить проидирки к логическому оператору НЕ или к сокращению наименования переменных. Но, повторюсь, это лечится, при том весьма успешно.
44. strange2007 131 09.08.18 09:44 Сейчас в теме
(43) В единичном случае всё прекрасно понятно и без разницы как написано. А вот когда блок большой и его трудно анализировать, то такие мелочи вносят ещё большую сумятицу. Что часто приводит к мысли (часто тоже непрофессиональной) - "да я лучше тут всё перепишу". Именно поэтому код должен быть правильным во всём, в т.ч. и в мелочах.
Вообще мне удивительно, что Вы, адепт всяких сей, так позорите свой клан. Ведь и сишники и ассемблеристы (и все остальные) стремятся к понятному коду, а не к пальцегнутому.
Примечание: придирка не к конкретно сокращению переменных, а именно к ошибочному понимаю по поводу культуры программирования.
45. starik-2005 1429 09.08.18 12:52 Сейчас в теме
(44)
Именно поэтому код должен быть правильным во всём, в т.ч. и в мелочах.
С этим утверждением легко спорить исходя из тезиса, что лучше работающий прототип, чем теоретическая идеальная модель. Но я рад, что разговор вернулся в зону конструктива - это прогресс.

(44)
Вообще мне удивительно, что Вы, адепт всяких сей, так позорите свой клан. Ведь и сишники и ассемблеристы (и все остальные) стремятся к понятному коду, а не к пальцегнутому.
Подобный аргумент говорит о том, что Вы не особо разбираетесь в проблемматике. Фактически С++ и Asm (сейчас в крайних случаях) используются для достижения скорости, а скорость - это плоский код, с низким уровнем абстракции и высокой плотностью полезной нагрузки. К понятному же коду стремятся за счет повышения уровня абстракции, декларативности, замыканий. Но все эти механизмы понятны тем, кто в курсе, как они работают, начинающим же кодерам данный уровень заведомо недоступен и вызывает шок.

(44)
Примечание: придирка не к конкретно сокращению переменных, а именно к ошибочному понимаю по поводу культуры программирования.
Я так начал писать после того, как увидел однажды в коде подобную конструкцию (типа "Если НЕ а = 5"), а для меня логика, как совокупность булевых преобразований, проста и понятна, какой бы уровень вложенности условий бы ни был. Да, вложенность условий (та же логическая инверсия НЕ) повышает цикломатическую сложность кода, но в одном условии на "НЕ (РАВНО)" эта сложность повышается на единицу всего, что в рамках даже функции величина несущественная.
46. strange2007 131 09.08.18 13:12 Сейчас в теме
(45)
а для меня логика, как совокупность булевых преобразований, проста и понятна, какой бы уровень вложенности условий бы ни был

Очень сильно не соглашусь. И в СССР и в Западном мире давно уже доказано, что для человека максимальное количество анализируемых сущностей от 5 до 8. Всё что больше, это резкое повышение вероятных ошибок и как следствие, ухудшение во всём. Именно поэтому при декомпозиции любого процесса принято за один раз анализировать только 5-8 сущностей. В том числе это применимо и при анализе кода.
Проще говоря, когда всего одна строка кода, всё понятно и красиво. Но как только получаем большой модуль, состоящий из кучи противоречивых и/или непонятных кусков, то упираемся в стену "КАРАУЛ!". Кому это выгодно? Как писал выше, только тем, кто не хочет что бы его код читали или тем, кто зарабатывает таким образом.
И да, хорошая работа - оплачиваемая работа. Ну а ковыряние даже в своём коде с важным лицом, мало кому нравится.
Скажем так - если Ваши утверждения верны и имеют право жить, тогда большинство поддержит данные тезисы и, уверяю, 1С-вцы издадут целую главу рекомендаций, на тему как надо сокращать переменные. Ну а пока этого нет....

А про культуру программирования на ассемблере тоже много всего написано. Например, общепринятое обнуление регистра (против майкрософтовского).
47. starik-2005 1429 09.08.18 13:20 Сейчас в теме
(46)
А про культуру программирования на ассемблере тоже много всего написано. Например, общепринятое обнуление регистра (против майкрософтовского).
А которого регистра не подскажите? В Ассемблере x86 этих регистров до чертиков, при том регистр указателя стека, регистр указателя команды, регистры сегментов и некоторые другие регистры обнулять - это в принципе нонсенс. А SUB (E/X)AX,(E/X)AX или XOR (E/X)AX,(E/X)AX, как обнуление аккумулятора в соответствующей архитектуре (Х - 64 бита, Е - 32 бита, без них - 16 бит) - это все-же потребность, а не "культура".

Ну и уж если просто на Вашем уровне придираться к последнему Вашему сообщению, то вот знаками препинания вы, увы, пользоваться не умеете, а тексты читают куда большее количество людей, чем код. Удачи Вам и добра )))
48. strange2007 131 09.08.18 13:23 Сейчас в теме
(47) Да, это позор, когда делаешь элементарные ошибки в переписках и я этого стыжусь, а не горжусь этим)))
49. starik-2005 1429 09.08.18 13:25 Сейчас в теме
(48)
и я этого стыжусь
Ну так учитесь не делать их, ведь процитированная мной часть Вашего сообщения - это второе простое предложение, связанное с первым союзом "и", перед которым, как всем известно (не, ну правда всем, ибо оное в школе проходят), ставится запятая.
50. spacecraft 09.08.18 17:08 Сейчас в теме
(46)
1С-вцы издадут целую главу рекомендаций, на тему как надо сокращать переменные. Ну а пока этого нет....

Вообще-то есть. Давно. Может не в полной мере, но все же.
https://its.1c.ru/db/v8std#content:-2145783193:hdoc
51. acanta 45 15.08.18 13:46 Сейчас в теме
По аллегории Лукьяненко Иные - это аутисты, которые объединились и нашли себя в нашем мире, а сумрак - депрессия/неспособность вести себя как все. Короче, всем выйти из сумрака.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день

Руководитель группы сервисов ЭДО, ЭЦП и криптографии
Москва
зарплата от 150 000 руб.
Полный день

Руководитель группы интеграций (1С)
Москва
зарплата от 150 000 руб.
Полный день

Руководитель группы сервисов FRM на 1С
Москва
зарплата от 150 000 руб.
Полный день