Имя: Пароль:
1C
1С v8
Конвертация данных: Как создать документ "на лету" по ссылке?
0 breakthrough
 
14.11.12
11:09
Здравствуйте.
Переношу остатки по взаиморасчетам из 7-ки ТИС в 8-ку КА.
Конечный документ: "Ввод начальных остатков по взаиморасчетам".
В табличной части этого документа пробую заполнить реквизиты "Сделка" и "ДокументРасчетов". Передаю в ПВД Ссылки на эти объекты и проставил для каждого этих реквизитов ПКС правило выгрузки ПКО для соотвествующих документов в 8-ке. Загвоздка в том, что эти поля не заполняются, документы не создаются.
Со справочниками таких проблем не было - элементы создавались на лету. Что не так с документами?
1 leonidkorolev
 
14.11.12
12:17
(0) "Передаю в ПВД..."
Непонятно как это вы делаете.
В первую очередь надо создать ПКО для конвертации Сделка и ДокументРасчетов. Есть ли такие доки в ТИС? Если нет, то данные из входящих данных принимать.
2 breakthrough
 
14.11.12
12:24
(1) Такие ПКО есть. Данные принимаются из ВходящихДанных.
Работает следущюая цепочка: ПВД для остатков вызывает "алгоритм/запрос", затем в результате выполнения запроса заполняются две таблицы значений (для Авансов и для ДебЗадолженности) и выгружаются по "ВыгрузитьПоПравилу" в ПКО , которое формирует документ "ВводНачальныхОстатковПоВзаимроасчетам". У этого документа есть две табличные части, обе заполняются также из входящихДанных объектамиколлекции через ПКГС. Так вот у ПКС ТЧ есть реквизиты: "Сделка" и "ДокументРасчетов" и для них указаны соответствующие ПКО. Ошибок нигде никаких нет. Ни при загрузке, ни при выгрузке.
Ссылка передается ОбъектКоллекции.
3 breakthrough
 
14.11.12
12:30
(1) можеть быть в ПКС нужно явно указать ссылку на объект?
Вот так:
Значение = ОбъектКоллекции.Сделка;
4 breakthrough
 
14.11.12
12:31
Хотя если значения свойств в ПКГС заполняются из ВходящихДанных, то смысла это делать особого нет.
5 leonidkorolev
 
14.11.12
12:44
Я бы сообщения вывели из ПКО сделка, посмотреть вызывается ли вообще и что туда передаётся.
6 breakthrough
 
15.11.12
07:28
(5) Каким образом это можно сделать?
7 Lev292
 
15.11.12
08:30
Если ты создаешь документ ввод остатков, в ПКО (ПередВыгрузкой) задай такой параметр: КлючВыгружаемыхДанных = ""+ВходящиеДанные.Получить("Комментарий")+ВходящиеДанные.Получить("Дата"); 1С не знает, что ты выгружаешь и поэтому такой косяк. Когда выгружаешь справочник или документ КлючВыгружаемыхДанных 1С генерит сама, а в твоем случае ей надо помочь!!!
8 breakthrough
 
15.11.12
14:27
(7) Огромное спасибо!!!
9 breakthrough
 
15.11.12
14:41
(7) Хм. Ключ прописал - эффект тот же...Странно.
10 Lev292
 
16.11.12
08:24
Ключ должен быть уникальным!!! Дата остатков наверняка одна и таже, а комментарий делай унакальным при каждом обращении в ПКО. Например Комментарий = "Док1", Во втором обращении Комментарий = "Док2" и так далее
11 breakthrough
 
16.11.12
08:32
(10) Подождите-ка...У меня сам документ "ввод начальных остатков по взаиморасчетам" выгружается. Более того сейчас я добился того, что выгружается Сделка. Были два момента:
1. Нужно было в выборке по документам указать ссылку на документ вида:
Авансы.Сделка = Док.ТекущийДокумент();
2. Нужно для ПКС "Сделка" в ПКО "ВводОстатков" в обработчике "ПередВыгрузкой" явно прописать:
Значение = ОбъектКоллекции.Сделка;

Сейчас остается проблема с созданием на лету документа "ДокументРАсчетовСКонтрагентами(ручнойучет)".
По нему ссылки нет, а данные для ПКО формируются следующим образом:
ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
ИсходящиеДанные.Установить("Организация",ПолучитьЗначение(ВходящиеДанные,"Организация"));
ИсходящиеДанные.Установить("Контрагент",ОбъектКоллекции.Контрагент);
ИсходящиеДанные.Установить("ДоговорКонтрагента",ОбъектКоллекции.ДоговорКонтрагента);
   
//Стр = ""+СокрЛП(ОбъектКоллекции.ДокументОплаты.Вид())+" № "+ОбъектКоллекции.ДокументОплаты.НомерДок+" от "+ОбъектКоллекции.ДокументОплаты.ДатаДок;
ВидОперации = ПолучитьЗначение(ВходящиеДанные,"ВидОперации");
Стр = "Ввод начальных остатков по взаиморасчетам " + ?(ВидОперации = "РасчетыСПоставщиками", "с пост. ", "с пок. ") + ОбъектКоллекции.Контрагент.Код+" "+ОбъектКоллекции.ДоговорКонтрагента.ПолныйКод();

ИсходящиеДанные.Установить("Комментарий",Стр);
ИсходящиеДанные.Установить("Дата",ОбъектКоллекции.Сделка.ДатаДок);
ИсходящиеДанные.Установить("ДокументОснование","");

Что не так понять не могу.
12 perec1982
 
16.11.12
08:35
Самый простой и быстрый вариант это универсальный подбор и обработка объектов.
13 breakthrough
 
16.11.12
08:35
Вопрос, как получить ссылку на объект когда он еще не создан. Или вернуть в ПКС ссылку на него после его создания в другом ПКО.
14 breakthrough
 
16.11.12
08:35
(12) Это как?
15 perec1982
 
16.11.12
08:37
Ну после того как загрузил документ Ввод начальных остатков по взаиморасчетам илпользуя эту обработку и произвольный алгоритм.
16 breakthrough
 
16.11.12
08:41
(15) Не понимаю. Поясните, пожалуйста.
17 perec1982
 
16.11.12
08:57
пользовался обработкой универсальный подбор и обработка объектов?
18 perec1982
 
16.11.12
09:04
на дисках ИТС есть такая обработка находится она в D:\1CIts\EXE\EXTREPS\UNIREPS82\UniversalSelection
19 Lev292
 
16.11.12
09:12
Есть в ПКО замечательный обработчик ПослеЗагрузки. В нем и нужно создвать документы ДокументРАсчетовСКонтрагентами(ручнойучет). ведь нельзя же перенести документы которых впринципе не существует.