Имя: Пароль:
1C
1С v8
Проблема с получением номера расхода из возврата
,
0 bondarenko-2008
 
05.04.13
12:36
Формирую список возвратных накладных за 1 день. Необходимо по мимо других данных, получить на номер расходной накладной, на основании которой был сделан возврат. Все выводит, кроме этого номера. Что я неправильно связал? Привожу код:

Запрос1 = Новый Запрос;
Запрос1.Текст = "ВЫБРАТЬ
|Контрагенты.ИНН КАК ИНН,
|Контрагенты.Наименование КАК Контрагент,
|ВозвратТоваровОтПокупателя.Номер КАК НомерНакладной,
|ВозвратТоваровОтПокупателя.Дата КАК ДатаНакладной,
|ВозвратТоваровОтПокупателя.СуммаДокумента КАК СуммаНакладной,
|ВозвратТоваровОтПокупателя.ДоговорКонтрагента.Наименование КАК Договор,
|Контрагенты.Родитель,
|РеализацияТоваровУслуг.Номер КАК НомерРеализации
|ИЗ
|Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
|    ПО ВозвратТоваровОтПокупателя.Контрагент = Контрагенты.Ссылка
|ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|    ПО ВозвратТоваровОтПокупателя.Сделка = РеализацияТоваровУслуг.Ссылка
|ГДЕ
|ВозвратТоваровОтПокупателя.Проведен = ВозвратТоваровОтПокупателя.Проведен
|И ВозвратТоваровОтПокупателя.Дата >= &Дата1
|И ВозвратТоваровОтПокупателя.Дата <= &Дата2
|И Контрагенты.Родитель = &Родитель
|
|УПОРЯДОЧИТЬ ПО
|  Контрагенты.Наименование";

Запрос1.УстановитьПараметр("Дата1",    НачалоДня(ДатаВыгрузки));     //Дата
Запрос1.УстановитьПараметр("Дата2",    КонецДня(ДатаВыгрузки));     //Дата
Запрос1.УстановитьПараметр("Родитель",    Справочники.Контрагенты.НайтиПоНаименованию("Покупатели"));
Результат1=Запрос1.Выполнить().Выбрать();

АктСверкиСтруктура=новый ТаблицаЗначений;    
АктСверкиСтруктура.Колонки.Добавить("ИНН");
АктСверкиСтруктура.Колонки.Добавить("Контрагент");
АктСверкиСтруктура.Колонки.Добавить("НомерРасхода");
АктСверкиСтруктура.Колонки.Добавить("НомерНакладной");
АктСверкиСтруктура.Колонки.Добавить("ДатаНакладной");
АктСверкиСтруктура.Колонки.Добавить("СуммаНакладной");
АктСверкиСтруктура.Колонки.Добавить("ТипНакладной");
АктСверкиСтруктура.Колонки.Добавить("Договор");

пока Результат1.Следующий() цикл
   Список=АктСверкиСтруктура.Добавить();
   Список.ИНН=Результат1.ИНН;
   Список.Контрагент=Результат1.Контрагент;
   Список.НомерРасхода=Результат1.НомерРеализации;
   Список.ДатаНакладной=Результат1.ДатаНакладной;
   Список.НомерНакладной=Результат1.НомерНакладной;
   Список.СуммаНакладной=Результат1.СуммаНакладной;
   Список.Договор=Результат1.Договор;
   Список.ТипНакладной=Строка("возврат");
конеццикла;
1 Godofsin
 
05.04.13
12:39
в сделке ваще то заказ указывается
2 salvator
 
05.04.13
12:41
(0) А че контрагента из Возврата не вытащил?
3 Godofsin
 
05.04.13
12:42
а не, наврал, может там быть РТиУ
4 rbcvg
 
05.04.13
12:43
Реализация хранится в табличной части Товары
ВозвратТоваровОтПокупателяТовары.ДокументПартии
5 Godofsin
 
05.04.13
12:43
+(2)да и номер док-та можно из "сделка" дернуть так-то...
6 Godofsin
 
05.04.13
12:44
(4) Дааа, только вот он может быть пустым
7 rbcvg
 
05.04.13
12:46
(6) оптимисты предпочитают думать что он может быть полным
8 bondarenko-2008
 
05.04.13
12:47
Я специально создал расход и возврат одним и тем же числом, но значение не выводится.
9 ksTheme
 
05.04.13
12:48
Соединения не нужны, можно все вытащить из документа возврата, чтобы не был пустым сделай отбор на ссылку реализации
10 ksTheme
 
05.04.13
12:48
(9) то есть не отбор а условие
11 rbcvg
 
05.04.13
12:49
(8) Сделка = ЗаказПокупателя, ты соединяешь по РеализацияТоваровУслуг.Ссылка
12 bondarenko-2008
 
05.04.13
12:50
Если возврат сделан на основании расхода (то надо чтобы выводил), если же нет то пусть поле остается пустым
13 bondarenko-2008
 
05.04.13
12:51
т.е. нужно выводить оба вида
14 ksTheme
 
05.04.13
12:55
(13) Ну пусть выводится пустым, в чем проблема, номер накладной тащишь из ТЧ, если его нет он пустой. Таблицы достаточной одной ВозвратТоваров, из нее получаешь все, что нужно без подключения реализации и справочника
15 bondarenko-2008
 
05.04.13
13:01
Вот так?
ВозвратТоваровОтПокупателя.Товары.(            |        ДокументПартии.Номер
|    )
16 bondarenko-2008
 
05.04.13
13:04
Пожалуйста укажите точно эту строчку из запроса, где можно поймать номер реализации.
17 rbcvg
 
05.04.13
13:08
(16) продам консоль запросов, дорого.
ВЫБРАТЬ
   ВозвратТоваровОтПокупателяТовары.Ссылка,
   ВозвратТоваровОтПокупателяТовары.Ссылка.Сделка.Номер
ИЗ
   Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
18 salvator
 
05.04.13
13:10
"ВЫБРАТЬ
|ВозвратТоваровОтПокупателя.Номер КАК НомерНакладной,
|ВозвратТоваровОтПокупателя.Дата КАК ДатаНакладной,
|ВозвратТоваровОтПокупателя.СуммаДокумента КАК СуммаНакладной,
|ВозвратТоваровОтПокупателя.ДоговорКонтрагента.Наименование КАК Договор,
|ВозвратТоваровОтПокупателя.Контрагент.Родитель,
|ВозвратТоваровОтПокупателя.Сделка.Номер КАК НомерРеализации
|ИЗ
|Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
|ГДЕ
|ВозвратТоваровОтПокупателя.Проведен
|И ВозвратТоваровОтПокупателя.Дата МЕЖДУ &Дата1 И &Дата2
|И ВозвратТоваровОтПокупателя.Контрагент.Родитель = &Родитель
|
|УПОРЯДОЧИТЬ ПО
|  Контрагенты.Наименование";
19 bondarenko-2008
 
05.04.13
13:16
спасибо, пробую
20 bondarenko-2008
 
05.04.13
13:23
нет, нету. Печаль.
21 Godofsin
 
05.04.13
13:24
(20) чего нету?
22 bondarenko-2008
 
05.04.13
13:28
номера расхода, должен 1-ин быть точно. делаю Сообщить(Реализация1.НомерРеализации); и сообщений нету.
23 rbcvg
 
05.04.13
13:32
(22) что есть Реализация1?
24 bondarenko-2008
 
05.04.13
13:34
загнался, Сообщить(Результат1.НомерРеализации);
25 Godofsin
 
05.04.13
13:40
(24) Сделка точно везде указана?
26 bondarenko-2008
 
05.04.13
13:43
запрос я просто скопировал отсюда
27 Godofsin
 
05.04.13
13:44
(26) глазами глянь у документов, указана ли там сделка
28 bondarenko-2008
 
05.04.13
13:45
понял, о чем вы
29 bondarenko-2008
 
05.04.13
14:05
Поле сделка не заполнено, потому что оно меняется на "Заказ покупателя" при заполнении поля Контрагент.
30 bondarenko-2008
 
05.04.13
14:10
поэтому и не выводит номер
31 ksTheme
 
05.04.13
14:37
(30)Для начала нужно понимать, что делает документ ВозвратТоваров. Приходует товар в "Партию Товаров из которой был продан" для этого указывается Документ партии в табличной части (в нашем случае это "реализация").

"ВЫБРАТЬ
|    ВозвратТоваровОтПокупателя.Ссылка,
|    ВозвратТоваровОтПокупателя.Организация,
|    ВозвратТоваровОтПокупателя.Контрагент,
|    ВозвратТоваровОтПокупателя.Товары.(
|        ДокументПартии КАК РеализацияТовароИУслуг
|    )
|ИЗ
|    Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя"

Прошу заметить, что один документ может иметь несколько возвращенных товаров по разным партиям (накладным)
32 ksTheme
 
05.04.13
14:43
+ (31) Документом партии помимо реализации могут быть еще 7 видов документов, если нужны именно реализации, нужно ставить отбор на тип документа
33 bondarenko-2008
 
05.04.13
14:51
спасибо
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан