Всем доброго дня!
Готовлюсь к сдаче на специалиста по платформе и постоянно в голоке "запрос в цикле".
И тут на работе, попросили добавить печатную форму бух.справки в БУХ 3.0 к документу Корректировка долга.
Всё просто, берём данную печ.форму из документа Операции и делаем как внешнюю для нашего документа.
Всё сделал, сижу читаю код...
И тут в цикле Выборка.Следующий() вижу код
Разве это не запросы в цикле?
Или я чего-то не понимаю?
Готовлюсь к сдаче на специалиста по платформе и постоянно в голоке "запрос в цикле".
И тут на работе, попросили добавить печатную форму бух.справки в БУХ 3.0 к документу Корректировка долга.
Всё просто, берём данную печ.форму из документа Операции и делаем как внешнюю для нашего документа.
Всё сделал, сижу читаю код...
И тут в цикле Выборка.Следующий() вижу код
АналитикаДт = ?(ЗначениеЗаполнено(Выборка.ПодразделениеДт), Строка(Выборка.ПодразделениеДт) + Символы.ПС, "")
+ ?(ЗначениеЗаполнено(Выборка.СубконтоДт1), Строка(Выборка.СубконтоДт1) + Символы.ПС, "")
+ ?(ЗначениеЗаполнено(Выборка.СубконтоДт2), Строка(Выборка.СубконтоДт2) + Символы.ПС, "")
+ ?(ЗначениеЗаполнено(Выборка.СубконтоДт3), Строка(Выборка.СубконтоДт3), "");
АналитикаКт = ?(ЗначениеЗаполнено(Выборка.ПодразделениеКт), Строка(Выборка.ПодразделениеКт) + Символы.ПС, "")
+ ?(ЗначениеЗаполнено(Выборка.СубконтоКт1), Строка(Выборка.СубконтоКт1) + Символы.ПС, "")
+ ?(ЗначениеЗаполнено(Выборка.СубконтоКт2), Строка(Выборка.СубконтоКт2) + Символы.ПС, "")
+ ?(ЗначениеЗаполнено(Выборка.СубконтоКт3), Строка(Выборка.СубконтоКт3), "");
ПоказатьРазве это не запросы в цикле?
Или я чего-то не понимаю?
По теме из базы знаний
Найденные решения
В реальной жизни всё несколько не так, как на экзаменах.
И где Вы тут увидели запрос в цикле - сложно понять. Разве что вот это - неявные запросы - "Строка(Выборка.СубконтоДт1)", потому что для ссылочного типа будет тянуться представление из базы (если Выборка.СубконтоДт1 - ссылочный тип, а не представление, конечно).
Но учитывая, что это печатная форма, а не какое-нибудь проведение по партиям - по барабану в целом.
И где Вы тут увидели запрос в цикле - сложно понять. Разве что вот это - неявные запросы - "Строка(Выборка.СубконтоДт1)", потому что для ссылочного типа будет тянуться представление из базы (если Выборка.СубконтоДт1 - ссылочный тип, а не представление, конечно).
Но учитывая, что это печатная форма, а не какое-нибудь проведение по партиям - по барабану в целом.
(6) Прошу прощения, преобразование к строке я не заметил
Если необходимо получить представление элемента справочника, то эффективнее не обращаться через ссылку к наименованию, а преобразовать ссылку к строке. В этом случае будет использоваться специальный механизм получения представлений (так же с кэшированием) и если представления объекта еще нет в кэше, то объект не будет считываться целиком, а будут считываться только поля, необходимые для получения представления.
Т.е. это все же неявное обращение к базе. В любом случае в данном примере получение представления ссылки запросом было бы эффективней
Если необходимо получить представление элемента справочника, то эффективнее не обращаться через ссылку к наименованию, а преобразовать ссылку к строке. В этом случае будет использоваться специальный механизм получения представлений (так же с кэшированием) и если представления объекта еще нет в кэше, то объект не будет считываться целиком, а будут считываться только поля, необходимые для получения представления.
Т.е. это все же неявное обращение к базе. В любом случае в данном примере получение представления ссылки запросом было бы эффективней
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В реальной жизни всё несколько не так, как на экзаменах.
И где Вы тут увидели запрос в цикле - сложно понять. Разве что вот это - неявные запросы - "Строка(Выборка.СубконтоДт1)", потому что для ссылочного типа будет тянуться представление из базы (если Выборка.СубконтоДт1 - ссылочный тип, а не представление, конечно).
Но учитывая, что это печатная форма, а не какое-нибудь проведение по партиям - по барабану в целом.
И где Вы тут увидели запрос в цикле - сложно понять. Разве что вот это - неявные запросы - "Строка(Выборка.СубконтоДт1)", потому что для ссылочного типа будет тянуться представление из базы (если Выборка.СубконтоДт1 - ссылочный тип, а не представление, конечно).
Но учитывая, что это печатная форма, а не какое-нибудь проведение по партиям - по барабану в целом.
это явно не запросы в цикле.
Ориентироваться на типовые как на образец не стоит. Там нереально много невероятной фигни. Ни одна типовая никогда не пройдет сертификацию на "совместимо".
Ну и вообще нет смысла вникать в дурацкие постулаты типа "запрос в цикле нельзя". 1с чисто прикладная программа, надо делать, чтобы работало правильно и цена была приемлемой для клиента. Все остальное неважно. Сертификация этому не учит, поэтому надо сдать как они хотят и забыть.
Ориентироваться на типовые как на образец не стоит. Там нереально много невероятной фигни. Ни одна типовая никогда не пройдет сертификацию на "совместимо".
Ну и вообще нет смысла вникать в дурацкие постулаты типа "запрос в цикле нельзя". 1с чисто прикладная программа, надо делать, чтобы работало правильно и цена была приемлемой для клиента. Все остальное неважно. Сертификация этому не учит, поэтому надо сдать как они хотят и забыть.
здесь нет запроса в цикле.
Выборка получает все необходимые поля из базы данных: ПодразделениеДт, СубконтоДт1, СубконтоДт2, СубконтоДт3 и т.д.
и в коде идет уже обращение к этим полям, полученным в запросе.
В данном примере запросом в цикле являлось бы обращения вида: Выборка.СубконтоДт1.Наименование.
Если чуть подробнее:
Выборка.СубконтоДт1 - это ссылка, она получена запросом из базы данных.
Выборка.СубконтоДт1.Наименование - это реквизит ссылки, значение этого реквизита запросом не получено, и происходит неявное обращение к базе для того, чтобы по ссылке получить значение ее реквизита.
Выборка получает все необходимые поля из базы данных: ПодразделениеДт, СубконтоДт1, СубконтоДт2, СубконтоДт3 и т.д.
и в коде идет уже обращение к этим полям, полученным в запросе.
В данном примере запросом в цикле являлось бы обращения вида: Выборка.СубконтоДт1.Наименование.
Если чуть подробнее:
Выборка.СубконтоДт1 - это ссылка, она получена запросом из базы данных.
Выборка.СубконтоДт1.Наименование - это реквизит ссылки, значение этого реквизита запросом не получено, и происходит неявное обращение к базе для того, чтобы по ссылке получить значение ее реквизита.
(6) Прошу прощения, преобразование к строке я не заметил
Если необходимо получить представление элемента справочника, то эффективнее не обращаться через ссылку к наименованию, а преобразовать ссылку к строке. В этом случае будет использоваться специальный механизм получения представлений (так же с кэшированием) и если представления объекта еще нет в кэше, то объект не будет считываться целиком, а будут считываться только поля, необходимые для получения представления.
Т.е. это все же неявное обращение к базе. В любом случае в данном примере получение представления ссылки запросом было бы эффективней
Если необходимо получить представление элемента справочника, то эффективнее не обращаться через ссылку к наименованию, а преобразовать ссылку к строке. В этом случае будет использоваться специальный механизм получения представлений (так же с кэшированием) и если представления объекта еще нет в кэше, то объект не будет считываться целиком, а будут считываться только поля, необходимые для получения представления.
Т.е. это все же неявное обращение к базе. В любом случае в данном примере получение представления ссылки запросом было бы эффективней
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот