Вход | Регистрация

1С:Предприятие ::

Метки:Приемы программирования

помогите пжалста с выборокой....

Я
   Айвин
22.06.04 - 12:07
"//{{ЗАПРОС(Сформировать)

    |Период С КонДата По КонДата ;
    |МОЛ = Регистр.ПартииНаличие.МОЛ;
    |НоменклатураРодитель = Регистр.ПартииНаличие.Номенклатура.Родитель;
    |Номенклатура = Регистр.ПартииНаличие.Номенклатура;
    |Партия = Регистр.ПартииНаличие.Партия;
    |Количество = Регистр.ПартииНаличие.Количество;
    |СуммаРуб = Регистр.ПартииНаличие.СуммаРуб;  
    |Функция КоличествоКонОст = КонОст(Количество) ;
    |Функция СуммаРубКонОст = КонОст(СуммаРуб);
    |Группировка НоменклатураРодитель Без Групп;
    |Группировка Номенклатура Без Групп;
    |Группировка Партия Без Групп;
    |Без Итогов;
    |Условие(Номенклатура в ВыбНоменклатура);
    |Условие(Количество <> 0);
    |//}}ЗАПРОС

    ;

Вот есть такой вот запрос... после него делаю
    ТЗОстатки=СоздатьОбъект("ТаблицаЗначений"); 
   Запрос.Выгрузить(ТЗОстатки);
а поля МОЛ нету (ТЗОстатки.МОЛ)... вапрос... что нужно сделать, чтобы оно было?
 
  Рекламное место пустует
   Gavrila
 
1 - 22.06.04 - 12:08
Запрос.Выгрузить(ТЗОстатки, 3);
   Айвин
2 - 22.06.04 - 12:09
просто после этого мне нужно сделать выборку именно по МОЛу... а его нету...
   Michael99
 
3 - 22.06.04 - 12:10
Запрос.Выгрузить(ТЗОстатки,1);
   Asmodeus
 
4 - 22.06.04 - 12:11
Может надо добавить группировку по МОЛ?
   Айвин
5 - 22.06.04 - 12:14
Если СписокСкладов.Пометка(СписокСкладов.НайтиЗначение(СпрСклады.НайтиПоРеквизиту("МОЛ", ПеремМОЛ   ,)),)=0 Тогда
    Продолжить;    
КонецЕсли;
и еще корректна ли эта запись, если СписокСкладов список в которм помечаются те склады по которым нужна выборка..., а СпрСклады=СоздатьОбъект(Справочники.Склады);
   Айвин
6 - 22.06.04 - 12:16
Пока ТЗОстатки.ПолучитьСтроку()=1 Цикл
        Если СписокСкладов.Пометка(СписокСкладов.НайтиЗначение(СпрСклады.НайтиПоРеквизиту("МОЛ", ПеремМОЛ   ,)),)=0 Тогда 
                  Продолжить;     
                КонецЕсли; 
        Если Родитель<>ТЗОстатки.НоменклатураРодитель Тогда
            Родитель=ТЗОстатки.НоменклатураРодитель;
            Таб.ВывестиСекцию("Группа");
        КонецЕсли;
        Если (ТЗОстатки.СуммаРубКонОст<>0) И 
             (ТЗОстатки.КоличествоКонОст<>0) Тогда
            Таб.ВывестиСекцию("Номенклатура");
        КонецЕсли;
    КонецЦикла;

это даже вот так выглядит.... или все совсем неправильно?
   Рупор абсурда
 
7 - 22.06.04 - 12:18
(5) Фигня какая то ... (с)
Хотя работать как-то будет и без ругани даже ...
   Gavrila
 
8 - 22.06.04 - 12:19
(6) НайтиПоРеквизиту - вернет 0 или 1, смотри здесь
НайтиПоРеквизиту(<?>,,);
Синтаксис:
НайтиПоРеквизиту(<ИмяРеквизита>,<Значение>,<ФлагГлобальногоПоиска>)
Назначение:
Найти элемент справочника по значению реквизита.
Возвращает: 1 - если действие выполнено;
0 - если действие не выполнено (элемент не найден).
Параметры:
<ИмяРеквизита> - строка с наименованием реквизита;
<Значение> - значение реквизита для поиска;
<ФлагГлобальногоПоиска> - флаг поиска:
 0 - поиск выполняется в пределах подчинения справочника,
 1 - поиск выполняется по всему справочнику.
Замечание:
Метод можно использовать только для реквизитов с установленным признаком ''Сортировка''.
Метод  можно использовать только для объектов, созданных функцией
   Michael99
 
9 - 22.06.04 - 12:22
Почему бы сразу в запросе не ограничить список складов и МОЛ?
   Айвин
10 - 22.06.04 - 12:34
Сначала было |Условие МОЛ=Склад.МОЛ... но выборку надо делать по тем складам, которые отмечены в списке...
 
 
   Айвин
11 - 22.06.04 - 12:38
как лучше это дело организовать... помогите пжалста...
   Michael99
 
12 - 22.06.04 - 12:50
(11) Список значений состоящий из МОЛ
СпМОЛ=СоздатьОбъект("СписокЗначений");
Для Инд=1 По СписокСкладов.РазмерСписка() Цикл
     Если СписокСкладов.Пометка(Инд)=1 Тогда
          СпМОЛ.ДобавитьЗначение(СписокСкладов.ПолучитьЗначение(Инд));
     КонецЕсли;
КонецЦикла;
....
Условие (МОЛ в СпММОЛ);
   Michael99
 
13 - 22.06.04 - 12:52
Извини ошибся 
Внутри Если
ТМОЛ=СписокСкладов.ПолучитьЗначение(Инд);
СпМОЛ.ДобавитьЗначение(ТМОЛ.МОЛ);
   Gruz
14 - 22.06.04 - 14:20
Вполне логично что реквизит МОЛ теряется при группировки. Самое простое решение - добавить условие на МОЛ или список МОЛ-ов.
   Орк
 
15 - 22.06.04 - 19:58
То 0.
В текст запроса добавь группировку по МОЛ.
P/S И будет тебе счастье (не удержался ;) ).


Список тем форума
Рекламное место пустует   Рекламное место пустует
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит Тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует