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

    −364

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

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

    manan, 10 Февраля 2011

    Комментарии (4)
  2. 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)
  3. 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

    Комментарии (12)
  4. 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)
  5. 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)
  6. 1C / Говнокод #4877

    −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
    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
    Каталог=СокрЛП(ИмяКаталога); 
    
    Цифры="0123456789"; 
    Д=ТекущаяДата(); 
    ДД=""; 
    Стр=Каталог; 
    
    х=Найти(Стр,"."); 
    Если х>0 Тогда 
    Символ1=Сред(Стр,х-2,1); 
    Если Найти(Цифры,Символ1)>0 Тогда 
    ДД=Символ1; 
    КонецЕсли; 
    
    Символ2=Сред(Стр,х-1,1); 
    Если Найти(Цифры,Символ2)>0 Тогда 
    ДД=ДД+Символ2+"."; 
    КонецЕсли; 
    
    Стр=Сред(Стр,х+1); 
    КонецЕсли; 
    
    х=Найти(Стр,"."); 
    Если х>0 Тогда 
    Символ1=Сред(Стр,х-2,1); 
    Если Найти(Цифры,Символ1)>0 Тогда 
    ДД=ДД+Символ1; 
    КонецЕсли; 
    
    Символ2=Сред(Стр,х-1,1); 
    Если Найти(Цифры,Символ2)>0 Тогда 
    ДД=ДД+Символ2+"."; 
    КонецЕсли; 
    
    Стр=Сред(Стр,х+1); 
    
    Символ1=Лев(Стр,1); 
    Если Найти(Цифры,Символ1)>0 Тогда 
    ДД=ДД+Символ1; 
    КонецЕсли; 
    
    Символ2=Сред(Стр,2,1); 
    Если Найти(Цифры,Символ2)>0 Тогда 
    ДД=ДД+Символ2; 
    КонецЕсли; 
    КонецЕсли; 
    
    Если СтрДлина(ДД)=8 Тогда 
    Д=Дата(ДД); 
    Сообщить(Д); 
    КонецЕсли;

    Вот нашел на одном из форумов. Программер ищет дату.

    Ivon, 09 Декабря 2010

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

    −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
    &НаКлиенте
    Процедура ПриЗакрытии()
    	ПроверитьНаОткрытие()
    КонецПроцедуры
    
    &НаСервере 
    Процедура ПроверитьНаОткрытие() 
    	Если Объект.Исполнитель =ПараметрыСеанса.ТекущийПользователь() И Не Объект.Просмотрено = Истина Тогда
    		Задача = Объект.Ссылка.ПолучитьОбъект();
    		Задача.Просмотрено = Истина;
    		Задача.Записать();
    	КонецЕсли;
    КонецПроцедуры

    cdpoma, 08 Декабря 2010

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

    −129

    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
    //Тут был код
    
    //!Проверки на корректность данных.
    		ИначеЕсли (Строка(Лист.Cells(Счетчик,8).value) = "") ИЛИ (Строка(Лист.Cells(Счетчик,8).value) = "") ИЛИ ((Лист.Cells(Счетчик,8).value) = 0) ИЛИ ((Лист.Cells(Счетчик,8).value) = 0)  Тогда
    			Сообщить("У номенклатуры в строке №"+Счетчик+" не хватает данных по ценам! Позиция не добавлена!", СтатусСообщения.Важное);
    		ИначеЕсли ((Лист.Cells(Счетчик,8).value) < 0) ИЛИ ((Лист.Cells(Счетчик,8).value) < 0) Тогда 
    			Сообщить("У номенклатуры в строке №"+Счетчик+" отрицательная цена! Позиция не добавлена!", СтатусСообщения.Важное);
    		Иначе
    			Мас.Добавить(Строка(Лист.Cells(Счетчик, 1).value));
    			ЭлементСправочника = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Строка(Лист.Cells(Счетчик, 1).value));
    
    
    //Там дальше код

    Фрагмент обработки найден в конфиге клиента. До фрагмента - открытие файла excel. После - распихивание данных с него по регистрам. Гениальная проверка на корректность гениальна.

    CreatorOfBullshit, 08 Декабря 2010

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

    −121

    1. 1
    2. 2
    3. 3
    4. 4
    ВнутреннийКодДокумента=Лев(ФайлКаталога.Имя,Найти(ФайлКаталога.Имя,"_")-1);
    ВнутреннийКодДокумента=Формат(Число(ВнутреннийКодДокумента),"ЧЦ=9;ЧВН=");
    ВнутреннийКодДокумента=СтрЗаменить(ВнутреннийКодДокумента," ","");
    СсылкаНаВходящийДокумент=Справочники.ВходящиеДокументы.НайтиПоКоду(ВнутреннийКодДокумента);

    получает имя файла например 122341_20101207201000.pdf и ищет по коду в справочники с лидирующими нулями, если кто то может предложить лучше предложение, то я буду только рад)

    cdpoma, 07 Декабря 2010

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

    −140

    1. 1
    2. 2
    3. 3
    Если (ШаблонПроводки.Наименование = "Распределять пропорционально расчетной базе") Тогда
    	МожноПроводить = 0;
    	Сообщить(НазваниеДока+"неверно указан шаблон проводки", "!");

    Это так профессионально, сравнивать строки...

    1_and_0, 24 Ноября 2010

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