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

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 И будет тебе счастье (не удержался ;) ).


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