|
Как выбрать данные из табличной части регистратора | ☑ | ||
---|---|---|---|---|
0
Эльфийка
17.02.12
✎
11:43
|
Имеется регистр накопления, в котором движения делают несколько видов документов. На него есть запрос.
|ВЫБРАТЬ РАЗРЕШЕННЫЕ | РегТовары.Период КАК Период, | РегТовары.Регистратор КАК Док, | РегТовары.Регистратор.Номер КАК НомерДок, | ПРЕДСТАВЛЕНИЕ(РегТовары.Регистратор) КАК ПечДок, | РегТовары.КоличествоНачальныйОстаток КАК КолНачОст, | РегТовары.КоличествоПриход КАК КолПриход, | РегТовары.КоличествоРасход КАК КолРасход, | РегТовары.КоличествоКонечныйОстаток КАК КолКонОст, | РегТовары.Номенклатура КАК Номенклатура |ИЗ | РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты( | &НачГраница, | &КонГраница, | Регистратор, | , | Номенклатура = &Материал | И Склад = &Склад | ) КАК РегТовары |ГДЕ | РегТовары.Регистратор.Организация = &Орг | |УПОРЯДОЧИТь ПО | РегТовары.Период, | РегТовары.Регистратор |"; Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр( "НачГраница", Новый Граница(НачДата, ВидГраницы.Включая)); Запрос.УстановитьПараметр( "КонГраница", Новый Граница(КонецДня(КонДата), ВидГраницы.Включая)); Запрос.УстановитьПараметр( "Орг", Организация); Запрос.УстановитьПараметр( "Склад", Склад); Запрос.УстановитьПараметр( "Материал", Материал); РезультатЗапроса = Запрос.Выполнить(); ..... Подскажите, пож-та, как сделать выборку из табличной части регистратора, при условии, что регистратор - документ "ВыдачаРасходныхМатериалов". У данного документа есть Табличная часть -Материалы, нужно подтянуть данные из реквизита табличной части ТС. Пробовала написать: Запрос.Текст = " |ВЫБРАТЬ |РегПартии.Регистратор.Материалы, |ВыдачаРасходныхМатериалов.ТС КАК ТС; |ИЗ |РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(,,Регистратор,) КАК РегПартии |Левое СОЕДИНЕНИЕ Документ.ВыдачаРасходныхМатериалов.Материалы КАК ВыдачаРасходныхМатериалов |ПО РегПартии.Регистратор.Материалы = ВыдачаРасходныхМатериалов.Ссылка"; РезультатЗапроса = Запрос.Выполнить(); .... Получаю пустой запрос и выходит "Ошибка при вызове метода контекста (Выполнить): {(5, 1)}: Ожидается выражение "ВЫБРАТЬ" <<?>>ИЗ РезультатЗапроса = Запрос.Выполнить();" Заранее благодарю |
|||
10
Maxus43
17.02.12
✎
11:49
|
(8) нет возможности чтоб ВСЕ в конструкторе, объём кода вырастет на порядок сразу. но начальный синтаксис проверять - конечно конструктором надо
|
|||
11
Reset
17.02.12
✎
11:52
|
(0) Точку с запятой перед ИЗ убрать
|
|||
12
Maxus43
17.02.12
✎
11:52
|
>>при условии, что регистратор - документ "ВыдачаРасходныхМатериалов".
ГДЕ РегПартии.Регистратор Ссылка Документ.ВыдачаРасходныхМатериалов |
|||
13
Reset
17.02.12
✎
11:53
|
Хотя и дальше там бред походу
|
|||
14
vmv
17.02.12
✎
11:55
|
троль детектед
|
|||
15
Эльфийка
17.02.12
✎
12:03
|
Не забрасывайте, пож-та, камнями, а подскажите.
Ошибку исправила. Начинала изучать программирование на 7.7. Теперь начала изучать 8-ку. То что Вам сразу бросается в глаза, извините я не вижу |
|||
16
Ненавижу 1С
гуру
17.02.12
✎
12:04
|
(15) почему пол мужской и где фото?
|
|||
17
Maxus43
17.02.12
✎
12:04
|
(15) да пятница сёдня, все злые и уставшие) для изучения пользуйся конструктором запросов обязательно, да и вобще пригодится всегда
|
|||
18
Эльфийка
17.02.12
✎
12:06
|
Спасибо Maxus43 за помощь, добавила условие
ГДЕ РегПартии.Регистратор Ссылка Документ.ВыдачаРасходныхМатериалов Теперь выходит ошибка: "Ошибка при вызове метода контекста (Выполнить): {(10, 11)}: Поле не найдено "РегПартии.РегистраторСсылкаДокумент.уатВыдачаРасходныхМатериалов" РегПартии.<<?>>РегистраторСсылкаДокумент.уатВыдачаРасходныхМатериалов РезультатЗапроса = Запрос.Выполнить();" |
|||
19
Maxus43
17.02.12
✎
12:08
|
(18) РегПартии.Регистратор Ссылка Документ.уатВыдачаРасходныхМатериалов
пробелы там |
|||
20
Эльфийка
17.02.12
✎
12:09
|
на самом деле во всех запросах, перед названием документов у меня написано уат, просто при записи на форум -убрано))))
|
|||
21
Эльфийка
17.02.12
✎
12:09
|
т.е. Добавила
|ГДЕ |РегПартии.РегистраторСсылкаДокумент.уатВыдачаРасходныхМатериалов" |
|||
22
Maxus43
17.02.12
✎
12:10
|
|ГДЕ
|РегПартии.Регистратор[ПРОБЕЛ]Ссылка[ПРОБЕЛ]Документ.уатВыдачаРасходныхМатериалов" |
|||
23
Эльфийка
17.02.12
✎
12:10
|
упс, увидела-пробелы)))
|
|||
24
Эльфийка
17.02.12
✎
12:11
|
Ошибка при вызове метода контекста (Выполнить): {(8, 4)}: Нельзя обращаться к вложенной таблице через поле составного типа "РегПартии.Регистратор.Материалы"
ПО <<?>>РегПартии.Регистратор.Материалы = уатВыдачаРасходныхМатериалов.Ссылка РезультатЗапроса = Запрос.Выполнить(); |
|||
25
Ненавижу 1С
гуру
17.02.12
✎
12:12
|
(24) это писец пятничный... ответь на (16)
|
|||
26
Maxus43
17.02.12
✎
12:13
|
РегПартии.Регистратор = уатВыдачаРасходныхМатериалов.Ссылка
|
|||
27
Maxus43
17.02.12
✎
12:16
|
|ВЫБРАТЬ
|РегПартии.Номенклатура, |ВыдачаРасходныхМатериалов.ТС КАК ТС; |ПО РегПартии.Номенклатура = ВыдачаРасходныхМатериалов.Номенклатура"; |
|||
28
Эльфийка
17.02.12
✎
12:18
|
Ненавижу 1С -что женскому полу не отвечаете? какая разница?
|
|||
29
Wobland
17.02.12
✎
12:20
|
(28) это такая традиция, и мы не в силах её нарушить
|
|||
30
Kashemir
17.02.12
✎
12:20
|
(27) Зачем кормить то ? Дайте удочку :)
|
|||
31
Maxus43
17.02.12
✎
12:21
|
(30) всё, я выдохся, больше не буду)
|
|||
32
Reset
17.02.12
✎
12:22
|
(28) "женскому полу не отвечаете"
В профиле - Мужской пол!! |
|||
33
Эльфийка
17.02.12
✎
12:23
|
Maxus43, не бросайте, пож-та.
Запрос выполняется без ошибок, но когда смотрю в отладчике в параметры запроса ТС не попадает, как быть? |
|||
34
Maxus43
17.02.12
✎
12:26
|
(33) что такое ТС вобще? тип данных
|
|||
35
Эльфийка
17.02.12
✎
12:27
|
это реквизит табличной части документа
|
|||
36
zak555
17.02.12
✎
12:27
|
а фотку так и не вставила
значит сейчас все ушли |
|||
37
Эльфийка
17.02.12
✎
12:32
|
ТС попало в результат запроса, а как теперь правильно написать, чтобы получить данные из ТС?
|
|||
38
Эльфийка
17.02.12
✎
12:32
|
фотку лучше не выставлять-зачем народ пугать, если я страшнее Пушкаревой)))
|
|||
39
Ненавижу 1С
гуру
17.02.12
✎
12:33
|
(38) фотку надо обязательно
|
|||
40
salvator
17.02.12
✎
12:35
|
Кто такая Пушкарева?
|
|||
41
Wobland
17.02.12
✎
12:36
|
(38) можно фотку ниже подбородка, но тогда в первозданном виде
|
|||
42
Wobland
17.02.12
✎
12:36
|
(41) хотя, я против ;)
|
|||
43
Goggy
17.02.12
✎
12:36
|
Хуиз Пушкарёва?
|
|||
44
Ненавижу 1С
гуру
17.02.12
✎
12:39
|
||||
45
Эльфийка
17.02.12
✎
13:28
|
Что надо дописать, чтобы получить теперь значение ТС
ОбластьДанные.Параметры.ПечДок = ???????.ТС; |
|||
46
Эльфийка
17.02.12
✎
13:29
|
Запрос переписан:
Запрос.Текст = " |ВЫБРАТЬ |РегПартии.Номенклатура, |ВыдачаРасходныхМатериалов.ТС КАК ТС |ИЗ |РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(,,Регистратор,) КАК РегПартии |Левое СОЕДИНЕНИЕ Документ.ВыдачаРасходныхМатериалов.Материалы КАК ВыдачаРасходныхМатериалов |ПО РегПартии.Номенклатура = ВыдачаРасходныхМатериалов.Номенклатура |ГДЕ |РегПартии.Регистратор Ссылка Документ.ВыдачаРасходныхМатериалов"; РезультатЗапроса = Запрос.Выполнить(); |
|||
47
Wobland
17.02.12
✎
13:31
|
(46) Выборка=Результат.Выбрать()
Пока Выборка.Следующий() Цикл Сообщить("А вот он ТС: "+Выборка.ТС) ПС ветку не читал |
|||
48
Wobland
17.02.12
✎
13:33
|
+(47) а лучше всего делать Область.Параметры.Заполнить(Выборка). для этого имена параметров в макете должны совпадать с полями выборки
|
|||
49
Эльфийка
17.02.12
✎
17:52
|
Теперь у меня получился вот такой запрос:
Если ТипЗнч(ОбластьДанные.Параметры.Док) = Тип("ДокументСсылка.уатВыдачаРасходныхМатериалов") Тогда Запрос.Текст = " |ВЫБРАТЬ |РегПартии.Номенклатура, |РегПартии.Регистратор КАК Док, |уатВыдачаРасходныхМатериалов.ТС КАК ТС |ИЗ |РегистрНакопления.уатПартииТоваровНаСкладах.ОстаткиИОбороты(,,Регистратор,) КАК РегПартии |Левое СОЕДИНЕНИЕ Документ.уатВыдачаРасходныхМатериалов.Материалы КАК уатВыдачаРасходныхМатериалов |ПО РегПартии.Номенклатура = уатВыдачаРасходныхМатериалов.Номенклатура |ГДЕ |(РегПартии.Регистратор Ссылка Документ.уатВыдачаРасходныхМатериалов) |УПОРЯДОЧИТь ПО |РегПартии.Регистратор |"; РезультатЗапроса = Запрос.Выполнить(); Выборка=РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Если (Выборка.Номенклатура = Обход.Номенклатура) И (Выборка.Док = Обход.Док) Тогда Сообщить("А вот он ТС: "+Выборка.ТС) ; ОбластьДанные.Параметры.ПечДок = Выборка.ТС; Прервать КонецЕсли; КонецЦикла; КонецЕсли; Подскажите, пож-та, как "обнулить" и где значение Выборка.ТС, потому что верные данные выходят только в первой строчке, а потом там фиксируются совсем другие значения. |
|||
50
Эльфийка
17.02.12
✎
18:00
|
Maxus43 и Wobland -ОГРОМНОЕ СПАСИБО!!!!
|
|||
51
alexandrius
17.02.12
✎
18:12
|
(49)
Обнулить конечно можно и так: ОбластьДанные.Параметры.ПечДок = ""; Но что бы понять что выходит в первой а что во второй нужна еще часть текста, где идет выводод в макет. |
|||
52
Wobland
17.02.12
✎
18:25
|
(49) опять ветку не читал. ты делаешь запрос, а потом пробегаешься выборкой до той строки, которая тебя устраивает. не проще запрос попросить найти то, что тебя устраивает, чем потом выборку обходить?
|
|||
53
Reset
17.02.12
✎
18:34
|
[Пятница=On]
Можно так:
Бред, конечно, но результат вроде тот же, что и в (49) [Пятница=Off] |
|||
54
Reset
17.02.12
✎
18:39
|
(53) А не, ТС (не который тим стартер) в таб части, в движениях нет. Не прокатит. Не повезло.
|
|||
55
Wobland
17.02.12
✎
18:56
|
скажите мне в одном предложении задачу. лениво ветку читать
|
|||
56
catena
17.02.12
✎
19:35
|
Все-таки условие из ГДЕ (ссылка=регистратор) лучше запихнуть в соединение, а Обход.Док и Обход.Номенклатура уже в ГДЕ.
И еще... запросы в цикле лучше не писать... Если, конечно, нет склонностей к жесткому аналу... |
|||
57
ShoGUN
17.02.12
✎
19:44
|
Цирк на выезде, блин. Для начала стоит почитать документацию, а потом уже писать запросы руками.
|
|||
58
Wobland
17.02.12
✎
20:38
|
(56) кстати, есть у меня запрос в цикле, не знаю, как переделать
|
|||
59
Wobland
17.02.12
✎
20:41
|
(58) прикол в том, что для каждой строки ТЧ необходимо вычислить некую скажем так "категорию продажи". а это самое вычисление я вынес в отдельную функцию, в которой результат этого второго запроса по-особенному обрабатывать надо.
|
|||
60
Эльфийка
17.02.12
✎
22:25
|
Вообще в идеале, хотелось бы весь этот бред добавить в первый запрос, который написан до Получения Макета. Т.е. рассматривается РегистрНакопления.ПартииТоваровНаСкладах из которого интересует Период, Документ, Номенклатура, Приход, Расход. В случае, если регистратором является документ с типом уатВыдачаРасходныхМатериалов, нужно еще плюс ко всему получить данные реквизита ТС (ТранспортныеСредства) Табличной Части Документа уатВыдачаРасходныхМатериалов.
Но наверное, это на грани фантастики? |
|||
61
Эльфийка
17.02.12
✎
23:41
|
Конструктором такой сложный запрос выполнить не получается(((
|
|||
62
Deon
17.02.12
✎
23:43
|
Этак ты с работы до понедельника не уйдешь
|
|||
63
Deon
17.02.12
✎
23:51
|
Всё мучаешься?
|
|||
64
Deon
17.02.12
✎
23:56
|
Эльфийка, пингуйся давай
|
|||
65
Deon
18.02.12
✎
00:13
|
Эх... вот так соберешься помочь, а уже некому
|
|||
66
Эльфийка
18.02.12
✎
00:41
|
как некому, я здесь, жду помощи)))
|
|||
67
Deon
18.02.12
✎
00:45
|
о!
|
|||
68
Эльфийка
18.02.12
✎
00:45
|
ага, до сих пор жду
|
|||
69
Deon
18.02.12
✎
00:47
|
Ну давай разбираться.
Вот смотри. У тебя есть 2 таблицы - регистр накопления и табличная часть документа. Ты пробовала их засуть в запрос поотдельности, чтобы понять, что они из себя представляют? |
|||
70
Эльфийка
18.02.12
✎
00:48
|
нет не пробовала, а это как по отдельности? (вопрос чайника, извините((()
|
|||
71
Эльфийка
18.02.12
✎
00:49
|
пыталась, весь этот бред вложенным запросом добавить в основной запрос
|
|||
72
Эльфийка
18.02.12
✎
00:49
|
Ошибка при вызове метода контекста (Выполнить): {(19, 1)}: Ожидается имя таблицы
<<?>>ГДЕ РезультатЗапроса = Запрос.Выполнить(); |
|||
73
Эльфийка
18.02.12
✎
00:50
|
примерно, я понимаю, что они из себя представляют
|
|||
74
Deon
18.02.12
✎
00:53
|
(73) Т.е. ты понимаешь, что тебе надо соединить таблицу, в которой содержатся движения по всем записям ВСЕХ документов, которые сделали эти записи, и таблицу, в которой хранятся табличные части ВСЕХ документов уатВыдачаРасходныхМатериалов?
|
|||
75
Эльфийка
18.02.12
✎
00:57
|
(74) Скорее всего примерно получается так
|
|||
76
Эльфийка
18.02.12
✎
01:01
|
как я себе представляю, есть таблица, в которой содержатся движения по всем записям ВСЕХ документов. В этой таблице нужно выполнить некий отбор по типу документа регистратора и если он удовлетворяет условию, нужно в данную таблицу добавить реквизит из табличной части регистратора
|
|||
77
Deon
18.02.12
✎
01:01
|
(75) А значит смотрим на запрос в (49) и видим, что для каждой записи из таблицы регистра ты находишь все записи из табличных частей ВСЕХ документов, у которых такая же номенклатура.
|
|||
78
Эльфийка
18.02.12
✎
01:03
|
так, а надо искать по регистратору?
|
|||
79
Deon
18.02.12
✎
01:05
|
(76) не совсем. Представь так - мы бежим по записям регистра и для каждой находим соответствующую запись в таблице уатВыдачаРасходныхМатериалов.Материалы
|
|||
80
Deon
18.02.12
✎
01:05
|
(78) Не надо ничего искать. Надо правильно объединить
|
|||
81
Deon
18.02.12
✎
01:05
|
+(80) А для этого было бы неплохо понимать, что же мы объединяем
|
|||
82
Deon
18.02.12
✎
01:07
|
Короче, попробу
|
|||
83
Deon
18.02.12
✎
01:09
|
й так:
Запрос.Текст = " |ВЫБРАТЬ |РегПартии.Номенклатура, |РегПартии.Регистратор КАК Док, |уатВыдачаРасходныхМатериалов.ТС КАК ТС |ИЗ |РегистрНакопления.уатПартииТоваровНаСкладах.ОстаткиИОбороты(,,Регистратор,) КАК РегПартии |Левое СОЕДИНЕНИЕ Документ.уатВыдачаРасходныхМатериалов.Материалы КАК уатВыдачаРасходныхМатериалов |ПО РегПартии.Номенклатура = уатВыдачаРасходныхМатериалов.Номенклатура И РегПартии.Регистратор = уатВыдачаРасходныхМатериалов.Ссылка |ГДЕ |(РегПартии.Регистратор Ссылка Документ.уатВыдачаРасходныхМатериалов) |УПОРЯДОЧИТь ПО |РегПартии.Регистратор |"; РезультатЗапроса = Запрос.Выполнить(); Выборка=РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(""+Выборка.Док+" Номенклатура "+Выборка.Номенклатура+" ТС: "+Выборка.ТС); КонецЦикла; |
|||
84
Эльфийка
18.02.12
✎
01:32
|
(83)Deon -Вам честь и слава!!!!!!!!!! Низкий поклон!!!!!Не сочтите за наглость, воздушный поцелуйчик))) Ураааааааааааааааааа, работает
|
|||
85
Эльфийка
18.02.12
✎
01:33
|
Спасибо всем кто помог мне
|
|||
86
Deon
18.02.12
✎
01:34
|
Хотя запрос, конечно, хреновый.
|
|||
87
Эльфийка
18.02.12
✎
01:39
|
приходится его прогонять в цикле вывода строк таблицы отчета.
Было бы неплохо объединить с основным запросом ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | РегТовары.Период КАК Период, | РегТовары.Регистратор КАК Док, | РегТовары.Регистратор.Номер КАК НомерДок, | ПРЕДСТАВЛЕНИЕ(РегТовары.Регистратор) КАК ПечДок, | РегТовары.КоличествоНачальныйОстаток КАК КолНачОст, | РегТовары.КоличествоПриход КАК КолПриход, | РегТовары.КоличествоРасход КАК КолРасход, | РегТовары.КоличествоКонечныйОстаток КАК КолКонОст, | РегТовары.Номенклатура КАК Номенклатура |ИЗ | РегистрНакопления.уатПартииТоваровНаСкладах.ОстаткиИОбороты( | &НачГраница, | &КонГраница, | Регистратор, | , | Номенклатура = &Материал | И Склад = &Склад) КАК РегТовары |ГДЕ | РегТовары.Регистратор.Организация = &Орг | |УПОРЯДОЧИТЬ ПО | Период, | Док"; Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр( "НачГраница", Новый Граница(НачДата, ВидГраницы.Включая)); Запрос.УстановитьПараметр( "КонГраница", Новый Граница(КонецДня(КонДата), ВидГраницы.Включая)); Запрос.УстановитьПараметр( "Орг", Организация); Запрос.УстановитьПараметр( "Склад", Склад); Запрос.УстановитьПараметр( "Материал", Материал); РезультатЗапроса = Запрос.Выполнить(); |
|||
88
Deon
18.02.12
✎
01:43
|
(87) Используй (83). По сути всё то же самое
|
|||
89
Эльфийка
18.02.12
✎
01:45
|
|ГДЕ
| РегТовары.Регистратор.Организация = &Орг и |ГДЕ |(РегПартии.Регистратор Ссылка Документ.уатВыдачаРасходныхМатериалов) т.е. как правильно объединить условие ГДЕ-оператором И? |
|||
90
Эльфийка
18.02.12
✎
01:54
|
т.е. можно написать так?
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | РегТовары.Период КАК Период, | РегТовары.Регистратор КАК Док, | РегТовары.Регистратор.Номер КАК НомерДок, | ПРЕДСТАВЛЕНИЕ(РегТовары.Регистратор) КАК ПечДок, | РегТовары.КоличествоНачальныйОстаток КАК КолНачОст, | РегТовары.КоличествоПриход КАК КолПриход, | РегТовары.КоличествоРасход КАК КолРасход, | РегТовары.КоличествоКонечныйОстаток КАК КолКонОст, | РегТовары.Номенклатура КАК Номенклатура |уатВыдачаРасходныхМатериалов.ТС КАК ТС |ИЗ | РегистрНакопления.уатПартииТоваровНаСкладах.ОстаткиИОбороты( | &НачГраница, | &КонГраница, | Регистратор, | , | Номенклатура = &Материал | И Склад = &Склад) КАК РегТовары |Левое СОЕДИНЕНИЕ Документ.уатВыдачаРасходныхМатериалов.Материалы КАК уатВыдачаРасходныхМатериалов |ПО РегПартии.Номенклатура = уатВыдачаРасходныхМатериалов.Номенклатура И РегПартии.Регистратор = уатВыдачаРасходныхМатериалов.Ссылка |ГДЕ | (РегТовары.Регистратор.Организация = &Орг) И (РегПартии.Регистратор Ссылка Документ.уатВыдачаРасходныхМатериалов) | |УПОРЯДОЧИТЬ ПО | Период, | Док"; Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр( "НачГраница", Новый Граница(НачДата, ВидГраницы.Включая)); Запрос.УстановитьПараметр( "КонГраница", Новый Граница(КонецДня(КонДата), ВидГраницы.Включая)); Запрос.УстановитьПараметр( "Орг", Организация); Запрос.УстановитьПараметр( "Склад", Склад); Запрос.УстановитьПараметр( "Материал", Материал); РезультатЗапроса = Запрос.Выполнить(); ---выборка будет в цикле вывода строк таблицы отчета Выборка=РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Если (Выборка.Номенклатура = Обход.Номенклатура) И (Выборка.Док = Обход.Док) Тогда Сообщить(""+Выборка.Док+" Номенклатура "+Выборка.Номенклатура+" ТС: "+Выборка.ТС); Прервать КонецЕсли; КонецЦикла; ОбластьДанные.Параметры.ПечДок = Выборка.ТС |
|||
91
Deon
18.02.12
✎
01:59
|
Да. Ну только имена таблиц и запятые где надо надо правильно расставить и всё будет чики-пуки
|
|||
92
Эльфийка
18.02.12
✎
02:01
|
увидела один недочет, не соображу как исправить, если в табличной части документа уатВыдачаРасходныхМатериалов введено две строки с одинаковой номенклатурной позицией, но разными ТС, отчет объединяет количество на последнюю ТС
|
|||
93
Эльфийка
18.02.12
✎
02:03
|
Например, номенклатура -Фильтр воздушный, 1шт на ТС "BP 125 /16RUS", 1 шт на ТС "BP 117/16RUS" в результате в отчете выходит BP 117 /16RUS с 2-мя штуками
|
|||
94
Эльфийка
18.02.12
✎
02:04
|
оформлено в одном документе
|
|||
95
Эльфийка
18.02.12
✎
02:12
|
(92) а вернее на первую ТС, которую встречает в выборке
|
|||
96
BOZKURT
18.02.12
✎
02:14
|
(95) Эльфийка, пока меч не уберешь и не покажешь "давно известное место на своем теле", не получишь полный и развернутый ответ. ;)
|
|||
97
Эльфийка
18.02.12
✎
02:23
|
Теперь после объединения запросов, строки в отчете разбивает, но количество задваивает и пишет на одну ТС
|
|||
98
Эльфийка
18.02.12
✎
02:26
|
объединение запросов не подходит, теперь не видит других документов
|
|||
99
Эльфийка
18.02.12
✎
02:28
|
(96)так если место "давно известное", что его показывать? у мужского пола Вы тоже просите показать эти места?
|
|||
100
BOZKURT
18.02.12
✎
02:35
|
(99) Ни в коем разе! У них дамы просют.
А вообще, не хорошо вопрос повернули.. :) Не видать Вам ответа. |
|||
101
Эльфийка
18.02.12
✎
02:41
|
(100) Так я ответа и так не вижу(((((()))))))))))).и не надеюсь, все спят(((((((((
|
|||
102
Эльфийка
18.02.12
✎
02:44
|
(100)>А вообще, не хорошо вопрос повернули.. :)
Просто , наверное мне надо было оставаться мужским полом (см.переписку выше))))))). Но моя невнимательность меня подвела, выдала себя на окончании глаголов)))) |
|||
103
Wobland
18.02.12
✎
06:40
|
(102) на окончании существительных твоя невнимательность тебя подвела - человеку мужеского полу с именем Эльфийка помогали бы гораздо менее охотно. а вообще - не слушай дураков всяких (ветку опять не читал, топлесс просили?) ;)
|
|||
104
Эльфийка
18.02.12
✎
10:22
|
(103)Н-да, про логин,то я и забыла)))))))
|
|||
105
Deon
18.02.12
✎
13:49
|
(92) Периодичность таблицы уатПартииТоваровНаСкладах поставь не Регистратор, а Запись
|
|||
106
catena
18.02.12
✎
17:15
|
(58)Ну, бывает, не спорю... В 7.7 было много таких задач, в 8.1 правда пока не попадалось, только оракловую базу в одном месте в цикле дергаю...
(61)Конструктором можно любой сложности запрос сварганить, ну, кроме динамических вставок в текст. Немного тренировки и все получится. У тебя есть два работающих запроса, которые надо соединить по каким-то полям. |
|||
107
Эльфийка
20.02.12
✎
14:41
|
(105) После этого строчки разбивает, но значение ТС пишет и в той и другой строчке одинаковое. Пример (93) -результат- ТС "BP 125 /16RUS" 1 шт и ТС "BP 125 /16RUS" 1шт
|
|||
108
Эльфийка
20.02.12
✎
14:48
|
Теперь запросы переписаны, следующим образом:
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | РегТовары.Период КАК Период, | РегТовары.Регистратор КАК Док, | РегТовары.Регистратор.Номер КАК НомерДок, | ПРЕДСТАВЛЕНИЕ(РегТовары.Регистратор) КАК ПечДок, | РегТовары.КоличествоНачальныйОстаток КАК КолНачОст, | РегТовары.КоличествоПриход КАК КолПриход, | РегТовары.КоличествоРасход КАК КолРасход, | РегТовары.КоличествоКонечныйОстаток КАК КолКонОст, | РегТовары.Номенклатура КАК Номенклатура |ИЗ | РегистрНакопления.уатПартииТоваровНаСкладах.ОстаткиИОбороты( | &НачГраница, | &КонГраница, //| Регистратор, | Запись, | , | Номенклатура = &Материал | И Склад = &Склад) КАК РегТовары |ГДЕ | РегТовары.Регистратор.Организация = &Орг | |УПОРЯДОЧИТЬ ПО | Период, | Док"; Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; ... РезультатЗапроса = Запрос.Выполнить(); ... Запрос1 = Новый Запрос; Запрос1.Текст = "ВЫБРАТЬ | уатВыдачаРасходныхМатериалов.Ссылка КАК Док, | уатВыдачаРасходныхМатериалов.Номенклатура КАК Номенклатура, | уатВыдачаРасходныхМатериалов.ТС КАК ТС |ИЗ | Документ.уатВыдачаРасходныхМатериалов.Материалы КАК уатВыдачаРасходныхМатериалов | |УПОРЯДОЧИТЬ ПО | Ссылка, | Номенклатура //| ТС |"; РезультатЗапроса1 = Запрос1.Выполнить(); ... .... в цикле Вывода строк таблицы .... Если ТипЗнч(ОбластьДанные.Параметры.Док) = Тип("ДокументСсылка.уатВыдачаРасходныхМатериалов") Тогда Выборка=РезультатЗапроса1.Выбрать(); Пока Выборка.Следующий() Цикл Если (Выборка.Номенклатура = Обход.Номенклатура) И (Выборка.Док = Обход.Док) Тогда //Сообщить(""+Выборка.Док+" Номенклатура "+Выборка.Номенклатура+" ТС: "+Выборка.ТС); Прервать КонецЕсли; КонецЦикла; ОбластьДанные.Параметры.ПечДок = Выборка.ТС КонецЕсли; |
|||
109
Эльфийка
20.02.12
✎
14:53
|
т.е. цикл нашел док № 2 с номенклатурой "Фильтр воздушный" и номером ТС "BP 139 /16RUS", вывел в ТаблицуМакета, далее он опять находит этот док с этой же номенклатурой, но другого ТС "BP 122 /16RUS" не видит. Как сделать, чтобы он запомнил эту позицию?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |