|
Заполнение таблицы через цикл Пока, почему не работает? ↓ (Волшебник 28.03.2024 11:19) |
☑ | ||
---|---|---|---|---|
0
vienya
27.03.24
✎
21:57
|
ОбластьМакета = Макет.ПолучитьОбласть("ТелоТаблицы");
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СчетНаОплатуПокупателю.Товары.( | Номенклатура КАК Номенклатура, | Количество КАК Количество, | Цена КАК Цена, | Сумма КАК Сумма | ) КАК Товары |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю"; РезультатЗапроса = Запрос.Выполнить().Выбрать(); //ТабличныйДокумент.Очистить(); ТабличныйДокумент.Вывести(ОбластьМакета); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьМакета.Параметры.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; ОбластьМакета.Параметры.Количество = ВыборкаДетальныеЗаписи.Количество; ОбластьМакета.Параметры.Цена = ВыборкаДетальныеЗаписи.Цена; ОбластьМакета.Параметры.Сумма = ВыборкаДетальныеЗаписи.Сумма; ОбластьМакета.Параметры.Записать(); КонецЦикла; Внешняя обработка для БП 8.3 Корп. Запрос сделал через конструктор запросов. Цикл Пока ВыборкаДетальныеЗаписи.Следующий() - показывает пустографы. Сильно не бейте. |
|||
1
sitex
naïve
27.03.24
✎
21:59
|
(0) А какие были ожидания ?!
|
|||
2
sitex
naïve
27.03.24
✎
22:00
|
Возьми консоль открой в Приложении и свой запрос выполни в нем .
|
|||
3
Волшебник
27.03.24
✎
22:01
|
Используйте СКД
|
|||
4
sitex
naïve
27.03.24
✎
22:02
|
(3) Мне кажется у него там близко ОФ. и СКД не в милость
|
|||
5
vienya
27.03.24
✎
22:06
|
(4) (3) (2) Спасибо.
|
|||
6
Волшебник
27.03.24
✎
22:11
|
(5) Спасибо, что отвечаете. Что понимаете?
|
|||
7
Ёпрст
28.03.24
✎
00:17
|
(0) Выборка = Запрос.Выполнить().Выбрать();
.... Пока Выборка.Следующий() Цикл ВыборкаДетальныеЗаписи = Выборка.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл |
|||
8
vienya
28.03.24
✎
04:35
|
(6) Меня отослали к СКД и консоли запросов. Это требует времени для освоения. Поэтому я попробовал цикл Для каждого. Жалуется - не видит СсылкаНаОбъект.Товары из СчетНаОплатуПокупателю:
ОбластьМакета = Макет.ПолучитьОбласть("ТелоТаблицы"); Для каждого ТекущаяСтрока Из СсылкаНаОбъект.Товары Цикл ОбластьМакета.Параметры.Номерклатура = ТекущаяСтрока.Номенклатура; ОбластьМакета.Параметры.Количество = ТекущаяСтрока.Количество; ОбластьМакета.Параметры.Цена = ТекущаяСтрока.Цена; ОбластьМакета.Параметры.Сумма = ТекущаяСтрока.Сумма; ОбластьМакета.Параметры.Всего = ТекущаяСтрока.Сумма * ТекущаяСтрока.Количество; ТабличныйДокумент.Вывести(ОбластьМакета); КонецЦикла; |
|||
9
vienya
28.03.24
✎
04:46
|
||||
10
rphosts
28.03.24
✎
05:31
|
(0) >Цикл Пока ВыборкаДетальныеЗаписи.Следующий() - показывает пустографы
с наркоманского на человеческий переведи! у тебя то что ты называешь циклом по сути 4 типа операций: 1.циклическое выполнение блока кода 2.Получение данных колонок результата запроса 3.присвоение полученного в операции 2. параметру области табличного документа(макета). 4.Какое-то порно с записью вместо вывода в табличный докумекнт |
|||
11
rphosts
28.03.24
✎
05:31
|
(8) ты ливингстар или бот?
|
|||
12
vienya
28.03.24
✎
06:55
|
(10) (11) Я отказался от цикла Пока в пользу Для каждого. Но это мне не помогло. По человечески, цель - заполнить таблицу данными из документа.
Почему ругается на СсылкаНаОбъект.СчетНаОплатуПокупателю.Товары, не видит ни СсылкаНаОбъект.Товары, ни Товары, как обратиться к табличной части? |
|||
13
vienya
28.03.24
✎
07:18
|
||||
14
steep1
28.03.24
✎
07:20
|
(0) может у тебя нет документов с табличной частью заполненной?
|
|||
15
vladmenleo
28.03.24
✎
07:21
|
(0)
лТекст = " |ВЫБРАТЬ | СчетНаОплатуПокупателю.Товары.( | Номенклатура КАК Номенклатура, | Количество КАК Количество, | Цена КАК Цена, | Сумма КАК Сумма | ) КАК Товары |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю |ГДЕ | СчетНаОплатуПокупателю.Дата МЕЖДУ &Дата1 И &Дата2 |"; лЗапрос = Новый Запрос(лТекст); // Присвоение значений переменным параметров. Дата1 = Дата(2024, 01, 01, 00, 00, 00); Дата2 = Дата(2024, 03, 01, 00, 00, 00); // Установка параметров. лЗапрос.УстановитьПараметр("Дата1", Дата1); лЗапрос.УстановитьПараметр("Дата2", Дата2); лВыборка = лЗапрос.Выполнить().Выбрать(); Пока лВыборка.Следующий() Цикл СтрТовары = лВыборка.Товары.Выбрать(); Пока СтрТовары.Следующий() Цикл сообщить("Номенклатура " + СтрТовары.Номенклатура); КонецЦикла; КонецЦикла; Все чудно работает |
|||
16
vienya
28.03.24
✎
07:25
|
(7) При таких двух циклах не обнаруживает номенклатуру в ОбластьМакета.Параметры.Номерклатура
|
|||
17
Гипервизор
28.03.24
✎
07:29
|
(13) Параметр Номенклатура с типом ДокументСсылка.СчетНаОплатуПокупателю..
Я не в состоянии постичь величие замысла. А по что касается запроса, сравните: ВЫБРАТЬ СчетНаОплатуПокупателю.Товары.( Номенклатура КАК Номенклатура ) КАК Товары ИЗ Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю и ВЫБРАТЬ СчетНаОплатуПокупателюТовары.Номенклатура ИЗ Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары Дальше сами. |
|||
18
rphosts
28.03.24
✎
08:39
|
(14) он не реагирует на простые вопросы, 99% это бот
|
|||
19
vienya
28.03.24
✎
08:41
|
(14) Чуть кандрашка не хватила, но нет, табличные части всех документов заполнены. Пустые не проводятся.
(17) Спасибо, хороший рабочий код запроса. Но это никак не повлияло на вывод данных в табличную часть. Для меня открытым остаётся вопрос, нужен ли вообще запрос для вывода данных. |
|||
20
vienya
28.03.24
✎
08:47
|
(11) (18) Я думал, что это вообще типовая задача.
|
|||
21
Волшебник
28.03.24
✎
08:52
|
(20) Чем думали-то?
|
|||
22
SerF_2011
28.03.24
✎
09:04
|
(0) а то что в РезультатеЗапроса не результат запроса кто-нибудь видит?
|
|||
23
vienya
28.03.24
✎
09:07
|
||||
24
vienya
28.03.24
✎
09:09
|
(22) А без запроса, вообще возможно вывести данные в таблицу? Просто через цикл?
|
|||
25
Галахад
28.03.24
✎
09:14
|
(24) Для Каждого Стр Из СсылкаНаОбъект.Товары Цикл
... Но это не канонично. |
|||
26
Гена
28.03.24
✎
09:16
|
ОбластьМакета.Параметры.Номерклатура
Это нормально? |
|||
27
vienya
28.03.24
✎
09:17
|
(25) Галхард, что не так с СсылкаНаОбъект.Товары ?https://ltdfoto.ru/image/OEtBO7
https://ltdfoto.ru/image/OEze4p |
|||
28
vienya
28.03.24
✎
09:20
|
(26) Спа-си-бо!!! Глаз - алмаз.
|
|||
29
vienya
28.03.24
✎
09:30
|
Как обратиться? https://ltdfoto.ru/image/OE7jid
|
|||
30
Волшебник
28.03.24
✎
09:31
|
(29) Если поля не обнаружено, значит его там нет! Успокойтесь уже и разберитесь с типами
|
|||
31
vienya
28.03.24
✎
09:34
|
из Документ.СчетНаОплатуПокупателю./Табличные части/Товары
|
|||
32
vienya
28.03.24
✎
09:35
|
тип ссылка
|
|||
33
vienya
28.03.24
✎
09:37
|
(30) вот же!: https://ltdfoto.ru/image/OEPeRA
|
|||
34
Волшебник
28.03.24
✎
09:38
|
(32) Это Вам так кажется! Поставьте точку останова и посмотрите истину
|
|||
35
vienya
28.03.24
✎
09:57
|
Я раздавлен. 1с - это путь страдания. Мне нужна таблетка от отчаянья.
|
|||
36
vienya
28.03.24
✎
09:58
|
Всё напрасно.
|
|||
37
Волшебник
28.03.24
✎
09:59
|
(35) А Вы думали, что в сказку попали? Вы в жизнь вляпались...
|
|||
38
SerF_2011
28.03.24
✎
10:36
|
(35) да не ссы ты)) для первой темы на форуме это еще вполне неплохо, вон сколько гигантов мысли сбежалось, даже сам Волшебник помогает!
|
|||
39
Гена
28.03.24
✎
10:43
|
Это... там рядом кто-нибудь есть?.. вдруг он... того...
|
|||
40
Dmitrii
28.03.24
✎
11:25
|
(0) Суть Вашего кода в том, что Вы берёте область макета
Выполняете какой-то код, а потом, никак не изменив эту саму область (оставив по сути пустой) выводите в табличный документ
Никакого смысла от манипуляция с этой областью после того, как Вы вывели её в табличный документ, уже нет. Внутри цикла абсолютно бессмысленный код. Внутри цикла Вы должны были заполнять параметры области и выводить область с заполненными параметрами в табличный документ. Перед циклом выводить область в ТД не нужно. Что делает этот оператор
я вообще не понял. А ещё интересно посмотреть что из себя представляет область "ТелоТаблицы". Есть подозрение, что это не строка табличной части.... Рекомендую Вам для начала просто посмотреть на типовой код, который выдаёт конструктор печати. В дереве метаданных конфигурации правая кнопка мыши на Вашем документе и выбрать "Конструкторы - Конструктор печати". Он состряпает Вам макет и процедуру "Печать" (конкретное имя метода и место его размещения можно выбрать в конструкторе). Конструктор выдаст код без использования запроса. Влепить туда запрос вместо объектного кода не составит труда. |
|||
41
vienya
28.03.24
✎
16:45
|
(35) Таблетка, т.е. решение всё же нашлось - у меня в свойствах стоял ссылочный тип, а нужно было наоборот снять флаг с СодержитЗначение. Всем спасибо! https://ltdfoto.ru/image/OMhCCo
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |