Цитата(nazarenko @ 07.10.12, 17:00) необходимо зарегистрироваться для просмотра ссылки
Варианты есть при нажатии кнопки подбор?
И там есть возможность видеть остатки по всем позициям сразу?
В подборе можно видеть остатки и резервы по всем сразу.
Цитата(nazarenko @ 07.10.12, 15:37) необходимо зарегистрироваться для просмотра ссылки
Я сам программист (в 1С 7.7 программирую более 10 лет!).
А вот с 8-ой пока не очень. Что называется 1-раз в первый класс!
Вот немного неправильный вариант. Правильно делать "При получении данных"
Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
//РОМ
Если ДанныеСтроки.Ссылка.ЭтоГруппа Тогда
Возврат;
КонецЕсли;
мПоискОбъектовВСпискахДанных.СписокПриВыводеСтрокиСпискаОтбораДанных(Элемент, ОформлениеСтроки, ДанныеСтроки);
запрос = Новый Запрос;
если РольДоступна("ПолныеПрава") или ИмяПользователя() = "Менеджер по продажам2" Тогда
запрос.Текст = "ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Валюта,
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
| ЦеныНоменклатурыСрезПоследних.ТипЦен.Наименование,
| 1 КАК Поле1
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| ,
| Номенклатура = &Номенкл
| И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта,
| ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена,
| ЦеныНоменклатурыКонтрагентовСрезПоследних.ЕдиницаИзмерения,
| ЦеныНоменклатурыКонтрагентовСрезПоследних.ТипЦен.Наименование,
| 2
|ИЗ
| РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(, Номенклатура = &Номенкл) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 3,
| ТоварыНаСкладахОстатки.КоличествоОстаток,
| 3,
| 3,
| 3
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(
| ,
| Номенклатура = &Номенкл
| И (&ВсеСклады
| ИЛИ Склад = &ВыбСклад)) КАК ТоварыНаСкладахОстатки
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 4,
| ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,
| 4,
| 4,
| 4
|ИЗ
| РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
| ,
| Номенклатура = &Номенкл
| И (&ВсеСклады
| ИЛИ Склад = &ВыбСклад)) КАК ТоварыВРезервеНаСкладахОстатки";
Иначе
запрос.Текст = "ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Валюта,
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
| ЦеныНоменклатурыСрезПоследних.ТипЦен.Наименование,
| 1 КАК Поле1
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| ,
| Номенклатура = &Номенкл
| И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| NULL,
| NULL,
| NULL,
| NULL,
| 2
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 3,
| ТоварыНаСкладахОстатки.КоличествоОстаток,
| 3,
| 3,
| 3
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(
| ,
| Номенклатура = &Номенкл
| И (&ВсеСклады
| ИЛИ Склад = &ВыбСклад)) КАК ТоварыНаСкладахОстатки
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| 4,
| ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,
| 4,
| 4,
| 4
|ИЗ
| РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
| ,
| Номенклатура = &Номенкл
| И (&ВсеСклады
| ИЛИ Склад = &ВыбСклад)) КАК ТоварыВРезервеНаСкладахОстатки";
КонецЕсли;
Запрос.УстановитьПараметр("Номенкл",ДанныеСтроки.Ссылка);
Запрос.УстановитьПараметр("ТипЦен",Константы.ТипыЦенНоменклатурыРозница.Получить());
Запрос.УстановитьПараметр("ВсеСклады", ВыбСклад.Пустая());
Запрос.УстановитьПараметр("ВыбСклад", ВыбСклад);
ааа=запрос.Выполнить().Выгрузить();
ТоварОстаток=0;
ТоварРезерв=0;
Если ааа.Количество()>0 Тогда
ОформлениеСтроки.Ячейки.ЦенаРозничная.Значение= "";
ОформлениеСтроки.Ячейки.ЦенаЗакупочная.Значение= "";
ОформлениеСтроки.Ячейки.ОстатокТовара.Значение= "";
для каждого ббб из ааа цикл
если ббб.Поле1=1 Тогда
//если РольДоступна("ПолныеПрава") Тогда
ОформлениеСтроки.Ячейки.ЦенаРозничная.Значение= ""+ббб.Цена+" " +ббб.Валюта;
//КонецЕсли;
ИначеЕсли ббб.Поле1=2 Тогда
если РольДоступна("ПолныеПрава") или ИмяПользователя() = "Менеджер по продажам2" Тогда
ОформлениеСтроки.Ячейки.ЦенаЗакупочная.Значение= ""+ббб.Цена+" " +ббб.Валюта;
КонецЕсли;
ИначеЕсли ббб.Поле1=3 Тогда
ТоварОстаток=?(ббб.Цена=Null,0,ббб.Цена);
ИначеЕсли ббб.Поле1=4 Тогда
ТоварРезерв=?(ббб.Цена=Null,0,ббб.Цена);
КонецЕсли;
КонецЦикла;
Иначе
ОформлениеСтроки.Ячейки.ЦенаРозничная.Значение= "";
КонецЕсли;
ОстатокСРезевром=ТоварОстаток-ТоварРезерв;
ОформлениеСтроки.Ячейки.ОстатокТовара.Значение= ""+?(ОстатокСРезевром=0,"",ОстатокСРезевром);
ОформлениеСтроки.Ячейки.Резерв.Значение= ""+?(ТоварРезерв=0,"",ТоварРезерв);
//РОМ
КонецПроцедуры