Имя: Пароль:
1C
 
Внешнее подключение к базе
,
0 jeka_molodec
 
26.09.16
16:06
1с розница. Задача, подключится, по коду найти номенклатуру и узнать количество.
Запрос для справочника номенклатура - работает, для регистра нет.
следующий код работает:
Запрос = Соединение.NewObject("Запрос");        
    Запрос.Текст = "ВЫБРАТЬ
    | Номенклатура.Код КАК Код,
    | Номенклатура.ссылка КАК Номенклатура
    | ИЗ Справочник.Номенклатура КАК Номенклатура
    | ГДЕ Номенклатура.Код = &Код";
    Запрос.УстановитьПараметр("Код","00-00001963");
    рез = Запрос.Выполнить().Выбрать();//.Выгрузить();                
    Пока рез.Следующий() Цикл
    сообщить("рез-"+Соединение.String(рез.Номенклатура));
    КонецЦикла;

Следующий выдает ошибку :
исключение - {Обработка.ОбменРозница.Форма.Форма.Форма(68)}: Ошибка при вызове метода контекста (Выполнить): Произошла исключительная ситуация (1C:Enterprise 8.3.7.2027): {(3, 10)}: Поле не найдено "Остатки.Код"
Остатки.<<?>>Код КАК Код,

собственно код
Запрос = Соединение.NewObject("Запрос");
    Запрос.Текст = "ВЫБРАТЬ
    | Остатки.Номенклатура КАК Номенклатура,
    | Остатки.Код КАК Код,
    | Остатки.Количество КАК Количество
    | ИЗ РегистрНакопления.ТоварыНаСкладах КАК Остатки
    | ГДЕ Остатки.Номенклатура.Код = &КодНом";
    Запрос.УстановитьПараметр("КодНом","00-00001963");
    рез = Запрос.Выполнить().Выбрать();//.Выгрузить();                
    Пока рез.Следующий() Цикл
        сообщить("рез-"+Соединение.String(рез.Номенклатура)+" кол="+Соединение.String(рез.Количество));
    КонецЦикла;

Вроде написано что можно обращатся и регистрам?
1 Генератор
 
26.09.16
16:08
действительно у регистра есть измерение или реквизит код?
может остатки.номенклатура.код?
ну и остатки данные запрос не покажет
2 Vaflya
 
26.09.16
16:08
кривой запрос, причем тут сом
3 Vaflya
 
26.09.16
16:10
остатки.номенклутара.код
4 jeka_molodec
 
26.09.16
16:12
Измерения:
Склад,Номенклатура,Характеристики
Ресурсы:
Количество,резерв
Реквизиты:
КодСтроки,АналитикаХозяйственнойОперации
5 Михаил Козлов
 
26.09.16
16:12
Выбирать, наверное нужно из РегистрНакопления.ТоварыНаСкладах.Остатки?
6 Генератор
 
26.09.16
16:14
(4) а строчка Остатки.Код какое поле должна получить из регистра?
7 jeka_molodec
 
26.09.16
16:14
да, писал и так
Запрос.Текст = "ВЫБРАТЬ
    | Остатки.Номенклатура КАК Номенклатура,
    | Остатки.Код КАК Код,
    | Остатки.Количество КАК Количество
    | ИЗ РегистрНакопления.ТоварыНаСкладах КАК Остатки
    | ГДЕ РегистрНакопления.ТоварыНаСкладах.Номенклатура.Код = &КодНом";
8 Vaflya
 
26.09.16
16:15
не, не молодец
9 Михаил Козлов
 
26.09.16
16:16
(7) Попробуйте воспользоваться конструктором запроса в БД, к которой подключаетесь.
10 Генератор
 
26.09.16
16:16
ты в (4) перечислил все поля своего регистра, где там "код"?
11 jeka_molodec
 
26.09.16
16:17
да согласен. поле должно быть не код а .номенклатура.код
все равно ругается но уже по другому. Спасибо что ткнули. А то блужусь в 3х березах
12 jeka_molodec
 
26.09.16
16:18
работает панимаешь :) всем спасибо