|
Конвертация данных. Реквизит документа-источника в строку ТЧ приемника. | ☑ | ||
---|---|---|---|---|
0
palm1c
25.08.11
✎
11:33
|
Добрый день.
Есть документ в базе-источнике. В зависимости от того, равен или нет нулю реквизит этого документа, в базе-приемнике нужно создать строку табличной части, и заполнить её значением этого реквизита. Подскажите, пожалуйста, как это лучше сделать. |
|||
1
palm1c
25.08.11
✎
11:36
|
Есть мысли делать это после загрузки, только вот как получить доступ к реквизиту источника в этом случае.
|
|||
2
Aleksey
25.08.11
✎
11:37
|
Перед выгрузкой заполняй колекциюОбъектов
|
|||
3
Синий зуб
25.08.11
✎
11:37
|
Выгружай твой реквизит в Параметр, он доступен в после загрузки
|
|||
4
palm1c
25.08.11
✎
11:40
|
(3) Пожалуйста, поподробнее, я не использовал никогда Параметр.
|
|||
5
Поручик
25.08.11
✎
11:48
|
(3) И что даст параметр? Заполнение КоллекцияОбъектов перед выгрузкой прекрасно решает задачу.
|
|||
6
Синий зуб
25.08.11
✎
11:49
|
Ставишь в ПКС галку - Передавать данные в параметр, задаешь его строковое имя, и получишь в После загрузки соответствие - "ПараметрыОбъекта - либо Неопределено либо Соответствие, в котором хранятся дополнительные параметры переденные для данного объекта из источника в приемник. Если параметров передано не было, то ПараметрыОбъекта = Неопределено."
|
|||
7
Синий зуб
25.08.11
✎
11:50
|
(5) ему 1 строка нужна из этого документа, параметром он получит то, что выгружает и чему нет соответствия в источнике.
|
|||
8
palm1c
25.08.11
✎
11:55
|
(6) Пробую...
|
|||
9
palm1c
25.08.11
✎
12:10
|
(7) Не получается что-то.
Передавать данные в параметр у меня недоступно для выбора. Что я не так делаю? |
|||
10
palm1c
25.08.11
✎
12:12
|
Источник - ДопЗатраты. Тип - Число (12,2).
Приемник - не назначено. |
|||
11
Поручик
25.08.11
✎
12:13
|
(9) А ты слушай больше.
|
|||
12
palm1c
25.08.11
✎
12:14
|
(11) Какие будут предложениея?
|
|||
13
palm1c
25.08.11
✎
12:16
|
Кто-нибудь ЗНАЕТ, как это нужно делать, или у всех только предположения? Помогите, плз.
|
|||
14
Синий зуб
25.08.11
✎
12:16
|
Ну передавай через коллекцию. Вот пример - не сложно разобраться, но если не сподобился разабраться с параметром - ну не знаю...
Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | ТрудовойДоговорПерсональныеНадбавки.Надбавка КАК Надбавка, | ТрудовойДоговорПерсональныеНадбавки.Размер КАК Показатель1, | ТрудовойДоговорПерсональныеНадбавки.Валюта КАК Валюта1 |ИЗ | Документ.ТрудовойДоговор.ПерсональныеНадбавки КАК ТрудовойДоговорПерсональныеНадбавки | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизациюРаботникиОрганизации | ПО ПриемНаРаботуВОрганизациюРаботникиОрганизации.ТрудовойДоговор = ТрудовойДоговорПерсональныеНадбавки.Ссылка |ГДЕ | ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка = &Документ | И ПриемНаРаботуВОрганизациюРаботникиОрганизации.ФизЛицо = &ФизЛицо"; Запрос.УстановитьПараметр("Документ", Источник); Запрос.УстановитьПараметр("ФизЛицо", ОбъектКоллекции.ФизЛицо); КоллекцияОбъектов = Запрос.Выполнить().Выгрузить(); ИсходящиеДанные = Новый Структура; ИсходящиеДанные.Вставить("ПерсональныеНадбавки", КоллекцияОбъектов); |
|||
15
Синий зуб
25.08.11
✎
12:18
|
В данном случае я заполнял ТЧ ПерсональныеНадбавки у СотрудникаОрганизации в новом УПП из ТЧ ПерсональныеНадбавки в документе ТрудовойДоговор в старом УПП. Прямого соответствия нет.
|
|||
16
palm1c
25.08.11
✎
12:19
|
То есть я просто делаю так:
ИсходящиеДанные = Новый Структура; ИсходящиеДанные.Вставить("ДопЗатраты",ДопЗатраты); Это всё, я понимаю, нужно делать в ПКО, в ПередВыгрузкой. Так? |
|||
17
GenV
25.08.11
✎
12:20
|
(13) Создать группу-табличную часть. Источник пусто, приемник ТЧ. Добавить в неё реквизит (источник пусто). Добавить в ПередВыгрузкой этой группы (ПКГС):
КоллекцияОбектов = Новый ТаблицаЗначений; КоллекцияОбектов.Колонки.Добавить("ИмяРеквизитаПриемника"); КоллекцияОбектов.Добавить().ИмяРеквизитаПриемника = НужноеЗначение; |
|||
18
palm1c
25.08.11
✎
12:34
|
(17) Это для выгрузки из 1с 8.
А если для выгрузки из 1с 7.7 ? |
|||
19
palm1c
25.08.11
✎
12:47
|
бамп
|
|||
20
palm1c
25.08.11
✎
12:55
|
Я всё равно не понял ничего пока что.
|
|||
21
palm1c
25.08.11
✎
12:55
|
Предложите, пожалуйста, решение для выгрузки из 7-ки и загрузки в 8-ку.
|
|||
22
palm1c
25.08.11
✎
12:56
|
Какбе нужен пример.
|
|||
23
palm1c
25.08.11
✎
12:56
|
(14) Если структуру заменить ТаблицейЗначений будет всё гуд?
|
|||
24
palm1c
25.08.11
✎
13:03
|
Кто-нибудь может написать работающий пример?
|
|||
25
Поручик
25.08.11
✎
13:09
|
(18) Для выгрузки из 7.7.
Сначала см (17) В ПКО Табличной части Перед обработкой Если ПустаяСтрока(Источник.КонтактныйТелефон) = 0 Тогда КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений"); КоллекцияОбъектов.НоваяКолонка("Тип"); КоллекцияОбъектов.НоваяКолонка("Вид"); КоллекцияОбъектов.НоваяКолонка("Представление"); КоллекцияОбъектов.НоваяКолонка("ЗначенияПолей"); КоллекцияОбъектов.НоваяКолонка("Страна"); КоллекцияОбъектов.НоваяКолонка("Регион"); КоллекцияОбъектов.НоваяКолонка("Город"); КоллекцияОбъектов.НоваяКолонка("АдресЭП"); КоллекцияОбъектов.НоваяКолонка("ДоменноеИмяСервера"); КоллекцияОбъектов.НоваяКолонка("НомерТелефона"); КоллекцияОбъектов.НоваяКолонка("НомерТелефонаБезКодов"); КоллекцияОбъектов.НоваяСтрока(); КоллекцияОбъектов.Тип = "Телефон"; КоллекцияОбъектов.Вид = "ТелефонФизическогоЛица"; КоллекцияОбъектов.Представление = Источник.КонтактныйТелефон; КоллекцияОбъектов.ЗначенияПолей = "НомерТелефона=" + Источник.КонтактныйТелефон; КоллекцияОбъектов.НомерТелефона = Источник.КонтактныйТелефон; КоллекцияОбъектов.НомерТелефона = СтрЗаменить(КоллекцияОбъектов.НомерТелефона, "-", ""); КоллекцияОбъектов.НомерТелефона = СтрЗаменить(КоллекцияОбъектов.НомерТелефона, " ", ""); КоллекцияОбъектов.НомерТелефона = СтрЗаменить(КоллекцияОбъектов.НомерТелефона, "+", ""); КоллекцияОбъектов.НомерТелефонаБезКодов = КоллекцияОбъектов.НомерТелефона; КонецЕсли; |
|||
26
Поручик
25.08.11
✎
13:10
|
Если ничего не понял, дальше за деньги.
|
|||
27
palm1c
25.08.11
✎
13:48
|
(26) Я-то всё понял, что за деньги.
Только я просил рабочий пример. После (17) У меня не выгружается из 1с 7, потому что: "Значение = Объект.ПолучитьАтрибут(Имя);" В отладчике смотрю, что за объект и что за имя, получаю: Объект - мой объект-источник. Имя - Имя моей табличной части - приемника. В табличной чати-риемнике я указал, что источник отстутствует. Что я делаю не так? |
|||
28
palm1c
25.08.11
✎
13:56
|
бамп
|
|||
29
Поручик
25.08.11
✎
13:58
|
(27) Ой, мля. Это гептил с нае..упавшего Прогресса начал действовать.
|
|||
30
Поручик
25.08.11
✎
13:59
|
(27) Я тебе и дал рабочий код, сам вчера перенос из ТиС 7.7. в Розницу 2 делал.
|
|||
31
GenV
25.08.11
✎
14:14
|
(27) См. 25. Там пример для 7.7 и уточнение куда его надо поместить (перед обработкой).
|
|||
32
palm1c
25.08.11
✎
15:29
|
Нихрена не работает так, как вы говорите, да.
|
|||
33
palm1c
25.08.11
✎
15:31
|
(17) Не работает.
Попробуйте сами, я уверен, что у вас получится. |
|||
34
palm1c
25.08.11
✎
15:35
|
Советуете то, что не работает. Где логика?
|
|||
35
Поручик
25.08.11
✎
15:53
|
(34) Дятел, именно так у меня и сделан перенос реквизита шапки в строку тч. Мы тебе дали рабочий способ, иди швырнись в стенку покрепче.
|
|||
36
fisher
25.08.11
✎
15:56
|
Для 7.7 код будет полностью аналогичен (17)
Просто с таблицей значений работай в синтаксисе 7.7 |
|||
37
fisher
25.08.11
✎
16:00
|
(33) Куча подобных правил работает, именно из 7.7
Где-то ты косячишь. |
|||
38
GenV
25.08.11
✎
16:02
|
(33) См. (31) еще раз ...
|
|||
39
Поручик
25.08.11
✎
16:08
|
(38) Он стопудов тупо скопипастил себе мой код и теперь орёт, что у него не работает. А может ума не хватает на Code кликнуть.
|
|||
40
fisher
25.08.11
✎
16:08
|
Код нужно поместить в "Перед обработкой" именно для ПКГС нужной табличной части.
Может, ты в этом косячишь? Чтобы получить доступ к обработчикам событий ПКГС, нужно тапнуть на ГРУППУ свойств табличной части и жмакнуть "Изменить". |
|||
41
GenV
25.08.11
✎
16:10
|
(39) Нет он просто прочитал только код )
(40) В этом, в этом. Это еще в (27) стало ясно. |
|||
42
palm1c
25.08.11
✎
16:21
|
Господа, не нужно инсинуаций в мой адрес.
Я повторяю вам: ТО, ЧТО ВЫ НАПИСАЛИ - НЕ РАБОТАЕТ. Посмотрите, пожалуйста, на это. Всё сделано так, как нужно, не? http://savepic.org/2104174.jpg |
|||
43
palm1c
25.08.11
✎
16:26
|
А при выгрузке выдаёт ошибку (27). Что не так?
И кто дятел? И кому об стенку? |
|||
44
GenV
25.08.11
✎
16:28
|
(42) Можно было и просто КоллекцияОбъектов.СуммаПлановая = ... написать.
(43) Правила обновить и модуль обработки. |
|||
45
palm1c
25.08.11
✎
16:29
|
(44) Всё это делается. Модуль обработки у меня автоматом подгружается в V77EXP.ERT
|
|||
46
GenV
25.08.11
✎
16:32
|
(45) КоллекцияОб!Ъ!ектов
|
|||
47
GenV
25.08.11
✎
16:34
|
46+ такая ошибка !не может! возникнуть, если коллекция объектов заполнена в Перед обработкой, т.к. получение значения ТЧ пропускается и сразу идет обход коллекции.
|
|||
48
palm1c
25.08.11
✎
16:37
|
(46),(47) Спасибо, бро.
|
|||
49
palm1c
25.08.11
✎
16:41
|
Поручик, я всё равно уже нассал вам в карман.
|
|||
50
palm1c
25.08.11
✎
16:42
|
Всем спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |