Имя: Пароль:
1C
 
Не получить серии номенклатуры в запросе
🠗 (Волшебник 12.12.2024 15:34)
,
0 Смотрящий от 1С
 
12.12.24
14:25
Где то жестко туплю. Обращаюсь по OLE из УТ 11.5 к УТ 11.4. При переносе забыли серии и нужно их выдернуть.

Могу получить остатки товаров на складах. Серия почему то всегда пустая ссылка.

Отдельно только справочник серий номенклатуры могу получить. Отдельно номенклатуру могу.
В связке серию с номенклатурой не могу.

//подключаемся к УТ
Соединение = ПодключитьсяКбазе();  

Запрос114 = Соединение.NewObject("Запрос");  


Запрос114 = Новый Запрос;
Запрос114.Текст =
"ВЫБРАТЬ
|    СерииНоменклатуры.Ссылка КАК Ссылка,
|    СерииНоменклатуры.ВерсияДанных КАК ВерсияДанных,
|    СерииНоменклатуры.ПометкаУдаления КАК ПометкаУдаления,
|    СерииНоменклатуры.Наименование КАК Наименование,
|    СерииНоменклатуры.ГоденДо КАК ГоденДо,
|    СерииНоменклатуры.ВидНоменклатуры КАК ВидНоменклатуры,
|    СерииНоменклатуры.Номер КАК Номер,
|  ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
|  ТоварыНаСкладахОстатки.Серия КАК Серия
|ИЗ
|    РегистрНакопления.ТоварыНаСкладах.Остатки(&Датаост, Номенклатура.ВидНоменклатуры.Наименование = &ВидНом) КАК ТоварыНаСкладахОстатки
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры
|        ПО ТоварыНаСкладахОстатки.Серия = СерииНоменклатуры.Ссылка";

Запрос114.УстановитьПараметр("ВидНом", Объект.ВидНом.Наименование);  //тут "Товары со сроком годности" у которых есть серии
Запрос114.УстановитьПараметр("Датаост", НачалоКвартала(ТекущаяДата()));

РезультатЗапроса = Запрос114.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл  
               // тут серия =  пустая ссылка на спр. серии номенклатуры
           //ссылка  = null
           //номенклатура именно та у которой есть серии
        Сообщить("");
КонецЦикла;

=================================================
второй вариант запроса
здесь серия всегда пустая, хотя номенклатура именно та у которой есть серии. Пробовал и серия.наименование и выразить как строку

//подключаемся к УТ
Соединение = ПодключитьсяКбазе();  
Запрос114 = Соединение.NewObject("Запрос");
                    
                    Запрос114 = Новый Запрос;
                    Запрос114.Текст =
                    "ВЫБРАТЬ
                    |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                    |    ТоварыНаСкладахОстатки.Характеристика КАК Характеристика,
                    |    ТоварыНаСкладахОстатки.Склад КАК Склад,
                    |    ТоварыНаСкладахОстатки.Серия  КАК Серия,
                    |    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
                    |ИЗ
                    |    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков, Номенклатура.GUID = &ГУИД И Склад.Наименование = &НаименСклада ) КАК ТоварыНаСкладахОстатки";
1 DrShad
 
12.12.24
14:17
что за странная конструкция?

Запрос114 = Соединение.NewObject("Запрос");
                    
                    Запрос114 = Новый Запрос;
2 DrShad
 
12.12.24
14:18
у тебя же запрос выполняется не по ОЛЕ в итоге
3 Смотрящий от 1С
 
12.12.24
14:22
(2) все нормально с выполнением. Запрос выполняется в УТ 11.4

ПодключитьсяКбазе()  это организует


&НаСервере
Функция ПодключитьсяКбазе() экспорт
    ПараметрыПодключенияИБ = "Srvr=""1CSERVER""; Ref=""at""; Usr=""admin""; Pwd=""12345""";Usr=""Администратор"";Pwd=""1""";
    V83COMCon= Новый COMОбъект("V83.COMConnector");
    Попытка
        Возврат V83COMCon.Connect(ПараметрыПодключенияИБ);
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат Неопределено;
    КонецПопытки;
КонецФункции
4 DrShad
 
12.12.24
14:23
еще раз
ты пересоздаешь объект
5 H A D G E H O G s
 
12.12.24
14:24
(3) Ты запросом обращаешься к базе УТ11.5, где у тебя серий нет.
Ошибка тут:

Запрос114 = Соединение.NewObject("Запрос");  


Запрос114 = Новый Запрос; // ТУТ!
Запрос114.Текст =
6 Смотрящий от 1С
 
12.12.24
14:27
(4) поправил форматирование. Это два варианта запроса. Первый через товары на складах и соединение с сериями . Второй просто к товарам на складах. Серия является измерением этого регистра
7 Мультук
 
гуру
12.12.24
14:30
(6)

Вылезай уже из танка

(6)

Вылезай уже из танка

Запрос114 = Соединение.NewObject("Запрос");  
Запрос114 = Новый Запрос; //да не буду я лезть через COM, лучше спрошу здесь в УТ 11.5
8 DrShad
 
12.12.24
14:29
такое впечатление, что НИКи на форуме воруют со временем
9 Мультук
 
гуру
12.12.24
14:31
(8) Старость не радость (с) :-)
10 Смотрящий от 1С
 
12.12.24
14:33
(8) я же чувствовал, что туплю. Глаз замылился. Спасибо. Вопрос решен
11 Волшебник
 
12.12.24
15:34
(8) Я почти в этом уверен
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс