Обращение к регистру бухгалтерии в расширении #797787


#0 by TomWaits
Пытаюсь достучаться запросом к субконто РегистрБухгалтерии.Хозрасчетный, но в расширении оно не доступно. При добавлении РегистрБухгалтерии.Хозрасчетный в расширение по идее должны бы добавиться все связанные объекты, но этого не происходит. Правильно ли я понимаю, что чтобы доступ к субконто появился, необходимо перенести все объекты имеющие отношение к субконто или я иду неверным путем?
#1 by AlvlSpb
Верным
#2 by Dmitrii
Неверным. Это в конфигураторе тебе из расширения могут быть недоступны какие-то объекты метаданных. При работе конфигурации с расширением расширение "увидит" все объекты метаданных основной конфигурации. Так что не надо поласкать мозг с дублированием всех объектов, которые выступают в качестве типа значения ПВХ ВидыСубконто. Если проблема только в том, чтобы всё работало в конструкторе запроса (чтобы конструктор видел объекты и таблицы основной конфигурации), то пишите текст запроса (запускайте конструктор запроса)  не в расширении, а, например, в модуле внешней обработки или в любом модуле любого объекта основной конфигурации. А потом полученный текст вставите в ваше расширение.
#3 by AlvlSpb
Ой ошибаешься. Если, например, субконто Контрагент, то не включив в расширение справочник Контрагенты НИЧЕГО не увидишь.
#4 by МимохожийОднако
Эксперимент всех рассудит
#5 by TomWaits
Запрос из консоли выполняется (т.е. из основной конфигурации). В моем случае этот запрос необходимо добавлять к динамическому списку. При установке запроса прямо на форме - ошибка при проверке запроса. При установке запроса в коде - ошибка при выполнении. По всей видимости действительно необходимо добавить все объекты в расширение. Полный перечень как сформировать? Добавил многое, но возможно что то упустил.
#6 by AlvlSpb
Не надо добавлять все. Алгоритм такой. Добавляешь все объекты, которые участвуют в запросе (в коде). Например Идет обращение к справочнику Контрагенты. Контрагент.Код, Контрагент.Наименование значит в расширении должен быть справочник и эти реквизиты. При добавлении справочника (а особенно, формы справочника или документа), в расширение накидает кучу мусора. Пишешь код и потом начинаешь удалять все лишнее из расширения, начиная с добавленных объектов. Т.е. как в примере сначала удаляешь все, кроме неудаляемого (будет предупреждение) из справочника Контрагенты, потом по всей базе. В итоге останется только то, что действительно необходимо. Львиная доля (мусор) весь даст себя удалить
#7 by Dmitrii
Вы бредите... Если бы всё было так как вы говорите, то расширения дублировали бы основную конфигурацию. А это не нужно. В расширение помещаются только те объекты, которые необходимо расширить. >> Если, например, субконто Контрагент, то не включив в расширение справочник Контрагенты НИЧЕГО не увидишь Мне не нужно его видеть!!! Я не собираюсь расширять справочник Контрагенты!!! Достаточно, чтобы расширение увидело этот справочник. А оно увидит его В МОМЕНТ ИСПОЛНЕНИЯ. Пока ведётся работа с расширением в конфигураторе, вполне нормально, что расширение не видит объекты основной конфигурации (вернее это не совсем нормально, но это вопрос к писателям конфигуратора).
#8 by TomWaits
Запрос проще некуда: Добавлены на данный момент: - все документы движения по регистру; - справочники: номенклатура, номенклатурные группы, склады, контрагенты, договора контрагентов, подразделения организаций - план счетов Возможно что то из этого лишнее, но - Субконто все равно не доступно в расширении!
#9 by TomWaits
Забыл справочник "Организации"
#10 by AlvlSpb
Много расширений написали? Только честно. А то, без обид, создалось впечатление, что утверждаете только на основании каких-то прочитанных данных, а не опыта применения.
#11 by AlvlSpb
Где используете запрос? Т.е. из какого модуля, какой формы вызываете его? А так. Добавлено должно быть только: РегистрБухгалтерии, справочники Номенклатура, Организации, и справочник отвечающий за склад (СтруктурныеЕдиницы или Склады, это как у вас в конфигурации). Больше ничего не надо
#12 by TomWaits
Запрос в динамическом списке, находящемся на форме справочника. Конфа БП 3.0. РегистрБухгалтерии.Хозрасчетный был добавлен в первую очередь, полный список что добавил описал в посте
#13 by AlvlSpb
А расширение подключается? Не ругается на безопасный режим?
#14 by AlvlSpb
Какой справочник? Проверю на своей конфе
#15 by TomWaits
ДА, все подключается. Если убрать субконто из запроса то все работает. При этом как писал выше - в консоли запрос выполняется без проблем - т.е. сам запрос без ошибок. Справочник Номенклатура - но думаю это не принципиально. Динамический список добавлен новый - суть которого показывать остатки на складах по выбранной в справочнике номенклатуры позиции.
#16 by h-sp
этот запрос и в основной у вас не сработает. Счет не указал, какие могут быть субконто?
#17 by TomWaits
Логически я ваш довод понимаю, вот только вывод запроса для меня не сильно меняется от добавления поля "ХозрасчетныйОстатки.Счет", т.к. аналитика по счету в данном случае меня не интересует. И да - запрос работает, можете проверить.
#18 by AlvlSpb
Никогда не связывался с субконто.НИКАК не могу найти ЧТО привязано к хозрасчетному. Тоже не получается
#19 by AlvlSpb
Разобрался. Добавьте в расширение, то что писал в   и ФОРМУ СПИСКА регистра бухгалтерии Хозрасчетный. Субконто станет доступным
#20 by AlvlSpb
И прав. Где-то потом в коде надо делать отбор в динамическом списке по счету и, как понял, номенклатуре, иначе вываливает все в список. Удачи
#21 by TomWaits
Запрос выше был скорее тестовым, на него сильно не заморачивался, важно было понять как с регистром работать. А так вот запрос, который выдает остатки по позиции в разрезе склада и без счетов:     ХозрасчетныйОстатки.Субконто1.Ссылка КАК Номенклатура,     ХозрасчетныйОстатки.Субконто1.Ссылка ССЫЛКА Справочник.Номенклатура     И ХозрасчетныйОстатки.Субконто2.Ссылка ССЫЛКА Справочник.Склады Правда скорость работы оставляет желать лучшего. Эти условия из где в условия самого регистра запихнуть не получится, а это бы сильно ускорило выполнение. Вечером проверю отпишусь о результате.
#22 by h-sp
ХозрасчетныйОстатки.Субконто2.Ссылка КАК Склад,  за такое надо расстреливать из крупнокалиберного пулемета. Пиши нормально ХозрасчетныйОстатки.Субконто2 КАК Склад, скорость работы увеличится в десятки раз.
#23 by AlvlSpb
Да. С запросом немного не так. Я бы переделал через Выразить и отбор по номенклатуре счету в параметрах виртуальной таблицы &Счет = 41.01 - товары на складах Если не указать, опять выдает несколько значений. Ну и работать будет значительно быстрее чем приведенный вами
#24 by TomWaits
молод и неопытен =( спасибо за разъяснения
#25 by TomWaits
Все заработало. Еще раз спасибо за помощь. P.S. только для склада изменил Субконто2 на Субконто3
#26 by AlvlSpb
По скорости работы есть разница? И сделай расширение красивым по алгоритму как в
#27 by mikecool
проверил недавно - не добавляешь объекты и они в запросе доступны, но конструктор запроса ругается на отсутствие этих объектов так что - править запрос в основной конфиге и переносить текст в расширение
#28 by mikecool
+27 тем самым в расширении нет "мусора" у самого сейчас хламу полно - за формой потянулось
#29 by AlvlSpb
В динамичекий список не даст вставить неверный запрос как ни старайся. В параметры вывести Объект.Поле - не даст без этого поля и связанного с ним справочника и т.д.
#30 by TomWaits
Разница в скорости есть, по консоли запроса - 0,8сек против 2,4сек
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С