Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Медленное получение даты документа / 25 сообщений из 29, страница 1 из 2
21.10.2009, 10:00
    #36263462
AXAE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
Доброго дня всем!
Имеется такая проблема: получение даты из ссылки на документ (через Ссылка.Дата) очень медленное. При этом другие "реквизиты" ссылки (например Номер, СуммаДокумента) получаются в несколько десятков раз быстрее.
Можно ли от этого избавиться?
...
Рейтинг: 0 / 0
21.10.2009, 10:22
    #36263516
pail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
У вас, наверное, ссылка.дата сначала извлекается, а за ней и остальные реквизиты?
Так для любого реквизита нужно весь объект прочитать (а ссылка и объект - это не одно и то же). Он и читается из базы целиком. А у уже прочитанного другие реквизиты быстрее извлекаются.
Как бороться? Не лениться в запросах не ограничиваться получением ссылки, а сразу запрашивать все нужные реквизиты, и обращаться потом не к данным объекта через ссылку, а к результату запроса.
...
Рейтинг: 0 / 0
21.10.2009, 10:36
    #36263567
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
ну да
еще можно "профразработку" почитать там все это описано
...
Рейтинг: 0 / 0
21.10.2009, 10:43
    #36263587
AXAE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
Понятно... Да, я знаю, что в запросах нужно брать все нужные реквизиты. Только этот документ у меня берется из строки с уникальным идентификатором, а не из запроса, поэтому наверное здесь ничего не придумать быстрее.
...
Рейтинг: 0 / 0
21.10.2009, 10:48
    #36263598
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
AXAE, а выборка этих строк по-одной или как-то можно их распарсить перед запросом и передать уже в запрос номера списком ?
...
Рейтинг: 0 / 0
21.10.2009, 10:49
    #36263601
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
авторномера

извиняюсь... идентификаторы
...
Рейтинг: 0 / 0
21.10.2009, 10:50
    #36263603
AXAE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
Last1CmenAXAE, а выборка этих строк по-одной или как-то можно их распарсить перед запросом и передать уже в запрос номера списком ?
Подробнее?
У меня действительно есть список строк с уникальными идентификаторами... Каким образом их распарсить и в запрос передать?
...
Рейтинг: 0 / 0
21.10.2009, 11:21
    #36263687
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
AXAE, я так понял что речь о 8ке... с синтаксисом запроса я не помогу

автордокумент у меня берется из строки с уникальным идентификатором

следовательно есть возможность "выкусить" идентификатор конкретного документа а следовательно можно и сформировать список содержащий уже только идентификаторы а уже этот список можно передать в запрос в качестве условия (можно в принципе парсить внешней функцией в самом запросе но то уже как легче и проще)... а в самом запросе получить необходимые даныне (как-то номер, дата и т.д.) и уже их выводить туда куда вам необходимо

правда это не касается того варианта если у вас есть не один или несколько документов для вывода т.к. как сами понимаете процедура выполнения запроса будет несколько медленнее чем одиночное получение ссылки... так что смысл будет когда количество получений объектов по ссылкам в цикле по временным характеристикам будет превышать время одноразового выполнения запроса (скажем более сотни таких объекто должно реально ускорить)


для того чтобы вам ответили как именно распарсить строку с ИД необходимо предоставить сами примеры строк и то что должно быть из них выделено и сопоставлено в сравнении
...
Рейтинг: 0 / 0
21.10.2009, 11:23
    #36263699
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
если есть ссылка ... зачем запрос?
...
Рейтинг: 0 / 0
21.10.2009, 11:25
    #36263709
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
>>получение даты из ссылки на документ (через Ссылка.Дата) очень медленное.

чота не верю... дата документы - частьссылки и представления, есть всегда, за ней не надо нырять в базу
...
Рейтинг: 0 / 0
21.10.2009, 11:51
    #36263817
pail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
Господин ПЖ>>получение даты из ссылки на документ (через Ссылка.Дата) очень медленное.

чота не верю... дата документы - частьссылки и представления, есть всегда, за ней не надо нырять в базу
Вообще-то ссылка - это GUID в чистом виде.
Или идентификатор типа+GUID.
Но никакой даты в поле ссылки нет
...
Рейтинг: 0 / 0
21.10.2009, 11:54
    #36263822
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
pail
Вообще-то ссылка - это GUID в чистом виде.


на каком слое? БД? Да. рантайма 1С? Нет.
...
Рейтинг: 0 / 0
21.10.2009, 12:05
    #36263861
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
я подозревал и подозреваю что ИД у автора - это не ИД в БД :) ... только как вот по такому ИД получить ИД.Дата я не подозреваю
...
Рейтинг: 0 / 0
21.10.2009, 12:09
    #36263872
HoBTID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
Господин ПЖpail
Вообще-то ссылка - это GUID в чистом виде.


на каком слое? БД? Да. рантайма 1С? Нет.
Откуда такая уверенность?
Ссылка в рантайме 1С - это номер типа и GUID, посмотрите ЗначениеВСтрокуВнутр().

Ссылка в БД, для простых типов - только GUID, для составных - номер типа, номер таблицы ссылочного типа и GUID.

Номер типа позволяет отличить число, строку, дату, булево и Неопределно от ссылки.
...
Рейтинг: 0 / 0
21.10.2009, 12:10
    #36263881
HoBTID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
Опечатка,
Ссылка в рантайме 1С - это номер таблицы ссылочного типа и GUID, посмотрите ЗначениеВСтрокуВнутр().
...
Рейтинг: 0 / 0
21.10.2009, 12:12
    #36263886
AXAE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
Last1CmenAXAE, я так понял что речь о 8ке... с синтаксисом запроса я не помогу

автордокумент у меня берется из строки с уникальным идентификатором

следовательно есть возможность "выкусить" идентификатор конкретного документа а следовательно можно и сформировать список содержащий уже только идентификаторы а уже этот список можно передать в запрос в качестве условия (можно в принципе парсить внешней функцией в самом запросе но то уже как легче и проще)... а в самом запросе получить необходимые даныне (как-то номер, дата и т.д.) и уже их выводить туда куда вам необходимо

правда это не касается того варианта если у вас есть не один или несколько документов для вывода т.к. как сами понимаете процедура выполнения запроса будет несколько медленнее чем одиночное получение ссылки... так что смысл будет когда количество получений объектов по ссылкам в цикле по временным характеристикам будет превышать время одноразового выполнения запроса (скажем более сотни таких объекто должно реально ускорить)


для того чтобы вам ответили как именно распарсить строку с ИД необходимо предоставить сами примеры строк и то что должно быть из них выделено и сопоставлено в сравнении

По-моему, их никак не распарсить... GUID - это результат применения метода УникальныйИдентификатор() к ссылке. Например вот GUID - "2319dcf1-f4ee-438d-b16f-6a145d6b9422". Уникальные идентификаторы в запрос "восьмерки" не передать. Можно передавать только ссылки. На основе уникального идентификатора можно получить любую(!) ссылку.
...
Рейтинг: 0 / 0
21.10.2009, 12:19
    #36263908
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
ну да, наврал я. Формально в кеше даты документа может и не быть, если c ссылкой не было интерактива или приведение ее к строке.
...
Рейтинг: 0 / 0
21.10.2009, 12:22
    #36263911
HoBTID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
AXAEПо-моему, их никак не распарсить... GUID - это результат применения метода УникальныйИдентификатор() к ссылке. Например вот GUID - "2319dcf1-f4ee-438d-b16f-6a145d6b9422". Уникальные идентификаторы в запрос "восьмерки" не передать. Можно передавать только ссылки. На основе уникального идентификатора можно получить любую(!) ссылку.
Идея Last1Cmen - получить реквизиты сразу всех документов одним запросом, а не таскать каждый в цикле по ссылке. И это будет быстрее, если документов хотя бы 2, а если, например, не нужны табличные части, то будет быстрее даже при одном документе.
...
Рейтинг: 0 / 0
21.10.2009, 12:27
    #36263926
AXAE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
HoBTIDAXAEПо-моему, их никак не распарсить... GUID - это результат применения метода УникальныйИдентификатор() к ссылке. Например вот GUID - "2319dcf1-f4ee-438d-b16f-6a145d6b9422". Уникальные идентификаторы в запрос "восьмерки" не передать. Можно передавать только ссылки. На основе уникального идентификатора можно получить любую(!) ссылку.
Идея Last1Cmen - получить реквизиты сразу всех документов одним запросом, а не таскать каждый в цикле по ссылке. И это будет быстрее, если документов хотя бы 2, а если, например, не нужны табличные части, то будет быстрее даже при одном документе.
Идея понятна... Только на восьмерке ее не осуществить: на основании списка строк с GUID'ами не удастся получить список ссылок с реквизитами. Точнее удастся, но только если запрос формировать так, чтобы пробовать запросом одновременно вынимать ссылки на основании уникального идентификатора из всех ссылочных типов конфигурации - а это по-моему будет медленно.
...
Рейтинг: 0 / 0
21.10.2009, 12:34
    #36263948
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
авторно только если запрос формировать так, чтобы пробовать запросом одновременно вынимать ссылки на основании уникального идентификатора из всех ссылочных типов конфигурации - а это по-моему будет медленно

ну понятно что любой вызов внешней функции в запросе будет медленнее чем просто фильтор по готовому списку... речь то о том насколько на практике :)

т.е. предлагаю эти ИД передавать в запросе во внешнюю функцию а оттуда возвращать в запрос уже саму ссылку и по ней фильтровать...
...
Рейтинг: 0 / 0
21.10.2009, 12:34
    #36263951
AXAE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
AXAE...одновременно вынимать ссылки на основании уникального идентификатора из всех ссылочных типов конфигурации... Неправильно выразился. Правильнее будет сказать, что передавать в запрос все возможные ссылки на основании всех GUID с проверкой существования объекта.
...
Рейтинг: 0 / 0
21.10.2009, 12:39
    #36263972
AXAE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
Last1Cmen...возвращать в запрос уже саму ссылку и по ней фильтровать... Заметьте: не одну ссылку, а ссылки ВСЕХ ссылочных типов конфигурации, полученных на основании одно единственного GUID! А если этих GUID еще и целый список (у меня их десятки тысяч), то я думаю можно представить, как захлебнется 1С...
...
Рейтинг: 0 / 0
21.10.2009, 12:46
    #36263996
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
AXAE, а это единоразовая процедура ? если нет и их пятизнаками насчитывается то ускорить энто дело можно выделив отдельные реквизиты на документы где и хранить сцылки на сами объекты (их запись контролировать при проведении чтоль)

геморойно но если критично по скорости то прийдётся (это как я с иерархией недавно воевал :) если кто помнит)
...
Рейтинг: 0 / 0
21.10.2009, 12:51
    #36264012
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
AXAELast1Cmen...возвращать в запрос уже саму ссылку и по ней фильтровать... Заметьте: не одну ссылку, а ссылки ВСЕХ ссылочных типов конфигурации, полученных на основании одно единственного GUID! А если этих GUID еще и целый список (у меня их десятки тысяч), то я думаю можно представить, как захлебнется 1С...А вы десятки тысяч один раз загружаете или каждый день? Если каждый день - то опишите всю задачу сначала. А если один раз - то по моему скорость вобще не важна.
...
Рейтинг: 0 / 0
21.10.2009, 13:02
    #36264052
AXAE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленное получение даты документа
Да вообще-то не каждый день... Это нерегулярная процедура. Это процедура проверки. Конфигурация Альфа-Авто использует таблицу соответствия для переноса информации в бухгалтерию. Таблица соответствия представляет собой .dbf файл, где есть поля ID_SOURCE, ID_RECEVE и MANAGER. В первых двух полях хранятся GUID объектов: Альфа-Авто и Бухгалтерии соответственно. В них хранятся GUID документов и справочников. Поле MANAGER предназначается для описания менеджера бухгалтерии (вроде бы так... я его при обработке таблицы мало использую)
Мне необходимо проверить правильность этой таблицы. Мы ее своими кривыми ручками подпортили - залезли посмотреть, решили удалить несуществующие объекты. Удалили и не переиндексировали. При очередном переносе случился сбой и таблица была немного испорчена.
Да бывают и штатные ситуации, когда два контрагента Альфы грузятся в одного в бухгалтерии - такое тоже надо разыскивать и пресекать. Пресекать - это здесь уже дело десятое... Главное - найти таких.
Я вроде нашел решение своей проблемы: я перебираю последовательно все ссылочные типы конфигурации, создаю на основании GUID ссылку разных типов и проверяю на существовании такого объекта. Проверка осуществляется запросом к базе с параметром как раз этой сгенерированной ссылки. В этом запросе ведь можно сразу получать и реквизиты объекта, если он существует... А для того, чтобы это работало побыстрее, чем перебор всех ссылочных типов - предусмотрен, скажем так, "кэш попаданий". Там накапливаются количества верно угаданных типов ссылок.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Медленное получение даты документа / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]