Добавить вычисляемую колонку в табличную часть

1. Altez50 1 22.11.22 21:50 Сейчас в теме
Ищу явные нарушения стандартов разработки (задача отобразить дополнительную цену заданного типа, вроде со спеца)

Документ Заказ Клиента заимствован в расширение.
Добавлена на форму колонка ЦенаПрайсЛиста как реквизит таблицы "Товары".
Добавлена
&НаСервереБезКонтекста
Функция ПолучитьЦенуПрайсЛиста (СоответствиеРеквизитовПоиска) 

её вызывают для измененных строк
обработчики событий формы
ПриЧтенииНаСервереПосле()
ПослеЗаписиНаСервереПосле()
ОбработкаВыбораПосле()
ТоварыНоменклатураПриИзмененииПосле()


Вызывает сомнения запрос в цикле, получающий цену по каждой номенклатуре.
Эффективней ли он запроса, получающего цены всей табчасти одним запросом?
В индексы попадаем, а там, где
размен читаемость логики-производительность, выбрал читаемость.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1826630 22.11.22 22:53 Сейчас в теме
(1)
Вызывает сомнения запрос в цикле, получающий цену по каждой номенклатуре.
Эффективней ли он запроса, получающего цены всей табчасти одним запросом?

Точно задача на спеца?
5. Altez50 1 22.11.22 23:02 Сейчас в теме
3. spacecraft 22.11.22 22:57 Сейчас в теме
(1) когда в заказе пару позиций, то не принципиально. Но на это ведь не стоит полагаться.
И если там много позиций?
В общем случае, один запрос на получение всех данных будет лучше.
Там же не сложно.
Соответственно для ОбработкаВыбораПосле и ТоварыНоменклатураПриИзмененииПосле это не нужно.
VoVo; Altez50; +2 Ответить
6. Altez50 1 22.11.22 23:10 Сейчас в теме
(3) Верно понимаю: даже при подборе/добавлении строки всю тч Товары на сервер за ценой?
(4) Пользователь ждет меньше в случае запроса в цикле, если заказ небольшой. Нужен анализ реальных кейсов.
Задание тестовое.
По прошлой статистике (до 50 строк в заказе) быстрей запрос в цикле.
Спец, чтобы быстро добавить поддержку серий/характеристик/вариантов расчета цены тоже на дороге не валяется.
7. spacecraft 22.11.22 23:16 Сейчас в теме
(6)
Верно понимаю: даже при подборе/добавлении строки всю тч Товары на сервер за ценой?

повторю: "Соответственно для ОбработкаВыбораПосле и ТоварыНоменклатураПриИзмененииПосле это не нужно."

(6)
Пользователь ждет меньше в случае запроса в цикле, если заказ небольшой. Нужен анализ реальных кейсов.
Задание тестовое.
По прошлой статистике (до 50 строк в заказе) быстрей запрос в цикле.

Это говорит только об одном, что проблема в самом запросе/алгоритме.
11. Kilka_v_Kepke 23.11.22 09:23 Сейчас в теме
(3) я так понял цену получают из вне, так почему при изменении номенклатуры ее не надо обновлять, а после записи зачем ее обновлять?
12. spacecraft 23.11.22 10:24 Сейчас в теме
(11)
я так понял цену получают из вне, так почему при изменении номенклатуры ее не надо обновлять

Где это было сказано? Не нужно групповое получение для всей номенклатуры запрос для добавления и изменения номенклатуры. Это совсем разные понятия.

(11)
а после записи зачем ее обновлять?

А это уже не ко мне. Автору там виднее.
15. Altez50 1 23.11.22 12:13 Сейчас в теме
(11)
после записи зачем ее обновлять?

Ошибка, спасибо.
Правильно обновлять при изменении Даты (цены на дату документа).
17. SlavaKron 23.11.22 16:21 Сейчас в теме
(11)
после записи зачем ее обновлять?
После записи реквизит Объект будет заново прочитан из прикладного объекта, соответственно, колонка, которая не является реквизитом табличной части, будет очищена. Это не очень удобно, когда пользователь нажимает кнопку "Записать", колонка Цена будет очищаться.
18. Kilka_v_Kepke 23.11.22 16:24 Сейчас в теме
(17) если цена не является реквизитом документа(я такого нигде не припомню). Да тут можно много чего надумать)
20. SlavaKron 23.11.22 16:37 Сейчас в теме
(18) Из условия задачи я решил, что колонка Цена чисто справочная.
я такого нигде не припомню
Так необязательно это цена заказа - может это информация о закупочной цене или еще о какой.
19. Kilka_v_Kepke 23.11.22 16:26 Сейчас в теме
(17) забавно конечно получится, из цены заполнилась сумма, записали документ, обновили цену, а что с суммой будем делать?
4. spacecraft 22.11.22 23:01 Сейчас в теме
(1)
В индексы попадаем, а там, где
размен читаемость логики-производительность, выбрал читаемость.

Правильно, программисты пишут программы для программистов. А пользователи ... подождут :)
Kilka_v_Kepke; user1826630; +2 Ответить
16. Kilka_v_Kepke 23.11.22 16:14 Сейчас в теме
(4) я тоже так подумал когда типовую печатную форму правил)
8. Altez50 1 23.11.22 00:18 Сейчас в теме
(4) "Заимствованная в расширение форма кешируется и открывается быстрее, а программно доработанная нет."
Когда стоит менять программно?
10. volkov-mv 23.11.22 05:49 Сейчас в теме
(8) Мне кажется, что лучше всегда программно менять, так вы всегда будете видеть, что было изменено.
13. Kilka_v_Kepke 23.11.22 10:49 Сейчас в теме
(10) основные плюсы, которые я вижу в программном изменении формы:
1) облегчает обновление релиза
2) не нужно форму снимать с поддрежки
volkov-mv; +1 Ответить
14. user1826630 23.11.22 11:18 Сейчас в теме
(8) Это смотря как дорабатывать... Можно вклиниться в типовые механизмы БСП (УправлениеСвойствами, УправлениеКонтактнойИнформацией и проч), и свои реквизиты с элементами прописывать там (ну чтобы лишний раз не применять ИзменитьРеквизиты())...
9. volkov-mv 23.11.22 05:47 Сейчас в теме
В процедурах ПриЧтенииНаСервереПосле() и ПослеЗаписиНаСервереПосле() получите цены для всей номенклатуры общим запросом.
В процедуре ОбработкаВыбораПосле() у вас есть выбранные значения, отправьте только их в серверную процедуру без контекста и получите цены для выбранных значений общим запросом.
В процедуре ТоварыНоменклатураПриИзмененииПосле() вызовите процедуру без контекста и получите цену только для значения строки.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот