Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 дек 2024, 14:28

КД, Перенос Реквизита справочника (7.7) в ТЧ справочника 8.2.

Автор Evgeny, 12 дек 2013, 12:05

0 Пользователей и 1 гость просматривают эту тему.

Evgeny

День добрый


в 77 справочник с кучей реквизитов, необходимо перенести некоторые в ТЧ дополнительные свойства, с ПВХ и спр.ЗначенияСвойствОбъекта


в 8.2 в ПВХ создан предопределенный элемент реквизита 7.7,


в правилах ПКГС в обработчике ПередОбработкой код , формирую Структуру ТЧ в КоллекцииОбъектов,
заполняю значениями,
если значение строка все отлично переноситься,
если там ссылочный тип,то объект выгружается функцией ВыгрузитьПоПравилу() (Создается в спр ЗначенийСвойствОбъекта),\
В табличной части ДополнительныеСвойства материнского объекта формируется строка с заполненным свойством, и пустым значением...
в файле с данным выгружаемым из 77, нет узла  в строке ТЧ с ссылкой на выгруженный ранее объект

Коллеги прошу направить на путь истинный, как заполнить значение в ТЧ





//СозданиеТабличнойЧасти   
    КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
КоллекцияОбъектов.НоваяКолонка("Свойство");
КоллекцияОбъектов.НоваяКолонка("Значение");


//Строки:



//1Предпреждение
Если ПустоеЗначение(Источник.Предупрежд) = 0 Тогда
КоллекцияОбъектов.НоваяСтрока();
КоллекцияОбъектов.Свойство = "Предупреждение";
КоллекцияОбъектов.Значение = Источник.Предупрежд;
КонецЕсли;





//6ИсточникПоявления
Если ПустоеЗначение(Источник.ИсточникПоявления) = 0 Тогда
КоллекцияОбъектов.НоваяСтрока();
КоллекцияОбъектов.Свойство = "ИсточникПоявления";
 
ВхДанные = СоздатьОбъект("СписокЗначений");
ВхДанные.Установить("Владелец","ИсточникПоявления");
ВхДанные.Установить("Наименование",Источник.ИсточникПоявления.Наименование);

КоллекцияОбъектов.Значение = ВыгрузитьПоПравилу(Источник.ИсточникПоявления,, ВхДанные,, "ЗначенияСвойствОбъектов");
КонецЕсли;





З.Ы. прошу прощения у модераторов что не в ветке обмена данными, туда просто вообще помойму никто не заходит, а вопрос стоит остро

LordWizard

Я выгружаю в своих обменах следующим образом:


пВходящиеДанные  = Новый Структура;
пВходящиеДанные.Вставить("Источник", Источник);
пВходящиеДанные.Вставить("Контрагент", СтрокаТЧ.Контрагент);
пВходящиеДанные.Вставить("Договор", СтрокаТЧ.Договор);
пВходящиеДанные.Вставить("ЦентрУчета", СтрокаТЧ.ЦентрУчета);
пВходящиеДанные.Вставить("СтатьяДДС", СтрокаТЧ.СтатьяДДС);
пВходящиеДанные.Вставить("Сумма", СтрокаТЧ.Сумма);
пВходящиеДанные.Вставить("КарточкаПозиции", СтрокаТЧ.КарточкаПозиции);
пВходящиеДанные.Вставить("Основание", СтрокаТЧ.ТекстОснование);
пВходящиеДанные.Вставить("ЦентрУчета", СтрокаТЧ.ЦентрУчета);

Подотчетник = Ложь;
ОплатаПоставщику = Ложь;

Счет = ПолучитьСчет(СтрокаТЧ.Договор.ВидДоговора, Источник.Дата);
Если (Счет = Параметры.Счет_7000_800) ИЛИ (СтрокаТЧ.Контрагент.Папка = Параметры.ПапкаИнкассаторы) Тогда
Подотчетник = Истина;
КонецЕсли;
пВходящиеДанные.Вставить("Подотчетник", Подотчетник);

Если Ложь
ИЛИ (Счет = Параметры.Счет_1500_200)
ИЛИ (Счет = Параметры.Счет_2000_130)
ИЛИ (Счет = Параметры.Счет_1100_100)
Тогда
ОплатаПоставщику = Истина;
КонецЕсли;
пВходящиеДанные.Вставить("ОплатаПоставщику", ОплатаПоставщику);
//Сообщить("Данные собраны, пошли дальше!");
Если ТипЗнч(Источник.КассаИлиРСчет) = Тип("СправочникСсылка.Кассы2iS") Тогда
Если НЕ Источник.КассаИлиРСчет.ЭтоКассаККМ Тогда
Если Источник.ВидОперации = Параметры.ВО_ПКО Тогда
пУзелСсылки = Неопределено;
ИмяПКО     = "ПриходныйКассовыйОрдер";
ВыгрузитьПоПравилу(Источник, , пВходящиеДанные, , ИмяПКО, пУзелСсылки); //не грузим из-за Отчета о Розничных продажах??
ИначеЕсли Источник.ВидОперации = Параметры.ВО_РКО Тогда
пУзелСсылки = Неопределено;
ИмяПКО     = "РасходныйКассовыйОрдер";
ВыгрузитьПоПравилу(Источник, , пВходящиеДанные, , ИмяПКО, пУзелСсылки);
КонецЕсли;
КонецЕсли;
КонецЕсли;

КонецЕсли;
Отказ = Истина;


Например в ПКО потом делаю так:


Если ТипЗнч(ВходящиеДанные) <> Тип("Структура") Тогда
ВходящиеДанные  = Новый Структура;
КонецЕсли;
Запросы.ДДС.УстановитьПараметр("ДокументСсылка", Источник);
РезультатЗапроса = Запросы.ДДС.Выполнить();

ТЗ = РезультатЗапроса.Выгрузить();

ВходящиеДанные.Вставить("РасшифровкаПлатежа", ТЗ);

Потом в Табличной части ПКО "Расшифровка платежа":

Значение = ОбъектКоллекции.Договор; // для реквизита ДоговорКонтрагента
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

Kironten

Вот ведь не лень ребяткам, создавать каждый раз новый акк, искать и поднимать некротреды, чтобы свой модбер прорекламировать. :)

Теги: кд 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск