|
1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
tciban 15.10.20 - 14:34 | Коллеги! Сделал менеджер временных таблиц, сделал запрос в конструкторе, описал в нем втшку сделал запрос. Второй раз не дает открыть в конструкторе! Говорит нет таких полей у вас! А я рассчитываю еще в 4 запросах использовать эту таблицу. Мне их как в конструкторе менять? Помогите тупому!!! Ну не может же быть, что бы все врукопашную! | ||
ДенисЧ 1 - 15.10.20 - 14:45 | А ты как делал?
Запрос = Новый Запрос; Запрос.МЕнеджерВременныхТаблиц = Новый менеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ Ссылка ПОМЕСТИТЬ Вт ИЗ Справочник.Номенклатура"; Запрос.Выполнить(); Запрос.Текст = "ВЫБРАТЬ Первые 1 Ссылка ИЗ вт УПОРЯДОЧИТЬ ПО Ссылка.Наименование"; Запрос.Выполнить(); По такой схеме? Тогда конструктор не увидит точно. | ||
tciban 2 - 15.10.20 - 14:48 | да, по такой именно. Неужели никак? Ну все же сталкивались такой проблемой, неужели все так плохо? | ||
Mihasya 3 - 15.10.20 - 14:51 | копи-пасте )) | ||
tciban 4 - 15.10.20 - 14:52 | От жеж блин! | ||
tciban 5 - 15.10.20 - 14:54 | Копипаста не канает. Суть дела - я получаю договоры с кучей условий в ГДЕ А потом из этой таблицы в разных запросах получаю всякое по разным ГДЕ, соединения делаю. Это обработка если что, не отчет. По разным кнопочкам разное делает | ||
ДенисЧ 6 - 15.10.20 - 14:54 | (2) Почему плохо? Ты предлагаешь в конфигуратор встроить противоестественный интеллект?
А вдруг текст запроса на вт будет лежать во внешнем файле? Откуда конструктор узнает, что там взбредёт в голову, не выполняя запроса? | ||
tciban 7 - 15.10.20 - 14:57 | (6) Ладно, ругать древние технологии 1С уже скучно. Просто конструктор запросов забывает описание временной таблицы. А мог бы где нибудь хранить Еж же всякие секции с фигурными скобками в запросах и т.п. Для этого ии не нужен | ||
ДенисЧ 8 - 15.10.20 - 15:00 | (7) Исчо раз. В тексте пишу
текстДокумент = Новый текстовыйДокумент;
текстДокумент.Прочитать(ПутьКФайлуКоторыйВвелПОльзователь);
Запрос.Текст = текстДокумент.ПолучитьТекст();
Запрос.Выполнить();
Что должен запомнить конструктор? | ||
Жан Пердежон 9 - 15.10.20 - 15:02 | (0) Причем тут конструктор, если ты вт в другом запросе создаешь? Или ты не в курсе про пакетные запросы? | ||
mistеr 10 - 15.10.20 - 15:04 | (0) Соедини 4 запроса в один пакетный запрос. | ||
fisher 11 - 15.10.20 - 15:05 | |||
tciban 12 - 15.10.20 - 15:07 | (11) Ваще то да, в толстом клиенте :)
Запомоился, в обычных формах работаю.
Хотел ускорить работу обработки. просто то одно надо прорисовать в табличке, то другое. Но все на основе заранее отобранных договоров. | ||
tciban 13 - 15.10.20 - 15:11 | Кстати, все не так плохо. Открыть не дает только там где группировка и агрегатные функции. Если просто отбор по ГДЕ - все работает в конструкторе | ||
fisher 14 - 15.10.20 - 15:15 | (12) Ну, такое... Лучше вытаскивай отобранные договора на клиента и передавай их в каждый запрос вместо того, чтобы держать их во временной таблице и удерживать все это время соединение с БД.
Не миллионы же их там у тебя. Если реально очень много, то проще дублировать их отбор в каждом запросе. Да, некрасиво и накладные расходы. Но удержание временной таблицы на сервере - тоже такой себе костыль. Исторически менеджеры временных таблиц появились до того, как появились пакетные запросы. Как только появились - использование менеджеров минимизировалось. | ||
tciban 15 - 15.10.20 - 15:23 | (14) отобранных договоров порядка 17 с половиной тыс. Получение их запросом - порядка 1200 мс в среднем. Повторять в каждом запросе - ну так себе. Была идея держать в ТЗ и грузить ее в каждый запрос в втшку, но интересно насколько это дольше использования менеджера временных таблиц? | ||
Вафель 16 - 15.10.20 - 16:19 | если хочешь через точку, то нужно выразить делать | ||
fisher 17 - 15.10.20 - 16:30 | (15) Неприятная ситуация. По возможности - избегайте этого :) | ||
mistеr 18 - 15.10.20 - 16:44 | (14) Я так и не понял, какие аргументы за то, чтобы таскать одни и те же данные с клиента на сервер и обратно много раз. Сплошные минусы. | ||
fisher 19 - 15.10.20 - 17:05 | (18) А держать временную таблицу на сервере БД пока открыта форма - сплошные плюсы? | ||
tciban 20 - 16.10.20 - 07:49 | |||
vi0 21 - 16.10.20 - 08:01 | |||
TormozIT 22 - 23.10.20 - 22:53 | Я в своей толстой консоли запросов убрал бесконечное удержание менеджера https://www.hostedredmine.com/issues/887410 . Внутри есть ссылка на предысторию (одну из). В итоге больше часа держать менеджер временных таблиц на продуктивном сервере по факту - плохо. Однако вразумительного объяснения этому даже разработчики платформы не дали, хотя рассказали, что делали тесты на эту тему и они подтверждают это мнение. | ||
Ёпрст 23 - 23.10.20 - 23:09 | (0)
втыкаешь типа того в каждый текст запроса
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(Справочник.Вася.ПустаяССылка) КАК Вася,
| ЗНАЧЕНИЕ(Справочник.Федя.ПустаяССылка) КАК Федя,
| 0 Как Матрёна,
| """" как Маша
|Поместить ТвояТабличка
|;
далее твой текст запроса. Усё, в конструкторе творишь, че надо, потом, через ТекстЗапроса=Сред(ТекстЗапроса,Стрнайти(ТекстЗапроса,";")+1);
имеешь свой текст..
Поля задаешь какие были в твоей таблике в менеджере. | ||
Ёпрст 24 - 23.10.20 - 23:09 | с нужными типами | ||
МимохожийОднако 25 - 24.10.20 - 07:56 | Табличная часть в обработке не поможет? | ||
ILM 26 - 24.10.20 - 11:36 | А разве экспортную переменную объявить МВТ в обработке это плохо?
Текст модуля : Перем МВТ Экспорт; Перем ПервыйРаз Экспорт; Процедура ЗаполнитьСписокДоговоров(); Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МВТ; Запрос.Текст = "ВЫБРАТЬ Ссылка ПОМЕСТИТЬ Вт ИЗ Справочник.Номенклатура"; Запрос.Выполнить(); КонецПроцедуры; Функция2(); Функция3(); Функция4(); Процедуры1(); Процедуры2(); Процедуры3(); МВТ = новый МенеджерВременныхТаблиц; ПервыйРаз = Истина; ЗаполнитьСписокДоговоров(); ========== А потом везде используешь переменную МВТ и обращаешься в запросах к своей таблице ВТ, ну или как советуют сделай пакет запросов. | ||
Конструктор1С 27 - 25.10.20 - 04:41 | (26) это плохо. МВТ может жить долго и бесконтрольно | ||
Конструктор1С 28 - 25.10.20 - 04:43 | (0) наверно пытаешься через точку обращаться к полям полей ВТ? | ||
TormozIT 29 - 25.10.20 - 06:44 | (26) На всякий случай если в (22) не увидел ссылку, дам прямую http://devtool1c.ucoz.ru/forum/2-1071-1 | ||
Провинциальный 1сник 30 - 25.10.20 - 08:02 | (22) "больше часа держать менеджер временных таблиц на продуктивном сервере по факту - плохо"
Почему? МВТ это всего лишь некий список-перечень временных таблиц, созданных на sql-сервере, и деструктор, который при вызове удаляет временные таблицы с сервера. Кому мешают лишние временные таблицы? Место в tempdb занимают разве что - так это мелочь.. Рекламное место пустует | ||
Надо работать 31 - 25.10.20 - 08:41 | (30) ничего себе мелочь. На больших базах уложить темпдб неоптимальными запросами - плевое дело | ||
Надо работать 32 - 25.10.20 - 08:43 | (22) круто, давно ждали эту фишку | ||
Провинциальный 1сник 33 - 25.10.20 - 08:44 | (31) Так речь не об неоптимальных запросах, а о простаивающих временных таблицах, не влияющих на производительность | ||
TormozIT 34 - 25.10.20 - 10:06 | (30) Я же написал в (22) что сама 1С не может вразумительно объяснить это явление, но есть много свидетельств, что деградация происходит и на опытах самой 1С также воспроизводилась. Точные условия не обозначаются. https://partners.v8.1c.ru/forum/topic/1423290#m_1423290 | ||
Конструктор1С 35 - 25.10.20 - 10:41 | (33) temoDB не резиновая. Часто под неё выделяют отдельный шустрый SSD, объем которого относительно небольшой | ||
Конструктор1С 36 - 25.10.20 - 10:45 | если тебе нужно долго удерживать временную таблицу, это попахивает кривой архитектурой. К тому за время существования ВТ исходные данные могут на сто раз стать невалидными. Идеальная ВТ, как и идеальная блокировка, должна жить как можно меньше | ||
Провинциальный 1сник 37 - 25.10.20 - 18:32 | (34) Помню, в sql2000 был документированный баг с временными таблицами, когда они физически не удалялись, а лишь помечались как неактивные в контексте сессии, в результате каждое следующее создание временной таблицы было всё более тормозным. В 1с7 это было критично настолько, что даже специальный костыль придумали в 1с++ для обхода бага, чтобы периодически делался реконнект к серверу для очистки контекста временных таблиц. Но в более новых sql вроде бы этого бага нет.. |
|
Список тем форума |