Вопрос: Индексированная Таблица значений
Вопрос такой, можно ли сделать Таблицу Значений на форме диалога индексированной и далее работать с ней, как с индексированной таблицей?
Или лучше работать отдельно с ИТЗ а потом итоги выгружать в видимую на форме Таблицу значений?
И второй вопрос, как сделать так, чтобы при выгрузке ИТЗ в Таблицу значений, не слетал формат колонок?
ПыСы -компонента 1с ++ стоит, если чо.
Ответ: () после кулдауна натахауза пряника нигде не достать, если это конечно не просто сабж из анекдота
Вопрос: Работа с таблицей значений
Доброго Вам дня, уважаемые программисты. Прошу помощи в решении задачи в 1С, сама, извините, в этом не бум-бум
Пыталась сделать сама, но даже не хватило ума скомпилировать пример
1. В форму диалога поместите таблицу значений.
2. В модуле формы опишите колонки таблицы: Товар, Количество, Цена, Сумма.
3. Поместите на форму диалога реквизиты диалога "Товар", "Цена", "Коли¬чество" и кнопку Добавить строку, которая добавляет новую строку в таблицу значений и заполняет ее значениями соответствующих реквизи¬тов. Сумма должна вычисляться как произведение цены на количество.
4. Добавьте кнопку Удалить строку, которая удаляет текущую строку таб¬лицы значений. Предусмотрите ситуацию пустой таблицы значений.
5. Добавьте кнопку Свернуть, которая должна суммировать по товарам сумму и количество, в колонке Цена должна вычисляться средняя цена товара.
6. Добавьте кнопку Развернуть, которая восстанавливает состояние табли¬цы значений до свертки.
7. Добавьте кнопку Сортировка для упорядочивания строк по товарам.
Заранее спасибо!
Ответ:
платформа? Управляемый или обычный режим?
В синт.поме "Таблица значений"
Вопрос: 8.2 - Получить данные из вычисляемого поля таблицы значений
Не знаю как толком объяснить.
На форме есть табличное поле. В процедуре ПриПолученииДанных(Элемент, ОформленияСтрок) в отдельную
колонку вычисляю значение:
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл.... ОформлениеСтроки.Ячейки.Отгружено.Значение = Тут формула.... КонецЦикла
Так вот как мне пройти по строкам в таблице значений и получить данные из этой ячейки?
Ответ:
ты путаешь понятия. табличное поле и есть табличное поле -ТЗ тут не пахнет. так же как и рассчитываешь та же и обходи
Вопрос: СКД: Иерархию из таблицы значений
Здравствуйте!
Подскажите как создать иерархию из таблицы значений типа такой
ПолеСтрока | ПолеСтрокаРодитель
________________________________
Основной каталог | Основной каталог
Васильев И.А. | Основной каталог
Аренда имущества | Васильев
Разные документы | Васильев
Иванов | Основной каталог
Аренда имущества | Иванов
Разные документы | Иванов
Нужно как-то получить дерево из этого. Пока работает программно, но думаю, что такое дерево можно вполне в скд построить.
Ответ: Ну программно ты создаешь объект ДеревоЗначений и тулишь туда ручками владельца (узлы) и подчиненные элементы (строки).
А эти данные только в виде таблицы значений, а ен элементы иерархического справочника? Если это иерархический справочник, то это проще простого.
А если надо именно из таблицы значений, создавая ее как угодно, то делать так:
Определяешь в запросе временную таблицу, куда помещаешь свою ТЗ.
Потом делаешь выборку по ней с соединением строки с родителем.
Вопрос: Вынос Таблицы значений в общий модуль
Добрый день!
Новичок в 1С. Изучаю версию 3.0 Тонкий клиент. Есть внешняя управляемая форма. Хочу вынести таблицу значений в общие модули. Застопорилась, помогите пожалуйста:
1C | ||
|
Общий модуль:
Ошибка:{Форма.Форма.Форма(23)}: Ошибка при вызове метода контекста (ЗаполнитьТаблицуФормы)
ОбщиеФункции.ЗаполнитьТаблицуФормы(Тз)
по причине:
Несоответствие типов (параметр номер "1") (Неверный тип параметра. Допустимы только примитивные типы, ссылки, Структура)
Как передать ТЗ для дальнейшей обработки?
Ответ:
Сообщение от Prsvet
Почему тип число передает, а при передачи ТЗ нужно ставить повторное использование возвращаемых значений не использовать?
Потому что,
Сообщение от Prsvet
повторное использование возвращаемых значений
Кэшируется на клиенте, а таблица значений не сериализуется на клиенте
Добавлено через 32 секунды
с этим параметром нужно работать аккуратно!
Добавлено через 35 секунд
Prsvet
, если ты не знаешь как работает этот параметр, то лучше не используй его!
Вопрос: Таблица значений с циклическим заполнением колонок
Ответ:
Вопрос: Как не зная структуры таблицы значений обработать ее в Запросе
Ответ:
Вопрос: Как при выборе значения ячейки таблицы значений на УФ делать отбор по владельцу?
Уважаемые коллеги! Не так давно жизнь вынудила меня столкнуться с управляемыми формами, потому я в них еще не сильно понимаю. Не сочтите вопрос дурацким и помогите кто чем может:) Вопрос следующий. Формирую свою таблицу значений и вывожу ее на форму. Первая колонка - ссылка на справочник номенклатуры, остальные колонки - ссылки на справочник для которого Номенклатура является Владельцем. Как мне сделать так, что бы при начале выбора значения в такой колонке в списке значений уже стоял отбор по владельцу. Пока сделал через событие НачалоВыбора, там открываю список с нужным отбором. Но проблема не понимаю куда полученное значение пихать в обработке подбора? И есть подозрение, что отбор по владельцу можно установить через свойство колонки ПараметрыВыбора. Как быть? Подскажите!
Ответ: и вот у меня есть
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если
ИсточникВыбора.ИмяФормы = "Справочник.ЗначенияСвойствОбъектов.Форма.ФормаСписка" Тогда
И вот ту я не заню что написать
, что бы поместить ВыбранноеЗначение в редактируемую ячейку таблицы!!!
КонецЕсли;
КонецПроцедуры
Вопрос: Группировки и Свернуть() по таблице значений
внимательно, это 7 .7 :)
Итак сабж: выгружаю ТЧ документа в таблицу значений.
ТЧ документа имеет вид
Расх.накл. | Клиент | адрес доставки.
Обрабатываю таблицу значений:
выбратьСтроки();
пока
получитьСтроку() = 1
Цикл
тбл.НоваяСтрока();
тбл.Клиент = Клиент;
тбл.АдресДоставки = АдресДоставки;
тбл.НомерДок = Накладная.НомерДок;
КонецЦикла
;
Суть в следующем. В макете при печать должно в одной ячейке выходить Клиент, АдресДоставки и номера всех расходных накладных по клиенту, а так же может быть один клиент, но разные адреса доставки. То есть, в случае совпадения Клиента и Адреса, выводить список накладных по этим параметрам.
Ответ:
() Используй черный запрос про документам. Группировки: Клиент, Адрес доставки, Реализация (Упорядочивание по номеру). Циклы используешь с учетом группировок. В исходную таблицу выводи строки во второй группировке (Адрес доставки), но после цикла по третьей группировке (Реализация), потому что во второй группировке будешь формировать строку с номерами накладных.
НомераНакладных = "";
Пока Запрос.Группировка(3
) = 1
Цикл
НомераНакладных = НомераНакладных + ?(ПустаяСтрока
(НомераНакладных) = 1
, "", ", ") + Запрос.ЗначениеУпорядочивания((СтрокаТаблицы.Данные,ДлинаСтроки)=ЧтоИщем Тогда
МассивНайденныхСтрок.Добавить(СтрокаТаблицы);
КонецЕсли
;
КонецЦикла
;
Vandalsvq 1114 08.11.14 17:00 Сейчас в теме
() CheBurator, группировка условий есть, в версии 5+. Но она только на 1С++ - http://www.1cpp.ru/forum/YaBB.pl?num=1273512019 .
Были планы сделать условное оформление, а также группировку, но увы. Причина тому одна - я не занимаюсь 7-кой на коммерческой основе и поэтому не дорабатываю эти инструменты. Тестировать даже элементарно не на чем. Раньше и sql-ные базы были и файловые и разных конфигураций навалом. Сейчас вроде как только одна на которой была разработка и ту открывал очень давно.
А вообще вот последние изменения:
5.0.1 от 15.04.12 г.
- Изменена система отборов в динамических расширениях (Справочник, Документ, Журнал, Регистр, Операции, Проводки). Добавлена возможность произвольного построения условий с иерархией.
- В связи с изменением системы отборов внесены изменения в объекты-расширения «ПоставщикДанных.Журнал», «ПоставщикДанных.Проводки» «ПоставщикДанных.Документы», «ПоставщикДанных.Справочник», «ПоставщикДанных.Операции», «ПоставщикДанных.Регистр».
- Исправлено поведение кнопки «Отбор по текущей колонке». При нажатии не отключаются остальные отборы. Также если отбор включен, то он выключается.
- При активизации колонки изменяется отображение кнопки «Отбор по текущей колонке».
- Оптимизировано построение условия отборов по реквизитам.
- Исправлена ошибка потери текущей строки при изменении иерархического просмотра у объекта-расширения «ПоставщикДанных.Справочник».
- Отключено использование параметра «ВыводитьПиктограммуОтбора». Параметр оставлен для обратной совместимости.
- Объект «ПоставщикДанных.ОписаниеТипов» и «ПоставщикДанных.ВидыСравнения» выведены из состава поставщика данных. Вместо них используются общие объекты «ОписаниеТипов» и «ВидыСравнения» соответственно. Подробнее см. документацию по классам «Объекты_v8».
- Исправлено падение 1С при изменении типа значения объекта «ПоставщикДанных».
5.0.2 от 24.04.12 г.
- Исправлена ошибка при укладке списков со строковыми значениями для отбора.
- Исправлена ошибка формирования запроса для объекта-расширения «ПоставщикДанных.Регистр» если у регистра стоит признак «Быстрая обработка движений»
- Исправлены выявленные ошибки.
5.0.3 от 22.05.13 г.
- Объект «ПоставщикДанных.ПрямойЗапрос» обновлен до версии 1.8.6 от 22.05.13 г.
- все классы собраны вместе в один архив + примеры
5.0.4 от 25.10.13 г.
- Исправлены выявленные ошибки
5.0.5 от 23.05.14 г.
- Исправлены выявленные ошибки при добавлении колонок данных
- Добавлена возможность построения древовидных структуры в доступных полях при добавлении колонок данных (фактически теперь можно объект "Отбор" использовать для построения отборов вроде СКД в 8-ке, но напильник must have)
или
Зачем разработчику 1С «индексировать» измерения регистров и реквизиты?
— Ну у вас и запросы! — сказала база данных и повисла…
Краткий ответ на вопрос заголовка заключается в том, что это позволит выполнять запросы быстро и уменьшать негативное влияние блокировок на .
Что такое индекс?
Оптимизация размещения индексов
При объеме таблиц не позволяющем им «разместиться» в оперативной памяти сервера, на первое место выходит скорость дисковой подсистемы (I/O). И здесь можно обратить внимание возможность размещать индексы в отдельных файлах расположенных на разных жестких дисках .
Подробное описание действий http
://technet
.microsoft
.com
/ru
-ru
/library
/ms
175905.aspx
Использование индекса из другой файловой группы повышает производительность некластерных индексов в связи с параллельностью выполнения процессов ввода/вывода и работы с самим индексом.
Для определения размеров можно использовать выше упомянутую обработку.
Влияние индексов на блокировки
Отсутствие необходимого индекса для запроса означает перебор всех записей таблицы, что в свою очередь приводит к избыточным блокировкам, т.е. блокируются лишние записи. Кроме того, чем дольше выполняется запрос из-за отсутствующих индексов, тем больше время удержания блокировок.
Другая причина блокировок — малое количество записей в таблицах. В связи с этим SQL Server, при выборе плана выполнения запроса, не использует индексы, а обходит всю таблицу(Table Scan), блокируя целиком. Для того, чтобы избежать подобных блокировок, необходимо увеличить количество записей в таблицах до 1500-2000. В этом случае сканирование таблицы становится долее дорогостоящей операцией и SQL Server начинает использовать индексы. Конечно это можно сделать не всегда, ряд справочников как «Организации», «Склады», «Подразделения» и т.п. обычно имеют мало записей. В этих случаях индексирование не будет улучшать работу.
Эффективность индексов
Мы уже отметили в заголовке статьи, что нас интересуют влияние индексов на быстродействие запросов. Итак, индексы наиболее подходят для задач следующего типа:
- Запросы, которые указывают «узкие» критерии поиска. Такие запросы должны считывать лишь небольшое число строк, отвечающих определенным критериям.
- Запросы, которые указывают диапазон значений. Эти запросы также должны считывать небольшое количество строк.
- Поиск, который используется в операциях связывания. Колонки, которые часто используются как ключи связывания, прекрасно подходят для индексов.
- Поиск, при котором данные считываются в определенном порядке. Если результирующий набор данных должен быть отсортирован в порядке кластеризованного индекса, то сортировка не нужна, поскольку результирующий набор данных уже заранее отсортирован. Например, если кластеризованный индекс создан по колонкам lastname (фамилия), firstname (имя), а для приложения требуется сортировка по фамилии и затем по имени, то здесь нет необходимости добавлять инструкцию ORDER BY.
Правда при всей полезности индексов, есть одно очень важное НО – индекс должен быть «эффективно используемым» и должен позволять находить данные с использованием меньшего числа операций ввода-вывода и объема системных ресурсов. И наоборот, неиспользуемые (редко используемые) индексы скорее ухудшают скорость записи данных (поскольку каждая операция, изменяющая данные, должна также обновлять страницы индексов) и создают избыточный объем базы.
Покрывающим (для данного запроса), называется индекс в котором есть все необходимые поля для этого запроса. Например, если индекс создан по колонкам a, b и c, а оператор SELECT запрашивает данные только из этих колонок, то требуется доступ только к индексу.
Для того, что бы определить эффективность индекса, мы можем приблизительно оценить с помощью бесплатного онлайн-сервиса показывающий «план исполнения запроса» и используемые индексы.
Грамотное использование индексов может ускорить запросы не просто в разы, а в сотни, иногда даже в тысячи раз.
Такого ускорения просто невозможно добиться аппаратными средствами. Поэтому данной теме необходимо уделить пристальное внимание.
Зачастую, для того чтобы ускорить запрос, необходимо создать свой собственный индекс, и сделать это можно несколькими различными способами.
В видеоуроках мы рассмотрим несколько способов создания индекса. Также рассмотрим ситуацию когда индекс необходимого состава невозможно создать штатными средствами платформы и его придется создавать в СУБД .
Настройка индексов штатными средствами платформы
В уроке показано, какие индексы реально создаются для объектов на уровне СУБД.
В этой теме не все так очевидно, как может показаться на первый взгляд. Ведь для ряда объектов есть особенности создания индексов.
Все нюансы рассмотрим в данном видео.
Индексация с дополнительным упорядочиванием
В видео показано отличие варианта построения индекса Индексировать
от Индексировать с доп. упорядочиванием
.
На примере показано, какой будет построен индекс платформой при использовании дополнительного упорядочивания.
Создание индекса для измерений регистров
Индексация первого измерения регистров имеет несколько нюансов.
В видео показано, какие индексы создаются для измерений регистров. Также рассмотрена ситуация индексации первого измерения регистра.