Имя: Пароль:
1C
1С v8
КД2. Перенос документа с разными реквизитами.
,
0 dva1c
 
14.05.12
12:10
1 dva1c
 
14.05.12
12:11
Состояние задачи на текущий момент:
"На текущий момент, из примера, указанного в (20), пытаюсь сделать так, чтобы в ПРИЕМНИК попадали данные из ИСТОЧНИК. Т.е. чтобы они соответствовали переносу, а не были проставлены жестко (как я решил в v8: Конвертация данных 2. Выгрузка/загрузка док. Разные реквизиты."
2 dva1c
 
14.05.12
12:12
Всем откликающимся, заранее спасибо!
3 GenV
 
14.05.12
12:15
(1) Из этого не понятно на какой стадии находятся твои попытки.
4 dva1c
 
14.05.12
12:17
(3) Рассказываю подробно
5 dva1c
 
14.05.12
12:19
+(4) Я создаю/пересоздаю правила (ПКО) для объектов.
Делаю это, чтобы получить данные из ИСТОЧНИК.

После загрузки:

//Сообщить(Источник.ПорядокПогашенияСтоимостиБУ);

//Попытка
   //Объект.ПрочийОбъектУчета = Справочники.ПрочиеОбъектыУчета.ПриобретениеОС;
   Объект.ПрочийОбъектУчет = ПогашениеСтоимости;
   //Сообщить("После загрузки: " + Объект.ПрочийОбъектУчет);
   //Объект.СпособНачисленияАмортизации = СпособНачисления;
   //Сообщить("После загрузки: " + СпособНачисления;//Объект.СпособНачисленияАмортизаци);
   //Объект.ПорядокПогашенияСтоимости = Перечисления.ПорядокПогашенияСтоимостиОС.НачислениеАмортизации;
   //Перечисления.ПорядокПогашенияСтоимостиОС.НачислениеАмортизации; Источник.ПорядокПогашенияСтоимостиБУ
//Исключение
   
//КонецПопытки;
6 dva1c
 
14.05.12
12:20
+(5) После выгрузки:

ПогашениеСтоимости    = Источник.ПорядокПогашенияСтоимостиБУ;
СпособНачисления    = Источник.СпособНачисленияАмортизацииБУ;
//ПорядокПогашения    = Источник.

Сообщить("После выгрузки: " + ПогашениеСтоимости);
Сообщить("После выгрузки: " + СпособНачисления);
7 GenV
 
14.05.12
12:23
(4) Подробно это так:
1) Исходные данные источника (описание алгоритма или имя реквизита и его тип)
2) Конечные данные приемника (имя реквизита и тип)
3) Что имеется в сделанном виде с учетом 1) и 2) - ну допустим это ты уже написал
8 dva1c
 
14.05.12
12:25
(7) Понял. Сейчас все будет согласно пунктам.

Для начала:
http://s019.radikal.ru/i619/1205/43/aab428de3574.jpg
9 dva1c
 
14.05.12
12:34
Документ в бухгалтерии
http://s019.radikal.ru/i618/1205/30/8559f3f733c2.jpg
Документ в Оперативном учете
http://s019.radikal.ru/i631/1205/8d/0df384589db0.jpg
10 dva1c
 
14.05.12
12:39
Сейчас работаю с этим реквизитом
ИСТОЧНИК
ПорядокПогашенияСтоимостиБУ, ТипЗначения: ПеречислениеСсылка.ПорядокПогашенияСтоимостиОС

ПРИЕМНИК
ПорядокПогашенияСтоимости1, ТипЗначения: ПеречислениеСсылка.ПорядокПогашенияСтоимостиОС
11 dva1c
 
14.05.12
12:43
ИСТОЧНИК:
СпособНачисленияАмортизацииБУ, ТипЗначения: ПеречислениеСсылка.СпособыНачисленияАмортизацииОС

ПРИЕМНИК:
СпособНачисленияАмортизации, ТипЗначения: ПеречислениеСсылка.СпособНачисленияАмортизацииОС
12 GenV
 
14.05.12
12:45
(10) И в чем сложность? Настраиваешь конвертацию значений (в твоем ПКО ПорядокПогашенияСтоимостиОС). Если конвертация по условию, то передаешь строковое имя предопределенного элемента в приемнике в ПередВыгрузкой реквизита по условию, а правило удаляешь.
13 dva1c
 
14.05.12
12:48
Что сделал?
Сделал в ПКО:
http://s019.radikal.ru/i636/1205/61/24018c5a2dfc.jpg
---
Пока сдирал скрины и пытался систематизировать информацию появилось (12).
Спасибо! Попытаюсь понять и проверить.
14 GenV
 
14.05.12
12:49
(12+ Имя передаешь как: Значение = "ИмяПредопределенного";
15 dva1c
 
14.05.12
12:56
(14) В (5) можно увидеть:

Объект.ПорядокПогашенияСтоимости = Перечисления.ПорядокПогашенияСтоимостиОС.НачислениеАмортизации;

А я пытаюсь

Объект.ПорядокПогашенияСтоимости = Источник.СпособНачисленияАмортизацииБУ;

А валятся ошибки:

Начало загрузки:   14.05.2012 12:21:14

Ошибка в обработчике события ПослеЗагрузкиОбъекта
   ИмяПКО                 =  ПринятиеКУчетуОС
   ТипОбъекта             =  Документ ссылка: Принятие к учету ОС
   Объект                 =  Принятие к учету ОС 00000000039 от 01.02.2010 15:00:00
   Обработчик             =  ПослеЗагрузкиОбъекта
   ОписаниеОшибки         =  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
   ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(5832)
   КодСообщения           =  21

Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1504)}: Ошибка в обработчике события ПослеЗагрузкиОбъекта
   ИмяПКО                 =  ПринятиеКУчетуОС
   ТипОбъекта             =  Документ ссылка: Принятие к учету ОС
   Объект                 =  Принятие к учету ОС 00000000039 от 01.02.2010 15:00:00
   Обработчик             =  ПослеЗагрузкиОбъекта
   ОписаниеОшибки         =  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
   ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(5832)
   КодСообщения           =  21

Окончание загрузки: 14.05.2012 12:21:14

Загружено объектов: 11
16 dva1c
 
14.05.12
12:59
(14) Я не понял, как это: "Имя передаешь как..."
Какое имя? Имя чего? В каком обработчике писать?
17 GenV
 
14.05.12
13:10
(16) Ну, так вроде все написал в 12+14. Обработчик ПередВыгрузкой (соотв. при выгрузке, а не загрузке) и как передавать тоже "имя предопределенного элемента в приемнике", т.е. имя значения перечисления - через: Значение = "ИмяПредопределенного";
18 dva1c
 
14.05.12
13:15
(17) Сразу вопрос. "ИмяПредопределенного" - это будет браться значение, какое стоит в ИСТОЧНИК?
19 dva1c
 
14.05.12
13:16
+(18) Значение этого перечисления будет браться из ИСТОЧНИК?
20 dva1c
 
14.05.12
13:18
Для полного понимания моих "изысков" скинул сюда:
http://zalil.ru/33233336
21 dva1c
 
14.05.12
13:18
+(20) Скинул мои правила.
22 GenV
 
14.05.12
13:18
(18) Нет - значение в приемнике. Т.е. сразу нужное значение.
23 dva1c
 
14.05.12
13:42
(22) > Т.е. сразу нужное значение.
Так я умею. Но если я проставлю нужное мне значение, то оно может отличаться от значения в ИСТОЧНИК. Это не есть, гуд. (
24 GenV
 
14.05.12
13:47
(23) Давай пример. Что по твоему не есть гуд )
25 dva1c
 
14.05.12
13:50
(24) Быстро не смогу. Мне нужно "сэмулировать" этот пример.
На словах. Значение в ИСТОЧНИКЕ будет отличаться от значения в ПРИЕМНИК.
26 GenV
 
14.05.12
14:04
(25) Ясен пень будут отличаться - это две разные базы ) В приемнике не может быть значение из источника.
27 dva1c
 
14.05.12
14:17
(26) Вот теперь яснее. Спасибо! Т.е. я явно проставляю все значения реквизитов приемника?
28 GenV
 
14.05.12
14:25
(27) Да. Или конвертацию значений используй - вторая закладка внизу в ПКО перечисления. Можно вручную задать соответствие значений источника и приемника. Тогда КД сама по значению источника выгрузит его для нужного значения приемника.
29 GenV
 
14.05.12
14:27
28+ это для перечислений, если что. А не для всех случаев жизни )
30 dva1c
 
14.05.12
14:27
(28) Спасибо! Отличная рекомендация!
31 dva1c
 
14.05.12
14:35
(29) Это там, где я обвел на скрине красным?
http://s019.radikal.ru/i603/1205/53/79f73e1fea3c.jpg
32 GenV
 
14.05.12
15:12
(31) Для ПорядокПогашенияСтоимостиОС правило не нужно. Примитивные типы: дата, число, булево конвертируются без правил.
33 GenV
 
14.05.12
15:12
(32+ реквизит НачислятьАмортизациюБУ
34 dva1c
 
14.05.12
15:26
(33) Спасибо за дельные советы!