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

    −99

    1. 1
    2. 2
    3. 3
    4. 4
    ЭлементыФормы.РедактированиеСклада.Доступность = Ложь;	
    Если ЭтотОбъект.ЭтоНовый() Тогда
    	ЭлементыФормы.РедактированиеСклада.Доступность = Ложь;
    КонецЕсли;

    когда склад недоступен никогда...

    CMblCL, 05 Февраля 2016

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

    −101

    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
    Процедура foo()
    		...
    		РезультатИтого = 0;
    		ТабДокВременный = Новый ТабличныйДокумент;
    	   		
    		ПечатьСчетИзвещения(...,РезультатИтого);
    		
    		Если (РезультатИтого > 0 ИЛИ РезультатИтого < 0 ИЛИ РезультатИтого = 0) и 
       	   	   	   	(СокрЛП(Строка(мСтруктураДанных.ЛицевойСчетФио)) <> "Вероятный собственник")  Тогда //это мое
    		...
    КонецПроцедуры
    
    //Функция формирует табличный документ с печатной формой СчетИзвещения
    //Возвращаемое значение:
    // Табличный документ - печатная форма 
    Функция ПечатьСчетИзвещения(..., РезультатИтого = Неопределено)  
    	...
       	Если РезультатИтого <> Неопределено Тогда
       	   	РезультатИтого = ОбластьИтого2.Параметры.КОплате; 
       	КонецЕсли;
    	...
    КонецФункции

    Самый реальный способ получения итогов запроса, что я видел!
    + кто-то ничье застолбил.
    Это из той же конфигурации, что и первая моя кладка.

    ivan_0110, 05 Февраля 2016

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

    −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
    Если Сальдо = Перечисления.ДаНет.Да И Кредит = Перечисления.ДаНет.Да Тогда
                
    	СуммаКОплате   =  Строка.Сальдо +  Строка.Начислено +  Строка.Разовые - Строка.Оплата - Льгота;
    	Строка.Коплате = СуммаКОплате;
                
    ИначеЕсли Сальдо = Перечисления.ДаНет.Нет И Кредит = Перечисления.ДаНет.Да Тогда
                
    	СуммаКОплате   = Строка.Начислено + Строка.Разовые - Строка.Оплата - Льгота - ?(Строка.Сальдо < 0, Строка.Сальдо * -1, 0);
    	Строка.Коплате = СуммаКОплате;
                
    ИначеЕсли Сальдо = Перечисления.ДаНет.Да И Кредит = Перечисления.ДаНет.Нет Тогда
                
    	СуммаКОплате = ?(Строка.Сальдо > 0, Строка.Сальдо , 0) +  Строка.Начислено + Строка.Разовые - Строка.Оплата  - Льгота;
    	Строка.Коплате = СуммаКОплате;
                
    ИначеЕсли Сальдо = Перечисления.ДаНет.Нет И Кредит = Перечисления.ДаНет.Нет Тогда
                
    	СуммаКОплате = Строка.Начислено + Строка.Разовые - Льгота;
    	Строка.Коплате = СуммаКОплате;
                
    КонецЕсли;

    Проняло до слез. Ребята не знают простой математики, зато им известна условная тернарная операция. Привел самый эпичный отрывок, но там впору публиковать всю конфигурацию.

    ivan_0110, 03 Февраля 2016

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

    −19

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Запрос = Новый Запрос;
    	Запрос.Текст = "ВЫБРАТЬ
    		|	ЗаказПоставщику.Ссылка КАК Ссылка
            |ИЗ
            |	Документ.ЗаказПоставщику КАК ЗаказПоставщику
            |ГДЕ
    		|	ЗаказПоставщику.EmeWmsЭкспорт И						
    		|	НЕ ЗаказПоставщику.ПометкаУдаления";

    yaguarvl, 01 Февраля 2016

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

    −88

    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
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    // готовим выборку
    	ВыборкаПоСчетам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Счет" + ЧастьБаланса);
    	Пока ВыборкаПоСчетам.Следующий() Цикл
    		ВыборкаСбк1 = ВыборкаПоСчетам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + ЧастьБаланса + "1");
    		Пока ВыборкаСбк1.Следующий() Цикл
    			ВыборкаСбк2 = ВыборкаСбк1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + ЧастьБаланса + "2");
    			Пока ВыборкаСбк2.Следующий() Цикл
    				ВыборкаСбк3 = ВыборкаСбк2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + ЧастьБаланса + "3");
    				Пока ВыборкаСбк3.Следующий() Цикл
    					ВыборкаПоКоррСчетам = ВыборкаСбк3.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Счет" + КоррЧастьБаланса);
    					Пока ВыборкаПоКоррСчетам.Следующий() Цикл
    						ВыборкаКоррСбк1 = ВыборкаПоКоррСчетам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + КоррЧастьБаланса + "1");
    						Пока ВыборкаКоррСбк1.Следующий() Цикл
    							ВыборкаКоррСбк2 = ВыборкаКоррСбк1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + КоррЧастьБаланса + "2");
    							Пока ВыборкаКоррСбк2.Следующий() Цикл
    								ВыборкаКоррСбк3 = ВыборкаКоррСбк2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + КоррЧастьБаланса + "3");
    								Пока ВыборкаКоррСбк3.Следующий() Цикл
    									ВыборкаНалСчет = ВыборкаКоррСбк3.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "СчетКорректировок");
    									Пока ВыборкаНалСчет.Следующий() Цикл
    										ВыборкаНалСбк1 = ВыборкаНалСчет.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто1Корректировок");
    										Пока ВыборкаНалСбк1.Следующий() Цикл
    											ВыборкаНалСбк2 = ВыборкаНалСбк1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто2Корректировок");
    											Пока ВыборкаНалСбк2.Следующий() Цикл
    												ВыборкаНалСбк3 = ВыборкаНалСбк2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто3Корректировок");
    												Пока ВыборкаНалСбк3.Следующий() Цикл
    													ВыборкаСделок = ВыборкаНалСбк3.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Сделка");
    													Пока ВыборкаСделок.Следующий() Цикл
    														ВыборкаДанных = ВыборкаСделок.Выбрать();
    														Если ВыборкаДанных.Следующий() Тогда
    															// Пара строк кода
    															Для Сч = 1 По 3 Цикл
    																Если ТипЗнч(ВыборкаДанных["Субконто" + ЧастьБаланса + Сч]) = Тип("СправочникСсылка.СтатьиЗатрат") Тогда
    																	// И тут еще пара строк кода
    																КонецЕсли;
    															КонецЦикла;
    														КонецЕсли;
    													КонецЦикла; // по сделкам
    												КонецЦикла; // по субконто3 корректировок
    											КонецЦикла; // по субконто2 корректировок
    										КонецЦикла; // по субконто1 корректировок
    									КонецЦикла; // по счетам корректировок
    								КонецЦикла; // по  корр субконто3
    							КонецЦикла; // по  корр субконто2
    						КонецЦикла; // по корр субконто1
    					КонецЦикла; // по корр счетам
    				КонецЦикла; // по субконто3
    			КонецЦикла; // по субконто2
    		КонецЦикла; // по субконто1
    	КонецЦикла; // по счетам

    Готовим выборку!

    grandatlant, 27 Января 2016

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

    −94

    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
    Если СтрокаТаблицы.ЗакрытьДоговор = Истина Тогда
    			СтарыйЭлемент = Справочники.ДоговорыКонтрагентов.НайтиПоКоду(СтрокаТаблицы.Договор.Код).ПолучитьОбъект();
    			СтарыйЭлемент1 = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(СтрокаТаблицы.Договор.Наименование).ПолучитьОбъект();
    			Если СтарыйЭлемент.Наименование <> СтарыйЭлемент1.Наименование Тогда
    				СтарыйЭлемент = СтарыйЭлемент1;
    			Иначе
    				СтарыйЭлемент = СтарыйЭлемент;
    			КонецЕсли;
    			СтарыйЭлемент.мфоДатаЗакрытия = Дата;
    		Иначе
    
    			СтарыйЭлемент = Справочники.ДоговорыКонтрагентов.НайтиПоКоду(СтрокаТаблицы.Договор.Код).ПолучитьОбъект();
    			СтарыйЭлемент1 = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(СтрокаТаблицы.Договор.Наименование).ПолучитьОбъект();
    			Если СтарыйЭлемент.Наименование <> СтарыйЭлемент1.Наименование Тогда
    				СтарыйЭлемент = СтарыйЭлемент1;
    			Иначе
    				СтарыйЭлемент = СтарыйЭлемент;
    			КонецЕсли;
    			СтарыйЭлемент.мфоДатаЗакрытия = Дата("00010101");
    		КонецЕсли;
    		СтарыйЭлемент.Записать();

    Крайне сильное колдунство :) Все те же аутсорсеры :)

    planaric, 27 Января 2016

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

    −99

    1. 1
    2. 2
    Дней = 90;
        НачалоПериода = НачалоДня(ТекущаяДата()) - Дней*86400;

    немного магии

    alexinzaz, 22 Января 2016

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

    −101

    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
    // Процедура организует выбор элементов по результату запроса
    Процедура ВыбратьЭлементОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка, ОбработкаПоискаПоСтроке, ТекстПоискаПоСтроке, РезультатЗапроса, ЭтаФорма, ПоследнееЗначениеЭлементаПоискаПоСтроке = Неопределено, 
    											ПриОтсутствииЗначенияОставлятьТекст = Истина, ПоляПоиска, ПолеВыбора, 
    											СтруктураВыбранногоЭлемента = Неопределено, ОсновноеПредставлениеВВидеКода = Ложь,
    											Знач СообщатьПользователюОбОшибкеВводаДанных = Истина)
    
    
    // Процедура организует выбор элементов по результату запроса
    Процедура ВыбратьЭлементОкончаниеВводаАдресногоКлассификатора(Элемент, Текст, Значение, СтандартнаяОбработка, ОбработкаПоискаПоСтроке, ТекстПоискаПоСтроке, РезультатЗапроса, ЭтаФорма, ПоследнееЗначениеЭлементаПоискаПоСтроке = Неопределено, 
    											ПриОтсутствииЗначенияОставлятьТекст = Истина, ПоляПоиска, ПолеВыбора, 
    											СтруктураВыбранногоЭлемента = Неопределено, НачальныйУровеньДетализации = 0, КонечныйУровеньДетализации = 5)
    
    
    // Процедура организует выбор элементов по результату запроса
    Процедура ВыбратьЭлементОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка, ОбработкаПоискаПоСтроке, ТекстПоискаПоСтроке, РезультатЗапроса, ЭтаФорма, ПоследнееЗначениеЭлементаПоискаПоСтроке = Неопределено, 
    											ПриОтсутствииЗначенияОставлятьТекст = Истина, ПоляПоиска, ПолеВыбора, 
    											СтруктураВыбранногоЭлемента = Неопределено, ОсновноеПредставлениеВВидеКода = Ложь,
    											Знач СообщатьПользователюОбОшибкеВводаДанных = Истина)

    Просто пара заголовков процедур из типовых конфигураций 1С (15 параметров, Карл, там 15 параметров!). Сопроводительные комментарии прилагаются.
    К слову сами процедуры занимают не более 20 строк, но самое забавное заключается в том, что некоторые параметры вообще не используются при работе процедуры.

    CMblCL, 25 Декабря 2015

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

    −94

    1. 1
    Объект=Справочники.ПодразделенияОрганизаций.НайтиПоКоду(Касса.Владелец.Код);

    Разгребаю агиевы конюшни после аутсорсеров. Подобная конструкция встретилась почти в 70 местах в конфигурации. Кто догадается, какого типа владелец у кассы?

    planaric, 24 Декабря 2015

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

    −95

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

    Встретил в сильно нетиповой рознице. Такое чувство, будто реквизит "Ответственный" насиловали или автор строк при написании их же просматривал порно с элементами садо-мазо.

    keyu, 18 Декабря 2015

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