Имя: Пароль:
1C
1С v8
ТекущиеДанные ТабЧасти
0 Ferrari
 
20.04.14
09:36
Программно создал документ реализации В БП 3.0. Получил форму, не могу получить  текущиеданные ТабЧасти. В отладчике ТекущаяСтрока и ТекущиеДанные = неопределено, но там точно есть одна строка. Подскажите, как можно получить ТекущиеДанные?
1 zak555
 
20.04.14
09:37
что хочешь с данными сделать ?
2 Ерепень
 
20.04.14
09:38
ты их уже получил
3 Ferrari
 
20.04.14
09:39
(1)Хочу передать в процедуру общего модуля для расчета суммы

Пар=Новый Структура;
    ПАр.Вставить("Ключ",СсылкаНаДок);
    
    Форма=ПолучитьФОрму("Документ.РеализацияТоваровУслуг.ФормаОбъекта",ПАр);
    ТекущиеДанные=Форма.Элементы.Товары.ТекущиеДанные;

    ЗначениеПустогоКоличества = 0;
    
    ОбработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуТабЧасти(ТекущиеДанные, ЗначениеПустогоКоличества);
4 zak555
 
20.04.14
09:41
(3) расчёты суммы делай при создании объекта документ реализация
на форму забей


+ чем именно расчёт не нравится ?
5 ДенисЧ
 
20.04.14
09:41
ТекущиеДанные=Форма.Элементы.Товары[0];
?
6 Ерепень
 
20.04.14
09:42
(3) а ничего, что в ТЧ мильон строк?
7 zak555
 
20.04.14
09:43
(6) ничего
8 shuhard
 
20.04.14
09:44
(5) это УФ
9 Ерепень
 
20.04.14
09:45
(7) тогда предлагаю активизировать на форме каждую строку, брать текущиеданные и отдавать в расчёт
10 Ferrari
 
20.04.14
09:45
(4) Помимо расчета суммы еще есть расчеты
Пар=Новый Структура;
    ПАр.Вставить("Ключ",СсылкаНаДок);
    
    Форма=ПолучитьФОрму("Документ.РеализацияТоваровУслуг.ФормаОбъекта",ПАр);
    ТекущиеДанные=Форма.Элементы.Товары.ТекущиеДанные;

    ЗначениеПустогоКоличества = 0;
    
    ОбработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуТабЧасти(ТекущиеДанные, ЗначениеПустогоКоличества);

    Если ТекущиеДанные.Свойство("СуммаНДС") Тогда
        ОбработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуНДСТабЧасти(ТекущиеДанные, Объект.СуммаВключаетНДС);
    КонецЕсли;

    Если ТекущиеДанные.Свойство("СуммаВРознице") Тогда
        ТекущиеДанные.СуммаВРознице = ТекущиеДанные.Количество * ТекущиеДанные.ЦенаВРознице;
    КонецЕсли;

    Если ТекущиеДанные.Свойство("Всего") Тогда
        ТекущиеДанные.Всего = ТекущиеДанные.Сумма + ?(Объект.СуммаВключаетНДС, 0, ТекущиеДанные.СуммаНДС);
    КонецЕсли;


(5) Пробовал так
ТекущиеДанные=Форма.Элементы.Товары[0].ТекущиеДанные;
Ошибка
11 zak555
 
20.04.14
09:46
(5) [] -- заработает ?
12 zak555
 
20.04.14
09:46
(9) зачем ?

когда начинаешь документОъект заполнять -- в ТЧ делай нужный расчёт данных
13 Ерепень
 
20.04.14
09:47
(12) извращаться - так по полной
14 Ерепень
 
20.04.14
09:48
+(13) ну не знает человек, что такое текущие данные. я готов продать свой СП
15 zak555
 
20.04.14
09:53
(10)

ОбъектДок = СсылкаНаДок.получитьОбъект();
ЗначениеПустогоКоличества = 0;
ТоварыТЧ = ОбъектДок,товары;

Для кадого СтрокаТЧ из ТоварыТЧ Цикл
    обработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуТабЧасти(СтрокаТЧ , ЗначениеПустогоКоличества);
обработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуНДСТабЧасти(СтрокаТЧ , ОбъектДок .СуммаВключаетНДС);
СтрокаТЧ .СуммаВРознице = СтрокаТЧ .Количество * СтрокаТЧ .ЦенаВРознице;
КонецЦикла;
ОбъектДок . записать()
16 zak555
 
20.04.14
09:54
хотя с ценой в рознице -- ернуда
17 Ferrari
 
20.04.14
10:04
(15) Спасибо! Еще вопрос, я программно задаю субконто
НовТовар.Субконто=ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НайтиПоНаименованию("Бытовые приборы");

Но в документе он не заполняется. Если вручную сменить цену или количество, то автоматически заполняется. Почему так?
18 Ferrari
 
20.04.14
10:05
(17) не цену или количество, а номенклатуру
19 Wobland
 
20.04.14
10:15
(17) потому что при изменении
20 Ferrari
 
20.04.14
10:16
(19) Почему вот это
НовТовар.Субконто=ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НайтиПоНаименованию("Бытовые приборы");
не срабатывает?
21 Wobland
 
20.04.14
10:17
(20) спорим, срабатывает?
22 Ferrari
 
20.04.14
10:19
(21) субконто пустое в документе
23 Wobland
 
20.04.14
10:21
(22) а должно быть какое?
24 zak555
 
20.04.14
10:45
(20) он тебе возвращает что ?
25 zak555
 
20.04.14
11:04
(20)

ПланВидовХарактеристикМенеджер.<Имя плана видов характеристик>.НайтиПоНаименованию (ChartOfCharacteristicTypesManager.<Имя плана видов характеристик>.FindByDescription)
ПланВидовХарактеристикМенеджер.<Имя плана видов характеристик> (ChartOfCharacteristicTypesManager.<Имя плана видов характеристик>)
НайтиПоНаименованию (FindByDescription)
Синтаксис:

НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>)
Параметры:

<Наименование> (обязательный)

Тип: Строка.
Строка, содержащая искомое наименование.
<ТочноеСоответствие> (необязательный)

Тип: Булево.
Определяет режим поиска по полному соответствию.
Поиск будет успешным, если строка поиска: в случае значения параметра Ложь - будет соответствовать левой части наименования; в случае значения параметра Истина - будет полностью совпадать с наименованием (за исключением "хвостовых" пробелов в наименовании).
Значение по умолчанию: Ложь.
<Родитель> (необязательный)

Тип: ПланВидовХарактеристикСсылка.
Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всех видах характеристик.
Возвращаемое значение:

Тип: ПланВидовХарактеристикСсылка.<Имя плана видов характеристик>; Неопределено.
Ссылка на найденный вид характеристики. Если не существует ни одного элемента с требуемым наименованием, то будет возвращена пустая ссылка.
Если наименование не задано (длина = 0), то будет возвращено Неопределено.
Описание:

Осуществляет поиск элемента по его наименованию.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Если существует несколько элементов с указанным наименованием, то будет найден только один из них.
Пример:

ПланыВидовХарактеристик[Имя].НайтиПоНаименованию(Значение);
// Имя - имя плана видов характеристик, как он задан в Конфигураторе.