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

    −126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    ТовМат = РегистрыСведений.ТоварнаяМартица;
    ГруппаД = Справочники.КлассификацияABC.НайтиПоНаименованию("Д").Ссылка;
    ТЗНомен = Запрос.Выполнить().Выгрузить();Ит=0;тСерт = Справочники.СертификатыСоответствия.ПустаяСсылка();
    ТЗНомен.Сортировать("Производитель,Сертификат,Номенклатура");
    тПроизвод="";
    Для Каждого стр Из ТзНомен Цикл
    	Если Объект.ИсключитьТоварыГруппыД = Истина Тогда
    		Если стр.Номенклатура.КлассABC = ГруппаД Тогда
    			Продолжить;
    		КонецЕсли;	
    	КонецЕсли;	
    
    	Если стр.Номенклатура.ЭтоГруппа = Ложь Тогда
    		Если НаличиеВМатрице = истина Тогда
    			НаборД = ТовМат.СоздатьНаборЗаписей();
    			// устанавливаем параметры отбора по полному набору Измерений регистра:
    			НаборД.Отбор.нОменклатура.Установить(стр.Номенклатура.Ссылка);
    			НаборД.Прочитать();
    			Если НаборД.Количество() = 0 Тогда
    				Продолжить;
    			Конецесли;	
    		КонецЕсли;

    Бывший программист из нашей конторы отбирает строки таблицы с номенклатурой, по которой отсутствуют записи в регистре сведений, используя при этом другие "удивительные приемы программирования"... Ушел на повышение в саму 1С)))

    GORYNY4, 12 Сентября 2014

    Комментарии (5)
  2. 1C / Говнокод #16679

    −168

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Процедура ПриЗаписи(Отказ)
     
    Док = Ссылка.ПолучитьОбъект(); 
    Док.ОбменДанными.Загрузка = Истина; 
    Док.Записать();
     
    КонецПроцедуры

    И это все в форме документа

    alexinzaz, 11 Сентября 2014

    Комментарии (2)
  3. 1C / Говнокод #16674

    −165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Попытка
    	ДокО.Записать();
    Исключение
     	Попытка
    		ДокО.Записать();
    	Исключение
    	КонецПопытки;	
    КонецПопытки;

    а вдруг!

    alexinzaz, 10 Сентября 2014

    Комментарии (26)
  4. 1C / Говнокод #16641

    −169

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    //  Параметры - реквизит объекта. Больше (!) нигде не используется.
    
    Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    	Если ЭтоНовый() Тогда
    		Параметры = "000001000";
    	КонецЕсли;
    	
    	ФлагОписания = ?(Сред(Параметры,7,1) = "1", Истина, Ложь);
    	ФлагМестоX     = ?(Сред(Параметры,8,1) = "1", Истина, Ложь);
    	ФлагМестоY      = ?(Сред(Параметры,9,1) = "1", Истина, Ложь);		
    КонецПроцедуры
    
    Процедура СменаФлага()    
    	Параметры = Лев(Параметры,6)+Строка(Число(ФлагОписания))+Строка(Число(ФлагМестоX))+Строка(Число(ФлагМестоY));
    КонецПроцедуры
    
    
    Процедура ФлагОписанияПриИзменении(Элемент)	
    	СменаФлага();	
    КонецПроцедуры
    
    Процедура ФлагМестоXПриИзменении(Элемент)	
    	СменаФлага();	
    КонецПроцедуры
    
    Процедура ФлагМестоYПриИзменении(Элемент)	
    	СменаФлага();	
    КонецПроцедуры

    Хотел быть шифровальщиком, но кривая дорожка жизни…

    safer_bwd, 04 Сентября 2014

    Комментарии (4)
  5. 1C / Говнокод #16639

    −172

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    Процедура ПриЗаписи(Отказ)
    	// Проверяем роль
    	
    	Если рольДоступна ("ДляКасираПроведениеВТечениеОдногоДня")   Тогда		 
    		  мТекущаяДатаДокумента = Формат(мТекущаяДатаДокумента, "ДЛФ=D");
    		Если  мТекущаяДатаДокумента = Формат(ТекущаяДата(), "ДЛФ=D") ТОгда
    			Записать ();
    		Иначе
    			Отказ = истина;
    			Предупреждение ("Нарушение прав доступа");
    			ЭтаФорма.Закрыть();
    		КонецЕсли;        
    	КонецЕсли;
    КонецПроцедуры

    И это все в модуле формы.

    alexinzaz, 04 Сентября 2014

    Комментарии (6)
  6. 1C / Говнокод #16636

    −162

    1. 1
    НоваяСтрока.ТелефонныйНомер = Прав(НоваяСтрока.ТелефонныйНомер, стрДлина(НоваяСтрока.ТелефонныйНомер));

    Выдрано из Рарус СофтФон. Ума не приложу, что они хотели этим сказать...

    Ivon, 03 Сентября 2014

    Комментарии (42)
  7. 1C / Говнокод #16605

    −167

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    Функция НайтиСтатусРемонта(ВыбСтатус) Экспорт
    	Возврат Ремонт.Найти(ВыбСтатус, "СтатусРемонта");
    КонецФункции
    
    Процедура УстановитьДанныеСтрокиРемонта(СтатусРемонта, ДатаСтатуса, ДатаВх) Экспорт
    	СТЧ = НайтиСтатусРемонта(СтатусРемонта);
    	Попытка
    		Если СТЧ.Дата = Дата(1,1,1) Тогда
    			Попытка СТЧ.Дата = ДатаВх; Исключение КонецПопытки;
    		ИначеЕсли СТЧ.Дата <> ДатаВх Тогда
    			обСообщить(""+Ссылка+" "+СтатусРемонта+" Дата уже установлена",СтатусСообщения.Важное);
    		КонецЕсли;
    	Исключение
    	КонецПопытки;
    КонецПроцедуры

    На фоне всей базы это всего лишь цветочки ...
    Есть еще отчет, для формирования которого создается 36 (!!!) запросов )))
    Хотел отчет выложить, но ограничение из 100 строк меня остановило :(

    anton903, 27 Августа 2014

    Комментарии (38)
  8. 1C / Говнокод #16602

    −163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    Для Индекс = 0 По МассивДокументов.Количество()-1 Цикл
    		
    		Документ = МассивДокументов.Получить(Индекс);
    		
    		Если Документ.Проведен Тогда
    	
    			УстановитьСтатусДокумента(ТаблицаДокументов, Документ, "Закрыт");
    			
    			// Удаляем элемент из массива.
    			МассивДокументов.Удалить(Индекс);
    			
    		КонецЕсли;
    		
    	КонецЦикла;

    Абстракция мастера игры в бисер протекла. Но работало долго =)

    safer_bwd, 27 Августа 2014

    Комментарии (6)
  9. 1C / Говнокод #16597

    −165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    Функция ПолучитьЧистыйКод(Код) Экспорт
            //ЧистыйКод = "0";
    	ЧистыйКод = "";
    	Инд = 1;
    	Пока Инд < 18 Цикл
    		Символ = Сред(Код, Инд, 1);
    		Если Символ = " " ИЛИ Символ = "" ИЛИ Символ = " " Тогда   // А вот это - самая фееричная строка 
    			Инд = Инд + 1;
    			Продолжить;
    		Иначе 
    			ЧистыйКод = ЧистыйКод + Символ;
    		КонецЕсли;
    		Инд = Инд + 1;
    	КонецЦикла;
    	Возврат ЧистыйКод;
    КонецФункции

    Чел видимо только что с ассемблера соскочил.

    Jeyrico, 26 Августа 2014

    Комментарии (17)
  10. 1C / Говнокод #16572

    −163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Стр = Строка(Формат(ТекущаяДата(), "ДФ=гггг"))
    			+ Формат(ТекущаяДата(), "ДФ=ММ") 
    			+ Формат(ТекущаяДата(), "ДФ=дд")+"_";
    			
    	Стр = Стр + СтрЗаменить(Строка(Формат(ТекущаяДата(), "ДЛФ=В")),":","");

    Мусьё знает толк. Очердной туроператор склеил ласты =)

    safer_bwd, 20 Августа 2014

    Комментарии (9)