Имя: Пароль:
1C
1С v8
Список значений в метод НайтиСтроки
0 Janna26
 
09.07.12
10:01
Можно ли передать список значений в метод найти строки у таблицы значений?
Вопрос возник по тому что, когда я передаю просто одно значение отбор срабатывает отлично, а когда списком то массив получается пустой.
1 prosto-nik
 
09.07.12
10:03
в НайтиСтроки Отбор = Структура, вид сравнение только на равенство, поэтому на (0) ответ - нет, к сожалению
2 izekia
 
09.07.12
10:03
пример кода?
3 prosto-nik
 
09.07.12
10:04
(0) только ТЗ в запрос и там уже отбор по списку делайте
4 Serg_1960
 
09.07.12
10:11
(0) Нет, нельзя. В цикле по списку значений можно :(
5 Janna26
 
09.07.12
10:51
= Новый СписокЗначений;
   
   для каждого стр из ЭлементыФормы.ОрганизацияФорма.Значение цикл
   Список.Добавить(стр.Значение.Наименование);
   КонецЦикла;
   
 Структура = Новый Структура("Фирма",Список);
 Таблица =  Таблица.НайтиСтроки(Структура);
 Для каждого СтрокиМассива из Таблица цикл
 СтрокаТаблица = Реализации.Добавить();
 СтрокаТаблица.Дата = СтрокиМассива.Дата;
 СтрокаТаблица.Док82 = СтрокиМассива.Док82;
 СтрокаТаблица.Загружать = СтрокиМассива.Загружать;
 СтрокаТаблица.Контрагент = СтрокиМассива.Контрагент;
 СтрокаТаблица.Номер = СтрокиМассива.Номер;
 СтрокаТаблица.Склад = СтрокиМассива.Склад;
 СтрокаТаблица.Фирма = СтрокиМассива.Фирма;
 КонецЦикла;
6 Defender aka LINN
 
09.07.12
10:57
(5) ППЦ
7 H A D G E H O G s
 
09.07.12
11:04
(4) Как насчет заняться экономикой, психологией, педагогикой иль домоводством и прочими интересными и увлекательными вещами, которые человечество придумало, чтобы занимать свободное время женщин, дабы им скучно не было и они не лезли в технические отрасли?

p.s. Внимание. Этот пост пропитан шовинизмом over 9000.
8 prosto-nik
 
09.07.12
11:10
(5) а счас модно создавать тему и в нее что то периодически писать, не читая ответов на свои якобы вопросы, да? )))
9 H A D G E H O G s
 
09.07.12
11:14
(7) -> (5), извини Serg_1960
10 prosto-nik
 
09.07.12
11:19
(9) похоже она Вас послушалась)
11 Janna26
 
09.07.12
11:19
(8) Это ответ на (2).
12 palpetrovich
 
09.07.12
11:19
(0 ) присмотрись в СП к методу Заполнить, может поможет ;)

офтопик: Народ, а что это за серая строка вверху страницы? народ должен знать своих героев? ;)
13 Janna26
 
09.07.12
11:20
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст="ВЫБРАТЬ
             |*
             |ПОМЕСТИТЬ ТаблицаДляЗагрузки
             |ИЗ
             |    &Таб КАК Таблица
             |ГДЕ
             |    Таблица.Фирма В(&Список)
             |;
             |
             |////////////////////////////////////////////////////////////////////////////////
             |ВЫБРАТЬ
             |    *
             |ИЗ
             |    ТаблицаДляЗагрузки КАК ТаблицаДляЗагрузки";
Запрос.УстановитьПараметр("Таб",Таблица);
Запрос.УстановитьПараметр("Список",Список);
Запрос.Выполнить();
ТзПередано=Запрос.Выполнить().Выгрузить();
Реализации.Загрузить(ТзПередано);
14 sapphire
 
09.07.12
11:20
(5) Запросом проще. ИМХО
15 Janna26
 
09.07.12
11:20
Только теперь проблема. Не знаю почему.
16 Janna26
 
09.07.12
11:21
Ошибка временная таблица уже существует.
17 sapphire
 
09.07.12
11:21
(15) Какая проблема?
18 Janna26
 
09.07.12
11:21
{Форма.Форма.Форма(125)}: Ошибка при вызове метода контекста (Выполнить)
ТзПередано=Запрос.Выполнить().Выгрузить();
по причине:

по причине:
{(3, 11)}: Временная таблица уже существует "ТаблицаДляЗагрузки"
ПОМЕСТИТЬ <<?>>ТаблицаДляЗагрузки
19 Janna26
 
09.07.12
11:22
я вот думаю наверное зря использовала "*"
20 sapphire
 
09.07.12
11:22
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст="ВЫБРАТЬ
             |*
             |ПОМЕСТИТЬ ТаблицаДляЗагрузки
             |ИЗ
             |    &Таб КАК Таблица
             |ГДЕ
             |    Таблица.Фирма В(&Список)
             |;
             |
             |////////////////////////////////////////////////////////////////////////////////

             |ВЫБРАТЬ
             |    *
             |ИЗ
             |    ТаблицаДляЗагрузки КАК ТаблицаДляЗагрузки";
Запрос.УстановитьПараметр("Таб",Таблица);
Запрос.УстановитьПараметр("Список",Список);
ТзПередано=Запрос.Выполнить().Выгрузить();
Реализации.Загрузить(ТзПередано);
21 Reset
 
09.07.12
11:23
Два раза выполнила зря
Запрос.Выполнить();
ТзПередано=Запрос.Выполнить().Выгрузить();

И менеджер вр таблиц не нужен
22 sapphire
 
09.07.12
11:23
(19) Посмотри внимательно на свой текст запроса и код ниже - ты выполняешь один и тот же запрос дважды.
1) Запрос.Выполнить();
2) ТзПередано=Запрос.Выполнить().Выгрузить();
23 sapphire
 
09.07.12
11:23
(21) ;)
24 Janna26
 
09.07.12
11:25
МенеджерВременныхТаблиц (TempTablesManager)
МенеджерВременныхТаблиц (TempTablesManager)
Методы:

Закрыть (Close)

Конструкторы:

По умолчанию

Описание:

Предназначен для хранения временных таблиц. При уничтожении или закрытии объекта временные таблицы, находящиеся в нем, удаляются.
Если временная таблица создается, используется и уничтожается в рамках одного пакета запросов, менеджер временных таблиц создавать не нужно.

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

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

МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;

Запрос.Выполнить();
Запрос.Текст="ВЫБРАТЬ * из ВременнаяОсновная";
ТзПередано=Запрос.Выполнить().Выгрузить();


См. также:

Запрос, свойство МенеджерВременныхТаблиц
не поверите копипастила :)
25 prosto-nik
 
09.07.12
11:27
но тебе Менеджер не нужен убери его
26 sapphire
 
09.07.12
11:28
(24) Это ты к чему запостила?
27 sapphire
 
09.07.12
11:29
(24) ты посты (21)(22) читала?
28 prosto-nik
 
09.07.12
11:30
(26) она и отмазывается мол косяки не мои тупо копировала)
29 sapphire
 
09.07.12
11:30
(28) ага, и мопед не её :)
30 prosto-nik
 
09.07.12
11:30
типа того)
31 Janna26
 
09.07.12
11:32
Запрос = Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
            |    Таблица.Дата,
            |    Таблица.Контрагент,
            |    Таблица.Номер,
            |    Таблица.Склад,
            |    Таблица.Фирма,
            |    Таблица.Док82,
            |    Таблица.Загружать
            |ПОМЕСТИТЬ ТаблицаДляЗагрузки
            |ИЗ
            |    &Таб КАК Таблица
            |ГДЕ
            |    Таблица.Фирма В(&Список)
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ
            |    ТаблицаДляЗагрузки.Дата,
            |    ТаблицаДляЗагрузки.Контрагент,
            |    ТаблицаДляЗагрузки.Номер,
            |    ТаблицаДляЗагрузки.Склад,
            |    ТаблицаДляЗагрузки.Фирма,
            |    ТаблицаДляЗагрузки.Док82,
            |    ТаблицаДляЗагрузки.Загружать
            |ИЗ
            |    ТаблицаДляЗагрузки КАК ТаблицаДляЗагрузки";
Запрос.УстановитьПараметр("Таб",Таблица);
Запрос.УстановитьПараметр("Список",Список);
ТзПередано=Запрос.Выполнить().Выгрузить();
Реализации.Загрузить(ТзПередано);


Вот так сработало. Спасибо!
32 Janna26
 
09.07.12
11:33
А еще если не трудно гляньте тему
v8: Поле HTML документа
33 sapphire
 
09.07.12
11:34
(31) И чем это отличается от (20)?
34 prosto-nik
 
09.07.12
11:36
(33) убрала не нужный хлам(Менеджеров разных, двойное выполнение)
35 prosto-nik
 
09.07.12
11:45
(32) не доводилось работать с таким(((