|
Как ускорить разработку в 1С? | ☑ | ||
---|---|---|---|---|
0
Адимр
30.01.16
✎
19:25
|
Программирование как вам известно процесс итерационный, поэтому многие сталкивались с тем что на больших типовых конфигурациях которые занимают по 200-500 Мб, сохранение конфигурации и запуск 1С:Предприятия занимают продолжительное время и программисту написав пару строчек кода за 5 секунд приходится ждать пару тройку минут что бы проверить результат его работы.
Давайте обсудим способы которые могут позволить разработчику устранить эту досадное недоразумение. Вспоминаю с теплотой и любовью старую, добрую 1С 7.7 где можно было использовать инструкцию #ЗагрузитьИзФайла и горькая одинокая слеза скатывается по моей щеке от умиления. |
|||
1
ДенисЧ
30.01.16
✎
19:33
|
А давайте сделаем каждому копию...
И научим их курить, пока идёт сохранение... |
|||
2
Garykom
гуру
30.01.16
✎
19:39
|
Как меня удивляют программисты которым после пары строчек кода каждые 5 секунд отладка требуется...
|
|||
3
vvp91
30.01.16
✎
19:40
|
1. Поставить SSD и смонтировать %TEMP% на нем.
2. Добавить памяти, развернуть в ней рамдиск (например через https://ru.wikipedia.org/wiki/ImDisk ), в этот рамдиск монтировать %TEMP%. 3. Отлаживать доработки форм проводить в формах внешних обработок, отлаженное переносить в конфу. 4. Доработки модулей проводить и отлаживать во внешней консоле кода в режиме предприятия, отлаженное переносить в конфу. |
|||
4
Asmody
30.01.16
✎
19:48
|
Писать сразу и без ошибок не предлагать?
|
|||
5
ДенисЧ
30.01.16
✎
19:50
|
(4) Ты того... Выражения выбирай.. Нас же читают женщины и дети....
|
|||
6
breezee
30.01.16
✎
19:52
|
(3) 3. Отлаживать доработки форм проводить в формах внешних обработок, отлаженное переносить в конфу.
А если в формах идет обращение к экспотным модулям объекта? И что скорее всего к метаданным объекта, для котрого форма изменяется |
|||
7
Sj
30.01.16
✎
19:56
|
1. функции набирать во внешних обработках типа exec.
2. задачу разбивать на под-задачи, которые можно реализовать в виде функций 3. см. п.1 |
|||
8
MaxS
30.01.16
✎
20:02
|
как правильно сделать RAM диск на виртуалке? ESXi 6
|
|||
9
ДенисЧ
30.01.16
✎
20:06
|
(8) А у тебя ещё и виртуалка???
|
|||
10
Повелитель
30.01.16
✎
20:17
|
(0) Типовая в отладке файловый вариант, Управление торговым предприятием для Казахстана запускается за 5-10 секунд.
Кручу на SSD. В модуле приложении ПриНачалеРаботы, ввел константу ЭтоОтладка и закрыл ей половину ненужно когда, что ускорило загрузку в разы. |
|||
11
GreatOne
30.01.16
✎
20:21
|
Тс сбежал, будучи разоблаченным в своей криворукости
|
|||
12
Хранимая Процедура
30.01.16
✎
20:31
|
(0) - пиши с юнит тестами в TDD стиле, будь мужиком!
|
|||
13
kosts
30.01.16
✎
20:36
|
(0) Пользуйся консолью запросов. И внешними обработками.
И даже на обычном железе конфа открывалась у меня не более 30 сек (и файловая и СКЛ). Вот не помню долшего. Возможно в предприятии при старет очередной косяк с обращением в инет или чтением чего либо. Поставь точку останова в процедуре ПередНачаломРаботы() |
|||
14
MaxS
30.01.16
✎
20:50
|
(9) Да, а что?
На скорость не жалуюсь.SSD системный диск и быстрый HDD для баз. Но 7-ка запускается быстрее и оправдывает своё название 1С на i7 3,4 Ггц )) 8-ка - за 3 сек открывается конфигуратор УТ 11, небольшое обновление базы и запуск предприятия - не более 10 сек. |
|||
15
Злопчинский
30.01.16
✎
21:10
|
(0) "и программисту написав пару строчек кода за 5 секунд приходится ждать пару тройку минут что бы проверить результат его работы. "
- а нехрен быдлокодить. сначала рисуем, думаем, ТЩАТЕЛЬНО кодим. потом тестируем. |
|||
16
TormozIT
гуру
30.01.16
✎
21:37
|
Ускорение обработки операций ввода-вывода IOPS
Перепробовал несколько софтовых RAM дисков. Потом перешел на SSD (Cruical m4 128GB). Разницы в скорости не заметил, зато исчезли глюки и неудобства. SSD диск намного удобнее, т.к. энергонезависим. Ускорение перезапуска программы при частых правках кода. В разное время применял 1. Временное/постоянное вынесение кода во внешнюю обработку (желательно с кнопкой Переоткрыть) 2. Добавлял параметр запуска конфы "cleanmode", отрубающий выполнение кода при начале работы системы на подобие ОбменДанными.Загрузка при записи объекта. 3. Небольшие линейные фрагменты кода отлаживать Крайне эффективно через инструмент типа "Консоль кода". Я конечно же пользовался таким из подсистемы "Инструменты разработчика" 4. Из экзотики в своих конфигурациях мы использовали справочники типа Алгоритмы, где хранится код, доступный для изменения и выполнения. В качестве примера смотрите ирАлгоритмы из "Инструменты разработчика" 5. Также важно правильно настроить исключения проверки активности вовлеченных в разработку процессов со стороны антивирусного ПО. |
|||
17
Garykom
гуру
30.01.16
✎
21:41
|
Послушал всю эту хню... подумал а как это на java ee то пишут а?
где деплой в war с запуском на сервере приложений стандартно занимает не меньше несколько минут (иногда до получаса при огромном проекте) |
|||
18
mistеr
30.01.16
✎
22:23
|
(3) >Отлаживать доработки форм проводить в формах внешних обработок, отлаженное переносить в конфу.
Вот это хорошая тема, стоит обсудить. Форма документа отлично переносится во внешнюю обработку копированием. В модуле обработки (вне процедур) получаем форму, инициализируем основной реквизит ДокументОбъект (я вызываю форму выбора документа), открываем форму и вперед. Меня интересует этап "отлаженное переносить в конфу". Если переносить форму также копированием, то создается новая форма с новым GUID. Для типовых это не вариант. Может кто придумал что-то получше? |
|||
19
mistеr
30.01.16
✎
22:26
|
(15) сначала рисуем, думаем, ТЩАТЕЛЬНО кодим. потом тестируем
Пока один ТЩАТЕЛЬНО кодит, другой уже решит пару задач, получит деньги и пропьет. |
|||
20
Хранимая Процедура
30.01.16
✎
22:27
|
(17) - ты думаешь, что java ee еще жив?
|
|||
21
cypa
30.01.16
✎
22:42
|
да, ребята, вы в каменном веке! хотя бы изучите новое слово CI=Continuos Integration
интересно, когда нибудь в 1С появится JIT? |
|||
22
Drac0
30.01.16
✎
23:09
|
(4) и на продакшене!
|
|||
23
Мэс33
30.01.16
✎
23:09
|
(21) конечно
|
|||
24
Хранимая Процедура
30.01.16
✎
23:24
|
(21) - для CI нужна система (юнит-)тестирования, причем желательна от самого проиводителя, а не сделанная на коленке хакерами.
Есть ли такое для 1С? Возможно ли такое для 1С? |
|||
25
Хранимая Процедура
30.01.16
✎
23:25
|
CI без тестов не работает.
|
|||
26
Garykom
гуру
30.01.16
✎
23:34
|
(21) это то что придумали чтобы можно было хоть как то писать/отлаживать код (17) ?
типа нажал сохранить и пока тянешься к запустить оно типа уже откомпилило? так это такой костыль... |
|||
27
mistеr
31.01.16
✎
00:25
|
(26) Нет, это для того, чтобы когда ты закоммитил уже отлаженный (на твой взгляд) код, через N минут тебе прилетело сообщение "Тесты не прошли, переделывай".
Желто-красные писали на Хабре, что постепенно идут к этому. Точнее, ползут. |
|||
28
Хранимая Процедура
31.01.16
✎
01:03
|
(27) - а как они к этому приползут?
какие это вообще будут тесты? С In-memory database? |
|||
29
Хранимая Процедура
31.01.16
✎
01:04
|
я не предтсвляю, как и что можно тестировать в 1С.
Логику формирования отчетов? ОК. Что еще? |
|||
30
Злопчинский
31.01.16
✎
01:11
|
(19) тогда бы не было данного сабжа.
|
|||
31
Злопчинский
31.01.16
✎
02:13
|
Мой ответ на вопрос сабжа: не пытаться сделать сразу все.
|
|||
32
Zhuravlik
31.01.16
✎
03:04
|
(0) Для 77 еще турбо-мд есть, в 100 раз круче "ЗагрузитьИзФайла". Инструменты разработчика и внешние обработки вам в помощь + хорошо структурированный код.
|
|||
33
romix
31.01.16
✎
03:09
|
(0) БСП (библиотека стандартных подсистем) с диска ИТС позволяет цеплять внешние печатные формы, отчеты, обработчики заполнения и копирования объектов - это как раз то, в чем больше всего заморочки и требуется итерационный подход.
Например, многократный показ пользователю последовательных усовершенствований печатной формы. В типовых конфигурациях это способ вносить часто встречающиеся нетиповые изменения, не трогая этой конфигурации как таковой. |
|||
34
TormozIT
гуру
31.01.16
✎
09:56
|
(33) Кажется после каждой правки файл надо заново загружать в справочник и отлаживать код такой обработки то еще удовольствие. Подхват файла напрямую заметно удобнее, т.к. в нем таких проблем нет.
|
|||
35
mistеr
31.01.16
✎
10:01
|
Так что, по вопросу в (18) ничего нет толкового? Может, Снегопат может что-то предложить?
|
|||
36
Ластик
31.01.16
✎
11:18
|
(35) скинуть в копию конфиги, выполнить объединение )), не?
|
|||
37
quest
31.01.16
✎
11:26
|
(35) выгрузи конфигурацию в файлы, там простой хмл - расковырять я думаю можно
|
|||
38
Мэс33
31.01.16
✎
11:28
|
(29) Например, Модуль расчета с/сти, Или расчет цены по разным методам, расчет средней зп.
Пишется юниттест,к ним готовится тестовые данные, и теперь, после изменения кода, можно гонять юниттесты. |
|||
39
mistеr
31.01.16
✎
12:25
|
(36) Подробнее можно?
(37) Расковырять можно, но мы обсуждаем тему "Как ускорить разработку", а не как ее замедлить. |
|||
40
Ластик
31.01.16
✎
13:45
|
(39) вставить форму нельзя т.к. объект конфиги сменит идентификатор, но сделать это в копии и объединить с оригиналом чтобы сохранить идентификатор вроде ничего не мешает если я не ошибаюсь
|
|||
41
mistеr
31.01.16
✎
15:41
|
(40) То есть порядок такой получается: нужно сделать копию базы, открыть, вставить форму, удалить исходную, выгрузить .cf, объединить в рабочей базе? Я правильно понял?
Много телодвижений получается. |
|||
42
Ластик
31.01.16
✎
16:51
|
(41) зачем копию базы, конфиги с более менее актуальными метаданными достаточно, телодвижений много, вопрос стоял как это сделать ), я ответил. Можно добавить копию формы, далее сделать сравнить/объединить основную с конфигом БД и руками выставить соответсвие форм (ту которую надо обновить с копией которую воткнул по итогам разработки в обработке), так без копий но движений тоже не мало.
|
|||
43
Лефмихалыч
31.01.16
✎
16:53
|
(0) SSD и писать сразу прямо, а не криво
|
|||
44
cypa
01.02.16
✎
17:01
|
(41) делайте проще: сначала снапшот ФС (btrfs snapshot), далее фигачьте обновление и тестируйте, если что не так, то возвращайтесь к snapshot'у и снова да ладом
|
|||
45
cypa
01.02.16
✎
17:14
|
(29) ну на крайняк можно робота AutoIT использовать для автоматизации мышкокликанья в процессе тестирования клиента
|
|||
46
rphosts
01.02.16
✎
17:17
|
(0) коллективная разработка через хранилище конфигураций, отладка на локальной копии (подключенной к хранилищу), разработка/отладка всего чего можно через внешние отчеты/обработки.
|
|||
47
rphosts
01.02.16
✎
17:17
|
+ (46) локальная база на ССД, и рамы поболее
|
|||
48
Адимр
01.02.16
✎
17:47
|
(11) Я сдесь. Конспектирую.
Сам я работаю с файловой базой на ram диске, обычные диски 2 SSD в raid0, код сохраняю в хранилище. Это частично улучшило ситуацию, но проблем с сохранением cf на 500мб и запуска полностью не решило. Запуск предприятия: 15 сек Сохранение конфигурации после добавления реквизита: 55 сек Сохранение конфигурации после изменения кода: 15 сек |
|||
49
orangekrs
01.02.16
✎
17:50
|
(48) В процессор может, упирается ?
|
|||
50
Lama12
01.02.16
✎
17:54
|
(0) В 8.0 видимо УПП не ковырял :)
Наверно и отладкой программы в среде где нет отладчика/трассировщика тоже не занимался? Кто мешает заниматься отладкой на внешних обработках? Это сами алгоритмы. Взаимодействие клиент - сервер, можно и потерпеть несколько минут. |
|||
51
Адимр
01.02.16
✎
18:07
|
(49) Сore i5 3.1 Ггц не супер конечно но вполне нормальный проц.
|
|||
52
mistеr
01.02.16
✎
23:27
|
(49) Конечно в процессор. И в однопоточность конфигуратора.
|
|||
53
Wirtuozzz
01.02.16
✎
23:55
|
(0) Никак. Главное хуже не сделать.
Может хранилище юзнете? Все побыстрее будет чем сохранять конфу. |
|||
54
los_hooliganos
02.02.16
✎
08:13
|
Мне девушка помогает. Играет на флейте, я работу программирования ускоряю.
|
|||
55
Garykom
гуру
02.02.16
✎
17:44
|
(54) а девушка то не устаёт? и флейта
|
|||
56
Stimmer
02.02.16
✎
17:47
|
(54) знаю я эту девушку.
Да, хорошо играет |
|||
57
Карупян
02.02.16
✎
17:48
|
(54) На кожаной?
|
|||
58
ice777
02.02.16
✎
18:26
|
Предлагаю выгнать нафиг программиста, который каждые 5 мин проверяет 2 строчки кода.
|
|||
59
Мэс33
02.02.16
✎
19:38
|
(58) Смотрел стрим видео от Маркуса Перссона (он же Нотч, автор Майнкрафта), когда он делал майнкрафт 2D.
Так он проверял каждые 5 минут. Если что. |
|||
60
Tateossian
02.02.16
✎
20:03
|
(17) +100500
Мне вот больше интересно, как идет разработка в очень больших конторах с двадцатьюся одинэсниками и накатка типовой УПП (скажем, юзеров на 500). |
|||
61
ice777
02.02.16
✎
23:23
|
(59) сравнил палец с х.. Мы тут про 1С.
|
|||
62
Сильф
03.02.16
✎
00:01
|
(60) из моего опыта - никак.
|
|||
63
Garykom
гуру
03.02.16
✎
00:20
|
вот только что друг рассказал историю про боевую базу 1С 8.3, НачатьТранзакцию, ЗафиксироватьТранзакцию и точку останова в отладчике
когда после правки и применения, вырубания всех в базе и монопольного обновления, с прерыванием отладки транзакция не отменилась, частично... |
|||
64
su_mai
03.02.16
✎
01:23
|
(63) Это нормально :)
|
|||
65
Garykom
гуру
03.02.16
✎
01:29
|
(64) ну так им и сказал, сами себе злобные бу на боевой базе отладку и правку делать ))
|
|||
66
su_mai
03.02.16
✎
01:33
|
(65) Была прикольная "фича 8.1" при обновлении конфигурации БД в отложенном режиме, все проводки грохались, но 1С её быстро локализовало :)
|
|||
67
mistеr
03.02.16
✎
19:37
|
(63) >транзакция не отменилась, частично...
Ооо, интересуют подробности. Как это 1С сумела скуль хакнуть так, что он потерял транзакционность. |
|||
68
Garykom
гуру
03.02.16
✎
19:40
|
(67) как это меня и их не очень интересовало... они были заняты подниманием бэкапа и перекидыванием новых данных за вычетом этой транзакции
|
|||
69
Tateossian
03.02.16
✎
19:43
|
(67) Полагаю, между НачатьТранзакцию и ЗафиксироватьТранзакцию имели место неявные транзакции или что-то где-то незадокументировано. Хотя, я всегда с опаской относился к этим функциям.
|
|||
70
Garykom
гуру
03.02.16
✎
19:48
|
(69) хз, они просто отладку прервали внутри транзакции и получили себе работу неоплачиваемую
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |