Последние сообщения

#81
7.7 / Re: УПС! или испанский стыд...
Последний ответ от Злоп - 27 октября 2024, 23:40
С ТЗ еще есть прикол, что можно несколько колонок с одинаковым Идентификатором вкорячить... А потом сидишь колупаешься что за хрень.. Пока не визуализируешь.. ;-)
#82
7.7 / УПС! или испанский стыд...
Последний ответ от Злоп - 27 октября 2024, 23:40
Это коллектор всяких приключений, косяков, неожиданностей, провалов и прочего испанского стыда приключившегося...
#83
7.7 / Re: Создание таблицы значений ...
Последний ответ от Злоп - 27 октября 2024, 23:38
С ТЗ еще есть прикол, что можно несколько колонок с одинаковым Идентификатором вкорячить... А потом сидишь колупаешься что за хрень.. Пока не визуализируешь.. ;-)
#84
7.7 / Re: Создание таблицы значений ...
Последний ответ от Злоп - 27 октября 2024, 14:46
С ТЗ, вложенными итд - гораздо удобно работать с применением ИТЗ.
с ИТЗ есть, например, и такие вещи как
ВнутреннееСоединение / InnerJoin
ЛевоеСоединение / LeftJoin
ПравоеСоединение / RightJoin
ПолноеСоединение / FullJoin
Объединить / Merge
Пересечение / Conjunction
Разность / Difference
.
https://1cpp.ru/docum/html/IndexedTable.html
#85
7.7 / Re: Создание таблицы значений ...
Последний ответ от Харлампий Дымба - 26 октября 2024, 23:59
(9) В ЗиКе там НДФЛ и взносы собираются в монструозные таблицы значений с десятками тысяч вложенных таблиц значений - и в принципе это достаточно удобно для последующей обработки, но если само заполнение можно хорошо оптимизировать, то вот на создание самих таблиц тратится уйма времени.
Помимо этого есть куча часто используемых функция глобального модуля возвращающих список или таблицу значений - а по ним создание наверх не вынесешь.
Но это всё теперь не важно, потому что:
(3) А я-то себя считал достаточно умным. Просто нет слов...
Простое ЗагрузитьВнешнююКомпоненту("1cpp.dll") дало по самым тормозным местам конфигурации буст по скорости 30-60%.
Это просто феноменально! Djelf, огромное спасибо за вразумление!

Что касается использования ЗначениеИзСтрокиВнутр(), то с включенным TurboBL это работает медленнее(sic!), чем СоздатьОбъект(), поэтому буду откатывать всё назад.

Замеры (К сожалению, не разобрался как сделать сюда красивой таблицей):

  • СоздатьОбъект("СписокЗначений")                                                 6594    118    51420    120
  • ЗначениеИзСтрокиВнутр("{"VL",{}}")                                                   226    227         226    226
  • СоздатьОбъект("ТаблицаЗначений")                                                 7231    145    52294    146
  • ЗначениеИзСтрокиВнутр("{"VT","1",{"0",{{"","0","0","0","","2"}}}}")       565    566         564    564

1я колонка - монопольно без 1c++
2я колонка - монопольно с 1c++
3я колонка - разделённо без 1c++
4я колонка - разделённо с 1c++

Боли добавляло ещё и то, что СоздатьОбъект в разделенном режиме работал в 10 раз медленнее, чем в монопольном. Ведь никакого обращение к данным, почему такое падение скорости, непонятно. Так что в разделенном режиме прибавка в скорости ещё больше.
#86
7.7 / Re: Создание таблицы значений ...
Последний ответ от Злоп - 26 октября 2024, 09:04
Использовал значениеизстрокивнутр для создания СЗ, норм.
.
Про ТЗ тоже мысль была, но вилы к горлу в части быстродействия не торчали, поэтому не использовал. Да и вдобавок обычно создание ТЗ выносил "наверх" и передавал параметром обычно.
.
Смутно мне помнится, что когда загрузка в бухию универсальной загрузкой иксемеля штатной работала долго и меня это достало - полез смотреть, там сделано универсально, генерится СоздатьОбъект(типвидданных) каждый раз в циклах и это ощутимо жрало время, вынес все СО наружу, закешировал - прирост скорости был ощутимый
#87
7.7 / Re: Создание таблицы значений ...
Последний ответ от Djelf - 25 октября 2024, 16:52
Странно, у меня с отключением 1c++ не падало. Возможно влияет текущее направление ветра.
#88
7.7 / Re: Создание таблицы значений ...
Последний ответ от Харлампий Дымба - 25 октября 2024, 16:45
Цитата: Djelf от 25 октября 2024, 16:16правда при включенной 1с++ ЗначениеИзСтрокиВнутр("{}"); вызвает выпадение из 1с,
Не, это в ей прям из коробки - встроенная фича,  1с++ тут ни при чём.
Как-то провёл пару занимательных часов в попытках понять что роняло базу: а всего-то в документе ПриЗаписи сохранял таблицу значений в строку с помощью ЗначениеВСтроку(), а пытался восстановить ПриОткрытии с помощью ЗначениеИзСтрокиВнутр(). Тут-то у меня 1С и валилась без лишних слов. Не мой был день.

Для крашей помогает ещё в расшифровку ячейки таблицы запихнуть таблицу значений побольше (65535?) :P
#89
7.7 / Re: Создание таблицы значений ...
Последний ответ от Djelf - 25 октября 2024, 16:16
https://www.1cpp.ru/docum/html/TurboBL.html
а в 1с++ еще кеширование создания пустых объектов было сделано (именно ЗначениеИзСтрокиВнутр но скрытое)
правда при включенной 1с++ ЗначениеИзСтрокиВнутр("{}"); вызвает выпадение из 1с, но иногда это удобно, чтобы выкинуть кого-то с неминуемым крэшем  ;D
#90
7.7 / Re: Создание таблицы значений ...
Последний ответ от Харлампий Дымба - 25 октября 2024, 16:12
Цитата: Харлампий Дымба от 25 октября 2024, 15:42Так что сразу извинись, если вопросы могут показаться тупыми.
Как вот такие описки появляются? Всего пару букв, а как смысл меняет!
Прошу читать как:
Так что сразу извиняюсь, если вопросы могут показаться тупыми