Имя: Пароль:
1C
1С v8
КД: Реквизит (число) в строку табличной части
0 Абирамбул
 
26.01.12
14:55
Создал правила конвертации из 7.7 в 8.2.
В 7.7 есть документ с 3 реквизитами (тип число).
Реквизит1 - наличная оплата;
Реквизит2 - банк. карта;
Реквизит3 - кредит.
Нужно перенести эти 3 реквизита в табличную часть. В табличной части есть реквизит (ссылочный тип) вид оплат.
Каждому реквизиту в 7.7 соответствует определенный ВидОплаты в 8.2, синхронизация по коду справочника (1,2,3).
Реквизит1 -> ТЧ.ВидОплаты = ВидОплаты1
Реквизит2 -> ТЧ.ВидОплаты = ВидОплаты2
Реквизит3 -> ТЧ.ВидОплаты = ВидОплаты3

Есть ПВД, событие ПередВыгрузкой:

ТабВидыОплат = СоздатьОбъект("ТаблицаЗначений");
ТабВидыОплат.НоваяКолонка("ВидОплаты");
ТабВидыОплат.НоваяКолонка("Сумма");

Если Объект.Реквизит1 > 0 Тогда

   ТабВидыОплат.НоваяСтрока();
   ТабВидыОплат.ВидОплаты    = ; // Что тут указать?
   ТабВидыОплат.Сумма        = Объект.Реквизит1;
   
КонецЕсли;

ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
ИсходящиеДанные.Установить("ВидыОплат", ТабВидыОплат);
1 DmitryPavlik
 
26.01.12
14:59
Скорее всего ,ВидОплаты  - это перечисление.
Допускается следующий синтаксис:

ВидОплаты = "Кредит"

Поэтому, там условиями натыкай.
2 Абирамбул
 
26.01.12
15:00
(1) нет, это справочник
3 DmitryPavlik
 
26.01.12
15:01
Если Объект.Реквизит1 > 0 Тогда

   ТабВидыОплат.НоваяСтрока();
   ТабВидыОплат.ВидОплаты    = "НаличнаяОплата"; // Сюда писать значение перечисления

   ТабВидыОплат.Сумма        = Объект.Реквизит1;
   
КонецЕсли;
4 Buster007
 
26.01.12
15:01
смотря какие у тебя ПКО ВидыОплат... если по коду синхронизация, то передавай туда код.
5 DmitryPavlik
 
26.01.12
15:02
(2) Значения предопределённые?
Собственно, там почти весь встроенный язык работает и не вижу препятствий с получением нужного значения.
6 Абирамбул
 
26.01.12
15:05
(4) ПКО "ВидыОплат":
     1. ПКС "Код" - ПолучатьИзВходящихДанных = Истина, Поиск = Истина
7 Абирамбул
 
26.01.12
15:12
(5) Есть только одно предопределенное значение "Наличные". Если использовать

ТабВидыОплат.ВидОплаты    = ; // Что тут указать?

Тогда создается новый элемент справочника ВидыОплат.
8 Абирамбул
 
26.01.12
15:12
ТабВидыОплат.ВидОплаты = "Наличные";
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн