Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Проблема с перебросом данных через объект ComConnector (1с 8.3.1690)          
andrew76 Подменю пользователя
сообщение 17.11.20, 16:39
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Добрый вечер !

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

В чем может быть проблема ?

andrew76 Подменю пользователя
сообщение 18.11.20, 17:02
Сообщение #2

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

andrew76 @ Вчера, 19:39 * ,

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

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





Сообщение отредактировал Vofka - 18.11.20, 17:07

Vofka Подменю пользователя
сообщение 18.11.20, 17:07
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Есть мнение, что пример вашего кода может ускорить ответ.

Спасибо сказали: Petre,

andrew76 Подменю пользователя
сообщение 18.11.20, 17:13
Сообщение #4

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Vofka @ Сегодня, 20:07 * ,

Выложил пока скриншоты.Код завтра выложу.

Vofka Подменю пользователя
сообщение 18.11.20, 18:12
Сообщение #5

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Вы пробуете именно метод Add() выполнить? А если Добавить()?

andrew76 Подменю пользователя
сообщение 18.11.20, 18:20
Сообщение #6

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Vofka @ Сегодня, 21:12 * ,

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

Vofka Подменю пользователя
сообщение 18.11.20, 19:23
Сообщение #7

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Телепатиру, что ИскомыйДокумент у вас - это ссылка. А манипулировать надо объектом:

ИскомыйДокументОбъект = ИскомыйДокумент.ПолучитьОбъект();
Строка = ИскомыйДокументОбъект.ТабличнаяЧасть1.Добавить();

Спасибо сказали: andrew76,

andrew76 Подменю пользователя
сообщение 19.11.20, 16:40
Сообщение #8

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

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 Подменю пользователя
сообщение 19.11.20, 17:45
Сообщение #9

Завсегдатай
****
Группа: Пользователи
Сообщений: 199
Из: Новая Каховка
Спасибо сказали: 203 раз
Рейтинг: 237.5

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

Спасибо сказали: andrew76,

sava1 Подменю пользователя
сообщение 19.11.20, 18:15
Сообщение #10

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(andrew76 @ 19.11.20, 16:40) *
Моя задача была в следующем : найти этот документ в архивной базе,и оттуда
Перенести содержимое этого документа в рабочую базу.


А нафига огород городить?
В архиве Выгрузить - в рабочей - Загрузить

Petre Подменю пользователя
сообщение 19.11.20, 20:49
Сообщение #11

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

QUOTE (andrew76 @ 19.11.20, 16:40) *
ИскомыйДокумент=ВыборкаДокументов;

"Што?" (с)
ИскомыйДокумент = ВыборкаДокументов.Ссылка;


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Спасибо сказали: andrew76,

andrew76 Подменю пользователя
сообщение 20.11.20, 3:46
Сообщение #12

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Цитата(sava1 @ 19.11.20, 21:15) *
В архиве Выгрузить - в рабочей - Загрузить

ради одного документа ?

sava1 Подменю пользователя
сообщение 20.11.20, 8:25
Сообщение #13

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(andrew76 @ 20.11.20, 3:46) *
ради одного документа ?


т.е. написать целую обработку - это фигня, а взять готовую "ради одного документа" - это ОФИГЕТЬ ?

Спасибо сказали: andrew76,

Vofka Подменю пользователя
сообщение 20.11.20, 10:19
Сообщение #14

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

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

Я бы вообще его распечатал и дал тёте, что бы ввела его руками. 32542460.gif

Спасибо сказали: andrew76,

andrew76 Подменю пользователя
сообщение 20.11.20, 16:18
Сообщение #15

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

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


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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 10:31
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!