Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с перебросом данных через объект ComConnector (1с 8.3.1690)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
andrew76
Добрый вечер !

Имеется 2-sql базы.Соединение между базами идет через объект ComConnector.
Соединение происходит нормально.Только при попытке записать данные из табличной части
документа Командировочные из одной базы в другую (в аналогичный Документ Командировочные),
выскакивает ошибка.При просмотре отладчиком выясняется следующее: (таблица источникsmile.gif
ТабличнаяЧасть1 - Значение COMObject
Add - метод не найден.
Count - метод не найден и так далее...
Столбцов ТЧ тоже не видно в отладчике.
Реквизиты же шапки документа читаются нормально.

В чем может быть проблема ?
andrew76
andrew76 @ Вчера, 19:39 необходимо зарегистрироваться для просмотра ссылки ,

В общем у всех документов с ТЧ при попытке чтения данных из этих ТЧ вываливается
следующая ошибка :
Произошла исключительная ситуация (1C:Enterprise 8.3.13.1690): Объект недоступен для изменения.
Реквизиты шапки документов читаются.

Где искать ? Что гонит ? Сервер (Windows Server 2012 Standard x 64) ? Сам компонент COMConnector ?



Vofka
Есть мнение, что пример вашего кода может ускорить ответ.
andrew76
Vofka @ Сегодня, 20:07 необходимо зарегистрироваться для просмотра ссылки ,

Выложил пока скриншоты.Код завтра выложу.
Vofka
Вы пробуете именно метод Add() выполнить? А если Добавить()?
andrew76
Vofka @ Сегодня, 21:12 необходимо зарегистрироваться для просмотра ссылки ,

На методе Добавить и вылетает ошибка:
Произошла исключительная ситуация (1C:Enterprise 8.3.13.1690): Объект недоступен для изменения.
Vofka
Телепатиру, что ИскомыйДокумент у вас - это ссылка. А манипулировать надо объектом:

ИскомыйДокументОбъект = ИскомыйДокумент.ПолучитьОбъект();
Строка = ИскомыйДокументОбъект.ТабличнаяЧасть1.Добавить();
andrew76
Vofka @ Вчера, 22:23 необходимо зарегистрироваться для просмотра ссылки ,
ПолучитьОбъект() - насколько я понимаю,просто открывает объект для записи.
Но в отладчике я же не вижу столбцов ТЧ (скриншот 2).Поэтому и открывать для записи нечего.
Ничего не понимаю.

andrew76 @ Сегодня, 19:12 необходимо зарегистрироваться для просмотра ссылки ,

ИскомыйДокументОбъект = ИскомыйДокумент.ПолучитьОбъект();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.13.1690): Ошибка инициализации модуля: Документ.Командировочные.МодульОбъекта


Предыстория событий :
Одна бухгалтерша,«замриялась», и находясь в этом режиме, удалила документ Командировочные, в ТЧ которого было 400 записей.
После ,выйдя из нирваны, начались вопли и вопросы есть ли в 1с подобие
Корзины для удаленных объектов, как в MS Windows.
Моя задача была в следующем : найти этот документ в архивной базе,и оттуда
Перенести содержимое этого документа в рабочую базу.


Коннектор=Новый COMОбъект("V83.ComConnector");  

ИмяСервера="server";
ИмяБазы="buhg";
Логин="Администратор";
Пасворд="0101";


Попытка
    v8=Коннектор.Connect("Srvr="""+СокрЛП(ИмяСервера)+""";Ref="""+СокрЛП(ИмяБазы)+""";Usr="""+СокрЛП(Логин)+""";Pwd = """ + СокрЛП(Пасворд) + """;");
    сообщить("Соединение установлено !");
Исключение
    Предупреждение("База данных не открыта!!!");
    Возврат;
КонецПопытки;

ссылка_источник=Неопределено;

  Запрос = Новый Запрос;
  Запрос.Текст =
        "ВЫБРАТЬ
        |   Ссылка
        |ИЗ
        |   Документ.Командировочные КАК Командировочные
        |ГДЕ
        |   Дата МЕЖДУ &НачДата И &КонДата И
        |   Номер = &ВыбНомер";

    Запрос.УстановитьПараметр("НачДата", '20201001');
    Запрос.УстановитьПараметр("КонДата", '20201031');
    Запрос.УстановитьПараметр("ВыбНомер", "октяб");

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

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

    Если ВыборкаДокументов.Следующий() Тогда
         ссылка_источник=ВыборкаДокументов.Ссылка;
         Сообщить(ВыборкаДокументов.Ссылка);        
    Иначе
         Сообщить("Документ с таким номером не существует!");
    КонецЕсли;



ВыборкаДокументов = v8.Документы.Командировочные.Выбрать(НачалоГода(ТекущаяДата()), КонецГода(ТекущаяДата()));
Пока ВыборкаДокументов.Следующий() Цикл
    
     Если СокрЛП(ВыборкаДокументов.Номер)="окт1" тогда
          ИскомыйДокумент=ВыборкаДокументов;         
     КонецЕсли;
      
КонецЦикла;


ИскомыйДокументОбъект = ИскомыйДокумент.ПолучитьОбъект();  //вот здесь и начинает гнать
Строка = ИскомыйДокументОбъект.ТабличнаяЧасть1.Добавить()
mut
В архивной базе, в модуле внешнего соединения, можно прописать функцию, которая сделает нужную выборку и вернет структуру с данными, такую процедуру вы можете вызвать через коннектор и получить эти данные. Я так обычно делаю smile.gif
sava1
Цитата(andrew76 @ 19.11.20, 16:40) необходимо зарегистрироваться для просмотра ссылки
Моя задача была в следующем : найти этот документ в архивной базе,и оттуда
Перенести содержимое этого документа в рабочую базу.


А нафига огород городить?
В архиве Выгрузить - в рабочей - Загрузить
Petre
QUOTE (andrew76 @ 19.11.20, 16:40) необходимо зарегистрироваться для просмотра ссылки
ИскомыйДокумент=ВыборкаДокументов;

"Што?" (с)
ИскомыйДокумент = ВыборкаДокументов.Ссылка;
andrew76
Цитата(sava1 @ 19.11.20, 21:15) необходимо зарегистрироваться для просмотра ссылки
В архиве Выгрузить - в рабочей - Загрузить

ради одного документа ?
sava1
Цитата(andrew76 @ 20.11.20, 3:46) необходимо зарегистрироваться для просмотра ссылки
ради одного документа ?


т.е. написать целую обработку - это фигня, а взять готовую "ради одного документа" - это ОФИГЕТЬ ?
Vofka
Цитата(sava1 @ 20.11.20, 8:25) необходимо зарегистрироваться для просмотра ссылки
т.е. написать целую обработку - это фигня, а взять готовую "ради одного документа" - это ОФИГЕТЬ ?

Я бы вообще его распечатал и дал тёте, что бы ввела его руками. 32542460.gif
andrew76
Цитата(Vofka @ 20.11.20, 13:19) необходимо зарегистрироваться для просмотра ссылки
т.е. написать целую обработку - это фигня, а взять готовую "ради одного документа" - это ОФИГЕТЬ ?


В этом уникальном случае,мне лучше было написать коротенькую обработку,потому что с момента
удаления документа прошло несколько дней (женшена хватилась не сразу),другие же бухгалтера
тоже с базой работали.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.