Имя: Пароль:
1C
 
Синдром самозванца.
0 H A D G E H O G s
 
19.12.24
00:15
Знай, 1С-ник, если ты испытываешь синдром самозванца - ты просто должен посмотреть код функции

Функция ПолучитьДанныеКлассификатора() Экспорт
модуля менеджера справочника УпаковкиЕдиницыИзмерения

в какой-нибудь типовой.

И тебя попустит.
1 H A D G E H O G s
 
19.12.24
00:15
5200 строк вот такого кода:
2 Широкий
 
19.12.24
00:19
Текст = Новый ТекстовыйДокумент;
    Текст = Справочники.УпаковкиЕдиницыИзмерения.ПолучитьМакет("КлассификаторЕдиницИзмерения");
    ТекстМакета = Текст.ПолучитьТекст();
        
    Возврат ОбщегоНазначения.ЗначениеИзСтрокиXML(ТекстМакета);
    
Лишняя строка, но терпимо :)
3 Михаил Козлов
 
19.12.24
00:20
Действительно. Класс!
4 Злопчинский
 
19.12.24
00:29
надо какому-нить чатугпт подсунуть с заданием "упростить код, чтобы результат остался таким же"...
5 MaxxiMiliSanM
 
19.12.24
00:58
(1) Предположу, что этот код был сгенерирован автоматически
6 Волшебник
 
19.12.24
01:13
А что тут происходит?
7 Волшебник
 
19.12.24
01:14
Я ветку закрепил, если чо
8 Ненавижу 1С
 
гуру
19.12.24
05:33
Мне интересно как они решают, когда макет использовать, а когда кодом строчить?
Но подозреваю это генерация кода из макета. Только зачем...
9 Aleksey
 
19.12.24
06:44
(8) Возможно для гитхаба, или подобной фигни. Короче для хранилище, там где сравнивается текст и выводятся различия. Не думаю что сторонние утилиты осилят сравнения mxl, а вот текстовый текст - легко.
10 formista2000
 
19.12.24
07:07
А что если тригонометрические функции, например Sin() и Cos() тоже заданы хард-кодом и таблицей Брадиса? О.о
интересно получается
11 Stepashkin
 
19.12.24
07:11
Когда мой мозг задался таким вопросом, я глянул функцию проверки адреса email, написанную собственноручно на 7.7. После этого мой мозг функционирует в нормальном рабочем режиме.
12 Мультук
 
гуру
19.12.24
07:39
(0)

Я не удивлюсь, что эта функция используется только один раз
при заполнении классификатора
13 NorthWind
 
19.12.24
07:56
(12) скорее всего да. И в этом плане она, собственно, не особо чем-то хуже, чем другие способы, тем более что этот код наверняка писался средствами автоматической кодогенерации.
14 Гена
 
гуру
19.12.24
07:59
(12) Сдаётся мне, что с точностью до наоборот.
Давайте подумаем.
Вот есть крупная торговая компания, в которой туча номенклатуры. К какому справочнику будет больше всего обращений? К номенклатуре? Нет. Именно что к единицам измерения (ЕИ). Потому что по одному товару те же прайсы, причём во времени, будут вариативны по штукам, упаковкам, ящикам, паллетам и ещё хрен знает по каким ЕИ.

Обратите внимание, что по каждому уровню есть Числитель и Знаменатель, т.е. коэффициент перевода одних ЕИ в другие. Это позволяет переводить тонны в кубометры или килограммы в листы и т.д.

Если убедил и все согласны, что наибольшее число обращений в любой программе торговой организации именно к справочнику ЕИ, то нам осталось только сообразить, а где нам лучше всего расположить эту огромную таблицу ЕИ?

Я не спец, но интуиция мне подсказывает, что эту таблицу надо расположить именно что длинной функцией внутри справочника ЕИ. Как раз для БЫСТРОТЫ. Нет?
15 Chai Nic
 
19.12.24
08:05
(14) Для быстроты нужно многократно обращаться к индексированной таблице, которую предварительно один раз заполнили. А не заполнять каждый раз полностью, чтобы потом обратиться.
16 Мультук
 
гуру
19.12.24
08:06
(14)

Вместо тысячи слов

#Область ОбновлениеИнформационнойБазы

Функция ПолучитьДанныеКлассификатора() Экспорт
 //хулиард строк
КонецФункции

#КонецОбласти
17 Гена
 
гуру
19.12.24
08:09
(15) А разве эта функция каждый раз заполняет??
По языковой логике заполнять обязана процедура, а дело функции дать мгновенный ответ, когда по ней палкой стукнули.
18 Гена
 
гуру
19.12.24
08:11
(16) А... так её только раз используют?
19 Мультук
 
гуру
19.12.24
08:19
(18)

Там дальше непонятно и работа началась
20 PR
 
19.12.24
08:21
(8) Макет — неправильно
Код наше все
21 Ненавижу 1С
 
гуру
19.12.24
08:25
(9) макеты есть в xml например
22 Гена
 
гуру
19.12.24
08:26
(19) Для программиста нет такого слова как "непонятно" (с) моё )
У кого есть данная конфа, кстати, какая? Гляньте глобальным поиском - много ли к этой функции обращений с разных товарных мест или действительно она только раз при обновлении задействована.
23 DrZombi
 
гуру
19.12.24
08:50
(5) Предположу, что код введен руками. Думать про то, как жить с эти дальше, команды дано не было :)
24 DrZombi
 
гуру
19.12.24
08:52
(16) А можно было бы загнать все в Табличный документ MXL и раз в жизни подтянуть от тудо-ва информацию, выверив оную в ексельке :)
25 Pprog151713
 
19.12.24
08:56
В бух. 3.0 - 10 строк. Эта функция.
26 scanduta
 
19.12.24
09:03
(0) Самозванцы это архитектотры 1с ERP
27 Asmody
 
19.12.24
09:32
(1) Когда в языке нет нормальных да вообще никаких(!) литералов коллекций, ещё и не такая хрень пишется
28 Мультук
 
гуру
19.12.24
10:00
(22)
ERP 2.5.19

Найдено вхождений: 16
Самый жирный пример


Основная конфигурация Обработка.ПодборНомеровГТДВДокументы.Форма.Форма.Форма.Модуль(854, 62) :
ДанныеКлассификатора = Справочники.УпаковкиЕдиницыИзмерения.ЗаполнитьЕдиницыИзмеренияИзКлассификатора("796");

ЗаполнитьЕдиницыИзмеренияИзКлассификатора
-- вызывает ПолучитьДанныеКлассификатора()
-- строит по нему Соответствие
-- Возвращает это Соответствие

Ну да. Чего зря запросы писать к УпаковкиЕдиницыИзмерения -- вот же готовая функция


P.S.
Гена, ты разрушил мою веру в светлый незамутненный код типовых конфигураций.
Моя жизнь не будет прежней.

:-)
29 Stepashkin
 
19.12.24
09:37
(28) "веру", а не "верю".
30 Asmody
 
19.12.24
09:52
А с другой стороны, чуть добавить отступов - и уже почти JSON

31 Eiffil123
 
19.12.24
09:53
(1) всю жизнь решаю аналогичные задачи заполнения своих классификаторов через макеты обработок
32 Asmody
 
19.12.24
09:53
а поскольку это действительно (скорее всего) кодогенерация, да похрен, как оно написано. вам туда лазить не надо
33 Мультук
 
гуру
19.12.24
10:01
(29)

Последнее время - вот такие описки.
Хоть к врачу иди.

Раньше был внимательнее, что ли.
Или это стресс ?
34 Chai Nic
 
19.12.24
10:06
(24) Вот из-за таких загонятелей конфигурации и весят гигабайты)
35 mishaPH
 
19.12.24
10:23
(34) А кто сейчас на место смотрит?
(0) ну конечно это прикольно НО а как заполнить справочник первоначально при запуске конфигурации если инета нет, и нет ничего кроме метаданных.
36 Гипервизор
 
19.12.24
10:45
(35) (2)
37 mishaPH
 
19.12.24
10:52
(36) и что. данные то где взять. Или просто хранить не в коде а табличке?
38 Chai Nic
 
19.12.24
11:11
(35) Бывает, что приходится делать кучу копий баз для пользователей. И напрягает, что почти пустая (в смысле данных) база весит пару гигов.
39 Eiffil123
 
19.12.24
11:19
(38) согласен полностью. не понимаю, зачем держать код, который больше никогда не выполнится. И всё это барахло еще в оперативку сервера грузится, а реально рабочего кода там четверть или даже меньше.
40 Eiffil123
 
19.12.24
11:19
(37) во внешних файлах вместе с поставкой конфигурации
41 Stepashkin
 
19.12.24
11:27
(33) Может торопитесь.
42 novichok79
 
19.12.24
11:43
а всего-то надо сделать миграшки.
43 mishaPH
 
19.12.24
11:55
(40) ну не все так просто наверное. Иначе бы сделали.
Первоначальное заполнение вообще не должно зависеть от внешних файлов
44 Гена
 
гуру
19.12.24
12:05
(28) Хрень какая-то. Кодег`ов ЕРП расстг`елять. Но сначала напоить чайком... всенепг`еменно!
45 vis
 
19.12.24
13:03
(42) Что такое "миграшки" ?
46 Eiffil123
 
19.12.24
16:46
(43) почему?
47 novichok79
 
19.12.24
17:02
(45) нууэээ, очевидно что миграции БД.
прост если бы это были бы условные миграции на Go, а база там в 99% случаев postgresql, можно было бы сделать заполнение из  какого-нибудь CSV файлика.
48 Garykom
 
гуру
19.12.24
17:16
Имхо текст JSON в коде
Или текст запроса который ВТ делает, из которой куда надо пишем

А не вот этот изврат
49 novichok79
 
19.12.24
17:34
миграции в коде - такое себе
50 Конструктор1С
 
19.12.24
18:22
(1) типичный мамкин копипастер писал. Много 1сников кодят через копипасту
51 Волшебник
 
19.12.24
18:23
(50) Нет. Это кодогенерация.
52 Fragster
 
гуру
19.12.24
18:51
вообще учитывая, что программный код всех модулей "компилируется" в AST и потом хранится в памяти, подход с макетом лучше (хоть xml, хоть json, хоть yaml (который для гита проще))
53 Волшебник
 
19.12.24
19:22
Ебать-колотить...
1С-ники узнали про кодогенерацию своего кода...
55 Djelf
 
19.12.24
19:47
О чем вы спортите то? Это же на 0.01мс быстрее!
А если в цикле и без кеширования, то в 100-1000 раз быстрее.
Просили ускорить в 10 раз (непонатно что) за 100р?
Ну и получите кучку амна в вашей базе..
За что платили - то и получили.
56 Волшебник
 
19.12.24
19:52
(55) Слушай, я всё облазил.. Где вот эта хрень? Что за прямоугольное? "Сарказм" на каком языке написано?
57 Djelf
 
19.12.24
20:03
(56) Твой сарказм слишком "тонкий", он не до всех доходит.
59 Волшебник
 
модератор
19.12.24
20:22
(57) Это твой сарказм, ебанутый и толстый. Ты заебал уже весь форум своим толстым сарказмом!
Это мой форум! Ты понимаешь, кто ты и где ты?
60 Tarlich
 
19.12.24
21:53
Ну я то же не понимаю зачем в базе держать драйвера разного оборудования , далеко не все ими пользуются - а это пол гига ! можно вынести в поставку (или при необходимости как 10,3 через инет обработки обслуживания )
61 DrShad
 
19.12.24
22:04
(60) специально для таких как ты их вынесли в БТО
62 Волшебник
 
19.12.24
23:57
(60) пишется "тоже"! слитно!
63 Волшебник
 
19.12.24
23:59
(61) что за БТО? расшифруй, будь ласка
64 DrShad
 
20.12.24
00:03
(63) Библиотека Торгового Оборудования
65 Волшебник
 
20.12.24
00:06
(64) Спасибо.
66 DrShad
 
20.12.24
00:10
(65) bitte
67 Волшебник
 
20.12.24
00:13
(66) дась
68 Garykom
 
гуру
20.12.24
00:49
(64) Оно же вроде БПО
Библиотека Подключаемого Оборудования
69 DrShad
 
20.12.24
00:51
(68) возможно, я мог и ошибиться
70 Волшебник
 
20.12.24
00:59
(69) ага-ага..
71 DrZombi
 
гуру
20.12.24
07:25
(34) Ха... а километровый кусок кода, это эпопея компактности? :)))
К тому же Код выполняется Один раз в Жизни + еще один раз, когда у программиста справочники пошли в разнос при странных обстоятельствах :)
72 Повелитель
 
20.12.24
08:01
(0) Может там просто эффективный менеджер, решил зарплату программистам за количество строк выплачивать )))
73 Chai Nic
 
20.12.24
08:06
(61) Как это способствует компактности типового cf?
74 Повелитель
 
20.12.24
08:57
Скиньте кто-нибудь функцию целиком. А то у нас в Казахстанских типовых нет её.
75 Волшебник
 
20.12.24
10:08
(74) А харя форум не треснет?