Имя: Пароль:
1C
1С v8
УТ 10.3 обработка подбор номенклатуры
0 Domanoff26
 
30.11.11
12:56
рискую нарваться на дикий стеб но не понимаю некоторых действий в обработке подбора номенклатуры, а конкретно функционала связанным с выводом номенклатуры только с не нулевыми остатками , тм есть такая процедурка где текст запроса подряд без каких либо условий меняется на другой и выполняется, зачем? я что то не понимаю...например
Запрос.Текст = "
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |        ТоварыВРезервеНаСкладах.Номенклатура               КАК Номенклатура,
   |        ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |        ЗНАЧЕНИЕ(Справочник.Качество.Новый)                КАК Качество,
   |        ТоварыВРезервеНаСкладах.КоличествоОстаток          КАК КоличествоОстаток
   |ПОМЕСТИТЬ ТоварыВРезервеНаСкладах
   |ИЗ
   |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, " + мУсловиеНоменклатураСклад + ") КАК ТоварыВРезервеНаСкладах
   |ИНДЕКСИРОВАТЬ ПО Номенклатура, ХарактеристикаНоменклатуры
   |";
   Запрос.Выполнить();

   Запрос.Текст = "
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |        ТоварыКПередачеСоСкладов.Номенклатура               КАК Номенклатура,
   |        ТоварыКПередачеСоСкладов.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |        ТоварыКПередачеСоСкладов.Качество                   КАК Качество,
   |        ТоварыКПередачеСоСкладов.КоличествоОстаток          КАК КоличествоОстаток
   |ПОМЕСТИТЬ ТоварыКПередачеСоСкладов
   |ИЗ
   |    РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата, " + мУсловиеНоменклатураСклад + ТекстУсловияКачества + ") КАК ТоварыКПередачеСоСкладов
   |ИНДЕКСИРОВАТЬ ПО Номенклатура, ХарактеристикаНоменклатуры, Качество
   |";
   Запрос.Выполнить();

   Запрос.Текст = "
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |        ОстаткиОрганизации.Номенклатура               КАК Номенклатура,
   |        ОстаткиОрганизации.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |        ОстаткиОрганизации.Качество                   КАК Качество,
   |        ОстаткиОрганизации.КоличествоОстаток          КАК КоличествоОстаток
   |ПОМЕСТИТЬ ОстаткиОрганизации
   |ИЗ
   |    РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата, " + мУсловиеНоменклатураСкладОрганизация + ТекстУсловияКачества + ") КАК ОстаткиОрганизации
   |ИНДЕКСИРОВАТЬ ПО Номенклатура, ХарактеристикаНоменклатуры, Качество
   |";
   Запрос.Выполнить();
1 Кокос
 
30.11.11
13:01
|ПОМЕСТИТЬ ОстаткиОрганизации

смотри эту строку.
2 Domanoff26
 
30.11.11
13:08
короче они так помещают в вирт таблицу эти данные, ясн, спасибо
3 чувак
 
30.11.11
13:45
Это назывется использование временных таблиц
4 Domanoff26
 
30.11.11
14:18
а зачем в процедуре вот эта соответствие - СоответствиеИмяРегистраУсловие? не вижу ее использования в дальнейшем(
Функция ПолучитьСтрокуЗапросаСвободныеОстатки(СтруктураРегистровОстатков, ТекстУсловияКачества, ПолучатьНоменклатуры) Экспорт
   Перем СоответствиеИмяРегистраУсловие;
   Перем СтрокаЗапроса;
   СтрокаЗапроса = "";
   СоответствиеИмяРегистраУсловие = Новый Соответствие();

   СоответствиеИмяРегистраУсловие.Вставить("ТоварыНаСкладах"  , ЭтотОбъект.мУсловиеНоменклатураСклад + ТекстУсловияКачества);
   СоответствиеИмяРегистраУсловие.Вставить("ТоварыВРознице"   , ЭтотОбъект.мУсловиеНоменклатураСклад + ТекстУсловияКачества);
   СоответствиеИмяРегистраУсловие.Вставить("ТоварыОрганизаций", ЭтотОбъект.мУсловиеНоменклатураСкладОрганизация + ТекстУсловияКачества);
   СоответствиеИмяРегистраУсловие.Вставить("ТоварыВНТТ"       , ЭтотОбъект.мУсловиеНоменклатураСклад);
   
   Для Каждого ИмяРегистра Из СтруктураРегистровОстатков Цикл
       СтрокаЗапроса = СтрокаЗапроса + "
       |ОБЪЕДИНИТЬ ВСЕ
       |ВЫБРАТЬ
       |    " + ?(ПолучатьНоменклатуры, "ТаблицаОстатков.Номенклатура               КАК Номенклатура,", "") + "
       |    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
       |    " + ?(ИмяРегистра.Ключ = "ТоварыВНТТ", "ЗНАЧЕНИЕ(Справочник.Качество.Новый)", "ТаблицаОстатков.Качество")+ " КАК Качество,
       |    " + ?(ИмяРегистра.Ключ = "ТоварыОрганизаций", "0", "ТаблицаОстатков.КоличествоОстаток") + " КАК КоличествоОстаток
       |ИЗ
       |    РегистрНакопления." + ИмяРегистра.Ключ + ".Остатки(&Дата, " + ЭтотОбъект.мУсловиеНоменклатураСклад + " + ) КАК ТаблицаОстатков
       |";
   КонецЦикла;
       СтрокаЗапроса = Сред(СтрокаЗапроса, 16);
   возврат СтрокаЗапроса;
КонецФункции
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший