К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

В шоке: новый способ получить остатки регистра накопления

Uho
0 - 26.07.2013 - 11:35
Наткнулся на код в конфе, доставшейся по наследству.
Чел получает остатки Регистра накопления на каждую дату месяца следующим образом:

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

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

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

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



Гость
41 - 29.07.2013 - 15:53
(0) Ну работает же :)
(17) Нормальный код.
Гость
42 - 29.07.2013 - 15:55
(41) я так думаю его смущает что человек комментарии написал. правда при чем тут говнокод непонятно
Uho
43 - 30.07.2013 - 09:58
Цитата:
Сообщение от Моррисон Посмотреть сообщение
Мне интересно было бы посмотреть твой правильный код. Этот код не критичный. Мне просто хотелось бы увидеть код идеального программиста. Я таковым являюсь, заранее скажу, да ты и сам знаешь. Но все же.
После таких заявлений мне даже страшно говорить, что я считаю правильным в (0) использовать виртуальные таблицы Остатки (если надо на одну дату) или ОстаткиИОбороты (если надо на каждую дату за период)
Гость
44 - 30.07.2013 - 20:20
хз хз хз
Гость
45 - 30.07.2013 - 21:05
44-smaharbA > кубанская версия фильма "xXx"?
Гость
46 - 31.07.2013 - 22:27
2(36)
1 - вернет Ложь
2 - в булевой математике нет понятия больше меньше, есть Ложь и Истина. Выражения рассчитывают по принципу обычной математики - слева направо, если в конце выражения присутствует И, то несмотря на все ИЛИ будет Ложь, если оно одно даст Ложь. И?
Гость
47 - 31.07.2013 - 22:33
2(43) Не считаю это правильным. Использовать виртуальные таблицы нужно осмысленно. а не потому, что так надо. Если нет вложения третьего уровня, то вполне годятся вложенные запросы. Это первое. Второе. Иногда проще обратиться к физической таблице, чем к виртуальной со всеми ее замысловатостями, с корр счет, счет, корр субконто, субконто и т.п. думаю знаешь не понаслышке. Потеря скорости? Требования оперативности каковы? Я сейчас ищу документы по номеру в пределах года через менеджер - это составляет 2 минуты, получу через COM таблицу значений и перекину ее на сторону вызывающей стороны - пусть минута. Это важно??? Вопрос всегда стоит в том, насколько адекватно ты используешь инструмент. Вот и все.

Заявления - шутка. Черт, на Т1С реально какие-то проблемы с юмором.
Гость
48 - 31.07.2013 - 22:44
46-Моррисон > Для БП нужна форма с двумя динамическими списками, отображающая данные за 1 день:
1. Список расчетных счетов, по которым есть платежные поручения с галочками напротив тех, по которым у всех платежек есть признак "оплачено".
2. Вторая таблица связана с первой и отображает платежки по выделенному расчетному счету и флаг "оплачено".

Я был бы признателен за демонстрацию решения этой ерундовины идеальным программистом. А точнее - интересует механизм наполнения данными первого списка. Спасибо.
Гость
49 - 31.07.2013 - 22:58
2(48) Начнем с того, что динамические списки я не видел уже более года, насколько я помню там есть возможность получения их из запроса.

1. Да ты хочешь сказать, что надо использовать регистр и плюс вложенный запрос. Мой вариант - гребем платежки за период, ставим условие Оплачено = Истина, через точку получаем расчетный счет, указываем ключевое слово Без повторяющихся
2. Вторая вложенность нужна, все, что получили в первом запросе через левое соединение вытягиваем платежки, на уровне ГДЕ ставим флаг Оплачено = Истина.

А на самом деле тут явно попытка угодить пользователю и выстроить себе дорогу в ад. Я решаю все это по-другому - я не строю контекстно связанные списки если отбор выполняется по булеву.
Гость
50 - 31.07.2013 - 23:06
+(49) Неплохо бы завести регистр, но там будут вопросы с частичной оплатой. Смотря, что нужно.
Гость
51 - 31.07.2013 - 23:26
Вообше-то это был синтетический вопрос на знание языка запросов. Не идеальные программисты переходя из категории стажеров в основной состав у нас пишут так:
ВЫБРАТЬ
ПлатежноеПоручение.СчетОрганизации,
МИНИМУМ(ПлатежноеПоручение.Оплачено) КАК Оплачено
ИЗ
Документ.ПлатежноеПоручение КАК ПлатежноеПоручение
ГДЕ
ПлатежноеПоручение.Проведен
И ПлатежноеПоручение.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&День, ДЕНЬ) И КОНЕЦПЕРИОДА(&День, ДЕНЬ)

СГРУППИРОВАТЬ ПО
ПлатежноеПоручение.СчетОрганизации

Вот уж не думал, что мы так страстно увольняем от клиентов идеальных программистов, работающих на фикси...

P.S. Я был бы сильно признателен за пояснение, как банк может выполнить платежное поручение частично...
Гость
52 - 01.08.2013 - 00:27
2(51) Эх беда беда, огорчение. Вот ты и забыл булеву математику, которую я изучал еще лет 100 назад. Можно узнать чем отличается от моего варианта? Как воспримет скуль?

Частичная оплата, это когда тебе необходимо оплатить 100р, исходя из кредиторки, а оплачиваешь ты 50р и в кредиторке у тебя остается 50р. И тебе нужно понять, оплатил ли ты полностью задолженность или нет. Твои мальчики уверен это понимают и умеют.

Кому ты все это рассказываешь Reaper? Есть такое понятие - функциональный специалист, а есть такое понятие технический. В какую какую категорию у тебя кто там переходит? Смени систему жизненных ценностей, иначе так и загнешься в своем Калининграде.
Гость
53 - 01.08.2013 - 00:29
+(52) Курс валюты твои мальчики смогут получить на текущий момент :)))))))))))
Гость
54 - 01.08.2013 - 00:35
если ограничиться платёжками, то некоторые платежи возвращаются после проведения банком. не уверен, что ошибочные платежи нужны в ваших списках платёжек. вопрос чисто теоретический - как будете исключать?
Гость
55 - 01.08.2013 - 00:42
+(52) Людей, которые группируются по булево надо в шею гнать, а вы их в категорию переводите. Теперь мне многое стало ясно, почему я за вами столько дерьма разгребаю.
Гость
56 - 01.08.2013 - 00:50
54-Зелёный тролль > Ошибочный документ либо удаляется, либо переоформляется, забей, это выдуманная задача. Не буду же в форуме формулировать реальную задачу на разработку АРМа о надцати листах. Взял первый пришедший на ум объект типовой бухгалтерии с булевым реквизитом, и притянул задачу за уши. Как видишь, наш герой не только не смог простого запроса родить (по его мнению я нарушаю законы булевой АЛГЕБРЫ, АЛГЕБРЫ БЛЕАТЬ!!!), так еще и продемонстрировал свои "глубокие" познания бухгалтерии предприятия...
Гость
57 - 01.08.2013 - 01:01
(56) Цепляешься к словам? Так и в чем я ошибся в булевой алгебре и в чем тебя необоснованно обвинил? Есть в булевой АЛГЕБРЕ понятие больше/меньше? Ну ответь, только честно.
Гость
58 - 01.08.2013 - 01:03
+(57) "Не буду же в форуме формулировать реальную задачу на разработку АРМа о надцати листах" - А почему нет? Формулируй. Я уверен, что специалист твоего уровня, может свести такую задачу к двум строчкам.
Гость
59 - 01.08.2013 - 01:11
2(56) Reaper, такие платежи, возвращаются обратно в банк! Они никогда не удаляются! Контрагент переоформляет платеж и возвращает на нужный счет/договор. Мозги то включи.
Гость
60 - 01.08.2013 - 01:12
+(59) И на всю это три операции - приход на расчетный счет, расход с расчетного счета, приход на расчетный счет. Я хренею...
Гость
61 - 01.08.2013 - 01:14
+(60) Либо, контрагент составляет письмо в котором указывает, что платеж был ошибочным и сумму необходимо перенести на другой договор. Все зависит от того, где ошибся контрагент.
Гость
62 - 01.08.2013 - 01:40
(57) В 1С не используется каноническая булева алгебра, для типа данных "булево" разработана расширенная спецификация, позволяющая упростить прикладной код. Попытки рассуждать об интерпретации этой спецификации в запросе к СУБД в свете (47) выглядят попыткой отмазаться от самого себя. Ты не последователен в своем невежестве.

(58) Прости, я не соответствую твоим высоким ожиданиям, и не могу вместить в 2 строки предметную область и проектные решения, которые разрабатывались на протяжении полугода звеном из 4-х человек, и АРМ, описанный выше, который является одним из следствий этой разработки.

(59-61) Как правила работы банков с кривыми платежами относятся к документу "Платежное поручение" системы "Бухгалтерия предприятия"? Я тебе и так скажу - никак. Можешь даже не пытаться соскочить с вопроса о том, как банк может выполнить платежное поручение частично, мне до сих пор интересно.
Гость
63 - 01.08.2013 - 01:55
2(62) Про отмазаться возвращаемся к посту №46 и читаем внимательно внимательно. А теперь главный вопрос - ты заранее все зная стал придумывать задачи подходящие для того, чтобы опровергнуть второй пункт. Как насчет подлости Reaper? Знакомо такое слово?

Да, да... Это я все уже очень много раз слышал, только код у вас с минимум по булеву.

Шарик, ты балбес? Где я писал о том, что платежку можно исполнить частично. Я тебя глупыша пытался навести на мысль, что все, что ты тут рассказываешь бред малолетнего. Я никогда никуда не "соскакиваю", более того, терпеть не имею такой жаргон, он уголовщиной попахивает знаешь ли, любителями шансона и все такое прочее. Если банк не пропускает платежное поручение, то оно в любом случае не удаляется из системы, потому, что по нему может быть оформлена заявка на платеж, как правило. Или ты дальше песочницы до сих пор не выходил?
64 - 01.08.2013 - 02:41
[*****].. мне бы ваши заботы...
Гость
65 - 01.08.2013 - 03:36
63-Моррисон > Господин Нарцисс, извольте придержать свой характер. "заранее знал" я еще в (36), т.к. вопрос давно используется для проверки компетентности. И секрета я из этого не делал. А написал ты предельно ясно о частичной оплате и дополнительных регистрах в ответ на упоминание реквизита "оплачено". Любой специалист глядя на это понимает, что назначения этого флага ты близко не понимаешь, но несешь бред и околесицу, надеясь угадать решение по названию реквизита. А сейчас ты радостно ухватился за мысль Тролля и пытаешься свое невежество переложить на меня. Опять же твой подход "2 минуты не срок" и заявления о том, что агрегировать булевый тип плохо - между собой не стыкуются. Поэтому иди ка ты подальше, "спецалист". Только и горазд что писать бред о правильности не использования виртуальных таблиц и правомерности поиска по кодам/номерам прошитым в исходниках. Теперь я хотя бы понимаю все твои стоны и романы с увольнениями. С таким раздутым самомнением, нежеланием признавать свои ошибки и банальной технической безграмотностью - это совершенно не удивительно. Я даже восхищен тем, как долго ты прикидывался адекватным.

Желаю крепкого здоровья печени и слезным железам. Не смею вас более задерживать и засим откланиваюсь.
Гость
66 - 01.08.2013 - 04:52
дебильный форум... пишешь пишешь, а потом тебе... и переписывай.

короче.
1) наш банк перечисляет средства банку получателя, указанному в платёжном поручении. банк получателя видит что наименование получателя неправильное (а ИНН+КПП и р/сч и БИК и всё прочее правильные. но банк получателя никак не может однозначно по этим реквизитам идентифицировать своего клиента), пару дней юзает наши бабки и потом возвращает обратно в наш банк на наш р/счёт. списание и возврат бабок подтверждают выписки нашего банка, то есть пару дней этих денег на р/сч нашем нет. потому удалять ошибочную платёжку из базы нет причин.

2) лажанулись вы оба, каждый в той области, которую знает похуже. Моррисон в моих глазах проиграл побольше, т.к. из-за недостатка информации по техническим вопросам оставался тёмной лошадкой и я его несколько идеализировал до этой темы :-)

а вообще, вы из стёба устроили чуть ли не вендетту.
булево значение рождается в споре.
67 - 01.08.2013 - 09:00
Цитата:
Сообщение от Зелёный тролль Посмотреть сообщение
лажанулись вы оба, каждый в той области, которую знает похуже
любопытно, а где лажанулся Reaper?
я что-то этого не обнаруживаю, можешь обоснованно пояснить свою мысль? :)
Гость
68 - 01.08.2013 - 14:23
67-Ирли Бёрд > см (54), (56). бухгалтерская первичка исполненная банком не должна исчезать бесследно. вменяемый бухгалтер никак не согласится удалять платёжку. это примерно как для 1Сника, вырезать все регистры во всех конфигурациях, которые ему попадаются, и пользоваться исключительно запросами по документам и справочникам. и даже хуже. ибо если 1Сник руководствуется методикой и функционалом ПО (а в принципе может и не руководствоваться, но это будет выглядеть глупо только в глазах других 1Сников, а пользователи и знать не будут ничего такого), то бухгалтер загнан в жёсткие рамки подтверждения каждой хозоперации соответствующими документами.
поэтому косякс.
Гость
69 - 01.08.2013 - 14:27
ну это так, пояснение. давайте жить дружно и повышать свою квалификацию взаимно.
70 - 01.08.2013 - 14:31
вы все дятлы. обсуждать специалист/неспециалист - какой в этом смысл? где специалист ценится - у других специалистов - наверное да, но не они ему зп платят. а ЗП платят ему "довольные пользователи". если пользователь удовлетворен - да пусть там внутрях хоть кони топтались... если внутрях тоже красиво и правильно все с точки зрения кода - то это всего лишь дополнительный бонус.
71 - 01.08.2013 - 14:34
..мне страшно...
Гость
72 - 01.08.2013 - 14:38
70-Чучундер > а считается ли специалистом тот, кого не признают специалистом другие специалисты? бонус от специалиста - он опять же для пользователя. т.к. когда придёт другой специалист на место старого, то ему не придёт в голову всё переделывать заново с чистого листа, потому что это будет в разы дешевле для пользователя, чем разбираться и переделывать то, что наваял предыдущий специалист.
(кстати у 1Сника есть выбор, а у бухгалтера его нет: бухгалтеру по любому всё перепахивать.)

наша сила сначала в стандартах, а уже потом дополнительно - в каких-то фишках.
Uho
73 - 01.08.2013 - 14:38
71-Чучундер > замажь свой предыдущий пост
Гость
74 - 01.08.2013 - 14:41
Чучундер, кстати, опять никто не звонил и смс не скинул.
75 - 01.08.2013 - 14:45
(74) пока рано, в процессе разборок.
76 - 01.08.2013 - 14:47
(73) накуа...? видел я такую контору, и даже тестово поработал в ней. без отвращения на конфигу я смотреть не мог.
.
я так же далек от мысли. что кому-то будет нравится моя текущая конфига.
.
ясен пень - есть возможность писать хорошо/правильно - пишем именно так.
.
если стоит дилемма - удовлетворенный клиент-несильнооптимальныйкрасивый код или сильнокрасивыйоптимальныйкод-несильноудовлетворенный клиент - лично я выберу первое.
77 - 01.08.2013 - 14:48
а то, пилять! пишут мегакрасивые конфиги, а работать в них невозможно нормально. повбывавбы...
Гость
78 - 01.08.2013 - 14:56
75-Чучундер > август не провафлите :-)
76-Чучундер >77-Чучундер > расслабься. зная тебя, я могу поверить в сложную логику алгоритмов и построния бизнес-логики, но не в код навроде того, который представлен в (0).
Гость
79 - 01.08.2013 - 15:03
77-Чучундер > ты ведь запросы в циклах не пишешь? :-))
80 - 01.08.2013 - 15:05
(78) в смысле про август?


К списку вопросов






Copyright ©, Все права защищены