Имя: Пароль:
1C
1С v8
8.2 Как создать документ?
0 НуВотКак
 
28.09.11
11:48
НаКлиенте
Документы.ПоступлениеТоваровУслуг.СоздатьДокумент()
//
Переменная не определена (Документы)
   ДокументОбъект =  <<?>>Документы.ПоступлениеТоваровУслуг.СоздатьДокумент(); (Проверка: Тонкий клиент)
1 Buster007
 
28.09.11
11:49
На сервере создавай
2 shuhard
 
28.09.11
11:49
(0) на клиенте создать нельзя
3 Armin
 
28.09.11
11:49
(0) На сервере надо делать потому что
4 Sarmen
 
28.09.11
11:49
На клиенте нельзя создавать документы! Создавай на сервере.
5 Wobland
 
28.09.11
11:49
про сервер уже говорили?
6 ОчкарикСлава
 
28.09.11
11:52
Про клиента уже сказали?
7 НуВотКак
 
28.09.11
11:53
понятно, спасибо
8 Armin
 
28.09.11
11:54
(7) обращайся еси шо )
9 Поручик
 
28.09.11
11:59
(0) Документы можно создавать только &НаСервере, то есть &НаКлиенте документы создавать нельзя.
10 qeos
 
28.09.11
12:00
присоединяюсь к вышесказанному. надо создавать на сервере.
11 Eugene_life
 
28.09.11
12:01
На клиенте создать не получится
12 НуВотКак
 
29.09.11
10:54
А если я ставлю НаСервере то совсем в процедуру внешней обработки не заходит. Почему?
13 ptiz
 
29.09.11
10:55
Полный код выкладывай.
14 Hostess_
of_Love
 
29.09.11
10:55
Код давай
15 НуВотКак
 
29.09.11
10:56
&НаКлиенте
Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   // Отключение стандартной обработки
   СтандартнаяОбработка = Ложь;
   
   // Выбор файла Microsoft Excel
   ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ВыборФайла.Фильтр = "Документ Excel (*.xls)|*.xls";
   ВыборФайла.ПроверятьСуществованиеФайла = Истина;
   ВыборФайла.ПолноеИмяФайла = ИмяФайла;
   Выбор = ВыборФайла.Выбрать();
   Если НЕ Выбор Тогда
       
       Возврат;
       
   КонецЕсли;
   ИмяФайла = ВыборФайла.ВыбранныеФайлы[0];    
   
КонецПроцедуры

//&НаСервере
Процедура ЗагрузкаФайла(Команда)

   

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

&НаСервере
Процедура Тестовая(Команда)
   // Вставить содержимое обработчика.
   Сообщить("даНуНа");
       Если ПустаяСтрока(ИмяФайла) Тогда        
       Сообщить("Для запуска обработки необходимо предварительно выбрать файл Microsoft Excel.");
       Возврат;        
   КонецЕсли;
   Если  Не(ЗначениеЗаполнено(ДатаЗагрузки)) Тогда    
       Сообщить("Для запуска обработки необходимо предварительно заполнить дату загрузки.");
       Возврат;                
   КонецЕсли;

   Попытка
       Excel = Новый COMОбъект("Excel.Application");
       Excel.WorkBooks.Open(ИмяФайла);
       ExcelЛист = Excel.Sheets(1);
   Исключение
       Сообщить("Не установлено приложение MS Excel!");
       Возврат;
   КонецПопытки;
   
   //--
   //НовыйДок =  Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
   //НовыйДок.Номер = "ХХХХХХХХ";
   //НовыйДок.Дата = ДатаЗагрузки;    
   //--
   
   ПоследнееПрочитаноеЗначение = 1;
   ТекущаяСтрока = 1;
   Счетчик = 0;

   ТекущееЗначение = СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 1).Value);
   Пока Истина Цикл
       //Состояние("Загрузка данных... строка " + Строка(ТекущаяСтрока-1));
       ТекущаяСтрока    = ТекущаяСтрока + 1;
       ТекущееЗначение = СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 1).Value);
       Если ТекущееЗначение = ПоследнееПрочитаноеЗначение Тогда
           ПоследнееПрочитаноеЗначение    = ПоследнееПрочитаноеЗначение + 1;
       КонецЕсли;
       Если ТекущееЗначение = "" Тогда
           Счетчик = Счетчик + 1;
       КонецЕсли;
       Если Счетчик = 50 Тогда
           Прервать;
       КонецЕсли;
   КонецЦикла;
   Excel.Quit();
   //НовыйДок.Записать();
   //Сообщить("Создан документ"+НовыйДок);

КонецПроцедуры
16 unregistered
 
29.09.11
10:58
(15) Процедура Тестовая(Команда) должна быть на клиенте и уже из неё надо вызывать процедуру, которая &НаСервере.
17 Phace
 
29.09.11
11:01
Самое главное забыли сказать тут - документы можно создавать только на сервере!
18 unregistered
 
29.09.11
11:03
Типа:

&НаКлиенте
Процедура Тестовая(Команда)
  ТестоваяНаСервере();
КонецПроцедуры

&НаСервере
Процедура ТестоваяНаСервере()
  Сообщить("даНуНа");
  Если ПустаяСтрока(ИмяФайла) Тогда        
    Сообщить("Для запуска обработки необходимо предварительно выбрать файл Microsoft Excel.");
    Возврат;        
  КонецЕсли;
  Если  Не(ЗначениеЗаполнено(ДатаЗагрузки)) Тогда    
    Сообщить("Для запуска обработки необходимо предварительно заполнить дату загрузки.");
    Возврат;                
  КонецЕсли;
  Попытка
    Excel = Новый COMОбъект("Excel.Application");
    Excel.WorkBooks.Open(ИмяФайла);
    ExcelЛист = Excel.Sheets(1);
  Исключение
    Сообщить("Не установлено приложение MS Excel!");
    Возврат;
  КонецПопытки;
  ПоследнееПрочитаноеЗначение = 1;
  ТекущаяСтрока = 1;
  Счетчик = 0;
  ТекущееЗначение = СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 1).Value);
  Пока Истина Цикл
    ТекущаяСтрока    = ТекущаяСтрока + 1;
    ТекущееЗначение = СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 1).Value);
    Если ТекущееЗначение = ПоследнееПрочитаноеЗначение Тогда
       ПоследнееПрочитаноеЗначение    = ПоследнееПрочитаноеЗначение + 1;
    КонецЕсли;
    Если ТекущееЗначение = "" Тогда
        Счетчик = Счетчик + 1;
    КонецЕсли;
    Если Счетчик = 50 Тогда
        Прервать;
    КонецЕсли;
  КонецЦикла;
  Excel.Quit();
КонецПроцедуры
19 НуВотКак
 
29.09.11
11:04
(16) Вот же сложности то какие... А эти режимы никак не отключаются, мне нужно просто файл в базу загрущить?
20 unregistered
 
29.09.11
11:05
(19) переходите на 8.1 или в обычное приложение вместо управляемого. Там это реализовано.
21 Hostess_
of_Love
 
29.09.11
11:05
(19)какие сложности? все очень просто и доступно
22 andrewks
 
29.09.11
11:06
(19) можешь перейти на толстый клиент
23 Mort
 
29.09.11
11:08
(18) Первая строчка серверной функции:  Сообщить(...)
хорошее начало :))
24 Hostess_
of_Love
 
29.09.11
11:09
(23)енто он проверяет исполняется ли код :))
25 mikecool
 
29.09.11
11:14
(24) легко исполняется но без результата ))
26 Hostess_
of_Love
 
29.09.11
11:15
(25) проверил?)
27 unregistered
 
29.09.11
11:23
(25) А чо? Разве накопленные сообщения не вывалятся при возвращении с сервера на клиента?
28 НуВотКак
 
29.09.11
11:28
Докумет я создал, но чтобы он отобразился в списке, мне надо перещелкнуть пункт "Документы поступления" в УТ11, как список обновить?
29 Ткачев
 
29.09.11
11:33
>mikecool 13.08.11 - 12:27
>в подчиненном Оповестить
>во владельце ОбработкаОповещения