Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0
Нужно из табличного поля формы документа получить колонку отсортировать ее и выбрать макс. значение. Есть ли возможность это сделать до записи документа., т.е. получить данные колонки из формы документа, выгрузить их в таблицу значений и т.д.
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(asd34 @ 02.07.13, 10:31)
в чем вредность?
Вредность в том, что не надо совершать лишних действий. Ваш код создает список, затем перебирает всю таблицу добавляя в список одно поле, это все равно что пожарить отдельно каждый кусочек картошки до готовности, а потом смешать их и до жарить пару секунд, результат вы получите правильный но время на сам процесс уйдет гораздо больше, согласитесь, что лучше сразу пожарить всю картошку. Посмотрите что написал Vofka, есть методы позволяющие работать оптимизировано и производительно.
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Местный
Сообщений: 170
Из: где-то под Киевом
Спасибо сказали: 65 раз
Рейтинг: 0
Т.е. выгружать все табличное поле в ТЗ всегда быстрее чем в цикле вставить значения одной колонки, даже если колонок очень много? Вот процедурка из типовой УПП:
// Процедура проверяет максимальное значение ключа связи. // Процедура ПроверитьМаксЗначениеКлюча(ПараметрыСвязиСтрокТЧ, ДокументОбъект, ИмяТЧ) Экспорт
Если ПараметрыСвязиСтрокТЧ[ИмяТЧ].СвободныйКлюч <> Неопределено Тогда Возврат; // «не занятый» ключ уже был определен ранее. КонецЕсли;
// При первом обращении «свободный» ключ необходимо рассчитать. Если ДокументОбъект[ИмяТЧ].Количество() = 0 Тогда ПараметрыСвязиСтрокТЧ[ИмяТЧ].СвободныйКлюч = 1; // отсчет начинается с нуля Иначе
// Если в табл. части уже присутствуют строки, то новое «свободное» значение ключа // рассчитывается от максимального существующего значения. СписокКлючей = Новый СписокЗначений; Для каждого ЭлКоллекции Из ДокументОбъект[ИмяТЧ] Цикл СписокКлючей.Добавить(ЭлКоллекции.КлючСвязи); КонецЦикла; СписокКлючей.СортироватьПоЗначению(НаправлениеСортировки.Убыв); ПараметрыСвязиСтрокТЧ[ИмяТЧ].СвободныйКлюч = СписокКлючей[0].Значение + 1;
Группа: Основатель
Сообщений: 13958
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7
logist, ну зачем же удалять? На то у нас и форум, что каждый может высказать свое мнение. Мне тоже не всегда нравятся советы, которые одни участники дают другим (независимо от группы пользователей). Но, на то у нас и форум, что каждый может высказать свое мнение и, если это не спам или не бред сивой кобылы, то удалению оно не подлежит. Кто-то привел код, который вам не нравится? Напишите про это ниже, укажите человеку почему его код, с вашей точки зрения, не айс, напишите свой вариант. Тем более я лично не проверял его код на практике и не замерял производительность. Возможно, код asd34-а в конкретных условиях (в реалиях ТС-а) будет работать даже быстрее чем мой код, откуда ж мы можем знать? А мы взяли и запилили его помощь. Нельзя же так.
asd34, приведите ещё раз свой код. Как я писал выше, каждый имеет право высказать свое мнение.
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Vofka, я посчитал, что в данном конкретном случае это вредный совет. Если ТЧ будет содержать много (или очень много) строк, то копирование таблицы произойдет быстрее чем ее построчный перебор (не надо требовать замеры, думаю это должно быть и так понятно). Если не прав, ну значит не прав, в следующий раз не буду так реагировать, хотя останусь тут при своем мнении. Насчет типовых процедур УПП, там можно встретить процедуры которые написаны миллион лет назад, и на их оптимизацию никто не обращает внимания, потому,что работает (по принципу: работает - не трогай), просто не попался еще прецедент для возникновения необходимости оптимизации.
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Основатель
Сообщений: 13958
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7
Цитата(logist @ 02.07.13, 11:31)
Vofka, я посчитал, что в данном конкретном случае это вредный совет.
Тем не менее, это не повод удалять чужой пост.
Цитата(logist @ 02.07.13, 11:31)
Если ТЧ будет содержать много (или очень много) строк, то копирование таблицы произойдет быстрее чем ее построчный перебор (не надо требовать замеры, думаю это должно быть и так понятно).
Нет, непонятно. И вообще, на слово я не верю, в конкретно этом вопросе. Никому. Я даже сам не возьмусь утверждать что-то. Единственныая группа людей, мнению которых я доверил бы больше остальных, в конкретно этом вопросе - это разработчики платформы. И, помнится мне, как-то была тема, где как раз у нас с вами зашел спор о производительности какого-то кода. Так вот, насколько я помню, я лично провел замеры и предоставил цифры, где было видно, что неоптимальный, с вашей точки зрения, код работает не хуже оптимального, опять таки, с вашей точки зрения.
Цитата(logist @ 02.07.13, 11:31)
Если не прав, ну значит не прав, в следующий раз не буду так реагировать, хотя останусь тут при своем мнении.
У каждого свое мнение. И я ещё раз скажу, что у нас же тут форум, а не блог одного автора, поэтому каждый имеет право высказать конкретно свое мнение. Если вы с кем-то не согласны - напишите об этом и каждый сделает, как это не странно, свои выводы в поддержку вашего мнения либо мнения кого-то другого. Я лично тоже, иногда, не согласен с вашим мнением. Но максимум что я сделаю - так это напишу о своем несогласиии и выражу свое мнение по данному вопросу. И не смотря на то, что наши мнения расходятся - это не повод оставлять лишь одно из них. В общем, можно сказать, что у нас на форуме демократия и свобода слова .
Цитата(logist @ 02.07.13, 11:31)
просто не попался еще прецедент для возникновения необходимости оптимизации.
Прецедент может никогда в жизни не попасться, поэтому даже повода не будет задумываться об оптимизации. И да, может быть, определенный код можно было бы написать оптимальнее, но на самом деле разница в работе оптимального и не оптимального кода будет такая, что ней можно пренебречь.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!