|
Вставить результаты запроса в ТЧ документа | ☑ | ||
---|---|---|---|---|
0
pt_denis
05.08.14
✎
09:48
|
Ребята, только начал учить 1с программирование. Мне нужно вставить результат запроса:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТМЦОстатки.ТМЦ, | ТМЦОстатки.Склад, | ВЫБОР | КОГДА ЕСТЬNULL(ТМЦОстатки.СуммаОстаток, 0) = 0 | ИЛИ ЕСТЬNULL(ТМЦОстатки.КоличествоОстаток, 0) = 0 | ТОГДА 0 | ИНАЧЕ ТМЦОстатки.СуммаОстаток / ТМЦОстатки.КоличествоОстаток | КОНЕЦ КАК УчетнаяЦена |ИЗ | РегистрНакопления.ТМЦ.Остатки( | &Дата, | ТМЦ В (&МассивТМЦ) | И Склад = &Склад) КАК ТМЦОстатки"; Запрос.УстановитьПараметр("МассивТМЦ", ПереченьТМЦ.ВыгрузитьКолонку("ТМЦ")); Запрос.УстановитьПараметр("Склад", Склад); Запрос.УстановитьПараметр("Дата", Дата); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать (); В ТабличнуюЧасть РасходнойНакладной, а именно ВыборкаДетальныеЗаписи.УчетнаяЦена в РасходнаяНакладная.ПереченьТМЦ.УчетнаяЦена. Не подскажете как это сделать, может пример дайте какой-то что бы разобрать. До этого я я делал методом Запрос.Выполнить().Выгрузить(), но тут так нельзя... |
|||
1
Godofsin
05.08.14
✎
09:51
|
.НайтиСтроки()
|
|||
2
Wobland
05.08.14
✎
09:51
|
>но тут так нельзя...
аллах запрещает? |
|||
3
_fvadim
05.08.14
✎
09:53
|
Почему нельзя, можно. Перебираешь и добавляешь по одной.
А вообще - ТЧ.Загрузить |
|||
4
salvator
05.08.14
✎
09:53
|
Соединить ТЧ документа в запросе с регистром.
Вывести поле с ценой. Загрузить полученную таблицу значений в документ. |
|||
5
dj_serega
05.08.14
✎
09:54
|
(0) сделай ВыборкаДетальныеЗаписи = РезультатЗапроса.Выгрузить(); и будет можно.
|
|||
6
pt_denis
05.08.14
✎
10:00
|
(2) Ну потомучто я в запросе не соеденил ТЧ с расчетом.
(4) Ну я так делал раньше, а если через мой запрос? (3) Можно пример? |
|||
7
Wobland
05.08.14
✎
10:02
|
(6) а тебе зачем соединять?
|
|||
8
Wobland
05.08.14
✎
10:02
|
(7) ну ладно, соединяй
|
|||
9
pt_denis
05.08.14
✎
10:05
|
(7) Ну до этого я подобный запрос, делал так запросом брал данные из ТЧ соединял с регистром, делал расчет и потом выгружал в таблицу. Извините, пока я умею только так =)
Ну а если по данному примеру запроса, возможно как то выгрузить только в колонку ТЧ УчетнаяЦена или как-то по другому вписать? |
|||
10
salvator
05.08.14
✎
10:15
|
(9) Можно.
Тогда тебе надо использовать метод, указанный в (1) |
|||
11
patria0muerte
05.08.14
✎
10:22
|
(0) Можешь попробовать ТЧ документа запихать во временную таблицу, в запросе рассчитать нужные данные и выгрузить обратно в ТЧ...
Примерно так Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТЧ", ТЧ.Выгрузить()); Запрос.Текст = |ВЫБРАТЬ |ТЧ.ТМЦ |ПОМЕСТИТЬ ВТ |ИЗ &ТЧ КАК ТЧ; |ВЫБРАТЬ |ВТ.ТМЦ | ВЫБОР | КОГДА ЕСТЬNULL(ТМЦОстатки.СуммаОстаток, 0) = 0 | ИЛИ ЕСТЬNULL(ТМЦОстатки.КоличествоОстаток, |0) = 0 | ТОГДА 0 | ИНАЧЕ ТМЦОстатки.СуммаОстаток / |ТМЦОстатки.КоличествоОстаток | КОНЕЦ КАК УчетнаяЦена |ИЗ ВТ КАК ВТ ЛЕВОЕ СОЕДИНЕНИЕ |РегистрНакопления.ТМЦ.Остатки КАК ТМЦОстатки ПО ВТ.ТМЦ = |ТМЦОстатки.ТМЦ; Как то так... |
|||
12
Strogg
05.08.14
✎
10:28
|
Выборка = Запрос.Выполнить().Выбрать();
Для Каждого Стр Из ПереченьТМЦ Цикл Если Выборка.НайтиСледующий(Стр.ТМЦ,"ТМЦ") Тогда Стр.УчетнаяЦена = Выборка.УчетнаяЦена; Иначе Стр.УчетнаяЦена = 0; КонецЕсли; КонецЦикла; ----- следующий способ :) |
|||
13
pt_denis
05.08.14
✎
10:29
|
(10) и как этот метод будет выглядеть?
Извините я не прошу написать код под мою конфу, но хотя бы какой то пример разобрать. То есть я в Выборке найду строки, а потом надо выгрузить их в ТЧ? |
|||
14
patria0muerte
05.08.14
✎
10:36
|
(13) Там имеется ввиду, что ты идешь по выборке и ищешь строки в ТЧ по Выборка.ТМЦ и в них подставляешь Выборка.УчетнаяЦена...
СтруктураПоиска = Новый СТруктура(); СтруктураПоиска.Вставить("ТМЦ"); Пока Выборка.Следующий Цикл СтруктураПоиска.ТМЦ = Выборка.ТМЦ МассивНайденныхСтрок = ТЧ.НайтиСтроки(СтруктураПоиска); Для каждого СтрокаТаблицы Из МассивНайденныхСтрок Цикл СтрокаТаблицы.ЦчетнаяЦена = Выборка.УчетнаяЦена КонецЦикла; КонецЦикла; Собственно в (12) почти тоже самое, только ровно наоборот... |
|||
16
salvator
05.08.14
✎
10:38
|
(11) Зачем делать запрос к ТЗ, если можно сделать запрос к ТЧ?
(13) В синтаксис-помощнике забанили что ли, не пойму? |
|||
17
pt_denis
05.08.14
✎
10:39
|
(12) (14) Спасибо
|
|||
18
patria0muerte
05.08.14
✎
10:41
|
(16) Предполагаю, что данная процедура выполняется где то в модуле формы, при интерактивной работе. Поэтому если мы обратимся в запросе к РасходнаяНакладнаяПереченьТМЦ - там же данные не те, что у нас в данный момент при работе с формой. Или я не прав?
|
|||
19
patria0muerte
05.08.14
✎
10:42
|
+(18) А непосредственно к ТЧ вроде бы в запросе нельзя обратиться, если мне память не изменяет...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |