У Вас в обоих вариантах :
1. Сообщить(спрБТ.ТекущийЭлемент().Номенклатура.Получить(ДатаДок));
2. Сообщить(Запрос.Договор);
выражение имеет вид ОБЪЕКТ_ОЛЕ, так что для печати ИМХО напишите:
1. Сообщить(спрБТ.ТекущийЭлемент().Номенклатура.Получить(ДатаДок).Код); // или наименование
2. Сообщить(Запрос.Договор.Наименование);
А для получения реального значения в обработке следует добавить Процедурку типа НайтиПоКоду() :)))
1. Сообщить(спрБТ.ТекущийЭлемент().Номенклатура.Получить(ДатаДок));
2. Сообщить(Запрос.Договор);
выражение имеет вид ОБЪЕКТ_ОЛЕ, так что для печати ИМХО напишите:
1. Сообщить(спрБТ.ТекущийЭлемент().Номенклатура.Получить(ДатаДок).Код); // или наименование
2. Сообщить(Запрос.Договор.Наименование);
А для получения реального значения в обработке следует добавить Процедурку типа НайтиПоКоду() :)))
По теме из базы знаний
- Что делает нас профессионалами...
- Пара советов по поиску работы
- DevOps: бери и делай!
- Проектный офис без офиса. ИТ-инструменты, техники и другие секреты крупной ИТ-компании, работающей со сложными проектами и заказчиками
- Database Compression Tool (DCT) Универсальный инструмент сжатия, свертки и конвертации баз данных 1С
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Всем привет! Я начинайка.
Огромная просьба помогите.
Необходимо подключиться из одной БД 1с к другой БД 1с.
БазаОле=СоздатьОбъект("V77.Application");
КаталогБазыОЛе = "D:\Сф\";
ПользовательОле = "Настя";
ПарольОле = "1";
МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
ЗапускБезЗаставки = 1; // для появления заставки (например, чтобы наблюдать
// процесс запуска базы OLE визуально) поставьте здесь "0"
РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
СокрЛП(КаталогБазыОле) + " /n" + СокрЛП(ПользовательОле)+
" /p" + СокрЛП(ПарольОле) + МонопольныйРежимOLE,
?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
Если РезультатПодключения = 0 Тогда
Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
else
СпрOLE = БазаОле.СоздатьОбъект("Справочник.Услуг"); // ”СоздатьОбъект” в OLE не работает!
КонецЕсли;
1) 1с запускаеться а как из нее данные по Справочнику "Услуг" взять не знаю((((
2) и не знаю как ее закрыть в программном коде.
СохранитьЗначение("НеЗапрашиватьПодтверждениеПриВыходе", 1);
Огромная просьба помогите.
Необходимо подключиться из одной БД 1с к другой БД 1с.
БазаОле=СоздатьОбъект("V77.Application");
КаталогБазыОЛе = "D:\Сф\";
ПользовательОле = "Настя";
ПарольОле = "1";
МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
ЗапускБезЗаставки = 1; // для появления заставки (например, чтобы наблюдать
// процесс запуска базы OLE визуально) поставьте здесь "0"
РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
СокрЛП(КаталогБазыОле) + " /n" + СокрЛП(ПользовательОле)+
" /p" + СокрЛП(ПарольОле) + МонопольныйРежимOLE,
?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
Если РезультатПодключения = 0 Тогда
Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
else
СпрOLE = БазаОле.СоздатьОбъект("Справочник.Услуг"); // ”СоздатьОбъект” в OLE не работает!
КонецЕсли;
1) 1с запускаеться а как из нее данные по Справочнику "Услуг" взять не знаю((((
2) и не знаю как ее закрыть в программном коде.
СохранитьЗначение("НеЗапрашиватьПодтверждениеПриВыходе", 1);
Процедура Кн()
перем Стр;
Стр ="";
БазаОле=СоздатьОбъект("V77.Application");
//__________________________________________________________ ___________________
КаталогБазыОЛе = "D:\Сф";
ПользовательОле = "";
ПарольОле = "";
МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
ЗапускБезЗаставки = 1; // для появления заставки (например, чтобы наблюдать
// процесс запуска базы OLE визуально) поставьте здесь "0"
я_ОбъектыУслуг = СоздатьОбъект("справочник.я_ОбъектыУслуг");
Запрос = СоздатьОбъект("Запрос");
РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
СокрЛП(КаталогБазыОле) + " /n" + СокрЛП(ПользовательОле)+
" /p" + СокрЛП(ПарольОле) + МонопольныйРежимOLE,
?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
Если РезультатПодключения = 0 Тогда
Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
else
спрБ = БазаОле.CreateObject("Справочник.я_ОбъектыУслуг"); //работает!
спрБ.ВыбратьЭлементы();
Пока спрБ.ПолучитьЭлемент()=1 Цикл
Сообщить(спрБ.код); - код правиль берет!
Сообщить(Строка(спрБ.Номенклатура.Получить(ТекущаяДата()))); --здесь засада выводит OLE
КонецЦикла;
КонецПроцедуры
Справочник весь периодических реквизитов!!!!!!!
перем Стр;
Стр ="";
БазаОле=СоздатьОбъект("V77.Application");
//__________________________________________________________
КаталогБазыОЛе = "D:\Сф";
ПользовательОле = "";
ПарольОле = "";
МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
ЗапускБезЗаставки = 1; // для появления заставки (например, чтобы наблюдать
// процесс запуска базы OLE визуально) поставьте здесь "0"
я_ОбъектыУслуг = СоздатьОбъект("справочник.я_ОбъектыУслуг");
Запрос = СоздатьОбъект("Запрос");
РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
СокрЛП(КаталогБазыОле) + " /n" + СокрЛП(ПользовательОле)+
" /p" + СокрЛП(ПарольОле) + МонопольныйРежимOLE,
?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
Если РезультатПодключения = 0 Тогда
Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
else
спрБ = БазаОле.CreateObject("Справочник.я_ОбъектыУслуг"); //работает!
спрБ.ВыбратьЭлементы();
Пока спрБ.ПолучитьЭлемент()=1 Цикл
Сообщить(спрБ.код); - код правиль берет!
Сообщить(Строка(спрБ.Номенклатура.Получить(ТекущаяДата()))); --здесь засада выводит OLE
КонецЦикла;
КонецПроцедуры
Справочник весь периодических реквизитов!!!!!!!
Пока спрБ.ПолучитьЭлемент()=1 Цикл
ЭлСпрБ = спрБ.ТекущийЭлемент();
Сообщить(спрБ.код); // - код правиль берет!
Сообщить(Строка(ЭлСпрБ.Номенклатура.Получить(ТекущаяДата())));// --здесь засада выводит OLE
// Так попробовать надо.
КонецЦикла;
ЭлСпрБ = спрБ.ТекущийЭлемент();
Сообщить(спрБ.код); // - код правиль берет!
Сообщить(Строка(ЭлСпрБ.Номенклатура.Получить(ТекущаяДата())));// --здесь засада выводит OLE
// Так попробовать надо.
КонецЦикла;
А если Справочник.я_ОбъектыУслуг переиодических реквизитов, то как из него данные взять ?
Если СокрЛП(спрБ.код) = "431522" Тогда
Если спрБТ.НайтиПоКоду(СокрЛП(спрБ.код)) <> 0 Тогда
Сообщить(спрБ.код);
Сообщить(Строка(спрБТ.Номенклатура.Получить(ДатаДок))); ????
КонецЕсли;
КонецЕсли;
Если СокрЛП(спрБ.код) = "431522" Тогда
Если спрБТ.НайтиПоКоду(СокрЛП(спрБ.код)) <> 0 Тогда
Сообщить(спрБ.код);
Сообщить(Строка(спрБТ.Номенклатура.Получить(ДатаДок))); ????
КонецЕсли;
КонецЕсли;
Здесть суть в том, что метод Получить() должен применяться не к объекту-справочнику, а к конкретному элементу его - ТекущийЭлемент()
Т.е. Вместо
надо
Т.е. Вместо
Сообщить(Строка(спрБТ.Номенклатура.Получить(ДатаДок)));
надо
Сообщить(Строка(спрБТ.ТекущийЭлемент().Номенклатура.Получить(ДатаДок)));
Все равно почему то выводит OLE
Уже и сделала запросом
процедура FFFF()
Перем Запрос, ТекстЗапроса, Таб;
БазаОле=СоздатьОбъект("V77.Application");
КаталогБазыОЛе = "D:\040609\IKS_2008";
ПользовательОле = "user";
ПарольОле = "111";
ПользовательОле = "";
ПарольОле = "";
МонопольныйРежимOLE = " /m"; // для немонопольного запуска указать пустую строку!
МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
ЗапускБезЗаставки = 1; // для появления заставки (например, чтобы наблюдать
// процесс запуска базы OLE визуально) поставьте здесь "0"
я_ОбъектыУслуг = CreateObject("справочник.я_ОбъектыУслуг");
ОказаниеУслуг = CreateObject("Документ.ОказаниеУслуг");
Запрос = CreateObject("Запрос");
РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
СокрЛП(КаталогБазыОле) + " /n" + СокрЛП(ПользовательОле)+
" /p" + СокрЛП(ПарольОле) + МонопольныйРежимOLE,
?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
Если РезультатПодключения = 0 Тогда
Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
else
//Создание объекта типа Запрос
Запрос = БазаОле.CreateObject("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформироватьекненгенгнег)
|Период с '" + ДатаДок + "' по '" + ДатаДок + "';
|я_ОбъектыУслуг = Справочник.я_ОбъектыУслуг.ТекущийЭлемент;
|Номенклатура = Справочник.я_ОбъектыУслуг.Номенклатура;
|Контрагент = Справочник.я_ОбъектыУслуг.Контрагент;
|Карта = Справочник.я_ОбъектыУслуг.Карта;
|Договор = Справочник.я_ОбъектыУслуг.Договор;
|Группировка я_ОбъектыУслуг упорядочить по я_ОбъектыУслуг.Код;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
// Заполнение полей "Заголовок"
Состояние("Заполнение выходной таблицы...");
Пока Запрос.Группировка(1) = 1 Цикл
Сообщить(Запрос.Договор);
// Заполнение полей я_ОбъектыУслуг
КонецЦикла;
конецесли;
КонецПроцедуры
И через запрос тоже самое? Почему не пойму?!
Уже и сделала запросом
процедура FFFF()
Перем Запрос, ТекстЗапроса, Таб;
БазаОле=СоздатьОбъект("V77.Application");
КаталогБазыОЛе = "D:\040609\IKS_2008";
ПользовательОле = "user";
ПарольОле = "111";
ПользовательОле = "";
ПарольОле = "";
МонопольныйРежимOLE = " /m"; // для немонопольного запуска указать пустую строку!
МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
ЗапускБезЗаставки = 1; // для появления заставки (например, чтобы наблюдать
// процесс запуска базы OLE визуально) поставьте здесь "0"
я_ОбъектыУслуг = CreateObject("справочник.я_ОбъектыУслуг");
ОказаниеУслуг = CreateObject("Документ.ОказаниеУслуг");
Запрос = CreateObject("Запрос");
РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
СокрЛП(КаталогБазыОле) + " /n" + СокрЛП(ПользовательОле)+
" /p" + СокрЛП(ПарольОле) + МонопольныйРежимOLE,
?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
Если РезультатПодключения = 0 Тогда
Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
else
//Создание объекта типа Запрос
Запрос = БазаОле.CreateObject("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформироватьекненгенгнег)
|Период с '" + ДатаДок + "' по '" + ДатаДок + "';
|я_ОбъектыУслуг = Справочник.я_ОбъектыУслуг.ТекущийЭлемент;
|Номенклатура = Справочник.я_ОбъектыУслуг.Номенклатура;
|Контрагент = Справочник.я_ОбъектыУслуг.Контрагент;
|Карта = Справочник.я_ОбъектыУслуг.Карта;
|Договор = Справочник.я_ОбъектыУслуг.Договор;
|Группировка я_ОбъектыУслуг упорядочить по я_ОбъектыУслуг.Код;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
// Заполнение полей "Заголовок"
Состояние("Заполнение выходной таблицы...");
Пока Запрос.Группировка(1) = 1 Цикл
Сообщить(Запрос.Договор);
// Заполнение полей я_ОбъектыУслуг
КонецЦикла;
конецесли;
КонецПроцедуры
И через запрос тоже самое? Почему не пойму?!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот