Версия для печати темы (https://pro1c.org.ua/index.php?s=28869ffa32a2e449e1204b8f4e084c59&showtopic=54686)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Вывод данных из поля табличной части в дополнительное поле формы списка документа

Автор: jojojoba2 17.10.19, 12:16

Добрый день!

Есть задача в 1С8.3 в форму списка документа Платежное поручение входящее добавить новое поле ЗаказПокупателя и в него вывести данные с табличной части РасшифровкаПлатежа из поля сделка(в котором отображается заказ покупателя). Помогите пожалуйста разобратся начинающему програмисту :

Код

Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
    
     ЭтотОбъект = Документы.ПлатежноеПоручениеИсходящее;
    Запрос = Новый Запрос;
    Запрос.Текст ="ВЫБРАТЬ
                  |    ЗаказПокупателя.Ссылка
                  |ИЗ
                  |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
                  |ГДЕ
                  |    ЗаказПокупателя.Ссылка = &ТекущийДокумент";
    
    Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.СсылкаНаОбъект);
    Результат = Запрос.ВыполнитьПакет();
    ВыборкаЗП = Результат.Выбрать();
    
    ОтборВыборки = Новый Структура("Заказ");
    Для Каждого ТекОформление Из ОформленияСтрок Цикл
        ОтборВыборки.ЗаказПокупателя = ТекОформление.ДанныеСтроки.Ссылка;
        
         ТекОформление.Ячейки.ЗП.Значение(ВыборкаЗП.НайтиСледующий(ОтборВыборки));
        
    КонецЦикла;
КонецПроцедуры


ЗП ---это колонка в форме списка в которую нужно вывести данные


При запуске выдает ошибку:


Документ.Справки_расчеты_роялти.Форма.ФормаСписка.Форма(132)}: Поле объекта не обнаружено (СсылкаНаОбъект)
Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.СсылкаНаОбъект);

----- Как правильно задать параметры колонки ЗП (поле ввода или указать данные реквизита )
----- Правильный запрос вывода значения с табличной части этого документа(я попытался через ссылку на заказ покупателя)
----- Правильный метод вывода значения в колонку формы списка.


Если можно , сбросьте пример.

Заранее всем спасибо.


 ! 

https://pro1c.org.ua/index.php?act=announce&id=2: 9
 

Автор: Vofka 17.10.19, 12:28

Текущее платежное поручение у вас находится здесь ТекОформление.ДанныеСтроки.Ссылка. Последовательность действий должна быть примерно такая:
- обходим циклом ОформленияСтрок и собираем все ссылки на платежные поручения в массив и дополнительно наполняем Соответствие, ключом которого будет эта же ссылка на документ, а значением будет ТекОформление;
- выполняем запрос с условием ЗаказПокупателя.Ссылка В (&МассивСсылок);
- обходим в цикле результат запроса и через Соответствие[Выборка.Ссылка] получаем ОформлениеСтроки, соответствующее нужному документу;
- используем полученное ОформлениеСтроки для вывода нужной информации.

Автор: jojojoba2 17.10.19, 12:45

Vofka @ Сегодня, 13:28 * ,


А можно пожалуйста пример вывода данных , у меня подозрение что :

ТекОформление.Ячейки.ЗП.Значение(ВыборкаЗП.НайтиСледующий(ОтборВыборки)); - неправильно


Автор: Vofka 17.10.19, 13:00

jojojoba2, скорее всего не правильно. Я вообще суть написанного не сильно понял smile.gif . Но последовательность действий вроде доступно выше описал. Что именно там не понятно или не получается?

Автор: jojojoba2 17.10.19, 13:14

Vofka @ Сегодня, 14:00 * ,

Я тестирую вывод данных конкретно в ячейку , и мне интересно ТекОформление.Ячейки.ЗП.Значение(правильное значение) вообще выведет информацию? ТекОформление.Ячейки.ЗП.правильный метод

Автор: Vofka 17.10.19, 13:49

jojojoba2, блин, ну возьмите проверьте выведет или нет. Но, по-моему, не выведет. Но вы проверьте crazy.gif .

Автор: fly 18.10.19, 16:45

Цитата(jojojoba2 @ 17.10.19, 13:16) *
в форму списка документа Платежное поручение входящее добавить новое поле ЗаказПокупателя и в него вывести данные с табличной части РасшифровкаПлатежа


Расшифровка платежа = 1-....n количество строк (строки ТЧ).
Рискуете получить множество повторяющихся документов в форме списка - и это уже не список, а отчет или обработка.

Цитата(jojojoba2 @ 17.10.19, 14:14) *
Я тестирую вывод данных конкретно в ячейку , и мне интересно ТекОформление.Ячейки.ЗП.Значение(правильное значение) вообще выведет информацию? ТекОформление.Ячейки.ЗП.правильный метод


вряд ли
опять же возвращаемся, при выводе строки = 1 строка = 1 документ.
а Выборка
ВыборкаЗП = Результат.Выбрать();

содержит множество и поставить множество в поле... ну как то не очень наверное, ну если еще и типизация должна = Документ.Ссылка и и т.п.
Ну на крайняк можно получить ссылку на первое значение выборки или любое указанное вами
ВыборкаЗП.Получить(0)


ОформлениеЯчейки.Значение
в форме списка документа, оформляет ячейку - скорее всего связано с данными "ДокументСписок" или что подобное => "Только чтение" это свойство нельзя использовать. Не сработает.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua