Имя: Пароль:
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)Спасибо! единственное почему-то документ открывается,но прячется за элементом формы справочника из которого вызывается процедура открытия...Может ОткрытьМодально() применить?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший