Вход | Регистрация


1С:Предприятие ::

Метки: 

КД2 перенести данные из док-ов в регистр накопления

Я
   Альбатрос
 
26.12.12 - 06:10
Всем привет! Нужно перенести из 7.7 в 8.2. реквизиты и тч документов, записать их в регистр накопления. Тыкните, пожалуйста, примером, где посмотреть можно. Заранее спасибо.
 
 
   strange2007
 
1 - 26.12.12 - 06:19
В ПВД в "ПередОбработкой" описываешь таблицу "ВыборкаДанных". Где указываешь каждую запись. Способ выгрузки - произвольный алгоритм
В ПКО указываешь только приемник. В ПКС-х тоже только приемник.
Главное перед этим настрой все ПКО, по которым будут конвертиться объекты реквизитов
   Гефест
 
2 - 26.12.12 - 06:20
(1) А что, нынче уже можно в регистр накопления без регистратора писать?
   strange2007
 
3 - 26.12.12 - 06:24
(2) Я без тонкостей про регистратор. Там ооочень много тонкостей. Без примера не поймешь вообще
   Альбатрос
 
4 - 26.12.12 - 06:27
(3) Вот вот =) я так понимаю, надо в "корректировку записей регистра" переносить. Забыл указать: из комплексной в ут.
   Альбатрос
 
5 - 26.12.12 - 06:31
Может, на 7.7 сделать отчет по документам печатный, сохранить его, и попробовать корректировку через загрузку из таб. документа... Такая схема проканает?
   strange2007
 
6 - 26.12.12 - 06:39
(5) Ты эту загрузку будешь целый день писать и в случае чего будешь менять со слезами на глазах. В КД все гораздо проще и ровнее
   strange2007
 
7 - 26.12.12 - 06:41
(4) могу выслать готовый блок для ПВД, где описан алгоритм выгрузки в УППшную корректировку. Тебе для рег накоплений пойдет вариант?
   Альбатрос
 
8 - 26.12.12 - 06:45
(7) Конечно! Мне для рег накопления и надо. instepanov@sibksm.ru. Спасибо!
   echo77
 
9 - 26.12.12 - 06:48
(5) Можно. Соответствующая обработка на инфостарте есть.
Если не знаешь КД2 и перенос разовый - через обработку проще
   strange2007
 
10 - 26.12.12 - 06:50
(8) Ушло. Там для регистра "ДенежныеСредства"
 
 Рекламное место пустует
   Альбатрос
 
11 - 26.12.12 - 07:08
(10) Ага, еще раз спасибо, вникаю =)
   dk
 
12 - 26.12.12 - 07:25
дык вроде стандартная ситуация - в самой КД есть пример такого переноса
   strange2007
 
13 - 26.12.12 - 07:28
(12) Там путаница со вложенностями. Оно не сложно, просто запутанно. А с субконтами вообще болото
   Альбатрос
 
14 - 27.12.12 - 07:40
(12) Не подскажете, где этот пример? =)
   dk
 
15 - 27.12.12 - 08:25
(14) http://s59.radikal.ru/i165/1212/38/be3d03d5dc93.png
вроде вместе с демкой КД идут
   Капюшон
 
16 - 27.12.12 - 08:26
как вы так ра зобрались с этим.
   Альбатрос
 
17 - 27.12.12 - 09:29
(15) у меня КД 2.1.6.2. Там подобного, к сожалению, не нашел...
   GenV
 
18 - 27.12.12 - 09:42
(17) Это в демо базе - 1Cv8.dt в шалоне. В 2.1.6.2 тоже есть.
   Альбатрос
 
19 - 27.12.12 - 09:53
(18) Отлично!
Спасибо
   Альбатрос
 
20 - 27.12.12 - 12:07
Мужики, что то не так... Вот ПВД:

Запрос = СоздатьОбъект("Запрос");
    НачДата = '01.01.06';
    КонДата = '01.01.07';
    ТекстЗапроса = 
    "
    |Период с НачДата по КонДата;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Номенклатура = Документ.ЗаменаМасла.Номенклатура;
    |Количество = Документ.ЗаменаМасла.Количество;
    |Сумма = Документ.ЗаменаМасла.Сумма;
    |Клиент = Документ.ЗаменаМасла.Клиент;
    |ПродавецИмя = Документ.ЗаменаМасла.Продавец.ФизЛицо.Наименование;
    |Продавец = Документ.ЗаменаМасла.Продавец.ФизЛицо;
    |ПродавецКод = Документ.ЗаменаМасла.Продавец.ФизЛицо.Код;
    |Автомобиль = Документ.ЗаменаМасла.Автомобиль;
    |Склад = Документ.ЗаменаМасла.Склад;
    |Код = Документ.ЗаменаМасла.Клиент.Код;
    |Пробег = Документ.ЗаменаМасла.Пробег;
    |ДатаДок = Документ.ЗаменаМасла.ДатаДок;
    |ТекущийДокумент = Документ.ЗаменаМасла.ТекущийДокумент;
    |Номенклатура1 = Документ.ЗаменаМасла.Номенклатура1;
    |Группировка Документ;
    |Группировка Номенклатура;
    |Группировка Номенклатура1;
    |Условие(ПустоеЗначение(Клиент)=0);
    |"//}}ЗАПРОС
 
    
    ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
    ИсходящиеДанные.Установить("Номер","00002");
    ИсходящиеДанные.Установить("Дата", текущаяДата());
    
    
    ЗаменаМасла = СоздатьОбъект("ТаблицаЗначений");
    ЗаменаМасла.НоваяКолонка("Авто");
    ЗаменаМасла.НоваяКолонка("Период");
    ЗаменаМасла.НоваяКолонка("ДокРег");
    ЗаменаМасла.НоваяКолонка("Количество");
    ЗаменаМасла.НоваяКолонка("Комментарий");
    ЗаменаМасла.НоваяКолонка("Номенклатура");
    ЗаменаМасла.НоваяКолонка("ДатаОперации");
    ЗаменаМасла.НоваяКолонка("Пробег");
    ЗаменаМасла.НоваяКолонка("Продавец");
    ЗаменаМасла.НоваяКолонка("СуммаОперации");
    ЗаменаМасла.НоваяКолонка("Хозяин");
    
    ТабИмениРегистра = СоздатьОбъект("ТаблицаЗначений");
    ТабИмениРегистра.НоваяКолонка("Имя");
    ТабИмениРегистра.НоваяКолонка("Представление");
    
    ТабИмениРегистра.НоваяСтрока();
    ТабИмениРегистра.Имя = "ЗаменаМасла";
    ТабИмениРегистра.Представление = "Замена масла";
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Сообщить("Ну пиз**ц");
    КонецЕсли;
    
    
    
    ДатаВыгрузки = ТекущаяДата();
    
    Пока Запрос.Группировка(1) = 1 Цикл
        Пока Запрос.Группировка(2) = 1 Цикл
                Пока Запрос.Группировка(3) = 1 Цикл
                ЗаменаМасла.НоваяСтрока();
                ЗаменаМасла.Авто = Запрос.Автомобиль;
                ЗаменаМасла.Период = ДатаВыгрузки;
                ЗаменаМасла.ДокРег = "";
                ЗаменаМасла.Количество = Запрос.Количество;
                ЗаменаМасла.Комментарий = "";
                ЗаменаМасла.Номенклатура = Запрос.Номенклатура;
                ЗаменаМасла.ДатаОперации = Запрос.ДатаДок;
                ЗаменаМасла.Пробег = Запрос.Пробег;
                ЗаменаМасла.Продавец = Запрос.Продавец;
                ЗаменаМасла.Хозяин = Запрос.Клиент;
                ЗаменаМасла.СуммаОперации = Запрос.Сумма;
                КонецЦикла;
        КонецЦикла;
    КонецЦикла;
    
    ИсходящиеДанные.Установить("ТаблицаРегистровНакопления", ТабИмениРегистра);
    ИсходящиеДанные.Установить("ЗаменаМасла", ЗаменаМасла);
    
    ВыгрузитьПоПравилу(,, ИсходящиеДанные,, "КорректировкаЗаписейРегистров");


Ошибка при записи док-та: "Период не может быть пустым".
Но я ведь явно указываю период = ТекущаяДата(); (!)
Почему же он пустой?
   Альбатрос
 
21 - 27.12.12 - 12:09
Ошибка записи объекта
    ТипОбъекта             =  Корректировка записей регистров
    Объект                 =  Корректировка записей регистров 00002 от 27.12.2012 0:00:00
    ОписаниеОшибки         =  Ошибка при вызове метода контекста (Записать): Запись не верна! Период не может быть пустым! (Регистр накопления: Замена масла; Номер строки: 1)
    ПозицияМодуля          =  Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(4835)
    КодСообщения           =  26
   Альбатрос
 
22 - 27.12.12 - 12:25
Это может быть из-за того, что период.тип = дата и время, а я выгружаю только дату?
   Абыр
 
23 - 27.12.12 - 12:35
Дату самого документа корректировки задал?
   Альбатрос
 
24 - 27.12.12 - 12:36
(23) да
   Альбатрос
 
25 - 27.12.12 - 12:36
ИсходящиеДанные.Установить("Номер","00002");
    ИсходящиеДанные.Установить("Дата", текущаяДата());
   GenV
 
26 - 27.12.12 - 20:17
(25) Все свойства для движения документа добавил? Не пропустил свойство "Период"?
   Альбатрос
 
27 - 28.12.12 - 04:08
(26) Да вроде все:
 ЗаменаМасла = СоздатьОбъект("ТаблицаЗначений");
    ЗаменаМасла.НоваяКолонка("Авто");
    ЗаменаМасла.НоваяКолонка("Период");
    ЗаменаМасла.НоваяКолонка("ДокРег");
    ЗаменаМасла.НоваяКолонка("Количество");
    ЗаменаМасла.НоваяКолонка("Комментарий");
    ЗаменаМасла.НоваяКолонка("Номенклатура");
    ЗаменаМасла.НоваяКолонка("ДатаОперации");
    ЗаменаМасла.НоваяКолонка("Пробег");
    ЗаменаМасла.НоваяКолонка("Продавец");
    ЗаменаМасла.НоваяКолонка("СуммаОперации");
    ЗаменаМасла.НоваяКолонка("Хозяин");


  ДатаВыгрузки = ТекущаяДата();
    
    Пока Запрос.Группировка(1) = 1 Цикл
        Пока Запрос.Группировка(2) = 1 Цикл
                Пока Запрос.Группировка(3) = 1 Цикл
                ЗаменаМасла.НоваяСтрока();
                ЗаменаМасла.Авто = Запрос.Автомобиль;
                ЗаменаМасла.Период = ДатаВыгрузки;
                ЗаменаМасла.ДокРег = "";
                ЗаменаМасла.Количество = Запрос.Количество;
                ЗаменаМасла.Комментарий = "";
                ЗаменаМасла.Номенклатура = Запрос.Номенклатура;
                ЗаменаМасла.ДатаОперации = Запрос.ДатаДок;
                ЗаменаМасла.Пробег = Запрос.Пробег;
                ЗаменаМасла.Продавец = Запрос.Продавец;
                ЗаменаМасла.Хозяин = Запрос.Клиент;
                ЗаменаМасла.СуммаОперации = Запрос.Сумма;
                КонецЦикла;
        КонецЦикла;
    КонецЦикла;

ИсходящиеДанные.Установить("ЗаменаМасла", ЗаменаМасла);
   Альбатрос
 
28 - 28.12.12 - 04:52
Блин, открыл хмл, а там все значения таблицы регистра накопления "ЗаменаМасла" пустые... Что не так то?
   Альбатрос
 
29 - 28.12.12 - 05:11
Разобрался. Оказывается, галочку "получить из входящих данных" надо было указать только для набора движений в целом, а не для каждого реквизита из этого набора =)
Всем еще раз огромное спасибо, перенос работает на ура!



Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует