Бухгалтерия / Говнокод #12766 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
КоличествоОбъектов_ = 0;
	
	Для Каждого СтрокаТаблицы Из Объекты Цикл
		Если СтрокаТаблицы.Объект = Элемент.Значение Тогда
			КоличествоОбъектов_ = КоличествоОбъектов_ + 1;
		КонецЕсли;
	КонецЦикла;

	Если КоличествоОбъектов_ > 1 Тогда
		Элемент.Значение = Справочники.ОбъектыСтрахования.ПустаяСсылка();
		Предупреждение("Выбранный объект уже присутствует в списке");
		Возврат;
	КонецЕсли;

Нашел такое в конфе, которую поддерживаю.
Программер накнопал алгоритм, чтобы исключить попадание одного и того же объекта в таблицу.
Вначале был ступор, потом дошло.

Запостил: Ivon Ivon, (Updated )

Комментарии (12) RSS

  • Обычный дебил, который не может пользоваться стандартными коллекциями (сказать правду - препоганейшими). Ну и по мелочи, типа отсутствия знания типовых алгоритмов.
    Ответить
      • А стандартный из какого языка?
        Вообще этот алгоритм умещается в гораздо меньшем количестве строк примерно вот так:
        Если Объекты.НайтиСтроки(Новый Структура("Объект", Элемент.Значение)).Количество() > 1 Тогда
        		Элемент.Значение = Справочники.ОбъектыСтрахования.ПустаяСсылка();
        		Предупреждение("Выбранный объект уже присутствует в списке");
        		Возврат;
        	КонецЕсли;
        Ответить
        • > А стандартный из какого языка?
          Стандартный в математическом смысле

          > Справочники.ОбъектыСтрахования.ПустаяСсы лка()
          Типизированный NULL 0_O
          Ответить
          • Типизированное пустое значение заданного вида.
            Емнип,
            А = Неопределено;
            А.Наименование = "Тест";

            упадёт (возможно даже с неотловимой ошибкой), а
            А = Справочники.Ололо.ПустаяСсылка();
            А.Наименование = "Тест";

            - нет, потому что в данном случае А - валидный объект, только пустой.
            Ответить
            • А, вон оно что. Default.
              Остаётся только гадать, почему ПустаяСсылка(), а не ЗначениеПоУмолчанию().
              Ответить
              • потому что это пустая ссылка, а не значение по умолчанию
                Ответить
              • Вполне возможно, я же не настоящий сварщик. Но чтение из него пройдёт нормально.
                Ответить
        • А нахрена тут НайтиСтроки, если достаточно Найти. Незачем искать все.
          Ответить
          • А затем, что "Найти()" вернет только одну (первую попавшуюся) строку, а задача - проверка на наличие дублей.

            Не позорь профессию, она из-за таких, как ты, имеет дурную репутацию.
            Ответить
            • Согласен, проморгал момент, там проверяется на > 1, а не на > 0.
              А вот хамить не надо. Я программировать начинал еще с советских программируемых калькуляторов и прошел всё от ассемблера до мобильных приложений. Ну бывает, ошибся.
              Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8