Имя: Пароль:
1C
1С v8
кд и регистры
,
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). В ПКО после загрузки делаю новый набор записей, регистратор - объект, запись.номенклатура = входязиеданные.номенклатура?