Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 23:12

Запросом выбрать номенклатуру из другой базы

Автор skillful, 30 янв 2020, 08:08

0 Пользователей и 1 гость просматривают эту тему.

skillful

Добрый день. Есть 2 базы, обе не типовые.

В базе №1 ведутся продажи. В конфигурации ничего изменять нельзя.
База №2 пустая. Нужна только для того, чтобы делать заказы поставщикам по контролю остатков.

Таким запросом в базе №2 получаю номенклатуру из базы №1
Соединение = ПодключитьсяКБазе();

Сообщить("Соединение установлено");

Запрос = Соединение.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ
|Номенклатура.Наименование,
|Номенклатура.Родитель,
|Номенклатура.Ссылка,
|Номенклатура.Блокирована
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| (Номенклатура.Родитель.Наименование = ""01.01_Холодильники""
| ИЛИ Номенклатура.Родитель.Родитель.Наименование  = ""01.01_Холодильники""
| ИЛИ Номенклатура.Родитель.Родитель.Родитель.Наименование  = ""01.01_Холодильники""
| ИЛИ Номенклатура.Родитель.Родитель.Родитель.Родитель.Наименование  = ""01.01_Холодильники"")
| И Номенклатура.Блокирована = ЛОЖЬ
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура.Наименование ИЕРАРХИЯ";

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

К = 1;

Пока Результат.Следующий() Цикл
К = К+1;
   
сообщить(Результат.Наименование);

НоваяСтрока = ЭтаФорма.Список.Добавить();
НоваяСтрока.Номенклатура = Результат.Наименование;
НоваяСтрока.Блокирована = Результат.Блокирована;

//Если К>75 Тогда     
// Прервать;
//КонецЕсли;

КонецЦикла;


Такой запрос выводит более 6000 позиций номенклатуры только из одной группы из базы №1. А нужно только ту которая заведена в справочнике номенклатуры базы №2. Название и код номенклатуры совпадают в обоих базах. Подскажите запрос который все это провернет?

wise

(0) сформируйте массив кодов в базе №2
и запрашивайте Номенклатура.Код В (&МассивКодовВторойБазы)
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

skillful

Цитата: wise от 30 янв 2020, 11:39
(0) сформируйте массив кодов в базе №2
и запрашивайте Номенклатура.Код В (&МассивКодовВторойБазы)
Если правильно понимаю: сперва идет первый запрос к базе №2, из него получаю массив кодов. Потом второй запрос к базе №1 с массивом кодов. Так?

ef0din

Цитата: skillful от 30 янв 2020, 12:28
Цитата: wise от 30 янв 2020, 11:39
(0) сформируйте массив кодов в базе №2
и запрашивайте Номенклатура.Код В (&МассивКодовВторойБазы)
Если правильно понимаю: сперва идет первый запрос к базе №2, из него получаю массив кодов. Потом второй запрос к базе №1 с массивом кодов. Так?

Зачем? У Вас есть спосок необходимой номенклатуры в базе 1. Берете из него номенклатуру и таким же запросом примерно ,как у Вас, получаете из базы 2 остатки, блокировку или что там Вам надо ,но условия: ГДЕ Код = &Код1 ИЛИ ГДЕ Код = &Код2 и тд.  Где Код2, Код2 и тд. - это коды из списка необходимой Вам номенклатуры. Т.е. коды той номенклатуры, по которой данные здесь и сейчас нужны.

skillful


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск