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

    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
    19. 19
    20. 20
    // Определим тип возвращаемого результата
    	РезультатМассив    = ?(ВРег(ТипРезультата)="МАССИВ",Истина,Ложь);
    	РезультатСписок    = ?(ВРег(ТипРезультата)="СПИСОКЗНАЧЕНИЙ",Истина,Ложь);
    	РезультатСтруктура = НЕ РезультатМассив И НЕ РезультатСписок;
    	
    	Если РезультатСтруктура Тогда
    		Измерения = Новый Структура;
    	КонецЕсли; 
    	Если РезультатМассив Тогда
    		Измерения = Новый Массив;
    	КонецЕсли; 
    	Если РезультатСписок Тогда
    		Измерения = Новый СписокЗначений;
    	КонецЕсли;  
    	
    	Если МассивИсключений = Неопределено Тогда
    	
    		МассивИсключений = Новый Массив;
    	
    	КонецЕсли;

    А еще вот так можно проверить тип значения

    Migelek, 07 Декабря 2017

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

    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
    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
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    НадоОтправить = Ложь;
    НадоПолучить = Ложь;
    				
    Если Режим = РежимPOP3SMTP или Режим = РежимPOP3SMTPСсылка Тогда
    					
    	Если Параметры.Свойство("АдресPOP3") и ЗначениеЗаполнено(Параметры.АдресPOP3) Тогда
    						
    		НадоПолучить = Истина;
    						
    	КонецЕсли;
    					
    	Если Параметры.Свойство("АдресSMTP") и ЗначениеЗаполнено(Параметры.АдресSMTP) Тогда
    						
    		НадоОтправить = Истина;
    						
    	КонецЕсли;
    					
    ИначеЕсли Режим = РежимIMAP или Режим = РежимIMAPСсылка Тогда
    					
    	Если Параметры.Свойство("АдресIMAP") и ЗначениеЗаполнено(Параметры.АдресIMAP) Тогда
    						
    		НадоПолучить = Истина;
    		НадоОтправить = Истина;
    						
    	КонецЕсли;
    					
    ИначеЕсли Режим = РежимIMAPSMTP или Режим = РежимIMAPSMTPСсылка  Тогда
    					
    	Если Параметры.Свойство("АдресIMAP") и ЗначениеЗаполнено(Параметры.АдресIMAP) Тогда
    						
    		НадоПолучить = Истина;
    						
    	КонецЕсли;
    					
    	Если Параметры.Свойство("АдресSMTP") и  ЗначениеЗаполнено(Параметры.АдресSMTP) Тогда
    						
    		НадоОтправить = Истина;
    						
    	КонецЕсли;
    					
    ИначеЕсли Режим = РежимВнешнийПочтовыйКлиент или Режим = РежимВнешнийПочтовыйКлиентСсылка  Тогда
    					
    	Если Параметры.Свойство("ИспользоватьOutlook") и Параметры.ИспользоватьOutlook = Истина  Тогда
    						
    		НадоОтправить = Истина;
    		НадоПолучить = Истина;
    						
    	КонецЕсли;
    					
    	Если Параметры.Свойство("ИспользоватьLotusNotes") и Параметры.ИспользоватьLotusNotes = Истина Тогда
    						
    		НадоОтправить = Истина;
    						
    	КонецЕсли;
    					
    КонецЕсли;
    				
    Если Параметры.Свойство("Отправка") Тогда
    					
    	ЗначениеСравнения = ЗначениеИзСтрокиВнутр(Параметры.Отправка);
    					
    	Если ЗначениеСравнения = Истина Тогда
    						
    		НадоОтправить = Истина;
    						
    	Иначе
    						
    		НадоОтправить = Ложь;
    						
    	КонецЕсли;
    					
    КонецЕсли;
    				
    Если Параметры.Свойство("Получение") Тогда
    					
    	ЗначениеСравнения = ЗначениеИзСтрокиВнутр(Параметры.Получение);
    					
    	Если  ЗначениеСравнения = Истина  Тогда
    						
    		НадоПолучить = Истина;
    						
    	Иначе
    						
    		НадоПолучить = Ложь;
    						
    	КонецЕсли;
    					
    КонецЕсли;

    Когда тебе платят за количество строк.
    Обработка загрузка почтовых сообщений. Итилиум, редакция 4.5

    RickyBelli, 06 Декабря 2017

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

    +2

    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
    Если ЭтаФорма.ВладелецФормы.ТекущийЭлемент.Имя = "кнПосещение" Тогда
    		ТипТрафика = Справочники.CRM_ТипТрафика.ПосещениеАвтосалона;
    		ЭтаФорма.Заголовок = НСтр("ru = 'Регистрация нового трафика. Посещение'");
    	ИначеЕсли ЭтаФорма.ВладелецФормы.ТекущийЭлемент.Имя = "кнЗвонок" Тогда
    		ТипТрафика = Справочники.CRM_ТипТрафика.Звонок;
    		ЭтаФорма.Заголовок = НСтр("ru = 'Регистрация нового трафика. Звонок'");
    	ИначеЕсли ЭтаФорма.ВладелецФормы.ТекущийЭлемент.Имя = "кнEmail" Тогда
    		ТипТрафика = Справочники.CRM_ТипТрафика.EmailДилера;
    		ЭтаФорма.Заголовок = НСтр("ru = 'Регистрация нового трафика. Email'");
    		ЭлементыФормы.полеТелефон.Картинка = БиблиотекаКартинок.Renault_Mail_New_20;
    		ЭлементыФормы.полеТелефон.Маска =  "";
    		
    	ИначеЕсли ЭтаФорма.ВладелецФормы.ТекущийЭлемент.Имя = "кнЛидRenault" Тогда
    		ТипТрафика = Справочники.CRM_ТипТрафика.ЛидДилера;
    	КонецЕсли;

    Фирменная CRM система от Renault. Определения типа трафика по имени активного элемента владельца формы.

    NioGoth, 15 Ноября 2017

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    ВЫБРАТЬ
      SEO.титл КАК Титл,
      SEO.Описание КАК дескриптионс,
      SEO.Кейворд КАК Кейворд,
      SEO.Ссылка КАК сео
    ИЗ
      Справочник.SEO КАК SEO

    импортозамещение...

    OdinAsss, 14 Ноября 2017

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

    +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
    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
    ДействующиеПостановления = Новый Структура;
    			ДействующиеПостановления.Вставить("Постановление914",  ДанныеПечати.Дата < ДатаНачалаПримененияПостановления1137);
    			ДействующиеПостановления.Вставить("Постановление1137", НЕ (ДанныеПечати.Дата < ДатаНачалаПримененияПостановления1137));
    			ДействующиеПостановления.Вставить("Постановление1137_625", ВедетсяУчетНДСПоФЗ56(ДанныеПечати.Дата,ДанныеПечати.ДатаИсправления));
    			ДействующиеПостановления.Вставить("Постановление981", ДействуетПостановление981(ДанныеПечати.Дата,ДанныеПечати.ДатаИсправления));
    			
    			ОпцииПечатиСчетаФактуры.Вставить("ДействующиеПостановления", ДействующиеПостановления);
    			
    			Если ДанныеПечати.КорректировочныйСчетФактура Тогда
    				Если ДействующиеПостановления.Постановление981 Тогда
    					Макет = МакетКорр_981;
    					ЕстьПостановление981 = Истина;
    				ИначеЕсли ДействующиеПостановления.Постановление1137_625 Тогда
    					Макет = МакетКорр_625;
    					ЕстьПостановление1137_625 = Истина;
    				Иначе
    					Макет = МакетКорр;
    					ЕстьПостановление1137 = Истина;
    				КонецЕсли;
    			ИначеЕсли ДействующиеПостановления.Постановление914 Тогда
    				Макет = Макет451;
    				ЕстьПостановление914 = Истина;
    			ИначеЕсли ДействующиеПостановления.Постановление981 Тогда
    				Макет = Макет981;
    				ЕстьПостановление981 = Истина;
    			ИначеЕсли ДействующиеПостановления.Постановление1137_625 Тогда
    				Макет = Макет1137_625;
    				ЕстьПостановление1137_625 = Истина;
    			Иначе
    				Макет = Макет1137;
    				ЕстьПостановление1137 = Истина;
    			КонецЕсли;
    			
    			Если (ЕстьПостановление914 И ЕстьПостановление1137) 
    				ИЛИ (ЕстьПостановление914 И ЕстьПостановление981)
    				ИЛИ ((ЕстьПостановление1137 ИЛИ ЕстьПостановление1137_625) И ЕстьПостановление981) Тогда
    				
    				Текст = НСтр("ru = 'Недоступна одновременная печать счетов-фактур, сформированных по разным постановлениям Правительства РФ'");
    				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
    					Текст,
    					ДанныеПечати.Ссылка);
    				
    				ТабличныйДокумент.Очистить();
    				Прервать;
    				
    			КонецЕсли;

    Типовая УТ 11.3.4.93, ПечатьОбщихФорм, модуль менеджера

    Что проверяют эти "Если"? Не ошибся ли программист?
    Постановление определяется по дате счета-фактуры. Интересно, как можно сформировать счет-фактуру одновременно "по разным постановлениям Правительства РФ"?

    И мало того, что вторая и третья строки всегда дают противоположный результат. Нет, на всякий случай проверим "Если (ЕстьПостановление914 И ЕстьПостановление1137)".
    Интересно также, как после ИначеЕсли ожидали получить сочетание разных "постановлений"? И почему проверяется всего три неправильных сочетания? Надо больше кода!

    Еще понравилась оригинальная идея завести на каждый элемент структуры отдельную переменную, потом присвоить этой переменной то же, что и в структуре, а потом проверить сочетание этих переменных. Надо заметить, что переменные ЕстьПостановлениеYYYY больше нигде не используются.

    romanvk, 10 Ноября 2017

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

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    //Если Ответ = КодВозвратаДиалога.Нет Штирлиц решил не писать, чтобы запутать врага
    	    Если НЕ Ответ = КодВозвратаДиалога.Да Тогда		
    			Возврат;		
    		КонецЕсли;

    Если Ответ = КодВозвратаДиалога.Нет Штирлиц решил не писать, чтобы запутать врага

    M1CE, 25 Октября 2017

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

    −2

    1. 1
    2. 2
    Возврат;	
    КонецПроцедуры

    Процедуры!!!

    qwertyk, 18 Октября 2017

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

    +3

    1. 1
    2. 2
    3. 3
    Остатки.Очистить();
    ДокиОстатков = Остатки.Скопировать();
    ДокиОстатков.Свернуть("НомерВС");

    середина функции, никаких если, и прочих ветвлений, условий исключений...

    qwertyk, 18 Октября 2017

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

    +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
    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
    Для каждого стр из Объект.УчётВремени цикл
    			НРВ = 0;
    			Если 
    				НачалоДня(стр.ДатаНачала) <> НачалоДня(стр.ДатаОкончания) 
    			Тогда
    				НРВ = НРВ + (стр.ДатаОкончания - Стр.ДатаНачала) /60 /60
    			ИначеЕсли //Начало и окончание задачи до начала рабочего дня
    				(Час(стр.ДатаНачала) < 10 или ( Час(стр.ДатаНачала) = 10 и Минута(стр.ДатаНачала) <=30)) и 
    				(Час(стр.ДатаОкончания) < 10 или ( Час(стр.ДатаОкончания) = 10 и Минута(стр.ДатаОкончания) <=30))
    			Тогда
    				НРВ = НРВ +  ((стр.ДатаОкончания - стр.ДатаНачала) /60 /60)
    			ИначеЕсли //Начало задачи до начала рабочего дня, окончание во время рабочего дня
    				(Час(стр.ДатаНачала) < 10 или ( Час(стр.ДатаНачала) = 10 и Минута(стр.ДатаНачала) <=30)) и 
    				(Час(стр.ДатаОкончания) < 19 и (Час(стр.ДатаОкончания) > 11 или ( Час(стр.ДатаОкончания) = 10 и Минута(стр.ДатаОкончания) > 30)))
    			Тогда
    				НРВ = НРВ +  ((НачалоДня(стр.ДатаОкончания) + ((10*60)*60) + 1800 - стр.ДатаНачала) /60 /60)
    			ИначеЕсли   //Начало задачи в рабочее время и окончание задачи в нерабочее время
    				(Час(стр.ДатаНачала) < 19 и (Час(стр.ДатаНачала) > 11 или ( Час(стр.ДатаНачала) = 10 и Минута(стр.ДатаНачала) > 30))) и
    				Час(Стр.ДатаОкончания) >= 19
    			Тогда
    				НРВ = НРВ +  (стр.ДатаНачала - (НачалоДня(стр.ДатаОкончания) + ((19*60)*60))) /60 /60
    			ИначеЕсли
    				Час(стр.ДатаНачала) >= 19 и Час(стр.ДатаОкончания) >= 19  
    			Тогда
    				НРВ = (стр.ДатаОкончания - Стр.ДатаНачала) /60 /60
    				
    			КонецЕсли;
    			стр.НРВ = НРВ;	
    				
    			Время = (стр.ДатаОкончания - стр.ДатаНачала) /60 /60;
    			РВ = Время - НРВ;
    			стр.РВ = РВ;
    			стр.Время = Время;
    			
    			
    		КонецЦикла;

    Вроде работает

    spaceashot, 18 Октября 2017

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

    +2

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

    Выбирай хоть "Требуется", хоть "Не требуется" - нам все равно!

    Типовая УТ 11.3.4.93, регистр сведений СостоянияЗаказовКлиентов, модуль менеджера.

    romanvk, 13 Октября 2017

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