Имя: Пароль:
1C
1С v8
Связи вложенных запросов
0 Web00001
 
29.05.12
05:24
Задача получить последнего поставщика конкретной номенклатуры. Имеем следующий запрос связанный для примера  со справочником номенклатура:
ВЫБРАТЬ
   Товары.Наименование,
   Товары.Артикул КАК Артикул,
   Поставки.РегистраторКонтрагент
ИЗ
   Справочник.Номенклатура КАК Товары
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
           Закупки.Номенклатура КАК Номенклатура,
           Закупки.Регистратор.Контрагент КАК РегистраторКонтрагент
       ИЗ
           РегистрНакопления.Закупки КАК Закупки
       
       УПОРЯДОЧИТЬ ПО
           Закупки.Регистратор.Дата) КАК Поставки
       ПО Товары.Ссылка = Поставки.Номенклатура

УПОРЯДОЧИТЬ ПО
   Артикул

Почему то поле РегистраторКонтрагент пустое. Где то туплю, не могу понять где
1 WebberNSK
 
29.05.12
05:30
в корне не верный запрос
2 Плот
 
29.05.12
05:31
Закупки.Регистратор.Дата) КАК Поставки - эот что?
3 WebberNSK
 
29.05.12
05:33
(0) пиши временную таблицу, в которой определяй по каждой номенклатуре последнего контрагента путем соединения таблицы самой с собой. потом уже это соединяй с чем хочешь. и да, в регистре закупки у тебя нет периода, и контрагента Оо?
4 Web00001
 
29.05.12
05:51
(3) Какой период? Мне нужен последний документ, который проходил в этом регистре по связанной номенклатуре, вне зависимости от периода. Где нет контрагента?
5 Web00001
 
29.05.12
05:52
(2) Что тебя смутило?
6 Плот
 
29.05.12
05:59
(5) "Что тебя смутило?"   :-)))) Хотя бы это
Закупки.Регистратор.Дата) КАК Поставки
Поставки.РегистраторКонтрагент
7 Web00001
 
29.05.12
06:01
Как то стремно об этом говорить, но я не понимаю, что не так, нельзя подробнее? Или ты сам то понимаешь, но сказать не можешь?
8 Плот
 
29.05.12
06:21
(7) Как ты из даты хочешь регистратор получить?
9 Рэйв
 
29.05.12
06:35
(8)Ты точно не араб?  Вроде только они справа налево читают...
10 WebberNSK
 
29.05.12
06:48
(4) период записи движения. по запросу забей. сам ты его не напишешь...
11 Плот
 
29.05.12
07:03
(9) Угумс, получается араб :-).
(6) тагды пардон
12 Креатив
 
29.05.12
07:12
(0)А зачем ты выбираешь первую запись из регистра во втором запросе?
Тебе нужно сразу из регистра выбирать контрагента по указанной номенклатуре. Соединение здесь не нужно и вредно.
13 Web00001
 
29.05.12
07:21
(12)КАК? Или ЧТО ты имеешь ввиду? Как система должна связать между собой таблицы? Я пару раз забывал, поставить соединение, получал кучу записей с контрагентами.
14 Web00001
 
29.05.12
07:24
(10) Период или дата регистратора, в данном случае не имеет значение, имеет значение почему поле с контрагентом пустое
15 Конфигуратор1с
 
29.05.12
07:45
Слушай, как то не стыкуется "Задача получить последнего поставщика конкретной номенклатуры" с выбрать первые из "  УПОРЯДОЧИТЬ ПО
           Закупки.Регистратор.Дата". Тут ты по ходу получаешь самую раннюю дату, а это может быть какой нибудь ввод остатков, где нет вообще контрагента
16 Конфигуратор1с
 
29.05.12
07:45
хотя я комплексную не трогал, поэтому за регистр закупок сказать что то трудно
17 Web00001
 
29.05.12
08:06
(15) Нет документа ввод остатков, я менял порядок сортировки просто здесь забыл, эффекта нет. Это Управление торговлей.
18 Конфигуратор1с
 
29.05.12
09:10
(17)так у меня  в регистре закупки есть поле контрагент, у вас в регистре какие измерения?
19 Web00001
 
29.05.12
12:20
Да действительно там есть измерение контрагент, затупил, не заметил это к сожалению ничего не меняет
2 + 2 = 3.9999999999999999999999999999999...