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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    //Текстовый реквизит 
    //Событие реквизита формы НП_ТелефонПолучателя  (Строка (50)) - очистка
    
    Процедура НП_ТелефонПолучателяОчистка(Элемент, СтандартнаяОбработка)
    	НП_ТелефонПолучателя = "";
    КонецПроцедуры

    Ну чтоб уж точно очистить

    FesenkoA, 07 Февраля 2018

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

    +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
    Запрос = Новый Запрос;
    	Запрос.Текст="ВЫБРАТЬ
    	|	ЗаказНаряд.Ссылка КАК Ссылка
    	|ИЗ
    	|	Документ.ЗаказНаряд КАК ЗаказНаряд
    	|ГДЕ
    	|	ЗаказНаряд.Проведен = ИСТИНА";	
    
    	Выборка=Запрос.Выполнить().Выбрать();
    	Выборка.Следующий();
    	Если обЗначениеНеЗаполнено(Выборка.Ссылка) Тогда
    .......

    Чуть упростил запрос для быстроты понимания...
    Как проверить запрос ПУСТОЙ() или нет... Вот один из разработчиков нашел метод.....

    timofeysin, 07 Февраля 2018

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

    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
    // Иванов И.И. Начало 16.03.2016 
    //ИспользованиеКВО=Истина;  
    // Петров П. "Рога и копыта" 17.03.2016
    //ИспользованиеКВО=Ложь;
    // Иванов И.И. Начало 18.03.2016 
    //ИспользованиеКВО=Истина;  
    // Петров П. "Рога и копыта" 19.03.2016 
    //ИспользованиеКВО=Ложь;
    // Иванов И.И. Начало 21.03.2016  
    //ИспользованиеКВО=Истина;
    // Петров П. "Рога и копыта" 23.03.2016  
    //ИспользованиеКВО=Ложь;
    // Иванов И.И. Начало 25.03.2016  
    //ИспользованиеКВО=Истина;
    // Петров П. "Рога и копыта" 25.03.2016  
    //ИспользованиеКВО=Ложь;
    // Иванов И.И. Начало 25.03.2016  
    //ИспользованиеКВО=Истина;
    // Петров П. "Рога и копыта" 25.03.2016  
    //ИспользованиеКВО=Ложь;
    
    ИспользованиеКВО=Истина;
    // Петров П. "Рога и копыта" 25.03.2016  
    // Иванов И.И. Конец 25.03.2016     
    // Петров П. "Рога и копыта" 25.03.2016
    // Иванов И.И. Конец 25.03.2016      
    // Петров П. "Рога и копыта" 23.03.2016  
    // Иванов И.И. Конец 21.03.2016
    // Петров П. "Рога и копыта" 19.03.2016
    // Иванов И.И. Конец 18.03.2016 
    // Петров П. "Рога и копыта" 17.03.2016
    // Иванов И.И. Конец 16.03.2016

    Иванов И.И. Петров П.П. в фильме.. "ПРОТИВОСТОЯНИЕ"
    Основан на реальных событиях, фамилии персонажей и названия компаний изменены

    FesenkoA, 02 Февраля 2018

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

    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
    УпрощенныйРежим = ДилерскийЦентр.Автосервис_ИспользуетсяУпрощенныйИнтерфейс;
    
    Если УпрощенныйРежим ТОгда
    		
    		Если ЗначениеЗаполнено(Клиент) Тогда
    			
    			Если ТипЗнч(Клиент) = Тип("СправочникСсылка.Контрагенты") Тогда
    				
    				ТекущийКлиент = Клиент;
    				
    			Иначе
    				
    				ЭлементыФормы.НадписьПредставьтесь.Заголовок = "Клиент представился как: " + Строка(Клиент) + ". Необходимо выбрать клиента";
    				
    			КонецЕсли;
    			
    		КонецЕсли;
    		
    		Если ЗначениеЗаполнено(ТекущийКлиент) Тогда
    		
    			ЗаполнитьДеревоОбращенийКдиента(ТекущийКлиент);
    			
    			ЭлементыФормы.ТекущийКонтрагент.ЦветФонаПоля = Новый Цвет (255, 255, 255);
    			ЭлементыФормы.ТекущийКонтрагент.КнопкаОткрытия = Истина;
    			
    			ОбновитьТелефонИEmail(ТекущийКлиент);
    			
    			Если НЕ ЗначениеЗаполнено(ТекущийАвтомобиль) Тогда
    				
    				ЗаполнитьВыборАвто();
    				
    			КонецЕсли;
    			
    		КонецЕсли;
    		
    	КонецЕсли;

    У формы существует реквизит ТекущийКлиент.
    При открытии выполняться вот этот вот шедевр.
    При сохрани обратно Клиент = ТекущийКлиент;.
    И еще если не Упрощенный режим интерфейса то даже у старых документов контрагент будет не выбран.

    NioGoth, 21 Декабря 2017

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

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

    Обработка в базе одного клиента.
    Не сразу понял что она вообще делает и зачем она ТАК ЭТО ДЕЛАЕТ.

    naodesu, 18 Декабря 2017

    Комментарии (16)
  6. 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)
  7. 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)
  8. 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)
  9. 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)
  10. 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)