Имя: Пароль:
1C
 
Семёрошный стиль
☑
0 Anchorite
 
30.10.26
✎
10:51
На правах пятничного: много раз слыхал, что заядлого клюшечника якобы можно уверенно сдетектить по стилю восмёрошного кодонаписания. Поесните нюфане, каг таг.
1 toypaul
 
гуру
30.10.26
✎
10:58
(0) непонимание как работает клиент сервер. обращение через точку. переменные в стиле пБум, тЛяЛя.

Переделывал последние два месяца код за таким.
2 formista2000
 
30.10.26
✎
10:59
Контрагент = 0;
3 PLUT
 
гуру
30.10.26
✎
11:27
(0) вымирающий вид

щас сильные погромисты с подписькой на клод за 20 американских рублей в месяц (которые ни разу не погромисты, но "хороший" код и главное очень много кода "пишут")
4 PLUT
 
гуру
30.10.26
✎
11:34
(1) > Переделывал последние два месяца код

реfuckторинг кода
5 rozer76
 
30.10.26
✎
11:34
вместо запросов все делает через таблицузначений
6 Garykom
 
гуру
30.10.26
✎
11:36
(1) >обращение через точку
А вот тут интересный момент
Если тебе надо много реквизитов объекта - проще через точку ибо закеширует
Фактически будет почти вызов ОбъектСсылка.ПолучитьОбъект()

Понятно когда один-два реквизита то лучше сразу
СтруктураРеквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ОбъектСсылка, "ИменаРеквизитов");

Но не лучше когда последовательно делают:
Реквизит1 = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОбъектСсылка, "ИмяРеквизита1");
Реквизит2 = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОбъектСсылка, "ИмяРеквизита2");
// ...
7 Garykom
 
гуру
30.10.26
✎
11:38
(6)+ Кстати в запросах тоже можно обычно не париться и делать через точку, понятно не всегда и не везде
Какая нафик разница оно само неявно или ты сам явно соединение сделаешь
Но это не касается составных типов реквизитов - тут только явно самому делать ибо неявное хренакнет кучу соединений!
8 Garykom
 
гуру
30.10.26
✎
11:42
(5) Прикинь я результат запроса почти всегда выгружаю в ТЗ
Вместо выборки
Это же идиотизм выборку (из результатов запроса) параметром передавать в процедуры/функции
Или как получишь Количество() ? Когда надо условия сделать от 0, 1 или 2 или многа
И да это не считая что так удобней для отладки, ТЗ глянуть без ИР и прочих
9 mikecool
 
30.10.26
✎
11:46
(8) молодец, возьми с полки пирожок, вместо одного набора данных делаешь два
10 Мультук
 
гуру
30.10.26
✎
11:50
(8)

Надеюсь, тз с именем тз ? :-)

тз
й
стр
строка
флаг

Мои одноразовые переменные, которые живут 1-5 строк.
Ну или код настолько тривиален, что нормальные имена просто не нужны.

И да, префиксом "п" я пользуюсь, ибо пространство имён в 1С это жуть жуткая.

(9)

Не экономит он ОЗУ.
И это он делает в эти непростые времени, когда с ОЗУ очень тяжело.
Вернуть его в наказание на 640Кб, ибо как известно...
11 Мультук
 
гуру
30.10.26
✎
11:56
(9)

Типовой механизм ЕРП, при проведении документа выполняет туеву хучу запросов и выгружает весь пул данных для движений в таблицы значений, чтобы потом засунуть всё это в регистры.

Почему же в этом случае не используется кошерные выборки, вместо богопротивных таблиц значений?

Ах да. Так ведь удобнее в разработке, отладке.


Красиво/не красиво
Удобно/не удобно.
12 PR
 
30.10.26
✎
12:11
(0) Напремег мажна частаг замичадд сроффнене с фоллос и труум
ЗЫ: а в чем прикол этого тупого недосуржика?
13 paramedic
 
30.10.26
✎
12:23
(11) Не совсем так. Там, где сразу нужны данные в "плоском" виде - ТЗ, где используется перебор - используются выборки или комбинация выборки+ТЗ из разных составляющих пакета запросов.
14 Web00001
 
30.10.26
✎
12:27
(6)
Но не лучше когда последовательно делают:
Реквизит1 = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОбъектСсылка, "ИмяРеквизита1");
Реквизит2 = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОбъектСсылка, "ИмяРеквизита2");

Когда нашел функцию "ЗначениеРеквизитаОбъекта" но не нашел "ЗначениеРеквизитовОбъекта"
(8)
Это же идиотизм выборку (из результатов запроса) параметром передавать в процедуры/функции
Это идиотизм выгружать в ТЗ результат запроса, только потому, что боишься передать выборку. Никакого нет негатива к ТЗ. Но если она не нужна, то и делать ее не надо. Ты там по дороге еще в массивы структур что ни будь повыгружай, ну типа а чобы нет, просто по приколу.

Или как получишь Количество()

Прям вот так и получишь Выборка.Количество()
15 Гений 1С
 
гуру
30.10.26
✎
13:10
(0) в типовых не ставили пробелов.
77:
а=б;
8х:
а = б;

Очень часто видно.
Плюс использование числа 1 и 0 вместо булево часто.
16 Garykom
 
гуру
30.10.26
✎
13:21
(14)
Прям вот так и получишь Выборка.Количество()

Молодец, теперь возьми предпоследнее значение

Я не спорю что Выборка тоже хорошо
Но применять ее надо на огромных результатах запроса
Чтобы по памяти сервер 1С не упал

Если ты знаешь что у тебя малый результат (печатная форма например) - ну так получи ТЗ и передай ее дальше в процедуры/функции заполнения печформ.
А не как в типовых кучу выборок передаем параметрами чтобы накладную сформировать для печати...
17 Garykom
 
гуру
30.10.26
✎
13:25
(9) 1. Не всегда
2. И не два а один
В памяти сервера 1С разом получаем из СУБД в ТЗ
Вместо того чтобы построчно из сервера 1С смещая курсор дергать СУБД
Причем заставляя СУБД держать ВТ с результатами запроса/выборкой в его памяти
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший