Конвертация 7.7 - 8 параметр в табличной части

1. starjevschik 01.06.22 20:12 Сейчас в теме
Конвертация 2.1, ТиС - БП3. В источнике есть реквизит ТЧ, которого в приемнике нет, он нужен ПослеЗагрузкиОбъекта для заполнения приемника.
Как его передать? В параметр не работает для 7.7. Нашел, как делают параметры, но только для объектов целиком. Как сделать для строки ТЧ параметр или что-то аналогичное? Может кто-нибудь делал?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. Ivanov_OM 38 02.06.22 07:51 Сейчас в теме
(1) Вот так например у меня:
В табличной части "Товары" передаю данные в параметр, см. файл

Затем в обработчике "ПослеЗагрузки" такой код:
Если Объект.Товары.Количество() > 0 Тогда
	ПараметрыТовары = ПараметрыОбъекта["ТоварыТабличнаяЧасть"];
	Для Каждого СтрокаТовара из Объект.Товары Цикл
		СтрокаПараметров = ПараметрыТовары.Найти(СтрокаТовара.НомерСтроки-1,"НомерСтроки");
		Если СтрокаПараметров.ЭтоСкупка Тогда
			СтрокаТовара.СчетУчета = ПланыСчетов.Хозрасчетный.ЗолотоСкупленноеУНаселения;
			Объект.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
			Объект.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным;
		ИначеЕсли Объект.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом Тогда
			СтрокаТовара.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыНаСкладе;
			Объект.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами;
			Объект.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.ПустаяСсылка();
		Иначе
			СтрокаТовара.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыВРозничнойТорговле;
			Объект.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
			Объект.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным;
		КонецЕсли;	
	КонецЦикла;
КонецЕсли;
Показать
Прикрепленные файлы:
7. starjevschik 02.06.22 08:48 Сейчас в теме
(5) в параметр


(6) это все классно, но для 7.7 нет этих параметров в конвертации.
8. Ivanov_OM 38 02.06.22 09:01 Сейчас в теме
(7) Да все есть, нужно правильно заполнить и поставить галочку "Передать в параметр" и задать имя параметра
Прикрепленные файлы:
9. starjevschik 02.06.22 09:14 Сейчас в теме
(8) не будем спорить, я с семеркой много успел поработать, в том числе и с конвертацией. Там недоступна эта галка.
Я думаю, что как-то дописать файл обмена можно, но как это технологично и несложно сделать, не понял пока.
12. Ivanov_OM 38 02.06.22 10:48 Сейчас в теме
(9)Попробуй так. На вкладке параметры создай параметр с типом ТаблицаЗначений.
В ней создай колонки Документ, НомерСтроки, ИмяПараметра, ЗначениеПараметра.
Поставь флажок "ПриЗагрузке".

В ПКГС ТабличнаяЧасть ПередЗагрузкой заполняй эту таблицу.

Потом В глобальном обработчнике ПослеЗагрузки Читай эту таблицу и заполняй данные в документах.

Я не пробовал, но может прокатить.
Я таким образом заполняю таблицу проведенных документов, потом сортирую по дате и провожу после загрузки.
Прикрепленные файлы:
14. starjevschik 03.06.22 09:11 Сейчас в теме
(12) да, я об этом тоже думаю. Как делать параметры для всей конвертации, есть алгоритм. Туда можно вставить сразу для всех документов нужные значения.
Но как-то очень уж замороченно. Это при выгрузке надо еще раз выбрать все нужные документы и заполнить эту таблицу.
17. Ivanov_OM 38 03.06.22 12:52 Сейчас в теме
(14) Зачем еще раз выбирать документы.
При выгрузке каждого документа программно заполняешь параметр в ПКГС ТабличнаяЧасть
2. user1203706 15 01.06.22 20:47 Сейчас в теме
(1) добавь реквизит тч, передай туда нечто, в загрузке имей это нечто
3. user1203706 15 01.06.22 20:51 Сейчас в теме
Ну, или напрямую писать
так
или
так
4. starjevschik 01.06.22 22:09 Сейчас в теме
(2) базу-приемник не хочет менять, реквизит это понятно

(3) это я видел, там параметр к объекту привязывают. Как это применить к табличной части, мне не удалось понять. Я об этом и спрашиваю, может кто-нибудь знает
5. NatalyaVP 02.06.22 06:29 Сейчас в теме
А куда его передавать если его в приёмнике нет.
Если для условия, наверно как источник.таблЧасть.реквизит
Наверно как обычно цикл по табличной части источника
10. user1203706 15 02.06.22 09:31 Сейчас в теме
(4) ты не понял, в базу реквизит не надо добавлять, только в правилах, создай новый ПКС в табличной части и передавай туда что хочешь.
11. user1203706 15 02.06.22 09:32 Сейчас в теме
(9) как дописать в файл обмена, выше по ссылкам жешь.
13. starjevschik 03.06.22 09:09 Сейчас в теме
(10) я, возможно, не понимаю чего-то, но как? Если там сделать приемник пустой, то получаю ошибку еще при выгрузке. Если не пустой, то что? Все реквизиты заняты. Добавить новый реквизит в конвертации не тает, там форма ридонли.
(11) по ссылкам для базы целиком. А мне нужно для строки ТЧ....
15. user1203706 15 03.06.22 10:35 Сейчас в теме
(13) Дык КД же даёт задать любой реквизит в пкс с пустым приёмником (через Shift+F4 очистить)

А так, можете и тупо в ПКГС переопределить ТЧ целиком
16. starjevschik 03.06.22 12:39 Сейчас в теме
(15) у меня не получилось. Реквизит без приемника добавить можно, но от этого при выгрузке получается ошибка. Возможно, это только с 7.7 такая неприятность.

В итоге сделал по первой ссылке
УзелПараметра = СоздатьУзел("ЗначениеПараметра");
УстановитьАтрибут(УзелПараметра, "Имя", "СообщениеВсемуМиру");
ЗаписатьЭлемент(УзелПараметра, "Значение", "Здравствуй, Мир!");
ДобавитьПодчиненный(Приемник, УзелПараметра);

// то в обработчике "После загрузки" этого ПКО параметр можно прочитать через соответствие "ПараметрыОбъекта":

НашПривет = ПараметрыОбъекта["СообщениеВсемуМиру"]; 

так параметр передается, но только если это строка (ну или число наверное тоже можно), таблицу не может. Поэтому сделал строку. В общем работает, но не так чтобы очень просто и очевидно.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот