Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 13:37

Выгрузка Документа из Бухгалтерии в Экологию

Автор Vasylii, 10 ноя 2022, 12:36

0 Пользователей и 1 гость просматривают эту тему.

Vasylii

Есть такая причуда выбивает ошибку поле объекта КодБухгалтерии не обнаружен в экологии есть такой реквизит строковый 150 символом выбивает не на всех контрагентах так

//ВнешнееСоединение.NewObject("Запрос");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.ИНН = &ИНН
| И Контрагенты.КПП = &КПП";

Запрос.УстановитьПараметр("ИНН", Контрагент.ИНН);
Запрос.УстановитьПараметр("КПП", Контрагент.КПП);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Если ВыборкаДетальныеЗаписи.Количество() = 1 тогда

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ИскомыйКонтрагент = ВыборкаДетальныеЗаписи.Ссылка;
КонецЦикла;

ИначеЕсли  ВыборкаДетальныеЗаписи.Количество() > 1 тогда
ИскомыйКонтрагент = Подключение.Справочники.Контрагенты.НайтиПоРеквизиту("Систем_КодБухгалтерии", Контрагент.Код);
КонецЕсли;


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

Если ПолучениеСсылки тогда
Возврат ИскомыйКонтрагент;
КонецЕсли;

НачатьТранзакцию();

ИскомыйКонтрагент.Систем_КодБухгалтерии = Контрагент.Код;
ИскомыйКонтрагент.Наименование          = Контрагент.Наименование;;
ИскомыйКонтрагент.ИНН                   = Контрагент.ИНН;
ИскомыйКонтрагент.КПП                   = Контрагент.КПП;
ИскомыйКонтрагент.НаименованиеПолное    = Контрагент.НаименованиеПолное;
ИскомыйКонтрагент.СтатусКонтрагента     = Подключение.Перечисления.СтатусКонтрагента.Резидент;
ИскомыйКонтрагент.ОГРН                  = Контрагент.РегистрационныйНомер;
ИскомыйКонтрагент.ТипКонтрагента        = Подключение.Перечисления.ТипыКонтрагента.Прочие;



Если Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо тогда
ИскомыйКонтрагент.ЮрФизЛицо           = Подключение.Перечисления.ЮрФизЛицо.ЮрЛицо;
Иначе
ИскомыйКонтрагент.ЮрФизЛицо           = Подключение.Перечисления.ЮрФизЛицо.ИП;
КонецЕсли;

    Попытка
ИскомыйКонтрагент.Записать();
        ЗафиксироватьТранзакцию();

Возврат ИскомыйКонтрагент.Ссылка;
    Исключение
        ОтменитьТранзакцию();

Возврат Неопределено;
КонецПопытки;

Vasylii

P.S а если быть точнее почему то на организациях так а почему не знаю

NaumovAlexey

так тип объекта другой, не ходи к гадалке, и в нем нет реквизита такого

antoneus

Я не понял - запрос в текущей базе выполняется или в подключении?

Vasylii

NaumovAlexey, а почему другой можно поподробней?

Vasylii


NaumovAlexey


Vasylii

NaumovAlexey, нет код передается нормально смотрел через отладку

antoneus

Так. Значит, если в текущей базе запросом находится контрагент с заданным ИНН и КПП - то его мы пытаемся перезаписать и установить значение реквизита Систем_КодБухгалтерии.

Если ВыборкаДетальныеЗаписи.Количество() = 1 тогда
       
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            ИскомыйКонтрагент = ВыборкаДетальныеЗаписи.Ссылка;
        КонецЦикла;

....

ИскомыйКонтрагент.Систем_КодБухгалтерии = Контрагент.Код;

А если такого контрагента в текущей базе нет - мы его ищем в подключении и создаем/перезаписываем там? Все правильно?

Vasylii

antoneus, да если есть он записывается в другой базе

Похожие темы (5)

Рейтинг@Mail.ru

Поиск