Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Документ: табличная часть на основе запроса
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Constantus
Приветствую, Форумчане!

Имеется несколько Реализаций с неким общим параметром, скажем ПроектыПредприяти (ссылка)

Реализация имеет заполненные ТЧ.

Как сделать Документ, табличная часть которого будет основана на Табличных Частях этих Реализаций?

Т.е. создаю Документ, заполняю в нем реквизит "ПроектПредприятия", после заполнения оного в табличной части Документа появляется "виртуальная таблица", а не реальная ТЧ документа, где отображены все реализованные номенклатуры...

Практически, как сформировать Документа с ТЧ на основе запроса?

ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Ссылка,
    РеализацияТоваровУслугТовары.Ссылка.ПроектПредприятия,
    РеализацияТоваровУслугТовары.Номенклатура,
    РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
    РеализацияТоваровУслугТовары.Количество,
    РеализацияТоваровУслугТовары.Цена,
    РеализацияТоваровУслугТовары.Сумма
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
    РеализацияТоваровУслугТовары.Ссылка.ПроектПредприятия = &ПроектПредприятия
pablo
Используйте в форме документа ТаблицуЗначений или ДинамическийСписок для такого отображения данных.
Constantus
Забыл уточнить: УТ 10.3, 1с8.2, обычное

И чтобы была возможность редактирования данных...
Petre
Если вы хотите в таком документе редактировать данные с одновременным изменением в других документах - источниках этих данных, то использовать объект "документ" для этого не верно.
Constantus
Petre @ Сегодня, 14:27 необходимо зарегистрироваться для просмотра ссылки,


А какой объект нужно и правильно использовать?
TipsyKID
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    РеализацияТоваровУслугУслуги.*
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
    |ГДЕ
    |    РеализацияТоваровУслугУслуги.Ссылка = &Ссылка";
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаДокумент);
    РезультатЗапроса = Запрос.Выполнить().Выгрузить();
    
    ТабличноеПолеНаФорме = РезультатЗапроса;

    ЭлементыФормы.ТабличноеПолеНаФорме.СоздатьКолонки();
    ЭлементыФормы.ТабличноеПолеНаФорме.ОбновитьСтроки();


Думаю лечше будет создать отдельную кнопку для применения данных которые могли изменить и на неё повесить уже следущий алгоритм (но он наверняка далек от совершенства):
    ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
    
    мРежимЗаписиДокумента = ?(ДокументОбъект.Проведен,РежимЗаписиДокумента.Проведение,РежимЗаписиДокумента.Запись);
    
    ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);

    ДокументОбъект.Услуги.Загрузить(ТабличноеПолеНаФорме);
    ДокументОбъект.ОбменДанными.Загрузка = Истина;
    ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
    
    Если мРежимЗаписиДокумента =  РежимЗаписиДокумента.Проведение Тогда
        Попытка
            ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
Petre
Цитата(Constantus @ 25.02.16, 12:02) необходимо зарегистрироваться для просмотра ссылки
А какой объект нужно и правильно использовать?

Документ - объект, который фиксирует определенные данные на определенный момент времени. Менять эти данные другим документом методологически не верно.
Как делать в вашем случае - зависит от сути бизнес-процесса. Разбивайте на этапы, статусность. Используйте обработки...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.