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

Помогите с запросом на выборку товаров

Автор ITShef, 12 ноя 2010, 08:44

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

ITShef

Исходные:
1С 7.7 Торговля и склад

У меня есть следующая задача:
Необходимо составить список ВСЕХ товаров (номенклатур) и определить их цену и количество остатка на складе.

Я составил запрос:

Если ТипыЦен.НайтиПонаименованию("Розничные",0,1) = 1 тогда
    РознЦена = ТипыЦен.ТекущийЭлемент()
  КонецЕсли;

Запрос = СоздатьОбъект("Запрос"); 
ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ДатаКонца по ДатаКонца;
    |Номенклатура    = Регистр.ОстаткиТМЦ.Номенклатура;     
    |Склад            = Регистр.ОстаткиТМЦ.Склад;             
    |Количество = Регистр.ОстаткиТМЦ.Количество;
    |Функция КоличествоКонОст = КонОст(Количество);   
    |Condition (Склад в ВыбСклад);  // если необходимо   
    |Группировка Номенклатура;";
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;                               
    КонецЕсли;                                 
    Пока (Запрос.Группировка("Номенклатура") = 1)  Цикл 
        ТМЦ = Запрос.Номенклатура;
        Если Запрос.ЭтоГруппа("Номенклатура") = 0 Тогда 
             Кол = Запрос.КоличествоКонОст;
         глВернутьЦену(ТМЦ,РознЦена,РабочаяДата(),ОбЦена, ЕдИзм, ВалЦены);
        КонецЕсли;     
      Если ПустоеЗначение(ОбЦена) = 0 Тогда
        Цена1 = ОбЦена;
      Иначе
        Цена1 = 0;
      КонецЕсли;
      Сообщить(ТМЦ.Наименование);
      Сообщить(ЕдИзм);
      Сообщить(Цена1);
       Сообщить(Кол);
  КонецЦикла;

Он выбирает товары, определяет количество, НО! Но не все товары почему-то попадаются ему. Те товары, остаток которых 0 - просто игнорируются запросом, а мне нужны абсолютно все товары, которые есть в справочнике номенклатур. Помогите исправить запрос

Tatitutu

Цитироватьа мне нужны абсолютно все товары, которые есть в справочнике номенклатуры
твой ответ у тебя в вопросе !
зачем делать запрос по регистру остатков
нужен запрос по справочнику.Номенкулатура

или простый перебор
СпрН=СоздатьОбъект("Справочник.Номенклатура");   
СпрН.ВыбратьЭлементы();
Пока СпрН.ПолучитьЭлемент() = 1 Цикл
   Если СпрН.ЭтоГруппа()=1 Тогда
      Продолжить;
   КонецЕсли;
   //твои вычисления
КонецЦикла;

*  MAGAZKA - лучшая программа для розничного магазина (с) *

DenPlus

|Группировка Номенклатура;";

Заменит на

|Группировка Номенклатура Все;";

DenPlus

А чтобы при обработке запроса не проверять, "что это Группа", то лучше тогда стазу:

|Группировка Номенклатура Все Без Групп;";

ITShef

Большое спасибо! дописать все - помогло.
Группы мне тоже нужны

Теги:

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

Рейтинг@Mail.ru

Поиск