Имя: Пароль:
JOB
Работа
Как ускорить разработку в 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) хз, они просто отладку прервали внутри транзакции и получили себе работу неоплачиваемую