Имя: Пароль:
1C
1С v8
Соединение с базой в режиме OLE
0 Azverin
 
11.03.12
15:44
Есть следующая процедурка по установке соединения с ИБ 8.2, у меня не работает, но автор уверяет обратное. что я делаю не так?
   
Процедура УстановитьСоединение82(Элемент)
ТекстСообщенияУспех = "Соединение с информационной базой установлено";
ТекстСообщенияНеудача = "Не удалось установить соединение:
                           |Возможно ИБ недоступна или открыта в монопольном режиме. Обратитесь к администратору 1С.";
                           
СтрокаПодключения = "File=" + СокрЛП(ИмяКаталога) + ";Usr=" + СокрЛП(Пользователь) + ";Pwd=" + СокрЛП(Пароль) + ";";
   
   Если Соединение <> Неопределено Тогда
       Сообщить(ТекстСообщенияУспех);    
       Возврат;
   КонецЕсли;
   
   Попытка
       Соединение = Новый COMObject("V82.Application");
   Исключение
   КонецПопытки;
   
   Попытка
       Открыта = Соединение.Connect(СтрокаПодключения);
       Если Открыта Тогда            
           ОшибкаСоединения = Ложь;
           Сообщить(ТекстСообщенияУспех,СтатусСообщения.Информация);
       Иначе
           ОшибкаСоединения = Истина;
           Сообщить(ТекстСообщенияНеудача,СтатусСообщения.Внимание);
           Возврат;
       КонецЕсли;        
   Исключение
       ОшибкаСоединения = Истина;
       Сообщить(ТекстСообщенияНеудача,СтатусСообщения.Внимание);
       Возврат;
   КонецПопытки;

КонецПроцедуры
1 Fish
 
гуру
11.03.12
15:47
Параметры все правильно передаёшь?
2 Azverin
 
11.03.12
15:48
(1) имя базы, логин, пароль - да. они выведены на форме

русские буквы или пробелы не проблема же?
3 Fish
 
гуру
11.03.12
15:51
(2) Если пробелы в имени каталога, то надо в кавычках его передавать. С именем пользователя вроде тоже самое.
4 Azverin
 
11.03.12
15:52
(3) взял ИБ , у которой путь без пробелов. не подключается всё равно
5 Fish
 
гуру
11.03.12
15:54
(4) Еще. если есть русские буквы, то могут быть проблемы кодировки.
6 Reset
 
11.03.12
16:07
Забавно.
//Устанавливаем некорректную СтрокаПодключения
Вызываем УстановитьСоединение82() // Сообщит ТекстСообщенияНеудача: все ок
// СтрокаПодключения все еще некорректна, ага.
Еще раз Вызываем УстановитьСоединение82() // Сообщит  ТекстСообщенияУспех: Опа ;)
7 Reset
 
11.03.12
16:07
а по сути, предполагаю что ИмяКаталога неправльно задано
8 Reset
 
11.03.12
16:09
Хотя хотелось бы прояснения термина "Не работает"
9 Azverin
 
11.03.12
16:09
(5), (7) да, проблемка с именем была.

сейчас пускает, но поведение ИБ странное . изучаю.
10 Azverin
 
11.03.12
16:48
всё работает. руки из опы)
11 Azverin
 
12.03.12
08:26
продолжение пост!

далее, во внешней обработке следующая процедурка по заполнению таблицы в табличном поле обработке:

Процедура ЗаполнитьТаблицуДок()
   
   ТаблицаДокументов.Очистить();
   
   Если ОшибкаСоединения Тогда
       Сообщить("Соединение с ИБ 8.2 не установлено. Список документов не заполнен!",СтатусСообщения.Внимание);
       Возврат;
   КонецЕсли;    
   
   ОлеДокВыборка = Соединение.Документы.Остатки_БУ_НУ.Выбрать(НачПериода,КонПериода);
   Пока ОлеДокВыборка.Следующий() Цикл
       
       ОлеДок = ОлеДокВыборка.ПолучитьОбъект();
       
       СтрДок = ТаблицаДокументов.Добавить();
       СтрДок.ДатаДок = ОлеДок.Дата;
       СтрДок.НомерДок = СокрЛП(ОлеДок.Номер);
       СтрДок.СчетБУ = Строка(ОлеДок.СчетБУ.Code);

   КонецЦикла;
 
КонецПроцедуры

подцепляю я,кстати, документ с табличном поле, и вот табличное поле докуменат у меня - "Ошибка чтения значения".
как мне подобраться к таблице подгружаемого дока тогда?
12 Azverin
 
13.03.12
11:34
(11) тупил и исправил.

подскажите, пжлст, как мне определить тип субконто в табличной части док-та ВводНачОстатков? тип составной у субконто и данные переносятся, но не записываются.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший