powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / 8.2 подключение через OLE
25 сообщений из 31, страница 1 из 2
8.2 подключение через OLE
    #37457092
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Прошу помощи!
Надо подключится из 1С 8.2 к другой базе 8.2 и перенести оттуда документ. Вот код:

trade = Новый COMобъект("V82.Application");
Попытка
trade.Connect("File=""Z:\Бух_Регион"";Usr=""User"";Pwd=""par"";");
сообщить("Получилось");
Исключение
сообщить("база не открыта");
Возврат;
КонецПопытки;

ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ;
ДокументУстановка.НайтиПоНомеру("00000000001",НачалоДня("01.08.2011"),КонецДня("01.08.2011"));

Подключение проходит успешно, а вот на последней строке программа виснет ..... в чем может быть проблема?
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457126
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lana_SVДобрый день!
Прошу помощи!
Надо подключится из 1С 8.2 к другой базе 8.2 и перенести оттуда документ. Вот код:

trade = Новый COMобъект("V82.Application");
Попытка
trade.Connect("File=""Z:\Бух_Регион"";Usr=""User"";Pwd=""par"";");
сообщить("Получилось");
Исключение
сообщить("база не открыта");
Возврат;
КонецПопытки;

ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ;
ДокументУстановка.НайтиПоНомеру("00000000001",НачалоДня("01.08.2011"),КонецДня("01.08.2011"));

Подключение проходит успешно, а вот на последней строке программа виснет ..... в чем может быть проблема?
отладчик смотрела? что пишет?
НайтиПоНомеру(<Номер документа>, <Дата интервала>) -дата одна
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457139
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lana_SVtrade = Новый COMобъект("V82.Application");

V82.COMConnector

Application здесь ни к месту
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457206
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zerro,
Отладчик ничего не пишет, просто висит на этом месте
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457213
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zerro,
Пробовала, вообще без дат, и просто ДокументУстановка.ВыбратьДокументы(), результат такой же, ошибку никакую не выдает, просто висит ...
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457215
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lana_SVZerro,
Отладчик ничего не пишет, просто висит на этом месте
остановись перед этой строкой и в отладчике эту команду выполни. Дату одну сделали? дата должна быт ьв периоде нумерации документа и все.
Ну и у себя глянул да
Сом = Новый COMОбъект("V82.COMConnector");
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457242
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZerroLana_SVZerro,
Отладчик ничего не пишет, просто висит на этом месте
остановись перед этой строкой и в отладчике эту команду выполни. Дату одну сделали? дата должна быт ьв периоде нумерации документа и все.
Ну и у себя глянул да
Сом = Новый COMОбъект("V82.COMConnector");

Заменила
строку Сом = Новый COMОбъект("V82.Application")
на:
Сом = Новый COMОбъект("V82.COMConnector")
Теперь ругается в строке:
ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ;

{Форма.Форма.Форма(51)}: Поле объекта не обнаружено (Документы)
ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ;
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457268
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trade = Новый COMОбъект("V82.COMConnector")
Теперь ругается в строке:
ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ;

{Форма.Форма.Форма(51)}: Поле объекта не обнаружено (Документы)
ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457279
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zerro trade = Новый COMОбъект("V82.COMConnector")
Теперь ругается в строке:
ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ;

{Форма.Форма.Форма(51)}: Поле объекта не обнаружено (Документы)
ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры

В программе я конечно написала trade= Новый COMОбъект("V82.COMConnector"), это в форуме ошиблась
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457292
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lana_SV,

неправильный код подключения. Два разных объекта требуется использовать - один для подключения, другой для работы:

db = Новый COMобъект("V82.ComConnector");
Попытка
trade = db.Connect("File=""Z:\Бух_Регион"";Usr=""User"";Pwd=""par"";");
сообщить("Получилось");
Исключение
сообщить("база не открыта");
Возврат;
КонецПопытки;

ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ;
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457294
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zerro,
В общем пока получилось вот так:

trade = Новый COMобъект("V82.Application");
Попытка
trade.Connect("File=""Z:\Бух_Регион"";Usr=""User"";Pwd=""par"";");
сообщить("Получилось");
Исключение
сообщить("база не открыта");
Возврат;
КонецПопытки;

ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ;
Если ДокументУстановка.НайтиПономеру("1") = Неопределено Тогда
Возврат;
КонецЕсли;
ДокументУстановка.ВыбратьСтроки();

Ругается на ДокументУстановка.ВыбратьСтроки(), говорит метод объекта не обнаружен, оно и понятно, команда из 1С 7.7, подскажите как считать информацию из документа построчно?
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457306
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pailLana_SV,

неправильный код подключения. Два разных объекта требуется использовать - один для подключения, другой для работы:

db = Новый COMобъект("V82.ComConnector");
Попытка
trade = db.Connect("File=""Z:\Бух_Регион"";Usr=""User"";Pwd=""par"";");
сообщить("Получилось");
Исключение
сообщить("база не открыта");
Возврат;
КонецПопытки;

ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ;

Поняла, исправила код, заработало! Только остался актуальным вопрос о том как считать документ построчно?
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457309
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lana_SVZerro,
В общем пока получилось вот так:

trade = Новый COMобъект("V82.Application");
Попытка
trade.Connect("File=""Z:\Бух_Регион"";Usr=""User"";Pwd=""par"";");
сообщить("Получилось");
Исключение
сообщить("база не открыта");
Возврат;
КонецПопытки;

ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ;
Если ДокументУстановка.НайтиПономеру("1") = Неопределено Тогда
Возврат;
КонецЕсли;
ДокументУстановка.ВыбратьСтроки();


Ругается на ДокументУстановка.ВыбратьСтроки(), говорит метод объекта не обнаружен, оно и понятно, команда из 1С 7.7, подскажите как считать информацию из документа построчно?
i Как перебрать строки документа?

Для Каждого ТекущаяСтрока Из ДокументУстановка. Товары Цикл

// Действия со строкой табличной части.

КонецЦикла;

или
СтаршийИндекс = ДокументУстановка.Товары.Количество() - 1;
Для Сч = 0 по СтаршийИндекс Цикл

// Действия со строкой табличной части.

КонецЦикла;

i Как выгрузить
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457315
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zerro, pail,
Поняла! Большое спасибо за ликбез!!!
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457324
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lana_SVРугается на ДокументУстановка.ВыбратьСтроки(), говорит метод объекта не обнаружен, оно и понятно, команда из 1С 7.7, подскажите как считать информацию из документа построчно?

Смотря зачем нужны данные документа. Если их требуется просто читать - тогда в 8ке принято пользоваться запросом, которым и достаются все нужные данные, и номер документа может быть параметром запроса, а обращение к данным через объектную модель не требуется.
Если же требуется изменить данные, то по найденной ссылке надо получить объект, и уже с ним работать:

ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ;
Если ДокументУстановка.НайтиПономеру("1") = Неопределено Тогда
Возврат;
КонецЕсли;

ДокументОбъект=ДокументУстановка.ПолучитьОбъект();
Для каждого стр из ДокументОбъект цикл
стр.Цена=........

конецЦикла;
ДокументОбъект.Записать(режимЗаписиДокумента.Запись);
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457356
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pail,

Требуется только считать данные. Т.е. перенести документ из подключаемой базы. Наверно в таком случае будет правильно пользоваться запросом
Пишу так:

db = Новый COMобъект("V82.COMConnector");
//tade = Новый COMобъект("V82.Application");
Попытка
trade = db.Connect("File=""Z:\Бух_"";Usr=""User"";Pwd=""par"";");
сообщить("Получилось");
Исключение
сообщить("база не открыта");
Возврат;
КонецПопытки;

Запрос = trade.NewObject("Запрос");
Запрос.Текст =
"ВЫБРАТЬ
| УстановкаЦен.ТипЦен,
| УстановкаЦен.Номенклатура,
| УстановкаЦен.Цена,
| УстановкаЦен.Валюта,
|ИЗ
| Документы.УстановкаЦенНоменклатуры КАК УстановкаЦен
|ГДЕ
| УстановкаЦен.Дата = Дат";

Результат = Запрос.Выполнить();
и получаю ошибку
{Форма.Форма.Форма(71)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
Произошла исключительная ситуация: {(6, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457362
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lana_SVpail,

Требуется только считать данные. Т.е. перенести документ из подключаемой базы. Наверно в таком случае будет правильно пользоваться запросом
Пишу так:

db = Новый COMобъект("V82.COMConnector");
//tade = Новый COMобъект("V82.Application");
Попытка
trade = db.Connect("File=""Z:\Бух_"";Usr=""User"";Pwd=""par"";");
сообщить("Получилось");
Исключение
сообщить("база не открыта");
Возврат;
КонецПопытки;

Запрос = trade.NewObject("Запрос");
Запрос.Текст =
"ВЫБРАТЬ
| УстановкаЦен.ТипЦен,
| УстановкаЦен.Номенклатура,
| УстановкаЦен.Цена,
| УстановкаЦен.Валюта,
|ИЗ
| Документы.УстановкаЦенНоменклатуры КАК УстановкаЦен
|ГДЕ
| УстановкаЦен.Дата = Дат";

Результат = Запрос.Выполнить();
и получаю ошибку
{Форма.Форма.Форма(71)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
Произошла исключительная ситуация: {(6, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ
| УстановкаЦен.Валюта
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457364
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
без запятой
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457366
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zerro,
Исправила! Теперь другая напасть )))

{Форма.Форма.Форма(55)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить().Выбрать();
по причине:
Произошла исключительная ситуация: {(7, 2)}: Таблица не найдена "Документы.УстановкаЦенНоменклатуры"
<<?>>Документы.УстановкаЦенНоменклатуры КАК УстановкаЦен
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457381
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lana_SVZerro,
Исправила! Теперь другая напасть )))

{Форма.Форма.Форма(55)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить().Выбрать();
по причине:
Произошла исключительная ситуация: {(7, 2)}: Таблица не найдена "Документы.УстановкаЦенНоменклатуры"
<<?>>Документ ы .УстановкаЦенНоменклатуры КАК УстановкаЦен

| Документ.Операции КАК Операции"
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457420
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zerro,
исправила, дописала, остался последний рывок ..... помогите пожалуйста ..... сроки поджимают (((

Дат="01.08.2011";
Запрос = trade.NewObject("Запрос");
Запрос.Текст =
"ВЫБРАТЬ
| УстановкаЦен.ТипЦен,
| УстановкаЦен.Товары.Номенклатура,
| УстановкаЦен.Товары.Цена,
| УстановкаЦен.Товары.Валюта
|ИЗ
| Документ.УстановкаЦенНоменклатуры КАК УстановкаЦен
|ГДЕ
| УстановкаЦен.Дата = ""01.08.2011""";

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

НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НовыйДокумент.Дата = Дат;
НовыйДокумент.ТипЦен = Результат.ТипЦен;

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

Ругается на строку НовыйДокумент.ТипЦен = Результат.ТипЦен;
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457423
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zerro,
говорит
{Форма.Форма.Форма(59)}: Поле объекта не обнаружено (ТипЦен)
НовыйДокумент.ТипЦен = Результат.ТипЦен;
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457425
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нельзя так.. в оле возвращаются тока числа и строки
Олетип=Типцен.код;
Навовый= Справочнк.типцен.найтипокоду(ОлеТИп);
Обьекты не передаются. но смотри -совпадают у тебя коды? или но названию синхранизируй
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457449
Lana_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zerroнельзя так.. в оле возвращаются тока числа и строки
Олетип=Типцен.код;
Навовый= Справочнк.типцен.найтипокоду(ОлеТИп);
Обьекты не передаются. но смотри -совпадают у тебя коды? или но названию синхранизируй

Да, поняла, совсем забыла, что это ссылка на справочник ....
Исправила:
НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НовыйДокумент.Дата = Дат;
Справочник= Справочник.ТипыЦенНоменклатуры.найтипокоду(Результат.ТипЦен.Код);
НовыйДокумент.ТипЦен = Справочник;

Ругается на Результат.ТипЦен.Код Как вытащить это значение из запроса?
...
Рейтинг: 0 / 0
8.2 подключение через OLE
    #37457463
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lana_SVZerroнельзя так.. в оле возвращаются тока числа и строки
Олетип=Типцен.код;
Навовый= Справочнк.типцен.найтипокоду(ОлеТИп);
Обьекты не передаются. но смотри -совпадают у тебя коды? или но названию синхранизируй

Да, поняла, совсем забыла, что это ссылка на справочник ....
Исправила:
НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НовыйДокумент.Дата = Дат;
Справочник = Справочник.ТипыЦенНоменклатуры.найтипокоду(Результат.ТипЦен.Код);
НовыйДокумент.ТипЦен = Справочник;

Ругается на Результат.ТипЦен.Код Как вытащить это значение из запроса?
да правильно вроде все... посмотри..может кода вообще нет))))
в отладчике глянь - что он на Результат.ТипЦен.Код дает
переименуй выделенное -возможно служебное
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / [игнор отключен] [закрыт для гостей] / 8.2 подключение через OLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]