|
Подскажите пару вопросов по конвертации данных. | ☑ | ||
---|---|---|---|---|
0
Magnetic
25.11.13
✎
23:38
|
В общем это связано с моментом когда в источнике нет реквизита который обязателен в приемнике.
Для реквизита шапки я просто указываю Значение = Но вот если значение реквизита зависит от вида документа ну допустим 2 варианта. Как тут определится какой вид документа... Ну и еще такой момент когда дело касается реквизита табличной части если в источнике нет такого а в приемнике обязателен... Эххх... ну да ладно может кто подскажет... |
|||
1
mikecool
25.11.13
✎
23:39
|
я ни.уя не понял
|
|||
2
mikecool
25.11.13
✎
23:40
|
нет реквизита ТЧ - поступаешь как с реквизитом шапки, для кд эквипенисуально, что за реквизит
|
|||
3
Magnetic
25.11.13
✎
23:43
|
(2) пробовал ошибка
|
|||
4
mikecool
25.11.13
✎
23:44
|
(3) тогда не пробуй, ошибки не будет
|
|||
5
Magnetic
25.11.13
✎
23:44
|
(1) Имею документ делает либо приход либо расход если приход то отсутствующий реквит в приемнике одно значение иначе второе так понятнее ну это грубый пример но по сути
|
|||
6
Magnetic
25.11.13
✎
23:45
|
(4) я подумаю над этим советом
|
|||
7
Magnetic
25.11.13
✎
23:46
|
(5) *отсутствующий в источнике блин
|
|||
8
GreyK
25.11.13
✎
23:55
|
(7) Можно сделать два правила конвертации и если моядумаечтоненадо тогда основному правилу отказ и отрабатываем альтернативное ПКО..
|
|||
9
Magnetic
26.11.13
✎
00:02
|
(8) я сопоставил присутствующему только в приемнике реквизиту другой определяющий приходный или расходный док и условие написал:
Если источник = "Значение для прихода" тогда Значение = "то что нужно при приходе" Иначе Значение = "то что нужно при расходе" КонецЕсли; Сча проверю прокатит или нет |
|||
10
Magnetic
26.11.13
✎
00:06
|
(9) Проверил прокатило а вот с табличной частью только через оппу справился
|
|||
11
Magnetic
26.11.13
✎
00:09
|
(8) (9) Но некрасиво это мне так кажется вот и спрашиваю как бы это лучше сделать хотя это работает
|
|||
12
mikecool
26.11.13
✎
00:11
|
для тч надо или выборкуданных формировать
или рисовать исходящиеданные в пко, а у свойства ставить признак получать из входящих данных |
|||
13
Magnetic
26.11.13
✎
00:15
|
(12) наверное второе подойдет потому как там только 1 значение для всех доков воткнуть надо иначе не проводятся... типа бухам оно нафик не надо но для проведения дока обязательно ...
я добавил реквизит в источнике создал новую конвертацию обьединил правила и в этом местте уже стало с чем сопостовлять я и написал значение = "лишь бы документ провелся" правда через оппу? |
|||
14
Magnetic
26.11.13
✎
00:17
|
хотя (9) наводит на мысль что зря я гемороем страдал
|
|||
15
Magnetic
26.11.13
✎
00:18
|
ошибка то была что в источнике не найдено ... а так абы что сопоставил а значение явно указал
|
|||
16
Aleksey
26.11.13
✎
00:21
|
(12) несовсем
Для ТЧ есть свои предопределенные параметры Во первых это кончено КоллекцияОбъектов - Неопределено. Если в теле обработчика определить коллекцию (присвоив данной переменной значение, например, описывающее табличную часть или набор движений, например, типа ТаблицаЗначений), то стандартное получение коллекции выполняться не будет. Доступ к выгружаемой строке доступен через ОбъектКоллекции - ссылка на выгружаемый объект коллекции. Например, строка табличной части или запись регистра или строка таблицы значений или строка результата запроса и т.д. |
|||
17
Steel_Wheel
26.11.13
✎
00:23
|
(9) не прокатит
надо Если Источник.Вид() =.... ты не забывай, что Источник -- это ссылка на объект, которую сравнивать со строкой просто не надо. Сравнивать со строкой надо результат вызова метода объекта |
|||
18
mikecool
26.11.13
✎
00:23
|
(16) вариантов не один, какой выбрать - всегда вопрос
|
|||
19
Magnetic
26.11.13
✎
00:23
|
(17) там перчисление прокатило текстом
|
|||
20
Aleksey
26.11.13
✎
00:23
|
Так что если нужно рисовать свою ТЧ, то это к "КоллекцияОбъектов"
Если нужно заменить конкретное значение в ТЧ, то это "Значение" |
|||
21
Steel_Wheel
26.11.13
✎
00:26
|
(19) Ок. Ну, круто тогда, одним головняком меньше.
(20) Тогда проще вообще перегрузить. Дело в том, что в КД табличная часть -- это обычная таблица значений. Можно просто сказать Приемник.Товары = СоздатьТаблицуЗначений("СписокКолонокЧерезЗапятую"); И в Приемник.Товары зафигачить ТЗ такой же структуры. Иногда это проще, чем городить огород с условиями |
|||
22
Aleksey
26.11.13
✎
00:28
|
не приемник.Товары, а КоллекцияОбъектов
|
|||
23
Steel_Wheel
26.11.13
✎
00:29
|
Вообще, результат работы КД -- это ТЗ. В качестве колонок выступают реквизиты шапки и ТЧ. Причем ТЧ также представляют из себя ТЗ со структурой, идентичной Данным ТЧ (включая колонки, которые добавляет сама 1с). Поэтому, можно зафигачить запрос и вообще не перебирать документы, а сгенерить "суррогатную" выборку
(22) Я уже плоховато помню, но была разница между а) когда мы перебираем объекты по условию б) генерим свою собственную выборку. КоллекцияОбъектов -- это случай б). Хотя, я могу ошибаться |
|||
24
hhhh
26.11.13
✎
00:30
|
(21) это если в ТЗ числа и строки. А представьте ситуацию, когда в ТЗ элементы справочника или перечисления.
|
|||
25
GreyK
26.11.13
✎
00:32
|
(18) Если сам пишешь ПВО, то можешь в выборке определить все варианты для ПКО. Приемник как я понял один и набор реквизитов не меняется.
|
|||
26
Steel_Wheel
26.11.13
✎
00:32
|
(24) Piece of Cake
а) перечисления. Просто пишем строковое значения перечисления, как в конфигураторе. Не забываем, что у нас настроены правильно соответствия б) справочники -- смотрим, как мы настроили политику поиска элементов справочника и пишем Код или Наименование. (22) насчет КоллекцииОбъеков -- ты прав. Применик -- это конкретный реквизит. |
|||
27
Aleksey
26.11.13
✎
00:37
|
(23) КоллекцииОбъеков - это как раз параметр ПКС
А в выборке (в ПВД)- ВыборкаДанных ВыборкаДанных - Запрос, Результат запроса, Выборка из результата запроса или произвольная коллекция выгружаемых объектов. Используется, когда способ выгрузки данных - Произвольный алгоритм. Если определить данную переменную, то обход коллекции и выгрузка объектов будет осуществляться автоматически Т.е. ВыборкаДанных = Виртуальный документ (ТЗ) |
|||
28
Aleksey
26.11.13
✎
00:38
|
(24) а какая разница что там? Ссылочный или примитивный тип? Разница лишь в том что для ссылочного типа нужно описывать ПКО, примитивный сам конвертируется
|
|||
29
Steel_Wheel
26.11.13
✎
00:57
|
(27) Все правильно написал. Я просто уже давно не 1с-ник, но с этой штукой сталкиваться приходилось, а хелпа, как такового не было.
На уровне синтаксиса я могу ошибаться, на уровне логики, надеюсь, что ошибок нет |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |