| 
    
            
         
         | 
    
    
  | 
        Заполнение таблицы через цикл Пока, почему не работает?     ↓ (Волшебник 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     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |