|   |   | 
| 
 | ТЧ документа загрузить в запрос | ☑ | ||
|---|---|---|---|---|
| 0
    
        Ilnazio 30.03.22✎ 10:41 | 
        Добрый день. Знаю что тут очевидное и простое решение до которого допереть не могу.
 Нам надо 2 ТЧ 2-х документов соединить: реализация и возврат, все это происходит в обработке заполнения возврата, ссылки на док еще нет, но его ТЧ уже заполнена, ссылка на тч реализации есть, его можно запросом прям взять, а вот тч возврата я хз как без описания его колонок взять.. помогите плиз | |||
| 1
    
        Гипервизор 30.03.22✎ 10:50 | 
        (0) Выгрузить в ТЗ. А ТЧ в возврате откуда заполнена? Задача какая?     | |||
| 2
    
        acht 30.03.22✎ 10:51 | 
        (0) https://www.1c-uc3.ru/zapros-sod-den.html
 4. Практическая работа с языком запросов - Работа с запросами на встроенном языке Платформы 8 - Временные таблицы и пакетные запросы | |||
| 3
    
        acht 30.03.22✎ 10:52 | 
        (1) > Выгрузить в ТЗ
 ТЧ можно сразу в параметр | |||
| 4
    
        Ilnazio 30.03.22✎ 10:53 | 
        (1) Типовым способом в обработке заполнения. Задача следующая: добавилась новая колонка номенклатура поставщика. Возврат создается на основе реализации. В реализации данная номенклатура есть, надо ее заполнить и в возврате     | |||
| 5
    
        Ilnazio 30.03.22✎ 10:53 | 
        (3) а как описать колонки в запросе, понятно что параметром в запросе будет ТЗ     | |||
| 6
    
        Ilnazio 30.03.22✎ 10:55 | 
        (1) https://programmist1s.ru/kak-pomestit-tablitsu-v-zapros-1s/
 Вот как тут по сути надо сделать, НО они описывают колонку номенклатуры и дают ей тип. Неужели надо всю ТЧ возврата так описать? | |||
| 7
    
        acht 30.03.22✎ 10:56 | 
        (5) >  понятно что параметром в запросе будет ТЗ
 Нет. ТЧ. Можно. Сразу. В. Параметр. | |||
| 8
    
        Ёпрст гуру 30.03.22✎ 10:58 | 
        (5) она уже будет типизирована и можно пихать тч, а не тз.     | |||
| 9
    
        Ilnazio 30.03.22✎ 10:58 | 
        можешь пожалуйста пример запроса привести, не понимаю как без данные брать в запросе в таком случае без описания колонок. Я так понимаю запрос должен знать какие колонки ему с ТЗ приходят в параметре     | |||
| 10
    
        mikecool 30.03.22✎ 10:59 | 
        (5) я не парюсь в конструкторе, а пишу сразу что то типа
 Выбрать * Из &ТЧ Как ТЧ и уже это открываю в конструкторе, а потом руками колонки дописываю | |||
| 11
    
        Ilnazio 30.03.22✎ 11:00 | 
        (10) Понял, попробую. Если что я не пиндос, просто с впн сижу :D     | |||
| 12
    
        Ilnazio 30.03.22✎ 11:03 | 
        (10) в конфе нельзя же повторно описывать колонки     | |||
| 13
    
        Said_We 30.03.22✎ 15:53 | 
        (12) А чего в запросе описывать собрался?
 Описание типа колонок необходимо для самой ТЗ, когда передаешь её параметром в запрос. В запросе просто используешь, только те, которые тебе нужны. Конструктор запроса не может знать какие колонки будут переданы в ТЗ, поэтому допускает любые. Если лень ручками писать, то возьми запросом из похожей таблицы в конфигураторе - не важно какой, ТЧ документа РС или ещё что. Далее ручками меняешь на "ИЗ &ТЗ как ..." и обязательно ПОМЕСТИТЬ, так как напрямую с данными из ТЗ работать нельзя их сначала надо поместить во внутреннюю таблицу менеджера временных таблиц. | |||
| 14
    
        Said_We 30.03.22✎ 16:00 | 
        Описание типа колонок в самом запросе я встречал только в случае, если сама ТЗ заполняется из какого-то внешнего источника данных.
 Что бы не писать для каждой колонки её тип описание, квалификатор и т.д. Просто структура берется из живых данных с условием "ГДЕ ЛОЖЬ". И выгружается в ТЗ. Так как запрос пустой, то и ТЗ будет пустая, но все колонки будут такого же типа что и в структуре данных. Далее эта ТЗ как-то заполняется и параметром обратно в запрос. | |||
| 15
    
        serverstar 30.03.22✎ 16:10 | 
        (10) да, только не забыть поместить в виртуальную таблицу
 Выбрать * ПОМЕСТИТЬ ВтТЧ Из &ТЧ Как ТЧ | |||
| 16
    
        mikecool 30.03.22✎ 16:13 | 
        (12) ты о чем? может все таки пиндос? ))     | |||
| 17
    
        Aleksandr N 30.03.22✎ 17:01 | 
        (16) Наверное, об этом:
 КолонкаТаблицыЗначений (ValueTableColumn) ТипЗначения (ValueType) Использование: Только чтение. | |||
| 18
    
        Kassern 30.03.22✎ 17:06 | 
        "ТЧ документа загрузить в запрос" Все же очень просто. Выгружаем ТЧ в ТЗ. Далее создаем в запросе временную таблицу и указываем нужные поля. В имени таблицы указываем наш параметр с ТЗ (&ТЗ например). Ничего сложного. Единственное, нужно обратить внимание, чтобы типы были указаны у ТЗ, в случае заполнения из ТЧ, такой проблемы не будет. Так же нельзя группировать данные в этой временной таблице, но после уже - пожалуйста     | |||
| 19
    
        lodger 30.03.22✎ 17:11 | 
        (10) есть ещё дешевле рецепт, если работаем с ТЗ из ТЧ.
 просто выбираем ТЧ первой таблицей, пихаем в ВТ, и работаем с этими ВТ как душе угодно. потом сохраняемся, выходим из конструктора и перепишем "Из Документ.ИмяДокумент.ИмяТЧ Как ТЧ" на "Из &ТЧ Как ТЧ" | |||
| 20
    
        Ilnazio 30.03.22✎ 17:13 | 
        (19) точно так же пробовал, хз где не то жмякнул)     | |||
| 21
    
        lodger 30.03.22✎ 17:15 | 
        (20) в первом запросе пакета нельзя производить манипуляции с данными.     | |||
| 22
    
        lodger 30.03.22✎ 17:15 | 
        (21) при помещении в ВТ из ТаблицыЗначения     | |||
| 23
    
        Ilnazio 30.03.22✎ 17:39 | 
        Как вообще с этими данными что-то делать, если там стоит "выбрать *". О каких данных речь тады вообще     | |||
| 24
    
        acht 30.03.22✎ 17:51 | 
        Точно - пиндос.     | |||
| 25
    
        Said_We 30.03.22✎ 18:01 | 
        (23) "если там стоит "выбрать *"" - значит выбрать все данные что есть и не важно какие.     | |||
| 26
    
        Ilnazio 30.03.22✎ 21:41 | 
        (24) ты шо китаец,аа?     | |||
| 27
    
        acht 31.03.22✎ 08:35 | 
        (26) Люблю путешествовать     | |||
| 28
    
        mikecool 31.03.22✎ 10:21 | 
        (18) не надо промежуточного ТЗ, как писали ранее - ТЧ спокойно помещается в запрос     | |||
| 29
    
        hhhh 31.03.22✎ 12:03 | 
        (28) не получится. у него "ссылки на док еще нет". Поэтому только через ТЗ.     | |||
| 30
    
        Kassern 31.03.22✎ 12:08 | 
        (28) конечно помещается, но только там будут данные записанные в базу, А вот если нужно работать с изменением ТЧ перед записью дока, то приходится работать с ВТ и помещением ТЧ в ТЗ.     | |||
| 31
    
        acht 31.03.22✎ 12:13 | 
        (29) Да йепичская сила, что ж вы в в эту таблицу значений уперлись.
 Запрос = Новый Запрос("выбрать * из &таблица поместить таблица"); Запрос.УстановитьПараметр("таблица", ДокументОбъект.ИмяТабличнойЧасти); И все. ДокументОбъект.ТабличнаяЧасть имеет тип "ДокументТабличнаяЧасть.МойДокумент.ИмяТабличнойЧасти"; | |||
| 32
    
        Kassern 31.03.22✎ 12:14 | 
        (31) а давно можно ТЧ помещать во временную таблицу, вроде как раньше ругалось, приходилось ТЧ.Выгрузить() Делать     | |||
| 33
    
        Kassern 31.03.22✎ 12:14 | 
        ?     | |||
| 34
    
        acht 31.03.22✎ 12:17 | 
        (32) Давно.
 https://its.1c.ru/db/pubqlang/content/74/hdoc Временная таблица может быть создана как на основе таблиц базы данных, так и на основе внешнего источника данных. В качестве внешнего источника могут выступать: * таблица значений, * табличная часть, * результат запроса. Е. Ю. Хрусталева Язык запросов «1С:Предприятия 8 Версия издания от 05.09.2013. | |||
| 35
    
        Kassern 31.03.22✎ 12:18 | 
        (31) только что протестил на внешней обработке:
 Неверные параметры "ТЗ" <<?>>&ТЗ КАК ТЗ Это если помещаю в параметр саму табличную часть, а не ТЗ | |||
| 36
    
        Kassern 31.03.22✎ 12:22 | 
        Вот кусок кода во внешней обработке:
 НовСтрока=Объект.ТЧ.Добавить(); НовСтрока.Колонка1="Тест"; Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ | ТЗ.Колонка1 КАК Колонка1 |ПОМЕСТИТЬ Проверка |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Проверка.Колонка1 КАК Колонка1 |ИЗ | Проверка КАК Проверка"; Запрос.УстановитьПараметр("ТЗ",Объект.ТЧ); Выборка=Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Колонка1) КонецЦикла; Если же я напишу: Запрос.УстановитьПараметр("ТЗ",Объект.ТЧ.Выгрузить()); - то все отработает. | |||
| 37
    
        mikecool 31.03.22✎ 12:23 | 
        (36) что то кони стали хромать )))
 вчера делал как товарищ в (31) пишет - работает | |||
| 38
    
        Kassern 31.03.22✎ 12:29 | 
        (37) я тестил на платформе 8.3.19.1264     | |||
| 39
    
        Kassern 31.03.22✎ 12:30 | 
        ну и на управляемых формах. В общем имхо лучше помещать ТЗ и не переживать за ошибку параметров     | |||
| 40
    
        acht 31.03.22✎ 12:30 | 
        (36) 8.3.18.1520
 Документ = Документы.БольничныйЛист.СоздатьДокумент(); Таблица = Документ.Начисления; Таблица.Добавить(); Таблица.Добавить(); Таблица.Добавить(); Запрос = Новый Запрос("ВЫБРАТЬ Таблица.* ПОМЕСТИТЬ Таблица ИЗ &Таблица КАК Таблица"); Запрос.УстановитьПараметр("Таблица", Таблица); Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Выполнить(); Найди 10 различий. | |||
| 41
    
        acht 31.03.22✎ 12:32 | 
        (39) > управляемых формах 
 Браво. Какого типа у тебя "Объект.ТЧ"? | |||
| 42
    
        Kassern 31.03.22✎ 12:34 | 
        (41) Коллекция скорее всего.     | |||
| 43
    
        Kassern 31.03.22✎ 12:35 | 
        (41) проверил РеквизитФормыВЗначение("Объект").ТЧ, так канает.     | |||
| 44
    
        acht 31.03.22✎ 12:35 | 
        (42) ДанныеФормыКоллекция, если уж точнее. А речь - про табличную часть объекта.     | |||
| 45
    
        acht 31.03.22✎ 12:35 | 
        (43) Ну вот =)     | |||
| 46
    
        Kassern 31.03.22✎ 12:37 | 
        только вот какой практический смысл получать из реквизита формы значение, когда можно тупо Выгрузить()? Сильно на быстродействие будет влиять при обычно ТЧ в 10-100 позиций?     | |||
| 47
    
        acht 31.03.22✎ 12:46 | 
        Это все происходит не в форме, а в модуле документа в ОбработкаЗаполнения.     | |||
| 48
    
        Kassern 31.03.22✎ 12:52 | 
        (47) я в общем спросил, есть ли большая разница в быстродействии запроса при двух вариантах помещения ТЧ. По поводу ТЧ у меня больше вопросов нет, просто раньше за правило взял выгружать в ТЗ перед помещением в запрос.     | |||
| 49
    
        acht 31.03.22✎ 12:56 | 
        (48) В контексте форме с TЗ будет быстрее и проще. Получение объекта - дорогая операция, она затащит все табличные части, всю шапку, скомпилирует модуль, выполнит секцию инициализации..     | |||
| 50
    
        acht 31.03.22✎ 12:58 | 
        А по выполнению запроса разницы нет. Оно достаточно умное - передает на сервер только колонкки, которые указаны в ВЫБРАТЬ и даже по-моему умеет в РАЗЛИЧНЫЕ и ПЕРВЫЕ     | |||
| 51
    
        Kassern 31.03.22✎ 13:09 | 
        (49) тоже так подумал, если форма перегружена     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |