Имя: Пароль:
1C
1С v8
Метод Найти для Массива
,
0 Тоненький Клиент
 
30.11.12
21:16
Такой вот вопрос.
Делаю массив

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|    УстановкаЦенНоменклатуры.Дата КАК Дата
|ИЗ
|    Документ.УстановкаЦенНоменклатуры КАК УстановкаЦенНоменклатуры";
Выборка = Запрос.Выполнить().Выгрузить();
М = Новый Массив;
Для каждого строка из Выборка цикл
ДатаД = Строка.Дата;
   М.Добавить(ДатаД);
КонецЦикла;

Дальше получаю другим запросом даты документов и пытаюсь использовать условие

Если М.Найти(Докум.Дата) = Ложь
Тогда
///
Иначе
///
Конецесли

Так вот, дойдя до условия, обход сразу переходит к иначе, независимо, ставлю ли я Истина или Ложь.

Что делаю не так, подскажите! Спасибо.
1 zulu_mix
 
30.11.12
21:17
не надо так делать
2 zulu_mix
 
30.11.12
21:18
надо во втором запросе ГДЕ Докум.Дата В (тут первый запрос)
3 а кому щас легко
 
30.11.12
21:19
В массиве М у тебя дата это строка (ДатаД = Строка.Дата), а в документе это дата. Типы не совпадают.
4 Тоненький Клиент
 
30.11.12
21:20
(2) ок, спасибо, потом переделаю
всё-таки вопрос по методу Найти() - почему он здесь [у меня] не срабатывает?
5 а кому щас легко
 
30.11.12
21:20
(3) хотя вру, найти возвращает Неопределено если не находит кажись
6 МишКа
 
30.11.12
21:21
При работе с неопределенными значениями отключается логический закон исключенного третьего.
7 echo77
 
30.11.12
21:23
(5) так и есть.
(0) Из таблицы значений надо колонку выгружать - будет массив, а не по одному в цикле добавлять
8 Тоненький Клиент
 
30.11.12
21:24
(7) тогда найти() сработает?
9 Тоненький Клиент
 
30.11.12
21:41
(7), (8) не срабатывает

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|    УстановкаЦенНоменклатуры.Дата КАК Дата
|ИЗ
|    Документ.УстановкаЦенНоменклатуры КАК УстановкаЦенНоменклатуры";
РезультатЗапроса2 = Запрос.Выполнить().Выгрузить();
М = Новый Массив;
М = РезультатЗапроса2.ВыгрузитьКолонку("Дата");
10 Тоненький Клиент
 
30.11.12
21:43
Докум = РезультатЗапроса.ДокументУстановки.ПолучитьОбъект();
   Если М.Найти(Докум.Дата) = Истина
///

...

что Истина, что Ложь, что Неопределено - сразу переходит к Иначе
11 acsent
 
30.11.12
21:50
Найти - это число или неопределено
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.