Бухгалтерия / Говнокод #6127 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
Функция СравнитьЭлементыСправочника(Элемент1, Элемент2, фЗаписатьРазличия=0) Экспорт
	Перем Рез;
	Рез = 0;
	Если (Элемент1 <> Элемент2) и (фЗаписатьРазличия=0) Тогда
		Рез = 1;
		Перейти ~М1;
	КонецЕсли;
	
	// сначала проверим код и наименование 
	Если (Элемент1.Код <> Элемент2.Код) Тогда
		если фЗаписатьРазличия=1 Тогда
			ЗаписьЖурналаРегистрации("изменен код с '"+СокрЛП(Элемент1.Код)+"' на '"+СокрЛП(Элемент2.Код)+"'","Справочники","Изменен реквизит справочника",Элемент1,2);
		Иначе
			Рез = 1;
			Перейти ~М1;
		КонецЕсли;	
	КонецЕсли;
	
	Если Элемент1.Наименование <> Элемент2.Наименование Тогда
		если фЗаписатьРазличия=1 Тогда
			ЗаписьЖурналаРегистрации("изменено наименование с '"+СокрЛП(Элемент1.наименование)+"' на '"+СокрЛП(Элемент2.наименование)+"'","Справочники","Изменен реквизит справочника",Элемент1,2);
		Иначе
			Рез = 1;
			Перейти ~М1;
		КонецЕсли;	
	КонецЕсли;	

	// == тут было код который удалил автор поста	==

~М1:	
	Возврат Рез;
		
КонецФункции

Внезапно нашел такую функцию неизвестного автора :)

CYFiVE CYFiVE, (Updated )

Комментарии (18, +18)

Бухгалтерия / Говнокод #6113 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 bytemdfab, (Updated )

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

Бухгалтерия / Говнокод #5983 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
СписокЗначенийТиповЦен = Новый СписокЗначений;
...
КоличествоЦен = 0;
РезультатВыбора = ФормаВыбораТиповЦен.ОткрытьМодально();
Для Каждого Элемент Из РезультатВыбора Цикл 
	СписокЗначенийТиповЦен.Добавить(Элемент.Значение);
	КоличествоЦен = КоличествоЦен + 1;
КонецЦикла;

Если КоличествоЦен = 0 Тогда
	Предупреждение("Не выбран ни один тип цен!!!");	
	Возврат;
КонецЕсли;

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

ingenuus ingenuus, (Updated )

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

Бухгалтерия / Говнокод #5928 Ссылка на оригинал

0

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

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

CYFiVE CYFiVE, (Updated )

Комментарии (6, +6)

Бухгалтерия / Говнокод #5628 Ссылка на оригинал

0

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

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

manan manan, (Updated )

Комментарии (4, +4)

Бухгалтерия / Говнокод #5282 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 alex-makhnev, (Updated )

Комментарии (17, +17)

Бухгалтерия / Говнокод #5174 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 alex-makhnev, (Updated )

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

Бухгалтерия / Говнокод #4949 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 ingenuus, (Updated )

Комментарии (39, +39)