![]() |
|
Номер накладной поступления | ☑ | ||
---|---|---|---|---|
0
Chuchi
04.11.13
✎
18:17
|
УТ 10.3
требуется по списку Товары для каждой номенклатуры найти номер накладной по которой этот товар поступал в последний раз До массива вроде все удачно но Ном.Количество() = 0 всегда равно 0.. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ПоступлениеТоваровУслуг.Ссылка, | ПоступлениеТоваровУслуг.Номер, | ПоступлениеТоваровУслуг.Дата КАК Дата, | ПоступлениеТоваровУслуг.Товары.(Номенклатура) КАК Номен |ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг |ГДЕ | ПоступлениеТоваровУслуг.Товары.Номенклатура В(&Номенклатура) | |УПОРЯДОЧИТЬ ПО | Дата УБЫВ"; спНоменклатуры = Товары.ВыгрузитьКолонку("Номенклатура"); Запрос.УстановитьПараметр("Номенклатура", спНоменклатуры); Рез = Запрос.Выполнить(); Если Рез.Пустой() Тогда Возврат; КонецЕсли; ТабКодов = Рез.Выгрузить(); Отбор = Новый Структура; Для каждого Стр Из Товары Цикл Отбор.Очистить(); Отбор.Вставить("Номен", Стр.Номенклатура); Ном = ТабКодов.НайтиСтроки(Отбор); Если Ном.Количество() = 0 Тогда Стр.Накладная = ""; Иначе Стр.Накладная = Ном[0].Номер; КонецЕсли; КонецЦикла; |
|||
1
Chuchi
05.11.13
✎
13:53
|
Может быть мне надо построчно пробегая табличную часть запрос для каждой позиции формировать?
|
|||
2
Славен
05.11.13
✎
13:54
|
Партионный учет?
|
|||
3
Славен
05.11.13
✎
13:56
|
выбирай из регистра партий
|
|||
4
palpetrovich
05.11.13
✎
13:56
|
запрос в цикле - побьют :)
|
|||
5
Славен
05.11.13
✎
13:59
|
а в отладчике смотрела что есть в ТабКодов ?
|
|||
6
Milok
05.11.13
✎
14:22
|
Запрос странный, почему не бы использовать МАКСИМУМ?
|
|||
7
Chuchi
05.11.13
✎
14:28
|
в ТабКодов коллекцияКолонокТаблицыЗначений
там 4 колонки Дата Номер Номен(номенклатура) Ссылка |
|||
8
Chuchi
05.11.13
✎
14:43
|
Странно даже в отбор попадает моя первоя строка номенклатуры
Ном = ТабКодов.НайтиСтроки(Отбор); вот здесь и Ном и ТабКодов.НайтиСтроки(Отбор) - значение и тип массив |
|||
9
Chuchi
05.11.13
✎
14:43
|
но массив все равно 0 ((
|
|||
10
Relader
05.11.13
✎
14:51
|
Делай запрос к табличной части документа.
|
|||
11
Chuchi
05.11.13
✎
14:53
|
..основной запрос? тот который ПЕРВЫЕ 1 ??
|
|||
12
User_Agronom
05.11.13
✎
14:55
|
(3) Не услышали((
А зря. Скольких бы проблем избежали... |
|||
13
Relader
05.11.13
✎
14:56
|
(11), ну да. Ты в отладчике посмотри, что у тебя в "ТабКодов" получается.
|
|||
14
User_Agronom
05.11.13
✎
14:56
|
(5) Жди постов 30, потом они услышат голос разума :)
|
|||
15
Chuchi
05.11.13
✎
15:00
|
(13) в ТабКодов коллекцияКолонокТаблицыЗначений
там 4 колонки Дата Номер Номен(номенклатура) Ссылка |
|||
16
Relader
05.11.13
✎
15:07
|
(15)Не надо колонки смотреть, посмотри что получилось в выгруженной ТЗ.
Как разберешься с запросом, обязательно прислушайся к (3) и (12) - дело говорят. |
|||
17
User_Agronom
05.11.13
✎
15:32
|
Не так? Можно из регистра ПартииТоваровНаСкладах замутить...
Запрос = новый Запрос; спНоменклатуры = ДокументРеализации.Товары.ВыгрузитьКолонку("Номенклатура"); Запрос.УстановитьПараметр("спНоменклатуры", спНоменклатуры); Запрос.Текст = "ВЫБРАТЬ | МАКСИМУМ(Закупки.Регистратор.Дата) КАК ДатаОперации, | Закупки.Номенклатура |ИЗ | РегистрНакопления.Закупки КАК Закупки |ГДЕ | Закупки.Номенклатура В(&спНоменклатуры) | |СГРУППИРОВАТЬ ПО | Закупки.Номенклатура"; Результат = Запрос.Выполнить().Выгрузить().ВыбратьСтроку(); |
|||
18
User_Agronom
05.11.13
✎
15:35
|
+ (17) Прошу пардону. Нужен номер.
|
|||
19
Chuchi
05.11.13
✎
17:19
|
(17) не подскажите а дальше как отбором?
|
|||
20
User_Agronom
05.11.13
✎
17:41
|
(19) А самой подумать? Мысли есть?
|
|||
21
Chuchi
05.11.13
✎
17:50
|
(20) Да простите! все сделала! Спасибо Вам!
|
|||
22
User_Agronom
05.11.13
✎
17:52
|
(21) Похвастайся как ;)
|
|||
23
Chuchi
05.11.13
✎
18:21
|
)))) Вашими советами руководствуясь)
Запрос = новый Запрос; спНоменклатуры =Товары.ВыгрузитьКолонку("Номенклатура"); Запрос.УстановитьПараметр("спНоменклатуры", спНоменклатуры); Запрос.Текст = "ВЫБРАТЬ | МАКСИМУМ(Закупки.Регистратор.Дата) КАК ДатаОперации, | Закупки.Номенклатура КАК Номен, | Закупки.ДокументЗакупки КАК Док |ИЗ | РегистрНакопления.Закупки КАК Закупки |ГДЕ | Закупки.Номенклатура В(&спНоменклатуры) | |СГРУППИРОВАТЬ ПО | Закупки.Номенклатура, | Закупки.ДокументЗакупки"; //Результат = Запрос.Выполнить().Выгрузить(); Рез = Запрос.Выполнить(); Если Рез.Пустой() Тогда Возврат; КонецЕсли; ТабКодов = Рез.Выгрузить(); Отбор = Новый Структура; Для каждого Стр Из Товары Цикл Отбор.Очистить(); Отбор.Вставить("Номен", Стр.Номенклатура); Ном = ТабКодов.НайтиСтроки(Отбор); Если Ном.Количество() = 0 Тогда Стр.Накладная = ""; Иначе Стр.Накладная = Ном[0].Док; КонецЕсли; КонецЦикла; |
|||
24
User_Agronom
05.11.13
✎
18:32
|
(23) Возможно будет не всегда правильно работать.
Группировка не работает, так как в пределах одного документа дата одна и та же. И, как минимум, сортировать по дате нужно. Но, главное, Вы сами смогли исправить код с запросом )) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |