"если не ощибаюсь вот сам и запрос<br> <br> <br><pre>Процедура КонтрольОстатков_Реализация_ОтчетОРознПродажах_ЧекККМ(ДокументОбъект) ЕстьСоставНабора = Ложь; Если ДокументОбъект.СоставНабора.Количество() > 0 Тогда ЕстьСоставНабора = Истина; КонецЕсли; ЕстьКачество = МетаданныеТабЧасти.Реквизиты.Найти("Качество") <> Неопределено; ЕстьСпособСписания = МетаданныеТабЧасти.Реквизиты.Найти("СпособСписанияОстаткаТоваров") <> Неопределено; ЕстьСкладВТабЧасти = МетаданныеТабЧасти.Реквизиты.Найти("Склад") <> Неопределено; // Текст вложенного запроса, ограничивающего номенклатуру при получении остатков Если ЕстьСоставНабора Тогда ТекстЗапросаСписокНоменклатуры = " |ВЫБРАТЬ РАЗЛИЧНЫЕ | Док.Номенклатура КАК Номенклатура |ИЗ | ( | ВЫБРАТЬ | Док.Номенклатура | ИЗ | Документ." + ИмяТаблицы +" КАК Док | ГДЕ | Док.Ссылка = &ДокументСсылка | И НЕ Док.Номенклатура.Комплект | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | Док.Номенклатура | ИЗ | Документ." + ИмяДокумента + ".СоставНабора КАК Док | ГДЕ | Док.Ссылка = &ДокументСсылка | | ) КАК Док |"; ТекстЗапросаРеквизитыДокумента = " | (ВЫБРАТЬ //строки ТЧ Товары которые не являются набором | Ссылка, | Номенклатура, | %ПОЛЕ_Склад%, | %ПОЛЕ_СпособСписанияОстаткаТоваров% КАК СпособСписанияОстаткаТоваров, | %ПОЛЕ_Качество% КАК Качество, | ХарактеристикаНоменклатуры, | СерияНоменклатуры, | Коэффициент, | %ПОЛЕ_ЗаказПокупателя% КАК ЗаказПокупателя, | Количество | ИЗ | Документ." + ИмяТаблицы + " | ГДЕ | Ссылка = &ДокументСсылка | И НЕ Номенклатура.Комплект | //строки ТЧ СоставНабора | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | Ссылка, | Номенклатура, | Склад, | СпособСписанияОстаткаТоваров, | Качество, | ХарактеристикаНоменклатуры, | СерияНоменклатуры, | Коэффициент, | ЗаказПокупателя, | Количество | ИЗ | (ВЫБРАТЬ | ДокНаб.Ссылка, | ДокНаб.Номенклатура, | %ПОЛЕ_Набор_Склад% КАК Склад, | %ПОЛЕ_Набор_СпособСписанияОстаткаТоваров% КАК СпособСписанияОстаткаТоваров, | %ПОЛЕ_Набор_Качество% КАК Качество, | ДокНаб.ХарактеристикаНоменклатуры, | ДокНаб.СерияНоменклатуры, | ДокНаб.ЕдиницаИзмерения.Коэффициент КАК Коэффициент, | %ПОЛЕ_Набор_ЗаказПокупателя% КАК ЗаказПокупателя, | ДокНаб.Количество * ДокТов.Количество * ДокТов.Коэффициент КАК Количество | ИЗ | Документ." + ИмяДокумента + ".СоставНабора КАК ДокНаб | ЛЕВОЕ СОЕДИНЕНИЕ Документ." + ИмяТаблицы + " КАК ДокТов | ПО ДокТов.КлючСтроки = ДокНаб.КлючСтроки | И ДокТов.Ссылка = &ДокументСсылка | ГДЕ | ДокНаб.Ссылка = &ДокументСсылка | ) КАК Набор | | ) |"; //есть состав набора - склады берутся из двух табличных частей ЗапросСклады = новый Запрос; ЗапросСклады.Текст = "Выбрать РАЗЛИЧНЫЕ Склад |ИЗ Документ."+ИмяТаблицы+" |ГДЕ Ссылка=&ДокументСсылка |ОБЪЕДИНИТЬ |ВЫБРАТЬ Склад ИЗ |Документ." + ИмяДокумента + ".СоставНабора |ГДЕ Ссылка=&ДокументСсылка И Склад<>&ПустойСклад |"; ЗапросСклады.УстановитьПараметр("ДокументСсылка",СтруктураШапкиДокумента.Ссылка); ЗапросСклады.УстановитьПараметр("ПустойСклад",Справочники.Склады.ПустаяСсылка()); Иначе //Если ЕстьСоставНабора Тогда ТекстЗапросаСписокНоменклатуры = " |ВЫБРАТЬ РАЗЛИЧНЫЕ | Номенклатура |ИЗ | Документ." + ИмяТаблицы +" |ГДЕ Ссылка = &ДокументСсылка |"; ТекстЗапросаРеквизитыДокумента = " | Документ." + ИмяТаблицы + " |"; //нет набора - склады берутся из одной табличной части ЗапросСклады = новый Запрос; ЗапросСклады.Текст = "Выбрать различные Склад ИЗ Документ."+ИмяТаблицы+" |ГДЕ Ссылка=&ДокументСсылка"; ЗапросСклады.УстановитьПараметр("ДокументСсылка",СтруктураШапкиДокумента.Ссылка); КонецЕсли; //Если ЕстьСоставНабора Тогда Запрос = Новый Запрос; Если ЕстьСкладВТабЧасти Тогда СписокСкладов = ЗапросСклады.Выполнить().Выгрузить().ВыгрузитьКолонку("Склад"); Иначе СписокСкладов = новый Массив; СписокСкладов.Добавить(СтруктураШапкиДокумента.Склад); КонецЕсли; // Установим параметры запроса ЗаполнитьОбщиеПараметрыЗапроса(Запрос); Запрос.УстановитьПараметр("СписокСкладов", СписокСкладов); Запрос.УстановитьПараметр("ПустойЗаказПокупателя", Документы.ЗаказПокупателя.ПустаяСсылка()); Запрос.УстановитьПараметр("ПустойСклад", Справочники.Склады.ПустаяСсылка()); Запрос.УстановитьПараметр("ПустойСпособСписания", Перечисления.СпособыСписанияОстаткаТоваров.ПустаяСсылка()); Запрос.УстановитьПараметр("ПустоеКачество", Справочники.Качество.ПустаяСсылка()); ТекстЗапроса = " |ВЫБРАТЬ // Запрос, контролирующий остатки на складах | Док.Номенклатура КАК Номенклатура, | Док.Номенклатура.Представление КАК НоменклатураПредставление, | Док.Номенклатура.ЕдиницаХраненияОстатков.Представление КАК ЕдиницаХраненияОстатковПредставление, | Док.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ПРЕДСТАВЛЕНИЕ(Док.ХарактеристикаНоменклатуры) КАК ХарактеристикаНоменклатурыПредставление, | Док.СерияНоменклатуры КАК СерияНоменклатуры, | ПРЕДСТАВЛЕНИЕ(Док.СерияНоменклатуры) КАК СерияНоменклатурыПредставление, | %ПОЛЕ_Док_Склад% КАК Склад, | %ПОЛЕ_Док_Качество% КАК Качество, | СУММА(ВЫРАЗИТЬ(Док.Количество * Док.Коэффициент /Док.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Число(15,3))) | КАК ДокументКоличество, | ЕстьNull(МАКСИМУМ(ОстаткиБезСерии.КоличествоОстаток),0) КАК ОстатокБезСерииКоличество, | ЕстьNull(МАКСИМУМ(Остатки.КоличествоОстаток),0) КАК ОстатокКоличество, | ЕстьNull(МАКСИМУМ(Резервы.КоличествоОстаток),0) КАК РезервыКоличество, | %ПОЛЕ_РезервыПоСерииКоличество% КАК РезервыПоСерииКоличество, | ЕстьNull(МАКСИМУМ(ТоварыКПередаче.КоличествоОстаток),0) КАК КПередачеКоличество, | ЕстьNull(МАКСИМУМ(ТоварыКПередачеБезСерии.КоличествоОстаток),0) КАК КПередачеБезСерииКоличество, | %ПОЛЕ_РезервыПоДокументуКоличество% КАК РезервыПоДокументуКоличество, | %ПОЛЕ_РезервыПоДокументуБезСерии_Количество% КАК РезервыПоДокументуБезСерииКоличество, | 0 КАК КПолучению, | 0 КАК КПолучениюПоДокументуКоличество, | 0 КАК КПередачеПоДокументуКоличество, | 0 КАК КПередачеПоДокументуБезСерииКоличество |ИЗ | "+ ТекстЗапросаРеквизитыДокумента + " КАК Док | //таблица остатков товаров с учетом серий |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад в (&СписокСкладов) И | %ВыборкаПоНоменклатуре% | //УСЛОВИЕ_Качество | ) КАК Остатки |ПО | Док.Номенклатура = Остатки.Номенклатура | И Док.ХарактеристикаНоменклатуры = Остатки.ХарактеристикаНоменклатуры | И Док.СерияНоменклатуры = Остатки.СерияНоменклатуры | //СОЕДИНЕНИЕ_Качество_Остатки | //СОЕДИНЕНИЕ_Склад_Остатки //таблица остатков товаров без учета серий |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад в (&СписокСкладов) И | %ВыборкаПоНоменклатуре% | //УСЛОВИЕ_Качество | ) КАК ОстаткиБезСерии |ПО | Док.Номенклатура = ОстаткиБезСерии.Номенклатура | И Док.ХарактеристикаНоменклатуры = ОстаткиБезСерии.ХарактеристикаНоменклатуры | //СОЕДИНЕНИЕ_Качество_ОстаткиБезСерии | //СОЕДИНЕНИЕ_Склад_ОстаткиБезСерии | //таблица товаров в резерве на складе без учета серий номенклатуры (определяется для строк, которые списываются за счет свободного остатка) |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, Склад в (&СписокСкладов) И | %ВыборкаПоНоменклатуре%) КАК Резервы |ПО | Док.Номенклатура = Резервы.Номенклатура | И Док.ХарактеристикаНоменклатуры = Резервы.ХарактеристикаНоменклатуры | //СОЕДИНЕНИЕ_ДокументРезерва_Резервы | //СОЕДИНЕНИЕ_Склад_Резервы | //СОЕДИНЕНИЕ_Качество_Резервы //таблица товаров в резерве на складе с учетом серий номенклатуры (определяется для строк, которые списываются за счет свободного остатка) |"+?(ИспользоватьУказаниеСерийНоменклатурыПриРезервировании," |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, Склад в (&СписокСкладов) И | %ВыборкаПоНоменклатуре%) КАК РезервыПоСерии |ПО | Док.Номенклатура = РезервыПоСерии.Номенклатура | И Док.ХарактеристикаНоменклатуры = РезервыПоСерии.ХарактеристикаНоменклатуры | И Док.СерияНоменклатуры = РезервыПоСерии.СерияНоменклатуры | //СОЕДИНЕНИЕ_ДокументРезерва_Резервы | //СОЕДИНЕНИЕ_Склад_РезервыПоСерии | //СОЕДИНЕНИЕ_Качество_Резервы |","""")+" |"+?(ИмяДокумента = "РеализацияТоваровУслуг"," //таблица резервов по документу: количество, которое списывается за счет резерва (эта часть требуется только для документа Реализация) |ЛЕВОЕ СОЕДИНЕНИЕ | (ВЫБРАТЬ ТЧ.Номенклатура, | ТЧ.Склад, | ТЧ.ХарактеристикаНоменклатуры | //ПОЛЕ_ТЧ_Серия | //количество, списываемое за счет резерва, не может превышать количество указанное в документе | ,ВЫБОР КОГДА Сумма(ТЧ.ДокументКоличество)<Сумма(ВремРезервы.КоличествоОстаток) ТОГДА | Сумма(ТЧ.ДокументКоличество) | ИНАЧЕ Сумма(ВремРезервы.КоличествоОстаток) | КОНЕЦ КАК КоличествоОстаток | ИЗ | //сгруппированная табличная часть документа с отбором строк которые списываются из резерва | (ВЫБРАТЬ | Номенклатура, | Склад, | ЗаказПокупателя, | ХарактеристикаНоменклатуры | //ПОЛЕ_Серия | ,СУММА(ВЫРАЗИТЬ(Количество * Коэффициент /Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Число(15,3))) КАК ДокументКоличество | ИЗ | " + ТекстЗапросаРеквизитыДокумента +" КАК ВремДок | ГДЕ ВремДок.Ссылка = &ДокументСсылка | И ВремДок.ЗаказПокупателя <> &ПустойЗаказПокупателя и ВремДок.СпособСписанияОстаткаТоваров = &ИзРезерва | СГРУППИРОВАТЬ ПО | Номенклатура, | Склад, | ЗаказПокупателя, | ХарактеристикаНоменклатуры | //ПОЛЕ_Серия | ) КАК ТЧ | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, Склад в (&СписокСкладов) И | %ВыборкаПоНоменклатуре% | ) КАК ВремРезервы | ПО ТЧ.Номенклатура = ВремРезервы.Номенклатура | И ТЧ.Склад = ВремРезервы.Склад | И ТЧ.ЗаказПокупателя = ВремРезервы.ДокументРезерва | И ТЧ.ХарактеристикаНоменклатуры = ВремРезервы.ХарактеристикаНоменклатуры | //СОЕДИНЕНИЕ_Серия_ВремРезервы | СГРУППИРОВАТЬ ПО | ТЧ.Номенклатура, | ТЧ.Склад, | ТЧ.ХарактеристикаНоменклатуры | //ПОЛЕ_ТЧ_Серия |) КАК РезервыПоДокументу |ПО |Док.Номенклатура = РезервыПоДокументу.Номенклатура |И Док.Склад = РезервыПоДокументу.Склад |И Док.ЗаказПокупателя <> &ПустойЗаказПокупателя И Док.СпособСписанияОстаткаТоваров = &ИзРезерва |И Док.ХарактеристикаНоменклатуры = РезервыПоДокументу.ХарактеристикаНоменклатуры |//СОЕДИНЕНИЕ_Серия_РезервыПоДокументу //таблица резервов по документу без учета серий: количество, которое списывается за счет резерва |//ЗАПРОС_РезервыПоДокументуБезСерии |","""")+" |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(, Склад в (&СписокСкладов) И | %ВыборкаПоНоменклатуре% | //УСЛОВИЕ_Качество | ) КАК ТоварыКПередаче |ПО | Док.Номенклатура = ТоварыКПередаче.Номенклатура | И Док.ХарактеристикаНоменклатуры = ТоварыКПередаче.ХарактеристикаНоменклатуры | И Док.СерияНоменклатуры = ТоварыКПередаче.СерияНоменклатуры | //СОЕДИНЕНИЕ_Склад_ТоварыКПередаче | //СОЕДИНЕНИЕ_Качество_ТоварыКПередаче |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(, Склад в (&СписокСкладов) И | %ВыборкаПоНоменклатуре% | //УСЛОВИЕ_Качество | ) КАК ТоварыКПередачеБезСерии |ПО | Док.Номенклатура = ТоварыКПередачеБезСерии.Номенклатура | И Док.ХарактеристикаНоменклатуры = ТоварыКПередачеБезСерии.ХарактеристикаНоменклатуры | //СОЕДИНЕНИЕ_Склад_ТоварыКПередачеБезСерии | //СОЕДИНЕНИЕ_Качество_ТоварыКПередачеБезСерии | |ГДЕ | Док.Ссылка = &ДокументСсылка | И Не Док.Номенклатура.Комплект | И Не Док.Номенклатура.Услуга // остатки по услугам контролировать не надо. | //УСЛОВИЕ_Склад |СГРУППИРОВАТЬ ПО | | Док.Номенклатура, | Док.ХарактеристикаНоменклатуры, | Док.СерияНоменклатуры, | %ПОЛЕ_Док_Качество%, | %ПОЛЕ_Док_Склад% | |ДЛЯ ИЗМЕНЕНИЯ РегистрНакопления.ТоварыНаСкладах.Остатки // Блокирующие чтение таблицы остатков регистра для разрешения коллизий многопользовательской работы | |ИТОГИ СУММА (ДокументКоличество), МАКСИМУМ(ОстатокБезСерииКоличество), МАКСИМУМ(РезервыКоличество), | МАКСИМУМ(КПередачеКоличество), МАКСИМУМ(РезервыПоДокументуКоличество), Максимум(РезервыПоСерииКоличество), | Максимум(КПередачеБезСерииКоличество), МАКСИМУМ(РезервыПоДокументуБезСерииКоличество), | Максимум(КПолучению), Максимум(КПередачеПоДокументуКоличество), Максимум(КПередачеПоДокументуБезСерииКоличество), Максимум(КПолучениюПоДокументуКоличество) |ПО Номенклатура, | ХарактеристикаНоменклатуры, | Склад | //ПОЛЕ_Качество |"; ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_РезервыПоСерииКоличество%", ?(ИспользоватьУказаниеСерийНоменклатурыПриРезервировании,"ЕстьNull(МАКСИМУМ(РезервыПоСерии.КоличествоОстаток),0)","0")); ТекстЗапросаРезервыПоДокументуБезСерии = """"; Если ИмяДокумента = "РеализацияТоваровУслуг" Тогда //есть реквизит ЗаказПокупателя, документ может списывать товар из резерва Если ИспользоватьУказаниеСерийНоменклатурыПриРезервировании Тогда ТекстЗапросаРезервыПоДокументуБезСерии = " |ЛЕВОЕ СОЕДИНЕНИЕ | (ВЫБРАТЬ ТЧ.Номенклатура, | ТЧ.Склад, | ТЧ.ХарактеристикаНоменклатуры | //количество, списываемое за счет резерва, не может превышать количество указанное в документе | ,ВЫБОР КОГДА Сумма(ТЧ.ДокументКоличество)<Сумма(ВремРезервы.КоличествоОстаток) ТОГДА | Сумма(ТЧ.ДокументКоличество) | ИНАЧЕ Сумма(ВремРезервы.КоличествоОстаток) | КОНЕЦ КАК КоличествоОстаток | ИЗ | //сгруппированная табличная часть документа с отбором строк которые списываются из резерва | (ВЫБРАТЬ | Номенклатура, | Склад, | ЗаказПокупателя, | ХарактеристикаНоменклатуры | ,СУММА(ВЫРАЗИТЬ(Количество * Коэффициент /Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Число(15,3))) КАК ДокументКоличество | ИЗ | " + ТекстЗапросаРеквизитыДокумента +" КАК ВремДок | ГДЕ ВремДок.Ссылка = &ДокументСсылка | И ВремДок.ЗаказПокупателя <> &ПустойЗаказПокупателя и ВремДок.СпособСписанияОстаткаТоваров = &ИзРезерва | СГРУППИРОВАТЬ ПО | Номенклатура, | Склад, | ЗаказПокупателя, | ХарактеристикаНоменклатуры | ) КАК ТЧ | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, Склад в (&СписокСкладов) И | %ВыборкаПоНоменклатуре% | ) КАК ВремРезервы | ПО ТЧ.Номенклатура = ВремРезервы.Номенклатура | И ТЧ.Склад = ВремРезервы.Склад | И ТЧ.ЗаказПокупателя = ВремРезервы.ДокументРезерва | И ТЧ.ХарактеристикаНоменклатуры = ВремРезервы.ХарактеристикаНоменклатуры | СГРУППИРОВАТЬ ПО | ТЧ.Номенклатура, | ТЧ.Склад, | ТЧ.ХарактеристикаНоменклатуры |) КАК РезервыПоДокументуБезСерии |ПО |Док.Номенклатура = РезервыПоДокументуБезСерии.Номенклатура |И Док.Склад = РезервыПоДокументуБезСерии.Склад |И Док.ЗаказПокупателя <> &ПустойЗаказПокупателя И Док.СпособСписанияОстаткаТоваров = &ИзРезерва |И Док.ХарактеристикаНоменклатуры = РезервыПоДокументуБезСерии.ХарактеристикаНоменклатуры |"; ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//ЗАПРОС_РезервыПоДокументуБезСерии", ТекстЗапросаРезервыПоДокументуБезСерии); //резервы по документу имеет смысл определять с точностью до серии ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//ПОЛЕ_ТЧ_Серия", ",ТЧ.СерияНоменклатуры"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//ПОЛЕ_Серия", ",СерияНоменклатуры"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//СОЕДИНЕНИЕ_Серия_ВремРезервы", "И (ТЧ.СерияНоменклатуры = ВремРезервы.СерияНоменклатуры ИЛИ НЕ ЕстьNull(ТЧ.ЗаказПокупателя.ДоговорКонтрагента.ОбособленныйУчетТоваровПоЗаказамПокупателей,ложь))"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//СОЕДИНЕНИЕ_Серия_РезервыПоДокументу", "И Док.СерияНоменклатуры = РезервыПоДокументу.СерияНоменклатуры"); КонецЕсли; ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_РезервыПоДокументуКоличество%", "ЕстьNull(Максимум(РезервыПоДокументу.КоличествоОстаток),0)"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//СОЕДИНЕНИЕ_ДокументРезерва_Резервы", " И (Док.ЗаказПокупателя = &ПустойЗаказПокупателя ИЛИ Док.СпособСписанияОстаткаТоваров <> &ИзРезерва)"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_ЗаказПокупателя%", "ЗаказПокупателя"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_Набор_ЗаказПокупателя%", "ДокТов.ЗаказПокупателя"); Иначе //Если ИмяДокумента = "РеализацияТоваровУслуг" Тогда //документ не может списывать товар из резерва - не надо определять резервы по документу ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_РезервыПоДокументуКоличество%", "0"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_ЗаказПокупателя%", "NULL"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_Набор_ЗаказПокупателя%", "NULL"); КонецЕсли; ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_РезервыПоДокументуБезСерии_Количество%", ?(ТекстЗапросаРезервыПоДокументуБезСерии<>"""", "ЕстьNull(МАКСИМУМ(РезервыПоДокументуБезСерии.КоличествоОстаток),0)", "0")); Если ЕстьКачество Тогда ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_Качество%", "Качество"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_Набор_Качество%", "ВЫБОР КОГДА ДокНаб.Качество = &ПустоеКачество ТОГДА ДокТов.Качество |ИНАЧЕ ДокНаб.Качество КОНЕЦ"); Иначе ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_Качество%", " &Новый"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_Набор_Качество%", "&Новый"); КонецЕсли; Если ЕстьСпособСписания Тогда ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_Набор_СпособСписанияОстаткаТоваров%", "ВЫБОР КОГДА ДокНаб.СпособСписанияОстаткаТоваров = &ПустойСпособСписания ТОГДА ДокТов.СпособСписанияОстаткаТоваров |ИНАЧЕ ДокНаб.СпособСписанияОстаткаТоваров КОНЕЦ"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_СпособСписанияОстаткаТоваров%", " СпособСписанияОстаткаТоваров"); Иначе ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_СпособСписанияОстаткаТоваров%", " &ПустойСпособСписания"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"%ПОЛЕ_Набор_СпособСписанияОстаткаТоваров%", "&ПустойСпособСписания"); КонецЕсли; ДополнитьТекстЗапроса(ТекстЗапроса,ложь,,ложь,,ложь,ЕстьКачество,ЕстьСкладВТабЧасти,ТекстЗапросаСписокНоменклатуры); Запрос.Текст = ТекстЗапроса; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); ОбработатьРезультатЗапроса(Выборка,истина,ТекстЗапросаРезервыПоДокументуБезСерии<>""""); КонецПроцедуры //КонтрольОстатков_Реализация_ОтчетОРознПродажах() </pre><br><br> <br> <br>и ее надо откорректировать Оо"