Имя: Пароль:
1C
1С v8
Слишком много букв в коде. Способы решения
0 Лалалалилалалала
 
14.08.12
16:54
Что делать если количество букв в коде модуля (формы, объекта, проч.) переваливает за несколько тыщ...
Конечно, этим грешат все типовые конфиги, но попытка не пытка
Каждая уважающая себя среда разработки предоставляет возможность строгать куеву тучу файликов для последующей линковки
Что будет, если использовать это в 1С и настрогать не 50 общих модулей, а 500?
Какие ещё способы решения есть?
1 ДенисЧ
 
14.08.12
16:55
строгай.
2 Новенький_2009
 
14.08.12
16:56
стенка. С разбегу. 100% помогает :)
3 0Mint
 
14.08.12
16:57
Использовать иероглифическую систему письма.
4 Flyd-s
 
14.08.12
16:58
Можно переносы на новую строку убрать в модулях
5 ДенисЧ
 
14.08.12
16:58
Есть ещё одно решение...
Зайти в модуль, нажать Ctrl-A, del, Ctrl-S, F7
6 Лалалалилалалала
 
14.08.12
16:59
остро чувствуется недостаток произвольных модулей объектов с флажками клиент сервер
7 Serg_1960
 
14.08.12
16:59
Пятничная тема. Модераторы - в юмор, плиз.
8 Flyd-s
 
14.08.12
16:59
(5), можно просто 1cd файлы удалить с жесткого
9 Лалалалилалалала
 
14.08.12
16:59
где тут юмор-то
чуваки уже путаются в тыщах кода
1с мог бы давно уже реализовать что-то
10 Лалалалилалалала
 
14.08.12
17:00
режиссёрская версия такова
Ctrl-A, del, Ctrl-S, F7, стенка
11 ДенисЧ
 
14.08.12
17:01
(9) _чувакам_ положено путаться в строках и смотреть на воротах.
Программисты - не путаются
12 SUA
 
14.08.12
17:03
хуже когда в процедуре такое... и не букв а строк... и дублируется местами - тогдап порядок конечно уже пора наводить
13 Лалалалилалалала
 
14.08.12
17:03
можно сделать макет с раширением встроенного языка
только что с ним потом делать...
14 Мигрень
 
14.08.12
17:04
Кто заставил чуваков открывать модули 1С? Фигасе, изверги.
15 Serg_1960
 
14.08.12
17:05
(13) А потом - мыло и веревка, иначе - к стенке.
16 Reset
 
14.08.12
17:07
Народу-то проматривающих тему сколько.
Набрали попкорна и сидят (с) не я
17 Лалалалилалалала
 
14.08.12
17:07
если настрогать общих модулей, по ходу время на компиляцию займёт
18 Нуф-Нуф
 
14.08.12
17:07
(3) не поможет
19 Лалалалилалалала
 
14.08.12
17:08
поразительно
устройство восьмёрки подразумевает немного кода (если сравнивать с ранними конфигами семёрки)
20 Лалалалилалалала
 
14.08.12
17:08
потому что средств для упорядочивания кода никаких!
21 Лалалалилалалала
 
14.08.12
17:09
надо писать письмо разработчикам
22 Serg_1960
 
14.08.12
17:15
(16) Да, народу много набежало. Демофобия - линяю.
23 Stilet
 
14.08.12
17:15
(19) Наслаждаюсь вашими рац. предложениями.
24 wald
 
14.08.12
17:19
(6) если остро ощущаешь недостаток общих модулей.. открой БП 3.0. Можно сразу остро поиметь другие ощущения((
25 eduspec82
 
14.08.12
17:19
есть способ радикально сократить количество букв в коде
называется - динамическое производство пенобетонных блоков (не путать с ктирпичным заводом)
берутся выгружаются все модули в текстовые файлы и создаются сокращенные модуля где весь код кроме определения переменных и каркасов функций (без содержания тела функции)
а изъятый код грузится в правочник для последующего динамического выполнения т.е. через метод выполнить(...динамический код...)
26 hhhh
 
14.08.12
17:21
(21) в семерке был один модуль под миллион строчек кода
    в восьмерке 50 модулей по 1000 - уже выигрыш,
    в девятке будет 1000 модулей по 50 строчек.
27 cViper
 
14.08.12
17:22
(0) Предвижу следующую тему: "Слишком много модулей в конфе.Способы решения"
28 pumbaEO
 
14.08.12
17:29
(0) ну будет у тебя 5000 файликов с include\import\require  , так же будешь скакать туда сюда.
29 Irek-kazan
 
14.08.12
17:31
предлагаю сократить операторы, названия справочников, документов и т.п.. будет меньше букв
Строки тоже, писать все в одной строке. Например запрос будет такой
ВБАТЬ ОБ.Пт,ОБ.Сц,ОБ.Пд КАК,СММ(ОБ.СУО)    ИЗ РН.ОБ.О(КНЦПД(&РД, НДЛ ), КНЦПРД(&ГП, НДЛ), НДЛ, Сц = &СП) КАК ОБ        ВнтрСдн С.СБ КАК СБ ПО ОБ.СО = СБ.СО ГД СБ.Вл = &Бт    СГРП ОБ.Пд,ОБ.Пр,ОБ.Сц
30 Irek-kazan
 
14.08.12
17:32
+(29) реально сократил: строк стало в 10 раз меньше, букв почти в 20 раз
31 ЧашкаЧая
 
14.08.12
17:33
(29) А как же ПроцессорКомпоновкиДанныхИмениБорисаГеоргиевичаНуралиева?
32 Irek-kazan
 
14.08.12
17:35
(31) это еще проще ПрКДИмБГН
33 eduspec82
 
14.08.12
17:40
можно модули просто не поставлять в составе обновления
34 Mnemonic1C
 
14.08.12
17:45
Предлагаю примеров реализации накидать, подаю пример:

//Возврат данных для гУстСтрТаб,гВыводСвода (РЛ)
Функция    ПарТабРасч(пДат,пЭл,Флаг,Спр="")
   Если Флаг=1 Тогда //"дНач;дКон;фДЧ;ДнейЧасов;Сумма/Прд" Сумма для Табель, Прд для Расчет
       Если пЭл.Вид()="ТабСотр" Тогда
           Стр=""+пЭл.ДатНач+";"+пЭл.ДатКон+";";рЭл=гЭлЯвлВлад(пЭл,Спр,"",1);
           Если ТипЗначения(рЭл)<>1 Тогда
               ДЧ=рЭл.ДнейЧасов;Сум=рЭл.Сумма;
           Иначе //Пустой тариф, нерасчитанные больничные, отпуска
               ДЧ=0;Сум=0;
           КонецЕсли;
       Иначе
           Стр=СтрЗаменить(ПрдИзТаб(пЭл,Спр,пДат),",",";");
           ДЧ=пЭл.ДнейЧасов;дНач=Дата(гИзСписка1(Стр,1));дКон=Дата(гИзСписка1(Стр,2));
           Если гЧистыйНУ(пЭл.НачУд).Вид()="Начисления" Тогда
               Прд=?((""+дНач+","+дКон+";")=гПрдЗаОтчПрд(пЭл.Владелец,пДат),"",""+ДатаЧисло(дНач)+"-"+ДатаЧисло(дКон));
           Иначе
               Прд="";
           КонецЕсли;
       КонецЕсли;
       фДЧ=?(ДЧ<500,0,1);ДЧ=?(ДЧ<500,ДЧ,ДЧ-500); //Для импорта ДЧ<500
       Если гАНастр[8]="" Тогда
           Усл=0;
       Иначе
           ПрдИмп=?(СтрЧислоВхождений(гАНастр[8],";")=1,гАНастр[8],гВычестьПрд(гИзСписка1(гАНастр[8],1)+";",гИзСписка1(гАНастр[8],2)+";"));
           Усл=?(гДатВПрд(ПрдИмп,пДат)=1,1,0);
       КонецЕсли;
       Если Усл=1 Тогда
           фДЧ=0; //Импорт в днях
       КонецЕсли;
       Возврат Стр+фДЧ+";"+ДЧ+";"+?(пЭл.Вид()="ТабСотр",Сум,Прд)+";";
   КонецЕсли;
КонецФункции
35 Chai Nic
 
14.08.12
17:51
На самом деле, радикально сократить объем кода мог бы переход к объектно-ориентированному программированию. Чтобы прикладной программист мог создавать свою иерархию классов объектов, с наследованием и инкапсуляцией.
36 pumbaEO
 
14.08.12
17:52
(35) ой, зачем срач разводить.
37 eduspec82
 
14.08.12
17:55
(0)переходите на пиповую конфигурацию которую жестко не снимайте с поддержки
38 pessok
 
14.08.12
17:55
(35) понеслась, я ждал! :) жалко, что пора домой, там уже дочитаю)
39 akaBrr
 
14.08.12
17:56
(35) в (34) и без ООП все зашебись
40 Irek-kazan
 
14.08.12
17:58
41 vvp91
 
14.08.12
17:58
42 ЧашкаЧая
 
14.08.12
17:59
(35) Сколько законченных программ вы написали с использованием ООП чтобы делать такие выводы? Может лучше пусть 1С нам сделает функциональный язык программирования, функциональное - это модно. А то сидим как в 70-х.
http://habrahabr.ru/post/147927/
43 akaBrr
 
14.08.12
18:00
(42) сейчас модно сомневаться в ООП, быть так сказать не как фсе
44 ПиН
 
14.08.12
18:03
(0) Shift+Ctrl+End потом Del - это лучшее средство от быдлокода...
45 Лалалалилалалала
 
14.08.12
18:05
на самом деле половина кодеров 1с вообще не программисты
другая половина половины не знает ООП
поэтому ООП все и обсирают
46 Лалалалилалалала
 
14.08.12
18:06
ООП появился как ответ на создание тяжёлых программ
невозможно строить стабильную систему без ООП
(внёс свою лепту, здравствуй, кэп)
47 Irek-kazan
 
14.08.12
18:07
(45) но однако все пользуются им, хотя даже не подозревают этого :)
48 notton
 
14.08.12
18:40
(46) и сколько сложных программ создали именно Вы? и какой степени сложности они были при использовании ООП или без? (Пусть даже это будет ПО не на платформе 1С)
49 SUA
 
14.08.12
18:56
ООП в 1С есть... хоть и в извращенно-урезанном виде
И даже в классическом с++ ООП поддерживается в слегка обрезанном виде
по сути в 1С в большем объеме он не нужен.
50 Александр_
Тверь
 
14.08.12
19:35
на самом деле некоторое неудобство действительно присутствует.
На 8.1 пишу обмен с УКМ4, модуль обмена перевалил за скромные 5000 строк.
Часть кода прям таки проситься разбиться на модули. При этом использовать общие модули нахожу не целесообразным.
51 Лалалалилалалала
 
14.08.12
19:38
(49) ну если 1с не будет пыжиться на машиностроение, си эр эм, даблю эм эс, то, наверно, не нужен
хотя, выпуском управляемого приложения, 1с уже и так подтвердила, что ориентируется сугубо на облака для среднестатичных контор