|
Раскройте тайный смысл кода | ☑ | ||
---|---|---|---|---|
0
mvgfirst
27.03.13
✎
11:27
|
Имеем УТ 10.3
Справочник.НастройкиОбменаССайтом В модуле объекта есть такой код: Функция НайтиРеглЗаданиеПоПараметру(УникальныйНомерЗадания) Попытка Если НЕ ПустаяСтрока(УникальныйНомерЗадания) Тогда УникальныйИдентификаторЗадания = Новый УникальныйИдентификатор(УникальныйНомерЗадания); ТекущееРегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(УникальныйИдентификаторЗадания); Иначе ТекущееРегламентноеЗадание = Неопределено; КонецЕсли; Исключение ТекущееРегламентноеЗадание = Неопределено; КонецПопытки; Возврат ТекущееРегламентноеЗадание; КонецФункции Функция НайтиРегламентноеЗаданиеПоНастройке() Экспорт ТекущееРегламентноеЗадание = НайтиРеглЗаданиеПоПараметру(РегламентноеЗадание); Возврат ТекущееРегламентноеЗадание; КонецФункции Функция ПолучитьОбъектРегламентногоЗадания() Экспорт Задание = НайтиРегламентноеЗаданиеПоНастройке(); Возврат Задание; КонецФункции Объясните зачем сделаны эти матрешки? Это что тако себе ИНДО-код в 1С? Ну я еще понимаю что функция НайтиРегламентноеЗаданиеПоНастройке() - может вызываться из других модулей (что она и делает один раз) и ее удобнее вызывать чем вызывать функцию НайтиРегламентноеЗаданиеПоПараметру, причем удобнее только потому что ненадо указывать параметр. Но зачем "ПолучитьОбъектРегламентногоЗадания()" - если в этом есть тайный смысл, скрыйтый от меня недалекого - то объясните мне, я тоже хочу обладать тайными знаниями. |
|||
1
sda553
27.03.13
✎
11:31
|
Посотри кто использует ту, а кто другую. Так просто не ответить, смотреть в 1с надо. Возможно это сделано в целях полиморфизма
|
|||
2
cw014
27.03.13
✎
11:32
|
Нормальный код, чем он тебе не пригляделся
|
|||
3
sda553
27.03.13
✎
11:33
|
(2) Тем что вторая функция по функционалу ничем не отличается от первой и ТС задает вопрос, а зачем их тогда две одинаковофункциональных функции?
|
|||
4
sda553
27.03.13
✎
11:33
|
т.е. третья от второй
|
|||
5
mvgfirst
27.03.13
✎
11:37
|
Вот именно, зачем третья? Если в принципе даже одной можно было бы обойтись. Т.к. во второй не делается ни какой выбора и всегда идет поиск только по параметру, то внутри нее и можно было реализовать эту функциональность
А от первой и третьей избавится. Однако же, возможно в других местах кода, нужно будет использовать поиск по параметру, причем они могут различаться, поэтому я согласен что право на жизнь у первой функции есть. Но смысл созданий третьей - мне остался непонятным. |
|||
6
mvgfirst
27.03.13
✎
11:41
|
Третья вызывается только из модуля формы этого же справочника.
Единственное скольнибудь логичное объяснение - дело в названии в одном случае мы как бы "ищем" в другом как бы "получаем" - видимо АРХИТЕКТОР сего чуда предполагал что у пользователей в головах между этими двумя понятиями пропасть.... и он таким образом ее устранил. |
|||
7
Зойч
27.03.13
✎
11:44
|
(0) Это ты еще БСП не видел. Там такие матрешки до 15 уровней вложенности
|
|||
8
sda553
27.03.13
✎
11:50
|
(6) >>Третья вызывается только из модуля формы
А не клиентская ли она случаем? |
|||
9
mvgfirst
27.03.13
✎
12:12
|
(8) УТ 10.3 никаких разделений нет. Все три модуля функции написаны как в (0) без сокращений и искажений. Все три написаны в модуле объекта справочника.
Команд препроцессора нет. Так что ... сами понимаете. |
|||
10
mvgfirst
27.03.13
✎
12:13
|
(7) Таки платят зарплату кодерам за строки кода?
|
|||
11
Паланик
27.03.13
✎
12:28
|
(10) +1
Да и вторая функция не нужна, если первую сделать экспортной и заменть УникальныйНомерЗадания на РегламентноеЗадание, и тоже не используя параметров. |
|||
12
samozvanec
27.03.13
✎
12:29
|
(0) есть люди, которые от методологии написание типовых перенимают именно вот такие методики. с ними сложно работать. в целом все выглядит грамотно и масштабно, видно, что писатель опытный. однако, чтобы понять, что-где, нужно кучу времени(особый фетиш, когда в твоем коде сложно разобраться), да и потом чаще всего выясняется, что доработке такой код не подлежит, либо впаять костыль, либо все переписать.
|
|||
13
samozvanec
27.03.13
✎
12:31
|
(0) откуда, кстати, вторая берет параметр РегламентноеЗадание?
|
|||
14
mvgfirst
27.03.13
✎
12:34
|
(13) РегламентноеЗадание - реквизит справочника. Из модуля объекта которого - она собственно и вызвается.
|
|||
15
Паланик
27.03.13
✎
12:35
|
(13) Наверное переменная модуля, где-то присваивается. В любом случае, по коду в (0) очевидно, что извне напрямую туда ничего не попадает.
|
|||
16
Reset
27.03.13
✎
12:36
|
Третья вполне может быть заготовкой на будущее.
В дальнейшем в ней мог планироваться дополнительный обработчик и тогда он будет отличаться по смыслу от второй. В названии уже сейчас можно проследить разное назначение - вторая - ищет, третья получает объект |
|||
17
mvgfirst
27.03.13
✎
12:38
|
(11) Собственно да, функция НайтиЗначениеПоПараметру - может быть смело лишина входного параметра и полностью заменить вторую и третью функции, став экспортной.
|
|||
18
mvgfirst
27.03.13
✎
12:39
|
(16)
"Управление торговлей", редакция 10.3 (10.3.13.2) (http://v8.1c.ru/trade/) Copyright (С) ЗАО "1C", 2003-2009. Все права защищены (http://www.1c.ru) Вот версия редакции откуда я взял этот код. У вас наверняка есть возможность посмотреть - появилось ли будущее у этой функции в следущих поколениях этой конфигурации. Готов спорить на ящик пива - что нет у нее будуего |
|||
19
Reset
27.03.13
✎
12:40
|
(17) С чего это она может быть лишена параметра? В запвисмоти от параметра там делаются разные действия
|
|||
20
Паланик
27.03.13
✎
12:41
|
(16) Заготовка на будущее... а бабло за строки кода - уже в эту получку. Круто, чо. И зачем там попытку использовать? Так можно вообще весь свой код в попытки засовывать. И зачем разбивать присвоение ТекущееРегламентноеЗадание на две строки? Тупо комуто на ипотеку или на литье пару тыщь не хватало.
|
|||
21
Reset
27.03.13
✎
12:41
|
(18) Я не собираюсь ничего смотреть. Это тебе интересно, ты и смотри. В (16) говорится, что в момент написания мог планироваться разный смысл.
|
|||
22
Reset
27.03.13
✎
12:42
|
Кто про что, а адинэсники про бабло
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |