Добавление строк в таблицу созданную на стороне com базы
Добрый день, помогите пожалуйста.
Создаю таблицу:
пытаюсь написать
вываливается по ошибке, может кто знает как это сделать, уж больно не охото крутить в цикле запрос к Com-у
Создаю таблицу:
ТаблицаПараметров = БазаБП.NewObject("ТаблицаЗначений");
КвалифСтроки = БазаБП.NewObject("КвалификаторыСтроки", 20);
ДопустимыеТипы = БазаБП.NewObject("ОписаниеТипов", "Строка", КвалифСтроки);
ТаблицаПараметров.Колонки.Добавить("Номер", ДопустимыеТипы);
КвалифДаты = БазаБП.NewObject("КвалификаторыДаты");
ДопустимыеТипыДаты = БазаБП.NewObject("ОписаниеТипов", "Дата", КвалифДаты);
ТаблицаПараметров.Колонки.Добавить("День", ДопустимыеТипыДаты);
Показатьпытаюсь написать
НовСтрКом = ТаблицаПараметров.Добавить()
вываливается по ошибке, может кто знает как это сделать, уж больно не охото крутить в цикле запрос к Com-у
По теме из базы знаний
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2
- BDD 1С по душе
- Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции
- Особенности работы с COM-соединением
- Управляем базами на SQL, не выходя из 1С
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) glime, Уважаемый а можно узнать что за ошибка - вот этот код прекрасно работает:
V82 = Новый COMObject ("V82.COMConnector");
Соединение82 = V82.Connect("File=""моя строка подключения""");
ТаблицаПараметров = Соединение82.NewObject("ТаблицаЗначений");
КвалифСтроки = Соединение82.NewObject("КвалификаторыСтроки", 20);
ДопустимыеТипы = Соединение82.NewObject("ОписаниеТипов", "Строка", КвалифСтроки);
ТаблицаПараметров.Колонки.Добавить("Номер", ДопустимыеТипы);
КвалифДаты = Соединение82.NewObject("КвалификаторыДаты");
ДопустимыеТипыДаты = Соединение82.NewObject("ОписаниеТипов", "Дата", КвалифДаты);
ТаблицаПараметров.Колонки.Добавить("День", ДопустимыеТипыДаты);
СтрокаКом = ТаблицаПараметров.Добавить();
Показать
V82 = Новый COMObject ("V82.COMConnector");
Соединение82 = V82.Connect("File=""моя строка подключения""");
ТаблицаПараметров = Соединение82.NewObject("ТаблицаЗначений");
КвалифСтроки = Соединение82.NewObject("КвалификаторыСтроки", 20);
ДопустимыеТипы = Соединение82.NewObject("ОписаниеТипов", "Строка", КвалифСтроки);
ТаблицаПараметров.Колонки.Добавить("Номер", ДопустимыеТипы);
КвалифДаты = Соединение82.NewObject("КвалификаторыДаты");
ДопустимыеТипыДаты = Соединение82.NewObject("ОписаниеТипов", "Дата", КвалифДаты);
ТаблицаПараметров.Колонки.Добавить("День", ДопустимыеТипыДаты);
СтрокаКом = ТаблицаПараметров.Добавить();
подключение к базе
пользователей в БД нет
Параметры = "Srvr=serv1c;Ref=buh;" ;
V82COMConnector= Новый COMОбъект("V82.COMConnector");
Попытка
СBase = V82COMConnector.Connect(Параметры);
Возврат СBase;
Исключение
Предупреждение ("Ошибка подключения!");
Возврат Неопределено;
КонецПопытки;
Показатьпользователей в БД нет
код большой, да и когда конектюсь в другой процедуре
Вот кусок, в режиме отладке проверенно
Переменная БазаБП Com-объект
Переменная ТаблицаПараметров Com-объект
Выборка = Результат.Выбрать();
ТаблицаПараметров = БазаБП.NewObject("ТаблицаЗначений");
КвалифСтроки = БазаБП.NewObject("КвалификаторыСтроки", 20);
ДопустимыеТипы = БазаБП.NewObject("ОписаниеТипов", "Строка", КвалифСтроки);
ТаблицаПараметров.Колонки.Добавить("Номер", ДопустимыеТипы);
КвалифДаты = БазаБП.NewObject("КвалификаторыДаты");
ДопустимыеТипыДаты = БазаБП.NewObject("ОписаниеТипов", "Дата", КвалифДаты);
ТаблицаПараметров.Колонки.Добавить("День", ДопустимыеТипыДаты);
Пока Выборка.Следующий() Цикл
НовСтр = ТаблицаПараметров.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр,Выборка);
КонецЦикла;
ПоказатьВот кусок, в режиме отладке проверенно
Переменная БазаБП Com-объект
Переменная ТаблицаПараметров Com-объект
и вообще, в com запросе можно использовать
или нет? Может я зря бьюсь?
Запрос = БазаБП.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ
|
| ПоступлениеТоваровУслуг.Номер,
| ПоступлениеТоваровУслуг.День
|ПОМЕСТИТЬ врТабДок
|ИЗ
| &ТабВр КАК ПоступлениеТоваровУслуг
|;
|
| X
|ВЫБРАТЬ
| врТабДок.День,
| врТабДок.Номер,
| ПоступлениеТоваровУслуг.Номер КАК Номер1
|ИЗ
| врТабДок КАК врТабДок
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
| ПО врТабДок.Номер = ПоступлениеТоваровУслуг.Номер
| И (ПоступлениеТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон)
| И (врТабДок.День = НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслуг.Дата, ДЕНЬ))";
Запрос.УстановитьПараметр("ТабВр", ТаблицаПараметров);
Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
Показатьили нет? Может я зря бьюсь?
(8) glime, можно вот только значение полей нужно делать примитивными типами иначе получишь СомОбъект - все поля запроса делай через Представление
А дальше либо читай выборку
через Запрос.Выбрать() ... Пока Запрос.Следующий() Цикл КонецЦикла;
либо выгружай в тз на стороне сомА и делай конвертацию через также на стороне сомА ЗначениеВСтрокуВнутр
а на стороне своей базы делай преобразования полученного значения в ТЗ через ЗначениеИзСтрокиВнутр
А дальше либо читай выборку
через Запрос.Выбрать() ... Пока Запрос.Следующий() Цикл КонецЦикла;
либо выгружай в тз на стороне сомА и делай конвертацию через также на стороне сомА ЗначениеВСтрокуВнутр
а на стороне своей базы делай преобразования полученного значения в ТЗ через ЗначениеИзСтрокиВнутр
(10) glime, )) конечно примитивный я же в целом - я откуда знаю что ты хочешь из запроса вытащить в общем случае это представление() но я не понимаю почему код который ты прислал у меня прекрасно работает - и все добавляет без проблем а у тебя не работает, ты где-то перемудрил в коде))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот