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

    −137

    1. 1
    вайп

    TarasGovno, 04 Января 2012

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

    −89

    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
    // Функция для склонения одного слова!!!
    // z1 - само слово
    // z2 - номер падежа
    // z3 - пол
    // z4 - 1-склонять как фамилию, 2-имя, 3-отчество
    Функция ПадежС(z1,Знач z2=2,Знач z3="*",z4=0) Экспорт
    	z5=Найти(z1,"-"); z6=?(z5=0,"","-"+ПадежС(Сред(z1,z5+1,СтрДлина(z1)-z5+1),z2,z3,z4)); z1=НРег(?(z5=0,z1,Лев(z1,z5-1))); z7=Прав(z1,3);z8=Прав(z7,2);z9=Прав(z8,1);
    	z5=СтрДлина(z1); za=Найти("ая ия ел ок яц ий па да ца ша ба та га ка",z8); zb=Найти("аеёийоуэюяжнгхкчшщ",Лев(z7,1)); zc=Макс(z2,-z2); zd=?(za=4,5,Найти("айяь",z9));
    	zd=?((zc=1)или(z9=".")или((z4=2)и(Найти("оиеу"+?(z3="ч","","бвгджзклмнпрстфхцчшщъ"),z9)>0))или((z4=1)и(Найти("мия мяэ лия кия жая лея",z7)>0)),9,?((zd=4)и(z3="ч"),2,?(z4=1,?(Найти("оеиую",z9)+Найти("их ых аа еа ёа иа оа уа ыа эа юа яа",z8)>0,9,?(z3<>"ч",?(za=1,7,?(z9="а",?(za>18,1,6),9)),?(((Найти("ой ый",z8)>0)и(z5>4)и(Прав(z1,4)<>"опой"))или((zb>10)и(za=16)),8,zd))),zd)));
    	ze=Найти("лец вей бей дец пец мец нец рец вец аец иец ыец бер",z7);
    	zf=?((zd=8)и(zc<>5),?((zb>15)или(Найти("жий ний",z7)>0),"е","о"),?(z1="лев","ьв",?((Найти("аеёийоуэюя",Сред(z1,z5-3 ,1))=0)и((zb>11)или(zb=0))и(ze<>45),"",?(za=7,"л",?(za=10,"к",?(za=13,"йц",?(ze=0,"",?(ze<12,"ь"+?(ze=1,"ц",""),?(ze<37,"ц",?(ze<49,"йц","р"))))))))));
    	zf=?((zd=9)или((z4=3)и(z3="ы")),z1,Лев(z1,z5-?((zd>6)или(zf<>""),2,?(zd>0,1,0)))+zf+СокрП(Сред("а у а "+Сред("оыые",Найти("внч",z9)+1,1)+"ме "+?(Найти("гжкхш",Лев(z8,1))>0,"и","ы")+" е у ойе я ю я ем"+?(za=16,"и","е")+" и е ю ейе и и ь ьюи и и ю ейи ойойу ойойойойуюойойгомуго"+?((zf="е")или(za=16)или((zb>12)и(zb<16)),"и","ы")+"мм",10*zd+2*zc-3,2)));
    Возврат ?(""=z1,"",?(z4>0,ВРег(Лев(zf,1))+?((z2<0)и(z4>1),".",Сред(zf,2)),zf)+z6);
    КонецФункции

    шедевр, кстати!

    Cthulhu, 06 Ноября 2011

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

    −123

    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
    Функция МесяцПрописью()
    	
    	М = Месяц(КонПериода);
    	П = "";
    	Если М = 1 Тогда П = "январь"
    	ИначеЕсли 
    		М = 2 Тогда П = "февраль"
    	ИначеЕсли 
    		М = 3 Тогда П = "март"
    	ИначеЕсли 
    		М = 4 Тогда П = "апрель"
    	ИначеЕсли 
    		М = 5 Тогда П = "май" 
    	ИначеЕсли 
    		М = 6 Тогда П = "июнь"
    	ИначеЕсли 
    		М = 7 Тогда П = "июль"
    	ИначеЕсли 
    		М = 8 Тогда П = "август"
    	ИначеЕсли 
    		М = 9 Тогда П = "сентябрь"
    	ИначеЕсли 
    		М = 10 Тогда П = "октябрь"
    	ИначеЕсли 
    		М = 11 Тогда П = "ноябрь"
    	ИначеЕсли 
    		М = 12 Тогда П = "декабрь"
    	КонецЕсли;
    	
    	Возврат П;
    	
    КонецФункции

    Абсолютно реальный код в одном из отчетов...

    pasechnik13, 01 Ноября 2011

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

    −102

    1. 1
    2. 2
    Сегодня мы отказались от 1С.
    Сегодня, когда день апплодировал стоя.

    А в штанах остались желтые бумажки. В назидание?

    alexoy, 31 Октября 2011

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

    −123

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

    Вот такую "красоту" оставили предыдущие программисты.

    droff, 31 Октября 2011

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

    −154

    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
    case 2: //редактирование таблицы
    			do
    			{
    				for (i = 0; i < size; i++) //вывод таблицы, чтобы видно было, что нужно изменять
    				{
    					for (j = 0; j < 4; j++)
    					{
    						for (k = 0; k < 4; k++)
    						{
    							adres[k] = ((maska << (24 - 8 * k)) & bin_adres[i][j]) >> (24 - 8 * k);
    						}
    						cout << adres [0] << "." << adres [1] << "." << adres [2] << "." << adres [3] << "\t";
    					}
    					cout << endl;
    				}
    				cto ("Наберите необходимый адрес назначения" , s);
    				cout << s << endl;
    				for (j = 0; j < 4; j++)
    				{
    					cin >> adres [j];
    					if (adres[j] < 0 || adres[i] > 255) //проверка каждой введенной цифры на соответствие интервалу
    					{
    						cto ("Вы ввели неверное число. Введите число в диапазонe 0-255" , s);
    						cout << s << endl;
    						j--;
    					}
    					else
    						crv = (adres[0] << 24) + (adres[1] << 16) + (adres[2] << 8) + adres[3]; 
    				}
    				for (i = 0; i < size; i++) //перебор по строкам всего массива
    				{
    					if (crv == bin_adres[i][0]) //сравниваем первый элемент каждой строки, с введенным значением
    					{
    						temp = i; //получаем номер строки, которую необходимо редактировать
    						break;
    					}
    				}
    				cto ("Что необходимо изменить?\n Адрес назначения (нажмите 1)\n Адрес источника (нажмите 2)\n Шлюз(Нажмите 3)\n Маску(нажмите 4)\n", s);
    				cout << s << endl;
    				number = 0;
    				cin >> number; //получаем номер столбца для изменения
    				number--; //для правильного определения индекса элемента в массиве
    				cto ("Введите элемент", s);
    				cout << s << endl;
    				for (i = 0; i < 4; i++)
    				{
    					cin >> adres[i];
    					if (adres[i] < 0 || adres[i] > 255)
    					{
    						cto ("Вы выпали из диапазона 0-255. Введите нормальное число", s);
    						cout << s << endl;
    						i--;
    					}
    				}
    				bin_adres[temp][number] = (adres[0] << 24) + (adres[1] << 16) + (adres[2] << 8) + adres[3]; //записываем данный элемент в заданную строку
    				cto ("Для выхода из редактирования нажмите 1 (продолжить - любая цифра)", s);
    				cout << s << endl;
    				cin >> number;
    			}
    			while (number != 1);
    			system("cls"); //очиста окна командной строки
    			break;

    Команда стажеров писала маршрутизатор на базе 1С предприятия и вот что получилось.

    alexoy, 19 Октября 2011

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

    −137

    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 =0;
    	Для Каждого Стр1 из	Стр0.Строки Цикл
    		Сум1 =0;
    		Для Каждого Стр2 из Стр1.Строки Цикл;
    			 Попытка
    		Стр2.СуммаВсего = Стр2.Количество * Стр2.Нормочасы*ЦенаНормочаса *(1-Стр2.СкидкаНаРаботы/100)+ Стр2.Количество * Стр2.Цена *(1-Стр2.СкидкаНаЗапчасти/100) ;
    		Стр2.СтоимостьУстановки = Стр2.Количество * Стр2.Нормочасы*ЦенаНормочаса;		
    				Сум1=Сум1+ Стр2.СуммаВсего;
    		 	 исключение КонецПопытки;
    		 КонецЦикла;
    		 Стр1.СуммаВсего = Сум1;
    		 Сум0 = Сум0+Сум1;
    	 КонецЦикла;
    	 Стр0.СуммаВсего = Сум0; 
    КонецЦикла;

    Умопомрачительный подсчёт итога по колонке "СуммаВсего" в дереве.
    ДеревоНаФорме - дерево на форме. При интеркативном изменении числовых реквизитов - пересчитывается строка, но! на всякий случай здесь - в Попытке-Исключении пересчитываем СуммуВсего по строке ещё раз... Ну и конечно порадовала изящность конструкции....

    Pauchog, 19 Октября 2011

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

    −155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Девушкой, которую я любил
    Оказался педофил
    Он на 1С все показал
    И научил
    Теперь я здесь настраиваю все
    Прямо как во сне

    Александр Сергеевич Пушкин-Блок

    alexoy, 14 Октября 2011

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

    −155

    1. 1
    1

    Минимальная программа на 1С

    alexoy, 14 Октября 2011

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

    −143

    1. 1
    2. 2
    1С.................
    Когда копро уже не вставляет.

    ReallyBugMeNot, 13 Октября 2011

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