|
v7: Отличия в запросе для DBF и SQL версии | ☑ | ||
---|---|---|---|---|
0
Балбес
02.04.12
✎
19:33
|
Есть простенький запрос.
Ит=СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники,ВыбСотр,2); Ит.ИспользоватьСубконто(ВидыСубконто.ИсполнительныеЛисты); Ит.ИспользоватьСубконто(ВидыСубконто.Взыскатели); Ит.ВыполнитьЗапрос(НачДата,КонДата,СчетПоКоду("ЗП.ПЧТ")); Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1)=1 Цикл Сообщить(Ит.Субконто(1)); Ит.ВыбратьСубконто(2); Пока Ит.ПолучитьСубконто(2)=1 Цикл Сообщить(" "+Строка(Ит.Субконто(2))); Ит.ВыбратьСубконто(3); Пока Ит.ПолучитьСубконто(3)=1 Цикл Сообщить(" "+Строка(Ит.Субконто(3))+" "+Строка(Ит.ДО())); КонецЦикла; КонецЦикла; КонецЦикла; Для DBF версии все работает красиво. В SQL версии не выдает всех данных. Самое интересное, если убрать отбор по сотруднику, в общей куче запрос в SQL версии выдает правильные данные. Где может быть проблема? |
|||
1
Chai Nic
02.04.12
✎
19:37
|
Ит.ВыбратьСубконто(1);
За константный номер субконто вместо вида субконто хочется убивать сразу.. |
|||
2
МихаилМ
02.04.12
✎
19:37
|
если релиз 1с 26 - то запросто.
|
|||
3
Балбес
02.04.12
✎
19:39
|
(1) Обоснуй
|
|||
4
Балбес
02.04.12
✎
19:39
|
1с 25 релиз
|
|||
5
Chai Nic
02.04.12
✎
19:40
|
Это плохой стиль и неуважение к тому, кто будет после тебя разбирать эту кашу..
|
|||
6
Балбес
02.04.12
✎
19:42
|
(5) Переделал, все по прежнему.
|
|||
7
Chai Nic
02.04.12
✎
19:44
|
Ну попробуй итоги пересчитать.
|
|||
8
viktor_vv
02.04.12
✎
19:46
|
Наверное в параметре ИспользоватьСубконто(2). Я обычно с параметром отбирать ставлю последним в перечне ИспользоватьСубконто().
Можешь поэкспериментировать. Поставь параметр 1. |
|||
9
Балбес
02.04.12
✎
19:48
|
Попробовал накатить 27 релиз - заработало.
|
|||
10
Chai Nic
02.04.12
✎
19:52
|
(9) Ну что и требовалось доказать.. Четные релизы кстати в семерке всегда считались бажными.
|
|||
11
viktor_vv
02.04.12
✎
19:55
|
(10) Так вроде у него 25 стоял. Че-то я занервничал :).
|
|||
12
Mnemonic1C
02.04.12
✎
23:29
|
(1) Да ладно. Практически никогда не видел что бы кто то писал иначе. На производительности это никак не сказывается
|
|||
13
Chai Nic
03.04.12
✎
07:27
|
(12) Дело не в производительности, а в читаемости кода. К сожалению, синтаксис-помощник 1с сыграл тут свою нехорощую роль - в нем не написано о том, что в качестве индекса субконто можно использовать не только порядковый номер, но и вид субконто. А с видом субконто код слегка более громоздкий, но намного более легкий для понимания и намного менее ошибкоопасный.
|
|||
14
zxcvb
03.04.12
✎
07:35
|
(13) Ты что, какие субконто на счетах не помнишь?
|
|||
15
Chai Nic
03.04.12
✎
08:04
|
(14) Уважайте коллег - пишите понятный и красивый код!
|
|||
16
chief accountant
03.04.12
✎
08:45
|
(15) Одно дело красивый, другое рабочий. Мне, например, по-барабану номер или вид и так код понятен
|
|||
17
Chai Nic
03.04.12
✎
11:01
|
(16) В любом случае, если номер - то придется лишние условности запоминать и держать в голове. А это прямой путь к ошибкам в сколько-нибудь сложном коде. В случае наличия альернативной возможности написать красиво и понятно, писать индусский код, который не поддерживаем никем, кроме автора - вредительство по отношению к работодателю!
|
|||
18
Галахад
гуру
03.04.12
✎
11:04
|
(17) Работодателю пофиг.
|
|||
19
Chai Nic
03.04.12
✎
11:08
|
(18) Пофигистов у нас хватает, поэтому и самолеты падают
|
|||
20
chief accountant
03.04.12
✎
12:56
|
(17) Каким образом мой код может навредить моему работодателю?
|
|||
21
Chai Nic
03.04.12
✎
13:43
|
(20) Я уже всё сказал. Думай не только о себе сейчас, но и о том программисте, который будет в этом копаться через пару лет. Возможно это будешь ты, изрядно забывший то, чем занимался когда-то. А может твой коллега. И от красоты твоего кода _сейчас_ зависит эффективность работы _потом_.
|
|||
22
chief accountant
03.04.12
✎
14:19
|
(21) Что мне делать не тебе мне рассказывать. Если ты не можешь в своем коде разобраться - это твои проблемы.
|
|||
23
Chai Nic
03.04.12
✎
14:43
|
Ну делай как знаешь.
ЗЫ Самые кошмарные "программисты 1с" - это программисты, выросшие из бухгалтеров. |
|||
24
chief accountant
03.04.12
✎
14:48
|
(23) У меня наоборот
|
|||
25
Chai Nic
03.04.12
✎
15:07
|
(24) Ну вот возьмем какой-нибудь модуль проведения. Бухгалтер-программист напишет процедуру на пару тысяч строк, состоящую из повторов одного и того же фрагмента более чем на 90%. А нормальный программист напишет структурированный код в 5-10 раз меньшего объема, при этом более универсальный и понятный.
|
|||
26
chief accountant
03.04.12
✎
15:35
|
(25) Хм, если ты про меня, то мимо. Чего я пишу и чем занимаюсь у тебя очень отдаленное представление, поэтому не фантазируй
|
|||
27
Chai Nic
03.04.12
✎
16:55
|
(26) Я не переходил на личности.. просто неоднократно видел продукты творчества "бухгалтеров-программистов".
|
|||
28
Эстет хренов
03.04.12
✎
17:36
|
(25) нормальный программист часто пишет код который никому не нужен вот в чем парадокс.
А код бухгалтера-программиста будет прекрасно работать десяток лет. (27) основное правило - работает не трожь. |
|||
29
Chai Nic
03.04.12
✎
19:05
|
(28) Никаких десятков лет. В том то и дело, что всё меняется, возникают новые задачи - старые алгоритмы приходится менять. А после бухгалтера-программиста, как правило, приходится код переписывать с нуля, поскольку он представляет собой "закат солнца вручную", причем не самым оптимальным образом.
|
|||
30
Chai Nic
03.04.12
✎
19:17
|
Когда-то нам один франч разрабатывал подсистему производственного учета в доработанной семерочной бухгалтерии. Вот у них программист был из бухгалтеров. Алгоритмы тормозили нереально, через год работы стало невозможно работать - всё стояло в блокировках. Зато модули были большииие.. куча вложенных циклов с расчетом бухитогов внутри :) Любой вопрос бухгалтера "почему так считает, а не иначе" приводил к многочасовому квесту.
Разумеется, пришлось всё переписать фактически с нуля. И тормозить перестало, и стало всё намного прозрачнее. |
|||
31
zak555
03.04.12
✎
19:18
|
(0) первое использовать - взад и разворачивать ненадо
|
|||
32
zak555
03.04.12
✎
19:19
|
2ая и 3ия аналитика имеют суммовые учёты ?
|
|||
33
Mnemonic1C
03.04.12
✎
19:52
|
(30) Я с тобой согласен на 100% и на счет бухов-программистов, и на счет обращения по номерам а не по видам субконто. Но дело в том что обращение по номерам стало де факто стандартом в 7.7 как в самописках так и в типовым, и когда лично я вижу код написаный иначе немного даже удивляюсь
|
|||
34
Cthulhu
03.04.12
✎
21:11
|
Есть вариант, когда без указания в выборке результатов бух.запроса кроме как номером субконто не получится.
Среди эстетов хреновых, разведших бодягу на пустом месте, объявляется конкурс: 1. Верно ли это (если да - то в каких случаях)? |
|||
35
Cthulhu
03.04.12
✎
21:14
|
ЗЫ: кстати, навскидку: если в бух.запросе устанавливается отбор субконто-справочника по СЗ, то если в этом СЗ есть группы справочника - ДБФ и СКЛ будут работать по-разному на любом релизе. Одинаково правильно будут работать только если в СЗ отбора будут в таком случае элементы справочника. То же самое касается и черных запросов.
|
|||
36
Злопчинский
03.04.12
✎
21:31
|
Потому что правильно вместо
Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники,ВыбСотр,2); писать Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники,ВыбСотр,1); |
|||
37
m g r
03.04.12
✎
22:03
|
(1) полная й-у-х-ня , я писал и так и так , но читабельнее как у топикстартера. так что не надо заливать про приятный и красивый код.
|
|||
38
m g r
03.04.12
✎
22:05
|
(30) тут сам за собой иногда переписываешь по 3 раза для оптимизации скорости, а тут франи которым надо деньги заработать, не задумываясь над скоростью работы
|
|||
39
Chai Nic
04.04.12
✎
07:29
|
(37) Нифига не читабельнее. Когда указан вид субконто - с первого взгляда на код видишь, что выбирается и получается. И не нужно прыгать назад и пересчитывать методы ИспользоватьСубконто. Это называется "самодокументируемый код".
|
|||
40
Chai Nic
04.04.12
✎
07:34
|
(34) Ну например в некоей универсальной обработке, где счет заранее неизвестен. Там, разумеется, придется использовать номер, также в цикле по количеству субконто данного счета. Только так.
|
|||
41
zxcvb
04.04.12
✎
08:32
|
(15) Да ты эстет... Код должен быть эффективным, а не понятным или же красивым для какого-то самозваного коллеги, которого ты знать не знаешь.
Код бывает максимум элегантным. Оптимизировать если есть возможность - другой вопрос. |
|||
42
chief accountant
04.04.12
✎
09:49
|
(34) +100
(37) +100 Chai Nic -200 по итогам обсуждения |
|||
43
Chai Nic
04.04.12
✎
10:52
|
(42) Вот из-за таких программистов, которым наплевать и на коллег, и на пользователей (лишь бы деньги платили) - и существует нелестное (частично заслуженное) мнение о глючности 1с и криворукости одинесников.
|
|||
44
chief accountant
04.04.12
✎
10:57
|
(43) Не поверишь, у меня 1с не глючит и бухи довольны. А на мнение каких-то виртульных коллег и пользователей
|
|||
45
chief accountant
04.04.12
✎
10:57
|
(44) мне пох
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |