Имя: Пароль:
1C
1С v8
Конвертация УТ 10.3 - БУХ 3: вопрос по обработке переноса документа
0 Saari
 
05.02.19
10:49
Настроен обмен УТ 10.3 - БУХ 3. Переносим документ "Перемещение товаров" из УТ в БУХ.
Завели новый документ в УТ. В таб. части документа 2 строки с номенклатурой, причем одна строка с ранее созданной номенклатурой, а другая строка с только что созданной номенклатурой в УТ, но еще не перешедшей в БУХ.
При переносе документа в БУХ идет заполнение счетов учета (в обработчике событий "После загрузки" документа).
В БУХ счета учета номенклатуры настроены на папку (группу, родитель) справочника "Номенклатура".
Счета учета для уже имеющейся номенклатуры заполняются правильно. А вот для только что созданной номенклатуры заполняются не правильно, т.е. берутся не те счета, которые прописаны на папке (группе, родителе) номенклатуры.
Но если еще раз перенести документ, то счета установятся правильные.
Чувствую, что что-то с порядком записи новых объектов в базу БУХ. Но понять где именно не могу.
Помогите, пожалуйста.
1 wowik
 
05.02.19
10:57
попробуйте отладчиком пройти.
2 wowik
 
05.02.19
10:58
может где-то влияет еще флажок "Не запоминать выгруженные объекты".
3 Saari
 
05.02.19
11:03
(2) в документе и справочнике этот флажок снят.
4 OldCondom
 
05.02.19
11:26
А какие счета ставятся ошибочно? Те, на которые родитель вообще не указан?
5 OldCondom
 
05.02.19
11:29
Ради интереса можно в "ПослеЗаписи" сделать Объект.Записать() и запустить следом заполнение счетов.
Раз отладчиком не пользуешься, в той же ПослеЗаписи выводи сообщить(КакаяТоФункцияИЗОбщегоМодуляСоСчетамУчетаТовара) для этой номенклатуры.
6 Saari
 
05.02.19
11:30
(4) на родителя настроен счет 10.06. А на остальные, не принадлежащие этому родителю - 41.01.
В документе у новой номенклатуры ставятся счета 41.01, а у уже имеющихся номенклатур - 10.06 (счет родителя).

Выгрузил из УТ в файл обмена. В файле обмена сначала идет строка:
<Объект Нпп="1" Тип="ДокументСсылка.ПеремещениеТоваров" ИмяПравила="ПеремещениеТоваров">
затем строка:
<Объект Нпп="12" Тип="СправочникСсылка.Номенклатура" ИмяПравила="Номенклатура">
7 Saari
 
05.02.19
11:36
(5) в обработке события "ПослеЗагрузки" написано:
Документы.ПеремещениеТоваров.ЗаполнитьСчетаУчетаВТабличнойЧасти(Объект, "Товары");
ПослеЗаписи - это же в модуле документа в БУХ.
8 Saari
 
05.02.19
11:53
УРА! Получилось!
9 Saari
 
05.02.19
11:55
В документе в обработчике "После загрузки" написал:
Если Объект.ЭтоНовый() Тогда
    Параметры.ДокументыСОпределениемДопРеквизитов.Добавить(Объект.ПолучитьСсылкуНового());
Иначе
    Параметры.ДокументыСОпределениемДопРеквизитов.Добавить(Объект.Ссылка);
КонецЕсли;

Убрал строку: Документы.ПеремещениеТоваров.ЗаполнитьСчетаУчетаВТабличнойЧасти(Объект, "Товары");

В самой конвертации в обработчике "После загрузки данных" дополнил записью:


Если ТипОбъекта = Тип("ДокументСсылка.ПеремещениеТоваров") Тогда РежимЗаписи = РежимЗаписиДокумента.Запись;
        ДокументОбъектСОпределениемДопРеквизитов.ДополнительныеСвойства.Вставить("ЗаполнитьСчетаУчетаПередЗаписью", Истина);
            СчетаУчетаВДокументах.ЗаполнитьПередЗаписью(ДокументОбъектСОпределениемДопРеквизитов, РежимЗаписи);
            КонецЕсли;
10 OldCondom
 
05.02.19
12:04
А записать документ не проще было?
11 Saari
 
05.02.19
13:08
(10) Каким образом?