Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Добрый день! Прошу помощи! Надо подключится из 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")); Подключение проходит успешно, а вот на последней строке программа виснет ..... в чем может быть проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 12:46 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
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")); Подключение проходит успешно, а вот на последней строке программа виснет ..... в чем может быть проблема? отладчик смотрела? что пишет? НайтиПоНомеру(<Номер документа>, <Дата интервала>) -дата одна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 13:04 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Lana_SVtrade = Новый COMобъект("V82.Application"); V82.COMConnector Application здесь ни к месту ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 13:11 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Zerro, Отладчик ничего не пишет, просто висит на этом месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 13:45 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Zerro, Пробовала, вообще без дат, и просто ДокументУстановка.ВыбратьДокументы(), результат такой же, ошибку никакую не выдает, просто висит ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 13:48 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Lana_SVZerro, Отладчик ничего не пишет, просто висит на этом месте остановись перед этой строкой и в отладчике эту команду выполни. Дату одну сделали? дата должна быт ьв периоде нумерации документа и все. Ну и у себя глянул да Сом = Новый COMОбъект("V82.COMConnector"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 13:49 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
ZerroLana_SVZerro, Отладчик ничего не пишет, просто висит на этом месте остановись перед этой строкой и в отладчике эту команду выполни. Дату одну сделали? дата должна быт ьв периоде нумерации документа и все. Ну и у себя глянул да Сом = Новый COMОбъект("V82.COMConnector"); Заменила строку Сом = Новый COMОбъект("V82.Application") на: Сом = Новый COMОбъект("V82.COMConnector") Теперь ругается в строке: ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ; {Форма.Форма.Форма(51)}: Поле объекта не обнаружено (Документы) ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:00 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
trade = Новый COMОбъект("V82.COMConnector") Теперь ругается в строке: ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ; {Форма.Форма.Форма(51)}: Поле объекта не обнаружено (Документы) ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:08 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Zerro trade = Новый COMОбъект("V82.COMConnector") Теперь ругается в строке: ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ; {Форма.Форма.Форма(51)}: Поле объекта не обнаружено (Документы) ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры В программе я конечно написала trade= Новый COMОбъект("V82.COMConnector"), это в форуме ошиблась ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:12 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Lana_SV, неправильный код подключения. Два разных объекта требуется использовать - один для подключения, другой для работы: db = Новый COMобъект("V82.ComConnector"); Попытка trade = db.Connect("File=""Z:\Бух_Регион"";Usr=""User"";Pwd=""par"";"); сообщить("Получилось"); Исключение сообщить("база не открыта"); Возврат; КонецПопытки; ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:16 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Zerro, В общем пока получилось вот так: trade = Новый COMобъект("V82.Application"); Попытка trade.Connect("File=""Z:\Бух_Регион"";Usr=""User"";Pwd=""par"";"); сообщить("Получилось"); Исключение сообщить("база не открыта"); Возврат; КонецПопытки; ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ; Если ДокументУстановка.НайтиПономеру("1") = Неопределено Тогда Возврат; КонецЕсли; ДокументУстановка.ВыбратьСтроки(); Ругается на ДокументУстановка.ВыбратьСтроки(), говорит метод объекта не обнаружен, оно и понятно, команда из 1С 7.7, подскажите как считать информацию из документа построчно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:17 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
pailLana_SV, неправильный код подключения. Два разных объекта требуется использовать - один для подключения, другой для работы: db = Новый COMобъект("V82.ComConnector"); Попытка trade = db.Connect("File=""Z:\Бух_Регион"";Usr=""User"";Pwd=""par"";"); сообщить("Получилось"); Исключение сообщить("база не открыта"); Возврат; КонецПопытки; ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ; Поняла, исправила код, заработало! Только остался актуальным вопрос о том как считать документ построчно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:22 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Lana_SVZerro, В общем пока получилось вот так: trade = Новый COMобъект("V82.Application"); Попытка trade.Connect("File=""Z:\Бух_Регион"";Usr=""User"";Pwd=""par"";"); сообщить("Получилось"); Исключение сообщить("база не открыта"); Возврат; КонецПопытки; ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ; Если ДокументУстановка.НайтиПономеру("1") = Неопределено Тогда Возврат; КонецЕсли; ДокументУстановка.ВыбратьСтроки(); Ругается на ДокументУстановка.ВыбратьСтроки(), говорит метод объекта не обнаружен, оно и понятно, команда из 1С 7.7, подскажите как считать информацию из документа построчно? i Как перебрать строки документа? Для Каждого ТекущаяСтрока Из ДокументУстановка. Товары Цикл // Действия со строкой табличной части. КонецЦикла; или СтаршийИндекс = ДокументУстановка.Товары.Количество() - 1; Для Сч = 0 по СтаршийИндекс Цикл // Действия со строкой табличной части. КонецЦикла; i Как выгрузить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:22 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Zerro, pail, Поняла! Большое спасибо за ликбез!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:24 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Lana_SVРугается на ДокументУстановка.ВыбратьСтроки(), говорит метод объекта не обнаружен, оно и понятно, команда из 1С 7.7, подскажите как считать информацию из документа построчно? Смотря зачем нужны данные документа. Если их требуется просто читать - тогда в 8ке принято пользоваться запросом, которым и достаются все нужные данные, и номер документа может быть параметром запроса, а обращение к данным через объектную модель не требуется. Если же требуется изменить данные, то по найденной ссылке надо получить объект, и уже с ним работать: ДокументУстановка = trade.Документы.УстановкаЦенНоменклатуры ; Если ДокументУстановка.НайтиПономеру("1") = Неопределено Тогда Возврат; КонецЕсли; ДокументОбъект=ДокументУстановка.ПолучитьОбъект(); Для каждого стр из ДокументОбъект цикл стр.Цена=........ конецЦикла; ДокументОбъект.Записать(режимЗаписиДокумента.Запись); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:27 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
pail, Требуется только считать данные. Т.е. перенести документ из подключаемой базы. Наверно в таком случае будет правильно пользоваться запросом Пишу так: db = Новый COMобъект("V82.COMConnector"); //tade = Новый COMобъект("V82.Application"); Попытка trade = db.Connect("File=""Z:\Бух_"";Usr=""User"";Pwd=""par"";"); сообщить("Получилось"); Исключение сообщить("база не открыта"); Возврат; КонецПопытки; Запрос = trade.NewObject("Запрос"); Запрос.Текст = "ВЫБРАТЬ | УстановкаЦен.ТипЦен, | УстановкаЦен.Номенклатура, | УстановкаЦен.Цена, | УстановкаЦен.Валюта, |ИЗ | Документы.УстановкаЦенНоменклатуры КАК УстановкаЦен |ГДЕ | УстановкаЦен.Дата = Дат"; Результат = Запрос.Выполнить(); и получаю ошибку {Форма.Форма.Форма(71)}: Ошибка при вызове метода контекста (Выполнить) Результат = Запрос.Выполнить(); по причине: Произошла исключительная ситуация: {(6, 1)}: Синтаксическая ошибка "ИЗ" <<?>>ИЗ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:40 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Lana_SVpail, Требуется только считать данные. Т.е. перенести документ из подключаемой базы. Наверно в таком случае будет правильно пользоваться запросом Пишу так: db = Новый COMобъект("V82.COMConnector"); //tade = Новый COMобъект("V82.Application"); Попытка trade = db.Connect("File=""Z:\Бух_"";Usr=""User"";Pwd=""par"";"); сообщить("Получилось"); Исключение сообщить("база не открыта"); Возврат; КонецПопытки; Запрос = trade.NewObject("Запрос"); Запрос.Текст = "ВЫБРАТЬ | УстановкаЦен.ТипЦен, | УстановкаЦен.Номенклатура, | УстановкаЦен.Цена, | УстановкаЦен.Валюта, |ИЗ | Документы.УстановкаЦенНоменклатуры КАК УстановкаЦен |ГДЕ | УстановкаЦен.Дата = Дат"; Результат = Запрос.Выполнить(); и получаю ошибку {Форма.Форма.Форма(71)}: Ошибка при вызове метода контекста (Выполнить) Результат = Запрос.Выполнить(); по причине: Произошла исключительная ситуация: {(6, 1)}: Синтаксическая ошибка "ИЗ" <<?>>ИЗ | УстановкаЦен.Валюта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:42 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
без запятой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:43 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Zerro, Исправила! Теперь другая напасть ))) {Форма.Форма.Форма(55)}: Ошибка при вызове метода контекста (Выполнить) Результат = Запрос.Выполнить().Выбрать(); по причине: Произошла исключительная ситуация: {(7, 2)}: Таблица не найдена "Документы.УстановкаЦенНоменклатуры" <<?>>Документы.УстановкаЦенНоменклатуры КАК УстановкаЦен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:46 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Lana_SVZerro, Исправила! Теперь другая напасть ))) {Форма.Форма.Форма(55)}: Ошибка при вызове метода контекста (Выполнить) Результат = Запрос.Выполнить().Выбрать(); по причине: Произошла исключительная ситуация: {(7, 2)}: Таблица не найдена "Документы.УстановкаЦенНоменклатуры" <<?>>Документ ы .УстановкаЦенНоменклатуры КАК УстановкаЦен | Документ.Операции КАК Операции" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:55 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Zerro, исправила, дописала, остался последний рывок ..... помогите пожалуйста ..... сроки поджимают ((( Дат="01.08.2011"; Запрос = trade.NewObject("Запрос"); Запрос.Текст = "ВЫБРАТЬ | УстановкаЦен.ТипЦен, | УстановкаЦен.Товары.Номенклатура, | УстановкаЦен.Товары.Цена, | УстановкаЦен.Товары.Валюта |ИЗ | Документ.УстановкаЦенНоменклатуры КАК УстановкаЦен |ГДЕ | УстановкаЦен.Дата = ""01.08.2011"""; Результат = Запрос.Выполнить().Выгрузить(); НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); НовыйДокумент.Дата = Дат; НовыйДокумент.ТипЦен = Результат.ТипЦен; Для каждого строка из Результат Цикл СтрокаДокумента = НовыйДокумент.Товары.Добавить(); СтрокаДокумента.Номенклатура = строка.Номенклатура; СтрокаДокумента.Цена = строка.Цена; СтрокаДокумента.Валюта = строка.Валюта; КонецЦикла; НовыйДокумент.Записать(); Ругается на строку НовыйДокумент.ТипЦен = Результат.ТипЦен; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 15:14 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Zerro, говорит {Форма.Форма.Форма(59)}: Поле объекта не обнаружено (ТипЦен) НовыйДокумент.ТипЦен = Результат.ТипЦен; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 15:16 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
нельзя так.. в оле возвращаются тока числа и строки Олетип=Типцен.код; Навовый= Справочнк.типцен.найтипокоду(ОлеТИп); Обьекты не передаются. но смотри -совпадают у тебя коды? или но названию синхранизируй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 15:16 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Zerroнельзя так.. в оле возвращаются тока числа и строки Олетип=Типцен.код; Навовый= Справочнк.типцен.найтипокоду(ОлеТИп); Обьекты не передаются. но смотри -совпадают у тебя коды? или но названию синхранизируй Да, поняла, совсем забыла, что это ссылка на справочник .... Исправила: НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); НовыйДокумент.Дата = Дат; Справочник= Справочник.ТипыЦенНоменклатуры.найтипокоду(Результат.ТипЦен.Код); НовыйДокумент.ТипЦен = Справочник; Ругается на Результат.ТипЦен.Код Как вытащить это значение из запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 15:28 |
|
||
|
8.2 подключение через OLE
|
|||
|---|---|---|---|
|
#18+
Lana_SVZerroнельзя так.. в оле возвращаются тока числа и строки Олетип=Типцен.код; Навовый= Справочнк.типцен.найтипокоду(ОлеТИп); Обьекты не передаются. но смотри -совпадают у тебя коды? или но названию синхранизируй Да, поняла, совсем забыла, что это ссылка на справочник .... Исправила: НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); НовыйДокумент.Дата = Дат; Справочник = Справочник.ТипыЦенНоменклатуры.найтипокоду(Результат.ТипЦен.Код); НовыйДокумент.ТипЦен = Справочник; Ругается на Результат.ТипЦен.Код Как вытащить это значение из запроса? да правильно вроде все... посмотри..может кода вообще нет)))) в отладчике глянь - что он на Результат.ТипЦен.Код дает переименуй выделенное -возможно служебное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 15:35 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=37457423&tid=1520986]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 366ms |

| 0 / 0 |
