#0
by Darklight
Хотел воспользоваться встроенным кешированием значений функций. Но наткнулся на следующую проблему. Оказалось, что в качестве входящих параметров этих функций можно передавать значения только ПРИМИТИВНЫХ типов, ССЫЛОЧНЫЕ типы и структуры их содержащие. Ограничения, конечно очень жёсткие. Но... как оказалось они даже жёстче чем кажется. Во-первых, оказалось, что Тип "Уникальный идентификатор" не приравнивается ни к ПРИМИТИВНЫМ типам, ни к ССЫЛОЧНЫМ. Печально, особенно учитывая, что фактически это набор байтов (строка), как и обычная ссылка. И параметры этого типа в такие функции передавать нельзя (ну ладно - обойти можно просто передав их в виде строки). Ну что поделаешь :( тип "Уникальный идентификатор" действительно не относится в справке к ПРИМИТИВНЫМ (хотя мог бы), ни, видимо, к ссылочным тоже не относится. Во-вторых, оказалось, что нельзя передавать и тип "Объект метаданных", который так же не относится к примитивным типам. Это более печально. Но, в общем-то, тоже не критично (хотя удобно и могло бы повысить скорость работы некоторых алгоритмов; объекты "Объект метаданных" вообще константный, и прекрасно сериализуемый). В-третьих, при попытке передать в качесвте параметра в такую функцию значения типа "ТИП" система так же ругнулся, что он не ПРИМИТИВНЫЙ. Но тут я "выпал в осадок", и специально открыв в справке раздел о ПРИМИТИВНЫХ типах прочитал, что тип "ТИП" является примитивным. Что за фигня? Это не дочёт релиза платформы, может он уже исправлен в более поздних (включая 8.3)? Кто что подскажет, как лучше всего обойти это "ограничение". "Тип" очень нужен для передачи в кешированную функцию. Пока напрашивается только использование метода "ЗначениеВСтрокуВнутр", для конвертации типа "ТИП" в тип "Строка" и передачи уже в таком виде. Но, может, есть более красивое, а главное, производительное решение? Или не стоит заморачиваться по поводу производительности - и использование "ЗначениеВСтрокуВнутр" (в паре с "ЗначениеИзСтрокиВнутр") будет достаточно производительным решением Да и вообще вопрос. Стоит ли вообще заморачиваться с модулями, использующими "Повторное использование возвращаемых значений", или лучше строить кеширование по классической схеме (в параметрах сеанса и хранилище значений), или с использованием более новой методики через функцию "ПоместитьВоВременноеХранилище"?
#7
by Зойч
1с плевать на тебя и твои трудности хотело с высокой колокольни. Жри что дают. И прыгай от радости
#9
by Darklight
Почему план Ярославны Почему набор бреда. Написал всё как есть, может кому ещё эта информация будет полезна и съэкономит ему время и нервы; и спросил достаточно конкретно об оптимальной методике решения, или, возможном, отсутствии данный проблемы в более поздних релизах; указал на неточность в реализации данного механизма в платформе. Что не не понравилось в сабже? Приведён аналог использования "ЗначениеВСтрокуВнутр", указанного в сабже. У него есть преимущество? Пожалуйста не грубите! А жрать гуано можно и по разному. Давясь набивая рот, или аккуратно нарезая на ломтики, сдобривая специями и забывая, что это всего лишь гуано.
#12
by Darklight
Поспешил, вопрос снят - потому что это можно получить так: А когда можент возникнуть неопределено (не ну в справке я прочитал, но реально на практике - когда)?
#15
by Torquader
Передать можно всё, что угодно - можно, например, и ссылки на объекты метаданных строками передавать. Другое дело, зачем это нужно ?
#16
by Darklight
Нужно - значит нужно. Метаданные обрабатываются внутри кешированной функции (совмещено с обращением к данным из ИБ) - поэтому результат и кешируется. Вместо метаданных так же может передаваться просто "ТИП" (тогда метаданные уже получаются внутри функции по этому типу). Это затратные по времени операции с фикиспованным возвращаемым значением (в соответствии с переданными параметрами), которое далее часто используется повторно. Кешированные функции подходили почти идеально.
#17
by dot101
учитывайте, что результат кэширования недолговечен. Хотя и указано, что на время сеанса, а по факту на несколько минут, не помню уже точно.
#18
by Darklight
Да, я уже в курсе - печально это :( Посмотрю как реально будет работать - поэтому и спрашиваю, как люди реально на практике сейчас решают подобные задачи (из сабжа).
#19
by Torquader
Если результат где-то сохранить самому, то не нужно будет заниматься изучением кешируемых функций.
#20
by Darklight
Да, но 1. Для моей задачи кешируемые функции были как раз очень удобны 2. Хотелось изучить тонкости работы с ними, хотя бы на будущее;) 3. Собственно в сабже я и спросил, об альтернативах, которые имеют популярное применение на текущий момент
#22
by Darklight
Что-то какая-то не та html-строка вставилась в посте, должна быть вот эта ТипXDTO = Новый ТипДанныхXML(ТипОбъекта,";);
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Повторное проведение документа
- 7.7 список значений из значений перечисления, сортировка
- "Повторное использование вида субконто "Контрагенты" в запросе"
- v7: ОСН+ЕНВД. Кто-нибудь разделяет счет 19 на субсчета 19.1.1, 19.1.2 и т.д.
- УПП: Повторное использование материалов в производстве
- Использование в запросе функций из общих модулей
- Повторное использование возвращаемых значений
- v7: Повторное использование вида субконто
- Вызов функций общих модулей через COM
- СКД. Использование функций общих модулей в выражениях параметра отчета
- Повторное использование сеансов в http сервисах с ошибками
В этой группе 1С
- 1С УПП Требование накладная Восстановление НДС
- План видов расчета, удержания организаций, разовые удержания
- Чтение XML. Как определить типы узлов и атрибутов не в коде, а где то еще? XDTO?
- 1С Зазеркалье: Развитие сравнения/объединения модулей
- Флаги в УТ 10.3 по учету НДС
- Активация Windows XP Embedded
- М11 -требование накладная- вывести итог по сумме
- УТ10.3 Учет сумм с НДС и без НДС в регистре Партии товаров на складах (упр. уче
- Конвертация данных. Отмена записи объекта на этапе ПослеЗагрузки
- как удалить эмулятор ключа Hasp
- Нужна внешняя печатная форма для ут 11 "универсальный передаточный документ"
- КД. СтрокаПоискаВыгрузкиСсылки
- как сделать перенос строки в шаблоне Word из 1С
- в запросе Если не выбрал значение то по всем
- 1С 8.3 + ЗУП 2.5 + PostgreSQL = Тормозит
- v7: Масса брутто в ТОРГ-12
- Не найдена лицензия. Не обнаружен ключ защиты программы или полученная программн
- уведомления в Jabber из 1С:Документооборот Проф
- Как настроить права на отчеты в ут11
- как программно обновить реквизиты формы