|
Перенос с помощью конвертации данных из регистра сведений в новый! документ. | ☑ | ||
---|---|---|---|---|
0
new_hope
29.08.18
✎
08:54
|
Подскажите - мне нужно перенести данные из РегистраСведений (ну и не только - там запросом будет выбираться данные) базы "источника" в документ (в табличную часть) базы "приемник" - но - эти документы будут НОВЫЕ - то-есть в базе приемнике их нужно создавать!
Еще вариант более удобный для меня вариант - создать только один документ в базе "приемнике" и занести все данные РегистраСведений базы "источника" в табличную часть этого документа Это возможно в пределах конвертации данных? Функция ВыгрузитьПоПравилу() мне поможет? Что использовать? Подскажите - куда копать? Может кто-то решал подобное - поделитесь ссылкой и т.д. |
|||
1
Optan
29.08.18
✎
08:57
|
||||
2
Йохохо
29.08.18
✎
08:59
|
в чем вопрос то? возможно - конечно. ВыгрузитьПоПравилу поможет, есть и другие варианты. В один или много документов зависит от того, что за данные, как будут синхронизироваться дальще, сколько записей, как будет проводиться документ.
|
|||
3
Shur1cIT
29.08.18
✎
09:14
|
(0) Запросом получаешь данные из регистра, даёш поля такие же названия как в документе потом выгрузить по правилу на пальцах не объяснить ищи видео уроки
|
|||
4
new_hope
29.08.18
✎
09:49
|
(2) Данные разные, не все совпадают в базе-приемнике. Но все данные исключительно будут попадать в табличную часть нового документа.
Некоторые данные в базе "приемника" нужно будет скать в справочниках "приемника" - на основании данных базы источника. Но я вроде как начинаю понимать, если это возможно - то ок! |
|||
5
hhhh
29.08.18
✎
10:00
|
(4) это всё абсолютно без разницы. Садитесь уже и начинайте делать. Абсолютно рутинная задача. Конвертации данных абсолютно похрен, новый или не новый документ. Новый даже проще.
|
|||
6
new_hope
29.08.18
✎
10:15
|
(5) Да... пробую делать! Спасибо! Просто я в начале пути - если честно.
А создавать новый документ (документы) в базе приемника по событию ПКО "ПослеЗагрузки" -> Где "Объект" = и будет (например) ТаблицаЗначений (которую я подготовил ранее в запросе в базе "источника" в событии ПВД "ПередВыгрузкой"), которую я могу поместить в табличное поле _нового_ документа, который я могу создать програмно прямо в этом собитии? Ход мыслей верный? |
|||
7
Optan
29.08.18
✎
10:30
|
(6) Нет.
В общем случае, сначала определяешься какие данные являются повторной выгрузкой (замена документа), а какие новой (создание нового документа). В зависимости от этого определяешь поля поиска для документа. В ПВД собираешь необходимые данные в виде структуры или ТЗ. Затем обходишь свои данные и для каждого нового набора данных вызываешь ВыгрузитьПоПравилу(). По поводу "Некоторые данные в базе "приемника" нужно будет скать в справочниках "приемника" - на основании данных базы источника...." - для каждого поля ссылочного типа по-хорошему придется написать свое правило ПКО. |
|||
8
new_hope
29.08.18
✎
18:20
|
(7) Еще вопрос - если я буду из регистра сведений получать данные - я создаю в ПВД запрос, собираю свои данные и вызываю ВыгрузитьПоПравилу()... тут я уже понял (вроде-бы)
Осталось правило сделать для загрузки... Но - если я буду в базе "приемник" - создавать новый документ из тех данных, которые я получу в запросе ПВД - то... и все эти данные помещаются в табличную часть этого нового документа - то, мне нужно создавать ПКО, где "Имя" этого ПКО будет мой созданный ПВД, Объект Источник - не указываю ничего - а что указывать в Объект Приемник, если это будет НОВЫЙ документ, и ничего искать в базе приемнике не нужно? |
|||
9
Йохохо
29.08.18
✎
18:31
|
(8) объект приемник это тип. Тема недели на три)
|
|||
10
Вафель
29.08.18
✎
18:39
|
смотри как в типовых правилах например остатки переносятся
|
|||
11
Optan
30.08.18
✎
12:42
|
(8) Объект приемник это не конкретный документ, а тип документа который будет создаваться в базе приемнике (как тебе уже написали в (9))
Ты пишешь про НОВЫЙ документ - но при этом имеешь ввиду новый экземпляр типа данных "ДокументОбъект.ПродажаТоваров" №12345". В конвертации ты определяешь только тип, а новый у тебя объект создастся или будет отредактирован старый определяется по настройкам и полям поиска (или GUID), т.е., например, - выгрузилась у тебя порция данных, причем на этапе выгрузки ты задал что у документа номер=1, а дата 01.01.2000. При загрузке обработка ищет документ по полям поиска (пусть у тебя это дата и номер). Найдет документ - заменит существующий, не найдет - создаст новый! |
|||
12
new_hope
03.09.18
✎
06:13
|
Всем спасибо! Все получилось...но почти все.
Столкнулся с другим вопросом. При переносе документа произвольным алгоритмом (нужно из кучи документов базы источника сделать один документ базы приемника). Я в ПВД делаю запрос к документам источника и формирую таблицу значений... все переносится, кроме одного поля - "Физлицо" табличной части (ссылочного типа), которое отсутствует в базе приемнике, но которое можно найти и сопоставить на этапе загрузки в приемник. В базе истоничке Физлицо - тип СправочникСылка.Физлица В базе приемнике мне нужно заполнить тип СправочникСсылка.Сотрудники Как мне передать это значение, через параметр? Или как? На каком этапе мне делать конвертацию этого свойства? Что-то запутался совсем Вот произвольный алгоритм в ПВД:
Собственно - это не работает - "физлицо" в приемнике приходит пустым |
|||
13
hhhh
03.09.18
✎
06:46
|
Запрос.Текст =
"ВЫБРАТЬ | НачисленияБонуса.Физлицо, | СУММА(НачисленияБонуса.Результат) |ИЗ | Документ.НачисленияБонуса.Начисления КАК НачисленияБонуса |ГДЕ | НачисленияБонуса.Результат > 0 | |СГРУППИРОВАТЬ ПО | НачисленияБонуса.Физлицо"; |
|||
14
new_hope
03.09.18
✎
08:19
|
(13) Да, конечно, так.
Но - вопрос в другом. Я в "ВыборкаДанных" пепедаю таблицу значений для заполнения табличного. Но - т.к. "Физлицо" в источнике имеет тип СправочникСылка.Физлица а в СправочникСсылка.Сотрудники. Справочники не однотипные. Что мне и где нужно сделать, чтобы в приемник передать Физлиц так, чтобы заполнить Сотрудников в приемнике? |
|||
15
Мимохожий Однако
03.09.18
✎
08:32
|
(14) Вместо физлиц получить сотрудников нет возможности?
|
|||
16
new_hope
03.09.18
✎
08:35
|
(15)
Нет. Такого справочника в базе-источнике вообще нету. Единственное - в базе.приемнике у справочника "Сотрудники" есть реквизит - Физлицо типа Справочник.Физлица |
|||
17
Wirtuozzz_Х
03.09.18
✎
09:02
|
(0) жуть какая то. Неужели у вас РС имеет столько ресурсов и измерений, что бы заполнить документ?
|
|||
18
new_hope
03.09.18
✎
09:05
|
(17) Не понял вопроса.
В данном случае у меня все получилось, кроме второго вопроса, который я задал двумя сообщениями выше |
|||
19
VS-1976
03.09.18
✎
09:14
|
(14) Если тупо создать сотрудников, то нужно написать правило конвертации из Физлица в Сотрудники и установить это правило для поля
|
|||
20
new_hope
03.09.18
✎
09:20
|
(19) Сотрудники в приемнике уже есть. Нужно просто сопоставить. Я просто все перепробовал - не пойму как сделать. Уже голова кругом идет. Вроде банальная вещь, или не?
|
|||
21
Мимохожий Однако
03.09.18
✎
09:27
|
(16) Не все физические лица становятся сотрудниками. Физлица в приёмнике есть?
|
|||
22
new_hope
03.09.18
✎
09:31
|
(21) Да, есть
|
|||
23
Мимохожий Однако
03.09.18
✎
09:32
|
(22) Зачем тогда тебе сотрудники?
|
|||
24
new_hope
03.09.18
✎
09:34
|
(21) Может както в параметре передать этих физлиц? Я-бы их в обработчике "ПослеЗагрузки" - сопоставил-бы с сотрудниками. Но как не пробовал - не получается.
|
|||
25
new_hope
03.09.18
✎
09:34
|
(23) Как заполнить документ Сотрудниками (а не физлицами)?
|
|||
26
Мимохожий Однако
03.09.18
✎
09:35
|
(24) Ответь Зачем..?
|
|||
27
hhhh
03.09.18
✎
09:36
|
(24) должно быть правило ФизЛицаСотрудники. Если оно уже есть
вставить его для ПКС Сотрудники. В запросе конечно надо так ВЫБРАТЬ | НачисленияБонуса.Физлицо КАК Сотрудник, |
|||
28
new_hope
03.09.18
✎
09:39
|
(26) Мне нужно получить приемнике Табличную документа "Назначения" - где Поле1 - Сотрудник. Поле2 - Сумма
В Источнике есть только Физлица. Сейчас буду пробовать (24) |
|||
29
Мимохожий Однако
03.09.18
✎
09:57
|
(28) Любопытно, на какую должность ты примешь на работу Сидорова или Петрова? У каждого сотрудника должна быть как минимум должность, оклад и т.п.
... Я не понимаю логики. |
|||
30
new_hope
03.09.18
✎
10:19
|
(29) Логика такова!
В Источнике есть куча документов, где табличная часть, например: Поле1 - Физлицо, Поле2 - Результат В Приемнике также документ с табличной частью, где: Поле1 - Сотрудник, Поле2 - Результат. Мне нужно собрать все документы за период (за месяц например) - и по всем сотрудникам создать один документ. Физлицо Источника = Сотруднику приемника. НО - в Приемнике есть справочник Физлиц, а у Сотрудника - реквизит - ссылка на Физлиц. Задача скорее всего до безобразия банальная - но я просто видно что-то не так делаю, и запутался полностью |
|||
31
Мимохожий Однако
03.09.18
✎
10:22
|
(30) А ты ответь на вопрос как бы ты вручную перенёс Сидорова в приёмник. Или пусть на этот вопрос ответит заказчик. После уточнения создать нового сотрудника, если он не сопоставлен проблем не будет
|
|||
32
new_hope
10.09.18
✎
10:16
|
Еще возник по ходу вопрос.
Есть справочники в базе источника и базе приемника с предопределенными элементами. При переносе документа в табличном поле этого документа - значения этого справочника. Ну - собственно - элементы этого справочника мне переносить не нужно - а нужно сопоставить элементы в приемнике: Что-то типа: Если Источник.реквизит = КакоетоЗначение Тогда Приемник.реквизит = НужноеЗначение В каком событии и где это можно корректно сделать? Пробовал делать - или в Приемнике создаются значения (которые мне не надо) или вообще ничего не переносится. Подскажите - в каком месте мне сопоставлять конкретные значения справочника? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |