Имя: Пароль:
1C
1C 7.7
v7: конвертация реквизита из шапки в табличную часть
0 Soul771
 
31.01.14
00:14
Доброго времени суток.

Переношу данные из ПУБ 7, ред. 2.8 в УНФ 8, использую КД.
В 7 документ ВыпускПродукцииРазделка, у него реквизиты Материал, КоличествоМатериалов. Переношу в 8 документ СборкаЗапасов , нужно, чтобы эти реквизиты(Материал и КоличествоМатериалов) попали в табличную часть Продукция, в Номенклатура и Количество соответственно.

Создала ПКО, в ПКС создала группу с пустым источником, приемником указала Продукция. Поставила галочку "Получить из входящих данных".Внутри группы создала 2 реквизита с пустыми источниками, галочки не ставила.
В ПКГС в перед обработкой прописала:

КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
КоллекцияОбъектов.НоваяКолонка("Количество");
КоллекцияОбъектов.НоваяКолонка("Номенклатура");
КоллекцияОбъектов.НоваяСтрока();
КоллекцияОбъектов.Количество=Источник.КоличествоМатериалов;
КоллекцияОбъектов.Номенклатура=Источник.Материал;

Сохранила, пытаюсь выгрузить данные из 7, ругается:
"Функция не обнаружена(ПКГС_ПередОбработкойВыгрузки_ВыпускПродукцииРазделка_Продукция_ТабличнаяЧасть17)
Ошибка выбора объектов коллекции"

Подскажите, пожалуйста, что не так делаю.. Пробовала переносить только количество, результат тот же. Замучалась уже, в конвертации новичок, куда копать?...
1 m-serg74
 
31.01.14
00:22
(0) модуль то в обработке меняла?
2 Soul771
 
31.01.14
00:27
Пропустила букву, пишу еще раз, чтобы не запутать..
В 7 документ ВыпускПродукцииРазделка надо перенести в 8 в документ СборкаЗапасов.
У шапки документа ВыпускПродукцииРазделка есть реквизиты Материал, КоличествоМатериалов. У документа СборкаЗапасов есть табличная часть Продукция с реквизитами Номенклатура, Количество.
Нужно перегрузить из ВыпускПродукцииРазделка.Материал->
СборкаЗапасов.Продукция.Номенклатура
и из ВыпускПродукцииРазделка.КоличествоМатериалов->СборкаЗапасов.Продукция.Количество
3 Soul771
 
31.01.14
00:27
про модуль уже встречала, но как поменять не знаю((( подскажите, пожалуйста..
4 Soul771
 
31.01.14
00:30
(1) это моя первая конверташка, не кидайтесь тапками, если туплю))) help..
5 m-serg74
 
31.01.14
00:30
(3) когда жмешь сохранить правила где то галка есть Выгружать модуль обработки, потом берешь 7шную обработку открываешь в конфигураторе и весь текст меняешь на то что выгрузилось
6 m-serg74
 
31.01.14
00:32
или я делаю, сразу в начале кода обработки пишу #ЗагрузитьИзФайла Модуль.txt
и сохраняю соответственно в файл с таким названием, главное не забывать обработку переоткрывать после сохранения Правил+Модуль
7 Soul771
 
31.01.14
00:50
m-serg74, большое ,большое спасибо! сделала, как вы написали, все выгрузилось и загрузилось. Ура :-)
8 m-serg74
 
31.01.14
00:50
(7) пжл :)
9 Soul771
 
31.01.14
01:14
После переноса и Номенклатура, и Количество отобразились в документе, но документ не проводится, выдает ошибку "Преобразование значения к типу Число не может быть выполнено". Подозреваю, что это связано с тем, что в ПКС, внутри группы, у реквизита Количество тип источника не указан.. Если в перенесенном документе удалить строку с номенклатурой и количеством и выбрать их же вручную, документ проводится без ошибок. В конвертации для Номенклатуры я указала правило переноса, а как быть с Количеством? Тип приемника у него - число.
10 m-serg74
 
31.01.14
08:44
(9) /Преобразование значения к типу Число не может быть выполнено/

Отладчик на проведение и смотреть на какое именно значение ругается, а не угадывать...
11 Godofsin
 
31.01.14
08:56
Коэффициент мб
12 m-serg74
 
31.01.14
08:58
(11) кстати вполне может быть, но чем гадать быстрее посмотреть
13 Soul771
 
31.01.14
12:36
Ругается...
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.СборкаЗапасов.МодульМенеджера(273)}: Преобразование значения к типу Число не может быть выполнено
        СтрокаРапределения.Количество = Окр((КоличествоКСписанию - ИсхКоличество) * СтрокаМатериалы.ДоляСтоимости / ?(БазаРаспределенияКоличество = 0, 1, БазаРаспределенияКоличество),3,1);

Смотрю в табло,СтрокаРапределения.Количество имеет null, насколько я понимаю, в это поле попадает переносимое значение КоличествоМатериалов..

И вот еще проблема, не знаю, связаны ли они, может, кто-то сталкивался.. Другие документы проводятся, но в движения попадает количество не по всем товарам. Контроль остатков отключен, карточки номенклатуры на вид абсолютно идентичны, не могу понять, что же я не так сделала, в конвертации ли вообще дело...
14 Soul771
 
31.01.14
12:38
Другие документы - я имела ввиду перемещения, реализация, их тоже переносила через конвертацию, только в них реквизит количество из табличной части в табличную переносится.
15 Soul771
 
31.01.14
12:44
И еще один вопросик) чтобы уж сразу, набраться уму-разуму)) Если часть реквизитов табличной части в документе-приемнике должны заполнится соответствующими реквизитами  ТЧ  документа-источника, а один из реквизитов ТЧ в приемнике заполняется реквизитом из шапки источника, как сделать, чтобы при конвертации все реквизиты ТЧ заполнялись? По отдельности это работает, а вместе нет. Т.е. либо переносятся реквизиты ТЧ источник-ТЧ приемник, а реквизит ТЧ приемника, который должен браться из шапки источника, остается незаполненным, либо наоборот. Экспериментировала с галочками "не замещать значение свойства у существующих объектов в приенике", не помогло..Подскажите, пожалуйста..
16 m-serg74
 
31.01.14
12:48
(15) сделай вообще перед выгрузкой документа заполнение таблицы значений данными из ТЧ документа в 7ке, добавь колонку в которой будет значение из шапки, заполни всю ее этим значением и напиши ВыгрузитьПоПравилу(.......  ну и т.д. в в ПКСах поставь получать данные из входящих...
17 Soul771
 
31.01.14
13:35
(16) Т.е. в ПКО переносимого документа я пишу в перед выгрузкой
КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
КоллекцияОбъектов.НоваяКолонка("КоличествоПродукции");
КоллекцияОбъектов.НоваяКолонка("Элемент");
КоллекцияОбъектов.НоваяКолонка("Норма");
КоллекцияОбъектов.НоваяСтрока();
КоллекцияОбъектов.КоличествоПродукции=Источник.Количество;
КоллекцияОбъектов.Элемент=Источник.Состав.Номенклатура;
КоллекцияОбъектов.Норма=Источник.Состав.Количество;

У переносимого документа есть реквизиты в ТЧ КоличествоПродукции, Элемент, Норма. В приемнике в ТЧ Состав есть реквизиты Номенклатура, Количество, и в шапке реквизит Количество... Что-то не нравится мне код.. недопонимаю....
18 m-serg74
 
31.01.14
14:38
(17) /В приемнике в ТЧ Состав есть реквизиты Номенклатура, Количество, и в шапке реквизит Количество/

это все проприемник?
19 Soul771
 
31.01.14
15:03
(18)Ой, напутала я....В источнике есть шапка и табличная часть. В шапке реквизит Количество, в ТЧ реквизиты Элемент, Норма. В приемнике есть ТЧ Состав с реквизитами КоличествоПродукции, Номенклатура, Количество. И надо сопоставить:
Источник.Количество -> Приемник.Состав.КоличествоПродукции
Источник.Элемент -> Приемник.Состав.Номенклатура
Источник.Норма ->Приемник.Состав.Количество

Тогда бы надо написать:
КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
КоллекцияОбъектов.НоваяКолонка("КоличествоПродукции");
КоллекцияОбъектов.НоваяКолонка("Элемент");
КоллекцияОбъектов.НоваяКолонка("Норма");
КоллекцияОбъектов.НоваяСтрока();
КоллекцияОбъектов.КоличествоПродукции=Источник.Количество;
КоллекцияОбъектов.Элемент=Источник.Номенклатура;
КоллекцияОбъектов.Норма=Источник.Количество;

Только поймет ли конвертация, из какой строки ТЧ источника брать Номенклатуру и Количество, т.е. пойдет ли выгрузка-загрузка построково, или это надо как-то прописать циклом?....
В источнике в ТЧ и в примнике в ТЧ есть еще и реквизит с типом перечисление, для которого я прописывала соответствие в конвертации значений. Как его запихать в данном случае совсем не представляю, но пока хотя бы без него разобраться..
20 m-serg74
 
31.01.14
15:04
нет надо создавать ТЗ с такой структурой как в приемнике
21 m-serg74
 
31.01.14
15:07
КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
КоллекцияОбъектов.НоваяКолонка("КоличествоПродукции");
КоллекцияОбъектов.НоваяКолонка("Номенклатура");
КоллекцияОбъектов.НоваяКолонка("Количество");
Источник.ВыбратьСтроки();
Пока Источник.ПолучитьСтроку() = 1 Цикл
    КоллекцияОбъектов.НоваяСтрока();
    КоллекцияОбъектов.КоличествоПродукции=Источник.Количество;
    КоллекцияОбъектов.Номенклатура=Источник.Элемент;
    КоллекцияОбъектов.Количество=Источник.Норма;
КонецЦикла;
22 m-serg74
 
31.01.14
15:07
типа такого что то
23 Soul771
 
31.01.14
15:08
Блин :-) я что-то совсем как во сне пишу.... Третий день уже сижу над несколькими документами и поля плывут) спасибо большое!
24 m-serg74
 
31.01.14
15:09
носите на здоровье :)
25 Soul771
 
31.01.14
15:12
:-) Тыкните носом еще, пожалуйста, ВыгрузитьПоПравилу - это в ПВД указать для выгрузки этого документа, где способ выборки, заменить "стандартная выборка" на "произвольный алгоритм"?
26 m-serg74
 
31.01.14
15:16
(25) смотря что делаешь если так как в (21) то не надо ВыгрузитьПоПравилу, просто ТЧ Источника пустую оставь и все, а в обработчик ПередОбработкой этот код, а спсоб выборки вообще к этому не имеет отношения
27 m-serg74
 
31.01.14
15:17
(25) а тим вивера нету, что то сбила с толку и я фигню уже какую то понес... и там и там есть ТЧ значит вообще никакие Коллекции не надо формировать
28 m-serg74
 
31.01.14
15:20
просто сопоставить
Источник.Элемент - Применик.Номенклатура
Источник.Норма - Применик.Количество
Пусто - Применик.КоличествоПродукции, и перед выгрузкой в последнем
Значение = Источник.Количество
29 Soul771
 
31.01.14
15:22
(27) тимик есть :-)
(28) сейчас попробую, напишу о результатах) спасибо!!
30 m-serg74
 
31.01.14
15:29
31 Soul771
 
31.01.14
15:36
Все получилось очень хорошо :-) Даже перечисления перенеслись и не пришлось с ними возиться)
А галочку "получить из входящих данных " не нужно ставить у реквизита, который из шапки переносится?
32 Soul771
 
31.01.14
15:41
на скрине увидела, что галочки нет, а я поставила и тоже перенеслось) вот стало интересно, когда ее ставить, когда не надо)
33 m-serg74
 
31.01.14
15:49
(31) нет
34 m-serg74
 
31.01.14
15:50
(32) ставить надо когда брать неоткуда и значения есть только в ВходящиеДанные
35 m-serg74
 
31.01.14
15:51
(32) прямое присвоение Значение = ... заменяет в большем приоритете все что прилетело до этого
36 Soul771
 
31.01.14
15:55
(34)(35) поняла, спасибо.
От всей души благодарю вас за помощь :-) хороших выходных!:-)
37 m-serg74
 
31.01.14
15:57
(36) и Вам того же
38 Soul771
 
31.01.14
15:59
:-)благодаря вам это осуществится)))))
39 m-serg74
 
31.01.14
16:02
обращайтесь, чем смогу...
40 Soul771
 
31.01.14
16:21
:-) можно еще один вопрос)) проблема обнаружилась большая... во всех документах, которые бы я не переносила, 8-ка как будто бы не видит количество... и в источнике и в приемнике количество - это реквизит ТЧ, переношу как число-число, без какого-либо правила. в 8-ке количество в ТЧ отображается, но при перепроведении документа по регистрам количество не проходит.. может, это как-то связано с представлением числа в 7 и в 8? Длина и точность совпадает, если в конфигураторе смотреть у свойства реквизита. А в пользовательском режиме в 8 будет так: 1 150,50  , а в 7 то же самое число: 1,150.50
Раньше с таким не сталкивалась, влияет ли это на что-то и где еще посмотреть, что может не так быть?....
41 m-serg74
 
31.01.14
16:27
(40) консоль запросов есть?
42 Soul771
 
31.01.14
16:35
(41) теперь есть)
43 m-serg74
 
31.01.14
16:37
(42) сразу после переноса в ней посмотри что куда в документах перенеслось
44 m-serg74
 
31.01.14
16:44
так долго отвечаешь что можно уснуть :)
45 Soul771
 
31.01.14
16:54
:-) вроде вижу нормальные данные.. в количестве - числа, в таком же представлении, как и в документах
46 m-serg74
 
31.01.14
16:57
(45) может уже тим вивер и по домам :)
47 Soul771
 
31.01.14
17:08
сейчас запущу)пароли в личку пришлю)
48 Soul771
 
31.01.14
17:11
постучалась в асю)