Помогите с OLE

1. 03.06.06 14:54 Сейчас в теме
Помогите ПЛЗ, знаю что вопрос детский, но я только учусь
Мне нужно в базе ОЛЕ найти документ по номеру, и значение реквизита "ФИО" из найденного документа присвоить реквизиту в базе приемнике.
Процедура выполняется по нажатию кнопки, подключился без проблем, ВвестиЧисло(Ном,"Введите номер заказа",5,0); - ввожу номер искомого документа, как поступить дальше?
Напрвьте пожалуйста на путь истинный!!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. harleq 27 03.06.06 15:06 Сейчас в теме
Объект=База.CreateObject("Документ."+ВидДок);
Объект.НайтиПоНомеру(ИскомыйНомер)
Фио = Объект.ФИО;

А ФИО это уже в зависимости от типа реквизита, если строка, то просто присваиваешь.
3. 03.06.06 15:42 Сейчас в теме
Я ввожу номер так
ВвестиЧисло(Ном,"Введите номер заказа",5,0);
начит дальше так?:

Объект.НайтиПоНомеру(Ном);
4. harleq 27 03.06.06 15:45 Сейчас в теме
5. 03.06.06 15:51 Сейчас в теме
Вот код:
Процедура ДобавитьЗаказ()

БазаОле = СоздатьОбъект("V77.Application");
КаталогБазыОле = "e:\Bases\ortoped\";
ПользовательОле = "Администратор";
ПарольОле = "qwerty";
ЗапускБезЗаставки = 1;
РезультатПодключения = БазаОле.Initialize(БазаОле.RMTrade,"/d"+КаталогБазыОле+" /M/N"+ПользовательОле+" /P"+ПарольОле,
"NO_SPLASH_SHOW");
Если РезультатПодключения=0 Тогда
Предупреждение("Не удалось подключиться к указанной базе - проверьте вводные!");
Иначе
Сообщить("Удачное подключение");
ДокОле=БазаОле.CreateObject("Документ.ЗаказПОИ");
ВвестиЧисло(Ном,"Введите номер заказа",5,0);
ДокОле.НайтиПоНомеру(Ном);
ФИО=ДокОле.Заказчик;
Предупреждение(ФИО);
КонецЕсли;
КонецПроцедуры

Выдает пустое предупреждение

ДокОле.Заказчик - тип реквизита Справочник.Заказчики, видимо из-за этого?
6. 03.06.06 15:52 Сейчас в теме
Как получить значение такого поля?
7. 03.06.06 16:13 Сейчас в теме
Изменил тип реквизита на строку длинной 99
Все равно пусто
Значит нужно в базе приемнике создать аналогичный документ?
Док=СоздатьОбъект("ЗаказПОИ");
Док.НайтиПоНомеру(ДокОле.Ном);
ФИО=Док.ФИО;


Это правильно?

8. harleq 27 04.06.06 23:35 Сейчас в теме
если тип Справочник.Заказчики, то фио достань так
ФИО=ДокОле.Заказчик.Наименование;
9. harleq 27 04.06.06 23:36 Сейчас в теме
reef Написал:
-------------------------------------------------------
> Изменил тип реквизита на строку длинной 99
> Все равно пусто
> Значит нужно в базе приемнике создать аналогичный
> документ?
> Док=СоздатьОбъект("ЗаказПОИ");
> Док.НайтиПоНомеру(ДокОле.Ном);
> ФИО=Док.ФИО;
>
>
> Это правильно?
>
Нет, в базе приемнике ничего создавать не надо.
10. falkor 20.06.06 21:48 Сейчас в теме
> Сообщить("Удачное подключение");
> ДокОле=БазаОле.CreateObject("Документ.ЗаказПОИ");
> ВвестиЧисло(Ном,"Введите номер заказа",5,0);
> ДокОле.НайтиПоНомеру(Ном);
> ФИО=ДокОле.Заказчик;
> Предупреждение(ФИО);


Я-бы написал чуть-чуть по-другому

Сообщить("Удачное подключение");
ДокОле=БазаОле.CreateObject("Документ.ЗаказПОИ");
ВвестиЧисло(Ном,"Введите номер заказа",5,0);
Если ДокОле.НайтиПоНомеру(Ном,ТекущаяДата()) = 1 Тогда // Дата указывает в каком году искать
ФИО=ДокОле.Заказчик;
Предупреждение(ФИО.Наименование);//Т.к. ФИО - это элемент справочника не текущей базы,
//показать на экран текущей сможем только число или текст
Иначе
Предупреждение("Не нашли документ с номером " + Ном + " в текущем году");
КонецЕсли;
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот