1. 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)
  2. 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)
  3. 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)
  4. 1C / Говнокод #16572

    −163

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

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

    safer_bwd, 20 Августа 2014

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

    −158

    1. 1
    2. 2
    3. 3
    4. 4
    Если Переменная1 <> 0 Тогда
    Иначе
       Переменная1 = 0;
    КонецЕсли;

    Пять минут пытался убедить нашу "программистку" с десятилетним стажем, что этот высер ничего не делает! Сошлись на том, что она "всё таки удалит его, но если появятся ошибки - она здесь не при чем"!
    Этот кусок я бы и не заметил, если бы не бросился в глаза пустой блок "Тогда" при использовании блока "Иначе"

    doom2good, 20 Августа 2014

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

    −163

    1. 1
    2. 2
    3. 3
    4. 4
    Если ЗначениеЗаполнено(Сделка) И ЛЕВ(Сделка.Ссылка, 10) = "Заказ пост" Тогда
             //другой говнокод
    
    КонецЕсли;

    Правильная проверка типов

    alexinzaz, 14 Августа 2014

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

    −163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Процедура ЗаполнитьТоЧтоможно()
    
    	СписокТогоЧтоМожно = СоздатьОбъект("СписокЗначений");
    	//Start = _GetPerformanceCounter();
    	ЗапросГрупп = CreateObject("ODBCRECORDSET");

    levxxx, 11 Августа 2014

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

    −160

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

    А этот наоборот с именем старается)

    Cascader, 28 Июля 2014

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

    −164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    аа = регсв.Выгрузить();
    	аа.Очистить();
    	Для каждого стр из Комплектующие Цикл
    		ввв  =аа.Добавить();
    		ввв.Номенклатура = Номенклатура;
    		ввв.характеристикаНоменклатуры = Характеристиканоменклатуры;
    		ввв.Комплектующая               = стр.Номенклатура;
    		ввв.ХарактеристикаКомплектующей = стр.ХарактеристикаНоменклатуры;
    		ввв.количество                  = стр.КоэффициентКолво;
    		ввв.единицаИзмерения            = стр.ЕдиницаИзмерения;
    		ввв.ДоляСтоимости               = стр.ДоляСтоимости;

    Как же сложно нормально назвать переменные((

    Cascader, 23 Июля 2014

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

    −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
    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
    Пока ДокиДляЗагрузки.Количество()>0 Цикл
    		СтрокаДоковЗагрузки = ДокиДляЗагрузки.Получить(0);
    		НомерДок = СтрокаДоковЗагрузки.НомерДок;
    		ДатаДок = СтрокаДоковЗагрузки.ДатаДок;
    		Отбор = Новый Структура();
    		Отбор.Вставить("НомерДок", НомерДок);
    		//Отбор.Вставить("ДатаДок", ДатаДок);
    		ДокиДляЗагрузкиФильтр = ДокиДляЗагрузки.НайтиСтроки(Отбор);
    		ДатаНач = НачалоДня(Дата(ДатаДок));
    		ДатаКон = КонецДня(Дата(ДатаДок));
    		Запрос = Новый Запрос;
    		Запрос.Текст = "ВЫБРАТЬ
    		               |	РеализацияТоваровУслуг.Ссылка
    		               |ИЗ
    		               |	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    		               |ГДЕ
    		               |	РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
    		               |	И РеализацияТоваровУслуг.Номер = &Номер";
    		Запрос.УстановитьПараметр("Номер", НомерДок);
    		Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
    		Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
    		Результат = Запрос.Выполнить().Выбрать();
    		Если Результат.Количество()=1 Тогда
    			Результат.Следующий();
    			СтрокаДок7 = ДокиДляЗагрузкиФильтр.Получить(0);
                            ...
                    КонецЕсли;
    КонецЦикла;

    //Поиск документа по номеру
    //Можно заменить одной строкой, но автор был истиный извращенец
    СтрокаДок7 = Документы.РеализацияТоваровУслуг.НайтиПо Номеру(СтрокаДоковЗагрузки.НомерДок, СтрокаДоковЗагрузки.ДатаДок);

    quickes, 21 Июля 2014

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