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

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
Процедура ПоказатьРасчетныеСчета()
	ТаблицаРасчетныхСчетов.Очистить();
	
	Если ЭтоНовый() Тогда
		Возврат;
	КонецЕсли;	
	
	Выборка = Справочники.ТСЖ.Выбрать();
	Пока Выборка.Следующий() Цикл
		ТСЖНеБух = Выборка.Ссылка;
		Если (ТСЖНеБух.ПометкаУдаления) ИЛИ (ТСЖНеБух.ЭтоУК=1) ИЛИ (ТСЖНеБух.ЭтоУК=2) Тогда 
			Продолжить;
		КонецЕсли;
		
		//--- (1)--- Все СОБСТВЕННЫЕ счета (выборка по владельцу счета)
		Если (НЕ ТСЖНеБух.НаБалансеУК) Тогда
			ВыбСчетов = Справочники.БанковскиеСчета.Выбрать(,ТСЖНеБух,,"Код Возр"); 
			Пока ВыбСчетов.Следующий() Цикл
				Если (НЕ ВыбСчетов.ПометкаУдаления) Тогда
					ДобавитьСчет(ТСЖНеБух, ВыбСчетов.Ссылка, ВыбСчетов.Ссылка.ХранилищеУслуг);
				КонецЕсли;	
			КонецЦикла;
		КонецЕсли;	

		//--- (2)--- Все ЧУЖИЕ счета (обход табличной части СчетаУК)
		Для Каждого ВыбСчет Из ТСЖНеБух.СчетаУК Цикл
			Если  (ВыбСчет.Организация   = Справочники.ТСЖ.ПустаяСсылка()) ИЛИ
				  (ВыбСчет.РасчетныйСчет = Справочники.БанковскиеСчета.ПустаяСсылка()) Тогда
				  Продолжить;
			КонецЕсли;	  
			Если НЕ ВыбСчет.РасчетныйСчет.ПометкаУдаления Тогда
				ДобавитьСчет(ТСЖНеБух, ВыбСчет.РасчетныйСчет, ВыбСчет.ХранилищеУслуг);
			КонецЕсли;	
		КонецЦикла;	
		//----------
	КонецЦикла;	
КонецПроцедуры
Процедура ДобавитьСчет(ТСЖНеБух, РСчет, Хран)
		НовСтр               = ТаблицаРасчетныхСчетов.Добавить();
		НовСтр.Организация   = ТСЖНеБух;
		НовСтр.Получатель    = РСчет.Владелец;
		НовСтр.РасчетныйСчет = РСчет;
			
		Если ТСЖНеБух.ВсеУслугиВОдной Тогда
			НовСтр.Флаг      = "Да, может.";
		Иначе	
			МассУслуг      = глПолучитьМассивСсылокУслуг(Хран);
			НовСтр.Флаг      = ?(МассУслуг.Найти( Ссылка ) = Неопределено, "Нет", "Да, может.");
		КонецЕсли;	
КонецПроцедуры

ХранилищеЗначений, любимый(?) костыль людей, не слышавших о нормализации.
Вместо того, чтобы сделать регистр сведений со связями (хотя бы)счёт-услуга, мы запихнём список услуг в ХЗ - реквизит счёта. Это ведь так удобно(на самом деле нет)!

Запостил: CtrlAltReset CtrlAltReset, (Updated )

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

  • >Если (НЕ ТСЖНеБух.НаБалансеУК
    > Для Каждого ВыебСчет Из ТСЖНеБух

    Как можно это на полном серьезе читать?
    Ответить
    • А теперь представь, каково англоговорящим в остальных языках.
      Ответить
  • этот код прекрасен во всем , и неявные запросы в цикле и "ЭтоНовый()" в процедуре с названием "показать" (это во мне уже Управляемые формы говорят )
    Ответить

Добавить комментарий для bormand Отменить ответ

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8