Имя: Пароль:
1C
1С v8
Конвертация: один в два
, ,
0 dreamoff
 
28.03.12
10:10
объясните пожалуйста,как выгрузить один документ в 2. когда нужно один документ по условию делить на 2,т.е. ,например, инвентаризация выгружается либо в оприходование, либо в списание
1 Naumov
 
28.03.12
10:13
тут не один в два. а произвольная выборка выгружается по двум разным правилам.
Хотя можно и тупо правилами. Делаешь два правила: Инвентаризация в оприходование
и Инвентаризация в Списание
Для таб.части в событии перед выгрузкой откинешь лишнее.
2 dreamoff
 
28.03.12
10:19
(1)а есть какие нить примеры.а то я уже весь гугл обнасиловал и ничего путного((
3 guitar_player
 
28.03.12
10:20
(2) да так то дофига, возми любую типовую конвертацию и глянь
4 takefive
 
28.03.12
10:21
Если (СтрокаТовар.Количество <> 0) ИЛИ (СтрокаТовар.Сумма <> 0) Тогда
   ИмяПКО = "ПоступлениеТоваровУслугВНТТ";
   ВыгрузитьПоПравилу(Объект,,Новый Структура("Товары",ТабличнаяЧастьТовары),,ИмяПКО);
КонецЕсли;
Если ТабличнаяЧастьМатериалы.Количество() <> 0 Тогда
   ИмяПКО = "ПоступлениеТоваровУслуг";
   ВыгрузитьПоПравилу(Объект,,Новый Структура("Товары",ТабличнаяЧастьМатериалы),,ИмяПКО);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.НомерНалоговогоДокумента) И ЗначениеЗаполнено(Объект.ДатаНалоговогоДокумента) Тогда
   ИмяПКО = "РегистрацияВходящегоНалоговогоДокумента";
   ВыгрузитьПоПравилу(Объект,,,,ИмяПКО);
КонецЕсли;
5 dreamoff
 
28.03.12
10:26
(4)это все надо делать в ПВД?
6 takefive
 
28.03.12
10:27
да, стандартная выборка, ПКО не указано
7 dreamoff
 
28.03.12
10:33
(6) т.е. я создаю 2 ПКО инвент-списание и инвент-оприходование
потом ПВД без ПКО,где прописываю нужные мне условия,как в(4)?
8 Naumov
 
28.03.12
10:35
(6) ПВД? не взелтит такой код в ПВД
9 takefive
 
28.03.12
10:38
(7) да
(8) обоснуй
10 dreamoff
 
28.03.12
10:45
(9) спасибо)
11 takefive
 
28.03.12
10:55
ПередВыгрузкой!
12 dreamoff
 
28.03.12
10:59
(11)да,спасибо,это я понял
13 dreamoff
 
30.03.12
11:00
в ПВД такой код

Для каждого стр из Объект.Товары Цикл
   Если стр.Количество-стр.КоличествоУчет>0 Тогда
       НовыйПлюс=ТабличнаяЧастьПлюс.Добавить();
       НовыйПлюс.Номенклатура                    =стр.Номенклатура;
       НовыйПлюс.ХарактеристикаНоменклатуры    =стр.Номенклатура;
       НовыйПлюс.ЕдиницаИзмерения                =стр.Номенклатура.БазоваяЕдиницаИзмерения;
       НовыйПлюс.Коэффициент                    =1;
       НовыйПлюс.Количество                    =стр.Количество;
   ИначеЕсли стр.Количество-стр.КоличествоУчет<0 Тогда    
       НовыйМинус=ТабличнаяЧастьМинус.Добавить();
       НовыйМинус.Номенклатура                    =стр.Номенклатура;
       НовыйМинус.ХарактеристикаНоменклатуры    =стр.Номенклатура;
       НовыйМинус.ЕдиницаИзмерения                =стр.Номенклатура.БазоваяЕдиницаИзмерения;
       НовыйМинус.Коэффициент                    =1;
       НовыйМинус.Количество                    =стр.Количество;
   КонецЕсли;    
КонецЦикла;    
Если ТабличнаяЧастьПлюс.Количество() <> 0 Тогда
   ИмяПКО = "ОприходованиеТоваров";
   ВыгрузитьПоПравилу(Объект,,Новый Структура("Товары",ТабличнаяЧастьПлюс),,ИмяПКО);
КонецЕсли;
Если ТабличнаяЧастьМинус.Количество() <> 0 Тогда
   ИмяПКО = "Инвент_СписаниеТоваров";
   ВыгрузитьПоПравилу(Объект,,Новый Структура("Товары",ТабличнаяЧастьМинус),,ИмяПКО);
КонецЕсли;


но в файле не происходит следующее, формируются списание и оприходование,а тч как у инвентаризации. хотя тз формируются правильно. в чем может быть дело, куда смотреть?
14 dreamoff
 
30.03.12
13:03
пятница,все молчат((
15 бомболюк
 
30.03.12
13:16
Самое то главное забыли: если один объект выгружается в 2 и более необходимо менять КлючВыгружаемыхДанных.
16 dreamoff
 
30.03.12
13:17
(15)а можно подробнее?)
17 dreamoff
 
30.03.12
13:32
((
18 бомболюк
 
30.03.12
13:33
(17) Это устанавливается в процедуре "ПередВыгрузкойОбъекта". Почитай хелпак по этой процедуре, там кажется есть пример.
19 бомболюк
 
30.03.12
13:34
+(18) то есть процедура называется "Перед выгрузкой" в правиле конвертации объекта.
20 dreamoff
 
30.03.12
13:51
(19) т.е. у меня есть 2 ПКО инвент-оприходование и инвент-списание,в каждом пко нужно изменить КлючВыгружаемыхДанных? а на что?там нет примера,не нашел.
21 бомболюк
 
30.03.12
13:56
Ну например КлючВыгружаемыхДанных = ЗначениеВСтрокуВнутр(Источник) + "_" + ИмяПКО;
22 dreamoff
 
30.03.12
14:41
видно я совсем тупой.не догоняю как это сделать.есть у меня 2 пко,в каждый из них "перед выгрузкой" написать типа КлючВыгружаемыхДанных = ЗначениеВСтрокуВнутр(Источник) + "_" + ИмяПКО;
а какое имя ПКО,то в котором я задаю переменную?
23 бомболюк
 
30.03.12
14:49
Переменную ИмяПКО определять не нужно, она уже определена. В одном ПКО это будет "ОприходованиеТоваров", а в другом "Инвент_СписаниеТоваров".
24 takefive
 
30.03.12
14:52
в ПКГС Товары поставь флаг - получить из входящих данных
25 takefive
 
30.03.12
15:06
Структуру ты для чего формируешь? Для красоты?
ВходящиеДанные это Новый Структура("Товары",ТабличнаяЧастьМинус)
посмотри параметры процедуры ВыгрузитьПоПравилу()
26 dreamoff
 
04.04.12
10:48
(25) не совсем понял,что имеется ввиду