Имя: Пароль:
1C
1С v8
Перенос проводок с помощью КД2
0 zippygrill
 
13.01.21
12:29
Всем привет!
Переношу проводки по правилам КД2 и столкнулся с непонятной для меня ситуацией.
Допустим переношу запись проводки из БП3 в ЕРП3, где счетКТ - 41.02.

В БП, он имеет 3 субконто - Партия, в ЕРП - нет 3го субконто.
В правилах обмена, в ПослеЗАгрузки написан такой код, а ля типовые. Те, если в приемнике, в ВидыхСубконто счета нет такого вида, тогда остается не заполненым.

Прикол в том что, если выгрузить проводки одного документа через УниверсальныйОбменДанными и загрузить в приемнике, то вид субконто действительно не находится, что так и должно быть.
Но если регистрирую на узле, этот же документ, потом выгружаю штатным механизмом, и загружаю также штатным механизмом Синхронизовать - то получаю ошибку о том что запись не верна, субконто не может быть использован.
И ошибка именно о том что данное субконто ДОЛЖНО быть пустое.

НаборДвижений = Объект.Движения.Хозрасчетный;
ТаблицаДвижений = НаборДвижений.Выгрузить();
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Объект.Ссылка);

Для Каждого ТекущаяСтрока Из ТаблицаДвижений Цикл
    Движение = НаборЗаписей.Добавить();
    ЗаполнитьЗначенияСвойств(Движение,ТекущаяСтрока);
    Движение.Регистратор = Объект.Ссылка;
    
    ..................................

    Если ЗначениеЗаполнено(ТекущаяСтрока.ВидСубконтоКт3) И ЗначениеЗаполнено(ТекущаяСтрока.СубконтоКт3)
        И ТекущаяСтрока.СчетКт.ВидыСубконто.Найти(ТекущаяСтрока.ВидСубконтоКт3) <> Неопределено Тогда
        Движение.СубконтоКт[ТекущаяСтрока.ВидСубконтоКт3] = ТекущаяСтрока.СубконтоКт3;
    КонецЕсли;
КонецЦикла;
ПОпытка
    НаборЗаписей.Записать(Истина);
Исключение
КОнецПопытки;
1 zippygrill
 
13.01.21
12:37
Что то мне подсказывает что надо сперва записать пустой наборЗаписей (предварительно сохранив в переменную), а потом добавлять..
2 Жан Пердежон
 
13.01.21
12:39
эм,
>> в ЕРП - нет 3го субконто
>> ошибка именно о том что данное субконто ДОЛЖНО быть пустое
3 zippygrill
 
13.01.21
12:47
(2) ну да
ПО кнопке Синхронизировать алгоритм пытается запихнуть Партию в 3й субконто, когда там должно быть Неопределено.
4 Жан Пердежон
 
13.01.21
12:49
попробуй
ЗаполнитьЗначенияСвойств(Движение,ТекущаяСтрока,,"СубконтоДт, СубконтоКт");
5 zippygrill
 
13.01.21
12:53
(4) ТЕ кроме этих реквзиитов..сейчас
6 zippygrill
 
13.01.21
14:00
не помогло
7 zippygrill
 
13.01.21
14:01
Вот так сделал, но не помогло

    Движение.СубконтоДт.Очистить();
    Движение.СубконтоКт.Очистить();
8 zippygrill
 
13.01.21
14:19
Попробую перед сохранением самого документа регистратор, очистить проводки

НаборДвижений = Объект.Движения.Хозрасчетный;
ТаблицаДвижений = НаборДвижений.Выгрузить();

ТаблицаДвиженийПустая = ТаблицаДвижений;
ТаблицаДвиженийПустая.Очистить();

Объект.Движения.Хозрасчетный.Загрузить(ТаблицаДвиженийПустая);
Объект.Записать();
9 DrShad
 
13.01.21
14:27
не понятно нафейхоа в таком раскладе тянуть проводки?
но на всякий схожу за попкорном ибо непонятно чем пустой набор поможет горю
10 zippygrill
 
13.01.21
16:45
Помогло очистка движений перед записью самого Документа
Программист всегда исправляет последнюю ошибку.