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

    −103

    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
    к = 0;
    ТЗ2=СоздатьОбъект("ТаблицаЗначений");
    ВыгрузитьТабличнуюЧасть(ТЗ2,"ТМЦ,Кво");
    ТЗ2.НоваяКолонка("Арт");
    ТЗ2.ВыбратьСтроки();
    Пока ТЗ2.ПолучитьСтроку()=1 Цикл
    	ТМЦ_=ТЗ2.ПолучитьЗначение(к+1,"ТМЦ");
    	Если Лев(ТМЦ_,5)="Набор" Тогда
    		ТЗ2.Арт=ТМЦ_.Родитель;
    	Иначе
    		ТЗ2.Арт=ТМЦ_.Родитель.Родитель;
    	КонецЕсли;
    	к=к+1;
    КонецЦикла;

    Из 7.7. Особенно радует момент ТМЦ_=ТЗ2.ПолучитьЗначение(к+1,"ТМЦ");

    bytemdfab, 29 Марта 2011

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

    −87

    1. 1
    2. 2
    ТекЗакладка=0;
    Если ТекЗакладка=0 тогда ТекЗакладка=1;КонецЕсли;

    Путаем следы?

    CYFiVE, 29 Марта 2011

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

    −110

    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
    СписокЗначенийТиповЦен = Новый СписокЗначений;
    ...
    КоличествоЦен = 0;
    РезультатВыбора = ФормаВыбораТиповЦен.ОткрытьМодально();
    Для Каждого Элемент Из РезультатВыбора Цикл 
    	СписокЗначенийТиповЦен.Добавить(Элемент.Значение);
    	КоличествоЦен = КоличествоЦен + 1;
    КонецЦикла;
    
    Если КоличествоЦен = 0 Тогда
    	Предупреждение("Не выбран ни один тип цен!!!");	
    	Возврат;
    КонецЕсли;

    Нет проверки на возвращение "неопределено" в строке 4. К тому же в результате возвращает список значений, зачем создавать еще один список и все элементы переносить в него для меня загадка.
    Ну и счетчик количества элементов в цикле вместо РезультатВыбора.Количество() на десерт.

    ingenuus, 14 Марта 2011

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

    −92

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    ...
    Запрос.Текст =
    "...
    |ГДЕ
    |    ...
    |    И ТипыЦенНоменклатуры.ПроцентСкидкиНаценки <> &Нуль
    |    ...";
    Запрос.УстановитьПараметр("Нуль", 0);
    ...

    ingenuus, 14 Марта 2011

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

    −117

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Если пФорма<>1 Тогда
    	СтрокаСФ="№";
    Иначе
    	СтрокаСФ="№";
    КонецЕсли;

    Загадочное условие в печатной форме ветеринарного свидетельства :)

    CYFiVE, 09 Марта 2011

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

    −364

    1. 1
    Если (ДатаГод(ДатаДок) < 2010) ИЛИ (ДатаГод(ДатаДок) < 2010 ) Тогда

    Строка кода из типовой конфигурации 1С: Бухгалтерия 7.7, релиз 522
    No comments ...

    manan, 10 Февраля 2011

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

    −125

    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
    //Николай
    	//проверяем артикул и если его нет, то генерируем
    	Если ПустаяСтрока(Артикул) Тогда
    		Запрос = Новый Запрос("ВЫБРАТЬ
    		                      |	МАКСИМУМ(Номенклатура.Артикул) КАК ТекАртикул
    		                      |ИЗ
    		                      |	Справочник.Номенклатура КАК Номенклатура");
    		
    		Выборка = Запрос.Выполнить().Выбрать();
    		Выборка.Следующий();
    		ТекКод = ?(Выборка.ТекАртикул = NULL, 1, Мин(ОбщегоНазначения.ПривестиСтрокуКЧислу(Выборка.ТекАртикул) + 8000, 9999999));
    		ТекАртикул = Формат(ТекКод, "ЧЦ=7; ЧВН=; ЧГ=");
    		
    		
    		//проверяем дальше
    		Выход=0;
    		Пока Выход=0 Цикл
    			Запрос = Новый Запрос("ВЫБРАТЬ
    			|	Номенклатура.Артикул КАК ТекАртикул
    			|ИЗ
    			|	Справочник.Номенклатура КАК Номенклатура
    			|ГДЕ
    			|	Номенклатура.Артикул = &Артикул");
    			Запрос.УстановитьПараметр("Артикул", ТекАртикул);
    			
    			Выборка = Запрос.Выполнить().Выбрать();
    			Нашли = Выборка.Следующий();
    			Если Нашли Тогда
    				ТекАртикул=Мин(ОбщегоНазначения.ПривестиСтрокуКЧислу(ТекАртикул) + 1, 9999999);
    				ТекАртикул = Формат(ТекАртикул, "ЧЦ=7; ЧВН=; ЧГ=");
    			Иначе
    				Выход=1;
    			КонецЕсли
    		КонецЦикла;
    		Артикул=ТекАртикул;
    		
    	КонецЕсли;
    	//Николай

    Задача: сформировать артикул (число) из 7и знаков по формуле "максимальный артикул + 1". при этом тип реквизита - строка(7). В базе встречаются значения "945784 ", "98763443".

    alex-makhnev, 15 Января 2011

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

    −127

    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
    Запрос = Новый Запрос(
    	"ВЫБРАТЬ
    	|    РегШК.Владелец                   КАК Владелец,
    	|    РегШК.ЕдиницаИзмерения           КАК ЕдиницаИзмерения,
    	|    РегШК.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
    	|ИЗ
    	|    РегистрСведений.Штрихкоды        КАК РегШК
    	|ГДЕ
    	|    РегШК.Штрихкод = &Штрихкод");
    	
    	Запрос.УстановитьПараметр("Штрихкод", Штрихкод);
    	РезультатЗапроса = Запрос.Выполнить();
    	
    	//Николай
    	Если РезультатЗапроса.Пустой() Тогда
    		Штрихкод=Сред(Штрихкод,7,6);
    		Запрос = Новый Запрос(
    		"ВЫБРАТЬ
    		|    РегШК.Владелец                   КАК Владелец,
    		|    РегШК.ЕдиницаИзмерения           КАК ЕдиницаИзмерения,
    		|    РегШК.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
    		|ИЗ
    		|    РегистрСведений.Штрихкоды        КАК РегШК
    		|ГДЕ
    		|    РегШК.Штрихкод = &Штрихкод");
    		
    		Запрос.УстановитьПараметр("Штрихкод", Штрихкод);
    		РезультатЗапроса = Запрос.Выполнить();
        КонецЕсли;
    	
    	//Николай

    Вот как надо выполнять тот же запрос, но с другим параметром!

    alex-makhnev, 07 Января 2011

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

    −133

    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
    Процедура БазоваяПриИзменении(Элемент)
    		Если ЭтаФорма.ЕдОтчетов = Истина Тогда
    			ЭтаФорма.ВДаллах = Ложь; 
    			ЭтаФорма.ВРублях = Ложь; 
    			ЭтаФорма.Ед_храненияОст = Ложь; 
    		Иначе
    			ЭтаФорма.ВДаллах = Ложь; 
    			ЭтаФорма.ВРублях = Истина; 
    			ЭтаФорма.Ед_храненияОст = Ложь; 
    		КонецЕсли;	
    КонецПроцедуры
    	
    Процедура ВДаллахПриИзменении(Элемент)
    		Если ЭтаФорма.ВДаллах = Истина Тогда
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.ВРублях = Ложь; 
    			ЭтаФорма.Ед_храненияОст = Ложь; 
    		Иначе
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.ВРублях = Истина; 
    			ЭтаФорма.Ед_храненияОст = Ложь; 
    		КонецЕсли;	
    КонецПроцедуры
    	
    Процедура Ед_храненияОстПриИзменении(Элемент)
    		Если ЭтаФорма.Ед_храненияОст = Истина Тогда
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.ВРублях = Ложь; 
    			ЭтаФорма.ВДаллах = Ложь; 
    		Иначе
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.ВРублях = Истина; 
    			ЭтаФорма.ВДаллах = Ложь; 
    		КонецЕсли;	
    КонецПроцедуры
    	
    Процедура ВРубляхПриИзменении(Элемент)
    		Если ЭтаФорма.ВРублях = Истина Тогда
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.Ед_храненияОст = Ложь; 
    			ЭтаФорма.ВДаллах = Ложь; 
    		Иначе
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.ВРублях = Истина; 
    			ЭтаФорма.ВДаллах = Ложь; 
    		КонецЕсли;
    КонецПроцедуры

    Замечательная реализация радиобаттонов через флажки

    ingenuus, 16 Декабря 2010

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

    −121

    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
    Док.н212=ТекЛист.Cells(х,2).Text; 
    Док.н213=ТекЛист.Cells(х,3).Text; 
    Док.н214=ТекЛист.Cells(х,4).Text; 
    Док.н215=ТекЛист.Cells(х,5).Text;; 
    Док.н216=ТекЛист.Cells(х,6).Text; 
    Док.н217=ТекЛист.Cells(х,7).Text;; 
    Док.н218=ТекЛист.Cells(х,8).Text; 
    Док.н219=ТекЛист.Cells(х,9).Text; 
    Док.н220=ТекЛист.Cells(х,10).Text; 
    Док.н221=ТекЛист.Cells(х,11).Text; 
    Док.н222=ТекЛист.Cells(х,12).Text; 
    Док.н223=ТекЛист.Cells(х,13).Text; 
    Док.н224=ТекЛист.Cells(х,14).Text; 
    Док.н225=ТекЛист.Cells(х,15).Text; 
    Док.н226=ТекЛист.Cells(х,16).Text; 
    Док.н227=ТекЛист.Cells(х,17).Text; 
    Док.н228=ТекЛист.Cells(х,18).Text; 
    Док.н229=ТекЛист.Cells(х,19).Text; 
    Док.н230=ТекЛист.Cells(х,20).Text; 
    Док.н231=ТекЛист.Cells(х,21).Text; 
    Док.н232=ТекЛист.Cells(х,22).Text; 
    Док.н233=ТекЛист.Cells(х,23).Text; 
    Док.н234=ТекЛист.Cells(х,24).Text; 
    Док.н235=ТекЛист.Cells(х,25).Text; 
    Док.н236=ТекЛист.Cells(х,26).Text; 
    Док.н237=ТекЛист.Cells(х,27).Text; 
    Док.н238=ТекЛист.Cells(х,28).Text; 
    Док.н239=ТекЛист.Cells(х,29).Text; 
    Док.н240=ТекЛист.Cells(х,30).Text; 
    Док.н241=ТекЛист.Cells(х,31).Text; 
    Док.н242=ТекЛист.Cells(х,32).Text; 
    Док.н243=ТекЛист.Cells(х,33).Text; 
    Док.н244=ТекЛист.Cells(х,34).Text; 
    Док.н245=ТекЛист.Cells(х,35).Text; 
    Док.н246=ТекЛист.Cells(х,36).Text; 
    Док.н247=ТекЛист.Cells(х,37).Text; 
    Док.н248=ТекЛист.Cells(х,38).Text; 
    Док.н249=ТекЛист.Cells(х,39).Text; 
    Док.н250=ТекЛист.Cells(х,40).Text; 
    Док.н251=ТекЛист.Cells(х,41).Text; 
    Док.н252=ТекЛист.Cells(х,42).Text; 
    Док.н253=ТекЛист.Cells(х,43).Text; 
    Док.н254=ТекЛист.Cells(х,44).Text; 
    Док.н255=ТекЛист.Cells(х,45).Text; 
    Док.н256=ТекЛист.Cells(х,46).Text; 
    Док.н257=ТекЛист.Cells(х,47).Text; 
    Док.н258=ТекЛист.Cells(х,48).Text; 
    Док.н259=ТекЛист.Cells(х,49).Text; 
    Док.н260=ТекЛист.Cells(х,50).Text; 
    Док.н261=ТекЛист.Cells(х,51).Text; 
    Док.н262=ТекЛист.Cells(х,52).Text; 
    Док.н263=ТекЛист.Cells(х,53).Text; 
    Док.н264=ТекЛист.Cells(х,54).Text; 
    Док.н265=ТекЛист.Cells(х,55).Text; 
    Док.н266=ТекЛист.Cells(х,56).Text; 
    Док.н267=ТекЛист.Cells(х,57).Text; 
    Док.н268=ТекЛист.Cells(х,58).Text; 
    Док.н269=ТекЛист.Cells(х,59).Text;	
    
    // ... 
    // и так далее все реквизиты

    Тот же программер с поиском даты заполняет реквизиты документа.

    Ivon, 09 Декабря 2010

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