Имя: Пароль:
1C
 
v8:Вопрос по списку справочника. Колонка с остатками
0 BAnSer
 
13.03.07
22:40
Всем привет, подскажите плз, в форме списка справочника вывожу колонку с закупочными ценами на товар из РегистраСведений:
Если Не ДанныеСтроки.ЭтоГруппа Тогда
   ОтборНоменклатуры = Новый Структура;
   ОтборНоменклатуры.Вставить("Номенклатура", ДанныеСтроки.Ссылка);
   Ячейки = ОформлениеСтроки.Ячейки;
   Ячейки.Цена.ОтображатьТекст = Истина;
   АктуальнаяЦена = РегистрыСведений.ЦеныПоступления.ПолучитьПоследнее(, ОтборНоменклатуры).Цена;
   Ячейки.Цена.Текст = АктуальнаяЦена;
       
   КонецЕсли;

Можно ли получить в колонку Остатки, значения из РегистраНакопления без запроса, т.е. как я получаю АктуальнуюЦену. Прошу прощения если мой вопрос покажется глупым, но я только учусь :)
1 ТелепатБот
 
гуру
13.03.07
22:40
2 BAnSer
 
13.03.07
23:20
Что я не так делаю:
Если Не ДанныеСтроки.ЭтоГруппа Тогда
   ОтборНоменклатуры = Новый Структура;
   ОтборНоменклатуры.Вставить("Номенклатура", ДанныеСтроки.Ссылка);
   ЯчейкаОстатка = ОформлениеСтроки.Ячейки.ОстатокНаСкладе;
   ЯчейкаОстатка.ОтображатьТекст = Истина;
       РегистрыНакопления.ОстаткиМатериалов.УстановитьПериодРассчитанныхИтогов(ТекущаяДата());
   Выборка = РегистрыНакопления.ОстаткиМатериалов.Выбрать(, ОтборНоменклатуры).Количество;
   ЯчейкаОстатка.Текст = Выборка;
   КонецЕсли;
3 nbIx
 
14.03.07
00:37
(2) Глупость какая-то, ты уж извини.
ЯчейкаОстатка.Текст = Выборка; ???? Как ты можешь текстовой переменной присваивать выборку?
4 JazzLake
 
14.03.07
09:58
(2)> Выборка = РегистрыНакопления.ОстаткиМатериалов.Выбрать(, ОтборНоменклатуры).Количество;

используй метод Остатки, а не Выбрать.
5 selenat
 
14.03.07
10:12
А вообще-то запросом надо, если не хочешь тормозов...
6 Леха Дум
 
14.03.07
10:19
+ к (5) И лучше всего в методе формы "ПриПолученииДанных"
7 Леха Дум
 
14.03.07
10:24
поправлюсь: метод табличного поля, а не формы :)
8 BAnSer
 
14.03.07
12:23
пробую сделать так:
РегистрыНакопления.ОстаткиМатериалов.УстановитьПериодРассчитанныхИтогов(ТекущаяДата());
   АктуальныйОстатокТЗ = РегистрыНакопления.ОстаткиМатериалов.Остатки(,,"Товар","Количество");

и так понимаю это получилась таблица значений, как из нее можно получить количество товара по наименованию ?
9 BAnSer
 
14.03.07
14:04
Всетаки пришлось делать запросом, спасибо
10 shachneff
 
14.03.07
14:36
у меня такие колонки проработали год... пока удавалось сдержать аппетиты пользователей. Когда колонок поросили сделать 5, я снес все нафиг, и повесил подсос цен и остатков на событие ПриАктивизацииСтроки().
11 selenat
 
14.03.07
14:41
(10) тоже так делал.
12 BAnSer
 
14.03.07
16:55
а показать можете ? интересно же
13 shachneff
 
14.03.07
17:26
(12)

Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
   
   МассивНоменклатуры = Новый Массив;
   Соответствие = Новый Соответствие;
   
   Для Каждого Строка Из ОформленияСтрок Цикл
       Если НЕ Строка.ДанныеСтроки.ЭтоГруппа Тогда
           МассивНоменклатуры.Добавить(Строка.ДанныеСтроки.Ссылка);
           Соответствие.Вставить(Строка.ДанныеСтроки.Ссылка, Строка);
       КонецЕсли;
   КонецЦикла;
   Если МассивНоменклатуры.Количество() = 0    Тогда Возврат; КонецЕсли;    
   ОсновнойТипЦеныПоУмолчанию = мОсновнойТипЦенПродажи;
   
   //Запрос цен номенклатуры. Запрашиваем цену пользователя по умолчанию.    
   Если ОсновнойТипЦеныПоУмолчанию = ""  Тогда
       Возврат;
   Иначе
       Запрос = Новый Запрос("ВЫБРАТЬ
                             |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
                             |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка КАК Товар
                             |ИЗ
                             |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&АктуальнаяДата, Номенклатура В (&МассивТоваров)) КАК ЦеныНоменклатурыСрезПоследних
                             |ГДЕ
                             |    ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен");
                             
   КонецЕсли;
   
   
   
   Запрос.УстановитьПараметр("МассивТоваров", МассивНоменклатуры);
   Запрос.УстановитьПараметр("ТипЦен", ОсновнойТипЦеныПоУмолчанию);
   Запрос.УстановитьПараметр("АктуальнаяДата", ТекущаяДата());
   Выборка = Запрос.Выполнить().Выбрать();
   
   Пока Выборка.Следующий() Цикл
       Соответствие.Получить(Выборка.Товар.Ссылка).Ячейки.ОсновнаяЦена.Значение = Выборка.Цена;
   КонецЦикла;
   
       
КонецПроцедуры
14 BAnSer
 
14.03.07
22:11
Спасибо  shachneff поэксперементирую :)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс