Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Другие темы раздела
1С Отобразить список отчет в отдельном окне http://www.cyberforum.ru/1c-custom/thread1691519.html
Добрый день! Подскажите как при нажатии на кнопку открывается окно со списком отчетов, где при нажатии на отчет он открывался
1С В отчет нужно добавить новую колонку "Контрагент" как добавить колонку "контрагент" для определенного документа ВЫБРАТЬ ХозрасчетныйОбороты.Субконто1 КАК Материал, ХозрасчетныйОбороты.Субконто2 КАК Склад, ХозрасчетныйОбороты.Субконто3 КАК... http://www.cyberforum.ru/1c-custom/thread1690911.html
1С Перенос данных из справочника в документ
В справочнике имеется поле цена за единицу товара. Как ее переносить автоматически в документ вместе с наименованием товара.Документ называется Приходная Накладная.
Не работает условие 1С
Не понимаю почему не срабатывает условие. Должно работать: Создано два документа у первого реквизит участок = "Нет участка", второй документ реквизит участок="Перевалка". Вот код ТЗ=Новый...
1С Соединение таблиц в запросе для УТ 10.3 http://www.cyberforum.ru/1c-custom/thread1690362.html
Добрый день. Конфигурация Управление Торговлей 10.3.29.1 Требуется сделать отчет, в котором будут записи регистра "Партии товаров на складах" с регистраторами: РеализацияТоваровУслуг и...
1С Неправильное присоединение к таб. доку БП 3.0. Нужно сделать внешнюю печатную форму для экономии бумаги - на одном листе 2 счета и 2 акта выполненных работ. Поначалу задача казалась очень простой. Я использую стандартные функции, с их... подробнее
DEaD_EGOR
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
0

Внешняя обработка, создание формы

23.03.2016, 10:19. Просмотров 3346. Ответов 72
Метки (Все метки)

Всем доброго времени суток. Народ, подскажите, пишу с нуля внешнюю обработку для загрузки данных в документ из файлов Excel.. Проблема возникла в моменте создания формы.
Задача такая-"Обработка читает документ и на основании прочтённого создаёт документ Реализации товаров. При написании кода в модуле Сначала в объекте нужно заполнить все, что нужно для формы, потом нужно сделать вызов на клиент, на сервере поместить объект в реквизит и получить его на клиенте..."

Имею кусок уже написанного кода
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
&НаСервере
Процедура ЗагрузитьФайлНаСервере ()
 
(тут много кода по открытию и чтению эксель-документа) 
 
 //Создаём новый документ и списываем в него данные
     мДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
     НоваяСтрока = мДокумент.Товары.Добавить();
 
//Создаём форму документа
     Если НЕ ЗначениеЗаполнено(Объект.ИмяФайла) Тогда
        Сообщить("Не выбран файл загрузки!");
    Иначе       
        ИмяФайла = Объект.ИмяФайла; 
    мФорма = ПолучитьФорму("Документ.РеализацияТоваровУслуг.Форма.ФормаДокументаТовары");
    ДокОбъект = мФорма.Объект;
постоянно ругается на то, что "Процедура или функция с указанным именем не определена (ПолучитьФорму)"

как реализовать вызов на клиент?

Добавлено через 13 минут
Прошу прощения, сам разобрался))

Добавлено через 16 часов 52 минуты
Собственно, вопрос с загрузкой формы я решил. Теперь возник вопрос, какой набор команд необходим для заполнения формы?
Сам код выглядит вот так:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
&НаСервере
Процедура ЗагрузитьФайлНаСервере (ФормаОбъект)
    
    
    //подключаемся к эксель
    Попытка
        Excel = Новый COMОбъект("Excel.Application");
        Книга = Excel.WorkBooks.Open(Объект.ИмяФайла);
    Исключение
        Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
        
    Попытка 
        //Открываем необходимый лист
        Excel.Sheets(1).Select();  // лист 1, по умолчанию  
    Исключение
        //Закрываем Excel
        Excel.ActiveWorkbook.Close();   
        Excel = 0;
        Сообщить("Файл "+Строка(Объект.ИмяФайла)+" не соответствует необходимому формату! Первый лист не найден!");
        ОтменитьТранзакцию();
        Возврат;
    КонецПопытки;   
    
 
    //Получим количество строк и колонок.
    //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
    Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
    Если Версия = "8" тогда
        ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
        ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
    Иначе
        ФайлСтрок   = Excel.Cells(1,1).SpecialCells(11).Row;
        ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;   
    Конецесли;
    
    //// Создание колонок табличного документа
    ТабЗнач = Новый ТаблицаЗначений;
    ТабЗнач.Колонки.Добавить("Артикул"); 
    ТабЗнач.Колонки.Добавить("Номенклатура"); 
    ТабЗнач.Колонки.Добавить("Количество"); 
    ТабЗнач.Колонки.Добавить("Цена");
    ТабЗнач.Колонки.Добавить("Ставка"); 
        
    //считываем первую строку и генерируем колонки  
            
    Для НС = 2 по ФайлСтрок Цикл  // НС указываем с какой строки начинать обработку        
            
        НоваяСтрока = ТабЗнач.Добавить();       
        НоваяСтрока.Номенклатура = Excel.Cells(НС, 2).Text;
        НоваяСтрока.Количество = Excel.Cells(НС, 3).Text;
        НоваяСтрока.Цена= Excel.Cells(НС, 4).Text;
        НоваяСтрока.Ставка= Excel.Cells(НС, 6).Text;
                            
    КонецЦикла;   
                
     // Закрыть COM соединение для экономии памяти
     Excel.Application.Quit();
                
 КонецПроцедуры
 
 &НаСервере
 Процедура ЗаполнитьНаСервере (ФормаОбъект)
     
     
     
 КонецПроцедуры
 
 
&НаКлиенте 
Процедура ИмяФайлаНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогВыбора.Заголовок = "Выберите файл";
        
    Если ДиалогВыбора.Выбрать() Тогда
        Объект.ИмяФайла = ДиалогВыбора.ПолноеИмяФайла;
    КонецЕсли;
    
КонецПроцедуры
 
&НаКлиенте
Процедура ЗагрузитьФайл(Команда)
    
     мФорма = ПолучитьФорму("Документ.РеализацияТоваровУслуг.Форма.ФормаДокументаТовары");
     ФормаОбъект = мФорма.Объект;
     ЗагрузитьФайлНаСервере (ФормаОбъект);  
     КопироватьДанныеФормы(ФормаОбъект,Мформа.Объект);
     мФорма.Модифицированность = Истина;
     мФОрма.ЦеныИВалюта = "НДС сверху";
     Мформа.Открыть();
     МФорма.ЦеныИВалюта = "НДС сверху";
    
КонецПроцедуры
Подскажите неучу...

Вернуться к обсуждению:
Внешняя обработка, создание формы
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2016, 10:19
Готовые ответы и решения:

Внешняя обработка, создание документа Заказ Поставщику
Здравствуйте, подскажите, пожалуйста! Во внешней обработке создаю Заказ поставщику на основании...

1С ЗУП 3.1 Внешняя обработка печатной формы для Кадровый документ списком
Здравствуйте! Подскажите пожалуйста, кто знает, как правильно добраться до поля Сотрудник.Код (ниже...

Внешняя обработка
Всем привет! Помогите пожалуйста составить такой вот код - (перебирает целые числа от 0 до...

Внешняя обработка
Нужно создать внешнюю обработку. Ввести в поле ввода дату. По кнопке "Сформировать" получить дату,...

Внешняя обработка
Здравствуйте! как из формы внешней обработки сформировать типовой отчет и передать необходимые...

72
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru