Добрый день. Вопрос такой: В списке Номенклатуры необходимо добавить 2 поля, в которых бы выводились розничная и закупочная цены той номенклатуры, на строке которой стоит курсор. С темой http://pro1c.org.ua/index.php?showtopic=660# ознакомилась. Добавила 2 поля ввода:ЦенаЗ и ЦенаР. В модуле вставила:
Процедура СправочникСписокПриАктивизацииСтроки(Элемент) СтрокаТабл = ЭлементыФормы.СправочникСписок.ТекущаяСтрока; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СебестоимостьНоменклатурыСрезПоследних.Номенклатура, | СебестоимостьНоменклатурыСрезПоследних.Цена КАК ЦенаЗакуп, | ЦеныНоменклатурыМагазиновСрезПоследних.Номенклатура КАК Номенклатура1, | ЦеныНоменклатурыМагазиновСрезПоследних.Цена КАК ЦенаРозн |ИЗ | РегистрСведений.СебестоимостьНоменклатуры.СрезПоследних КАК СебестоимостьНоменклатурыСрезПоследних | ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыМагазинов.СрезПоследних КАК ЦеныНоменклатурыМагазиновСрезПоследних | ПО СебестоимостьНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыМагазиновСрезПоследних.Номенклатура |ГДЕ | СебестоимостьНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";
Нет, как раз первая часть ЭлементыФормы.ЦенаЗ.Значение правильно. Просто так значение я туда вписать могу. А вот то ли РезультатЗапроса.Колонки.Получить(1).ТипЗначения не правильно, то ли сам запрос неверно составлен... Я не могу разобраться.
Хотя подход "ПриАктивизацииСтроки" как то странно, зачем каждый раз дергать базу, добавьте две колонки в список и заполняйте уже сразу все, мне кажется это удобнее...
Личные бесплатные консультации не даю, для этого есть форум!
Ну так а что ж вы тогда хотите показать? Разбиритесь сначала почему в результате запроса ничего нету. А может всётаки есть, вы как-то не так смотрите? А Выборка.Номенклатура - есть что-то?
Живет на форуме
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0
Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ДанныеСтроки.Ссылка.ЭтоГруппа Тогда Возврат; КонецЕсли; мПоискОбъектовВСпискахДанных.СписокПриВыводеСтрокиСпискаОтбораДанных(Элемент, ОформлениеСтроки, ДанныеСтроки);
запрос = Новый Запрос; если РольДоступна("ПолныеПрава") Тогда запрос.Текст = "ВЫБРАТЬ | ЦеныНоменклатурыСрезПоследних.Валюта, | ЦеныНоменклатурыСрезПоследних.Цена, | ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения, | ЦеныНоменклатурыСрезПоследних.ТипЦен.Наименование, | 1 КАК Поле1 |ИЗ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних( | , | Номенклатура = &Номенкл | И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта, | ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена, | ЦеныНоменклатурыКонтрагентовСрезПоследних.ЕдиницаИзмерения, | ЦеныНоменклатурыКонтрагентовСрезПоследних.ТипЦен.Наименование, | 2 |ИЗ | РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(, Номенклатура = &Номенкл) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 3, | ТоварыНаСкладахОстатки.КоличествоОстаток, | 3, | 3, | 3 |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура = &Номенкл) КАК ТоварыНаСкладахОстатки | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 4, | ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, | 4, | 4, | 4 |ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, Номенклатура = &Номенкл) КАК ТоварыВРезервеНаСкладахОстатки"; Иначе запрос.Текст = "ВЫБРАТЬ | 3 КАК Поле1, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК цена, | 3 КАК Поле2, | 3 КАК Поле3, | 3 КАК Поле4 |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура = &Номенкл) КАК ТоварыНаСкладахОстатки"; КонецЕсли; Запрос.УстановитьПараметр("Номенкл",ДанныеСтроки.Ссылка); Запрос.УстановитьПараметр("ТипЦен",Константы.ТипыЦенНоменклатурыРозница.Получить()); ааа=запрос.Выполнить().Выгрузить(); ТоварОстаток=0; ТоварРезерв=0; Если ааа.Количество()>0 Тогда ОформлениеСтроки.Ячейки.ЦенаРозничная.Значение= ""; ОформлениеСтроки.Ячейки.ЦенаЗакупочная.Значение= ""; ОформлениеСтроки.Ячейки.ОстатокТовара.Значение= "";
для каждого ббб из ааа цикл если ббб.Поле1=1 Тогда если РольДоступна("ПолныеПрава") Тогда ОформлениеСтроки.Ячейки.ЦенаРозничная.Значение= ""+ббб.Цена+" " +ббб.Валюта; КонецЕсли; ИначеЕсли ббб.Поле1=2 Тогда если РольДоступна("ПолныеПрава") Тогда ОформлениеСтроки.Ячейки.ЦенаЗакупочная.Значение= ""+ббб.Цена+" " +ббб.Валюта; КонецЕсли; ИначеЕсли ббб.Поле1=3 Тогда ТоварОстаток=?(ббб.Цена=Null,0,ббб.Цена); ИначеЕсли ббб.Поле1=4 Тогда ТоварРезерв=?(ббб.Цена=Null,0,ббб.Цена); КонецЕсли; КонецЦикла; Иначе ОформлениеСтроки.Ячейки.ЦенаРозничная.Значение= ""; КонецЕсли; ОстатокСРезевром=ТоварОстаток-ТоварРезерв; ОформлениеСтроки.Ячейки.ОстатокТовара.Значение= ""+?(ОстатокСРезевром=0,"",ОстатокСРезевром); ОформлениеСтроки.Ячейки.Резерв.Значение= ""+?(ТоварРезерв=0,"",ТоварРезерв);
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!