Имя: Пароль:
1C
 
НЕ пустая ссылка в Массив!
0 Vanechka
 
10.06.11
09:57
Доброго всем утра! Небольшой вопрос - можно ли передать в массив НЕ Пустую ссылку, чтобы устанавливался отбора в ТЗ не по пустым ссылкам по определенному полю???
1 Vanechka
 
10.06.11
09:58
Ну вернее не в массив, а в структура отбора???
2 abitfrosty
 
10.06.11
09:59
Да
3 Vanechka
 
10.06.11
10:01
как?))))
4 73
 
10.06.11
10:05
А где отбор в ТЗ?
5 Vanechka
 
10.06.11
10:13
Структура = Новый Структура;
Структура.Вставить("Контрагент", <<Предполагается что тут должен стоять отбор на то, чтобы в ТЗ по контрагенту, если есть не пустые ссылка, то отбирались именно строки не с пустыми ссылками>>);

Массив = ТЗ.НайтиСтроки(Структура);

В ТЗ есть колонка "контрагент" туда пишутся или не пишутся контрагенты, нужно отобрать все строки с непустыми контрагентами
6 73
 
10.06.11
10:14
(5) А что дальше с ними делать предполагается?
7 abitfrosty
 
10.06.11
10:16
Выгрузи эту колонку, сверни и удали пустые.
8 Alpen906
 
10.06.11
10:18
Запрос
9 73
 
10.06.11
10:20
(7) И что будет?

(8)+
2.Скопировать по отбору
3.Построитель

ЗЫ. Всё-таки надо бы узнать, что автору надо потом делать...
10 Vanechka
 
10.06.11
10:21
(6) в этой ТЗ есть еще одна колонка например "контрагент1", так вот в это ТЗ в колонку "контрагент" пишутся одни контрагенты, в колонку "Контрагент1" пишутся другие, и соответственно в строке где есть "контрагент" нет "контрагента1", но у них есть объединяющий реквизит - например "покупатель", который тоже пишется в этот ТЗ, так вот мне нужно сделать так, чтобы где есть "контрагент" и нет "контрагента1" он проставился!!!
11 Рэйв
 
10.06.11
10:23
(10)Перебор не предлагать?
12 73
 
10.06.11
10:23
(10)
Размер ТЗ?
Может и (11) подойдёт.
13 Alpen906
 
10.06.11
10:23
ИМХО перебором проще всего
14 ptiz
 
10.06.11
10:24
ТЗ  = ОтобратьСтрокиПоКритериям(ТЗИсходная, Новый Структура("Контрагент", Справочники.Контрагенты.ПустаяСсылка),
Новый Структура("Контрагент", ВидСравнения.НеРавно)).Выгрузить();


// Отбирает из переданной таблицы строки по заданным критериям.
//
// Параметры:
//  Источник - ТаблицаЗначений, РезультатЗапроса, ОбластьЯчеекТабличногоДокумента. Таблица-источник.
//  СтруктураКритериев - Структура. Названия отборов и значения, по которым нужно отобрать строки.
//  СтруктураСложныхКритериев - Структура. Если свойство передано, то значение содержит вид сравнения.
//
// Возвращаемое значение:
//  РезультатЗапроса - таблица с нужными строками.
//
Функция ОтобратьСтрокиПоКритериям(Источник, СтруктураКритериев, СтруктураСложныхКритериев = Неопределено) Экспорт

   Перем ВидСравненияСложный;

   Если СтруктураСложныхКритериев = Неопределено Тогда
       СтруктураСложныхКритериев = Новый Структура;
   КонецЕсли;

   ПостроительЗапроса = Новый ПостроительЗапроса;
   ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Источник);

   Для Каждого Критерий Из СтруктураКритериев Цикл
       НовыйОтбор = ПостроительЗапроса.Отбор.Добавить(Критерий.Ключ);

       СтруктураСложныхКритериев.Свойство(Критерий.Ключ, ВидСравненияСложный);

       Если ВидСравненияСложный = Неопределено Тогда
           НовыйОтбор.Установить(Критерий.Значение);
       Иначе
           НовыйОтбор.Использование = Истина;
           НовыйОтбор.ВидСравнения = ВидСравненияСложный;
           НовыйОтбор.Значение = Критерий.Значение;
       КонецЕсли;
   КонецЦикла;

   Возврат ПостроительЗапроса.Результат;

КонецФункции // ОтобратьСтрокиПоКритериям()
15 73
 
10.06.11
10:25
(12)+
Можно ещё предложить заполнять сразу при добавлении строк.
16 Vanechka
 
10.06.11
10:27
(11) Перебор не подойдет размер ТЗ будет с каждым днем все больше и больше)
(14) надо попробовать
17 Vanechka
 
10.06.11
10:28
(15) это не вариант ТЗ заполняют пять или шесть разных функций... очень много будет торможения
18 73
 
10.06.11
10:28
(16) А как ТЗ создаётся? Сразу заполнять нельзя?
19 73
 
10.06.11
10:33
(16) В (14) ты получишь не строки ТЗ, а результат запроса.
Лучше уж Скопировать по отбору в другую ТЗ. Имхо, быстрее.
Всё равно потом как-то строки связывать.

А так... Запрос, который всю задачу решает и ТЗ перетирать.
20 Vanechka
 
10.06.11
10:38
вообщем резюмируем - передать в структуру без дополнительных заморочек пустую ссылку нельзя...
21 Vanechka
 
10.06.11
10:38
вернее не пустую
22 73
 
10.06.11
10:40
(21) Ссылка всегда конктретна. Даже пустая.
23 Alpen906
 
10.06.11
10:40
(14) Код работает. Скопировал себе на будущее.
Спасибо.
24 73
 
10.06.11
10:40
(22)+ Но кроме НайтиСтроки есть и другие методы...
25 73
 
10.06.11
10:41
(23) Это из типовых, кстати...
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан