v7: Вопрос по классу "Поставщик данных" 1С++ #577276


#0 by dimm7310
Делаю форму подбора из справочник.Номенклатура Нужно в одной из колонок показать текущий остаток товара по определенному списку складов как передать в запрос список значений для фильтра ? Пробовал так: выдает ошибку, подскажите как правильно
#1 by filh
лучше спроси на 1с++ форуме.
#2 by dimm7310
Спросил, пока нет ответа.
#3 by Mikeware
Какую ощибку? То, что метода нет?
#4 by dimm7310
Да.
#5 by dimm7310
Поле агрегатного объекта не обнаружено (УложитьСписокЗначений)
#6 by ДенисЧ
УложитьСписокОбъектов
#7 by Ёпрст
УложитьОбъекты есть, а че там за методы есть в классе - хз
#8 by Mikeware
УложитьСписокОбъектов - метод объекта ПоставщикДанных.ПрямойЗапрос
#9 by dimm7310
пробовал я и так Поле агрегатного объекта не обнаружено (УложитьСписокОбъектов)
#10 by dimm7310
там как-то по другому нужно передавать, не пойму как
#11 by Mikeware
Запрос=ПоставщикДанных.ПрясойЗапрос; Запрос.УложитьСписокЗначений(....);
#12 by dimm7310
Запрос=ПоставщикДанных.ПрямойЗапрос; {D:1C_WORKV7ОСНОВНАЯБАЗАBASESQL1НОМЕНКЛАТУРА.ERT}: Поле агрегатного объекта не обнаружено (ПрямойЗапрос)
#13 by dimm7310
наверное так:
#14 by dimm7310
Заработало. Всем спасибо
#15 by dimm7310
Задача усложняется, необходимо полученный остаток пересчитать из базовых единиц в основные пробую так: [code] ПоставщикДанных.Справочник::УстановитьПоставщикаДанных : Meta name parser: неизвестное метаимя или алиас "$Спр1" ПоставщикДанных.УстТекстЗапроса(ТекстЗапроса);
#16 by dimm7310
в предыдущем коде одно соединение лишнее: но теперь ругается на СпрЕ
#17 by dimm7310
сделал подругому, сначала подсоединяю таблицу единиц [code]    ТекстСоединения = " потом но все равно пишет туже ошибку
#18 by filh
а что за ошибка то?
#19 by dimm7310
неизвестное метаимя или алиас "$СпрЕ"
#20 by filh
убрать $?
#21 by dimm7310
пробовал Meta name parser: неизвестное метаимя или алиас "$SC75"
#22 by dimm7310
что-то непонятное, упрощаю , хочу просто вывести коэффициент в табличное поле  - и тоже ошибка
#23 by Mikeware
Данные.ДобавитьКолонкуДанных("Коэффициент","Коэф.","$Единицы.Коэффициент","Число",10,2,1); ?
#24 by dimm7310
Что не правильно?
#25 by Mikeware
"$Единицы.Коэффициент"
#26 by dimm7310
Наверное я уже совсем отупел к концу недели, но не понимаю Как должно быть ?
#27 by Mikeware
Что-то типа:
#28 by Mikeware
Короче, если надо будет - стучись в аську.
#29 by dimm7310
вот, что вываливается: ПоставщикДанных.Справочник::УстановитьПоставщикаДанных : Ошибка в запросе.
#30 by dimm7310
добавлять колонку ОсновнаяЕдиница - не нужно она и так присутствует в запросе по умолчанию , поскольку это реквизит справочника Номенклатура упростил код максимально, что бы понять причину и все равно ошибка, правда уже ругается внутри класса в прошлых проектах я делал подобные соединения и все работало прекрасно (правда там была 4-я версия ПоставщикаДанных, а сейчас 8-я). Может ошибка в классе ?
#31 by dimm7310
Жаль, что разработчик класса в на форуме 1С++ не отзывается.
#32 by Mikeware
Я тебе кинул совершенно рабочий код.
#33 by dimm7310
а какая версия Поставщика у тебя ?
#34 by Mikeware
Что-то из последних. Качал недели три назад, заменил на всех базах
#35 by Mikeware
И дело явно не в версии поставщика.
#36 by dimm7310
Еще раз подложил твой код и заработало. Странно я же утром так и делал и были ошибки. Спасибо большое за помощь.
#37 by Mikeware
:-) Главное - понять принцип.
#38 by dimm7310
Еще одна проблема, нужно добавить колонку с ценой. Делаю дополнительное соединение: но как наложить условие по типу цены ? если ниже попытаться передать условие: то в окне табичного поля сообщение: incorrect syntax near the keyword 'where'
#39 by dimm7310
в предыдущем сообщении две последние строчки случайно скопипастились последняя строка сообщения: то в окне табичного поля сообщение: incorrect syntax near the keyword 'where'
#40 by Mikeware
И это совершенно естественно :-) Как добавлять собственные условия фильтрации - я не знаю. Попробуй добавить тип цен в отбор, и  ставить отбор по нужному типу цены. Правда, тормозить будеееееееет... А вообще, я бы сделал вьюху с нужным типом цен и джойнил бы ее..
#41 by Ёпрст
в условие соединения запихай.. left join Справочник.Цены as Цены (nolock) on $ТекущийОбъект.ТекущийЭлемент = Цены.ParentExt and  $Цены.ТипЦен = :ТипЦены
#42 by Ёпрст
а как у тебя сейчас с веткой where- это inner join,  а не left
#43 by dimm7310
попробовал, теперь ошибок не выдает , но и цену не возвращает (пустая колонка)
#44 by Ёпрст
либо передал в качестве типа цен мусор( не текущийэлемент), либо с выбранным типом цен цены нема.
#45 by Ёпрст
+44 без условия на тип цен, есть че ? если да - проблема с переданным параметром.
#46 by dimm7310
я проверил в отладчике, нормально передается тип цены вот полный код инициализации
#47 by dimm7310
без условия на тип цены  тот же результат - Пустая колонка и ошибок не выдает
#48 by Ёпрст
Запрос=Данные.ПрямойЗапрос; - вот это писать по сто раз не надо. И ответь на
#49 by dimm7310
я же в ответил - тот же результат
#50 by Ёпрст
+ имя колонки цена2 а в запросе такого алияса нема - там Цена брать данные не откуда
#51 by Ёпрст
+50  выкини as Цена , для начала
#52 by dimm7310
если убираю as в строке Данные.ДобавитьКолонкуДанных("Цена","Цена","$ПоследнееЗначение.Цены.Цена(Цены.id, :ВыбДата)  Цена","Число",10,2,1); incorrect syntax near the keyword 'as'
#53 by dimm7310
результат тот же
#54 by Ёпрст
п...ц "AS ЦЕНА" убери нахрен
#55 by dimm7310
Заработало !!!!!!!!!!!!! Спасибо огромное
#56 by Ёпрст
аминь :_)
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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