![]() |
![]() |
|
Отбор списания с определенного ряда, ячейки и стелажа | ☑ | ||
---|---|---|---|---|
0
myr4ik07
24.02.15
✎
23:05
|
Привет. Прилагаю скриншот с результатом запроса
https://www.dropbox.com/s/80202cxiedwiftt/Записати.PNG?dl=0 мне автоматически в движения регистра накопления нужно занести только тот рядок у которого наименший критерий, это если условие "сразу", а если "доставка" то занести в движения регистра с наибольшим. Выполняю Если СпособОтгрузки = Перечисления.СпособОтгрузки.Сразу Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиТоваровОстатки.Ячейка КАК Ячейка, | ОстаткиТоваровОстатки.Стелаж КАК Стелаж, | ОстаткиТоваровОстатки.Ряд КАК Ряд, | ОстаткиТоваровОстатки.Ряд + ОстаткиТоваровОстатки.Стелаж КАК Критерий, | ПродажаТоваровТовары.Товар, | ПродажаТоваровТовары.Количество КАК Количество |ИЗ | Документ.ПродажаТоваров.Товары КАК ПродажаТоваровТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки | ПО ПродажаТоваровТовары.Товар = ОстаткиТоваровОстатки.Товар | |УПОРЯДОЧИТЬ ПО | Критерий"; Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Движение = Движения.ОстаткиТоваров.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Товар = ВыборкаДетальныеЗаписи.Товар; Движение.Количество = ВыборкаДетальныеЗаписи.Количество; Движение.Ряд = ВыборкаДетальныеЗаписи.Ряд; Движение.Стелаж = ВыборкаДетальныеЗаписи.Стелаж; Движение.Ячейка = ВыборкаДетальныеЗаписи.Ячейка; КонецЦикла; КонецЕсли; и в результате повторного перепроведения одного и того же документа в движение регистра получаю разные данные. |
|||
1
EugeniaK
24.02.15
✎
23:10
|
(0) У тебя после проведения меняются остатки в регистре, что влияет на запрос. Удаляй старые движения перед запросом.
|
|||
2
Крошка Ру
24.02.15
✎
23:10
|
Почему у тебя код после слова "Выполняю" никак не соотносится с логикой, описанной до слова "Выполняю"?
И почему бы тебе не получать каждый раз разные данные? Ведь каждый раз у тебя туда попадают разные данные. |
|||
3
myr4ik07
24.02.15
✎
23:15
|
(2) приведи будь добр правильный вариант
|
|||
4
myr4ik07
24.02.15
✎
23:15
|
(1) Движения.ОстаткиТоваров.Очистить();
где не пихаю, все ровно попадает после перепроведения не нужные движения |
|||
5
EugeniaK
24.02.15
✎
23:19
|
(4) Ты своей командой очищаешь набор локально.
Данные в физической базе не меняются. Движения.ОстаткиТоваров.Записать() |
|||
6
myr4ik07
24.02.15
✎
23:23
|
(5) ну, впрочем
Движения.ОстаткиТоваров.Очистить(); Движения.ОстаткиТоваров.Записать(); результат есть но все же теперь в запросе беда какая то, в движения попадает все из остаткова |
|||
7
Крошка Ру
24.02.15
✎
23:26
|
(6) Потому что у тебя запрос берёт всё из остатков. Ключевое слово - "всё".
|
|||
8
myr4ik07
24.02.15
✎
23:28
|
(7) ок, имеешь ввиду отбор сделать типа
|ГДЕ | ПродажаТоваровТовары.Товар = &Товар но как в этотм параметр передать Товар? У меня это Реквизит с табличной части |
|||
9
Крошка Ру
24.02.15
✎
23:28
|
(8) Нет, я тебе тонко намекаю на момент времени
|
|||
10
Крошка Ру
24.02.15
✎
23:29
|
Чорд. Уже не тонко получилось.
|
|||
11
myr4ik07
24.02.15
✎
23:31
|
(9) "ВЫБРАТЬ
| ОстаткиТоваровОстатки.Ячейка КАК Ячейка, | ОстаткиТоваровОстатки.Стелаж КАК Стелаж, | ОстаткиТоваровОстатки.Ряд КАК Ряд, | ОстаткиТоваровОстатки.Ряд + ОстаткиТоваровОстатки.Стелаж КАК Критерий, | ПродажаТоваровТовары.Товар, | ПродажаТоваровТовары.Количество КАК Количество |ИЗ | Документ.ПродажаТоваров.Товары КАК ПродажаТоваровТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки | ПО ПродажаТоваровТовары.Товар = ОстаткиТоваровОстатки.Товар |ГДЕ | ПродажаТоваровТовары.Ссылка.МоментВремени = &МоментВремени | |УПОРЯДОЧИТЬ ПО | Критерий"; Запрос.УстановитьПараметр("МоментВремени", МоментВремени()); та все то же, две записи попадает |
|||
12
myr4ik07
24.02.15
✎
23:32
|
две записи и есть в остатках две записи и попадает )
|
|||
13
Крошка Ру
24.02.15
✎
23:36
|
(12) Признайся честно, это ты случайно такое условие поставил? Мне просто интересно...
|
|||
14
Крошка Ру
24.02.15
✎
23:37
|
Ну посмотри на запрос и задай себе вопрос: какие записи попадут в выборку при таком условии?
|
|||
15
EugeniaK
24.02.15
✎
23:38
|
(11) 1. Не хватает фильтра на текущий документ.
2. Читай теорию о параметрах таблицы остатков. Нужны остатки на момент документа. |
|||
16
Крошка Ру
24.02.15
✎
23:41
|
(15) Чем условие в (11) - не фильтр на документ?
По-моему, это лучший фильтр - всегда будет выдавать содержимое табчасти документа. |
|||
17
GROOVY
24.02.15
✎
23:44
|
(15) Да там много чего не хватает. Чувак не в курсе вообще что за задачу он решает. У меня на форуме создал тему в "экзамен по УТ", при том, что это задача на спеца по платформе и готовых решений там уже штук 15 с готовыми модулями.
(16) Непроиндексированное поле. |
|||
18
EugeniaK
24.02.15
✎
23:46
|
(16) :) :) Вообще логично. Работать будет.
(17) Разберется. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |