Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
КоличествоОбъектов_ = 0;
Для Каждого СтрокаТаблицы Из Объекты Цикл
Если СтрокаТаблицы.Объект = Элемент.Значение Тогда
КоличествоОбъектов_ = КоличествоОбъектов_ + 1;
КонецЕсли;
КонецЦикла;
Если КоличествоОбъектов_ > 1 Тогда
Элемент.Значение = Справочники.ОбъектыСтрахования.ПустаяСсылка();
Предупреждение("Выбранный объект уже присутствует в списке");
Возврат;
КонецЕсли;
Нашел такое в конфе, которую поддерживаю.
Программер накнопал алгоритм, чтобы исключить попадание одного и того же объекта в таблицу.
Вначале был ступор, потом дошло.
Обычный дебил, который не может пользоваться стандартными коллекциями (сказать правду - препоганейшими). Ну и по мелочи, типа отсутствия знания типовых алгоритмов.
А стандартный из какого языка?
Вообще этот алгоритм умещается в гораздо меньшем количестве строк примерно вот так:
Если Объекты.НайтиСтроки(Новый Структура("Объект", Элемент.Значение)).Количество() > 1 Тогда
Элемент.Значение = Справочники.ОбъектыСтрахования.ПустаяСсылка();
Предупреждение("Выбранный объект уже присутствует в списке");
Возврат;
КонецЕсли;
Согласен, проморгал момент, там проверяется на > 1, а не на > 0.
А вот хамить не надо. Я программировать начинал еще с советских программируемых калькуляторов и прошел всё от ассемблера до мобильных приложений. Ну бывает, ошибся.
Вообще этот алгоритм умещается в гораздо меньшем количестве строк примерно вот так:
Стандартный в математическом смысле
> Справочники.ОбъектыСтрахования.ПустаяСсы лка()
Типизированный NULL 0_O
Емнип,
упадёт (возможно даже с неотловимой ошибкой), а
- нет, потому что в данном случае А - валидный объект, только пустой.
Остаётся только гадать, почему ПустаяСсылка(), а не ЗначениеПоУмолчанию().
Не позорь профессию, она из-за таких, как ты, имеет дурную репутацию.
А вот хамить не надо. Я программировать начинал еще с советских программируемых калькуляторов и прошел всё от ассемблера до мобильных приложений. Ну бывает, ошибся.