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

    −97

    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
    ВыборкаИсточник = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    		Пока ВыборкаИсточник.Следующий() Цикл
    			
    			ВыборкаВнутреннийЗаказ = ВыборкаИсточник.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    			Пока ВыборкаВнутреннийЗаказ.Следующий() Цикл
    				
    				ВыборкаВнешнийЗаказ = ВыборкаВнутреннийЗаказ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    				Пока ВыборкаВнешнийЗаказ.Следующий() Цикл
    					
    					ВыборкаПоступление = ВыборкаВнешнийЗаказ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    					Пока ВыборкаПоступление.Следующий() Цикл
    						
    						ВыборкаКЕ = ВыборкаПоступление.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    						Пока ВыборкаКЕ.Следующий() Цикл
    							
    							ВыборкаНоменклатура = ВыборкаКЕ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    							Пока ВыборкаНоменклатура.Следующий() Цикл
    								
    								ВыборкаХарактеристика = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    								Пока ВыборкаХарактеристика.Следующий() Цикл
    									
    									ВыборкаСерийныйНомер = ВыборкаХарактеристика.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    									Пока ВыборкаСерийныйНомер.Следующий() Цикл
    										
    										ПроверитьНехватку(ВыборкаСерийныйНомер, Отказ, "складе числится");

    Конфа Итилиум, редакция 4.4 (4.4.2.3). Проведение документа.... таких циклов два.....

    UtiliUm, 13 Мая 2016

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

    −96

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Процедура Таймаут(ЧислоСекунд)
    	НачВремя = ТекущаяДата();
    	Пока 1 = 1 Цикл
    		Если ТекущаяДата() - НачВремя > ЧислоСекунд Тогда
    			Прервать;
    		КонецЕсли;
    	КонецЦикла; 
    КонецПроцедуры

    Вот это я понимаю!!! Таймаут...
    Это из той же конфигурации, что и прошлые мои кладки.
    По прежнему коплю на патроны.
    Открыт для любых конструктивных идей.

    ivan_0110, 05 Мая 2016

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

    −104

    1. 1
    На форме 31 колонка, и динозавр который это делал для каждой прописал одинаковое условное оформление. В конечном итоге я поместил все в цикл, чтобы не резало глаза, остается только предполагать, что я увидел бы если  колонок на форме было 1000.

    Процедура ДниПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

    Если ЗначениеЗаполнено(ДанныеСтроки.Д1) Тогда
    Если ДанныеСтроки.Д1.СостояниеСобытия = Перечисления.СостоянияСобытий.Завершено Тогда
    ОформлениеСтроки.Ячейки.Д1.ЦветФона = WebЦвета.СветлоЗеленый;
    ИначеЕсли ДанныеСтроки.Д1.СостояниеСобытия = Перечисления.СостоянияСобытий.CRM_НеОбра ботано Тогда
    ОформлениеСтроки.Ячейки.Д1.ЦветФона = WebЦвета.СветлоРозовый;
    ИначеЕсли ДанныеСтроки.Д1.СостояниеСобытия = Перечисления.СостоянияСобытий.Запланиров ано Тогда
    ОформлениеСтроки.Ячейки.Д1.ЦветФона = WebЦвета.Желтый;
    КонецЕсли;
    ОформлениеСтроки.Ячейки.Д1.Текст = ДанныеСтроки.Д1.ОписаниеСобытия;
    Если ДанныеСтроки.Д1.ВидСобытия = Перечисления.ВидыСобытий.ЛичнаяВстреча Тогда
    ОформлениеСтроки.Ячейки.Д1.Шрифт = Новый Шрифт(ОформлениеСтроки.Ячейки.Д1.Шрифт,, ,Истина);
    КонецЕсли;
    КонецЕсли;

    ...

    // И так далее 31 раз

    ...


    Если ЗначениеЗаполнено(ДанныеСтроки.Д31) Тогда
    Если ДанныеСтроки.Д31.СостояниеСобытия = Перечисления.СостоянияСобытий.Завершено Тогда
    ОформлениеСтроки.Ячейки.Д31.ЦветФона = WebЦвета.СветлоЗеленый;
    ИначеЕсли ДанныеСтроки.Д31.СостояниеСобытия = Перечисления.СостоянияСобытий.CRM_НеОбра ботано Тогда
    ОформлениеСтроки.Ячейки.Д31.ЦветФона = WebЦвета.СветлоРозовый;
    ИначеЕсли ДанныеСтроки.Д31.СостояниеСобытия = Перечисления.СостоянияСобытий.Запланиров ано Тогда
    ОформлениеСтроки.Ячейки.Д31.ЦветФона = WebЦвета.Желтый;
    КонецЕсли;
    ОформлениеСтроки.Ячейки.Д31.Текст = ДанныеСтроки.Д31.ОписаниеСобытия;
    Если ДанныеСтроки.Д31.ВидСобытия = Перечисления.ВидыСобытий.ЛичнаяВстреча Тогда
    ОформлениеСтроки.Ячейки.Д31.Шрифт = Новый Шрифт(ОформлениеСтроки.Ячейки.Д31.Шрифт, ,,Истина);
    КонецЕсли;
    КонецЕсли;

    КонецПроцедуры

    1sik, 13 Апреля 2016

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

    −97

    1. 1
    2. 2
    3. 3
    4. 4
    ОбластьШапкаУслуги.Параметры.ДатаДок  = Формат(Строка(Формат(НайтиДатуОт(Свойства),"ДФ=dd.MM.yyyy")), "ДФ=dd.MM.yyyy");
    
    
    .. + Строка(Формат(Дата(Договор.Основной.Найти(Идентификатор,"Идентификатор").Дата),"ДЛФ=Д"));

    Этот писатель не только умеет преобразовывать типы, но и использовать заветную комбинацию для быстрого написания кода (Ctrl+C -> Ctrl+V), потому что подобных творений было найдено более тысячи при глобальном поиске по конфигурации.

    CMblCL, 18 Марта 2016

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

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Для Каждого Ст Из ВремяФактическое Цикл
    	ВремяПрибытияНаЗагрузкуДляРасчета = ?(МаршрутыТаблица[Ст.НомерСтроки-1].ДатаПогрузкиПлан >= Ст.ВремяПрибытияНаЗагрузку,МаршрутыТаблица[Ст.НомерСтроки-1].ДатаПогрузкиПлан,Ст.ВремяПрибытияНаЗагрузку);
    	ВремяПрибытияНаВыгрузкуДляРасчета = ?(?(ЗначениеЗаполнено(МаршрутыТаблица[Ст.НомерСтроки-1].ДатаРазгрузкиПлан),МаршрутыТаблица[Ст.НомерСтроки-1].ДатаРазгрузкиПлан,Ст.ВремяПрибытияНаВыгрузку) >= Ст.ВремяПрибытияНаВыгрузку,?(ЗначениеЗаполнено(МаршрутыТаблица[Ст.НомерСтроки-1].ДатаРазгрузкиПлан),МаршрутыТаблица[Ст.НомерСтроки-1].ДатаРазгрузкиПлан,Ст.ВремяПрибытияНаВыгрузку),Ст.ВремяПрибытияНаВыгрузку);
    	ВремяНаПогрузке = -1*(ВремяПрибытияНаЗагрузкуДляРасчета - Ст.ВремяУбытияСЗагрузки)/60;//В минутах
    	ВремяНаВыгрузке = -1*(ВремяПрибытияНаВыгрузкуДляРасчета - Ст.ВремяУбытияСВыгрузки)/60;//В минутах
    	ОбщееВремя.Добавить(ВремяНаПогрузке+ВремяНаВыгрузке);
    КонецЦикла;

    Когда любишь тернарные операторы больше чем маму и президента.

    HomoAlbus, 13 Марта 2016

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

    −89

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    КолЯ=	ЦЕЛ(колБутДлчЯщ/20) ;
    колЯщ=колЯЩ+ КолЯ;
    если колЯ< колБутДлчЯщ/20 Тогда
    	колЯщ=  колЯщ+1;
    конецЕсли;

    Что будет, если пустить в конфигуратор беременную женщину? В коде окажется Коля.

    onden, 09 Марта 2016

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

    −99

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Функция ЭтоКолбаса(НомерЗаказа) Экспорт
    	Результ = Ложь;
    	Если (НомерЗаказа <= 99999) ИЛИ ((НомерЗаказа > 999999) и ((Цел(НомерЗаказа/10000) - Цел(НомерЗаказа/100000)*10) = 2)) Тогда
    		Результ = Истина;
    	КонецЕсли;
    	Возврат Результ;	   
    КонецФункции

    Так... чисто поржать)

    levxxx, 02 Марта 2016

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

    −99

    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
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    КолонкаTMCID=ТаблицаСЗаказ.колонки.TMCID;
    	КолонкаTMCID.ТекстШапки				= "№ тов.";
    	КолонкаTMCID.толькоПросмотр			= Истина;
    	КолонкаTMCID.Ширина					= Окр(ШиринаТаблицы * 0.08, 0);
    	
    	КолонкаType=ТаблицаСЗаказ.колонки.Type;
    	КолонкаType.ТекстШапки				= "Тип этикетки";
    	КолонкаType.толькоПросмотр			= Истина;
    	КолонкаType.Ширина					= Окр(ШиринаТаблицы * 0.08, 0);
    	
    	КолонкаName=ТаблицаСЗаказ.колонки.Name;
    	КолонкаName.ТекстШапки				= "Наименование";
    	КолонкаName.толькоПросмотр			= Истина;
    	КолонкаName.Ширина					= Окр(ШиринаТаблицы * 0.3, 0);
    	
    	КолонкаКод=ТаблицаСЗаказ.колонки.Kod_et;
    	КолонкаКод.ТекстШапки				= "Код этикетки";
    	КолонкаКод.толькоПросмотр			= Истина;
    	КолонкаКод.Ширина					= Окр(ШиринаТаблицы * 0.08, 0);
    		
    	//КолонкаSpecif=ТаблицаСЗаказ.колонки.Specif;
    	//КолонкаSpecif.ТекстШапки			= "Спецификация заказа";
    	//КолонкаSpecif.толькоПросмотр		= Истина;
    	//КолонкаSpecif.Ширина				= Окр(ШиринаТаблицы * 0.11, 0);
    	
    	КолонкаUnit=ТаблицаСЗаказ.колонки.Unit;
    	КолонкаUnit.ТекстШапки				= "Ед.изм";
    	КолонкаUnit.толькоПросмотр			= Истина;
    	КолонкаUnit.Ширина					= Окр(ШиринаТаблицы * 0.08, 0);
    	
    	КолонкаГород = ТаблицаСЗаказ.колонки.НаправлениеНамоткиГород;
    	КолонкаГород.ТекстШапки				= "Город";
    	КолонкаГород.толькоПросмотр			= Истина;
    	КолонкаГород.Ширина					= Окр(ШиринаТаблицы * 0.12, 0);
    	
    	КолонкаАдрес = ТаблицаСЗаказ.Колонки.АдресДоставки;
    	КолонкаАдрес.ТекстШапки				= "Адрес Доставки";
    	КолонкаАдрес.толькоПросмотр			= Истина;
    	КолонкаАдрес.Ширина					= Окр(ШиринаТаблицы * 0.12, 0);

    Ну вот не в падлу людям такой код писать... Подумаешь +-10 ненужных переменных. Какой-там нахрен рефакторинг?! Делать больше нечего рефакторингом всяким занниматься. Про повторное использование кода слышали? Так вот взяли код, скопировали, вставили - там самым повторно использовали. Горите в аду, копипастеры!

    levxxx, 02 Марта 2016

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

    −97

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    tmpDt = ДобавитьМесяц(СсылкаНаОбъект.Дата, -3);
    Если Месяц(СсылкаНаОбъект.Дата)<4 Тогда
    	txt = "Д.в. "+Месяц(tmpDt)+"/"+Год(tmpDt)+"-"+ "0"+Месяц(СсылкаНаОбъект.Дата)+"/"+Формат(Год(СсылкаНаОбъект.Дата),"ЧГ=0");
    Иначе
    	Если Месяц(СсылкаНаОбъект.Дата)<10 Тогда
    		txt="Д.в. "+"0"+Месяц(tmpDt)+"-"+"0"+Месяц(СсылкаНаОбъект.Дата)+"/"+Формат(Год(СсылкаНаОбъект.Дата),"ЧГ=0");
    	Иначе    
    		txt="Д.в. "+"0"+Месяц(tmpDt)+"-"+Месяц(СсылкаНаОбъект.Дата)+"/"+Формат(Год(СсылкаНаОбъект.Дата),"ЧГ=0");
    	КонецЕсли;
    КонецЕсли;

    Неумение пользоваться форматной строкой приводит к перлам наподобие "если месяц меньше 10, то добавить к месяцу нолик слева".
    Это не считая разборки в числа и сборки назад в строку.

    WildSery, 01 Марта 2016

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

    −98

    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
    Процедура ОсновныеДействияФормыПароль(Кнопка)
    	Если ЭтотОбъект.Пароль = "база7" Тогда
    		ЭлементыФормы.РедактированиеСклада.Доступность = Истина;
    		ЭтотОбъект.Пароль = "";
    		Сообщить("Вы можете изменить галку 'Редактирование склада'");
    	ИначеЕсли ЭтотОбъект.Пароль = "разрешение" Тогда
    		ЭлементыФормы.ПривелигированныйПользователь.Доступность = Истина;
    		ЭтотОбъект.Пароль = "";
    		Сообщить("Вы можете изменить галку 'Привелигированный пользователь'");
    	Иначе
    		Сообщить("Вы ввели неверный пароль");
    	КонецЕсли;
    
    КонецПроцедуры

    Реализация ограничения прав на установку прав для пользователей ИБ.

    CMblCL, 25 Февраля 2016

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