|
Обращение к регистру бухгалтерии в расширении | ☑ | ||
---|---|---|---|---|
0
TomWaits
22.05.17
✎
19:17
|
Пытаюсь достучаться запросом к субконто РегистрБухгалтерии.Хозрасчетный, но в расширении оно не доступно.
При добавлении РегистрБухгалтерии.Хозрасчетный в расширение по идее должны бы добавиться все связанные объекты, но этого не происходит. Правильно ли я понимаю, что чтобы доступ к субконто появился, необходимо перенести все объекты имеющие отношение к субконто или я иду неверным путем? |
|||
1
AlvlSpb
22.05.17
✎
19:31
|
(0) Верным
|
|||
2
Dmitrii
гуру
22.05.17
✎
19:41
|
(0) Неверным.
Это в конфигураторе тебе из расширения могут быть недоступны какие-то объекты метаданных. При работе конфигурации с расширением расширение "увидит" все объекты метаданных основной конфигурации. Так что не надо поласкать мозг с дублированием всех объектов, которые выступают в качестве типа значения ПВХ ВидыСубконто. Если проблема только в том, чтобы всё работало в конструкторе запроса (чтобы конструктор видел объекты и таблицы основной конфигурации), то пишите текст запроса (запускайте конструктор запроса) не в расширении, а, например, в модуле внешней обработки или в любом модуле любого объекта основной конфигурации. А потом полученный текст вставите в ваше расширение. |
|||
3
AlvlSpb
22.05.17
✎
19:49
|
(2) Ой ошибаешься. Если, например, субконто Контрагент, то не включив в расширение справочник Контрагенты НИЧЕГО не увидишь.
|
|||
4
Мимохожий Однако
22.05.17
✎
19:52
|
Эксперимент всех рассудит
|
|||
5
TomWaits
22.05.17
✎
19:56
|
(2) (3) Запрос из консоли выполняется (т.е. из основной конфигурации).
В моем случае этот запрос необходимо добавлять к динамическому списку. При установке запроса прямо на форме - ошибка при проверке запроса. При установке запроса в коде - ошибка при выполнении. По всей видимости действительно необходимо добавить все объекты в расширение. Полный перечень как сформировать? Добавил многое, но возможно что то упустил. |
|||
6
AlvlSpb
22.05.17
✎
20:13
|
(5) Не надо добавлять все. Алгоритм такой. Добавляешь все объекты, которые участвуют в запросе (в коде). Например Идет обращение к справочнику Контрагенты. Контрагент.Код, Контрагент.Наименование значит в расширении должен быть справочник и эти реквизиты. При добавлении справочника (а особенно, формы справочника или документа), в расширение накидает кучу мусора. Пишешь код и потом начинаешь удалять все лишнее из расширения, начиная с добавленных объектов. Т.е. как в примере сначала удаляешь все, кроме неудаляемого (будет предупреждение) из справочника Контрагенты, потом по всей базе. В итоге останется только то, что действительно необходимо. Львиная доля (мусор) весь даст себя удалить
|
|||
7
Dmitrii
гуру
22.05.17
✎
20:24
|
(5) (6) Вы бредите...
Если бы всё было так как вы говорите, то расширения дублировали бы основную конфигурацию. А это не нужно. В расширение помещаются только те объекты, которые необходимо расширить. >> Если, например, субконто Контрагент, то не включив в расширение справочник Контрагенты НИЧЕГО не увидишь Мне не нужно его видеть!!! Я не собираюсь расширять справочник Контрагенты!!! Достаточно, чтобы расширение увидело этот справочник. А оно увидит его В МОМЕНТ ИСПОЛНЕНИЯ. Пока ведётся работа с расширением в конфигураторе, вполне нормально, что расширение не видит объекты основной конфигурации (вернее это не совсем нормально, но это вопрос к писателям конфигуратора). |
|||
8
TomWaits
22.05.17
✎
20:27
|
Запрос проще некуда:
ВЫБРАТЬ ХозрасчетныйОстатки.Субконто1 КАК Номенклатура, ХозрасчетныйОстатки.Субконто2 КАК Склад, ХозрасчетныйОстатки.Организация, ХозрасчетныйОстатки.КоличествоОстаток КАК Количество ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&НаДату, ) КАК ХозрасчетныйОстатки УПОРЯДОЧИТЬ ПО Организация, Склад Добавлены на данный момент: - все документы движения по регистру; - справочники: номенклатура, номенклатурные группы, склады, контрагенты, договора контрагентов, подразделения организаций - план счетов Возможно что то из этого лишнее, но - Субконто все равно не доступно в расширении! |
|||
9
TomWaits
22.05.17
✎
20:28
|
(8) Забыл справочник "Организации"
|
|||
10
AlvlSpb
22.05.17
✎
20:28
|
(7) Много расширений написали? Только честно. А то, без обид, создалось впечатление, что утверждаете только на основании каких-то прочитанных данных, а не опыта применения.
|
|||
11
AlvlSpb
22.05.17
✎
20:32
|
(8) Где используете запрос? Т.е. из какого модуля, какой формы вызываете его?
А так. Добавлено должно быть только: РегистрБухгалтерии, справочники Номенклатура, Организации, и справочник отвечающий за склад (СтруктурныеЕдиницы или Склады, это как у вас в конфигурации). Больше ничего не надо |
|||
12
TomWaits
22.05.17
✎
20:38
|
(11) Запрос в динамическом списке, находящемся на форме справочника.
Конфа БП 3.0. РегистрБухгалтерии.Хозрасчетный был добавлен в первую очередь, полный список что добавил описал в посте (8) |
|||
13
AlvlSpb
22.05.17
✎
20:40
|
(12) А расширение подключается? Не ругается на безопасный режим?
|
|||
14
AlvlSpb
22.05.17
✎
20:41
|
(12) Какой справочник? Проверю на своей конфе
|
|||
15
TomWaits
22.05.17
✎
20:43
|
(13) ДА, все подключается.
Если убрать субконто из запроса то все работает. При этом как писал выше - в консоли запрос выполняется без проблем - т.е. сам запрос без ошибок. (14) Справочник Номенклатура - но думаю это не принципиально. Динамический список добавлен новый - суть которого показывать остатки на складах по выбранной в справочнике номенклатуры позиции. |
|||
16
h-sp
22.05.17
✎
20:45
|
(15) этот запрос и в основной у вас не сработает. Счет не указал, какие могут быть субконто?
|
|||
17
TomWaits
22.05.17
✎
21:04
|
(16) Логически я ваш довод понимаю, вот только вывод запроса для меня не сильно меняется от добавления поля "ХозрасчетныйОстатки.Счет", т.к. аналитика по счету в данном случае меня не интересует. И да - запрос работает, можете проверить.
|
|||
18
AlvlSpb
22.05.17
✎
21:45
|
(17) Никогда не связывался с субконто.НИКАК не могу найти ЧТО привязано к хозрасчетному. Тоже не получается
|
|||
19
AlvlSpb
22.05.17
✎
22:08
|
(17) Разобрался. Добавьте в расширение, то что писал в (11) и ФОРМУ СПИСКА регистра бухгалтерии Хозрасчетный. Субконто станет доступным
|
|||
20
AlvlSpb
22.05.17
✎
22:12
|
И (16) прав. Где-то потом в коде надо делать отбор в динамическом списке по счету и, как понял, номенклатуре, иначе вываливает все в список. Удачи
|
|||
21
TomWaits
23.05.17
✎
08:58
|
Запрос выше был скорее тестовым, на него сильно не заморачивался, важно было понять как с регистром работать.
А так вот запрос, который выдает остатки по позиции в разрезе склада и без счетов: ВЫБРАТЬ ХозрасчетныйОстатки.Субконто1.Ссылка КАК Номенклатура, ХозрасчетныйОстатки.Субконто2.Ссылка КАК Склад, ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК Количество ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, , , ) КАК ХозрасчетныйОстатки ГДЕ ХозрасчетныйОстатки.Субконто1.Ссылка ССЫЛКА Справочник.Номенклатура И ХозрасчетныйОстатки.Субконто2.Ссылка ССЫЛКА Справочник.Склады И ХозрасчетныйОстатки.Субконто1.Ссылка = &Ном Правда скорость работы оставляет желать лучшего. Эти условия из где в условия самого регистра запихнуть не получится, а это бы сильно ускорило выполнение. Вечером проверю (19) отпишусь о результате. |
|||
22
h-sp
23.05.17
✎
09:28
|
ХозрасчетныйОстатки.Субконто2.Ссылка КАК Склад, за такое надо расстреливать из крупнокалиберного пулемета. Пиши нормально
ХозрасчетныйОстатки.Субконто2 КАК Склад, скорость работы увеличится в десятки раз. |
|||
23
AlvlSpb
23.05.17
✎
10:10
|
(21) Да. С запросом немного не так. Я бы переделал через Выразить и отбор по номенклатуре счету в параметрах виртуальной таблицы
ВЫБРАТЬ ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто1 КАК Справочник.Номенклатура) КАК Номенклатура, ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто2 КАК Справочник.Склады) КАК Склад, СУММА(ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0)) КАК Количество ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , Субконто1 = &Ном) КАК ХозрасчетныйОстатки СГРУППИРОВАТЬ ПО ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто1 КАК Справочник.Номенклатура), ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто2 КАК Справочник.Склады) &Счет = 41.01 - товары на складах Если не указать, опять выдает несколько значений. Ну и работать будет значительно быстрее чем приведенный вами |
|||
24
TomWaits
23.05.17
✎
11:28
|
(22) (23) молод и неопытен =(
спасибо за разъяснения |
|||
25
TomWaits
23.05.17
✎
17:32
|
Все заработало. Еще раз спасибо за помощь.
P.S. только для склада изменил Субконто2 на Субконто3 |
|||
26
AlvlSpb
23.05.17
✎
17:42
|
(25) По скорости работы есть разница? И сделай расширение красивым по алгоритму как в (6)
|
|||
27
mikecool
23.05.17
✎
17:46
|
(0) проверил недавно - не добавляешь объекты и они в запросе доступны, но конструктор запроса ругается на отсутствие этих объектов
так что - править запрос в основной конфиге и переносить текст в расширение |
|||
28
mikecool
23.05.17
✎
17:47
|
+27 тем самым в расширении нет "мусора"
у самого сейчас хламу полно - за формой потянулось |
|||
29
AlvlSpb
23.05.17
✎
18:03
|
(27) В динамичекий список не даст вставить неверный запрос как ни старайся. В параметры вывести Объект.Поле - не даст без этого поля и связанного с ним справочника и т.д.
|
|||
30
TomWaits
24.05.17
✎
08:53
|
(26) Разница в скорости есть, по консоли запроса - 0,8сек против 2,4сек
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |