Имя: Пароль:
1C
1С v8
Изменение реквизитов справочника в 1с77 из 1с82 по OLE
0 Nuuq
 
31.10.13
10:48
Добрый день!
Помогите разобраться - выполняю синхронизацию двух баз - 1с82 <-> 1с77 через OLE. Обработка запускается из 1с82, формируется COM-Объект, делаю ТЗ синхронизации справочников и получаю значение справочника из 1с77.
В ТЗ зз 1с77 получил не только код, наименование, а еще и по функциям ЗначениеВСтрокуВнутр() и ЗначениеВСтроку()

При необходимости изменения в 1с82 получаю объект из 1с77
v7_Идентификатор = "{""Справочник"",""Контрагенты"",""Т3882 ""}";
Объект77 = 0;
V77.ЗначениеИзСтрокиВнутр(v7_Идентификатор, Объект77);
или так
v7_Идентификатор = "{""B"",""0"",""0"",""133"",""0"",""0"","";
Объект77 = 0;
V77.ЗначениеИзСтроки(v7_Идентификатор, Объект77);

Объект найден! Я могу получить любой его реквизит - там типо
Сообщить(Объект77.Наименование); выведет наименовние
НО! как только я пытаюсь записать Объект77.Записать(); вылазиет ошибка

Агропак ООО
{ВнешняяОбработка.Выгрузка_из_1С82_Фабрика_кухня_в_1С77_БухТРАССА_ComConnector.МодульОбъекта(591)}: Ошибка при вызове метода контекста (Записать): Произошла исключительная ситуация (1С:Предприятие): Не выбран элемент!

Если ищу выборкой и по функции НайтиПоКоду - находит и дает перезаписывать... в чем проблема?
1 viktor_vv
 
31.10.13
10:57
СпрОле = v77.createObject("Справочник.Контрагенты") ;

Если СпрОле.НайтиЭлемент(Объект77) = 1 Тогда
    СпрОле.Реквизит = ЗначениеРеквизита ;
    СпрОле.Записать();
КонецЕсли ;
2 viktor_vv
 
31.10.13
10:58
Или так

СпрОле = v77.EvalExpr("СоздатьОбъект(""Справочник.Контрагенты"")");
3 Nuuq
 
31.10.13
11:03
(1)(2) Блиииииииин.... (Это я про себя.... :)))  )

Спасибо тебе большое!!!!!!!!!