Имя: Пароль:
1C
1С v8
Методология решения задач и написания кода
0 Explorer1c
 
26.01.15
14:44
Хай! Начал писать сложный отчет и столкнулся с проблемой того, что запутался в алгоритмах и процедурах.

Обычно я делал так- в уме представлял алгоритм решения и реализовывал его, иногда на бумаге пару таблиц рисовал. Затем писал функции и потом обращение к ним в процедурах, а как вы решаете запутанные задачи, как строите алгоритм и по какой схеме пишите код?
1 фобец
 
26.01.15
14:48
Если совсем запутался - начинай с нуля
2 Лефмихалыч
 
26.01.15
14:49
я распутываю запутанное и оно перестает быть запутанным. В уме.
3 Челбас
 
26.01.15
14:50
большинство отчетов сейчас вообще не требуют написания кода "в ручную"
4 nordbox
 
26.01.15
14:51
Начинается все с похода в магазин.
Потом пачку бумаги, можешь для удобства цветные ручки взять,
садишься за стол и начинаешь рисовать.
А если серьезно:
ТЗ, если нет, нуно четко нарисовать объяснить самому себе что ты хочешь.
В уме моно только мелочь всякую нарисовать, и то не факт.
5 Hans
 
26.01.15
14:53
Обычно пишу центальную процедуру в которой последовательно выполняются все действия.  Пишу имена планируемых процедур и фукнкций ы ней. Потом описываю каждую процедуру по порядку.

Ты судя повсему делаешь наоборот снизу вверх, я сверху вниз.
6 фобец
 
26.01.15
14:53
Вначале было кнопко..
7 Garykom
 
гуру
26.01.15
14:53
(0)(4) а может просто с детства мозги тренировать? ))

ексель/ворд универсальная фигня для написания ТЗ и рисования схем
8 фобец
 
26.01.15
14:56
(5) +1
Начинаешь писать основную процедуру.. Последовательно, реализацию функций можно вообще на конец оставить, имена то ты им уже придумал и знаешь что возвращают...
9 Fish
 
гуру
26.01.15
14:57
(0) Иногда для программирования полезным бывает иметь профильное образование, чтобы не путаться в алгоритмах и процедурах.
10 kumena
 
26.01.15
14:57
>> Начал писать сложный отчет и столкнулся с проблемой того, что запутался в алгоритмах и процедурах.

а я всегда полагал, что отчет это запрос.
11 kumena
 
26.01.15
14:58
+10 один запрос
12 фобец
 
26.01.15
14:59
(10) это всего лишь необязательная его часть..
13 kumena
 
26.01.15
15:00
>> большинство отчетов сейчас вообще не требуют написания кода "в ручную"

они и в 8.0 не требовали написания кода, построитель и конструктор отчетов никто не отменял.
14 piter3
 
26.01.15
15:01
(12)стесняюсь спросить,а что тогда?
15 Челбас
 
26.01.15
15:01
(13) кто-то против?
а если это отчет с фотографиями?
16 фобец
 
26.01.15
15:02
(14) для выборки запрос не обязателен
17 kumena
 
26.01.15
15:02
(12) кому как, для меня запрос это основной источник данных. он видимо табличной моделью пользуется.
(15) а что с фотками не так? в зупе есть отчеты с фотками.
18 piter3
 
26.01.15
15:04
(16)процентное соотношение все-таки за запросами
19 vde69
 
26.01.15
15:04
есть такой подход:


1. сначало пишутся в модуле глобальные коментарии,
2. потом под них пишется код
3. дооформляется мелкими коментариями
20 Челбас
 
26.01.15
15:05
(17) я не умею делать такие отчеты не написав код вручную
21 kumena
 
26.01.15
15:08
(20) я вообще не умею делать отчеты с фотками, но полагаю, если надо будет разберусь и думаю кода там дописать надо не много. за много лет ни разу не надо этого было, так что давайте оставим фотки как частный случай.
22 фобец
 
26.01.15
15:09
СКД - прекрасный и очень удобный инструмент для простых отчетов и печатных форм. Но там где нужно изголяться, скд не подойдет.. В декабре делал хитрый отчет один, 4 функции, 450 строк кода из них текст запроса тольо ~100 строк. Отчет с хитрыми колонтитулами, подвалом в нижней 1/3 последнего листа, печатается дуплексом, начиная с четной страницы (типа формата а3), расчет высоты строк второго листа в соответствии с первым, на первой нечетной оглавление с рассчетом страниц...
23 Garykom
 
гуру
26.01.15
15:10
(19) тогда проще сразу процедуры/функции - пустые заглушки писать вместо комментов (ну или с ними)
24 фобец
 
26.01.15
15:12
+22 и горизонтальное и вертикальное объединение некоторых колонок и строк
25 kumena
 
26.01.15
15:13
(22) отчет это информация, а то что вы написали это финтифлюшки для удобства.
26 Fish
 
гуру
26.01.15
15:15
(25) Т.е. ты за написание неудобных отчётов?
27 Timon1405
 
26.01.15
15:18
(0) как вариант, запутался: рисуй макет + запросы в цикле, чтобы уже была нужная инфа перед глазами. может, пока будешь писать, поймешь, как убрать циклы.
28 фобец
 
26.01.15
15:18
(25) нет, это некая унифицированная форма
29 Lama12
 
26.01.15
15:19
(0) Использую UML. Даже если отложить задачу на долго, то потом по диаграммам можно поднять память и понимание задачи и какую архитектуру закладывал.
30 kumena
 
26.01.15
15:19
(26) как вы это поняли?
31 kosts
 
26.01.15
15:20
(0) Этому за 5 минут не научишься.
Опыт+Обучение+Литература(методики)+Здравый смысл
32 PCcomCat
 
26.01.15
15:20
(26) Есть клиенты, которые сами рисуют на бумаге отчеты, и их не волнует, что предлагаешь ты - им нужно именно так, как они нарисовали. К сожалению, конструкторы в таких ситуациях бессильны (это чертовы разукрашечки), а клиент всегда прав, какой бы замороченный он не был.
33 Timon1405
 
26.01.15
15:23
(29) Не судите строго, но как UML поможет, скажем, в абстрактной задаче: нужно в запросе раскидать сумму по коэффициетнтам с точностью до целого?
34 kosts
 
26.01.15
15:25
(0) Раскладывай задачу на блоки.
Пиши самодокументирующийся код (т.е. функции и имена переменных, реквизиты должны отражать суть).
Раскладывай код на отдельные функции.
Не пиши универсальные функции без необходимости.
Не используй множественную вложенность.
Почитай на диске ИТС статьи с рекомендациями.
Вот полезная книга, но как теория http://www.books.ru/books/refaktoring-uluchshenie-sushchestvuyushchego-koda-fail-pdf-552092/?show=1
35 Fish
 
гуру
26.01.15
15:25
(30) Как правило, как раз на "финтифлюшки для удобства" и уходит больше всего времени и написания кода.
36 kosts
 
26.01.15
15:27
При получении данных используй запросы. Получается намного более простой код. Часто и быстрее работающий.
37 vi0
 
26.01.15
15:32
пиши псевдокод
38 Explorer1c
 
26.01.15
15:56
О, как много разных подходов-круто! Начну пользоваться каждым для оптимизации работы, потом скажу о результатах)
39 Explorer1c
 
27.01.15
08:25
Пишем еще примеры работы! например сегодня делал доработку и не перепроверил итоги, пользователь в панике был. Т.е даже если самы простой код добавляете не в свою разработку надо перепроверять тк там хз как че подвязано
40 VladZ
 
27.01.15
09:10
Тебе нужен алгоритм разработки алгоритмов? :)
41 Explorer1c
 
27.01.15
09:19
(40) В точку!)
42 MSOliver
 
27.01.15
09:29
(41) сколько показателей в отчете?
43 Адский плющ
 
27.01.15
09:31
Запутанных задач не бывает. Бывает го*но в голове, которое транслируется в код.
44 Explorer1c
 
27.01.15
09:33
(42) это отчет из 700 строк, для каждой практически свой расчет нужен
45 VladZ
 
27.01.15
09:34
(41)  По этой теме целые книги написаны. Ищи, читай.
Можно, конечно, примерный план накидать. Но всяко будут вопросы по ходу. Учитывая, что форум - это не всегда сообщения по теме, есть вероятность, что будет больше мусора чем важной инфы.
46 Explorer1c
 
27.01.15
09:35
Проблема в том что пишешь придумываешь алгоритмы , а когда их много путаешься что откуда растет, может написать систему расчета, зафиксировать в экселе  и дальше и тп
47 Explorer1c
 
27.01.15
09:35
(45) Книг много, а вот какую посоветуешь, лучшую?
48 VladZ
 
27.01.15
09:35
(44)  700 строк - это не так уж много. Было дело, на 7.7 ваял обработки более 3х тысяч строк.
49 VladZ
 
27.01.15
09:37
(47)  Эм... Пороюсь дома в архивах - чиркану.
50 Explorer1c
 
27.01.15
09:45
(49) спс!
51 MSOliver
 
27.01.15
09:51
(44) Вы не ответили про показатели. 700 показателей в отчете это бред.
52 MSOliver
 
27.01.15
09:52
Чё хотим в отчете в студию)
53 MSOliver
 
27.01.15
09:53
Либо не верная система хранения БД. Отчет должен собирать данные а не делать Мега-расчеты.
54 nordbox
 
27.01.15
09:54
(50) Я проходил эти грабли и не раз
Пункт первый и наверное единственный который ОООчень нужен я как правило его не соблюдаю: Когда что то пишешь пиши четкие и внятные коменты, время ни так много занимает, результата  дофига.
Когда сильно запутываюсь, тупо делаю распечатку всего что есть, раскладываю и обычной ручкой начинаю писать комены что и для чего я сделал.
55 nordbox
 
27.01.15
09:56
+54 незнаю у кого как, но распечатанный текст я более нормально воспринимаю чем с экрана
56 nordbox
 
27.01.15
09:58
MSOliver(53), ой не говори так, несогласен, расчетов оооочень много бывает.
в спор вступать не буду
57 nordbox
 
27.01.15
10:02
+56 для примера тебе
например: есть цена закуп, есть цена продажи(их несколько) менялись ручками.
Задача: Вывести в таблицу номенклатурe, цена закуп, цена продажи и процент наценки
Это самый простой пример
процент ты же ни где не хранишь и не знаешь, вот и считай.
58 MSOliver
 
27.01.15
10:08
(57) это сложно? В СКД делается без программирования в пользовательских полях...
59 Explorer1c
 
27.01.15
10:14
(58) Это типо баланса, но по каждому счету надо вытаскивать свои определенные данные , которые иногда с корсчетов подтягиваются, иногда с вида субконто(ГруппаОС, ВидНМА)+ еще есть условия, могу скинуть файлик
60 MSOliver
 
27.01.15
10:18
(59) Делал подобное для ЖКХ (там мудрёностей напридумывали) итог отчет есть - вводим тестовые данные он выдаёт контрольный результат - но отчётом ни кто пользоваться так и не научился - только табличных частей (настроек) одиннадцать штук. Итог: похоронили... Отчет не должен делать МЕГА-расчетов...
61 IШаман
 
27.01.15
10:20
(0) Да мы особо не креативим, пишем ТЗ далее по нему уже составляем план реализации.
62 IШаман
 
27.01.15
10:21
+(61) Кстати, вспомнив недавнюю ветку автора в которой все миром решали "мега задачу", думаю что не мудрено что он путается.
63 Адинэснег
 
27.01.15
10:23
(0) >запутался в алгоритмах и процедурах
витамины мож какие для памяти?))
64 Галахад
 
гуру
27.01.15
10:25
(0) Надо сделать над собой усилие.
Закрыть браузер и уделить работе хотя бы пару часов.
65 Trance_1C
 
27.01.15
10:45
(0) для проектирования запутанной логики с глубоким ветвлением хорошо подходят майнд-карты MindManager например
66 Explorer1c
 
27.01.15
10:48
благодаря этой ветктке уже сейчас такой подход использую- сначала прописываю условие потом дописываю текс, уже помогло кое-что распутать, в экселе тако текст

а) перебираем все строчки из шаблона, в колонке которых есть "ГруппаКорСубконто"

б) на каждую строку вызываем процедуру "ПолучитьТаблицуДляРасчетаПоКорСубконто"

в этой процедуре  ищем строки из шаблона в которых есть "КорСубконто" со счетом строки- группы

для них  заполняем текст временной таблицы со своим видом расчета

в) на выходе  выполняем запрос и выгружаем в ТЗ

г) при вывое строк ищем в ТЗ нужные строки, подставляем в выходнуюю форму
67 vi0
 
06.02.15
16:07
68 Добрый_фей
 
07.02.15
17:25
+60 согласен на все 100% простота и краткость - сестра таланта
69 PR
 
07.02.15
17:37
Удивительно, но правильный ответ только аж в (34) посте.
70 Explorer1c
 
07.02.15
20:21
+ Еще, как главное условие, хотел бы добавить- полную проработку решения. без участков. начнем а там получится, а то у меня получилось, что все сделал а для последней задачи думал походу решу, оказалось для последней задачи надо было переделать все предыдущие пункты
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn