Имя: Пароль:
1C
1С v8
Запрос
0 Gill
 
06.01.12
21:01
Всем привет и с наступающим праздником!
Есть 3 разных документа,у всех в ТЧ есть реквизит "Номенклатура".Понимаю,что вопрос наверное элементарный, но всё же, как запросом вытянуть эту номенклатуру и показать,что она встречается ну например в двух разных видах документов.
1 bse
 
06.01.12
21:03
мож хватит работать, а?
2 Gill
 
06.01.12
21:07
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ПроизводственноеЗаданиеРаботыТехникаИОборудование.НаименованиеГруза,
                  |    СводныйПланРаботыТехникаИОборудование.НаименованиеГруза КАК НаименованиеГруза1
                  |ИЗ
                  |    Документ.ПроизводственноеЗадание.РаботыТехникаИОборудование КАК ПроизводственноеЗаданиеРаботыТехникаИОборудование,
                  |    Документ.СводныйПлан.РаботыТехникаИОборудование КАК СводныйПланРаботыТехникаИОборудование
                  |АВТОУПОРЯДОЧИВАНИЕ";

   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();

//Как выдернуть номенклатуру?
3 Gill
 
06.01.12
21:24
Видимо вопрос или я туповат, но все же надеюсь на подсказку...
4 bse
 
06.01.12
21:26
если судить по тому что ты написал в запросе то: НаименованиеГруза1 дает тебе то что ты желаешь...
5 Gill
 
06.01.12
21:28
(4) ну как же, тогда...
6 bse
 
06.01.12
21:31
Выборка.НаименованиеГруза1
7 Gill
 
06.01.12
21:36
(6)Видимо,я не совсем понятно задал вопрос.Я имел ввиду, как показать,что ГвоздьD5 встречается и в документе ПроизводственноеЗадание и в документе СводныйПлан, какое поле грузить в выборку?
8 echo77
 
06.01.12
21:39
Две таблицы соединить по номенклатуре?
9 bse
 
06.01.12
21:41
у тебя в выборке 3 колонки и соответственно ты получаешь строку с заполненным НаименованиеГруза1 + ПроизводственноеЗаданиеРаботыТехникаИОборудование и строку с заполненным НаименованиеГруза1 + СводныйПланРаботыТехникаИОборудование где НаименованиеГруза1 одинаковы... сверни...
10 bse
 
06.01.12
21:43
или попробуй

                  |ИЗ
                  |    Документ.ПроизводственноеЗадание.РаботыТехникаИОборудование, Документ.СводныйПлан.РаботыТехникаИОборудование КАК типаДокумент
11 Rovan
 
гуру
06.01.12
21:43
(0) почитай про соединения в запросах:
ЛЕВОЕ и ПОЛНОЕ
а также про условие ЕСТЬ NULL
12 bse
 
06.01.12
21:44
хотя не... фигня будет...
13 bse
 
06.01.12
21:44
да... наверное соединение лучше подойдет...
14 Gill
 
06.01.12
21:47
(11)Почитал, ничего не понял.Как быть дальше?
15 echo77
 
06.01.12
21:56
(14) Вам лучше оставить эту профессию
16 Gill
 
06.01.12
21:58
(15) Увы,это невозможно...во всей округе (в нашей маленькой деревушке - один я)...Вот Вы бы что написали в запросе, вместо дельных советов?!Просвятите, если не сложно
17 PVV65
 
06.01.12
22:03
(0) В результате запроса - всегда таблица. Что должно быть в в этой таблице? (Я просто не пойму вопроса, т.е. если Вы объясните, что должно отображаться, то может Вам помогут).
18 Gill
 
06.01.12
22:05
(17)Суть такова: Необходимо,при открытии формы элемента номенклатуры в таблицу значений выгружать перечень документов, где фигурировала эта номенклатура
19 echo77
 
06.01.12
22:06
(0) Нарисуй пару документов разных видов - что в них есть?
Какую таблицу с помощью своего запроса ты хочешь получить - тоже нарисуй.
Чес слово я тоже не пойму что ты хочешь.
20 Rovan
 
гуру
06.01.12
22:08
(18) "поиграй" с конструктором запросов
21 echo77
 
06.01.12
22:09
(18) Перечень вообще всех видов докуметов, где встречается эта номенклатура? - Это поиск ссылок на объект.
В документах определенных видов - Запрос с объединением. В конструкторе запросов - на вкладке "Объединениня/псевдонимы" добавляй столько запросов, сколько у тебя видов документов - в параметрах каждого запроса

<ДокументТЧТакая-то>.Номенклатура = &Номенклатура
22 PVV65
 
06.01.12
22:12
(18)

ВЫБРАТЬ
  Док.Ссылка КАК ИнтересующиеДокумент
ИЗ
  Документ.ТвойДокумент.ТвояТЧСноменклатурой КАК Док
ГДЕ
  Док.ИмяРеквизитаНоменклатуры = &Номенклатура
23 Gill
 
06.01.12
22:13
(21),(22) а какое значение присваивать параметру Запрос.УстановитьПараметр("Номенклатура",???);
24 echo77
 
06.01.12
22:14
(23)Если в контексте формы/модуля элемента номенклатуры - то
будет выглядеть так:
Запрос.УстановитьПараметр("Номенклатура", Ссылка);
25 echo77
 
06.01.12
22:15
+(24) Имеется ввиду конечно контекст формы/модуля справочника номенклатуры, а не элемента
26 Gill
 
06.01.12
22:27
(22), (24) Огромное спасибо, помогло решить задачу.....Еще раз всем спасибо и с праздником!!!!
27 Gill
 
06.01.12
22:32
И еще один вопрос в догонку.В ТЗ результат запроса выгружается, я использовал метод СоздатьКолонки(), как бы сделать так,чтобы отображалась лупа для возможности открытия соответствующего документа или же двойным кликом прваливаться в документ
28 echo77
 
06.01.12
22:58
(27) Чтобы лупа отображалась - надо править элемент управления.
Лучше задизанить его в конфигураторе - в табличном поле создать колонку и прописать ей имя и данные такие же как у тебя поле в запросе называется.

чтобы при нажатии открыть форму документа надо писать обработчик Выбор для табличного поля.
Писать в обработчике что-то типа:

Процедура ТабличноеПоле1Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
   ЯчейкаТЧ = ВыбраннаяСтрока[Колонка.Имя];
   Если НЕ ЯчейкаТЧ.Пустая() Тогда
       ЯчейкаТЧ.ПолучитьФорму().Открыть()
   КонецЕсли;
КонецПроцедуры
29 Gill
 
06.01.12
23:08
(28)Спасибо! единственное почему-то документ открывается,но прячется за элементом формы справочника из которого вызывается процедура открытия...Может ОткрытьМодально() применить?
Ошибка? Это не ошибка, это системная функция.