Имя: Пароль:
1C
1С v8
КД. Выгрузка только регистра накопления, без документа
0 jerty
 
19.10.12
18:44
Есть у заказчика необходимость выгрузить регистры накопления без заполнения реквизитов документа-регистратора. Настройка выгрузки документов будет гораздо позднее и скорее всего не мной.

пыталась настроить через КД правила выгрузки след. образом. Выбрала регистр накопления. ПКС прописала из входящих данных. создала правило (произвольный алгоритм)
перед обработкой пишу следующее:

Запрос = Новый Запрос("
|   ВЫБРАТЬ
|    НДСпоОСиНМА.Период,
|    НДСпоОСиНМА.Регистратор,
|    НДСпоОСиНМА.НомерСтроки,
|    НДСпоОСиНМА.Активность,
|    НДСпоОСиНМА.ВидДвижения,
|    НДСпоОСиНМА.Организация,
|    НДСпоОСиНМА.Объект,
|    НДСпоОСиНМА.СчетФактура,
|    НДСпоОСиНМА.ВидЦенности,
|    НДСпоОСиНМА.СтавкаНДС,
|    НДСпоОСиНМА.СчетУчетаНДС,
|    НДСпоОСиНМА.НДСВключенВСтоимость,
|    НДСпоОСиНМА.Состояние,
|    НДСпоОСиНМА.НеВлияетНаВычет,
|    НДСпоОСиНМА.СуммаБезНДС,
|    НДСпоОСиНМА.НДС,
|    НДСпоОСиНМА.ДатаЗаписи,
|    НДСпоОСиНМА.ВидРегламентнойОперации,
|    НДСпоОСиНМА.ДатаСобытия,
|    НДСпоОСиНМА.Событие,
|    НДСпоОСиНМА.МоментВремени
|ИЗ
|    РегистрНакопления.НДСпоОСиНМА КАК НДСпоОСиНМА
|ГДЕ
|    НДСпоОСиНМА.Период МЕЖДУ &ДатаНачала И &ДатаОкончания");

Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ДатаНачала));
Запрос.УстановитьПараметр("ДатаОкончания", КОнецДня(ДатаОкончания));

выборка = запрос.Выполнить().Выбрать();

пока выборка.Следующий() цикл
   ВходящиеДанные = новый Структура("Активность,ВидЦенности,НДСВключенВСтоимость,НеВлияетНаВычет,Объект,Организация,Состояние,СтавкаНДС,СчетУчетаНДС,СчетФактура,ДатаСобытия,Событие,НДС,СуммаБезНДС,ВидДвижения,Период,Регистратор");
   ВходящиеДанные.ВидЦенности          = выборка.ВидЦенности;
   ВходящиеДанные.НДСВключенВСтоимость = выборка.НДСВключенВСтоимость;
   ВходящиеДанные.НеВлияетНаВычет      = выборка.НеВлияетНаВычет;
   ВходящиеДанные.Объект               = выборка.Объект;
   ВходящиеДанные.Организация          = выборка.Организация;
   ВходящиеДанные.Состояние            = выборка.Состояние;
   ВходящиеДанные.СтавкаНДС            = выборка.СтавкаНДС;
   ВходящиеДанные.СчетУчетаНДС         = выборка.СчетУчетаНДС;
   ВходящиеДанные.СчетФактура          = выборка.СчетФактура;
   ВходящиеДанные.Событие              = выборка.Событие;
   ВходящиеДанные.НДС                  = выборка.НДС;
   ВходящиеДанные.СуммаБезНДС          = выборка.СуммаБезНДС;
   ВходящиеДанные.ВидДвижения          = выборка.ВидДвижения;
   ВходящиеДанные.Период               = выборка.Период;
   ВходящиеДанные.Регистратор          = выборка.Регистратор;
   Выгрузитьпоправилу(,,ВходящиеДанные,, "НДСпоОСиНМА");    
КонецЦикла;

выгружается все нормально, а при загрузке выдает ошибку: Получение элемента по индексу для значения не определено
Обмен происходит между УПП 1.3 и БП 3.0.
1 GenV
 
19.10.12
18:52
Не светит ... Выгружай как бух. операцию.
2 jerty
 
19.10.12
19:21
а если клиенту нужен, чтобы в регистре накопления ссылка была именно на регистратор. Есть другие способы решения?
3 Alex S D
 
19.10.12
19:29
он так ругается когда не находит данных требуемых для входящих данных
4 ЧашкаЧая
 
19.10.12
19:40
Не может быть записи в регистре без регистратора. Переносите в КорректировкаЗаписейРегистров. В демо базе есть конвертация "Перенос остатков регистра накопления" - можете посмотреть пример.
5 jerty
 
19.10.12
20:12
вас правильно поняла:
Если будет документ, и в нем будут все поля, необходимые для регистра накопления, то все пройдет корректно, при этом в документе могут оставаться незаполенными поля, необходимые для проведения документа.