Имя: Пароль:
1C
1С v8
ТаблицаЗначений
0 Начинающий_13
 
12.07.13
12:30
Здравствуйте
Имею таблицу значений вида  

ОсновнаяТЗ = Запрос.Выполнить().Выгрузить();

Колонки:

КлючСвязи   // Здесь пока нет ничего
Код
Сотрудник
Подразделение
Отдел
Должность
ГрафикРаботы
ВидРасчета
Параметр

Требуется расставить КлючСвязи, чтобы он был уникален по Код,Сотрудник,Подраздедление,Отдел,Должность, ГрафикРаботы.
Как это сделать оптимально?
1 МихаилМ
 
12.07.13
12:31
какие критерии отимальности?
2 Cube
 
12.07.13
12:32
(0) В запросе эти поля в итоги и обходить выборку запроса по группировкам, проставляя КлючСвязи.
3 Начинающий_13
 
12.07.13
12:32
что бы быстро работал
4 Alex S D
 
12.07.13
12:33
(2) а в запросе это сделать незя сразу?
5 Начинающий_13
 
12.07.13
12:34
(2) Там запрос и так достаточно навороченный пока не смогу надо осмыслить принцин расстаовки
6 Cube
 
12.07.13
12:35
(4) Сгенерить таблицу ключей, собрать таблицу итогов, проставить ключи, выбрать детальные записи... Ну чо, можно, конечно, только гемор это всё.
7 ДенисЧ
 
12.07.13
12:35
Например Код + Сотрудник.Код + Подраздедление.КОд + Отдел.Код + Должность.Код + ГрафикРаботы.Код.
8 Cube
 
12.07.13
12:36
(7) Расстрелять!))
9 ДенисЧ
 
12.07.13
12:36
(8) Почему? Уникально? Да.
10 Начинающий_13
 
12.07.13
12:36
Мне вообще результат запроса требуется загрузитьв 3 таблицы 2 из которых Подчиненные я это сдлелал но слишком мудрено.
11 Cube
 
12.07.13
12:37
(9) Ещё бы по наименованию уникальность искал...
12 Начинающий_13
 
12.07.13
12:37
(9) Потому что сотрудник может работать где угодно и по любому графику
13 OnCheck
 
12.07.13
12:38
А поиск в ТЗ по нескольким полям чем не устраивает?
14 ДенисЧ
 
12.07.13
12:38
(12) в условии ничего об этом не сказано
15 skiller3000
 
12.07.13
12:39
(7) я также в запросе делаю (через выбор когда), правда стараюсь подбирать побольше полей на каждую ссылку, чтобы уникальность сохранялась. сделал кучу отчетов по такой схеме и пока уникальность сохраняется.
16 acsent
 
12.07.13
12:40
это же не 7, тут поиск по нескольким полям возможен
17 Начинающий_13
 
12.07.13
12:40
Если можно дайте варианты как это можно сделать код меня не интересует. Можно и циклом если будте код небольшим(а то у меня слешком )
18 Начинающий_13
 
12.07.13
12:41
(16) Я понял
19 acsent
 
12.07.13
12:41
можно сделать как в раузе. Отдельный справочник: Ключи аналитики
20 Начинающий_13
 
12.07.13
12:41
(15) Хорошо
21 OnCheck
 
12.07.13
12:42
ТаблицаЗначений.НайтиСтроки (ValueTable.FindRows)
ТаблицаЗначений (ValueTable)
НайтиСтроки (FindRows)
Синтаксис:

НайтиСтроки(<ПараметрыОтбора>)
Параметры:

<ПараметрыОтбора> (обязательный)

Тип: Структура.
Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры - искомое значение.
Возвращаемое значение:

Тип: Массив.
Массив строк таблицы значений, соответствующих условиям поиска.
Замечание! Массив хранит ссылки на строки таблицы значений, то есть при изменении строки в таблице, значение в массиве тоже будет измененным.
Описание:

Осуществляет поиск строк таблицы значений, отвечающих заданным условиям поиска.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Метод эффективно использовать для выборки неуникальных значений.
Пример:

// СписокРаботников - реквизит формы для представления информации
// о работниках (тип ТаблицаЗначений).
// В форме расположено табличное поле СписокРаботников, в котором
// показываются данные СписокРаботников.
// С помощью запроса выбирается информация о работниках.
Запрос = Новый Запрос;
ТекстЗапроса =
   "ВЫБРАТЬ
   // текст запроса
   // ...
   ";
Запрос.Текст = ТекстЗапроса;
СписокРаботников = Запрос.Выполнить().Выгрузить();
Отбор = Новый Структура();
Отбор.Вставить("ФизЛицо",Справочники.ФизическиеЛица.ПустаяСсылка());
Строки = СписокРаботников.НайтиСтроки(Отбор);
Если Строки.Количество() > 0 Тогда
   ЭлементыФормы.СписокРаботников.ТекущаяСтрока = Строки[0];
КонецЕсли;
22 Cube
 
12.07.13
12:42
(17) См (2)
23 Начинающий_13
 
12.07.13
12:44
(21) Хорошо попробую
24 Начинающий_13
 
12.07.13
12:45
СПАСИБО что дали много мыслей Буду оптимизировать
25 Cube
 
12.07.13
12:46
Можно просто отсортировать результат из (0) по этим полям, а потом пробежаться циклом...
26 OnCheck
 
12.07.13
12:47
(25) зачем тетросипед изобретать?
27 Cube
 
12.07.13
12:52
(26) А что, через НайтиСтроки лучше? Он же не знает, какие комбинации у него там есть...
28 OnCheck
 
12.07.13
12:56
Что значит не знает какие комбинации есть? Он же знает по какому набору полей нужно выполнить поиск?
29 Cube
 
12.07.13
12:57
(28) "Он же знает"
Откеда? Без разбора результата запроса он этого не узнает...
30 OnCheck
 
12.07.13
13:18
"Требуется расставить КлючСвязи, чтобы он был уникален по Код,Сотрудник,Подраздедление,Отдел,Должность, ГрафикРаботы"

Вот же чотко понятно по каким полям искать, почему например по полю ГрафикРаботы искать не надо?
31 Cube
 
12.07.13
13:20
(30) Сделай простой пример и всё поймешь. Долго объяснять :)
32 OnCheck
 
12.07.13
13:25
(31) чет я сегодня себя дурак чувствую. Пятница?
33 Cube
 
12.07.13
13:26
(32) Наверное :))))
2 + 2 = 3.9999999999999999999999999999999...