Обработка результатов запроса к 1С 7.7 из 1С 8.3 через COM соединение
Добрый день!
Суть вопроса в том, что надо получить остатки по Регистру сведений ОстаткиТМЦ из ТиС7.7 в Таблицу на сторонне 1С 8.3, пробую:
В результате получаю "0"
Строки запроса:
добавила т.к. "Очень долго думал!", с ними все понятно, отбираю по Фирме, Складу и Номенклатуру по Родителю.
Когда формирую ОстаткиТМЦ в 7.7 с тем-же отбором, там остатки есть! В чем и где ошибаюсь не пойму(
Может я ВООБЩЕ пошла не тем путем( ?
Мне нужны Актуальные остатки по Фирме, Складу и Номенклатуре входящей в Группу
Суть вопроса в том, что надо получить остатки по Регистру сведений ОстаткиТМЦ из ТиС7.7 в Таблицу на сторонне 1С 8.3, пробую:
ОткрытьСоединение(База);
Запрос = База.CreateObject("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Фирма = Регистр.ОстаткиТМЦ.Фирма,
| Регистр.РезервыТМЦ.Фирма;
|ФирмаКод = Регистр.ОстаткиТМЦ.Фирма.Код,
| Регистр.РезервыТМЦ.Фирма.Код;
|УпрАналитика = Регистр.ОстаткиТМЦ.Фирма.УпрАналитика,
| Регистр.РезервыТМЦ.Фирма.УпрАналитика;
|ЮрЛицо = Регистр.ОстаткиТМЦ.Фирма.ЮрЛицо,
| Регистр.РезервыТМЦ.Фирма.ЮрЛицо;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура,
| Регистр.Заказы.Номенклатура,
| Регистр.РезервыТМЦ.Номенклатура;
|НоменклатураР = Регистр.ОстаткиТМЦ.Номенклатура.Родитель,
| Регистр.Заказы.Номенклатура.Родитель,
| Регистр.РезервыТМЦ.Номенклатура.Родитель;
|Склад = Регистр.ОстаткиТМЦ.Склад,
| Регистр.РезервыТМЦ.Склад;
|СкладКод = Регистр.ОстаткиТМЦ.Склад.Код,
| Регистр.РезервыТМЦ.Склад.Код;
|Количество = Регистр.ОстаткиТМЦ.Количество,
| Регистр.РезервыТМЦ.Количество;
|Резерв = Регистр.РезервыТМЦ.Количество;
|Группировка Фирма Все ВошедшиеВЗапрос;
|Группировка Склад Все ВошедшиеВЗапрос;
|Группировка Номенклатура Все ВошедшиеВЗапрос;
|Функция КоличествоКонОст = КонОст(Количество);
|Функция РезервКонОст = КонОст(Резерв);
|Условие (Номенклатура.ЭтоГруппа() = 0);
|Условие (Количество <> 0);
|Условие (ФирмаКод = '00017');
|Условие (НоменклатураР = 'р2649');
|Условие (СкладКод = '00060');";
Запрос.Выполнить(ТекстЗапроса);
Пока Запрос.Группировка("Фирма") = 1 Цикл
Пока Запрос.Группировка("Склад") = 1 Цикл
Пока Запрос.Группировка("Номенклатура") = 1 Цикл
СтрокаЗагрузки = ОтчетЗагрузки.Добавить();
СтрокаЗагрузки.ВидОбъекта77 = Запрос.Номенклатура.Наименование;
СтрокаЗагрузки.Наименование77 = Запрос.КоличествоКонОст;
КонецЦикла;
КонецЦикла;
КонецЦикла;
ПоказатьВ результате получаю "0"
Строки запроса:
|Условие (ФирмаКод = '00017');
|Условие (НоменклатураР = 'р2649');
|Условие (СкладКод = '00060');";
добавила т.к. "Очень долго думал!", с ними все понятно, отбираю по Фирме, Складу и Номенклатуру по Родителю.
Когда формирую ОстаткиТМЦ в 7.7 с тем-же отбором, там остатки есть! В чем и где ошибаюсь не пойму(
Может я ВООБЩЕ пошла не тем путем( ?
Мне нужны Актуальные остатки по Фирме, Складу и Номенклатуре входящей в Группу
По теме из базы знаний
- 1С8:борьба - личный опыт работы с платформой 1с8
- Опыт проведения сложных переносов данных на 1С
- Создание в 1С 7.7 XML в формате EnterpriseData (универсальный формат обмена), версия 1.5. Инструкции и примеры переноса данных из устаревшей конфигурации 1С 7.7 в любую современную 1С 8.3, поддерживающую EnterpriseData, через Конвертацию данных 3
- Пример переноса справочников, документов и движений через Эксель и "Конвертацию данных 2" из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
- Соображения о поиске работы и проблемах при первом внедрении ЕРП в 2024 г. Стаж в 1С 25 лет
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Оптимально по быстродействию глобальная функция в 7.7, возвращающая именно те остатки, которые требуются. Получение элементов для отборов так же на стороне 7ки в этой функции методом найти по коду. Запрос в 7.ке с получением остатков не следует нагружать реквизитами через точку.
(7) Пока нет, я взяла за основу Отчет Остатки ТМЦ из 7-ки, там:
Функция ТекстЗапросаБезКомиссии()
СтрПериод = ?(ДатаКонца>= ПолучитьДатуТА(),"",
"Период с ДатаКонца по ДатаКонца;");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|" + СтрПериод +
"
|Фирма = Регистр.ОстаткиТМЦ.Фирма,
| Регистр.РезервыТМЦ.Фирма;
|УпрАналитика = Регистр.ОстаткиТМЦ.Фирма.УпрАналитика,
| Регистр.РезервыТМЦ.Фирма.УпрАналитика;
|ЮрЛицо = Регистр.ОстаткиТМЦ.Фирма.ЮрЛицо,
т.е. если ДатаКонца>= ПолучитьДатуТА() то период в Запрос не попадает, но он формируется
Функция ТекстЗапросаБезКомиссии()
СтрПериод = ?(ДатаКонца>= ПолучитьДатуТА(),"",
"Период с ДатаКонца по ДатаКонца;");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|" + СтрПериод +
"
|Фирма = Регистр.ОстаткиТМЦ.Фирма,
| Регистр.РезервыТМЦ.Фирма;
|УпрАналитика = Регистр.ОстаткиТМЦ.Фирма.УпрАналитика,
| Регистр.РезервыТМЦ.Фирма.УпрАналитика;
|ЮрЛицо = Регистр.ОстаткиТМЦ.Фирма.ЮрЛицо,
т.е. если ДатаКонца>= ПолучитьДатуТА() то период в Запрос не попадает, но он формируется
(16) Этот запрос и в самой 7-ке ничего не выберет из базы. Как и в восьмерке собственно, если вы на ссылочный тип в условие равенства строку подставите.
Ну и дату можно так передать:
Ну и дату можно так передать:
ДатаЗапроса = "'30.09.2020'";
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с "+ДатаЗапроса+" по "+ДатаЗапроса+";
(19)
Убрала вообще Условие (НоменклатураР = 'р2649');
Период поставила, так как Вы написали, на всякий случай Дату взяла Началом года, проверила в 7-ке на эту дату формирует! А у меня Нет! (
Выдает только список Номенклатур по Складу которые не с нулевым остатком (только те, что в 7-ке в отчете т.е. он видит что в остатках), сверила в Отчетом в семерке, а остаток не показывает!
ДатаЗапроса = "'30.09.2020'";
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с "+ДатаЗапроса+" по "+ДатаЗапроса+";
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с "+ДатаЗапроса+" по "+ДатаЗапроса+";
Убрала вообще Условие (НоменклатураР = 'р2649');
Период поставила, так как Вы написали, на всякий случай Дату взяла Началом года, проверила в 7-ке на эту дату формирует! А у меня Нет! (
Выдает только список Номенклатур по Складу которые не с нулевым остатком (только те, что в 7-ке в отчете т.е. он видит что в остатках), сверила в Отчетом в семерке, а остаток не показывает!
Убрала из запроса Все!
Оставила только регистр ОстаткиТМЦ
Убила Базу 7-ки( Переиндексируется...
Жду...
Оставила только регистр ОстаткиТМЦ
ДатаЗапроса = "'01.01.2020'";
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с "+ДатаЗапроса+" по "+ДатаЗапроса+";
|Фирма = Регистр.ОстаткиТМЦ.Фирма;
|ФирмаКод = Регистр.ОстаткиТМЦ.Фирма.Код;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|СкладКод = Регистр.ОстаткиТМЦ.Склад.Код;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Резерв = Регистр.РезервыТМЦ.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Номенклатура Все;
|Группировка Склад Все ВошедшиеВЗапрос;
|Условие (ФирмаКод = '00017');
|Условие (Номенклатура.ЭтоГруппа() = 0);
|Условие (СкладКод = '00060');";
Запрос.Выполнить(ТекстЗапроса);
Пока Запрос.Группировка("Номенклатура") = 1 Цикл
Пока Запрос.Группировка("Склад") = 1 Цикл
СтрокаЗагрузки = ОтчетЗагрузки.Добавить();
СтрокаЗагрузки.НоменклатураНаименование77 = Запрос.Номенклатура.Наименование;
СтрокаЗагрузки.НоменклатураКоличество77 = Запрос.КоличествоКонОст;
КонецЦикла;
КонецЦикла;
ПоказатьУбила Базу 7-ки( Переиндексируется...
Жду...
(25) Извините за Навязчивость(
А вот тут не надо местами Циклы поменять?
А вот тут не надо местами Циклы поменять?
Пока Запрос.Группировка("Номенклатура") = 1 Цикл
Пока Запрос.Группировка("Склад") = 1 Цикл
СтрокаЗагрузки = ОтчетЗагрузки.Добавить();
СтрокаЗагрузки.ВидОбъекта77 = Запрос.Номенклатура.Наименование;
СтрокаЗагрузки.Наименование77 = Запрос.КоличествоКонОст;
КонецЦикла;
КонецЦикла;
(41) Да вроде нормально сейчас все. Должен данные отдавать.
Попробуйте так:
Попробуйте так:
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
СтрокаЗагрузки = ОтчетЗагрузки.Добавить();
СтрокаЗагрузки.ВидОбъекта77 = Запрос.Номенклатура.Наименование;
СтрокаЗагрузки.Наименование77 = Запрос.КоличествоКонОст;
КонецЦикла;
КонецЦикла;
ПоказатьНоменклатураР = Регистр.ОстаткиТМЦ.Номенклатура.Родитель,
| Регистр.Заказы.Номенклатура.Родитель,
| Регистр.РезервыТМЦ.Номенклатура.Родитель;
|Условие (НоменклатураР = 'р2649');
Уже писали выше: так однозначно не взлетит
Только если писать
НоменклатураР = Регистр.ОстаткиТМЦ.Номенклатура.Родитель.Код
(36)Вот!!! я уже про Порядок спрашивала! Точнее я видимо не правильно спросила( В Какой очередности надо поставить Функции и Группировки?
Сейчас запрос так выглядит:
Сейчас запрос так выглядит:
ДатаЗапроса = "'01.01.2020'";
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с "+ДатаЗапроса+" по "+ДатаЗапроса+";
|Фирма = Регистр.ОстаткиТМЦ.Фирма;
|ФирмаКод = Регистр.ОстаткиТМЦ.Фирма.Код;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|НоменклатураР = Регистр.ОстаткиТМЦ.Номенклатура.Родитель.Код;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|СкладКод = Регистр.ОстаткиТМЦ.Склад.Код;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Номенклатура Все;
|Группировка Склад Все ВошедшиеВЗапрос;
|Условие (ФирмаКод = '00017');
|Условие (НоменклатураР = 'р2649');
|Условие (Номенклатура.ЭтоГруппа() = 0);
|Условие (СкладКод = '00060');";
Запрос.Выполнить(ТекстЗапроса);
Пока Запрос.Группировка("Номенклатура") = 1 Цикл
Пока Запрос.Группировка("Склад") = 1 Цикл
СтрокаЗагрузки = ОтчетЗагрузки.Добавить();
СтрокаЗагрузки.ВидОбъекта77 = Запрос.Номенклатура.Наименование;
СтрокаЗагрузки.Наименование77 = Запрос.КоличествоКонОст;
КонецЦикла;
КонецЦикла;
Показать
Мне Честно не понятно!
Почему в типовом 7-чном отчете так:
Почему Циклы "Наоборот"?
В 8-ке я бы Сделала в начале по складу, а потом по Номенклатуре...
Почему в типовом 7-чном отчете так:
Пока Запрос.Группировка("Номенклатура") = 1 Цикл
Пока Запрос.Группировка("Склад") = 1 Цикл
СтрокаЗагрузки = ОтчетЗагрузки.Добавить();
СтрокаЗагрузки.ВидОбъекта77 = Запрос.Номенклатура.Наименование;
СтрокаЗагрузки.Наименование77 = Запрос.КоличествоКонОст;
КонецЦикла;
КонецЦикла;
Почему Циклы "Наоборот"?
В 8-ке я бы Сделала в начале по складу, а потом по Номенклатуре...
и так, что в Итоге!
Вот Запрос:
В Ответе: Номенклатуры ВСЕ, а остатки НУЛЕВЫЕ!
т.е. вернулись к тому от чего пришли(
Вот Запрос:
ДатаЗапроса = "'01.01.2020'";
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с "+ДатаЗапроса+" по "+ДатаЗапроса+";
|Фирма = Регистр.ОстаткиТМЦ.Фирма;
|ФирмаКод = Регистр.ОстаткиТМЦ.Фирма.Код;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|НоменклатураР = Регистр.ОстаткиТМЦ.Номенклатура.Родитель.Код;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|СкладКод = Регистр.ОстаткиТМЦ.Склад.Код;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Номенклатура Все;
|Группировка Склад Все ВошедшиеВЗапрос;
|Условие (ФирмаКод = '00017');
|Условие (НоменклатураР = 'р2649');
|Условие (Номенклатура.ЭтоГруппа() = 0);
|Условие (СкладКод = '00060');";
Запрос.Выполнить(ТекстЗапроса);
Пока Запрос.Группировка("Номенклатура") = 1 Цикл
Пока Запрос.Группировка("Склад") = 1 Цикл
СтрокаЗагрузки = ОтчетЗагрузки.Добавить();
СтрокаЗагрузки.ВидОбъекта77 = Запрос.Номенклатура.Наименование;
СтрокаЗагрузки.Наименование77 = Запрос.КоличествоКонОст;
КонецЦикла;
КонецЦикла;
ПоказатьВ Ответе: Номенклатуры ВСЕ, а остатки НУЛЕВЫЕ!
т.е. вернулись к тому от чего пришли(
ДатаЗапроса = "'01.01.2020'";
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с "+ДатаЗапроса+" по "+ДатаЗапроса+";
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|НоменклатураР = Регистр.ОстаткиТМЦ.Номенклатура.Родитель.Код;
|СкладКод = Регистр.ОстаткиТМЦ.Склад.Код;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Номенклатура Все;
|Группировка Склад Все ВошедшиеВЗапрос;
//|Условие (ФирмаКод = '00017');
//|Условие (НоменклатураР = 'р2649');
|Условие (Номенклатура.ЭтоГруппа() = 0);
|Условие (СкладКод = '00060');";
Запрос.Выполнить(ТекстЗапроса);
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
СтрокаЗагрузки = ОтчетЗагрузки.Добавить();
СтрокаЗагрузки.ВидОбъекта77 = Запрос.Номенклатура.Наименование;
СтрокаЗагрузки.Наименование77 = Запрос.КоличествоКонОст;
КонецЦикла;
КонецЦикла;
ПоказатьУже нечего убирать!!!
Что не так!?
Группировка номенклатура без групп;
Группировка склад без групп;
Условия убираем все и включаем по одному, когда получим остатки, как и соответствующие им переменные запроса номенклатураР и складкод.
После выполнения запроса выгружаем его в тз и пишем сообщить количество строк в тз.
Группировка склад без групп;
Условия убираем все и включаем по одному, когда получим остатки, как и соответствующие им переменные запроса номенклатураР и складкод.
После выполнения запроса выгружаем его в тз и пишем сообщить количество строк в тз.
Вот так еще попробуйте:
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с "+ДатаЗапроса+" по "+ДатаЗапроса+";
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|НоменклатураР = Регистр.ОстаткиТМЦ.Номенклатура.Родитель.Код;
|СкладКод = Регистр.ОстаткиТМЦ.Склад.Код;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Номенклатура без групп;
|Группировка Склад без групп;
|Условие (ФирмаКод = '00017');
|Условие (НоменклатураР = 'р2649');
//|Условие (Номенклатура.ЭтоГруппа() = 0);
|Условие (СкладКод = '00060');";
Показать
А к функции из глобального модуля можно через СОМ обратиться?
Нашла такую функцию, вроде бы то что мне и нужно:
//******************************************************************************
// глПолучитьОстаткиНоменклатуры(ФирмаДляОстатковТМЦ, Номенклатура, Единица, ОстаткиТМЦ, ОстатокНаСкладе, ОстатокПоФирме, Склад,
// РезервыТМЦ = 0, УчитыватьРезерв = 0, Договор = 0, Заявка = 0) Экспорт
//
// Параметры:
// ФирмаДляОстатковТМЦ - элемент справочника "Фирмы" или список таких элементов, для которого надо получить остаток,
// Номенклатура - элемент справочника "Номенклатура", для которого надо получить остаток,
// Единица - элемент справочника "Единицы", определяем в чем надо вернуть остаток,
// ОстаткиТМЦ - регистр "ОстаткиТМЦ", отфильтрованный и рассчитанный нужным образом,
// ОстатокНаСкладе - возвращаемое значение, остаток на складе
// ОстатокПоФирме - возвращаемое значение, остаток по фирме
// Склад - элемент справочника "Склады", для которого надо получить остаток на складе
// РезервыТМЦ - регистр "РезервыТМЦ", отфильтрованный и рассчитанный нужным образом,
// необязателен, если не задан, то из остатка резерв не вычитается,
// УчитыватьРезерв - число, флаг учета резерва, если не пуст, то из остатка вычитается резерв,
// необязателен, по умолчанию 0.
// Договор - элемент справочника "Договора", определяет договор,
// резервы по которому надо включить в остаток (не обязателен),
// Заявка - документ "Заявка", определяет заявку,
// резервы по которой надо включить в остаток,
// анализируется если не задан Договор (не обязателен).
//
// Возвращаемое значение:
// Нет
//
// Описание:
// Вычисляет остатки Номенклатуры на складе, по фирме, в соответствии с текущими установками фильтра.
//
Нашла такую функцию, вроде бы то что мне и нужно:
//******************************************************************************
// глПолучитьОстаткиНоменклатуры(ФирмаДляОстатковТМЦ, Номенклатура, Единица, ОстаткиТМЦ, ОстатокНаСкладе, ОстатокПоФирме, Склад,
// РезервыТМЦ = 0, УчитыватьРезерв = 0, Договор = 0, Заявка = 0) Экспорт
//
// Параметры:
// ФирмаДляОстатковТМЦ - элемент справочника "Фирмы" или список таких элементов, для которого надо получить остаток,
// Номенклатура - элемент справочника "Номенклатура", для которого надо получить остаток,
// Единица - элемент справочника "Единицы", определяем в чем надо вернуть остаток,
// ОстаткиТМЦ - регистр "ОстаткиТМЦ", отфильтрованный и рассчитанный нужным образом,
// ОстатокНаСкладе - возвращаемое значение, остаток на складе
// ОстатокПоФирме - возвращаемое значение, остаток по фирме
// Склад - элемент справочника "Склады", для которого надо получить остаток на складе
// РезервыТМЦ - регистр "РезервыТМЦ", отфильтрованный и рассчитанный нужным образом,
// необязателен, если не задан, то из остатка резерв не вычитается,
// УчитыватьРезерв - число, флаг учета резерва, если не пуст, то из остатка вычитается резерв,
// необязателен, по умолчанию 0.
// Договор - элемент справочника "Договора", определяет договор,
// резервы по которому надо включить в остаток (не обязателен),
// Заявка - документ "Заявка", определяет заявку,
// резервы по которой надо включить в остаток,
// анализируется если не задан Договор (не обязателен).
//
// Возвращаемое значение:
// Нет
//
// Описание:
// Вычисляет остатки Номенклатуры на складе, по фирме, в соответствии с текущими установками фильтра.
//
Начал экспериментировать сам. Поставил 77, нашел ТиС.
Написал маленькую обработку со своими тестовыми данными.
У меня заработало только вот с такой конструкцией:
То есть я через ЗначениеИзФайла передаю ссылочное значение в контекст запроса.
Написал маленькую обработку со своими тестовыми данными.
У меня заработало только вот с такой конструкцией:
Запрос = ОЛЕ.CreateObject("Запрос");
ДатаОстатков = "'01.10.2020'";
Родитель = ОЛЕ.CreateObject("Справочник.Номенклатура");
// Искомая группа номенклатуры имеет код 2
Если Родитель.НайтиПоКоду(2) = 0 Тогда
Сообщить("Группа не найдена");
КонецЕсли;
ИмяФайла = ОЛЕ.КаталогВременныхФайлов() + "1.val";
// ТекущийЭлемент() в строчке ниже обязателен, иначе сохраняется пустое значение
ОЛЕ.ЗначениеВФайл(ИмяФайла, Родитель.ТекущийЭлемент(), 1);
Текст = "Период с " + ДатаОстатков + " по " + ДатаОстатков + ";
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|НоменклатураРодитель = Регистр.ОстаткиТМЦ.Номенклатура.Родитель;
|СкладКод = Регистр.ОстаткиТМЦ.Склад.Код;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Номенклатура;
|Группировка Склад;
|Условие (СкладКод = ""00001"");
|Условие (НоменклатураРодитель = ЗначениеИзФайла(""" + ИмяФайла + """));";
Запрос.Выполнить(Текст);
Пока Запрос.Группировка("Номенклатура") = 1 Цикл
Пока Запрос.Группировка("Склад") = 1 Цикл
Сообщить(Запрос.Номенклатура.Наименование + ", " + Запрос.КоличествоКонОст);
КонецЦикла;
КонецЦикла;
ПоказатьТо есть я через ЗначениеИзФайла передаю ссылочное значение в контекст запроса.
(65)
Да, на сегодня остановилась на Вашем варианте! Но... Мне не понятно, почему?
В запросе работает, а Родитель Номенклатуры по тому же Коду не отбирается?
Должна же быть какая-то причина, по которой так происходит!? Точнее... Не происходит(
У меня заработало только вот с такой конструкцией
Да, на сегодня остановилась на Вашем варианте! Но... Мне не понятно, почему?
|Условие (СкладКод = ""00001"");
В запросе работает, а Родитель Номенклатуры по тому же Коду не отбирается?
Должна же быть какая-то причина, по которой так происходит!? Точнее... Не происходит(
(65)
Кстати, если поменять Группировки и Номенклатурам добавить "ВошедшиеВЗапрос", то запрос обрабатывается в разы быстрее.
|Группировка Склад;
|Группировка Номенклатура Все ВошедшиеВЗапрос;
|Условие (СкладКод = ""00001"");
|Условие (НоменклатураРодитель = ЗначениеИзФайла(""" + ИмяФайла + """));";
Запрос.Выполнить(Текст);
Пока Запрос.Группировка("Склад") = 1 Цикл
Пока Запрос.Группировка("Номенклатура") = 1 Цикл
|Группировка Номенклатура Все ВошедшиеВЗапрос;
|Условие (СкладКод = ""00001"");
|Условие (НоменклатураРодитель = ЗначениеИзФайла(""" + ИмяФайла + """));";
Запрос.Выполнить(Текст);
Пока Запрос.Группировка("Склад") = 1 Цикл
Пока Запрос.Группировка("Номенклатура") = 1 Цикл
Кстати, если поменять Группировки и Номенклатурам добавить "ВошедшиеВЗапрос", то запрос обрабатывается в разы быстрее.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот