1. Список говнокодов пользователя alex-makhnev

    Всего: 2

  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

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