Имя: Пароль:
1C
1С v8
Как решить сабж в управляемых формах
,
0 егаис
 
04.11.11
10:47
УТ 11
Поступление товаров. Заполняются обе таблицы - "Товары по факту" и "Товары по документам". Надо в таблице "Товары по факту" добавит ьновую расчетную колонку, которая бы показывала разницу количества по позиции товара между фактом и по документам. В 77 функция вешалась, а как это реализовать в УТ? Спасибо.
1 егаис
 
04.11.11
11:23
апп
2 palpetrovich
 
04.11.11
11:50
Процедура - обработчик события "ПриПолученииДанных" табличной части тебе поможет
3 егаис
 
04.11.11
11:58
(2) хм, колонка должна быть динамическая
при изменении количество по факту должно меняться значение расхождения
4 егаис
 
04.11.11
12:01
если можно примером как вообще реализовать сабж
Спасибо
5 palpetrovich
 
04.11.11
12:07
остаток товара:
Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
   
   Соответствия = Новый Соответствие;
   СписокТоваров.Очистить();
   Для Каждого ЭлементОформления Из ОформленияСтрок Цикл
       СписокТоваров.Добавить(ЭлементОформления.ДанныеСтроки.Номенклатура);
       Соответствия.Вставить(ЭлементОформления.ДанныеСтроки.Номенклатура, ЭлементОформления.Ячейки.ОстатокТовара);
   КонецЦикла;    
   Запрос = Новый Запрос("ВЫБРАТЬ
   |    ТоварыНаСкладахОстатки.Склад КАК Склад,
   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
   |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
   |ИЗ
   |    РегистрНакопления.ТоварыНаСкладах.Остатки(,Склад=&Склад и Номенклатура В (&Номенклатура)) КАК ТоварыНаСкладахОстатки");
   Запрос.УстановитьПараметр("Номенклатура", СписокТоваров);
   Запрос.УстановитьПараметр("Склад"        , Склад);          
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       Ячейка = Соответствия.Получить(Выборка.Номенклатура);        
       Ячейка.Текст = Формат(Выборка.КоличествоОстаток, "ЧЦ=11;ЧДЦ=3;ЧГ=");        
       Ячейка.ОтображатьТекст = Истина;    
   КонецЦикла;
       
КонецПроцедуры
6 Seducer
 
04.11.11
12:08
ПриСозданииНаСервере()
ПриЧтенииНаСервере()

Ну и ПриИзменении() у колонки количества

(5) Ты бы хоть прочитал сабж! Речь об управляемых формах!
7 егаис
 
04.11.11
12:10
(6) про обработчики-то понятно.
Само событие как описать? Через динамический запрос думаю не получится, работаю в ТЧ "Товары"
Спасибо
8 Seducer
 
04.11.11
12:12
(7) Посмотри в том же документе поступления, как заполняются колонки "ТипНоменклатуры" и "ХарактеристикиИспользуются"
9 palpetrovich
 
04.11.11
12:13
(6 ) хм, да, правда. фиговый я читатель :)
10 Seducer
 
04.11.11
12:13
(9)  :)
11 егаис
 
04.11.11
12:35
думаю так, вешаю процедуру в ОбработкаТабличнойЧастиТоварыСервер
с запросом
ВЫБРАТЬ
   ПоступлениеТоваровУслугТовары.Номенклатура,
   СУММА(ПоступлениеТоваровУслугТовары.КоличествоУпаковок - ПоступлениеТоваровУслугТоварыПоДаннымПоставщика.КоличествоУпаковок) КАК КоличествоРазница
ИЗ
   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.ТоварыПоДаннымПоставщика КАК ПоступлениеТоваровУслугТоварыПоДаннымПоставщика
       ПО ПоступлениеТоваровУслугТовары.Номенклатура = ПоступлениеТоваровУслугТоварыПоДаннымПоставщика.Номенклатура
ГДЕ
   ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
   ПоступлениеТоваровУслугТовары.Номенклатура

И вызывать эту процедуру в обработчиках.
Так нормально?
12 егаис
 
10.11.11
15:34
все решилось по сабжу, все красиво работает. :)
Еще вопрос - подскажите, как спозиционироваться в ТЧ управляемой формы, зная номер строки?
Элементы.Товары.ТекущаяСтрока(НужныйНомерСтроки); не работает (
13 егаис
 
10.11.11
15:36
все, закрываем
Элементы.Товары.ТекущаяСтрока = НужныйНомерСтроки
так нужно