helpf.pro
Регистрация

v7: Отбор по МОЛ в 7.7

Bell
28.03.2012 19:05Прочитано: 2163
Здравствуйте
Подскажите где ошебка. Не отбираются элементы спр. по МОЛ
на форме отчета реквизит МОЛ , в справочнике он периодический реквизит тоже МОЛ
А то в голове каша уже 7.7 и 8.2 Запросов
Код 1C v 7.x
 Процедура Сформировать()  
Заголовок = "Организация - ";
СписокВыбранныхСчетовМ = "";
СписокВыбранныхСчетовОС = "";
СписокВыбранныхСчетовОб = "";
Для СчетчикЦикла = 1 По СписокСчетов.РазмерСписка() Цикл
Сч = СписокСчетов.ПолучитьЗначение(СчетчикЦикла);
Если СписокСчетов.Пометка(СчетчикЦикла) = 1 Тогда
Если Сч=СчетПоКоду("01.1") тогда
СписокВыбранныхСчетовОС = СписокВыбранныхСчетовОС+","+ Сч.Код;
ИначеЕсли Сч=СчетПоКоду("07") тогда
СписокВыбранныхСчетовОб = СписокВыбранныхСчетовОб+","+ Сч.Код;
Иначе
СписокВыбранныхСчетовМ = СписокВыбранныхСчетовМ+","+ Сч.Код;
КонецЕсли;
КонецЕсли;
КонецЦикла;
СписокВыбранныхСчетовМ = Сред(СписокВыбранныхСчетовМ,2);
СписокВыбранныхСчетовОС = Сред(СписокВыбранныхСчетовОС,2);
СписокВыбранныхСчетовОб = Сред(СписокВыбранныхСчетовОб,2);

Если (СокрЛП(СписокВыбранныхСчетовМ)="") и (СокрЛП(СписокВыбранныхСчетовОС)="") и (СокрЛП(СписокВыбранныхСчетовОб)="") Тогда
Предупреждение("Не указаны счета, по которым формировать отчет");
Возврат;
КонецЕсли;

ТМ = СоздатьОбъект("ТаблицаЗначений");
ТМ.НоваяКолонка("Мат","Справочник");
ТМ.НоваяКолонка("Ост","Число");

ТК = СоздатьОбъект("ТаблицаЗначений");
ТК.НоваяКолонка("Мат","Справочник");
ТК.НоваяКолонка("Ост","Число");
Для НН=1 По 11 Цикл
ВесДМПаспорт[НН]=0;
ВесДМУстановлено[НН]=0;
ИтВесДМПаспорт[НН]=0;
ИтВесДМУстановлено[НН]=0;
КонецЦикла;
// по ОС
Если СокрЛП(СписокВыбранныхСчетовОС)<>"" тогда
ТекстЗапроса =
"//{{ЗАПРОС(Инвентаризация)
|Период с ДатаИнв по ДатаИнв;
|ОС = Справочник.ОсновныеСредства.ТекущийЭлемент;
|МОЛ = Справочник.ОсновныеСредства.МОЛ;
|Функция Колич = Счётчик(ОС);
|Условие((ОС.ДатаВводаВЭксплуатацию <= ДатаИнв) И ((Число(ОС.ДатаВыбытия) = 0) или (ОС.ДатаВыбытия>ДатаИнв)));
|"//}}ЗАПРОС
;
Если МОЛ.Выбран()<>0 Тогда
ТекстЗапроса=ТекстЗапроса+
"// ????????????????????????????????
|Условие(МОЛ = МОЛ);";
КонецЕсли;
ТекстЗапроса=ТекстЗапроса+
"
|Группировка ОС Упорядочить По ОС.Наименование без групп;
|";

Запрос = СоздатьОбъект("Запрос");
Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
Возврат;
КонецЕсли;

Пока Запрос.Группировка(1)=1 цикл
Если НаличиеДрагметалла(Запрос.ОС)=1 Тогда
ТМ.НоваяСтрока();
ТМ.Мат = Запрос.ОС;
ТМ.Ост = 1;
КонецЕсли;
Если НаличиеДрагКамней(Запрос.ОС)=1 Тогда
ТК.НоваяСтрока();
ТК.Мат = Запрос.ОС;
ТК.Ост = 1;
КонецЕсли;

КонецЦикла;
КонецЕсли;



КонецПроцедуры

Изменено 28.03.12 19:09:59
Yandex
Возможно, вас также заинтересует
Реклама на портале
ad82117
28.03.2012 21:14Ответ № 1
1. "Число(ОС.ДатаВыбытия) = 0" --- а почему и зачем число?
2. на форме сделайте "ВыбМол", а не "МОЛ" или в запросе переменную МОЛ переименуйте, а то как-то не так получается
Изменено 28.03.12 21:14:38
Подсказка: Вы получили ответ на свой вопрос - закройте вопрос!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.