Имя: Пароль:
1C
1С v8
И снова СОМ-соединение, но теперь выгрузка из 82 в 83
, ,
0 werta2007
 
20.01.14
13:14
Выгружаю данные из 82(база нетиповая) в 83 Бухгалтерии. Простейшее: справочник "Организации". Соединяется все ок, но потом пишет ошибку:      "Поле объекта недоступно для записи (Наименование)
        Организация.Наименование= Выборка.Наименование;"
и так на любой реквизит реагирует.
1 vicof
 
20.01.14
13:15
ТипЗнч(Организация)
2 Рэйв
 
20.01.14
13:16
господи...И когда же они выучат про .ПолучитьОбъект()
3 werta2007
 
20.01.14
13:16
Выучилась уже давно, у меня создатьОбъект()

Организация = МенеджерОрганизаций.СоздатьЭлемент();
        Организация.Код.Значение = Выборка.Код;
        Организация.Наименование.Значение= Выборка.Наименование;
4 werta2007
 
20.01.14
13:16
это что не одно и тоже?
5 Рэйв
 
20.01.14
13:17
А без .Значение пробовал?
6 werta2007
 
20.01.14
13:18
на .Значение пишет ошибку.
7 werta2007
 
20.01.14
13:19
Значение не является значением объектного типа (Значение)
        Организация.Код.Значение = Выборка.Код;
8 Рэйв
 
20.01.14
13:19
Я имел в виду вот так:

Организация = МенеджерОрганизаций.СоздатьЭлемент();
        Организация.Код.= Выборка.Код;
        Организация.Наименование= Выборка.Наименование;
9 Рэйв
 
20.01.14
13:20
(7)А что за код тогда у тебя в (3)?
10 werta2007
 
20.01.14
13:22
Тип Строка и из выборки тоже передаю строку, т.е. с типами не должно быть проблем.
Когда "сто лет" назад грузила из 81 в 82,, все было ОК. Почему возникла ошибка при выгрузки из 82 в 83?
11 werta2007
 
20.01.14
13:23
(8) на данную запись пишется ошибка.
Ожидается идентификатор
Организация.Код. <<?>>= Выборка.Код;
12 Рэйв
 
20.01.14
13:23
(11)пляяяя....
Моск включи уже.
13 Рэйв
 
20.01.14
13:23
не, я пас.
14 werta2007
 
20.01.14
13:26
я непоняла, что я не так сделала, что у Вас молоой человек, последовали такие оскорбительные замечания. Мозги у меня на месте.Это у Вас видимо не в порядке судя по записи (8).
15 Любопытная
 
20.01.14
13:27
(11) Точку убери осле Код
16 Любопытная
 
20.01.14
13:27
*после
17 Любопытная
 
20.01.14
13:27
(14) Надо просто внимательно код писать и смотреть. А потом уже спрашивать. Тогда и не будет никаких проблем
18 werta2007
 
20.01.14
13:28
См (7) и вопрос. Оба варианта обработаные и с Значением и без.
19 Любопытная
 
20.01.14
13:28
Организация.Код.= Выборка.Код;
В левой части после слова Код убери точку
20 werta2007
 
20.01.14
13:30
Я не дура чтобы точки ставить. Я просто на (8) ответ соотвествующий написала.
21 Любопытная
 
20.01.14
13:32
(20) Вы издеваетесь?
Вам в (8) написали код с синтаксической ошибкой. Очень простой, банальная описка. Вы на это написали (11), т.е. даже не попытавшись подумать над тем, что это за ошибка, сразу пишите на форум. И ведете себя лет так на 6, но не на 36 уж точно.
22 Рэйв
 
20.01.14
13:32
кажется это надолго:-)
*пошел за попкорном.
23 werta2007
 
20.01.14
13:32
Еще раз пишу оба обработанные мной варианты:
1. Организация = МенеджерОрганизаций.СоздатьЭлемент();
   Организация.Код = Выборка.Код;
результат
Поле объекта недоступно для записи (Наименование)
2. Организация = МенеджерОрганизаций.СоздатьЭлемент();
    Организация.Код.Значение = Выборка.Код;
    Организация.Наименование.Значение= Выборка.Наименование;
результат
Значение не является значением объектного типа (Значение)
        Организация.Код.Значение = Выборка.Код;
24 werta2007
 
20.01.14
13:32
(22)ну-ну
25 Любопытная
 
20.01.14
13:33
(23) не надо там Значение. Просто Организация.Код = ВашКод;
26 Любопытная
 
20.01.14
13:33
1. Организация = МенеджерОрганизаций.СоздатьЭлемент();
   Организация.Код = Выборка.Код;
результат
Поле объекта недоступно для записи (Наименование)
Так код или Наименование?
27 Любопытная
 
20.01.14
13:34
И что такое МенеджерОрганизаций?
28 vicof
 
20.01.14
13:35
(0) А я не понял, где фотка?
29 werta2007
 
20.01.14
13:37
V8 = Новый COMОбъект("V83.ComConnector");
    Попытка
        Открытие = V8.Connect("File=""D:\бух 30"";Usr=""Администратор"";");  
    Исключение
        Предупреждение("База данных не открыта!!!");
        Возврат;
    КонецПопытки;
(27)    
    Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    МенеджерОрганизаций = Открытие.Справочники.Организации;
    
    // Менеджеры остальных справочников:  
    
    Пока Выборка.Следующий() Цикл
        Организация = МенеджерОрганизаций.СоздатьЭлемент();
        Организация.Код.Значение = Выборка.Код;
30 werta2007
 
20.01.14
13:37
т.е МенеджерОрганизаций - это ком-объект
31 werta2007
 
20.01.14
13:39
(26) Я гружу данные по организации из бух82 в бух83. Что я не понятно написала выше? Мне нужны соотвественно и Код и Наименование.
32 vicof
 
20.01.14
13:39
(29) Не тупим, уже все написали в (26) и раньше
33 werta2007
 
20.01.14
13:42
я не туплю. Я в очередной раз Вам пишу, что обработала оба вариант!!!!!!!!! и
Организация.Код.Значение = Выборка.Код;
и
Организация.Код = Выборка.Код;
Вы вообще читаете, что я пишу!!!!!
Или ВЫ только оскорблять умеете?
34 Любопытная
 
20.01.14
13:45
Если Организация.Пустая() Тогда
        Организация = МенеджерОрганизаций.СоздатьЭлемент();
        Организация.Код = Код;

        // Остальные реквизиты:

        Организация.Записать();
    КонецЕсли; - Работает.
(33) Мы читать умеем. и мы читаем, что в коде написано Организация.Код, а в тексте ошибки ругается на номенклатуру. Не надо истерик, мадам, это не поможет
35 К_Дач
 
20.01.14
13:46
(29) а где ты пишешь этот код? какой режим запуска приложения?
36 Любопытная
 
20.01.14
13:47
(33)Попробуйте сделать наоборот - подключиться из базы получателя и по COM только читать, а не писать. Будет, имхо, проще
37 werta2007
 
20.01.14
13:51
Все простите я в (23) увидела свою ошибку. И не поняла Ваши замечания (там код один а ошщибка другая). Но всеже у меня не работает этот код.
(35) Это внешняя обработка. Режим запуска Серверный толстый клиент. Бухгалтерия предприятия, редакция 2.0 (2.0.54.11)
Эта обработка работала при выгрузке из 80 в 81, из 81 в 82, а вот из 82 в 83 перестала.
38 Любопытная
 
20.01.14
13:54
(37) Вы же понимаете, что ничего не понятно) Пошагово отладкой смотрите, что такое Организация, что с ней можно сделать. По идее, все должно работать, но только если не беситься. И я все же советую цепляться из базы-приемника и писать в ней, а по COM просто получать данные для загрузки
39 vicof
 
20.01.14
13:56
(33) Оскорблять? Помилуйте, мадемуазель. Мои возвышенные мысли позволяют только направить Вас на путь истинный, дабы Вы, по незнанию своему, и неумению пользоваться отладчиком и советами людей. И да будет Ваш путь светлым и незапятнанным, как скатерть в столовой Метрополя.
40 vicof
 
20.01.14
13:56
*советами людей, не попали впросак
41 werta2007
 
20.01.14
13:57
Я поняла Ваш совет, но достаточно много пререписывать. Ладно займусь. Просто я думала, что в 83 может какие-то новые фишки появились, которые сразу не видны.
42 werta2007
 
20.01.14
13:58
(39) Спасибо. И отладчиком я умею хорошо пользоваться.)))
43 werta2007
 
20.01.14
14:22
все-таки прошу помощи еще раз. Пошаговое испонение показывает, что я подключаюсь к 83, менеджер создает объект, типы совпадают, но потом вываливается ошибка. Пчему 83 не дает писать в реквизит значение?
44 werta2007
 
20.01.14
14:23
код же рабочий, как показывает практика (для более ранних версий)
45 acsent
 
20.01.14
14:25
Пока Выборка.Следующий() Цикл
        Организация = МенеджерОрганизаций.СоздатьЭлемент();
        Организация.Код.Значение = Выборка.Код;

Бл@ть, что это за пи..дец?
46 werta2007
 
20.01.14
14:29
а что Вам непонятно? Если что не понятно смотрите в (29) только без .Значение
47 zva
 
20.01.14
14:30
Организация = МенеджерОрганизаций.СоздатьЭлемент();
Организация.Код = "00001";
Организация.Наименование = "Тест";
Организация.Записать();

Какую ошибку выдаст?
48 acsent
 
20.01.14
14:31
в выборке нет наименования просто
49 werta2007
 
20.01.14
14:32
вот на этот вопрос пока не дам ответ, так как я уже не на месте. Отвечу гдето через 2 ч.
50 werta2007
 
20.01.14
14:34
(48) есть все. Я же говорю код работает прекрасно для всего кроме 83.
51 rinatru
 
20.01.14
14:40
(50) читать увлекательно... будет продолжение?
52 hhhh
 
20.01.14
14:42
(50) просто это всё на сервере надо присваивать, а вы наверняка на клиенте фигачите, вот и не получается.
53 werta2007
 
20.01.14
18:37
(47)ошибка та же: поле объекта недоступно для записи.
54 werta2007
 
20.01.14
18:38
(52) теперь исполняют дома локально и базы файловые.
55 werta2007
 
20.01.14
18:51
Ещё одна фишка. Метод объекта не обнаружен (Записать)
Организация.Записать();
56 werta2007
 
20.01.14
18:52
Что это такое? Что за бред?
57 VRednaia
 
20.01.14
18:54
Реквизит "Организация" в обработке, которую вы запускаете есть?
58 werta2007
 
20.01.14
18:56
Зашла в конфигуратор 83 стала набирать ... Метод есть, но почему при доступе к ней через ком из 82 возникает ошибка?
59 werta2007
 
20.01.14
18:57
Естественно!!!
60 VRednaia
 
20.01.14
18:58
(59) Что естественно?
61 VRednaia
 
20.01.14
18:59
В обработке, не в базе, есть реквизит, имя которого = "Организация"?
И если да, то зачем этому реквизиту присваивать значение созданного com-объекта?
62 werta2007
 
20.01.14
19:05
В обработке этого реквизита нет. Этосамое постое в этой обработке, что я пытаюсь сделать. Я хочу взять справочник Организаций из 82 и перекинуть со всеми реквизитами в 83. Поэтому я создаю ком-соединение, открываю справочик и пытаюсь туда закинуть элемент справочника. Часть кода в (29).
Но возникают такие ошибки, что я просто глазам не верю.
63 werta2007
 
20.01.14
19:07
Что в 83 такое, что этот код перестал работать?
64 zva
 
20.01.14
20:11
Этот код создает новый элемент в справочнике Организации в демобазе Бух 30 на платформе 83
V8 = Новый COMОбъект("V83.ComConnector");
    Попытка
        Открытие = V8.Connect("File=""" + ПутьКБазе + """;Usr=""Любимов (администратор)"";");
    Исключение
        Предупреждение("База данных не открыта!!!");
        Возврат;
    КонецПопытки;
    МенеджерОрганизаций = Открытие.Справочники.Организации;
    Организация = МенеджерОрганизаций.СоздатьЭлемент();
    Организация.Код = "00001";
    Организация.Наименование = "Тест";
    Организация.Записать();

Что там у вас происходит - нам не ведомо. По трем строчкам кода не понять. Может на форме обработки элемент есть с именем Организация
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс