Имя: Пароль:
1C
1С v8
Не находится по наименованию элемент справочника в управляемых формах
0 sidalexsandr
 
16.02.18
13:50
Пишу
&НаСервере
Функция СоздатьНовыйДокумент(ДокументРеал)
   К = Справочники.Контрагенты.НайтиПоНаименованию("ИВАН ФЕДОРОВ",,,);
КонецФункции


Выдает ошибку:отсутствует отображение для типа ComОбъект
1 Darych
 
16.02.18
14:08
ты что-то недоговариваешь.. и вообще темы одна за одной. а инфу из тебя клещами нужно тащить... короче иди кури
2 Рэйв
 
16.02.18
14:13
(0)А что там с COM соединением связано ты конечно, как настоящий партизан, решил утаить?
3 Lexey_
 
16.02.18
14:19
(0) "ИВАН ФЕДОРОВ",,,
а зачем 3 запятых поставил?
4 Defender aka LINN
 
16.02.18
14:30
(0) Тут нужен для начала учебник русского языка.
Ну или внимательность, чтобы заметить, что ошибка с поиском по наименованию никак не связана.
5 sidalexsandr
 
16.02.18
14:49
(1) Вот полный тескт
&НаСервере
Функция СоздатьНовыйДокумент(ДокументРеал)
    НовРеал = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
    //НовРеал.Номер = "М0000000159";


    НовРеал.Дата = ТекущаяДата();
    //НовРеал.СписокВидовОперацийЗначение =
    К = Справочники.Контрагенты.НайтиПоНаименованию("ИВАН ФЕДОРОВ",,,);
      
    //НовРеал.Контрагент = К;
    
    НовРеал.Записать();

    Возврат НовРеал.ссылка;
    
КонецФункции
6 sidalexsandr
 
16.02.18
14:53
Исходная процедура
&НаКлиенте
Процедура Запустить(Команда)
    
        
    Соединение = Новый COMОбъект("V83.Application");
    //База = Новый COMObject("V82.Application");
    //connection = Соединение.Connect("File=""C:\1c-star-baza"""+СокрЛП("Старая")+""";Usr="""+СокрЛП("Репнин Александр")+""";Pwd = """ + СокрЛП("9985") + """;");

    //Для варианта клиент - сервер
    //СтрокаСоединения = "Srvr = ""192.168.90.113"";Ref = ""Старая""; Usr = Репнин Александр; Pwd = 9985";

    //Для варианта файлового режима:
    СтрокаСоединения = "File = C:\1c-star-baza; Usr = РепнинАлександр; Pwd = 9985";
    //СтрокаСоединения = "192.168.90.113;Ref=~SQL Сервис-Центр~;usr=Репнин Александр;pwd=9985";
    Попытка
        Соединение.Connect(СтрокаСоединения);
        Сообщить("Подключился к базе");
    Исключение
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Не удалось подключиться к базе" + ОписаниеОшибки(); Сообщение.Сообщить();
    КонецПопытки;

     //ДокументРеал = Подключение.Документы.РеализацияТоваровУслуг.Выбрать('20130101', '20140110' );
     //Подключение.Документы.РеализацияТоваровУслуг.СоздатьДокумент();
     Реал = Соединение.Документы.РеализацияТоваровУслуг;
     //Реал  = Подключение.Документы.РеализацияТоваровУслуг;
     ДокументРеал = Реал.Выбрать('20130101', '20140110' );
    ////ВыборкаДокументов = Документы.РеализацияТоваровУслуг.Выбрать('20130101', КонецДня(ТекущаяДата()) );  09.01.2014
    //ВыборкаДокументов = Документы.РеализацияТоваровУслуг.Выбрать('20130101', '20140110' );
    Сообщить("ТекДата = "+ТекущаяДата());
    Пока ДокументРеал.Следующий()=1 Цикл
         Сообщить("Документ = "+ДокументРеал.Дата);
         МойНовыйДок = СоздатьНовыйДокумент(ДокументРеал);
    КонецЦикла;

    
КонецПроцедуры
7 Defender aka LINN
 
16.02.18
14:54
(6) А для за каким органом ты передаешь COM-объект на сервер?
8 sidalexsandr
 
16.02.18
14:59
(7) У меня управляемые формы. И я так понимаю создавать документы я могу только НаСервере. Вообще стоит задача перенисти документы РеализацияТоваровУслуг из УТ в БУХ.
9 Defender aka LINN
 
16.02.18
15:01
(8) Я не спрашивал у тебя, что ты и где создаешь. Я спросил, зачем ты передаешь на сервер объект, которым даже не пользуешься?
Ну и если стоит задача перенести данные - КД в зубы и вперед.
10 silent person
 
16.02.18
15:07
(9) он видимо выучил что с объектами БД работают только на сервере, вот и передает СОМ объект на сервер.

вот еще один такой же был http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=572492&print=1

(8) не надо ничего не куда передавать. работай с СОМ объектами на клиенте.
11 Darych
 
16.02.18
15:09
"смешались в кучу кони, люди.."
12 drcrasher
 
16.02.18
15:12
(9) дык уже лет пицот из ут в бп данные передаются "из коробки". даже кд в зубы не нужна
13 sidalexsandr
 
16.02.18
15:46
(12) У меня Ут 10 и БП 3. В стандартных обработках Ут нет Бух 3
14 drcrasher
 
16.02.18
15:51
(13) значит нужно обновиться до последней версии
15 sidalexsandr
 
16.02.18
15:52
Как НаСервере получить доступ к документам которые были выбранны НаКлиенте через Оле?
16 sidalexsandr
 
16.02.18
15:55
(14) Предыдущий программист 1с сказал, что конфигурация сильно измененная и поэтому типовыми средствами не перенести.
17 Darych
 
16.02.18
15:58
(15) выбирай на сервере или передавай на сервер с клиента нужную инфу, а не выбранные по оле объекты
18 sidalexsandr
 
16.02.18
16:11
Попробовал всю большую процедуру выполнять на сервере и убрал вызов из клиентской процедуры процедуры серверной.
В результате получилась одна большая серверная процедура, вот:
&НаСервере
Процедура Запустить(Команда)
    
        
    Соединение = Новый COMОбъект("V83.Application");
    //База = Новый COMObject("V82.Application");
    //connection = Соединение.Connect("File=""C:\1c-star-baza"""+СокрЛП("Старая")+""";Usr="""+СокрЛП("Репнин Александр")+""";Pwd = """ + СокрЛП("9985") + """;");

    //Для варианта клиент - сервер
    //СтрокаСоединения = "Srvr = ""192.168.90.113"";Ref = ""Старая""; Usr = Репнин Александр; Pwd = 9985";

    //Для варианта файлового режима:
    СтрокаСоединения = "File = C:\1c-star-baza; Usr = РепнинАлександр; Pwd = 9985";
    //СтрокаСоединения = "192.168.90.113;Ref=~SQL Сервис-Центр~;usr=Репнин Александр;pwd=9985";
    Попытка
        Соединение.Connect(СтрокаСоединения);
        Сообщить("Подключился к базе");
    Исключение
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Не удалось подключиться к базе" + ОписаниеОшибки(); Сообщение.Сообщить();
    КонецПопытки;

     //ДокументРеал = Подключение.Документы.РеализацияТоваровУслуг.Выбрать('20130101', '20140110' );
     //Подключение.Документы.РеализацияТоваровУслуг.СоздатьДокумент();
     Реал = Соединение.Документы.РеализацияТоваровУслуг;
     //Реал  = Подключение.Документы.РеализацияТоваровУслуг;
     ДокументРеал = Реал.Выбрать('20130101', '20140110' );
    ////ВыборкаДокументов = Документы.РеализацияТоваровУслуг.Выбрать('20130101', КонецДня(ТекущаяДата()) );  09.01.2014
    //ВыборкаДокументов = Документы.РеализацияТоваровУслуг.Выбрать('20130101', '20140110' );
    Сообщить("ТекДата = "+ТекущаяДата());
    Пока ДокументРеал.Следующий()=1 Цикл
         Сообщить("Документ = "+ДокументРеал.Дата);
        // МойНовыйДок = СоздатьНовыйДокумент(ДокументРеал.Ссылка);
        // МойНовыйДок = СоздатьНовыйДокумент();
        //*********************************************************************************
        НовРеал = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
    НовРеал.Дата = ТекущаяДата();
    Контр = ДокументРеал.Контрагент.Наименование;
    К = Справочники.Контрагенты.НайтиПоНаименованию(Контр);    
    
    НовРеал.Контрагент = К;
    Ф = Справочники.Организации.НайтиПоНаименованию("Медресурс");        
    НовРеал.Организация = Ф;
    НовРеал.Записать();

    КонецЦикла;

    
КонецПроцедуры


Вопросы:
1)почему на сервере не создается документ
2) какой функкцией пользоваться НаСерввере для отладки вместо функции Сообщить()?
19 Darych
 
16.02.18
16:15
1) откуда знаешь, что не создается?
2) отладчиком
20 Cyberhawk
 
16.02.18
16:16
(16) Что за предыдущий? Ты там в штате что ли?
21 sidalexsandr
 
16.02.18
16:16
(20) Да в штате.
22 sidalexsandr
 
16.02.18
16:18
Сделал
&НаСервере
Процедура ЗапуститьРаб()
     // Тест программы с Оле
КонецПроцедуры
&НаКлиенте
Процедура Запустить(Команда)
    ЗапуститьРаб();    
КонецПроцедуры    

Теперь работает
23 Вафель
 
16.02.18
16:20
Типовые средстваа можно и доработать, что гораздо легче чем свой обмен писать
24 sidalexsandr
 
16.02.18
16:39
(23) А что сложного написать. Подключился по Оле и цикл по документам и создание новых документов, а дальше в цикле заполнение у созданного документа табличной части
25 hhhh
 
16.02.18
16:51
(24) ну там у документа 50 реквизитов. И 30 в табличной части, и какждый реквизит вы должны разобрать, как его присваивать, что туда писать. Представьте каког нереального объема заполнение вы должны замутить. А типовой он уже есть, можно его использовать.
26 Cyberhawk
 
16.02.18
16:52
(24) Это когда один вид документа и правила обмена просты. А когда 500 видов справочников и 200 видов документов - зае*ешься по Оле писать ))
27 sidalexsandr
 
16.02.18
17:01
(26) Согласен. У меня ограниченное число видов документов.
28 hhhh
 
16.02.18
17:34
(27) ну даже если 10 видов документов, умножим на 80 реквизитов, получается 800 процедур вам надо написать минимум. Это если у вас на всё про всё меньше 2х месяцев, то вы подумайте.
29 Джинн
 
16.02.18
17:41
Дайте ТС яду. Пусть не мучается человек.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший