1. 1C / Говнокод #18959

    −100

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Если НЕ ЗначениеЗаполнено(Качество) Тогда
    	Качество = Справочники.Качество.Новый;
    КонецЕсли;
    	
    Если Качество = Справочники.Качество.Новый Тогда
    	Качество = Справочники.Качество.ПустаяСсылка();
    КонецЕсли;

    Запостил: Foxx, 03 Ноября 2015

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

    • Говно, конечно, но такое часто бывает. Ведь "требования уточняются по ходу проекта", чувак обнулил качество, даже не смотря на код выше.
      Ответить
    • HomoAlbus, как только-что выяснилось, все еще хуже :(
      Этот код был в ПередЗаписью() справочника НоменклатурныеПозиции, там чуть далее идет проверка на наличие дублей в справочнике.

      В очередном релизе типовой этот "ьаг" исправили, удалив вторую проверку.
      А в ОбработкаТабличныхЧастей.ПолучитьНоменкл атурнуюПозициюПоСоставляющим() оставили старый код, который ищет существующие номенклатурные позиции по пустому Качеству (заменяя для запроса Новый на пустую ссылку), и если не находит - создает новый элемент справочника (с пустым качеством). А что у нас при записи нового элемента справочника? Правильно - качество заменяется на Новый, а если повезло и при этом в справочнике для него находится дубль - документ не проводится))))

      С первоначальным кодом все хоть работало..
      Ответить
      • Ох же епт. Напомнило гифку, про обновление нетиповой конфигурации:
        http://pipec.ru/156512-2405632-sneg_na_kryshe_ne_dolzhen_lezhat/1-foto
        Ответить
    • Если Качество = Справочники.Качество.НайтиПоНаименованию ("Дерьмовое") Тогда
      ПереместитьНаРозничныйСклад();
      ИначеЕсли Качество = Справочники.Качество.Новый Тогда
      ИспользоватьДляВнутреннегоПотребления();
      КонецЕсли;
      Ответить

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