Имя: Пароль:
1C
1С v8
1С:Конвертация, перенос данных регистра накопления
0 turbomilk8
 
03.04.12
07:24
Доброго всем времени суток.
Такая штука, есть две УТ(10.3), требуется с помощью конвертации данных (2.1) перенести из одной УТ весь регистр накопления «Продажи», с отбором по номенклатуре с определенным штрихкодом, в этот же регистр другой УТ. При этом в качестве документа-регистратора подставлять один и тот же заранее созданный документ «РеализацияТоваровУслуг» - записанный, но не проведенный. Должны переноситься только записи регистров, сами документы-регистраторы не нужны.
Помогите кто чем может…
1 ilpar
 
03.04.12
07:27
движения без проведения документа бред...

постановка бредовая, пиши зачем надо - чтобы помогли
2 ilpar
 
03.04.12
07:28
корректировка записей регистров ?
3 ilpar
 
03.04.12
07:32
а, еще... ты это нам предлагаешь сделать ? =)
4 turbomilk8
 
03.04.12
07:33
Записи в регистре нужны для формирования отчетов по продажам дистрибьюторов. В дальнейшем правила будут добавлены в автообмен между нашими базами
5 turbomilk8
 
03.04.12
07:37
Написал в правилах выгрузки данных для реализации в "Перед выгрузкой" код:
Запрос = Новый Запрос;
Запрос.Текст = "
|    ВЫБРАТЬ
|    Продажи.Номенклатура,
|    Продажи.Период,
|    Продажи.Регистратор,
|    Продажи.Активность,
|    Продажи.Организация,
|    Продажи.Контрагент,
|    Продажи.ДоговорКонтрагента,
|    Продажи.Количество,
|    Продажи.Стоимость
|ИЗ
|    РегистрНакопления.Продажи КАК Продажи
|ГДЕ
|    Продажи.Регистратор = &Регистратор";
Запрос.УстановитьПараметр("Регистратор", Объект.Ссылка);
Движения = Запрос.Выполнить().Выгрузить();

Для Каждого Строка ИЗ Движения Цикл
   ИсходящиеДанные = Новый Структура("Организация, Контрагент, ДоговорКонтрагента, Номенклатура, Количество, Стоимость, Активность, Период, Регистратор");
   ИсходящиеДанные.Организация = Строка.Организация;
   ИсходящиеДанные.Контрагент  = Строка.Контрагент;
   ИсходящиеДанные.ДоговорКонтрагента  = Строка.ДоговорКонтрагента;
   ИсходящиеДанные.Номенклатура  = Строка.Номенклатура;
   ИсходящиеДанные.Количество  = Строка.Количество;
   ИсходящиеДанные.Стоимость   = Строка.Стоимость;
   ИсходящиеДанные.Активность  = Строка.Активность;
   ИсходящиеДанные.Период      = Строка.Период;
   ИсходящиеДанные.Регистратор = Строка.Регистратор.Ссылка;

   ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"Продажи");
КонецЦикла;
Он получает записи регистра и передает их в ПКО "Продажи", где для регистра накопления "Продажи" источник не указан, а для всех свойств стоит флаг "Получить из входящих данных".
6 turbomilk8
 
03.04.12
07:42
В итоге, записи в файл обмена выгружаются, но загрузка падает с ошибкой: "Метод объекта "Записать" РегистрНакопленияЗапись:Продажи не обнаружен". Я так понимаю что типовая загрузка не поддерживает создание записей регистров и в правилах для регистра "Продажи" в обработчик "При загрузке" надо самому описывать принцип, по которому будет происходить создание записей
7 ilpar
 
03.04.12
07:45
тестирование и исправление снесет твои записи (возможно).
Должен быть документ "корректировка записей регистров" вместо реализации.

Как его сделать, по аналогии с документов ОперацияБух. Примеры можно найти
8 turbomilk8
 
03.04.12
07:48
Я и не собираюсь тестирование и исправление запускать, это спец. выделенная база для обмена с кучей разных контрагентов.
9 turbomilk8
 
03.04.12
09:23
up
Основная теорема систематики: Новые системы плодят новые проблемы.