Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Вывод в ПолеТабличногоДокумента , Не могу вывести в элемент управления ПолеТабличногоДокумента на форме          
sanytch Подменю пользователя
сообщение 26.09.17, 11:08
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 93
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго времени суток форумчане! Имею:
1. 1С:Предприятие 8.3 (8.3.10.2505)
2. Бухгалтерия сельскохозяйственного предприятия для Украины, редакция 1.2 Разработка конфигурации: ЧП "ИН-АГРО", 2016 (1.2.36.2)

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

Код
    ТабЗнач = Новый ТаблицаЗначений;
    
// текст собственно самого запроса

    РезультатЗапроса = Запрос.Выполнить();
    
    ТабЗнач = РезультатЗапроса.Выгрузить();
    ТабЗнач.Сортировать("Пайщик Возр");
    ТабЗнач.Свернуть("Сельсовет, Пайщик", "Сумма, Удержано, КВыдаче");    
    
    ЭлементыФормы.ПолеТабличногоДокумента.Вывести(ТабЗнач);//ВОТ ЗДЕСЬ и вся проблема. Выдает ошибку: {ВнешнийОтчет.ВнешнийОтчет1.Форма.ФормаОтчета.Форма(68)}: Ошибка при вызове метода контекста (Вывести)
                                                                                                      //ЭлементыФормы.ПолеТабличногоДокумента.Вывести(ТабЗнач);
                                                                                                      //по причине:
                                                                                                      //Несоответствие типов (параметр номер '1')


Сообщение отредактировал Vofka - 26.09.17, 12:11

pablo Подменю пользователя
сообщение 26.09.17, 11:21
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Попытайтесь запустить в коде через контекстное меню Конструктор запроса с обработкой результата и скопируйте в конструктор текст запроса. Посмотрите, сколько кода Вам вывалит конструктор и сравните со своей 1 строчкой.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

salton Подменю пользователя
сообщение 26.09.17, 11:33
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

Цитата(sanytch @ 26.09.17, 12:08) *
ЭлементыФормы.ПолеТабличногоДокумента.Вывести(ТабЗнач);

А на форме точно есть "ПолеТабличногоДокумента"? Табличное поле с названием "ПолеТабличногоДокумента" присутствует?

sava1 Подменю пользователя
сообщение 26.09.17, 12:12
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(sanytch @ 26.09.17, 12:08) *
ЭлементыФормы.ПолеТабличногоДокумента.Вывести(ТабЗнач);

В этом случае ТабЗнач долно быть Табличным Документом. :

ТабДок = Новый ТабличныйДокумент;
//  тут заполняем ТабДок из ТабЗнач
ЭлементыФормы.ПолеТабличногоДокумента.Вывести(ТабДок);


типо так....

sanytch Подменю пользователя
сообщение 26.09.17, 14:31
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 93
Спасибо сказали: 0 раз
Рейтинг: 0

salton @ Сегодня, 12:33 * ,
да, есть.

sanytch Подменю пользователя
сообщение 26.09.17, 15:45
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 93
Спасибо сказали: 0 раз
Рейтинг: 0

sava1 @ Сегодня, 13:12 * ,
пытался и из ТабличногоДокумента вывести данные в ПолеТабличногоДокумента - никак. Правда я заполнял его не из ТабЗнач, а прям результатами запроса, потом сортировал и сворачивал... Думаю что это не принципиально как заполнил. Все равно не выводит sad.gif

podcast Подменю пользователя
сообщение 26.09.17, 16:13
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 306
Спасибо сказали: 74 раз
Рейтинг: 0

sanytch @ Сегодня, 16:45 * ,
Добавьте колонки такие как у вас в запросе, и должно заполнить.

sanytch Подменю пользователя
сообщение 26.09.17, 16:33
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 93
Спасибо сказали: 0 раз
Рейтинг: 0

sava1 @ Сегодня, 13:12 * ,
Прошу прощения. Получилось. Вывел. Получилась чисто таблица. Попутно на быструю руку состряпал ВнешнийОтчет без форм - только СхемаКомпоновкиДанных.
Здесь есть Группировка что мне необходимо, но без свертки получаю дубли записей.

Может подскажите как их убрать? Данные получаю через вот такой запрос
ВЫБРАТЬ
    Контрагенты.Наименование КАК Пайщик,
    Контрагенты.Родитель КАК Сельсовет,
    NULL КАК Сумма,
    NULL КАК Удержано,
    NULL КАК КВыдаче
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Родитель В ИЕРАРХИИ(&Пайщики)
    И Контрагенты.ЭтоГруппа = ЛОЖЬ

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    ИНАГРО_НачислениеПоПаямТовары.Контрагент,
    ИНАГРО_НачислениеПоПаямТовары.Контрагент.Родитель,
    СУММА(ИНАГРО_НачислениеПоПаямТовары.Сумма),
    СУММА(ИНАГРО_НачислениеПоПаямТовары.Удержано + ИНАГРО_НачислениеПоПаямТовары.УдержаноВЗ + ИНАГРО_НачислениеПоПаямТовары.Алименты),
    СУММА(ИНАГРО_НачислениеПоПаямТовары.КВыдаче)
ИЗ
    Документ.ИНАГРО_НачислениеПоПаям.Товары КАК ИНАГРО_НачислениеПоПаямТовары
ГДЕ
    ИНАГРО_НачислениеПоПаямТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода

СГРУППИРОВАТЬ ПО
    ИНАГРО_НачислениеПоПаямТовары.Контрагент.Родитель,
    ИНАГРО_НачислениеПоПаямТовары.Контрагент

УПОРЯДОЧИТЬ ПО
    Пайщик

Понятно что если у контрагента-пайщика нет начислений по паям то напротив его фамилии пусто (получаю из первого запроса), а если у пайщика были начисления то получаю 2 строки, и из первого с пустыми значениями и из второго с начислениями. Для этого придумал свернуть но тогда нужно выгружать в ТабДок, сворачивать и из него выгружать в ПолеТабличногоДокумента, но тогда пропадает группировка по Сельсовету. Может на уровне СКД можно либо запрос грамотнее построить или есть возможность свернуть его результаты "без танцев с бубнами". Заранее спасибо.

podcast @ Сегодня, 17:13 * ,
Спасибо за ответ. Пробовал и так. Не помню правда то ли ошибку то ли пустоту выдавал.

pablo Подменю пользователя
сообщение 26.09.17, 16:54
Сообщение #9

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

как-то так на колене получается:
ВЫБРАТЬ     Контрагенты.Наименование КАК Пайщик,
Контрагенты.Ссылка как контрагент,  
   Контрагенты.Родитель КАК Сельсовет
Поместить Пайщики
ИЗ     Справочник.Контрагенты КАК Контрагенты
ГДЕ     Контрагенты.Родитель В ИЕРАРХИИ(&Пайщики)    
И Контрагенты.ЭтоГруппа = ЛОЖЬ;
ВЫБРАТЬ    
Пайщики.Пайщик,    
Пайщики.Сельсовет,
     СУММА(ЕСТЬNULL(ЕИНАГРО_НачислениеПоПаямТовары.Сумма,0)),
     СУММА(ЕСТЬNULL(ИНАГРО_НачислениеПоПаямТовары.Удержано,0) + ЕСТЬNULL(ИНАГРО_НачислениеПоПаямТовары.УдержаноВЗ,0) + ЕСТЬNULL(ИНАГРО_НачислениеПоПаямТовары.Алименты,0)),
     СУММА(ЕСТЬNULL(ИНАГРО_НачислениеПоПаямТовары.КВыдаче,0))
ИЗ     Пайщики как Пайщики левое соединение Документ.ИНАГРО_НачислениеПоПаям.Товары КАК ИНАГРО_НачислениеПоПаямТовары
по Пайщики.Контрагент=ИНАГРО_НачислениеПоПаямТовары.Контрагент
ГДЕ     ЕСТЬNULL(ИНАГРО_НачислениеПоПаямТовары.Ссылка.Дата,&НачалоПериода) МЕЖДУ &НачалоПериода И &КонецПериода  
СГРУППИРОВАТЬ ПО  
Пайщики.Пайщик,  
  Пайщики.Сельсовет


Сообщение отредактировал pablo - 26.09.17, 16:56


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: sanytch,

sanytch Подменю пользователя
сообщение 27.09.17, 9:36
Сообщение #10

Говорящий
***
Группа: Пользователи
Сообщений: 93
Спасибо сказали: 0 раз
Рейтинг: 0

pablo @ Вчера, 17:54 * ,
Спасибо большое, ход мысли я понял: Временная таблица со ВСЕМИ нужными контрагентами а потом через левое соединение для каждого либо 0 если нет его в документе либо числа из соответствующих полей табчасти документа.
С колена у Вас получилось почти правильно, подправил пару мелочей и вышло так:
ВЫБРАТЬ
    Контрагенты.Ссылка КАК Пайщик,
    Контрагенты.Наименование,
    Контрагенты.Родитель КАК Сельсовет
ПОМЕСТИТЬ Пайщики
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Родитель В ИЕРАРХИИ(&Пайщики)
    И Контрагенты.ЭтоГруппа = ЛОЖЬ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Пайщики.Пайщик,
    Пайщики.Сельсовет,
    СУММА(ЕСТЬNULL(ИНАГРО_НачислениеПоПаямТовары.Сумма, 0)) КАК Начислено,
    СУММА(ЕСТЬNULL(ИНАГРО_НачислениеПоПаямТовары.Удержано, 0) + ЕСТЬNULL(ИНАГРО_НачислениеПоПаямТовары.УдержаноВЗ, 0) + ЕСТЬNULL(ИНАГРО_НачислениеПоПаямТовары.Алименты, 0)) КАК Удержано,
    СУММА(ЕСТЬNULL(ИНАГРО_НачислениеПоПаямТовары.КВыдаче, 0)) КАК КВыдаче
ИЗ
    Пайщики КАК Пайщики
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИНАГРО_НачислениеПоПаям.Товары КАК ИНАГРО_НачислениеПоПаямТовары
        ПО Пайщики.Пайщик = ИНАГРО_НачислениеПоПаямТовары.Контрагент.Ссылка
ГДЕ
    ЕСТЬNULL(ИНАГРО_НачислениеПоПаямТовары.Ссылка.Дата, &НачалоПериода) МЕЖДУ &НачалоПериода И &КонецПериода

СГРУППИРОВАТЬ ПО
    Пайщики.Пайщик,
    Пайщики.Сельсовет

Соединение по ссылкам только нужно устанавливать, если просто по наименованиям то выводит всех контрагентов а вот цифр пусто...
Огромное спасибо всем откликнувшимся и особенно pablo!!!

sanytch Подменю пользователя
сообщение 27.09.17, 14:03
Сообщение #11

Говорящий
***
Группа: Пользователи
Сообщений: 93
Спасибо сказали: 0 раз
Рейтинг: 0

pablo @ Вчера, 17:54 * ,
В предыдущем запросе нашелся изъян и данные выводились не совсем в полном объёме. решил переделать с вложенным запросом, работает отлично, получилось вот так:
ВЫБРАТЬ
    Контрагенты.Родитель,
    Контрагенты.Наименование,
    Начисления.Сумма,
    Начисления.Удержано + Начисления.Алименты + Начисления.УдержаноВЗ КАК Удержано,
    Начисления.КВыдаче
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ИНАГРО_НачислениеПоПаямТовары.Контрагент КАК Контрагент,
            ИНАГРО_НачислениеПоПаямТовары.Сумма КАК Сумма,
            ИНАГРО_НачислениеПоПаямТовары.Удержано КАК Удержано,
            ИНАГРО_НачислениеПоПаямТовары.Алименты КАК Алименты,
            ИНАГРО_НачислениеПоПаямТовары.УдержаноВЗ КАК УдержаноВЗ,
            ИНАГРО_НачислениеПоПаямТовары.КВыдаче КАК КВыдаче
        ИЗ
            Документ.ИНАГРО_НачислениеПоПаям.Товары КАК ИНАГРО_НачислениеПоПаямТовары
        ГДЕ
            ИНАГРО_НачислениеПоПаямТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода) КАК Начисления
        ПО Контрагенты.Наименование = Начисления.Контрагент.Наименование
ГДЕ
    Контрагенты.Родитель В ИЕРАРХИИ(&Пайщики)
    И Контрагенты.ЭтоГруппа = ЛОЖЬ


Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 16:07
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!