helpf.pro
Регистрация

v8: Перебор сравнение таблиц значений в цикле

LookUp
22.10.2013 09:25Прочитано: 6586
Помогите пожалуйста, глупость вроде, а я не могу решить... Опыта не хватает, поэтому на мелочах долго сижу... Я пытаюсь сравнивать две таблицы значений, одна таблица заполнена всеми ВидамиНоменклатуры, а другая висит на форме. Если в ТЗ на форме нет каких-то значений, то нужно взять их из ТЗ с ВидамиНоменклатуры. Помогите пожалуйста)
Yandex
Возможно, вас также заинтересует
Реклама на портале
LookUp
22.10.2013 09:26Ответ № 1
пытаюсь делать это так...
Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ
| ВидыНоменклатуры.Наименование Как НаименованиеВида
|ИЗ
| Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры" ;
Выборка = Запрос.Выполнить().Выгрузить();
Для Каждого СТР Из Выборка Цикл
Для Каждого СтрокаВидНом Из ТаблицаВидНом Цикл
Строка = ТаблицаВидНом.Найти(СТР.НаименованиеВида);
Если Строка = Неопределено Тогда
Сообщить("Нет такого вида");
КонецЕсли;
КонецЦикла;
КонецЦикла;
Изменено 22.10.13 09:29:12
LookUp
22.10.2013 09:36Ответ № 2
Никто не подскажет да?
Mokey
22.10.2013 10:24Ответ № 3
Перебором можно, а что не устраивает? Ошибку выдаёт?
Mokey
22.10.2013 10:25Ответ № 4
А можно запрос не делать, а сразу справочник перебирать выборкой
Mokey
22.10.2013 10:27Ответ № 5
А можно одним запросом выловить недостающие строки)))
LookUp
22.10.2013 10:37Ответ № 6
КАК????
Я вот так пытаюсь делать
Код 1C v 8.х
 
Таблица = ТаблицаВидНом;

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Таблица.ВидНоменклатуры
|ПОМЕСТИТЬ ТаблицаНаФорме
|ИЗ
| &Таблица КАК Таблица
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВидыНоменклатуры.Наименование КАК Наименование,
| ТаблицаНаФорме.ВидНоменклатуры КАК ВидНоменклатуры
|ИЗ
| Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаНаФорме КАК ТаблицаНаФорме
| ПО ВидыНоменклатуры.Наименование = ТаблицаНаФорме.ВидНоменклатуры
|
|СГРУППИРОВАТЬ ПО
| ВидыНоменклатуры.Наименование,
| ТаблицаНаФорме.ВидНоменклатуры";
Запрос.УстановитьПараметр("Таблица",Таблица);

РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий()Цикл
Сообщить(РезультатЗапроса.ВидНоменклатуры);
КонецЦикла;
Mokey
22.10.2013 10:42Ответ № 7
И, что даёт попытка?
Mokey
22.10.2013 10:43Ответ № 8
Код 1C v 8.х
 
Запрос.Текст =
"ВЫБРАТЬ
| Таблица.ВидНоменклатуры
|ПОМЕСТИТЬ ТаблицаНаФорме
|ИЗ
| &Таблица КАК Таблица
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВидыНоменклатуры.Наименование КАК Наименование,
| ТаблицаНаФорме.ВидНоменклатуры КАК ВидНоменклатуры
|ИЗ
| Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаНаФорме КАК ТаблицаНаФорме
| ПО ВидыНоменклатуры.Наименование = ТаблицаНаФорме.ВидНоменклатуры
|ГДЕ ТаблицаНаФорме.ВидНоменклатуры ЕСТЬ NULL
|СГРУППИРОВАТЬ ПО
| ВидыНоменклатуры.Наименование,
| ТаблицаНаФорме.ВидНоменклатуры";
LookUp
22.10.2013 10:56Ответ № 9
Попытка выбирает Значение из одной ТЗ но не хочет брать его из другой
LookUp
22.10.2013 10:58Ответ № 10
РезультатЗапроса.ВидНоменклатуры Всегда равен NULL и выбираться не хочет
Mokey
22.10.2013 11:20Ответ № 11
а РезультатЗапроса.Наименование?
ведь если Вы выполнили запрос с моим исправлением, то всё правильно, запрос выберет только те ВидыНоменклатуры, которых нет в таблице на форме
Изменено 22.10.13 11:22:12
LookUp
22.10.2013 11:30Ответ № 12
Он выбирает все виды номенклатуры, только в непонятном порядке, они попадают в РезультатЗапроса.Наименование
Dana
22.10.2013 12:02Ответ № 13
Включите на форме запроса АВТОУПОРЯДОЧИВАНИЕ.
MaratSpb
23.10.2013 16:43Ответ № 14
| ПО ВидыНоменклатуры.Наименование = ТаблицаНаФорме.ВидНоменклатуры
Почему строку сравниваешь с ссылкой на справочник?
MaratSpb
23.10.2013 16:46Ответ № 15
Запрос.Текст =
"ВЫБРАТЬ
| Таблица.ВидНоменклатуры
|ПОМЕСТИТЬ ТаблицаНаФорме
|ИЗ
| &Таблица КАК Таблица
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ Различные
| ВидыНоменклатуры.Ссылка КАК ВидНоменклатуры
|ИЗ
| Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаНаФорме КАК ТаблицаНаФорме
| ПО ВидыНоменклатуры.Ссылка= ТаблицаНаФорме.ВидНоменклатуры
|ГДЕ ТаблицаНаФорме.ВидНоменклатуры ЕСТЬ NULL
MaratSpb
23.10.2013 16:47Ответ № 16
Вот как-то так )
Mokey
24.10.2013 15:32Ответ № 17
(16) MaratSpb, а кто сказал, что ТаблицаНаФорме.ВидНоменклатуры не строка? а?
MaratSpb
24.10.2013 19:05Ответ № 18
(17) Mokey, Если это строка то автору нужно оторвать руки. На сколько я понял по задаче в ТЧ ТаблицаНаФорме реквизит ВидНоменклатуры - это ссылка на справочник Справочник.ВидыНоменклатуры.
Mokey
25.10.2013 15:21Ответ № 19
(18) MaratSpb, Это нам понятно, а из поста автора - отнюдь)))
victorree
25.10.2013 16:07Ответ № 20
(0) LookUp, Какие у тебя колонки в ТЗ формы? Достаточно перебрать в цикле все виды номенклатуры из запроса по видам номенклатурыи выполнить поиск методом НайтиСтроки
Изменено 25.10.13 16:08:33
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.