Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   В шоке: новый способ получить остатки регистра накопления (http://forums.kuban.ru/f1040/v_shoke_novyj_sposob_poluchit-_ostatki_registra_nakopleniya-4551891.html)

Uho 26.07.2013 11:35

В шоке: новый способ получить остатки регистра накопления
 
Наткнулся на код в конфе, доставшейся по наследству.
Чел получает остатки Регистра накопления на каждую дату месяца следующим образом:

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

ЗапросПоСчетам.УстановитьПараметр("КонДата", КонецДня(ПредДень));
ЗапросПоСчетам.УстановитьПараметр("Поставщик", Поставщик);
ЗапросПоСчетам.УстановитьПараметр("Договор", Договор);
Выборка = ЗапросПоСчетам.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
СуммаДляПроцента = СуммаДляПроцента + Выборка.Начислено - Выборка.Списано;
КонецЦикла;

я в шоке...
кому лень читать код - вместо использования виртуальной таблицы Остатки, чел на каждый ДЕНЬ перебирает ВСЕ записи регистра накопления и ВЫСЧИТЫВАЕТ остаток.
не говоря уже о том, что структура регистра неправильная

angro 26.07.2013 11:41

хотя бы уже в запросе сложил

roma n 26.07.2013 11:44

Свой расчёт может быть следствием аврального внесения изменений в алгоритм при разрушении таблицы итогов. Но тут, видимо, не тот случай...
В целом - да, зачётно :). Создание объекта Запрос внутри цикла, опять же, колоритненько

Uho 26.07.2013 11:48

1-angro > кстати, это "она"

Jimbo 26.07.2013 11:57

наглядный учебник как низя делать!

angro 26.07.2013 11:58

(3) я в последнее время столкнулся с девушками программистами, нормально пишут, был худшего мнения.

Helen1986 26.07.2013 12:40

это - код одноЭсника!

Uho 26.07.2013 12:52

5-angro > я не говорю, что (0) это из-за пола ))

Вот еще оттуда же:

[code]ВсегоДней = ?(Год(Дата) = 2008, 366, 365);[/code]

Helen1986 26.07.2013 13:20

(7) нормальный код в стиле 1це - типичная затычка "на сейчас"

VZ 26.07.2013 13:52

8-Helen1986 > Почему "в стиле 1це"? У нас счаз госдура фунциклирует в этом режиме. Вообще все структуры. И вкачивают в головы, что так надо.

Reaper 26.07.2013 14:00

(0) Finish her!

Helen1986 26.07.2013 14:01

ну значит 1це и госдура - одного поля ягоды
и разводят нас одинаково - лишь бы самим бабла урвать

Helen1986 26.07.2013 14:02

(10)
her! Finish! как бы не так - оно будет вечно!

bma1 26.07.2013 14:07

31473677]ну значит 1це и госдура - одного поля ягоды[/quote]
Раз оне одинаковые, значт одну дуру можно убрать. Я за то, чтоб оставить 1с...

Uho 26.07.2013 14:50

13-bma1 > а как же конкуренция?

Helen1986 26.07.2013 15:05

(13) я за то, чтобы выкинуть обе прокисшие ягоды

bma1 26.07.2013 15:48

[quote=Helen1986;31474961]я за то, чтобы выкинуть обе прокисшие ягоды [/quote]
Helen1986 в президенты!!!

Tolkien 26.07.2013 17:39

есть замечательный сайт говнокод.ру. Там и про 1с.
Например:
Красный = Новый Цвет (255, 0, 0); //Красный
Зеленый = Новый Цвет (0, 255, 0); //Зеленый
Синий = Новый Цвет (0, 0, 255); //Синий

angro 26.07.2013 20:40

(17) а в чем тут говнокод? есть такие константы? может свои названия хочется.

bma1 26.07.2013 21:58

2(17) И что? Я сам писал как-то такой код:
СерыйЦвет = WebЦвета.ЛососьСветлый;

точнее сперва это был действительно серый, но потом пользователи попросили цвет повеселее...

Reaper 26.07.2013 23:03

19-bma1 > У нас как-то так повелось, что для парней набор лососевых цветов - это цвета "повеселее", а для девчонок - по умолчанию.

Tolkien 26.07.2013 23:59

Вы тут все идиеты, или только я?) дальтоники?)

Morrison 27.07.2013 00:22

2(0) Это классика. Похоже он тебя обскакал, ух...

Morrison 27.07.2013 00:29

+(22) Мне интересно было бы посмотреть твой правильный код. Этот код не критичный. Мне просто хотелось бы увидеть код идеального программиста. Я таковым являюсь, заранее скажу, да ты и сам знаешь. Но все же. Можно хоть одним глазком?

EarlyBird 27.07.2013 01:13

(23) ого, ты уже успел стать идеальным программистом, скромняга!
и кто же короновал тебя этим званием?

Morrison 27.07.2013 01:22

2(24) Да, брось. Я очень скромный человек.

Morrison 27.07.2013 01:25

+(25) Я антигуманист, я белорус

EarlyBird 27.07.2013 01:28

[quote=Моррисон;31249533]Кстати, фигачу уже поиски по кодам и всем рекомендую. И добавлять "КодSAP" и прочую [*****]. Не парьтесь - мы на задворках жизни. Ни к чему страшному это не приведет. [/quote]
да, это действительно идеально!

Morrison 27.07.2013 01:39

2(27) И...

Morrison 27.07.2013 01:44

Настоящие герои всегда всегда в зопое

Helen1986 27.07.2013 08:54

(29)в состоянии программиста (зопое) вторая буква О лишняя

Morrison 27.07.2013 09:15

2(30) Какая ты умничка, ты все правильно поняла.

Morrison 27.07.2013 09:24

2(27) Ну так аргументы будут, Ирли? А то становится скучновато.

Morrison 27.07.2013 09:46

2(0) Кстати, написать такой запрос это не просто, человек явно умен, а ты его грязью на форуме...

Morrison 27.07.2013 09:47

Ирли, чего застыл? Послушай вот лучше, какие демоны тебя ведут? Я уже 88 вешу.

[url]http://music.yandex.ru/#!/artist/41051/tracks[/url]

"Демоны" само собой.

bma1 29.07.2013 08:31

На днях одному начинающему 1с-нику долго объяснял, что отрицание истины не всегда есть ложь. Во всяком случае в запросах... два варианта:
...ГДЕ НЕ ИСТИНА В (ВЫБРАТЬ ИСТИНА ИЗ ...)
...ГДЕ ЛОЖЬ В (ВЫБРАТЬ ИСТИНА ИЗ ...)
дают принципиально разные результаты :)

Reaper 29.07.2013 08:47

35-bma1 > Одни из моих любимых тем про запросы:
1. Что вернет А=Null?
2. Что больше - истина или ложь?

bma1 29.07.2013 09:57

2(36)
1. Как что вернет? NULL и вернет.
2. Обычно true == 1 а false == 0, т.о. даже маленькая истина больше огромной лжи...
P.S. ненавижу разработчиков баз данных, кто пользуется возможностью при отсутствии явной инициализации полей новой записи таблицы позволять неинициализированным полям иметь значение NULL (а не в соответтсии с их типом: пустая строка, ложь или обычный ноль).

bma1 29.07.2013 09:59

2(17)
Зеленый = Новый Цвет (0, 255, 0); //Зеленый

RGB - Rot,Gelb,Blau ???

p etrovich 29.07.2013 10:43

(38) это на каком языке?


Текущее время: 04:27. Часовой пояс GMT +3.