![]() |
|
v7: Перебрать справочник v8 из 1с 7.7 | ☑ | ||
---|---|---|---|---|
0
kobzon2
09.11.15
✎
14:20
|
Подскажите семерышнику как правильно подключиться к 8-ке и перебрать справочник, или хотя бы найти поКоду элемент справочника.
Делаю так: //******************************************* Процедура Сформировать() Перем ПутьКбазе,ИмяПользователяБазы,Пароль; ПутьКБазе = "D:\base1C8\Копии\бухЧ"; ИмяПользователяБазы = "OLE"; V8 = СоздатьОбъект("V82.Application"); попытка V8.Connect("File=""" + ПутьКБазе + """; Usr =""" + ИмяПользователяБазы + """;"); Сообщить("Подключились к базе"); Выборка = V8.Справочники.Номенклатура.НайтиПоКоду("1103"); Сообщить(Выборка.Наименование); Исключение Сообщить("Не подключился!!!!"); КонецПопытки; КонецПроцедуры База подключается, но почему то все зависает(( И элемент справочника по ходу явно не ищется. |
|||
1
Горогуля
09.11.15
✎
14:22
|
>почему то все зависает
в чём это выражается? |
|||
2
kobzon2
09.11.15
✎
14:24
|
(1) Продолжает выполняться обработка, ничего сделать нельзя в 7.7. Комп притормаживает.
|
|||
3
Горогуля
09.11.15
✎
14:25
|
||||
4
kobzon2
09.11.15
✎
14:32
|
(3) Ниче не понял. Это точно то же что и у меня?) Что не так сделал то?
|
|||
5
Горогуля
09.11.15
✎
14:32
|
это немного совсем не то же
|
|||
6
cw014
09.11.15
✎
14:33
|
(4) Это как раз таки для тебя
|
|||
7
cw014
09.11.15
✎
14:33
|
попытка
БАЗА_БЛЕАТЬ = V8.Connect("File=""" + ПутьКБазе + """; Usr =""" + ИмяПользователяБазы + """;"); Сообщить("Подключились к базе"); Выборка = БАЗА_БЛЕАТЬ.Справочники.Номенклатура.НайтиПоКоду("1103"); Сообщить(Выборка.Наименование); Исключение Сообщить("Не подключился!!!!"); КонецПопытки; |
|||
8
kobzon2
09.11.15
✎
14:38
|
Сообщает и то и то)
Подключились к базе Не подключился!!!! И все ровно что-то продолжает обрабатывать бесконечно. |
|||
9
cw014
09.11.15
✎
14:39
|
(8) А ты на кой болт к Application то подключаешься?
|
|||
10
cw014
09.11.15
✎
14:39
|
(8) ComConnector теперь религией тебе запрещен?
|
|||
11
Горогуля
09.11.15
✎
14:40
|
(8) неужели исключение???
|
|||
12
kobzon2
09.11.15
✎
14:40
|
(10) Так в первый раз в первый класс.
|
|||
13
France
09.11.15
✎
14:40
|
(7) убери обработку исключений и почитай сообщение об ошибке..
|
|||
14
cw014
09.11.15
✎
14:41
|
(11) ))))
(8) И сбрасывай свой Application в неопределено (с ком-коннектором тоже самое) |
|||
15
cw014
09.11.15
✎
14:41
|
(13) Сообщения об ошибках читают только младенцы. Тру-программеры вангуют и телепатируют
|
|||
16
kobzon2
09.11.15
✎
14:44
|
(13) Убрал!
Подключились к базе Выборка = БАЗА_БЛЕАТЬ.Справочники.Номенклатура.НайтиПоКоду("1103"); {C:\USERS\АДМИНИСТРАТОР\DESKTOP\К82.ERT(11)}: Значение не представляет агрегатный объект (Справочники) |
|||
17
kobzon2
09.11.15
✎
14:47
|
(14) Конконнектор так? V8 = СоздатьОбъект("v82.comconnector");
|
|||
18
cw014
09.11.15
✎
14:48
|
(17) Почитай матчасть
|
|||
19
HawkEye
09.11.15
✎
14:48
|
(0) на вот выдержки
Функция глИнициализацияБазы(база, вхФирма) Экспорт Если (вхФирма = "") ИЛИ (ПустоеЗначение(вхФирма) = 1) Тогда вхФирма = Константа.ФирмаПоУмолчанию; КонецЕсли; рез = 0; Состояние("Подключаемся!"); ИмяБазы = СокрЛП(вхФирма.ИмяБазы); ПутьКБух = СокрЛП(вхФирма.ПутьКБухгалтерии); Логин = СокрЛП(вхФирма.ПользовательБух); пароль = СокрЛП(вхФирма.ПарольБух); Если вхФирма.ВерсияБазы = "8.2" Тогда Если ПутьКБух <> "" Тогда КомОбъект = СоздатьОбъект("V82.COMConnector");//Application");//COMConnector");//СоздатьОбъект("V77.Application"); Если СокрЛП(ИмяБазы) = "" Тогда //файловая версия База=КомОбъект.Connect("File="""+СокрЛП(ПутьКБух)+""";Usr="""+СокрЛП(Логин)+""";Pwd = """ + СокрЛП(пароль) + """;"); Иначе //SQL База=КомОбъект.Connect("Srvr="""+СокрЛП(ПутьКБух)+""";Ref="""+СокрЛП(ИмяБазы) + """;Usr="""+СокрЛП(Логин)+""";Pwd = """ + СокрЛП(пароль) + """;"); КонецЕсли Иначе Сообщить("Фирма: " + СокрЛП(вхФирма) + " не найдена база!","!"); Возврат 0; КонецЕсли; Иначе //бла бла бла КонецЕсли; Состояние("Подключились!"); Возврат 1; КонецФункции Функция глмВернутьПоКоду8(СамаБаза, самСпр, самКод, имяЭлемента = "", самЭлемент = "") Экспорт рез = ""; Если СокрЛП(СамКод) <> "" Тогда спр = самСпр.НайтиПоКоду(самКод); Если Спр.Пустая() = -1 ТОгда //не нашли Сообщить("Не найден элемент с кодом: " + самКод + " в спр. " + самСпр + " " + имяЭлемента,"!"); Иначе //нашли рез = спр; КонецЕсли; Иначе //бла бла бла Возврат рез; КонецФункции Процедура База = ""; Если глИнициализацияБазы(база, 1) = 0 Тогда Возврат; КонецЕсли; // ВидДока = База.Документы.ТребованиеНакладная; СоздалиНовый = 0; Если СокрЛП(номерБух8) <> "" Тогда //есть номер бух док = ВидДока.НайтиПоНомеру(номерБух8,ДатаДок); Если док.пустая() = -1 Тогда создалиновый = 1; ДокБП = ВидДока.СоздатьДокумент(); ДокБП.Номер = номерБух8; Иначе ДокБП = Док.ПолучитьОбъект(); КонецЕсли; Иначе создалиновый = 1; ДокБП = ВидДока.СоздатьДокумент(); КонецЕсли;////СОЗДАЕМНОВЫЙ Если создалиновый = 0 Тогда ДокБП.Материалы.Очистить(); КонецЕсли; ДокБП.Дата = ДатаДок; ДокБП.Склад = глмВернутьПоКоду8(База, База.Справочники.Склады, МОЛдок.КодСклада8, МОЛдок.Наименование); ДокБП.ПодразделениеОрганизации = глмВернутьПоКоду8(База, База.Справочники.ПодразделенияОрганизаций, СкладОткуда.КодВБух8, СкладОткуда.Наименование); |
|||
20
France
09.11.15
✎
14:54
|
(16) из твоего кода в 0
V8.Connect("File=""" + ПутьКБазе + """; Usr =""" + ИмяПользователяБазы + """;"); Сообщить("Подключились к базе"); УДАЛЕННАЯ_БАЗА= V8.Справочники.Номенклатура.НайтиПоКоду("1103"); НАЙДЕМ_ТАК_ПО_КОДУ = УДАЛЕННАЯ_БАЗА.Справочники.Номенклатура.НайтиПоКоду("1103"); Сообщить(НАЙДЕМ_ТАК_ПО_КОДУ.Наименование); |
|||
21
kobzon2
12.11.15
✎
15:33
|
Мужики, подскажите как мне в 8-ке, проверить что элемент справочника отсутствует, чтобы его добавить?
А то получаются спецификации с пустым сырьем, но с заполненным количеством. НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("000"+Цел(ДокВСемерке.Материал.Код)); Как то через Неопределенно? |
|||
22
VikingKosmo
12.11.15
✎
15:38
|
Возвращаемое значение:
Тип: СправочникСсылка.<Имя справочника>; Неопределено. Если не существует ни одного элемента с требуемым кодом, то будет возвращена пустая ссылка. Если для справочника код не задан (длина = 0), то будет возвращено Неопределено. А вообще это привилегия ДенисЧ продавать СП |
|||
23
kobzon2
12.11.15
✎
15:51
|
(22) Ага, спасибо. Всё понял, Всё сделал.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |