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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
Сумма   = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(
		СуммаВал,
		ВалютаДокумента,
		ВалютаВзаиморасчетов,
		МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаДокумента,Дата).Курс,
		МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаВзаиморасчетов,Дата).Курс,
		МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаДокумента,Дата).Кратность,
		МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаВзаиморасчетов,Дата).Кратность);

Решение имеет статус 1С:Совместно.
Один из ведущих партнеров 1С.
Такой код во многих местах.

Euguln Euguln, (Updated )

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

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

0

  1. 1
  2. 2
НСтрока = ДокументОбъект.Товары.Добавить();
НСтрока.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт",,,НСтрока.Номенклатура);

luns luns, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	ОтраженоВОперУчете           = Истина;
	ОтражатьВБухгалтерскомУчете  = Истина;
	ОтражатьВНалоговомУчете      = Истина;
	
	Если НЕ ДокументОснование = Неопределено Тогда
		ЭлементыФормы.Проект.Значение = ДокументОснование.Проект;
	КонецЕсли;	
		
КонецПроцедуры // ПередОткрытием()

Автор хотел что бы все документы обязательно проводились по БУ УУ и НУ... И хотел что бы при вводе на основании заполнялось поле проект. Ну почти получилось:))))

acckiy_koder acckiy_koder, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
ТаблПоле.Очистить();
Если (ТаблПоле.Количество() > 0) Тогда
	Возврат;
КонецЕсли;

А вдруг после очистки таблицы значений там всё-таки остались строки?

polestnize polestnize, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
ТекВрем = Час(ТекущаяДата())*60+Минута(ТекущаяДата());
ВремКурсов = 60;
Если ТекВрем >= ВремКурсов Тогда
	ВремКурсов = ВремКурсов + 24*60 - ТекВрем;
Иначе
	ВремКурсов = ВремКурсов - ТекВрем;
КонецЕсли;
ВремКурсов = 1;
ПодключитьОбработчикОжидания("ЗагрузкаВалютИПересчетУЕ", ВремКурсов*60);

Вычисляем ВремКурсов, а затем присваиваем этой переменной единицу и умножаем на 60. Рациональность, чорт побери! :-D

KingOfShit KingOfShit, (Updated )

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

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

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
  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
запрос = новый запрос("ВЫБРАТЬ
|	ЗаказыПокупателейОбороты.ЗаказПокупателя,
|	ЗаказыПокупателейОбороты.Номенклатура,
|	СУММА(ЗаказыПокупателейОбороты.КоличествоПриход) КАК КоличествоВЗаказе,
|	СУММА(ВложенныйЗапрос.ОстатокПоЗаказу) КАК ОстатокПоЗаказу,
|	СУММА(ВложенныйЗапрос.ОстатокВРезерве) КАК ОстатокВРезерве
|ИЗ
|	РегистрНакопления.ЗаказыПокупателей.Обороты(, , , ) КАК ЗаказыПокупателейОбороты
|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
|			ЗаказыПокупателейОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
|			ЗаказыПокупателейОстатки.Номенклатура КАК Номенклатура,
|			СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток) КАК ОстатокПоЗаказу,
|			СУММА(0) КАК ОстатокВРезерве
|		ИЗ
|			РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки
|		ГДЕ
|			ЗаказыПокупателейОстатки.ЗаказПокупателя = &Заказ
|		
|		СГРУППИРОВАТЬ ПО
|			ЗаказыПокупателейОстатки.ЗаказПокупателя,
|			ЗаказыПокупателейОстатки.Номенклатура
|		
|		ОБЪЕДИНИТЬ ВСЕ
|		
|		ВЫБРАТЬ
|			ТоварыВРезервеНаСкладахОстатки.ДокументРезерва,
|			ТоварыВРезервеНаСкладахОстатки.Номенклатура,
|			СУММА(0),
|			СУММА(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток)
|		ИЗ
|			РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
|		ГДЕ
|			ТоварыВРезервеНаСкладахОстатки.ДокументРезерва = &Заказ
|		
|		СГРУППИРОВАТЬ ПО
|			ТоварыВРезервеНаСкладахОстатки.Номенклатура,
|			ТоварыВРезервеНаСкладахОстатки.ДокументРезерва) КАК ВложенныйЗапрос
|		ПО ЗаказыПокупателейОбороты.ЗаказПокупателя = ВложенныйЗапрос.ЗаказПокупателя
|			И ЗаказыПокупателейОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура
|ГДЕ
|	ЗаказыПокупателейОбороты.ЗаказПокупателя = &Заказ
|
|СГРУППИРОВАТЬ ПО
|	ЗаказыПокупателейОбороты.ЗаказПокупателя,
|	ЗаказыПокупателейОбороты.Номенклатура");

запрос.УстановитьПараметр("Заказ",заказ);					  

Результат = Запрос.Выполнить();
тРезервы.Очистить();
	
Если Не Результат.Пустой() Тогда
	Выборка = Результат.Выбрать();
	Пока Выборка.Следующий() Цикл
		НоваяСтрока 		= тРезервы.Добавить();
		НоваяСтрока.Номенклатура 	= Выборка.Номенклатура;
		НоваяСтрока.КоличествоВЗаказе = Выборка.КоличествоВЗаказе;
		НоваяСтрока.ОстатокВРезерве 	= Выборка.ОстатокВРезерве;
		НоваяСтрока.ОстатокКОтгрузке 	= Выборка.ОстатокПоЗаказу;
	КонецЦикла; 
КонецЕсли;

Заполнение таблицы значений, очень быстро работает)))
КоличествоВЗаказе в 2 раза больше получается

SrK SrK, (Updated )

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

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

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
  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
  63. 63
  64. 64
  65. 65
  66. 66
Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
	
ТекКвота = ДанныеСтроки.Ссылка;
мЗапросДок = Новый Запрос;
мЗапросДок.Текст = 
"ВЫБРАТЬ
|	ЕСТЬNULL(СУММА(СДотчетТовары.Количество), 0) КАК Количество
|ИЗ
|	Документ.СДотчет.Товары КАК СДотчетТовары
|ГДЕ
|	СДотчетТовары.Ссылка.Проведен = ИСТИНА
|	И СДотчетТовары.КвотаОтчета = &Квота";			
мЗапросДок.УстановитьПараметр("Квота",ТекКвота);
			
Выборка = мЗапросДок.Выполнить().Выбрать();
Выборка.Следующий();
ВДоке = Выборка.Количество;
ОформлениеСтроки.Ячейки.СогласноСД.Значение = ?(ВДоке=0,"",ВДоке);
мЗапросПОС = Новый Запрос;
мЗапросПОС.Текст = 
"ВЫБРАТЬ
|	ЕСТЬNULL(СписаноПоПОСОбороты.КоличествоОборот, 0) КАК Количество
|ИЗ
|	РегистрНакопления.СписаноПоПОС.Обороты(, , , Квота = &Квота) КАК СписаноПоПОСОбороты";

мЗапросПОС.УстановитьПараметр("Квота",ТекКвота);
Выборка = мЗапросПОС.Выполнить().Выбрать();
Выборка.Следующий();
ВПОС = Выборка.Количество;
ОформлениеСтроки.Ячейки.СогласноПОС.Значение = ?(ВПОС=0,"",ВПОС);
			
мЗапросРег = Новый Запрос;

мЗапросРег.Текст = 
"ВЫБРАТЬ
|	ЕСТЬNULL(Квоты.КолВЗаказахПокупателя, 0) КАК КолВЗаказахПокупателя,
|	ЕСТЬNULL(ЗаказПоставщику.КолВЗаказахПоставщику, 0) КАК КолВЗаказахПоставщику
|ИЗ
|	(ВЫБРАТЬ
|		СУММА(ЕСТЬNULL(ЗаказПоставщикуТовары.Количество, 0)) КАК КолВЗаказахПоставщику
|	ИЗ
|		Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
|	ГДЕ
|		ЗаказПоставщикуТовары.КвотаЗаказа = &Квота) КАК ЗаказПоставщику,
|	(ВЫБРАТЬ
|		СУММА(ЕСТЬNULL(КвотыЗаказовПокупателейОстаткиИОбороты.КоличествоПриход, 0)) КАК КолВЗаказахПокупателя
|	ИЗ
|		РегистрНакопления.КвотыЗаказовПокупателей.ОстаткиИОбороты(
|				,
|				,
|				,
|				,
|				Квота = &Квота
|					И ВидКвоты = ЗНАЧЕНИЕ(Перечисление.ВидыКвот.ОтчетнаяКвота)) КАК КвотыЗаказовПокупателейОстаткиИОбороты) КАК Квоты";

			
мЗапросРег.УстановитьПараметр("Квота",ТекКвота);
Выборка = мЗапросРег.Выполнить().Выбрать();
ЕстьВыборка = Выборка.Следующий();
КолВЗаказахПокупателя = ?(не ЕстьВыборка,0,Выборка.КолВЗаказахПокупателя);
КолВЗаказахПоставщику = ?(не ЕстьВыборка,0,Выборка.КолВЗаказахПоставщику);

ОформлениеСтроки.Ячейки.ВЗаказахПокупателя.Значение = КолВЗаказахПокупателя;
ОформлениеСтроки.Ячейки.ВЗаказахПоставщику.Значение = КолВЗаказахПоставщику;

КонецПроцедуры

Чудный справочник, очень быстро открывается и прокручивается. Приходится ждать по 20 секунд)))

KingOfShit KingOfShit, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
Функция ВыделитьНалог(СуммаСНалогом,Ставка)
        Если Ставка<>-100 Тогда
                Возврат(Ставка*СуммаСНалогом/(100+Ставка));
        Иначе
                Сообщить("Налог не рассчитан");
                Возврат(0);
        КонецЕcли;
КонецФункции

В одном продукте, имеющем сертификат 1с Совместимо!

Нет, с программерской точки зрения верно. Только как ставка налога может быть минус сто процентов? O.o

nslz nslz, (Updated )

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