Запросы в OLE соединении
Для внешнего отчета нужно из базы УАТ (управление автотранспортом) нужно взять два реквизита строкового типа из документа уатПутевойЛист. Внешний отчет будет использоваться в УТ 10.3. УТ(8.3), а УАТ(8.2).
Соединение= Новый COMОбъект("v82.Application");
Параметры = "Srvr=""192.168.25.29:1642"";Ref=""uat"";Usr=""User1"";Pwd=""12345"";";
Попытка
Подключение = Соединение.Connect(Параметры);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не удалось подключиться к базе" + ОписаниеОшибки();
Сообщение.Сообщить();
КонецЦикла;
Запрос = Соединение.NewObject("Запрос"); // для V82.Application
Запрос.Текст ="";
Соединение = Неопределено;
В запросе должны быть данные из базы УАТ? Документа уатПутевойЛист нету в УТ и поэтому не понимаю как передать в запрос СКД внешнего отчета. Мне нужно передать два реквизита из документа уатПутевойЛист в СКД внешнего отчета
Соединение= Новый COMОбъект("v82.Application");
Параметры = "Srvr=""192.168.25.29:1642"";Ref=""uat"";Usr=""User1"";Pwd=""12345"";";
Попытка
Подключение = Соединение.Connect(Параметры);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не удалось подключиться к базе" + ОписаниеОшибки();
Сообщение.Сообщить();
КонецЦикла;
Запрос = Соединение.NewObject("Запрос"); // для V82.Application
Запрос.Текст ="";
Соединение = Неопределено;
В запросе должны быть данные из базы УАТ? Документа уатПутевойЛист нету в УТ и поэтому не понимаю как передать в запрос СКД внешнего отчета. Мне нужно передать два реквизита из документа уатПутевойЛист в СКД внешнего отчета
По теме из базы знаний
- Связи Метаданных. Построитель SQL запросов
- Последний тюнинг известной обработки 1CQA (консоль прямых запросов 1С++) для 1С:Предприятие-77.
- 1С8:борьба - личный опыт работы с платформой 1с8
- Консоль запросов SQL
- Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 28 января по 20 февраля 2025г.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)Запрос = Соединение.NewObject("Документы.уатПутевойЛист");
МетаСправочники = Соединение.Метаданные.Документы;
// Перебираем все справочники
Для каждого Документ Из МетаСправочники Цикл
Сообщить(Документ.Имя);
// Перебираем все реквизиты
Для каждого Реквизит Из Документ.Реквизиты Цикл
Сообщить(Символы.Таб + Реквизит.Имя);
КонецЦикла;
КонецЦикла;
Рек1=Соединение.Метаданные.Документы.уатПутевойЛист.Attributes.СпидометрВозвращения;
Рек2=Соединение.Метаданные.Документы.уатПутевойЛист.Attributes.СпидометрВыезда;
ТЗ=Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить(Рек1);
ТЗ.Колонки.Добавить(Рек2);
Ошибка:
{ВнешнийОтчет.ВодителиСуммарныйОтчет.Форма.ФормаОтчета.Форма(29)}: Ошибка при вызове метода контекста (Добавить)
ТЗ.Колонки.Добавить(Рек2);
по причине:
Неверное имя колонки
МетаСправочники = Соединение.Метаданные.Документы;
// Перебираем все справочники
Для каждого Документ Из МетаСправочники Цикл
Сообщить(Документ.Имя);
// Перебираем все реквизиты
Для каждого Реквизит Из Документ.Реквизиты Цикл
Сообщить(Символы.Таб + Реквизит.Имя);
КонецЦикла;
КонецЦикла;
Рек1=Соединение.Метаданные.Документы.уатПутевойЛист.Attributes.СпидометрВозвращения;
Рек2=Соединение.Метаданные.Документы.уатПутевойЛист.Attributes.СпидометрВыезда;
ТЗ=Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить(Рек1);
ТЗ.Колонки.Добавить(Рек2);
Ошибка:
{ВнешнийОтчет.ВодителиСуммарныйОтчет.Форма.ФормаОтчета.Форма(29)}: Ошибка при вызове метода контекста (Добавить)
ТЗ.Колонки.Добавить(Рек2);
по причине:
Неверное имя колонки
Не публиковал бы ты прям так все доступы с адресами логинами паролями.
Про СКД я как-то сомневаюсь. Это надо сделать сначала запрос в базу Оле, потом результат этого запроса в виде например таблицы значений засунуть в твою СКД как внешний источник данных и тогда уже его можно будет там использовать. Как-то так примерно.
Запрос пишется в той базе, которая открывается по Оле. Там в ней берешь консоль запросов и составляешь нужный запрос. Все поля должны иметь простые типы (число строка дата), ссылки не годятся.
Потом этот запрос вставляешь в текст запроса уже в базе-приемнике.
А вот дальше это уже настоящий вопрос.
Про СКД я как-то сомневаюсь. Это надо сделать сначала запрос в базу Оле, потом результат этого запроса в виде например таблицы значений засунуть в твою СКД как внешний источник данных и тогда уже его можно будет там использовать. Как-то так примерно.
Запрос пишется в той базе, которая открывается по Оле. Там в ней берешь консоль запросов и составляешь нужный запрос. Все поля должны иметь простые типы (число строка дата), ссылки не годятся.
Потом этот запрос вставляешь в текст запроса уже в базе-приемнике.
А вот дальше это уже настоящий вопрос.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот