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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    	ВЫРАЗИТЬ(Работы.Ссылка КАК Документ.ЗаказНаряд) КАК СсылкаЗН,
    	ДЦ.Ссылка КАК ДилерскийЦентр
    ИЗ
    	Документ.ЗаказНаряд.Работы КАК Работы
    		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.CRM_ДилерскиеЦентры КАК ДЦ
    		ПО (ЛОЖЬ)
    ГДЕ
    	Работы.Ссылка.ДатаЗакрытия >= &ДатаНачала
    	И Работы.Ссылка.ДатаЗакрытия < &ДатаОкончания
    	И ДЦ.Ссылка.ПометкаУдаления = ЛОЖЬ
    ;

    Язык запросов 1С. При таком соединение запрос запрос всегда будет пустым.

    NioGoth, 29 Августа 2019

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Попытка
    		Выборка = Запрос.Выполнить().Выбрать();
    	Исключение
    		Пока Выборка.Следующий() Цикл
    			Рез.Менеджер = Выборка.СуммаМенеджера;
    			Рез.Дивизион =  Выборка.СуммаСтаршегоДивизиона;
    		КонецЦикла;
    	КонецПопытки;

    timm00, 27 Августа 2019

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

    0

    1. 1
    https://phpclub.ru/talk/threads/перевод-алгаритма-с-1с-в-пхп.52808/

    Perevedi_na_PHP, 30 Июля 2019

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

    +1

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

    Добавлена проверка, чтобы цикл вдруг не выполнился при пустой таб части!
    Кстати выполняется при открытии формы и постоянно вызывает модифицированность

    Молокозавод 1.3.121

    doom2good, 06 Июня 2019

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    ПроизведенаРабота = Истина;
    	
    Если ЗапрашиватьТрудозатраты И Не ВыполняетсяПеренаправление Тогда
    	ПроизведенаРабота = Истина;
    КонецЕсли;

    Типично

    sandvich, 04 Июня 2019

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

    +4

    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
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    &НаКлиенте
    Процедура Расчитать(Команда)
    	ТекДата = ТекущаяДата();
    	ТекМесяц = Месяц(ТекДата);
    	МесяцРождения = Месяц(ДатаРождения);
    
    	
    	Если ТекМесяц=МесяцРождения Тогда       //День рождения сегодня или в этом месяце,
    	    Если День(ТекДата)=День(ДатаРождения) Тогда
    		
    			КоличествоДнейДоДР = 0;
    		ИначеЕсли День(ТекДата)<День(ДатаРождения)  Тогда 
    			КоличествоДнейДоДР = День(ДатаРождения)-День(ТекДата);
    		Иначе
    			
    			
    		  КоличествоДнейДоДР = День(КонецМесяца(ТекДата))-День(ТекДата);
    		 Дата = ДобавитьМесяц(ТекДата,1);
    		 Ограничитель = (12-ТекМесяц)+МесяцРождения;
    		 Для сч=1 По Ограничитель Цикл
    			Если сч=Ограничитель Тогда			
    			    КоличествоДнейДоДР = КоличествоДнейДоДР+День(ДатаРождения);
    			    продолжить;			
    			КонецЕсли; 
    
    			КоличествоДнейДоДР = КоличествоДнейДоДР+День(КонецМесяца(Дата)) ;
    			 Дата = ДобавитьМесяц(Дата,1);
    		 	
    		 
    		 КонецЦикла; 
    		
    		КонецЕсли; 
    		
    	
    	ИначеЕсли ТекМесяц<МесяцРождения Тогда   //День рождения еще не наступил,
    		 КоличествоДнейДоДР = День(КонецМесяца(ТекДата))-День(ТекДата);
    		 Дата = ДобавитьМесяц(ТекДата,1);
    		 Для сч= ТекМесяц+1 По МесяцРождения Цикл
    			
                            Если сч=МесяцРождения Тогда
    			   КоличествоДнейДоДР = КоличествоДнейДоДР+День(ДатаРождения);
    			   продолжить;
    			КонецЕсли; 
    
    			КоличествоДнейДоДР = КоличествоДнейДоДР+День(КонецМесяца(Дата)) ;
    			 Дата = ДобавитьМесяц(Дата,1);
    		 	
    		 
    		 КонецЦикла; 
    		
    		
    	ИначеЕсли ТекМесяц>МесяцРождения Тогда     //День рождения уже прошел.	
    		     КоличествоДнейДоДР = День(КонецМесяца(ТекДата))-День(ТекДата);
    		 Дата = ДобавитьМесяц(ТекДата,1);
    		 Ограничитель = (12-ТекМесяц)+МесяцРождения;
    		 Для сч= 1 По Ограничитель Цикл
    
    			Если сч=Ограничитель Тогда
    			  КоличествоДнейДоДР = КоличествоДнейДоДР+День(ДатаРождения);
    			  продолжить;
    			КонецЕсли;
     
    			КоличествоДнейДоДР = КоличествоДнейДоДР+День(КонецМесяца(Дата)) ;
    			 Дата = ДобавитьМесяц(Дата,1);
    		 	
    		 
    		 КонецЦикла; 
    	
    	 КонецЕсли; 
    	 
    	 Сообщение = Новый СообщениеПользователю;
    	 Сообщение.Текст = КоличествоДнейДоДР;
    	 Сообщение.Сообщить(); 
    		
    	// Вставить содержимое обработчика.
    КонецПроцедуры

    Задача рассчитать количество дней до дня рождения, вопрос в том что не много ли я использовал условий Если?

    rusin_av, 16 Мая 2019

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

    0

    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 Тогда
    		Ссыль = Выгрузка[0].Номер;
    		ЭтаФорма.Элементы.Этап.Заголовок = Документы.ЭтапРемонт.НайтиПоНомеру(Ссыль);
    	КонецЕсли;

    Задача кода - установить текстовое представление документа в надписи на форме, для этого автор сначала получает номер требуемого документа, потом проверяет выборку на наличие записей, а потом по полученному номеру ищет ссылку методом НайтиПоНомеру.
    Говнокод в том, что:
    1. Ссылку можно получить сразу же в запросе
    2. Выгружать выборку в коллекцию значений нет никакой необходимости, можно всё необходимое взять из выборки, она для этого и предназначена.
    Автор - один из франей Абакана.

    VladC, 07 Мая 2019

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Функция ПолучитьСтавкуНДС(СуммаСНДС, НДС)
    	Если НДС = 0  Тогда
    		Возврат Перечисления.СтавкиНДС.БезНДС;
    	ИначеЕсли СуммаСНДС = 0 Тогда //некорректные данные
    		Возврат Перечисления.СтавкиНДС.БезНДС;
    	ИначеЕсли НДС / СуммаСНДС <= 0.152+0.0152 и НДС / СуммаСНДС >= 0.152-0.0152 Тогда
    		Возврат Перечисления.СтавкиНДС.НДС18;
    	ИначеЕсли НДС / СуммаСНДС <= 0.091+0.0091 и НДС / СуммаСНДС >= 0.091-0.0091 Тогда
    		Возврат Перечисления.СтавкиНДС.НДС10;
    	КонецЕсли;
    КонецФункции

    Костыль костыльный

    sandvich, 24 Апреля 2019

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

    −1

    1. 1
    ЧисловойСимвол = ?(Найти("0123456789",СимволVIN)>0,Истина,Ложь);

    Проверка на то, является ли "СимволVIN" числом

    nytlenc, 17 Апреля 2019

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

    0

    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
    &НаСервере
    Процедура ЗаполнитьТовары()
    
    Объект.Товары.Загрузить(Товары.Выгрузить());
    
    КонецПроцедуры // ЗаполнитьТовары()
    
    
    &НаКлиенте
    Процедура КомандаЧО06ПлатежнаяКарта(Команда)
    
    	ЗаполнитьТовары();
    	ВыполнитьЧО06ПлатежнаяКарта();
    	Товары.Очистить();
    	Объект.Товары.Очистить();
    	Элементы.КнопкаСуммы.Заголовок = "";
    
    КонецПроцедуры

    kattushka, 03 Апреля 2019

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