|
23.12.2009, 17:33 | #1 |
Участник
|
Сомневаюсь.
Но нигде об этом пока развернутой информации нет. Мы у себя еще на 8.2 не перешли. Как перейдем - поставлю эксперимент. |
|
23.12.2009, 21:12 | #2 |
Участник
|
Кстати, Везунчик куда-то пропал, а вопрос остался:
Какие возможности платформы позволяют обращаться напрямую к SQL (в отчетах, при проведении документов и т.п.). То есть именно платформы, а не 1С++, toySQL и т.п. |
|
24.12.2009, 10:24 | #3 |
Участник
|
Цитата:
Для получения имен таблиц, индексов, реквизитов в БД есть специальный метод. |
|
24.12.2009, 17:28 | #4 |
Участник
|
|
|
04.03.2010, 19:47 | #5 |
Участник
|
Да. В скульной базе можно создать (прямо на языке 1С 8, без всяких компундов и самописок какую пользую в 1С) для всех таблиц вьюшки с именами полей из конфигуратора, в ms приспособах (скульных или vs) лепить запросы, а потом засовывать хоть в конфигурацию, хоть пользоваться снаружи. Только ссылок на объекты для расшифровки в конфигурации используя ADODB не получить.
|
|
05.03.2010, 22:38 | #6 |
Участник
|
RecVersion
|
|
05.03.2010, 22:53 | #7 |
Участник
|
|
|
09.03.2010, 13:42 | #8 |
Участник
|
Не уверен, что этот вопрос по платформе, но, возможно, с платформой есть какая-то связь.
С очень большими системами не работоал, но в DAX меня поразило очень большое количество полей в таблицах. И в базовой поставке есть нехилые таблицы, а то, что принесли нам партнеры MS меня вообще привело в замешательство: в одной таблице более 400 полей! С чем это связано? По первым ощущениям таблицы DAX скорее напоминают шиты в ексельной книге, чем таблицы в реляционной БД среднего уровня нормализации. |
|
09.03.2010, 14:10 | #9 |
Administrator
|
Цитата:
Сообщение от asinus
Не уверен, что этот вопрос по платформе, но, возможно, с платформой есть какая-то связь.
С очень большими системами не работоал, но в DAX меня поразило очень большое количество полей в таблицах. И в базовой поставке есть нехилые таблицы, а то, что принесли нам партнеры MS меня вообще привело в замешательство: в одной таблице более 400 полей! С чем это связано? По первым ощущениям таблицы DAX скорее напоминают шиты в ексельной книге, чем таблицы в реляционной БД среднего уровня нормализации. С другой стороны - есть правило сохранения всех данных, выводящихся на печать в официальные документы. Т.е. к примеру - в таблице накладных будет храниться вся информация (кроме данных о нашей компании), которая выводится на печать. Это необходимо для сохранения истории данных в случае возможного изменения справочников. Также разработчики учитывают производительность. Если какая-то связка таблиц используется часто в запросах, то поля из одной таблицы добавляют в другую, чтобы выборка осуществлялась из одной таблицы для повышения производительности. Например вся информация о банке копируется в банковский счет (фактически дублируются данные), чтобы при дальнейшей выборке не использовать таблицу банков. UPD: Кстати верно подмечено - часть полей может просто не использоваться в готовом решении (будет удалено при отключении соотв. конфиг ключа) - и тогда в реальной БД будет гораздо меньше полей.
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: asinus (1). |
09.03.2010, 14:02 | #10 |
Гость
|
Такое большое количество полей, скорее всего, связано как раз с тем, что решение приобреталось у партнера.
Наверняка целые группы полей связаны определенными конфигурационными ключами. Каждый ключ должен был быть включен на определенном клиенте. Почему у вас они включены - либо вы купили все решения, либо концепция продаж решений у партнера поменялась |
|
|
За это сообщение автора поблагодарили: asinus (1). |
07.04.2010, 16:51 | #11 |
Участник
|
Спасибо за ссылку. И впрямь бред от 1С.
|
|
13.04.2010, 11:22 | #12 |
Участник
|
Цитата:
Такую методологию во всю пропагандируют приближённые к 1С. Скоро сама 1С в стандарт это запишет.
Действительно в 1С визуально можно увидеть только "статические запросы", которые пишутся конструктором и не меняются в процессе выполнения программы, а те, запросы, которые содержат программные вставки конструктором открыть нельзя! А как в аксапте можно визуально открыть такой запрос? ИменаКолонок = "ф1,ф2,ф6"; ИмяТаблицы = "Таб1" select ИменаКолонок from ИмяТаблицы; Последний раз редактировалось ibc; 13.04.2010 в 11:35. |
|
13.04.2010, 12:43 | #13 |
северный Будда
|
Что значит "открыть визуально"?
Если в форме вывести - то достаточно на датасоурсной таблице сделать нужный FieldGroup и поставить его в свойства грида |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
13.04.2010, 13:04 | #14 |
Участник
|
Цитата:
сортировка в запросе сортировка в запросе сортировка в запросе вот еще Отображение AOT_Query на форме часть 2 и так далее по ключевым словам querystr и findOrCreateRange* |
|
13.04.2010, 15:00 | #15 |
Участник
|
Цитата:
Что значит "открыть визуально"?
А вот если часть запроса переменная величина, то как быть? Например, состав полей, названия таблиц, структура соединений! Цитата:
и задать, и открыть, и настроить, и использовать потом его в коде, и менять из кода.
Цитата:
ИменаКолонок = "ф1,ф2,ф6";
ИмяТаблицы = "Таб1" select ИменаКолонок from ИмяТаблицы; По ссылке совершенно другой пример с сортировкой и джойном! В 1С можно Последний раз редактировалось ibc; 13.04.2010 в 15:03. |
|
13.04.2010, 15:15 | #16 |
Ищущий знания...
|
Цитата:
X++: Query query; QueryRun queryRun; QueryBuildDataSource qbds; TableId tableIdQuery = 175; FieldId fieldId1 = 1; FieldId fieldId2 = 2; FieldId fieldId3 = 3; ; query = new Query(); qbds = query.addDataSource(tableIdQuery); qbds.addSelectionField(fieldId1, SelectionField::Database); qbds.addSelectionField(fieldId2, SelectionField::Database); qbds.addSelectionField(fieldId3, SelectionField::Database); queryRun = new QueryRun(query);
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
13.04.2010, 15:22 | #17 |
Участник
|
X++: query = new Query(); Или только из кода поменять что-то можно? |
|
13.04.2010, 15:23 | #18 |
Ищущий знания...
|
Цитата:
X++: queryRun.prompt();
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем Последний раз редактировалось lev; 13.04.2010 в 15:28. |
|
13.04.2010, 15:22 | #19 |
Ищущий знания...
|
если ИД-шники не известны, а известны названия, то вот так:
X++: Query query; QueryRun queryRun; QueryBuildDataSource qbds; TableId tableIdSelect; FieldId fieldId1; FieldId fieldId2; FieldId fieldId3; #define.TableName('InventTable') #define.ItemId('ItemId') #define.ItemName('ItemName') #define.ItemGroupId('ItemGroupId') tableIdSelect = tablename2id(#TableName); fieldId1 = fieldname2id(tableIdSelect, #ItemId); fieldId2 = fieldname2id(tableIdSelect, #ItemName); fieldId3 = fieldname2id(tableIdSelect, #ItemGroupId); query = new Query(); qbds = query.addDataSource(tableIdSelect); qbds.addSelectionField(fieldId1, SelectionField::Database); qbds.addSelectionField(fieldId2, SelectionField::Database); qbds.addSelectionField(fieldId3, SelectionField::Database); queryRun = new QueryRun(query);
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
13.04.2010, 15:31 | #20 |
Участник
|
А любые запросы в т. ч. вложенные запросы таким же образом можно сделать?
(select b1,b2 from (select * from Tab1)) |
|
Теги |
1c, платформа, сравнение систем |
|
|