|
кд и регистры | ☑ | ||
---|---|---|---|---|
0
newphoenix
03.03.16
✎
17:41
|
Добрый день.
Встала необходимость получать из базы-приемника (ут 10.3 на 8.1 нетиповая) некие данные запросом и передавать в виде начальных остатков в приемник (ут 11.2 типовая на 8.3). Все справочники, перечисления итд переносятся без проблем, проблема с остатками. Для этого я делаю ПВД, объект выборки пустой, произвольный алгоритм, правило конвертации "ТоварыНаСкладах". В ПВД перед обработкой: Запрос = Новый Запрос; Запрос.Текст = ..... Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ВыгрузитьПоПравилу(Выборка,,,, "ТоварыНаСкладах"); КонецЦикла; В ПКО Источник пустой, приемник - документ корректировки записей регистров. Как мне теперь дальше действовать, как обратиться к результату моего запроса? Я понял, что что-то вроде НаборЗаписей.Номенклатура = Источник.Номенклатура? После загрузки в ПКО создавать набор записей с регистратором кзр? Можно пример такого алгоритма (именно - получаем данные запросом из источника, пишем в регистр приемником с регистратором - кзр). |
|||
1
Rie
03.03.16
✎
17:43
|
(0) Это где такое? В правилах выгрузки? Тогда не надо ВыгрузитьПоПравилу, формируй коллекцию - и указывай ПКО, которое будет обрабатывать элементы этой коллекции.
|
|||
2
newphoenix
03.03.16
✎
17:53
|
Сформировать коллекцию? Это ТЗ или структуру? И можно примерно, в каком обработчике пко это писать? Например, у меня есть таблица значений с колонками номенклатура, склад, количество.
|
|||
3
Rie
03.03.16
✎
18:03
|
(2) Коллекция - это таблица значений.
В ПВД ставишь "Произвольный алгоритм". В "Перед обработкой" - формируешь таблицу значений. Просто пишешь ВыборкаДанных - Запрос.Выполнить().Выгрузить(); Можно даже ВыборкаДанных = Запрос.Выполнить(); Это тоже сгодится. |
|||
4
newphoenix
03.03.16
✎
18:04
|
Отлично, сформировал, а самое для меня непонятное, как я теперь обращусь к ней? В пко после загрузки?
|
|||
5
Rie
03.03.16
✎
18:15
|
(4) Элемент этой коллекции - это источник для ПКО. Просто указывай на картинке соответствующие имена полей. Или обращайся к Источник.ИмяПоля или Объект.ИмяПоля (в зависимости от обработчика).
|
|||
6
newphoenix
03.03.16
✎
18:47
|
Не понимаю, не получается все равно, есть пвд, в произвольный алгоритм, там запрос и таблица значений, которая запрос.выполнить().выгрузить(), в пко после загрузки написал: сообщить(источник.номенклатура) - ничего не выводится
|
|||
7
mehfk
03.03.16
✎
18:52
|
(0) Возьми любые правила, где есть перенос вводом остатков, хоть с 7.7 на 8, хоть с 8 на 8 и посмотри как сделано там.
|
|||
8
newphoenix
03.03.16
✎
18:53
|
можете подкинуть правил для примера? кд 2.1
|
|||
9
newphoenix
03.03.16
✎
18:58
|
и еще, в мною найденных примерах грузят в тч какого-нибудь документа остатков, а мне нужен документ корректировки записи регистров, у которого по факту, как бы и нет табличной части, а есть лишь ее имя
|
|||
10
mehfk
03.03.16
✎
19:11
|
Движения выгружаются так же, как и тч.
|
|||
11
mehfk
03.03.16
✎
19:16
|
Пример можно посмотреть в ЗИК 7.7 - ЗУП 2.5 Док ПереносДанных.
|
|||
12
newphoenix
03.03.16
✎
19:27
|
Я просто не понимаю, создаю пкгс для документа корректировки регистров, а там из приемников можно выбрать только "имя". То есть, я не могу въехать, как мне указать, что это будет для регистра "товары на складах", источник - пустой, приемник - номенклатура, например
|
|||
13
newphoenix
03.03.16
✎
19:36
|
Вот просто по шагам, можно, правильно или нет
1). В пвд объект выборки пуст, произвольный алгоритм, правило конвертации - мое правило, перед обработкой я выполняю запрос и получаю выборку 2). Там же в пвд я перебираю выборку в цикле и пользуюсь выгрузитьпоправилу(Выборка,,Выборка,,"МоеПКО"); 3). В ПКО после загрузки делаю новый набор записей, регистратор - объект, запись.номенклатура = входязиеданные.номенклатура? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |